Sei sulla pagina 1di 3

Safety e modelli di sicurezza

Che cosa veramente sicuro e cosa no?


Dare un permesso r ad un soggetto che allinizio non lo possedeva detto leaking.
Se un sistema S che inizia in uno stato

S 0 non pu assegnare (leak) il permesso r

allora questo sicuro rispetto al permesso r.


La domanda che quindi ci poniamo : esiste un algoritmo in grado di determinare
quando un generico sistema S con uno stato iniziale

S 0 sicuro rispetto ad un

generico permesso r?
Formalmente possiamo scrivere:
1. Stato iniziale:

X 0 =( S0 , O0 , A0 )

2. Set di Comandi primitivi c


Possiamo noi raggiungere uno stato

Xn

dove esiste una cella

A n [s , o]

che include

un permesso r che non aveva nello stato iniziale?


Se questo avviene il sistema non sicuro (safe).
Come si pu fare per rendere sicuro un sistema? Sicuramente usando comandi monooperazionali per non permettere di rendere difficile il controllo delle combinazioni.
Il caso generale (comandi non operazionali non sicuro per la macchina di Turing)
Cosa ci dice questo?
La safety decidibile per qualche modello
La safety lavora bene solamente se il massimo dei permessi noto in anticipo.
La politica deve specificare tutti i permessi che si possono avere non solo quelli
che si hanno.
Pu la safety in un sistema con determinate regole essere stabile?
Modello Take-Grant
Si parla di un sistema specifico (non generico):
il sistema rappresentato con un grafo diretto
ci sono delle regole di scrittura per le transizioni degli stati
la safety decidibile e lineare nel tempo con la grandezza del sistema
lobiettivo di trovare condizioni sotto le quali i permessi possono essere
trasferiti da unentit ad unaltra del sistema.

Take:

1) Si ha un grafo diretto del tipo:


dove x,y e z sono le tre
entit ed r ed i permessi.
2) La regola di take permetti di aggiungere larco da x a z con etichetta cos

.
Quindi lentit x prender labilit su z la quale apparteneva a y.
Grant:

1) X,y e z sono tre vertici distinti di un grafo:


2) La regola del grant fa si che venga aggiunto larco tra y e z con etichetta

facendo cos in modo che x dia (grant) a y labilit di fare su z.


Create:

1) Lascia che x crei un nuovo vertice n in questo modo :


Remove:

1) X rimuove larco tra lui ed y e quindi i permessi:


Queste sono chiamate le regole di De Jure.

Un esempio delluso di questo modello dato nel Buffer condiviso (shared buffer)
Allinizio s garantisce i diritti per i processi P e Q.
S, attraverso le regole qui elencate pu creare un buffer condiviso su P e Q:
S crea un nuovo oggetto B
S grant ({r,w} a B) da P
S grant ({r,w} a B) da Q

Simmetria:

Tg-arco: indica gli oggetti connessi dallarco t e g (take grant).


Il sotto grafo con il massimo numero di tg connessi detto isola (vedi figura a destra)