ACCESS CONTROL MATRIX
STUDENTE: COCUZZI NICOLETTA
MATR.:3037571
ARGOMENTI TRATTATI




Protection state
Access Control Matrix
Modello ACM
Meccanismi di rappresentazione di ACM
o
o
o

Protection state transition
o
o


Access Control List
Capability
Revoca dei diritti
Comandi di transizione
Comandi condizionali
Diritti speciali
Attenuation of privilege
PROTECTION STATE
PROTECTION SYSTEM: descrive le condizioni in
base alle quali un sistema può definirsi sicuro.
E’ caratterizzato da due elementi fondamentali:
1.
un insieme generico di diritti;
2.
un insieme di comandi;
PROTECTION STATE (2)
PROTECTION STATE:
Lo STATO (state) di un sistema è una collezione di valori
correnti riferiti a:
1.
Tutte le locazioni di memoria, dei registri, della memoria
secondaria etc…
2.
Tutte le altre componenti del sistema
La PROTEZIONE è l’insieme dei meccanismi usati da un
sistema informatico per il controllo dell’accesso alle
risorse
Goal: dimostrare che tutte le operazioni nel sistema
conservano la sicurezza nello stato di protezione
PROTECTION 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:
1.
Ogni volta che il sistema è in Q, il sistema è
sicuro;
2.
Quando lo stato corrente è in P-Q il sistema
non è sicuro.
PROTECTION STATE (4)
1.
Un cambiamento del sistema può risolversi in un
cambiamento dello stato di protezione.
Tali cambiamenti sono, spesso, forzati.
2.
L’insieme degli stati e delle operazioni
consentite ad ogni elemento dell’insieme sono
definiti.
Le operazioni consentite ad uno stato autorizzato
generano un altro stato autorizzato.
In pratica un’operazione può generare uno stato di
transizione multiplo.
ACCESS 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.
NASCITA ACM
1.
Sviluppato da Lampson nel 1971;
2.
Perfezionato da Graham e Denning
tra il 1971 e il 1972.
IL 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
IL MODELLO (2)
Nella matrice sono catturate tutte le relazioni tra le
entità:
R ➠ a[s,o]
dove
s
∈ S,
o∈
O
A [s,o] ⊆ R;
A [s,o] ➠ insieme di privilegi/diritti/azioni di s su o.
IL MODELLO (3)
1.
Quando viene creato un oggetto:


2.
3.
si aggiunge una colonna nella matrice di accesso;
il contenuto della nuova colonna è deciso al
momento della creazione dell’oggetto;
E’ un modello astratto: il significato dei diritti
può cambiare in base agli oggetti coinvolti
Non è molto appropriata per l’implementazione
diretta:
IL MODELLO (3)
A.
La matrice è sparsa e gli elementi possono essere vuoti; in
questo caso può essere inefficiente
Data 1
Alice
R, W
Bob
R
Carol
David
Eve
Data 2
Prog. 1
E
R, W
R, W, E
R
R, W
Prog. 2
R
R
E
E
R, W, E
R, E
IL MODELLO (4)
B.
La gestione della matrice può rivelarsi
difficoltosa se ci sono 10…1000 file e parecchi
utenti ➠ milioni di matrici
DESCRIZIONE
SEMPLICE 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
MECANISMI DI
RAPPRESENTAZIONE

Tabella globale: lista non nulla di triple (s, o, a)
esempio
questo metodo consiste nella memorizzazione in una tabella
di triple del tipo:
<soggetto, oggetto, insieme dei diritti>
VANT: è semplice da realizzare;
SVANT: se la tabella diventa molto grande, è difficoltoso
l’aggiornamento dei permessi d’accesso.
MECANISMI DI
RAPPRESENTAZIONE (2)
Access Control Matrix può essere
implementata in due modi:

ACCESS CONTROL LIST (colonne);

CAPABILITY LIST (righe).
ACCESS 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
l’esecuzione.
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.
ACCESS CONTROL LIST (2)



