Documente Academic
Documente Profesional
Documente Cultură
1 Introduction to DAC
Caracteristici de baza:
Modelele DAC:
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:
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
⇒
t r t r
x y z x y z
g g
⇒
r
x y z x y z
unde:
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.
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
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 +λ.
x și y cu un cuvânt asociat în ( t )∗ .
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);
3 sI = s or sI se întinde definitiv la s;
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
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
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:
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
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.
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
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
Substitution
Exemplul 15
Fie S un set de subiecti si O un set de obiecte. Daca σ (X) = s ∈ S si
σ (X I ) = o ∈ O, atunci
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:
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 )
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.
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 .
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.
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ă.
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:
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).
simplu de implementat;
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:
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.
Liste de capacități
Probleme cu capacități:
How ?
Modelul schematic oferă o structură considerabil mai mare decât
HRU.
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
Prezenta lui x/rc in dom(y) subsumeaza prezenta lui x/r, dar nu vice versa !
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
where r ∈ RC;
fi : TS × TS→P (T × R)
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))
cc ⊆ TS × T
TS = {user}, TO = {file}
Concluzii finale