Sunteți pe pagina 1din 43

Modele discreționare de control al accesului

Prof.Dr. Ferucio Laurenţiu Ţiplea

Department of Computer Science


Alexandru Ioan Cuza University of Iaşi
Iaşi, Romania
E-mail: ferucio.tiplea@uaic.ro

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 1 / 43


Outline

1 Introduction to DAC

2 The Take-grant Model

3 The Access-matrix Model

4 The Schematic Model

5 Concluding Remarks on DAC Models

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 2 / 43


Introduction to DAC

Discretionary Access Control

Caracteristici de baza:

Modelele DAC aplică controlul accesului pe baza identității


solicitantilor

Modelele DAC sunt numite „discreționare”, deoarece utilizatorii pot primi


posibilitatea de a transmite privilegiile lor altor utilizatori

DAC mechanisms usually include a concept of object ownership

Modelele DAC:

Take-grant model (Modelul de preluare)

Access-matrix model (Model de acces cu matrice)

Schematic model (Model schematic)

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 3 / 43


The Take-grant Model

The Take-grant Model

The take-grant model a fost propus in:

A.K. Jones, R.J. Lipton, L. Snyder: A Linear Time Algorithm for Deciding
Security, Proc. of 17th Annual Symp. on Found. of Comp. Sci., 1976.

Caracteristici de baza:

Sistemele de preluare sunt sisteme de state de tranziție


Subiectele nu sunt obiecte
Statele sunt grafice direcționate ale căror noduri sunt subiecte și obiecte
și ale căror arcuri sunt etichetate prin seturi de drepturi
Există două drepturi speciale: take (t) and grant (g):
if x are dreptul de a lua y, atunci x poate „împrumuta” de la toate abilitățile sale (drepturi)
if x are dreptul de a acorda y, atunci x atunci x poate „împrumuta” tuturor abilitățile sale (drepturi)

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 4 / 43


The Take-grant Model

Take-grant States

Example 1
mount root r, w
x t
user file1
r, w

file2 device

Figure:Take-grant state

Inseamna:
Cercurile întunecate reprezintă subiecte
Cercurile deschise stau pentru obiecte
Cercurile gri indică fie un subiect, fie un obiect
Un arc de la x la y etichetat α spune că x are drepturile r ∈ α pentru y

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 5 / 43


The Take-grant Model

Transitions in Take-grant Systems

Relația de tranziție în sistemele de preluare este ghidată de patru reguli:

Take: x take r for z from y


r


t r t r
x y z x y z

Grant: x grant r for z to y


r r

g g

r
x y z x y z

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 6 / 43


The Take-grant Model

Transitions in Take-grant Systems

Create: x create α for new subject/object y


α

x x y

Remove: x remove r for y


α α -r

x y x y

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 7 / 43


The Take-grant Model

Safeness in Take-grant Systems

Definiți predicatul can.share(r, x, p, G)



can.share(r, x, p, G) ⇔ ∃GI : G ⇒ GI ∧ r ∈GI (p, x)

unde:

G and GI are take-grant states


r este un drept

x and p are noduri in G

Definitia 2
Fie G o stare de preluare, r un drept, iar x si p noduri in G. G este numit safe
pentru r ;i x w.r.t. p daca can.share(r, x, p, G) nu tine.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 8 / 43


The Take-grant Model

Connected Nodes

Definitia 3
Fie G o stare de preluare iar x si y doua noduri ale lui G.
1 x si y sunt direct conectate dacă există un arc între ele.
2 x si y sunt direct tg-conectate dacă există un arc între ele cu o etichetă
conținând t sau g.
3 O cale (tg-path) este o secvență x0 , x1 , . . . , xn de noduri astfel încât xi și
xi+1 sunt direct conectate (tg-connected), pentru orice 0 ≤ i < n.
4
x și y sunt conectate (tg-connected) dacă există o cale (tg-path) intre ele.