La tabella viene memorizzata per colonne
Ad ogni elemento viene associata una lista di
elementi:
<soggetto, diritti di accesso>
Ottimizzazioni:
l’ampiezza della lista può essere ridotta
associando i diritti a insieme di domini o usando
diritti standard (default)
ACCESS CONTROL LIST
(ESEMPIO)
Data 1
Alice
R, W
Bob
R
Carol
David
Eve
R, W
Access control list:
Data 1:{(Alice, rw),
(Bob, r), (David, rw)}...
ACLs: 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 <soggetto, azione>
È largamente usato con i gruppi
Usato in UNIX/Windows NT
GROUPS (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 l’amministrazione del sistema;
Un gruppo dovrebbe essere definito elencando le
identità dei membri inclusi nel gruppo;
GROUPS (2)

Sono il livello intermedio tra user e oggetti:
A
B
C
D
USER
GRUPPI
OGGETTI
GROUPS (3)

Caso di autorizzazione negativa
A
Access
o
negato
B
C
D
USER
GRUPPI
OGGETTI
GERARCHIA DI GRUPPI




Limitato ordine di gruppi;
Ogni gruppo ottiene i
permessi del gruppo
sotto;
Permessi = <diritti,
risorse>
Gerarchia per diritti o
risorse:


se l’utente ha diritti r, e
r>s, allora l’utente ha
diritti s;
Se l’utente ha accesso
alla directory, l’utente
ha accesso a ogni file
della directory.
AMMINISTRATORE
POWERUSER
USER
GEST(ospite)
I 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;
“ANY PERMISSION” IN
LIST
→
→
→
Ricerca lunga: la ricerca viene effettuata finché
il permesso non è stato trovato o finché la lista
non è terminata;
L’efficienza dipende dall’ordine in ACL: l’utente
più frequente dovrebbe essere il primo nella
lista;
La rimozione di un permesso potrebbe essere
senza effetti.
“ANY PERMISSION” IN
LIST (2)
ESEMPIO
 GRUPPO1: Alice, Mara, Giovanna, Nicola, Gianni;
 GRUPPO2: Alice, Mara, Giovanna, Nicola, Paolo;
 FILE1: [GRUPPO1, R]; [GRUPPO2, R];……;[Gianni,
RW]
Effetti:

REMOVE [GROUP2, R] ➠tutti eccetto Paolo
possono tranquillamente leggere il file1
“FIRST 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, R];……;[Gianni, 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.
→
CAPABILITY
In questo caso consideriamo la partizione di M per
soggetti.
o
Infatti la tabella viene memorizzata per righe;
o
La riga viene immagazzinata con il soggetto;
o
Ad ogni soggetto viene associata la lista di
elementi:
<oggetti, diritti>
o
Queste coppie vengono chiamate CAPABILITY
CAPABILITY (2)
Data 1
Alice
R, W
Bob
R
Data 2
Prog. 1
Prog. 2
E
R, W
R, W, E
Capability:
Alice: {(Data 1, RW );(Prog. 1, E)}
Bob: {(Data 1, R); (Data 2, RW); (Prog. 1, RWE)}
PROTEZIONE E
AUTENTICAZIONE
o Se usato in un sistema singolo

Contiamo sull’integrità del sistema operativo e sui
meccanismi impiegati in esso;
o Se usato sulla rete

Autenticazione e protezione è prevalentemente
crittografica
CARATTERISTICHE
Chi mantiene la capability?

I processi che le presentano quali “credenziali” per accedere
all’oggetto;

Sono una sorta di “chiave” d’accesso alla “serratura” che
protegge l’oggetto
Perché funzioni occorre che:

I processi non possono “coniare” ad arte capability false

L’oggetto 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
CARATTERISTICHE (2)




Possono essere implementate tramite tecniche di
crittografia;
Al processo viene fornita come capability la tripla:
<oggetto, diritti di accesso, codice di controllo>
Il processo può memorizzarla ma non può modificarla (ad
esso appare una stringa di bit indecifrabile)
Quando un processo vuole accedere a una risorsa


L’oggetto:



Presenta la richiesta all’oggetto insieme con la capability
relativa
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
CONFRONTO TRA ACLs E
CAPABILITY (esempio)
F1
S1
S2
S3
O,
R,
W
F2
F3
O,
R,
W
O,
R,
W
F4
F6
W
R
R
F5
O,
R,
W
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 =
F2 =
F3 =
F4 =
F5 =
F6 =
{(s2,
{(s1,
{(s1,
{(s3,
{(s1,
{(s3,
orw)}
orw); (s2, r); (s3, r)}
orw); (s3, r)}
orw)}
w); (s2, orw); (s3, r)}
orw)}
REVOCHE 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
REVOCHE DEI DIRITTI
DI ACCESSO (2)
Revoca in sistemi basati su capability
L’informazione 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
PROTECTION 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

L’insieme dello stato di transizione è rappresentato da un
insieme di operazioni Т1, Т2….
→
xi |-Т xi+1: comando Т muove il sistema dallo stato xi allo stato
xi+1;
Xi |- * xi+1: una sequenza di comandi muove il sistema dallo
stato xi allo stato xi+1
I comandi sono chiamati PROCEDURE DI TRASFORMAZIONE
→

COMANDI DI
TRANSIZIONI
L’insieme di comandi primitivi modificano l’access 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 a[s, o];
aggiunge il diritto r per soggetti s su oggetti o

delete r from a[s, o];
rimuove il diritto r dal soggetto s sull’oggetto o
COMANDI 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 grant·read·file·1(p,f,q)
IF own IN a[p,f]
THEN
ENTER r INTO a[q,f]
END
Questo è il caso con una condizione.
COMANDI 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 grant·read·file·2(p,f,q)
IF r IN a[p,f] AND c IN a[p,f]
THEN
ENTER r INTO a[q,f]
END
COMANDI 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.
SPECIAL 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.
COPY 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 grant·r(p,f,q)
IF r IN a[p,f] AND c IN a[p,f]
THEN
ENTER r INTO a[q,f]
END
OWN 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
ATTENUATION 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”
PUNTI 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
TABELLA GLOBALE
(Esempio)
Alice
Alice
Bob
Bob
Bob
Carol
Carol
David
Data 1
Prog 1
Data 1
Data 2
Prog 1
Data 2
Prog 2
Data 1
R, W
E
R
R, W
R, W, E
R
E
R, W
continua
Scarica

access control matrix - Dipartimento di Matematica e Informatica