Controllo dell’accesso

Il controllo dell’accesso regola le operazioni che si possono compiere sui dati e sulle risorse di un sistema. Più precisamente, il suo scopo è fornire e controllare le azioni che i soggetti effettuano sulle risorse del sistema, prevenendo azioni accidentali o deliberate che potrebbero compromettere la correttezza e la sicurezza dei dati.

Si definisce soggetto qualsiasi entità che svolge azioni all’interno del sistema, come ad esempio un utente, un processo, ecc. Invece, quali sono le risorse dipende dal tipo di sistema considerato; ad esempio, nell’ambito di un filesystem esse sono i file, mentre in un DBMS esse sono i dati.

Il controllo dell’accesso avviene per mezzo di tre concetti fondamentali:

Le politiche di sicurezza sono regole e principi secondo cui un’organizzazione vuole che siano protette le proprie informazioni. In altre parole, esse sono un insieme di direttive ad alto livello che esprimono le scelte compiute da un’organizzazione in merito alla protezione dei propri dati, specificando come le risorse possono essere utilizzate. Le politiche di sicurezza sono legate ai processi che l’organizzazione deve svolgere, alle esigenze aziendali, e sono spesso definite in linguaggio naturale; un esempio è:

“le valutazioni psicologiche di un impiegato possono essere viste solo dal suo responsabile”

Le politiche di sicurezza vengono poi tradotte in un insieme di autorizzazioni, le quali stabiliscono gli specifici diritti che i vari soggetti abilitati ad accedere al sistema possono esercitare sugli oggetti. Ciascuna regola specifica un soggetto, un oggetto e un privilegio (un diritto che questo soggeto può esercitare su questo oggetto). Ad esempio, supponendo che Mario Rossi sia il responsabile di Giovanni Bianchi, un’autorizzazione conforme alla precedente politica di sicurezza potrebbe essere:

(
	mario rossi,
	ValutazionePsicologica(giovanni bianchi),
	lettura
)

Il meccanismo di controllo dell’accesso, detto anche reference monitor, è il componente del sistema che effettua concretamente il controllo dell’accesso: esso intercetta ogni comando inviato e analizza le autorizzazioni per stabilire se il soggetto richiedente può essere autorizzato (totalmente o parzialmente) a compiere l’accesso richiesto o se invece l’accesso deve essere negato.

Prima che una richiesta arrivi al reference monitor dev’esserci una fase di autenticazione, dato che per il controllo dell’accesso si assume che l’identità del soggetto richiedente sia già stata verificata.

Sistemi aperti e chiusi

Ci sono due moti di interpretare le autorizzazioni per il controllo dell’accesso:

Il vantaggio di un sistema chiuso è la sicurezza: si modella esattamente ciò che ciascun soggetto può fare. Invece, il vantaggio di un sistema aperto è esattamente l’opposto: non è necessario immaginare e modellare tutte le possibili azioni che i soggetti potrebbero voler compiere sugli oggetti, quindi si ottiene una minore rigidità e si elimina il rischio che delle richieste lecite vengano negate solo perchè ci si è dimenticati di autorizzarle, ma in compenso si corre il rischio che delle risorse rimangano esposte se ci si dimentica di negarvi l’accesso.

I sistemi come filesystem e DBMS implementano sostanzialmente sistemi chiusi, mentre i sistemi aperti vengono in genere usati quando ci sono solo poche risorse da proteggere, pochi privilegi da negare. In ambito Web si usano solitamente dei sistemi ibridi, che permettono di definire autorizzazioni sia positive che negative, combinando così i benefici dei sistemi chiusi e aperti (le politiche si definiscono con linguaggio XACML).