Title: ACCESS CONTROL MATRIX
1ACCESS CONTROL MATRIX
- STUDENTE COCUZZI NICOLETTA
- MATR.3037571
2ARGOMENTI TRATTATI
- Protection state
- Access Control Matrix
- Modello ACM
- Meccanismi di rappresentazione di ACM
- Access Control List
- Capability
- Revoca dei diritti
- Protection state transition
- Comandi di transizione
- Comandi condizionali
- Diritti speciali
- Attenuation of privilege
3PROTECTION STATE
- PROTECTION SYSTEM descrive le condizioni in base
alle quali un sistema può definirsi sicuro. - E caratterizzato da due elementi fondamentali
- un insieme generico di diritti
- un insieme di comandi
4PROTECTION STATE (2)
- PROTECTION STATE
-
- Lo STATO (state) di un sistema è una collezione
di valori correnti riferiti a - Tutte le locazioni di memoria, dei registri,
della memoria secondaria etc - Tutte le altre componenti del sistema
- La PROTEZIONE è linsieme dei meccanismi usati da
un sistema informatico per il controllo
dellaccesso alle risorse - Goal dimostrare che tutte le operazioni nel
sistema conservano la sicurezza nello stato di
protezione
5PROTECTION STATE (3)
- P stato di protezione
- Q stato in cui il sistema è sicuro
- Q ? P
- P - Q tutti gli elementi di P che non sono in Q
- Allora
- Ogni volta che il sistema è in Q, il sistema è
sicuro - Quando lo stato corrente è in P-Q il sistema
non è sicuro.
6PROTECTION STATE (4)
- Un cambiamento del sistema può risolversi in un
cambiamento dello stato di protezione. - Tali cambiamenti sono, spesso, forzati.
- Linsieme degli stati e delle operazioni
consentite ad ogni elemento dellinsieme sono
definiti. - Le operazioni consentite ad uno stato autorizzato
generano un altro stato autorizzato. - In pratica unoperazione può generare uno stato
di transizione multiplo.
7ACCESS CONTROL MATRIX
- E una formulazione classica di un sistema di
protezione. - Inoltre è uno degli strumenti più precisi usato
per descrivere il corrente stato di protezione.
8NASCITA ACM
- Sviluppato da Lampson nel 1971
- Perfezionato da Graham e Denning tra il 1971 e il
1972.
9IL MODELLO
- Lo stato di protezione del sistema è
rappresentato da una tripla - M (S, O, A)
- Dove
- S insieme di soggetti (entità attive) es.
user, processi, dispositivi etc - O insieme di oggetti (entità passive) es.
file, memoria etc - A insieme di regole che specificano i modi in
cui i soggetti possono avere accesso agli oggetti - Nota ogni soggetto può anche essere un oggetto
10IL MODELLO (2)
- Nella matrice sono catturate tutte le relazioni
tra le entità - R ? as,o dove s ? S, o ? O
- A s,o ? R
- A s,o ? insieme di privilegi/diritti/azioni di
s su o.
11IL MODELLO (3)
- Quando viene creato un oggetto
- si aggiunge una colonna nella matrice di
accesso - il contenuto della nuova colonna è deciso al
momento della creazione delloggetto - E un modello astratto il significato dei
diritti può cambiare in base agli oggetti
coinvolti - Non è molto appropriata per limplementazione
diretta
12IL MODELLO (3)
- La matrice è sparsa e gli elementi possono
essere vuoti in questo caso può essere
inefficiente -
Data 1 Data 2 Prog. 1 Prog. 2
Alice R, W E
Bob R R, W R, W, E
Carol R E
David R, W R E R, W, E
Eve R R, E
13IL MODELLO (4)
- La gestione della matrice può rivelarsi
difficoltosa se ci sono 101000 file e parecchi
utenti ? milioni di matrici
14DESCRIZIONE
15SEMPLICE ESEMPIO
FILE 1 FILE 2 PROCESS 1 PROCESS 2
PROCESS 1 Read, write, own read Read, write, execute,own write
PROCESS 2 append Read, own read Read, write, execute,own
- S process 1, process 2
- O file 1, file 2, process 1, process 2
- R read, write, execute, append, own
- Own ? il creatore di ogni oggetto, in molti
sistemi, può anche aggiungere o togliere diritti
agli altri soggetti
16MECANISMI DI RAPPRESENTAZIONE
- Tabella globale lista non nulla di triple (s, o,
a) -
-
- questo metodo consiste nella memorizzazione
in una tabella di triple del tipo - ltsoggetto, oggetto, insieme dei dirittigt
- VANT è semplice da realizzare
- SVANT se la tabella diventa molto grande, è
difficoltoso laggiornamento dei permessi
daccesso.
esempio
17MECANISMI DI RAPPRESENTAZIONE (2)
- Access Control Matrix può essere implementata in
due modi - ACCESS CONTROL LIST (colonne)
- CAPABILITY LIST (righe).
18ACCESS CONTROL LIST
- Usato per ridurre il tempo di calcolo richiesto
per rivedere il modello a matrice, dobbiamo
ridurre il numero di ingressi in M considerati
durante lesecuzione. - Per fare questo dividiamo M in piccole porzioni
separate, queste si basano su oggetti o soggetti. - In questo caso consideriamo la partizione di M
per oggetti. - Quindi ACLs visita la matrice di accesso per
colonne.
19ACCESS CONTROL LIST (2)
- La tabella viene memorizzata per colonne
- Ad ogni elemento viene associata una lista di
elementi - ltsoggetto, diritti di accessogt
- Ottimizzazioni
- lampiezza della lista può essere ridotta
associando i diritti a insieme di domini o usando
diritti standard (default)
20ACCESS CONTROL LIST (ESEMPIO)
- Access control list
- Data 1(Alice, rw),
- (Bob, r), (David, rw)...
Data 1
Alice R, W
Bob R
Carol
David R, W
Eve
21ACLs LE CARATTERISTICHE
- Facile da capire
- È facile da rispondere alla domanda chi ha quel
tipo di accesso a questo oggetto - I diritti sono immagazzinati insieme agli
oggetti - Può essere inefficiente trovare i diritti
potrebbe richiedere una ricerca in una lista
lunga - È indicizzato per oggetto per ogni oggetto cè
una lista di coppie ltsoggetto, azionegt - È largamente usato con i gruppi
- Usato in UNIX/Windows NT
22GROUPS (gruppi)
- Sono collezioni di utenti (es. amministratori,
poweruser, user, guest) - Assegnare permessi ai gruppi ? ogni utente del
gruppo riceve permessi - Gli utenti possono stare in più gruppi (solo in
UNIX) - Sono definiti da utenti con privilegi speciali,
come lamministrazione del sistema - Un gruppo dovrebbe essere definito elencando le
identità dei membri inclusi nel gruppo
23GROUPS (2)
- Sono il livello intermedio tra user e oggetti
24GROUPS (3)
- Caso di autorizzazione negativa
A
B
C
D
USER
GRUPPI
Accesso negato
OGGETTI
25GERARCHIA DI GRUPPI
- Limitato ordine di gruppi
- Ogni gruppo ottiene i permessi del gruppo sotto
- Permessi ltdiritti, risorsegt
- Gerarchia per diritti o risorse
- se lutente ha diritti r, e rgts, allora lutente
ha diritti s - Se lutente ha accesso alla directory, lutente
ha accesso a ogni file della directory.
26I GRUPPI IN ACLs(esempi)
- GRUPPO 1 Alice, Mara, Giovanna, Nicola, Gianni
- GRUPPO 2 Alice, Mara, Giovanna, Nicola, Paolo
- GRUPPO 3 Mara, Giovanna, Nicola, Paolo
- FILE 1 GRUPPO 1, R GRUPPO 3, RW
- Paolo vuole scrivere il FILE 1
- FIRST RELEVANT ENTRY accesso negato
- ANY PERMISSION IN LIST accesso consentito
27ANY PERMISSION IN LIST
- Ricerca lunga la ricerca viene effettuata finché
il permesso non è stato trovato o finché la lista
non è terminata - Lefficienza dipende dallordine in ACL lutente
più frequente dovrebbe essere il primo nella
lista - La rimozione di un permesso potrebbe essere senza
effetti.
28ANY PERMISSION IN LIST (2)
- ESEMPIO
- GRUPPO1 Alice, Mara, Giovanna, Nicola, Gianni
- GRUPPO2 Alice, Mara, Giovanna, Nicola, Paolo
- FILE1 GRUPPO1, R GRUPPO2, RGianni, RW
- Effetti
- REMOVE GROUP2, R ?tutti eccetto Paolo possono
tranquillamente leggere il file1
29FIRST RELEVANT ENTRY RULE IN ACL
- efficiente ricerche più corte in media rispetto
a any permission - Ordine in ACL decisivo.
- ESEMPIO
- GRUPPO1 Alice, Mara, Giovanna, Nicola, Gianni
- GRUPPO2 Alice, Mara, Giovanna, Nicola, Paolo
- FILE1 GRUPPO1, R GRUPPO2, RGianni, RW
- Effetti
- REMOVE GROUP2, R ?tutti eccetto Paolo possono
tranquillamente leggere il file1 Gianni non ha
effetti. - REMOVE GROUP1, R ? Gianni ottiene il permesso
di scrivere mettendo Gianni per primo
rallentiamo la ricerca nella lista.
30CAPABILITY
- In questo caso consideriamo la partizione di M
per soggetti. - Infatti la tabella viene memorizzata per righe
- La riga viene immagazzinata con il soggetto
- Ad ogni soggetto viene associata la lista di
elementi - ltoggetti, dirittigt
- Queste coppie vengono chiamate CAPABILITY
31CAPABILITY (2)
Data 1 Data 2 Prog. 1 Prog. 2
Alice R, W E
Bob R R, W R, W, E
- Capability
- Alice (Data 1, RW )(Prog. 1, E)
- Bob (Data 1, R) (Data 2, RW) (Prog. 1, RWE)
32PROTEZIONE E AUTENTICAZIONE
- Se usato in un sistema singolo
- Contiamo sullintegrità del sistema operativo e
sui meccanismi impiegati in esso - Se usato sulla rete
- Autenticazione e protezione è prevalentemente
crittografica -
33CARATTERISTICHE
- Chi mantiene la capability?
- I processi che le presentano quali credenziali
per accedere alloggetto - Sono una sorta di chiave daccesso alla
serratura che protegge loggetto - Perché funzioni occorre che
- I processi non possono coniare ad arte
capability false - Loggetto possa riconoscere capability autentiche
- Sia possibile negare a un processo il diritto di
copia o cessione della propria capability ad un
altro processo - Problemi
- Come controllare chi ha accesso a uno specifico
oggetto - Come annullare la capability
- Difficile sapere chi può leggere un certo oggetto
O
34CARATTERISTICHE (2)
- Possono essere implementate tramite tecniche di
crittografia - Al processo viene fornita come capability la
tripla - ltoggetto, diritti di accesso, codice di
controllogt - Il processo può memorizzarla ma non può
modificarla (ad esso appare una stringa di bit
indecifrabile) - Quando un processo vuole accedere a una risorsa
- Presenta la richiesta alloggetto insieme con la
capability relativa - Loggetto
- Decodifica la capability
- Verifica che il codice di controllo sia corretto
e che la richiesta sia autorizzata dalla
capability ricevuta - La capability può essere trasferita ad un altro
oggetto
35CONFRONTO TRA ACLs E CAPABILITY (esempio)
F1 F2 F3 F4 F5 F6
S1 O, R, W O, R, W W
S2 O, R, W R O, R, W
S3 R R O, R, W R O, R, W
CAPABILITY S1 (f2, orw) (f3, orw) (f5, w) S2 (f1, orw) (f3, r) (f5, orw) S3 (f2, r) (f3, r) (f4, orw) (f5, r) (f6, orw)
ACLs F1 (s2, orw) F2 (s1, orw) (s2, r) (s3, r) F3 (s1, orw) (s3, r) F4 (s3, orw) F5 (s1, w) (s2, orw) (s3, r) F6 (s3, orw)
36REVOCHE DEI DIRITTI DI ACCESSO
- In generale la revoca può essere
- immediata o ritardata
- selettiva o generale
- parziale o totale
- temporanea o permanente
- Revoca in sistemi basati su ACL
- sufficiente aggiornare in modo corrispondente le
strutture dati dei diritti di accesso
37REVOCHE DEI DIRITTI DI ACCESSO (2)
- Revoca in sistemi basati su capability
- Linformazione relativa ai permessi è memorizzata
presso i processi. Come si possono allora
revocare i diritti di accesso? - Capability a validità temporale limitata
- una capability scade dopo un prefissato periodo
di tempo - è così permesso revocare diritti (ma in modo
ritardato) - Capability indirette
- vengono concessi diritti non agli oggetti ma a
elementi di una tabella globale che puntano agli
oggetti - è possibile revocare diritti cancellando elementi
della tabella intermedia
38PROTECTION STATE TRANSITION
- Lo stato di protezione del sistema cambia quando
i processi eseguono le operazioni. - Stato iniziale del sistema è X0(S0, O0, A0)
- - rappresenta la transizione
- I successivi stati sono X1, X2
- Linsieme dello stato di transizione è
rappresentato da un insieme di operazioni ?1,
?2. - xi -? xi1 comando ? muove il sistema dallo
stato xi allo stato xi1 - Xi - xi1 una sequenza di comandi muove il
sistema dallo stato xi allo stato xi1 - I comandi sono chiamati PROCEDURE DI
TRASFORMAZIONE
39COMANDI DI TRANSIZIONI
- Linsieme di comandi primitivi modificano
laccess control matrix - Questi comandi sono
- create subject s create object o
- creare una nuova riga in ACM creare una
nuova colonna in ACM - destroy subject s destroy object o
- cancellare riga in ACM cancellare una
colonna da ACM - enter r in as, o
- aggiunge il diritto r per soggetti s su
oggetti o - delete r from as, o
- rimuove il diritto r dal soggetto s
sulloggetto o
40COMANDI CONDIZIONALI
- I privilegi attribuiti hai soggetti possono
essere cambiati con dei comandi. - A volte, tali comandi, richiedono che siano
soddisfatte alcune condizioni, facciamo alcuni
esempi - Supponiamo che un processo p desideri dare ad un
altro processo q il diritto di leggere il file f,
il comando sarebbe - COMMAND grantreadfile1(p,f,q)
- IF own IN ap,f
- THEN
- ENTER r INTO aq,f
- END
- Questo è il caso con una condizione.
41COMANDI CONDIZIONALI (2)
- In un comando possono essere poste insieme due
condizioni, vediamo un esempio - Supponiamo che un soggetto abbia anche un diritto
c su un oggetto, esso può dare ed un altro
soggetto il diritto r su tale oggetto. Quindi - COMMAND grantreadfile2(p,f,q)
- IF r IN ap,f AND
c IN ap,f - THEN
- ENTER r INTO
aq,f - END
42COMANDI CONDIZIONALI (3)
- I comandi con una condizione, come nel primo
caso, sono detti MONOCONDITIONAL, quelli con due
condizioni sono chiamati BICONDITIONAL. - Entrambi hanno un comando primitivo e quindi
detti MONO-OPERATIONAL. - Nota tutte le operazioni sono unite con un END e
mai con un OR, questo perché OR è equivalente a
due comandi, ognuno con una condizione.
43SPECIAL RIGHT
- Sono due i diritti per cui vale la pena
discutere - copy flag
- own right
- Entrambi questi diritti sono relativi al
principio di attenuazione dei privilegi di cui
parleremo dopo.
44COPY FLAG
- Spesso chiamato grant right, permette ai
possesori di concedere diritti agli altri - Per il principio di attenuazione, solo quei
diritti che il concessore possiede possono essere
copiati. - ESEMPIO
- c copy right supponiamo che un soggeto p
abbia diritti r su un oggetto f. Il seguente
comando permette a p di copiare r su f ad un
altro soggetto solo se p ha copy right su f. - COMMAND grantr(p,f,q)
- IF r IN ap,f AND c IN ap,f
- THEN
- ENTER r INTO aq,f
- END
45OWN RIGHT
- E il diritto speciale che consente ai possessori
di aggiungere o cancellare diritti a se stessi. - Permette ai possessori di concedere diritti agli
altri - Chi ha tale diritto su un oggetto è solitamente
il soggetto che ha creato tale oggetto o un
soggetto a cui il creatore gli ha dato il possesso
46ATTENUATION OF PRIVILEGE
- Se un soggetto non possiede diritti su un
oggetto, esso non può dare quei diritti ad un
altro soggetto. - ESEMPIO
- Matt non può leggere il file xyxxy, non puo
concedere a Holly il diritto di leggere quel file - Questa è una conseguenza del cosiddetto
ATTENUATION OF PRIVILEGE
47PUNTI CHIAVE
- ACM è il primo meccanismo astratto in materia di
sicurezza informatica. - Non è usato direttamente a causa dello spazio
richiesto molti sistemi hanno centinaia di
oggetti e potrebbero avere centinaia di utenti.
Immagazzinare tutto e apportarvi eventuali
modifiche non sarebbe semplice. - Transizioni cambiano lo stato del sistema. Sono
espresse in termini di comandi che possono anche
includere condizioni