Remark 1
Subliniem că dacă x și y nu sunt conectate în G, atunci ele nu pot fi conectate
în nicio GI obținută prin rescrierea G. Acest lucru se datorează faptului că
nicio regulă nu adaugă arcuri între nodurile neconectate.
Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 9 / 43
The Take-grant Model

Initial/Terminal Span, Island, Bridge

Fie G un take-grant state. Cu fiecare tg-path se asociază unul sau mai multe
− ←
→ − − ←
cuvinte peste alfabet { t , t , →
g , g−} într-un mod evident.

Definitia 4
Fie G un take-grant state.
1 O insula G este orice subiect-unic tg-connected ca subgraph al lui G.
Un nod x initial intins pe y daca x este un subiect și exista o tg-path intre
− −

x și y cu un cuvânt asociat în ( t )∗ →
2

g +λ.

Un nod x se termina pana la y daca x este subiect și există o tg-path intre




3

x și y cu un cuvânt asociat în ( t )∗ .

4 Un bridge (pod) este o tg-path cu puncte finale in ambele subiecte și cu



→ ←− − − ←
→ − − −←
→ −
un cuvânt asociat în ( t )∗ + ( t )∗ + ( t )∗ →
g ( t )∗ + ( t )∗ ←
g ( t )∗ .

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 10 / 43


The Take-grant Model

Deciding Safeness

Teorema 5
Fie G o stare de preluare, r un drept, și noduri x și p în G. Atunci,
can.share(r, x, p, G) este adevărat dacă și numai dacă r ∈ (p, x) sau există un
nod s, doua subiecte pI si sI , si insulele I1 , . . . , In in asa fel incit:
1 r ∈G (s, x);

2 pI = p or pI inițial se întinde spre p;

3 sI = s or sI se întinde definitiv la s;

4 pI este in I1 , sI este in In , și există un pod de la Ij to Ij+1 , pentru toate 1 ≤ j < n.

Corolar 6
Există un algoritm pentru testarea can.share care funcționează în timp
liniar la dimensiunea stării inițiale (grafic).
Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 11 / 43
The Access-matrix Model

The Access-matrix Model


Cel mai general model de DAC a fost propus în 1976:

M.A. Harrison, W.L. Ruzzo, J.D. Ullman. Protection in Operating


Systems, Communications of the ACM, vol.19, no. 8, 1976, 461–471.

Se numește modelul matricei controlului accesului sau modelul matricei


accesului sau modelul HRU.

Caracteristici de baza:
Este un sistem de tranziție de stare
Statrile sunt matrici în care fiecare rând corespunde unui subiect, fiecare
coloană corespunde unui obiect și o celulă specifică drepturile pe care
un subiect le are asupra unui obiect
Tranzițiile între stari sunt efectuate prin comenzi
Subiectele sunt si obiecte

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 12 / 43


The Access-matrix Model

States in the Access-matrix Model


În ceea ce urmează, R notează un set finit de drepturi non-goale.

Definitia 7
O stare peste R este un triplu Q = (S, O, A), unde S si O sunt seturi finite non-
goale de subiecte si obiecte, respectiv, iar A este o | S | × | O |-matrix ale carui
elemente sunt subseturi de R.

Exemplu 8
Fie S = {process1 , process2 }, O = {process1 , process2 , file}, si A date mai jos:

process1 process2 file


process1 0/ r r, w
process2 r, x 0/ r

Tripla (S, O, A) este o stare peste R = {r, w, x}.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 13 / 43


The Access-matrix Model

Primitive Operations
Vsub = set de variabile de tip subiect, Vob = set de variabile de tip obiect

Definitia 9
O operatie primitiva peste R este o construcție a unuia dintre următoarele tipuri:
1 enter r into (Xs , Xo )
2 delete r from (Xs , Xo )
3 create subject Xs
4 create object Xo
5 destroy subject Xs
6 destroy object Xo

unde r ∈ R, Xs ∈ Vsub , si Xo ∈ Vob .

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 14 / 43


The Access-matrix Model

