• Non ci sono risultati.

ACCESS CONTROL MATRIX

N/A
N/A
Protected

Academic year: 2021

Condividi "ACCESS CONTROL MATRIX"

Copied!
48
0
0

Testo completo

(1)

ACCESS CONTROL MATRIX

STUDENTE: COCUZZI NICOLETTA

MATR.:3037571

(2)

ARGOMENTI TRATTATI

Protection state

Access Control Matrix

Modello ACM

Meccanismi di rappresentazione di ACM

o Access Control List

o Capability

o Revoca dei diritti

Protection state transition

o Comandi di transizione

o Comandi condizionali

Diritti speciali

Attenuation of privilege

(3)

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;

(4)

PROTECTION STATE (2)

PROTECTION STATE 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

(5)

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.

(6)

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.

(7)

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.

(8)

NASCITA ACM

1. Sviluppato da Lampson nel 1971;

2. Perfezionato da Graham e Denning

tra il 1971 e il 1972.

(9)

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

(10)

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.

(11)

IL MODELLO (3)

1.

Quando viene creato un oggetto:

si aggiunge una colonna nella matrice di accesso;

il contenuto della nuova colonna è deciso al momento della creazione dell’oggetto;

2.

E’ un modello astratto: il significato dei diritti può cambiare in base agli oggetti coinvolti

3.

Non è molto appropriata per l’implementazione

diretta:

(12)

IL MODELLO (3)

A. 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

(13)

IL MODELLO (4)

B.

La gestione della matrice può rivelarsi

difficoltosa se ci sono 10…1000 file e parecchi

utenti milioni di matrici ➠

(14)

DESCRIZIONE

(15)

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

(16)

MECANISMI DI

RAPPRESENTAZIONE

Tabella globale: lista non nulla di triple (s, o, a)

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.

esempio

(17)

MECANISMI DI

RAPPRESENTAZIONE (2)

Access Control Matrix può essere implementata in due modi:

ACCESS CONTROL LIST (colonne);

CAPABILITY LIST (righe).

(18)

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.

(19)

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)

(20)

ACCESS 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

(21)

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

(22)

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;

(23)

GROUPS ( 2 )

Sono il livello intermedio tra user e oggetti:

A B C D USER

OGGETTI GRUPPI

(24)

GROUPS ( 3 )

Caso di autorizzazione negativa

A B C D USER

OGGETTI GRUPPI

Access negatoo

(25)

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)

(26)

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;

(27)

“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.

(28)

“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

(29)

“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.

(30)

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

(31)

CAPABILITY (2)

Capability:

Alice: {(Data 1, RW );(Prog. 1, E)}

Bob: {(Data 1, R); (Data 2, RW); (Prog. 1, RWE)}

Data 1 Data 2 Prog. 1 Prog. 2

Alice R, W E

Bob R R, W R, W, E

(32)

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

(33)

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

(34)

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

Presenta la richiesta all’oggetto insieme con la capability relativa

L’oggetto:

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

(35)

CONFRONTO 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)}

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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.

(41)

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

(42)

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.

(43)

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.

(44)

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

(45)

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

(46)

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”

(47)

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

(48)

TABELLA GLOBALE (Esempio)

Alice Data 1 R, W

Alice Prog 1 E

Bob Data 1 R

Bob Data 2 R, W

Bob Prog 1 R, W, E

Carol Data 2 R

Carol Prog 2 E

David Data 1 R, W

continua

Riferimenti

Documenti correlati

More- over, for the first time it was demonstrated that a small amount (&lt;2 nmol) of CP elicited the synthesis of phy- toalexins such as umbelliferone and glyceollin, in host

1) In merito ai servizi analoghi per il requisito del fatturato e dell'attività svolta, in caso di gestione di servizi di comunità alloggio e casa famiglia per minori, si

Ricorda: il soggetto è la parte della frase che indica chi compie l'azione, di chi si parla o di un argomento di cui si discute.. Concorda con il predicato nella persona e

= CHE è CONGIUNZIONE , quindi introduce una proposizione subordinata = il verbo della reggente NON ha la persona ( SI SPERA ...) quindi la subordinata è

«deve risentire e sopportare quegli effetti, che saranno utili o buoni per lui, se l’azione sua sarà stata utile o buona per la società, e saranno dannosi o cattivi per lui, se

È importante sottolineare come tale teoria non sia né una forma di panpsichismo (secondo cui il mentale esiste ma sia distribuito liberalmente nel mondo naturale), né di

analizzando la distribuzione dei dipendenti della relazione nsubj sulla base della posizione che essi occupano rispetto alla testa sintattica si è visto che,

Verifica della concordanza del sogge9o con il verbo della predicazione.