Commands

Definitia 10
O comanda peste R este o constructie a formei:
command α (X1 , . . . , Xk )
if r1 in (Xs1 , Xo1 ) and
command α (X1 , . . . , Xk )
···
op1 , . . . , opn
rm in (Xsm , Xom )
end
then op1 , . . . , opn
end
unde m, n ≥ 1, r1 , . . . , rm ∈ R, X1 , . . . , Xk ∈ Vsub ∪ Vob , 1 ≤ s1 , . . . , sm , o1 , . . . , om ≤ k,
Xsi ∈ Vsub si Xoi ∈ Vob for all 1 ≤ i ≤ m, si op1 , . . . , opn sunt operatiuni peste R
ale căror variabile sunt printre X1 , . . . , Xk .

Definitia 11
Un system de protectie peste R este un set finit C de comenzi peste R.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 15 / 43


The Access-matrix Model

Examples of Commands

Exemplul 12
command CREATE(process, file)
create object file
enter own into (process, file)
end

Exemplul 13
command CONFER_READ(owner, friend, file)
if own in (owner, file)
then
enter r into (friend, file)
end

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 16 / 43


The Access-matrix Model

Examples of Commands

Exemplul 14
command REMOVE_READ(owner, exfriend, file)
if own in (owner, file) and
r in (exfriend, file)
then
delete r from (exfriend, file)
end

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 17 / 43


The Access-matrix Model

Substitution

O substitutie atribuie valori variabilelor în funcție de tipurile lor:

subiecți la variabile de tip subiect și

obiecte la variabile de tip obiect.

Substituțiile pot fi aplicate homomorfic la operațiile și comenzile primitive.

Exemplul 15
Fie S un set de subiecti si O un set de obiecte. Daca σ (X) = s ∈ S si
σ (X I ) = o ∈ O, atunci

σ (enter r into (X, X I )) = enter r into (s, o)

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 18 / 43


The Access-matrix Model

Transition Relation
Având în vedere o operație op și o substituție σ , definiți relația binară ⇒σ (op)
pe stari de
(S, O, A)⇒σ (op) (SI , OI , AI )
dacă și numai dacă există una dintre următoarele proprietăți:

1 daca op = enter r into (X, Y ), atunci σ (X) ∈ S, σ (Y ) ∈ O, SI = S, OI = O, si


(
I A(s, o) ∪ {r}, if (σ (X), σ (Y )) = (s, o)
A (s, o) =
A(σ (X), σ (Y )), altfel

2 daca op = delete r from (X, Y ), atunci σ (X) ∈ S, σ (Y ) ∈ O, SI = S, OI = O, si


(
I A(s, o) − {r}, if (σ (X), σ (Y )) = (s, o)
A (s, o) =
A(σ (X), σ (Y )), altfel

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 19 / 43


The Access-matrix Model

Transition Relation
3
if op = create subject X, then σ (X) /∈ O, SI = S ∪ {σ (X)}, OI = O ∪ {σ (X)},
and (
I A(s, o), if (s, o) ∈ S × O
A (s, o) =
0/, otherwise
4 if op = create object Y , then σ (Y ) /∈ O, SI = S, OI = O ∪ {σ (Y )}, and
(
I A(s, o), if (s, o) ∈ S × O
A (s, o) =
0/, otherwise
5
if op = destroy subject X, then σ (X) ∈ S, S I = S − {σ (X)}, OI = O − {σ (X)},
and AI (s, o) = A(s, o), for all (s, o) ∈ SI × OI ;
6
if op = destroy object Y , then σ (Y ) ∈ O − S, SI = S, OI = O − {σ (X)}, and
AI (s, o) = A(s, o), for all (s, o) ∈ S I × OI .
Definiti acum
(S, O, A)⇒op (SI , OI , AI ) ⇔ ∃σ : (S, O, A)⇒σ (op) (SI , OI , AI )

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 20 / 43


The Access-matrix Model

Transition Relation
Avand o comanda α si o substitutie σ , definiti relatia binara ⇒σ (α ) pe
Statea de
(S, O, A)⇒σ (α ) (SI , OI , AI )
dacă și numai dacă există una dintre următoarele proprietăți:
1 daca testul σ (α ) nu este satisfacut la (S, O, A), atunci (SI , OI , AI ) = (S, O, A);
2 daca testul σ (α ) este satisfacut la (S, O, A), atunci exista Q0 , Q1 , . . . , Qn
astfel incat
(S, O, A) = Q0 ⇒σ (op1 ) Q1 ⇒σ (op2 ) · · · ⇒σ (opn ) Qn = (SI , OI , AI )
unde op1 , . . . , opn este corpul lui α .
Definiti acum
(S, O, A)⇒α (SI , OI , AI ) ⇔ ∃σ : (S, O, A)⇒σ (α ) (SI , OI , AI )
si
(S, O, A)⇒(SI , OI , AI ) ⇔ ∃α : (S, O, A)⇒α (SI , OI , AI )
Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 21 / 43
The Access-matrix Model

Safety

Definitia 16
Fie C un sistem de protecție peste R, Q o stare de C , r ∈ R, si α o comanda
a lui C . Spunem ca α scurge r din Q daca exista o substituie σ astfel incat:
1 testul lui σ (α ) este satisfacut la Q;
2 exista Q0 , Q1 , . . . , Qi astfel incat:
Q0 = (S0 , O0 , A0 )⇒σ (op1 ) Q1 = (S1 , O1 , A1 )⇒σ (op2 ) · · · ⇒σ (opi ) Qi = (Si , Oi , Ai );
r ∈ Ai (s, o) − Ai−1 (s, o) pentru orice s si o,
unde op1 , . . . , opi , . . . , opn este corpul lui α si 1 ≤ i ≤ n.

Definitia 17
Fie C un sistem de protecție peste R, Q o stare de C , si r ∈ R. Spunem ca C
scurge (leaks) r din Q daca exista o comanda a lui C care scurge r din Q.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 22 / 43


The Access-matrix Model

Safety

Definiția 18
Fie C un sistem de protecție peste R, Q o stare de C și r ∈ R. Spunem că Q
este nesigur pentru r dacă există o stare QI de la Q astfel încât C scurge r
from QI .

Spunem ca Q este sigur pentru r daca nu este nesigur pentru r.


Problema de siguranta pentru sistemele de protecție este problema de a decide,
având în vedere un sistem de protecție pentru un set de drepturi R, o stare Q a lui
C , si un drept r ∈ R, daca Q este sigur pentru r.

Remark 2
Subliniem că „scurgerile” nu sunt neapărat „rele”. Orice sistem de protecție
interesant are comenzi care pot scurge unele drepturi. Totuși, aceste
scurgeri nu ar trebui să apară în stări neautorizate.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 23 / 43


The Access-matrix Model

Decizia siguranței

Teorema 19
Problema de siguranță pentru bi-conditional (i.e., cel mult două condiții)
monotonice (i.e., fără operațiunile de ștergere și distrugere) sistemele de
protecție sunt indecise.

Teorema 20
Problema de siguranță pentru sistemele de protecție mono-
condiționale fără operații de distrugere este determinabilă.

Majoritatea sistemelor practice necesită comenzi multi-condiționale!

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 24 / 43


The Access-matrix Model

Punerea în aplicare
Implementările matricei de control de acces nu se extind bine: o bancă cu
50,000 de angajati și 300 de aplicații ar avea o matrice de control de acces
de 15 milioane de intrări!
Avem nevoie de modalități compacte de stocare și gestionare a matricilor de
control de acces. Două moduri principale de a face acest lucru sunt:

1 utilizați grupuri (roluri) pentru a gestiona privilegiile (drepturile) seturilor


mari de utilizatori simultan (control de acces bazat pe roluri - RBAC);

2 stocați matricea fie pe coloane (liste de control acces - ACL) fie pe


rânduri (liste de capacități).

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 25 / 43


The Access-matrix Model

Liste de control de acces

Definiție 21
O listă de control de acces (ACL) este o coloană a matricei de control de
acces (prin urmare, asociată unui obiect - ACL asociată lui o este notată
ACLo și este stocată împreună cu o).

Avantajele și dezavantajele ACL-urilor:

adecvat mediilor în care utilizatorii își gestionează propria securitate de


fișiere;
mai puțin potrivite acolo unde populația de utilizatori este mare și în
continuă schimbare;
mai puțin potrivite acolo unde utilizatorii doresc să poată delega
autoritatea lor pentru a rula un anumit program pentru un alt utilizator
pentru o anumită perioadă de timp;

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 26 / 43


The Access-matrix Model

Liste de control de acces


Avantajele și dezavantajele ACL-urilor (continuare):

simplu de implementat;

verificarea securității în timpul funcționării este dificilă (de obicei,


sistemul de operare știe ce utilizator rulează un anumit program, mai
degrabă decât fișierele la care a fost autorizat să acceseze);

obositor să găsești toate fișierele la care un utilizator are acces;

obositor pentru a rula verificări pe întregul sistem, cum ar fi verificarea


dacă nu există fișiere a fost lăsat scris de lume de către utilizatorii al
căror acces a fost revocat.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 27 / 43


The Access-matrix Model

Access Control Lists in Unix


În Unix:
fiecare fișier sau folder are permisiuni de acces asociate. Există trei tipuri de
permisiuni:
citire access
scriere access
executie access

permisiunile sunt definite pentru trei tipuri de utilizatori:


proprietarul fișierului
grupul căruia proprietarul aparține
oricui altcuiva (world)

Fiecare tip de permisiune are exact două valori, permise sau


refuzate, specificate de un bit.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 28 / 43


The Access-matrix Model

Access Control Lists in Unix

Exemplu 22
ACL for a file:
-rw-r----- Alice Accounts

Primul bit specifică faptul că ACL este pentru un fișier, următorii trei biți dau
drepturi de acces pentru proprietar, următorii trei biți pentru grup și ultimii trei biți
pentru oricine altcineva. Urmează apoi numele proprietarului și numele grupului.

Exemplu 23
ACL for a folder:

drwxrwxrwx Alice Accounts


Primul bit specifică faptul că ACL este pentru un folder (director); următorii
biți au același sens ca mai sus.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 29 / 43


The Access-matrix Model

Access Control Lists in Unix


Cum este asociat un ACL unui program în Unix?
Unix nu oferă nicio metodă directă pentru a face acest lucru. Cu toate acestea, există
două atribute, suid (set user ID) și sgid (set de id grup), care ajută pentru acest lucru:

proprietarul programului marchează programul ca suid (bitul x în proprietar


ACL este setat pe s, care înseamnă atât x și suid, fie S înseamnă doar suid);
apoi, programul este plasat într-un folder în care un utilizator Alice are
acces;
Alice poate rula programul cu privilegiul proprietarului său.

(lucrurile sunt similare pentru sgid).

Această metodă duce la gauri grave de securitate.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 30 / 43


The Access-matrix Model

Access Control Lists in Windows NT


În Windows NT, controlul de acces este mai bogat decât Unix, dar nu în
mod fundamental diferit:
Există șase tipuri de permisiuni:
citire access
scriere access
executie access
stergere
permisiuni de schimbare (i.e., modificare ACL)
preia proprietatea (face din contul curent noul proprietar)

permisiunile sunt definite pentru utilizatori și grupuri. Fiecare tip de


permisie are trei valori, Acces refuzat, Acces permis și Audit sistem.

ACLs sunt asociate la elemente (adică fișiere sau directori) și fiecare ACL
este o listă cu intrări ale formularului
· · · (user/group,permissions) · · ·
Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 31 / 43
The Access-matrix Model

Liste de capacități

Definitie 24
O listă de capabilități (C-list) este un rând al matricei controlului de
acces (prin urmare, asociată unui subiect - lista C asociată lui s este
notată Cs , și este stocată împreună cu s).

În practică, este mai convenabil să stocați C-list Cs ca listă de perechi (o, r),
unde o este un obiect și r este un drept (permisiunea). O astfel de pereche
se va numi o capacitate; apoi, Cs becomes a list of capabilities. Fiecare
capacitate acționează ca un bilet pentru a o accesa cu permisiunea r. Prin
urmare, capabilitățile sunt etichete de autentificare.
Această tehnică este folosită în sistemul de operare EROS (Extremely
Reliable Operating System), sistem de operare Hydra (CMU), IBM
System/38 and AS/400, sistem de operare distribuit Amoeba etc.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 32 / 43


The Access-matrix Model

Liste de capacități
Probleme cu capacități:

cum să reprezinte obiectul o în capacitate (o, r)?


Utilizarea adresei este posibil să nu fie o idee bună dacă adresa se
schimbă. O soluție ar fi să folosești șiruri de biți aleatorii, tabele de hash
și tehnici de traducere (scheme de denumire);
Cum să faci ca capacitățile să nu poată fi executate? Există o
serie de posibilități:
tag-uri hardware: etichetă de 1 biți asociată capabilității, care arată
că capacitatea nu poate fi / nu poate fi modificată sau copiată;

spațiu de adrese protejat: stocarea funcțiilor în părți ale memoriei care nu


sunt accesibile programelor;

securitate bazată pe limbaj: utilizarea unui limbaj de programare


pentru a impune restricții privind accesul și modificarea funcțiilor;
criptografie: utilizați criptarea.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 33 / 43


The Schematic Model

The Schematic Model


The schematic model has been proposed in:

R. S. Sandhu: The Schematic Protection Model: Its Definition and


Analysis for Acyclic Attenuating Schemes, Journal of the ACM 35(2),
1988, 404–432.

Why this model ?

Pentru a umple golul dintre bogăția de putere expresivă a HRU


modelul și intractabilitatea sa în ceea ce privește problema de
siguranță, în comparație cu aplicabilitatea limitată a modelului de
acordare, dar decizia eficientă a siguranței.

How ?
Modelul schematic oferă o structură considerabil mai mare decât
HRU.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 34 / 43


The Schematic Model

The Schematic Model: Types and Rights


Types:
subject types: TS
object types: TO

T = TS ∪ TO
τ (x): type of the entity x
subiecții și obiectele sunt entități distincte

Rights:
inert rights: RI (nu afectează starea de protecție)
control rights: RC (poate schimba starea de protecție)

R = RI ∪ RC
copy flag c: rc means “r is copyable”, while r means “r is not copyable”
r : c denotes r or rc (rc subsumes r !)
Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 35 / 43
The Schematic Model

The Schematic Model: Tickets


Tickets:

Un ticket este o pereche (x, r : c) (adesea scris x/r : c)

Abreviatia: x/r1 r2 c inseamna {x/r1 c, x/r2 c}

τ (x/r : c) este definit ca τ (x)/r : c

pentru subectul x, dom(x) este un set de tickete care au x

Prezenta lui x/rc in dom(y) subsumeaza prezenta lui x/r, dar nu vice versa !

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 36 / 43


The Schematic Model

Modelul de schemă: stare


Stare:

O stare constă dintr-un set (finit) de entități dactilografiate (subiecți și


obiecte)
together with their domains
Operațiuni care modifică starea curentă:

copie: mută o copie a unui bilet din domeniul unui subiect către
domeniul altuia, lăsând biletul inițial intact
creaza: introduce subiecte și obiecte noi în sistem

Formularea inițială a modelului a inclus o a treia operație, cerere.


Cu toate acestea, acest lucru este formal redundant:

R. S. Sandhu: The Demand Operation in the Schematic Protection


Model, Information Processing Letters 32(4), 1989, 213–219.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 37 / 43


The Schematic Model

Modelul de schemă: operația de copiere


The copy operation is guided by a link predicate linki and a filter function fi :

linki (x, y) is a disjunction or conjunction of atomic terms:

x/r ∈ dom(x), x/r ∈ dom(y), y/r ∈ dom(x), y/r ∈ dom(y),

where r ∈ RC;
fi : TS × TS→P (T × R)

One filter function is associated to each link predicate !

A ticket z/r : c can be copied from dom(x) to dom(y) iff there exists i such that:

z/rc ∈ dom(x);
linki (x, y) evaluates to true;
τ (z)/r : c ∈ fi (τ (x), τ (y))

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 38 / 43


The Schematic Model

Modelul de schemă: Operația de creare


The create operation is guided by two predicates: cc (can create) and cr:

cc ⊆ TS × T

(a, b) ∈ cc a subject of type a can create an entity of type b


cr handles the tickets

object creation: cr(a, b) ⊆ {b/r : c|r ∈ RI}


(when a subject x of type a creates on object y of type b, x gets y/r : c iff
b/r : c ∈ cr(a, b))
subject creation:
a /= b: cr(a, b) = crp (a, b) ∪ crc (a, b)
(as above, x gets y/r : c iff b/r : c ∈ crp (a, b), and y gets x/r : c iff a/r : c ∈ crc (a, b))

a = b: cr(a, b) ⊆ {a/r : c, self /r : c|r : c ∈ RI}


(as above, where self /r : c denotes tickets for the creator)

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 39 / 43


The Schematic Model

Modelul de schemă: exemple

Example 25 (Owner-based policy)


Subject u can authorize subject v to access an object z iff u owns z:

TS = {user}, TO = {file}

RI = {r : c, w : c, a : c, x : c} (read, write, append, execute)


RC = 0/
link(u, v) = true, for all u and v of type user

f (user, user) = {file/xc}


cc = {(user, file)}
cr(user, file) = {file/rc, file/wc, file/xc}

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 40 / 43


The Schematic Model

Modelul de schemă: exemple

Example 26 (Modelul de bază de acordare a grantului)


TS = {user}, TO = {file}
RI = {x : c} (execute)
RC = {t : c, g : c}
link(u, v) = true iff v/g ∈ dom(u) or u/t ∈ dom(v)
f (user, user) = T × R
cc = {(user, file), (user, user)} cr(user,
file) = {file/xc} cr(user, user) =
{user/tgc, self /tgc}

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 41 / 43


The Schematic Model

Modelul schematic: rezultate


Modelul schematic subsumează mai multe modele de protecție cunoscute în
termeni de putere expresivă și analiză de siguranță, cum ar fi:

modelul de securitate pe mai multe niveluri Bell-LaPadula


modele de acordare-grant
modelul de protecție gramaticală

R. S. Sandhu: Expressive Power of the Schematic Protection Model,


Journal of Computer Security 1(1), 1992, 59–98.

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 42 / 43


Concluding Remarks on DAC Models

Concluzii finale

Politicile DAC impun controlul accesului pe baza identității solicitant și reguli


de acces explicit

Politicile DAC ignoră distincția dintre utilizatori și subiecți și evaluează toate


cererile trimise de un proces (subiect) care rulează în numele unui utilizator
împotriva autorizațiilor utilizatorului

Politicile DAC sunt vulnerabile în urma proceselor care execută programe


dăunătoare (cum ar fi Troian Horses) care exploatează autorizațiile
utilizatorului în numele cărora le execută

Politicile DAC nu impun niciun control asupra fluxului de informații odată ce


aceste informații sunt obținute de un process

O examinare mai precisă a problemei controlului de acces arată utilitatea


separarea utilizatorilor de subiecți și controlul fluxului de informații !

Prof.Dr. Ferucio Laurenţiu Ţiplea (UAIC) Discretionary Access Control Models 43 / 43

S-ar putea să vă placă și