-
-
. ..
-
-
:
..
2008
-
..
2008 .
-
3
I. ............................................................
6
1.1.
...................................................................................
6
1.1.1.
........................................................... 6
1.1.2. 9 1.1.3. ,
.................................. 12 1.2. . 15
1.2.1. ,
................................................................................
15
1.2.2.
............................................................... 19
1.3.
..........................................................................................
22 1.3.1.
................................................................
22 1.3.2. -
..........................................................
23
1.3.3.
...................................................................................
28
1.3.4. ............... 35
II.
.....................................................................................
43
2.1.
..........................................................................................
43
2.1.1. . ............................................. 43
2.1.2. .............................................. 46 2.1.3.
......................................... 50
2.1.3.1. -- (HRU-) .................. 50 2.1.3.2.
................................ 53 2.1.3.3.
TAKE-GRANT.............................................................
56 2.1.3.4. TAKE-GRANT.......................................
67
2.2.
..........................................................................................
72
2.2.1. .............. 72 2.2.2. -
................................. 77
-
4
2.2.3. - ......................... 80 2.3.
..........................................................................................
86 2.3.1. . 86 2.3.2.
....................................................................
90 2.3.3. - ...... 106
2.4.
........................................................................................
112
2.4.1. - ............................. 112
2.4.2.
..........................................................................................
115
2.4.3. - .................. 125 2.5. -
............................................ 133 2.5.1.
...................................................................................
133 2.5.2.
.............................................................................
135 2.5.3.
"" " " ....... 140 2.6.
.............................................................................................
143 2.6.1.
.....................................................................
143 2.6.2. - .................................. 144 2.6.3.
...................................................... 145 2.6.4.
-
() ....................................................... 148
2.7.
() ...........................................................
152 2.7.1. , ....... 152 2.7.2.
................................................. 155
2.8. ............. 159
2.8.1.
..............................................................
159
2.8.2.
...........................................................................................
162
2.8.3. ................................. 167
-
5
III. ....................................... 178
3.1. -
............................................................................
178
3.2. - ............ 181
3.2.1. - -
........................................................................................................
181
3.2.2. - .....................................................
186
.................................................................
190 I. HRU
.................................................................................
190 II. TAM
.............................................................................
192 III. TAKE-GRANT
............................................................ 196
IV. TAKE-GRANT ....................................... 199 V. -
....................................................... 201 VI.
............................................................ 203
VII.
.....................................................................................
206 VIII. -
........ 209
....................................................................
212
-
6
II..
1.1.
1.1.1.
, - , . - , - , - .
, - , - , - . , , , , - , - , , , , - .
- 70- - -. , - - . () -. , .. , . , . , . , . , . , . ., -. - ,
. , . . , .
-
7
, , , , - , , -.
, , - - , "" . - - .
70- - , - , - , , , - . . - , 1977 .. " - ".
- , , - " ", 1983 . -, , --, () - -, 80- 90- . . , ., . , . , .
.
90- - . , , .. , - - - . .. .. - , - -
-
8
. .. - , - . .. .. - , - - . , .. - -- , - , -, - .
- .. , () .. . , .. - . - , , -- .
(.. , .. , .. , .. , .. .) - , , .
-
9
1.1.2.
- () " -", - (, , , ) - .
" -" , - (), ( ) ( ).
" " , " ", - - , , (), - , - (). , - () - () () . (-), , , - (,
) .
"" ( (, ) 1), - , , , , - () "- " : - ; - ; - . - () , , , , . ,
- , , -
1 " , ".
-
10
( -, .. ), - , ( ). () -, , , .. , .. , - . , .. , , - , () , .
, , [] (-) , . , .., , , - . , (, ) - . "" - "". - (, ) . - , " ",
, - : - ; - . ( , , -) ( - ). ( ) - - (, , ). , . , ( , - / ) ( ) .
-
-
11
. , - .. , , , - , . , - - , - - , , (- ) ( ). , , , .. ( -) ,
.. . , - - .
, , , (), - , [-] .
-
12
1.1.3. ,
- ( ). . , - , , - , , - (, ), , ( ). . , - , ( ) (), . . , -- -
, -, , , , - . . - -, -, -, -, . . - .. , , , ( -). . ( - ), ( ), ,
, ( - () ), () .
-
13
. - , , - , -, - . , , -, -, - , - , , - , -. - - - (. .
1.1).
.1.1.
, - , - , , ,
-
14
, - (), , , - .
- , .. -- .
- , - , -, - .
- , - - , -, , - () , - , - - .
, , - () , -, - , , . - - . , - - - - - () , , - - .
-
15
1.2.
1.2.1. ,
- -, - , , () . - , - , , [-] / [- ] . - ( ) - , , . , - , - (
-, .. , ; ). - ( ), , - . .1.2 - () -, , , .. , - , .., - .
-
16
.1.2. - ()
()
(), .1.2, ( "-"). ( -, / -) -, , -/ - (.. ), , / (.. , ). - - -
, , : O = O1 O2 , O1 O2 = .
() . / -
-
17
, (), , , . , () .
-- -, , , .. - - ( " -", , - ); - - ( " ").
- - ( ) - , . . - - , , -/ , .., . , - , - ( ) .
, - , /.
- . - "" .
, - - , - , .
51275-99 " . . , - ", , [] - . ,
-
18
, , , , . .1.3. - / 3- (.. ).
.1.3. 51275-99 , ( -
) , -, - . .
( ), - () .
, , , (- ) , ( ), - ( ), , , .. .
-
19
1.2.2. , - - , , - () . . .1.4.
.1.4. . - . - ( ), - . , -
-
20
- - , 210-2... 410-3. - , , - , 2- ( -) . , ( ). - . , , . , ( )
-, , - -, . - .
1. ( --, , - , , , .. - , 10-12).
2. , ( - , , ).
3. ). , , , - . . - ( ), - , - (, , ).
4. ( - , .. "", - , -
-
21
, "", ..).
5. , , , . , , "-
" , - , , - , , -, .
-
22
1.3.
1.3.1.
- . - , - , - . - (, , - . .) .
, , - : - - (), ; - () (-, , ); - - - .
- " ()- ()- ()". , , -, . - - - - . , , - , - .
-
23
1.3.2. -
- . - .
1. . 2. tk -
, -:
- S; - O.
1.3.1. - , - , , - .
1.3.2. - , .
- (. . -) , () , -. , , tk , , .
3. - , - .
1.3.4. , , , , - , .
, - . , , , , -
-
24
( ). , - , , - (- ) (. . ).
4. ( ).
1.3.5. oi sm sj , oi sm .
, sj , - sm . :
Create (sj, oi) sm " oi sm - sj ".
Create . , , , tk , - tk + 1.
Create , -. , - - , - . - - . - Create (sj, oi) .
, , , - (), . 1.3.6. oi tk - sm , tk+1 (. . sm -, oi ).
1.3.6 , - - , - . ,
-
25
, - () - ( ), - . -, - , - . , - - - , . , -, , () - .
- , . , - - .
5. , .
1.3.7. oi - oj oj , - sm oi .
: Stream(sm , oi) oj " oi(oj) -
oj(oi) sm ( sm)". -
, , , . . oi oj, - , , -, , -, () (, ). , - 1.3.7 , , , , . . ,
. ., - , , , , . . . , ( ), , (, ). - , 1.35 1.3.6 , :
-
26
- ; -.
- () (, ). -- , (, , ). , (-) (), , , , - . 5, , - 1.3.7, () -.
- . 1.3.8. sm oj - sm oj -() oi ( . ., , oi - sm ).
1.3.8 - - . - P - ( P ). , , P PN PL :
P = PL PN, PL PN =,
PL , () ;
PN , (, - ) .
, - .
-
27
1.3.9. - , PL .
1.3.9 - , , , , , ( ), ( - ). , 1.3.9 - , , - .
, , , , , , .
-
28
1.3.3.
, - , - . 1.3.1. - (1) 2.
- . - () () () , , . , 1.3.1 - () , , , , , - - - . 1.3.2. (, .
.) -()-, .
" ". - , .1.5. , (, ), ( , ), , (- , ) ( - , ), (, , ). - , . .
1.5..
1 -.
2 - .
-
29
.1.5..
.1.5..
, , , /, ( ) . . 1.5.. , ( ), , - . , - ( ) . -, -
( )
( - )
()
-
30
, - ( ) . , - -, - :
1. . (-) - , -.
2. . .
3. 1. - (- ) .
4. . , -2. , -
, -. - . 1.3.3. , - ( ) (), () ( ).
1.3.3 , , -, , - - . . 1.3.1 ( 1.3.3). - ( ), - . . - (), ()
.
1 , - .
2 , , .
-
31
- , -, , - 1. , - -, . 1.3.2 ( 1.3.3). - , , .
, . - . . , - , . . () -. . 1.3.3 ( 1.3.3). - ( ), - - - .
, , -, , .
, - . , - , - 1 , - /, .
-
32
. (, , ) (-) . 1.3.9 , . . , , .
- () . "-", , "" - , , .
() - . , , 1 . , " ". - - - , "-" (-) . , 2, - . , , -, 1.3.8,
1.3.9 - . () . - () PL - () - "()-()-".
"- ", . . " ()- ()" ("") -/ - 1 , "" , (, . .) () - , - .
2 , , , , , .
-
33
/ (Read, Write . .). , - - , . () .
() PL - ( ), - ( ), - - " -()- ".
, , - . , - . . (-) PL - , , - , - - " ".
, , - , , - -. . () PL 1 - , "" (-) , ( ), -
1 , , - .
-
34
.
--, , , - ( ). - , - . , - - ( ) , , , , , . , , . - "()--". - .
- , ( ), - - . - . ( - , , . .) - , . - - , , , , - .
-
35
1.3.4. - , , - . 1.3.10. , () .
. , , - . , , , , , , . () () , , . . (. . ) , , .
- ... - (. . ) - .
.. - - .
. , , -
() , , , - . , -, - , , , . - , - .
-
36
, , , () 1.
:
; .
. 1.3.11. () - , , , , PL.
1.3.12. () - , , - -.
1.3.12, , . , , -, - ( ) - -, . . 1.6.
, - , . , - (. . ). - , , , , .
1 , . . (- Create), , () - - ( ). - , ( ), , .
-
37
.1.6. (Stream) (Create) , -
. 1.3.13. oi oj t
(oi[t] oj[t]), , . 1.3.13 , - . (-) , - , , , -, (. . ).
-. 1.3.14. si sj t, .
1.3.13 1.3.14 - -, , , .
()
C ()
oi oj
sk
sm
Stream(sm, oi) oj -
( -)
-
ol
Create(sm , sl) sk
-
38
1.3.4 ( 1.3.13 1.3.14). - , -.
-- , , - , . . - -, -. , , -, , , . . 1.3.15. si sj ( ), - ( )
oik ojl , , - si sj. oik - sj, ojl si.
, " " - 1.3.15 ( - 1.3.13) . . 1.3.16. si sj - ( ), 1.3.15 -
.
- . 1.3.1 ( 1). - PL , - .
. - , -- - ()
-
39
. , - , , -, () . . 1.3.1 - , , ( - , , . .). , , - . 1.3.17. -,
, --, .
" " (). - , . 1.3.18. - ( ), ( -) .
. 1.3.5. ( 1.3.18). - ( ) , , ( ) .
1.3.6. ( 1.3.18). (- ) , - ( ) ( ) , (- ).
- .
-
40
1.3.2. ( 2). , - , , , .
. 1.3.18 - . -, . - - , - , PL. .
, , -, , () ().
, , - , - .
, , , - , - , . 1.3.19. Create(sk, om) sl , t> t0 , Create,
sl - - t0 , . . om[t] om[t0].
1.3.19 , - -, -. 1.3.7. ( 1.3.19). 1.3.19 sl[t1] sl[t2] , t1>
t0 t2> t0 . t1=t2 .
-
41
, - . 1.3.3. ( ). , , t0 , - ( ), tk> t0 ( ).
. t0 "" - . , 1.3.19 1.3.7 , , - . , . -.
1.3.3 - - . , - 1.3.3 . , , " ". , , , .
(-) - ( ) -. (-) - - . , - -, -. , 1.3.1 1.3.3, - () (-), -. -
() . 1.3.15
-
42
- , -, , . , - - - - ( , , , , ), - . , -, .
-
43
IIII..
2.1. , -
, . - , . - , .
- , , . . , , -, .
2.1.1. .
-
, - , -, . 60- . -50 ( 60- ), - ( 70- ), -- ( 70- ), Take-Grant
(1976 .). - - , . - (, . .). () - " ()-- ()-".
-
44
. - , . -, . , () - , - .
, , - , -. .
1. (): - U ; - R ; - S ; - A; - E .
2. :
A U E R S . (2.1.1) 3. , .
q = (u, e, R', s) , (2.1.2)
u U, e E, s S, R' R (R'- ). , - . , (2.1).
4. - . 4.1. U , -
u. A , - . F(u) u.
-
45
4.2. A P =F(e), e . P =F(e) - e.
4.3. A P =F(R' ), - R'. P =F(R' ) - R'.
, , D(q)
D(q) = F(u) F(e) F(R' ) . 4.4. , R' D(q), . . r R' D(q). 4.5.
D(q) , - ( D(q)), - r R'. D(q) e.
- , D(q) - F(u, q). F(u, q) - u q. 4.6. (EAC), - q , F(u, q) r
R', R'' . 4.7. EAC :
- , R'' R' ; - .
,
, . , , , , - R. . ? - .
-
46
2.1.2. - , -. - (), -, , . . 2.1.
. 2.1.
"" - . , - () - . . 2.1. , "--()-".
1.3.3 - , . -, () , , -, - , .
o1 o2 oj oN
s1 w s2 r si r,w
sM e : w " "; r " "; e " ".
-
47
.
- - . -, , , . , , . - , , (. . ), - ( ) . -, , -. () - - - . -
. . " " UNIX-.
, " ", , " ", . , , - , , , , 1. ( , ) 2. , " -" ( ) - , - ( ),
- .
, - , 1 " " - . 2 , , . . " ", , , , (. . ), .
-
48
.
, . . - , :
; .
- 1.3.3 1.3.3 . , - , - , , - . , - () . - , - - ( ), - ( , . .
).
- "" . 2.1.1. -, , - 1, (- ).
, - , , - - , - . -: 2.1.1. () .
1 , , ( ).
-
49
, - - - . , , , , . . 1. , -, , , ( - , , , , , - ). - ( , ). -
"", . , . , , - , -, HRU. - .
1 , , .
-
50
2.1.3.
- - . , , , (), - . 2.1.3.1. -- (HRU-)
. 1. :
- O (o1, o2, , oM ); - S (s1, s2, , sN ) ,
S O; - A,
R (r1, r2, , rK ), . . A[s, o] R.
ri , A[s, o], () - .
, HRU - . 1.3.2 - , "" (. . S O), , , , , .
2. . - Op :
- Enter r into A[s,o] r A[s,o]; - Delete r from A[s,o] r A[s,o];
- Create subject s s (. . -
A); - Create object o o (. . -
A); - Destroy subject s s; - Destroy object o o.
Q = (S, O, A) Q'= (S',O',A').
-
51
. 2.1 .
3. - :
Command (x1, x2, , xk) if r1 in A[xs1, xo1] and ( )
r2 in A[xs2, xo2] and . . (2.1.3) . rm in A[xsm, xom]
then op1, op2, , opn (, )
Qi - l , - Qi -1
Qi = l(Qi -1), (2.1.4) , , .
2.1
- HRU
-
Enter r into A[s,o] s S, o O
S'=S, O'=O, A'[s, o] = A[s, o]{r}, (s',o')( s,o)
A'[s',o']=A[s,o]
Delete r from A[s,o] s S, o O
S'=S, O'=O, A'[s,o]= A[s,o] \ {r}, (s',o')(s,o)
A'[s',o']=A[s,o]
Create subject s' s' S S'=S {s'}, O'=O {s'}, (s,o)SO
A'[s,o]=A[s,o], oO' A'[s',o] = , sS' A'[s, s'] =
Create object o' o' O S'= S, O'=O {o'}, (s,o)SO A'[s,o]=A[s,o],
sS' A'[s,o] =
Destroy subject s' s' S S'=S \ {s'}, O'=O \ {s'}, (s,o)S'O'
A'[s,o]=A[s,o]
Destroy object o' o' O \ S S'=S, O'=O \ {o'},
-
52
(s,o) S'O' A'[s,o]=A[s,o]
4. - Q0, - . :
2.1.2. ( HRU). r, - Q0= (S0,O0,A0) Q0 - , r A[s,o], Q0 .
- ( - ). , ( ) , , - , , , Q0. , , - , (. . Q0) .
, -, . 2.1.3. , - opi .
HRU , - . 2.1.1. , , - r .
2.1.1 , . , , - -. , , ( Delete Destroy), , Create, - ( - ). ,
.
-
53
2.1.2. r (2.1.3) - .
, 2.1.2 , HRU -!!!
- HRU , , , , "" . HRU "-", - . , - .
, 70- , , , , . , , , " - " ( Type Access Matrix TAM).
2.1.3.2.
1. : - O (o1, o2, , oM ); - S (s1, s2, , sN ) ,
S O; - A, - R (r1, r2, , rK ), . . A[s,o] R;
- ( ) T (t1, t2,, tL ), (- ). (. . - ). , - ft : OT, - .
2. , ( -):
-
54
- Enter r into A[s,o] r A[s,o]; - Delete r from A[s,o] r A[s,o];
- Create subject s of type t s t; - Create object o of type t o t;
- Destroy subject s s; - Destroy object o o.
Q = (S, O, A) Q'= (S', O', A'). . 2.2 .
3. , HRU, , :
Command (x1:t1, x2:t2, , xk:tk) if r1 in A[xs1, xo1] and ( )
r2 in A[xs2, xo2] and . . (2.1.5) . rm in A[xsm, xom]
then op1, op2, , opn (, ). ,
, . . , - . , - , .
4. - , , .
2.2
- TAM
--
Enter r into A[s,o] s S, o O
S'=S, O'=O, oO ft'(o)= ft(o), A'[s,o]=A[s,o]{r},
-
55
(s',o')(s,o) A'[s',o']=A[s,o] Delete r from A[s,o] s S,
o O S'=S, O'=O, oO ft'(o)= ft(o), A'[s,o]= A[s,o] \ {r},
(s',o')(s,o) A'[s',o']=A[s,o]
Create subject s' of type ts
s' S S'=S{s'}, O'=O{s'}, ft '(s')=ts, oO ft'(o)= ft(o), (s,o)SO
A'[s,o]=A[s,o], oO' A'[s',o] =, sS' A'[s,s'] =
Create object o' of type to
o' O S'=S, O'=O{o'}, ft'(o')=to, oO ft'(o)= ft(o) (s,o) SO
A'[s,o]=A[s,o], sS' A'[s,o] =
Destroy subject s' s' S S'=S \ {s'}, O'=O \ {s'}, oO ft'(o)=
ft(o), ft'(s')= (s,o)S'O' A'[s,o]=A[s,o]
Destroy object o' o'O \ S S'=S, O'=O \ {o'}, oO' ft'(o)= ft(o),
ft'(o')= (s,o)S'O' A'[s,o]=A[s,o]
2.1.4. ti , : "Create subject s' of type ti" "Create object o'
of type ti". ti .
, - "" (- ). () - " ". - T. ti tj , , ti , tj .
, HRU, (TAM) , Delete Destroy. 2.1.5. TAM , .
[29] , -- ( 2.1.2) - TAM, . -
-
56
- - . - , - , - . - . , (, "", "" ; "user", "administra-tor",
"auditor" ) TAM - "" . 2.1.3.3. TAKE-GRANT
, - , - , TAKE-GRANT, , 1976 . TAKE-GRANT, -- , - .
.
1. (O, S, E), - (. . 2.2):
- O ; - S , S O,
: - E (x, y, ) x
y R (r1, r2,, rK ) {t, g}, - take (t - ) - grant (g - ).
-
57
.2.2. TAKE-GRANT (: , - , , , 1 R )
HRU, - , , ( ) -.
2. (. . ) - 4- .
2.1. "" take(, x, y, z) . . 2.3.
. 2.3. "" x z y (-: ' c ; x S; y, z O)
2.2. "" grant(, x, y, z) . . 2.4.
x take(, x, y, z) y z t x y
t
z
'
s1 s2
o1
o2
o3
1 2 3
5 4
6 7
-
58
. 2.4. x y z 2.3. "" create(, x, y) . . 2.5.
. 2.5. x y 1 R (y
, O'=O {y}) 2.4. "" remove(, x, y) . . 2.6.
. 2.6. x y
1 . . t, g, {t, g}.
\ x remove(, x, y) y
'
x
y
create(, x, y) x y
' x
x grant (, x, y, z) y z g
x y
g 'z
-
59
. 2.3 .
3. - - ( 0 (O0, S0, E0) ) , - . 2.3. - - , - . :
- ( );
- (, ).
2.3 - TAKE-GRANT
take(, x, y, z) x S, (x, y, t) E, (y, z, )1 E x z,
S'=S, O'=O, E= E' {(x, z, )}
grant(,x,y, z) x S, (x, y, g)E, (y, z, ) E x z,
S'=S, O'=O, E= E' {(y, z, )}
create(, x, y) x S, y O O'=O {y}, S'=S {y}, y E= E' {(y, z,
)}
remove(,x,y) x S, y O, (x, y, ) E,
S'=S, O'=O, E= E' \ {(x,y,)}{(x, y, )}
3.1. 2.
2.1.6. 0 (O0, S0, E0) R " (, x, y, 0)" - , -
1 (x, y, ) x y . 2 .. 3.1, 3.2 [18] .
-
60
1 (O1, S1, E1), 2 (O2, S2, E2), , N (ON, SN, EN), , :
0(O0,S0,E0)1 1(O1,S1,E1)2N N(ON,SN,EN) (x, y,) EN c1, c2, , cN
2.1, 2.2, 2.3 2.4.
, x y R, - (x, y, ) E0, , (0, 1,, N) 2.1, 2.2, 2.3 2.4. 2.1.7.
tg- (- tg-), , t g ( - ).
tg-, tg- - .
. 2.1.3. 0 (S0,O0, E0), --, " (, x, y, 0)" - , : 2.1.3.1. s1,,sm
, (si, y, i)E0 i=1, , m =1 m. 2.1.3.2. 0 tg- si i=1, , m.
. m=1, m>1.
m=1 2.1.3.1 2.1.3.2 -:
2.1.3.1. s , (s, y, ) E0.
2.1.3.2. x s tg- 0. . " -
(, x, y, 0)". 2.6 1 (O1, S1, E1), 2 (O2, S2, E2),, N (ON, SN,
EN) , : 01 12N N (x, y, ) EN, N , . . (x, y, ) EN -1. 2.1.3.1
2.1.3.2 - N.
N=0 (x, y, ) E0. , 2.1.3.1, 2.1.3.2 .
-
61
N>0, k < N. (x, y, ) E 0 (x, y, ) N N -1 N. , "" "". N ""
( "-"), s SN -1: (x, s, t) EN -1 ( (s, x, g) EN -1), (s, y, ) EN -1
N = take(, x, s, y) ( N = grant (, s, x, y)).
: s S0 s S0. s S0. " (, s, y, 0)",
N. , - s S0: (s, y, ) E0 s s tg- 0. , " (t, x, s, 0)" ( " (g, s,
x, 0)"), N. , sS0: (s, s, t)E0 s x tg- 0( (s, x, g) E0 s s tg- 0).
, s S0: (s, y, ) E0 x, s tg 0. - 2.1.3.1 2.1.3.2 s S0 .
s S0. N , , - . , :
1) - - {t, g};
2) 0 ;
3) ; 4) ""
. , < N 1,
s S0: c = create({g, t}, s, s), cN = take(, x, s, y) " (, s, y,
0)". , " (t, x, s', M)" , s'' - M, s', s'' x tg- 0. " (, s, y, 0)"
, s s'' - tg 0. , sS0: (s, y, ) E0 x, s - tg 0. 2.1.3.1 2.1.3.2 - s
S0 . .
-
62
. 2.1.3.1 2.1.3.2 - tg, - x s.
N = 0. , x = s, (x, y, ) E0 " (, x, y, 0)" .
N = 1, . . sS0: (s, y, ) E0 x, s - tg-. x s, - , (. . 2.7).
. 2.7. tg- x s, - 0 (x, y, ) EN
, N =1 " (, x, y, 0)" -.
N >1. z, tg x s, s 0. N =1 -
x grant(,s,x,y) s y
g x
s
g
y
0 1
)
a)
x take(,x,s,y) s y
t x
s
t
y
0 1
)
x
create({t,g},x,z), take(g,s,x,z)
s y
t
z 0 x
s y t
2 t,g g x
s y
t 1
t,g g
grant (,s,z,y), take(,x,z,y)
z
x
create({t,g},x,z), grant(g,x,s,z)
s y g
z 0 x s y
g 2
t,g g
x
s y g
1 t,g g
grant (,s,z,y), take(,x,z,y)
)
z
-
63
01 12K K : (z, y, ) EK tg z x - N 1, .
. 2.1.3, -
- - - -, , () , , .
, , . " " - . 2.1.8. - tg- , .
, , , -, - 2.3. 2.1.9. tg, -; tg- t
r *, ts *, tr * gr
ts *, tr * g
sts *, * -
( ) . 2.1.10. - tg-, -; tg- t
r * gr . 2.1.11. - tg-, -; tg- t
r *. . 2.1.4. 0 (S0, O0, E0)
" (, x, y, 0)" , 2.1.4.1, 2.1.4.2 2.1.4.3: 2.1.4.1. s1,,sm ,
(si, y, i)E0 i=1, , m =1 m. 2.1.4.2. - x1',, xm'
s1',, sm' , : - = i' i' i=1, , m; - si = si' si' si i=1, ,
m.
-
64
2.1.4.3. (xi', si' ), i=1,,m, - Ii1,, Iiui, ui 1, , xi' Ii1,
si'Iiui , - Iij, Iij+ 1.
. m=1, m>1. . . 2.8.
m=1 2.1.4.1, 2.1.4.2 2.1.4.3 - :
2.1.4.1. sO0 : (s, y, ) E0. 2.1.4.2. x', s' S0 :
- = ' ' ; - s = s' s' s .
2.1.4.3. I1,, Iu , x' I1, s' Iu, Ij Ij+ 1 j=1,, u -1.
. " -(, x, y, 0)". - 1 (O1, S1, E1), 2 (O2, S2, E2),, N (ON, SN,
EN), , : 01 12N N (x, y, ) EN, N , . . (x, y, ) EN -1. - 2.1.4.1,
2.1.4.2, 2.1.4.3 N.
. 2.8. x y
x' x
t
g t t t
I1
t t g t t I2
t t t g I3
s' t
t
s t
y
-
65
N=0 (x, y, )E0. , 2.1.4.1, 2.1.4.2, 2.1.4.3 .
N>0 k < N. (x, y, )E0 (x, y, ) N N -1 cN . x S0 x S0.
xS0, x1SN -1 : cN =grant(, x1, x, y). - N , 2.1.3, , x1S0. :
1. " (g, x1, x, 0)" - , N. - 2.1.4.1, 2.1.4.2, 2.1.4.3:
- x2 O0 : (x2, x, g) E0 ; - x' S0, x2 ; - I1,, Iv, v1 , x1Iv ,
x'I1 ,
Ij Ij+ 1; 2. " (, x1, y, 0)" -
, N. 2.1.4.1, 2.1.4.2, 2.1.4.3:
- s O0 : (s, y, ) E0 ; - s' S0 : s=s' s' s ; - I1,, Iu, (v-u) 1,
, x1Iv, s' I1
Ij Ij+ 1, j=v,, u-1. , x', x2, x .
, x S0 , .
xS0, .1 2.1.4.2 2.1.4 -. , - , .
. 2.1.4.1, 2.1.4.2, 2.1.4.3 . 2.1.4.1 s,
y. . 2 2.1.4.2 s', s, s y.
2.1.3 , , - , . 2.1.4.3 , - . . 2.9 t
r gr ts . .1 2.1.4.2 2.1.4 x', x, , -
-
66
, x . -.
2.1.4 , - - tg-, , , -, 2.1, 2.2 2.3, . - , -, , , - . , - .
. 2.9. tr gr ts
, ( grant), .
3.2. x, yO0 0 (S0, O0, E0).
2.1.12. 0 (O0, S0, E0) R " (, x, y, 0)" - , - 1 (O1, S1, E1), 1
(O2, S2, E2), , N (ON, SN, EN) , :
x
a
t g
0
grant (g,x,b,z), take(g,s,b,z)
b t s
y
ccreate({t,g},x,z), grant(g,x,a,b)
x a t g
1
b t
s
y
z t,g
g
x a t g
2
b t s
y
z t,g
g
g g grant (,s,z,y), take(,x,z,y)
x a t g
3
b t s
y
z t,g
g
g g
-
67
0 (O0,S0,E0)1 1 (O1,S1,E1)2N N (ON,SN,EN) (x, y,)EN c1, c2,, cN
2.1, 2.2, 2.3 2.4;
, (s, y, ) E0, z Sj , j=0,1,, N : c1 grant(, s, z, y).
, 2.1.11 - - - , - "". . 2.1.5. 0 (S0, O0, E0)
" (, x, y, 0)" , - 2.1.5.1, 2.1.5.2 2.1.5.3: 2.1.5.1. (x, y,)
E0. 2.1.5.2. s1,, sm , (si, y, i)E0 i=1, , m =1 m. 2.1.5.3. " -(t,
x, si, 0 )" i=1, , m. . 2.1.4.
, 2.1.5 -, -, 1, - , , , - "" - t .
, TAKE-GRANT - , - - - .
2.1.3.4. TAKE-GRANT TAKE-
GRANT TAKE-GRANT, 2 -. 1 . . , 0 "g" . 2
" ".
-
68
. 2.1.13. - .
- ( Read, Write) . , () , - , , - , , . - - . TAKE-GRANT .
1. (O, S, E), - :
- O ; - S , SO,
: - (x, y, ) x y R, () Read Write.
2. - () - 1, - , - :
2.1. ( ) . . 2.10.
. 2.10. x ( 2) , r y
1 - TAKE-GRANT "-", - "-".
2 TAKE-GRANT [] - [] ( ) -.
x y
r
x y r
' w
-
69
2.2. ( ) . . 2.11.
. 2.11. x , w y
2.3. post (x, y, z) . . 2.12.
. 2.12. x () - z, r y, z - w, z, , x
2.4. spy (x, y, z) . . 2.13.
. 2.13. x z, - r y, , , - r z, x z
2.5. find (x, y, z) . . 2.14.
. 2.14. x z, - w y, , ,
y post (x,y,z)
x z
r w
y
x
r w ' w
r z
y spy (x,y,z) x zr r
y x
r r ' w
r z
y find (x,y,z)x z w w
y x
w w ' r
w z
x
y
w
x y w
' r
-
70
w z, x z
2.6. pass (x, y, z) . . 2.15.
. 2.15. y r z - x, y w, , , () x z
3. - () () x y x y, , 2.1,, 2.6 - .
, , () (), . . , , . , , "" :
, - () (), - -"" - ;
- () - .
. ,
y
pass (x,y,z) x z w r
y
x w r
' w
r z
-
71
( ) ( "-" ).
, , , - - - . - , . -, , , - . - - , , -, .
, ( 0) - , . TAKE-GRANT , , , , - .
-
72
2.2.
2.2.1. , , -
, , -, "" . , , , , - .
. 1. "-" - . - , . ( -), -. , . . , . . -, . . , - , , . . .
2. - -, , . . , , - . -
, -.
, , , . . , , , , , . , - () (, , , , . . -
-
73
). "" , - : 2.2.1.(no read up (NRU) ). (), (- ) ( -).
2.2.2.(no write down (NWD) ). () - ( ).
- : - , . - : - , - -.
- - :
NRU, NWD;
, - ( ). , ,
, , , NWD - - -, - - - . , (- write) , , .
, , - , , "
-
74
" (. . ) - , - -. , - - 1.
.
. 2.2.1. L - L(L, , , ),
L ; , -
L, - , 2:
l L: l l (), l1, l2 L: (l1 l2 l2 l1) l1= l2 (); l1, l2 , l3 L:
(l1 l2 l2 l3) l1 l3 ();
, l1, l2 - L :
l1 l2 = l l1, l2 l l' L: (l' l) (l ' l1 l' l2) ; , l1, l2
L : l1 l2 = l l l1, l2 l' L: (l' l1 l' l2) (l' l) .
2.2.2. FL: X L X = S O L L .
FL-1: L X - Xi , :
X1 X2 XN = X , N- L);
Xi Xj , ij; x' Xi FL(x')= li , li L.
1 , , , .
write read-write, , "" , , append .
2 L , --, L .
-
75
, - .
1. , Xi Xj , . . - Xj Xi. - Xi Xj - Xij. , -, , , .
2. , Xi Xj, , , Xj Xk. , , , Xi Xk. , -, , .
3. . , . - , . . - .
4. , Xi Xj . , , - X', - Xi Xj , Xi Xj , X'' , X' , Xi Xj . , X'
- Xi Xj .
5. Xi Xj X', , Xi Xj X' , - Xi Xj , - X'' , , X' , Xi Xj . -, X'
Xi Xj . ,
- , , , , - NRU NWD, .
-
76
, - . , - - ( NRU NWD). -, , , , - , - . - - . , - .
-
77
2.2.2. - ,
19721975 .. - MITRE Corporation (D.Elliott Bell, Leonard
J.LaPadula), -.
- -.
1. (v0 ,Q, FT) : - O ; - S ; - R ( . . "" -) read write);
- A[s,o]; - L L ; - FL: S O L, S O L;
- V, (FL, A);
- v0 V; - Q ( ) , ;
- FT : (V x Q) V*, V V* Q.
2. . - , - , :
2.2.3. ( ) , -, , - :
sS, o O, read A[s,o] FL(s) FL(o) . 2.2.4. (
*-1) , , , :
1 : ss- ,
*- , ds- () .
-
78
sS, oO, write A[s,o] FL(o) FL(s) . 2.2.5. -, , .
, , , - NRU NWD , . 2.2.6.( --). (v0 ,Q, FT) , v0 , v0 Q, -.
, - " " (). 2.2.1.(Basic Security Theorem). (v0 ,Q, FT) , :
1. v0 , 2. FT , v, - v0 - Q , FT (v,q)=v*, v=(FL,A) v*=(FL*,A*),
- sS oO - read A*[s,o] read A[s,o], FL*(s) FL*(o); - read A[s,o]
FL*(s) < FL*(o), read A*[s,o]; - write A*[s,o] write A[s,o],
FL*(s) FL*(o); - write A[s,o] FL*(s) < FL*(o), write A*[s,o]
.
. . , . -
v0 . , - v, v0 Q, FT (v,q)= v*, ( ) . , v* , - 2.2.3. v* ( ) ,
v* -, 2.2.4. , - . . , . v0, v, - v0 Q . v0 . , v0 , - v*, - v: FT
(v,q)=v*. -
-
79
FT . -, , ( , ) . , - (v0 ,Q, FT). . - . - - NRU NWD : - - -
() , ;
- - - , , - - ;
- , - - - , , ;
- - - , , .
, , - , NRU NWD.
, , FT, , .
- , , , - , , -, " " (1983 .). - "" . "-" , , -
-
80
NRU NWD. , , 2.2.3 2.2.4, , , - 2.2.6 .
2.2.3. - -
, - . - , - ( ) -, , - . , -, Z-, , , , - - (read write). Z- - ,
- . , - () , -, . , , - .
Z-, , , - - - , . . .
- -, -, - "" . , - ( ).
FL: S O L - FLs: S L FLo: O L.
.
-
81
2.2.7. FT : (V x Q) V - , FT(v,q)=v* - :
- read A*[s,o] read A[s,o], FLs(s) FLo(o) FL = FL* ; - FLs FLs*,
A=A*, FLo= FLo*, s o,
FLs*(s) < FLo*(o), read A[s,o]; - FLo FLo*, A=A*, FLs= FLs*,
s o,
FLs*(s) < FLo*(o), read A[s,o]. 2.2.8. FT : (V x Q) V - ,
FT(v,q)=v* - :
- write A*[s,o] write A[s,o], FL s(s) FLo(o) FL = FL* ; - FLs
FLs*, A=A*, FLo= FLo*, s o,
FLs*(s) > FLo*(o), write A[s,o]; - FLo FLo*, A = A*, FLs= FLs
*, s o, FLs*(s) >
FLo*(o), write A[s,o]. 2.2.9 ( ).
FT : (V x Q) V , , .
- 2.2.8 2.2.9 , , -, - ( - , . . -, , ), , -, , NRU NWD , . ,
.
2.2.2. ( ). (v0 , Q, FT) , v0 , - .
Z-, , , - -. , - 2.2.7 2.2.8 , - -. , , , - (. . - ), - .
-
82
- . 2.2.10. P (S), - , - , (-) .
- . 2.2.11.
F: S O P (S) ( ) -.
, F 1 , - . - , , .
2.2.12. FT : (S x V x Q) V (v0 , Q, FT) - , t(s, v, q) = v*, v =
(FT, A) v* = (FT*, A*), -:
x S O : FL*(x) FL(x), x P (S) . 2.2.10,
2.2.11 2.2.12 - - .
, , -. , - , ( ).
, - - . , , , ,
1 . ., , , .
-
83
, . .
, , - , - Low-Waterark (LWM).
LWM -. - write , - " ", . . , write - reset.
-, , ( NWD), reset, - . reset - NWD ( ). , , " " , , NRU.
, - () , - - , , , - . LWM write . write , (), .
LWM , reset - write - -.
, , LWM, , - - , - . " " LWM .
-
84
-, , - () .
, , , , - , , - . , , , , , - ( ) - () (-).
, , / , - . - -, , () .
- . 2.2.13. FG: S P (S) \ - S SG = P (S) \ , - sG SG.
A[s,o] -, .
-, , . . NRU NWD, , , , . - - . 2.2.14. FLL: SG L - SG L ,
FLL(sG) s, sG .
2.2.15. FLH: SG L - SG L
-
85
, FLH(sG) s, sG .
FLL FLH - ( 2.2.4, 2.2.5 2.2.6) -. 2.2.16. , , , , FL FLL ,
.
2.2.17. - , , - , - , FL - FLH .
, - , - , , . , , , .
- ( ).
, - , , , - .
, - . , , - " ", " ". , , -, , , , " " - , .
-
86
2.3.
2.3.1.
- "" , - . , - - , - "" .
, - "" "" - , - 1. - ( -, , ) - . - , . . - . - . , , - - , .
MLS-, - , , , - -50, , UNIX DTE. , - , - . , - .
1 "", "", "-" . . , , . .
-
87
- , . 2.16. . 2.16.
-
, - (), , - - , . - :
( ); ( ); - ( ).
1 (, , . .), () . . 2/17.
- , .. , .
1 - (, - . .) .
-
88
. 2.17.
- , - ("-"). - . . 2.18. - , - .
. 2.18.
- -1, (, ""-""-"" ""-""-""-"" . .). , -, () - . . 1 , .
1 2 3 N
1 : 2, 3, 17
2 : 3, 4, 27, 45, 67
1 : 1.2, 1.1.1
1.1.2.1 1.1.2.2 1.1.2.3
1.1.1 1.1.2
1.1 1.2
2 : 1.1.2
-
89
. 2.19. .
. 2.19.
() - () -: 2.3.1 ( ). , , ( ) .
, , , - . , ( ) -1.
, , , , (, -), , . , , " " , , - , "" - . , NWD , , - " ", -
:
1 , , . 1.1.3, , , () , () - , , .
1 : 1.2_2.1.1_3.1.2_4.1
1: 1.1 1.2
2: 2.1 2.1.1 2.1.2
3: 3.1 3.1.1 3.1.2
4: 4.1 4.2
2 : 1.1_2.1.2_3.1.1_4.2
-
90
() () (, . .) 1;
() , , () , - .
- () , - - . 2.3.2 ( ). - , " " .
- , , -, , , - , - , - , . . - . 2.3.2. , - - . ( F[xi]) , (P, ,
, ) T (P T ). P -- , - xi xj , F[xj] F[xi]. , - , , - .
1 - , , , () .
-
91
F[xi] F[xj] - F[xi] F[xj] F[xi] F[xj], .
- , - - . 2.3.8. F1[x] - X = S O - T , x X T .
, o - ( ) o - , . - - , () -. . 2.3.9. - F2[x] - X = S O - T , x
X {x1, x2,}, x1, x2, - - .
- , - , - T . , , .
, - , - - , , -.
-
92
o , - {o1, o2,}, . . , , - - . - o , o1, o2, . - , , , - , . , ,
, .
T ={1, 2,, M} , -, .
T - (), (i, j) - .
T ( 0 ) () (. . 2.20), - , (i, j) sup{i, j} inf{i, j}.
. 2.20. -
1 2 3 4
5 6 7 8 9
0
-
93
2.3.10. sup{i1, i2,, ik}= i i1, i2,, ik i, - - i1, i2,, ik.
2.3.11. inf{i1, i2,, ik}= i i1, i2,, ik i, - , -, 1 i1, i2,,
ik.
2.3.11 , i1, i2,, ik , . . -, inf , , . . , , {i1, i2,, ik}. ( )
i1, i2, , ik - inf 0, , - .
T = T 0 (T, , sup, inf), - -.
sup, inf -
- - , . , (T, , sup, inf).
. 2.3.12. T (i) - i j , - T.
1 .
-
94
, j T (j) , - . T P - .
. 2.3.1. - {T (1), T (2),, T (M)} {1, 2, M}, .
. - , i j - T (i) T (j) , . . . , i T (i) .
, i j ( ) , . . T (i) T (j).
i j i j (i j). - i j , , T (j) () T (i).
, :
T (i) T (j) , j i. i j , . . - , , . , :
T (i) T (j) = . , T (i) T (j) - . , i T (i) - .
-
95
, - - .
{1, 2, M} {T (1), T (2),
T (M)}, - .
, , , . .
-- - , - . - , - . - , - - .
. - , . 2.20.
2 3 : T (2) = {5,6,7}, T (3) = {3}, T (2) T (3) = , T (2) T (3)
= {3,5,6,7} {3,5,6,7,8,9} = T (1).
2 3 1, - {3,5,6,7,8,9}.
. 2.3.2. - - T (i) T (j) - inf{i,j}.
. . i j .
-
96
i j , i j.
inf inf{i, j}= (. . 2.20).
, , i j - T (i) T (j)= . inf i inf{i, j}=i. , T (i) T (j) = T
(i), i j , T (i) T (j). , T (i) T (j) inf{i, j} i T (i). - , sup, .
2.3.13. - T (i), T (j) T (k) - k, i j, .
, 2.3.13 sup. , T . , T (T , , , ), (T, , sup, inf).
(T , , , ) - - - . . 2.3.14.
{k1, k2,, kL} (L < M), , - T={1, 2,, M},
-
97
k , {k1, k2,, kL} , () k .
2.3.15. I T - : 1) T 'I ' I, . . I - ; 2) {k1, k2,, kL} I {k1,
k2,, kL}=k , I k I, L M.
, , , . . , , , - . -, -, . . 2.21 - .
- , 2.3.9 - ( ), . . - .
. 2.21.
1 2 3 4
5 6 7 8 9 10 11 12 13
15 16 17 18 19 20 14 I1
I2
I3
I4
I5
I6
-
98
, - ( ) I.
, - , - I . , 2.3.15 - .
. 2.3.3. - .
, - , , - , - 2.3.15. , , . 4.7, - I4 I5, - 4, {8, 9}. 2.3.14, -
. 2.3.16. Ii Ij - , - , , Ii Ij .
. 2.3.4. 1.
, . 2.21 : I6 = I1 I2, I3 = I4 I5.
2.3.15, 2.3.3 2.3.4 . 2.3.4.1. - (I, , , ) - , - ( 2.3.16) -
.
, - . 1 2.3.15.
-
99
- -. . 2.3.17. T i - {i1, i2,, iL} (L M) -, T = {1, 2,, M},
:
1) ik im 1
ik im, k m; 2) {i1, i2,, iL} .
T (T T).
, . . 2.3.18. ( ) , () .
M T. < M > , - M, . . , - M. , < M > -, M. 2.3.19. I
- , ' I ' , ' -.
A - I. 4.18 , A - I. , , 4.18 , A - . - ( , ). .
1 - .
-
100
2.3.5. , - , , .
, - . , . , , -. - . , , (I, , , ). , , -. 2.3.20. T i 1 - T j
{j1, j2,, jJ} {i1, i2,, iI} , m=1,,J k=1,,I , jm ik ( jm ik ):
jm T j , ik T i , jm ik . , -
, , . . - .
, . 4.7, : {5,6} {2,3}, {3,5,6} {2,3}, {7,11} {2,3}, {13,17}
{7,8}, {12,19} {7,8}, {9,10,13,14,16,18} {3,4,6}, {11,12,19}
{3,4,6} . . . 2.3.3. - - - .
. 2.3.5 Ii T i. -
, - , , -. , - .
1 .
-
101
Ij Ii Ij Ii. - T j T i - 2.3.20, . . T j T i. . T j T i. {j1,
j2,, jJ} - - {i1, i2,, iI}. , , - {j1, j2,, jJ} , - {i1, i2,, iI}.
, Ij ( ) , Ii. , Ii T i . , - , - , - . ( 4.17), ( 4.20), - .
2.3.21. T i ={i1, i2,, iI} T j = {j1, j2,, jJ} T = T i T j - :
1) - ,
T = {i1, i2,, iI} {j1, j2,, jJ} ; 2) T ' T , 1 - T
(k T k T ) ( m T m k m k); 3) T T ' - T ' - .
1 .
-
102
, - , - (- 2.3.19) -.
. 2.3.6. T = T i T j, - 4.21, ) ; b) T i T j, . . T i T
T j T ; c) T i T j.
.
T - . , 2.3.17 T . T , T i T j, T -. , 4.20 T T i T j. T i T j -
T , - T (. . ). - , - . - "" , . , - T i T j , T , . .
2.3.22. T i = {i1, i2,, iI} T j = {j1, j2,, jJ} T = T i T j
:
-
103
1) T i ={i1, i2,, iI} - T 'i, 1 - T j = {j1, j2,, jJ}; 2) T j =
{j1, j2,, jJ} - T 'j, T i ={i1, i2,, iI}; 3) - T = T 'i T 'j.
. 2.3.7. T = T i T j, - 4.22, ) ; b) T i T j, . . T T i
T T j ; c) T i T j.
. 2.3.17 T i ={i1, i2,, iI} T j = {j1, j2,, jJ} . T 'i T 'j -
.
, T = T 'i T 'j V , V ={1, 2,}. - {1, 2,} "" T , 2.3.17, , T 'i
, T 'j. , V ={1,2}, 1 T i , 2 T j . . 2.22.
1 , , , . . , .
-
104
. 2.22. -
, 1 T , 2.3.22 T j. T j V ={1,2} , 1 2, 2.3.17. T , , -, - , , T
i . -, T i T -, T j - ' T j , '. - , T - T i T j.
, - T ', T i T j (T T ' T i ) (T T ' T j ). ( ' (i) ) ( ' (j) ),
T , ' T ', (i) T i (j) T i . , , 4.17, T i , T j. ' (i) (j), , , (
' (i) ) ( ' (j) ) ( '), T i , T j - ( (i) (j) ), 2.3.17. , =', , T
.
, (- 2.3.20), ( 2.3.21) - ( 2.3.22) , 2.3.5, 2.3.6 2.3.7, T (T,
, , ), () (I, , , ). (I, , , ) , , -
1 2
T i T j
-
105
(T, , , ), , - - .
-
106
2.3.3. - .
1. - (-).
T ={1,2,, M}, , .
2. X = S O - T, - . F2[x]
, f, - xX -:
f[x]= T i , (2.3.1)
x S O , T i T. 3. ( tk) ( tk+1). ( ) (X = S O), / . (w)
(r) , . 2.23.
. 2.23.
. -, sm oi
o
s
, - s
(w) Stream(s) o
o
s
, - s
(r) Stream(s) o
-
107
oj , , sn - oj ok, oi ok sm sn Stream(sm, sn, oi, oj)ok .
( 1.3.2, 1.3.3), ( 1.3.4), , - ( 1.3.5), - , - . 2.24.
. 2.24.
, , , , , - -, .
() - - , - -.
4. - 2.3.2, - .
2.3.23. , :
- - ;
- . 5. , , -
o o -
sm
, - - sm
Create(sm, o) s'
s'
r
w sm
, -
Create(sm, o) o'
o'
r
w
, - s'
-
108
- , , 2.3.23.
2.3.1. s o, Stream(s)o , , - :
f[s] f[o] . (2.3.2) 2.3.2. s o, Stream(s)o , , - :
f[o] f[s] . (2.3.3) 2.3.2 , o'
, -, , - f[o'] f[s]. - ( ) ( ). . , ( ) .
6. , - .
2.3.3. s o', o, , - o, o' , :
f[o] f[s] f[o'] . (2.3.4) .
4.41,
1 -
-
109
( ). 2.3.4. s s' - o , -, , - :
f[o] f[s] f[s'] . (2.3.5) 7. , - ( ), - , ( - , - ).
. 2.3.5. s o1, o2, s1, s2, o () , , - , 2.3.1,2.3.2,2.3.3
2.3.4.
2.3.5 , , - , - . , , -, , - . . 2.3.4. - , 2.3.1, 2.3.2, 2.3.3,
2.3.4 2.3.5, , - 2.3.23.
. -, , 2.3.12.3.5 -
.
, . . - .
-
110
-, , , .
, - . . 2.25
. 2.25. ,
o1 o2 : f[s] f[o1] f[o2] f[s] .
, :
f[o2] f[o1] . , - . s1 s2
f[s1] f[o] f[s2] f[o] . ,
f[s2] f[s1] . ,
-. , - o1 o2 s1 s2,
, - s1
o o1
s
o1 o2
o2
r
w
s1
s1 s2
r
w
s2 , - s2
, - s
-
111
, . . , - 2.3.23. , , - - , -.
-
112
2.4.
2.4.1. -
- () , - ( ), - ( ), (- ).
, - - , , , - , - . , , , -, - (, ). , - - (-), (), - .
- , , - . , (, , , -, ), , - (, - ).
, , -- - , - , - .
70- 80- - IBM . 80- -, -
-
113
MMS-1, . (Role-Based Access Control RBAC).
, , - . -. 2.4.1. - , , - . , , , -
- - . , , , - (, , . .). , , - - . , - ( SELECT, INSERT, UPDATE,
DELETE), () . - SQL () -. - , . , , - (, , , - ) - ( , . .). . -
:
I. ( -);
1 Military Message System.
-
114
II. . - , , . - , - , , :
1. - ( - ) ;
2. - , - .
, - , , , -- . - , .
-
115
2.4.2.
.
1. : - U; - ; - P ; - .
P -, , -, , , - .
2. :
FP : P x ;
FU : U x - .
, FP FU . FU "-", - , - .
3. :
fuser : U u=fuser(c) uU, ; froles : R R = froles(c) R , - ( ) c;
fpermissions : P P = fpermissions(c) P P, , ;
4. ( ) - .
-
116
2.4.1. , uU, c, - (, ) p P , :
p P , P = fpermissions(c).
, FU -, froles(c) FU . , - :
? -
? , , (-) .
- :
; () ( -
); ( -
); ; .
.
- -- . - , - . . 2.26 - -.
-
117
. 2.26. ()
. - - "" "".
"" - ( ) (-) . - , , - .
- "", - () . .
F : x , - () - , :
1, 2 , 1 2, 1 , 2;
F hU : U x -, - , ', :
, ', uU: ' (u,) F hU (u) (u,') F hU (u);
.
-
118
f hroles : R R , - , ( ) c, :
f hroles(c) {i | ( ' i ( fuser(c), ') F hU (u))} ; f
hpermissions : P P = f hpermissions(c) -
P P, R = f hroles(c), - ( ).
, - FP , . . - - . , -- , - . , - . - - , - FP :
; ; .
- , FP (. . 2.27):
F hP (j) = {pj1, pj2,} , F hP (j) F hP (i) = , F hP (j) F hP (i)
= P .
, . . , , , - -:
F hP (k) = F hP (ki ) F hP (kj ) ,
-
119
{ki , kj , } - k.
. 2.27.
-
. - . , , -, . . , :
F hP (j) F hP (i) . , -
- .
-, :
1 11 111
112 1121
1122
1123 113
12 121 122
P1 P2
P3 P4
P5
P6 P7
F
P
FP
F hP (12)= F hP (121)F hP (122) = P5 + P6 Pi Pj =
-
120
F hP (k) ={pk1, pk2 ,} , F hP (k) F hP (i) = ,
{k i}. f hroles f hpermissions - , - c k , - , k. , () , , , - ,
, . - - - ( ); - - - . , -, , , . , , , , , , - . () , .
( ) - . - - . - , -
-
121
. () , 1. - "" . - - fexclusive(), - . FU : :
(u, ) FU (u) ' fexclusive() (u, ') FU (u) .
, , - - ( ). , -, . -- - , , - .
( ) - - - . , , , - . , - -. . , "" fexclusive(). , , - FU , 1 -
, .
-
122
. . , , , . - - , - - . - froles, - - :
1, 2, 1 froles(c) 2 fexclusive(1) 2 froles(c) . - "" " " . - , -
, . , - , , () .
, , - , . - FP f pcardinality:PN, 1:
pk | {m | (pk, m) FP (pk )}| f pcardinality(pk ). - -, , - . . f
cardinality:N, - , , FU : 1 N .
-
123
k | {um | (k, um ) FU (um )}| f cardinality(k ). - , - -.
- .
, . , , , . P f pprerequisite:P P, - () p P P - , - FP :
(p, ) FP (p) p' f pprerequisite(p) (p', ) FP (p) . , , -
. - , - . , - . f prerequisite: R , - R -, FU :
(u, ) FU (u) ' f prerequisite() (u, ') FU (u) .
- , - FP - , - ,
-
124
, , .
, , - , , - - . , - . - -, - .
-
125
2.4.3. - , - , -, - .
- - .
1. : - O (o1, o2,, oM ) ; - U (u1, u2,, uN ); - G (g1, g2,, gK
); - 1 R (r1, r2,, rJ ) ; - A ((N +K) x M), - R (r1, r2,, rJ ), . .
A[u, o] R , A[g, o] R.
2.4.2. - , () () - .
, - , "", . . - , - . , - , , - .
2. : FUG : U x G , , - . , ,
" " "" "--". - , - 1 , . 2.3, - , , - .
-
126
(), - - (), - . , - , , , 1.
, FUG - . , , , -, , , , , FUG .
3. - - :
fgroups: U G fgroups(u) = G G = {gu1, gu2,} G , u FUG ; fusers:
G U U = fusers(g) U = {ug1, ug2,} U, g FUG .
fgroups fusers - "-- ", FUG .
4. - - ( ) -- .
2.4.2. , uU oO - R , A[u,o] A[g(u)i,o], FUG :
R {A[u,o] A[gu1, o] A[gu2, o] }, { gu1, gu2,} = fgroups(u).
, , FUG. 1 , . . , .
-
127
, , , , , . - , - (, , . .), - . , -- , - - . , -- , -, - (
5.2). , - , . , , -- , , . (-) - () () - - , . . , -, "" ( ) "()-"
(, - . .). - - , , . , - . - ( R) ( R) . - . , Modify "", . . Write
Read. , "" (-) () , -. , R - :
-
128
FRR : R x R - , (-) ,
r1, r2 R, r1 r2, ( ) r1 , r2 , . . , , - r2 .
5.2 :
r1, r2R, r1 r2 r2 R r2 R , R = {A[u, o] A[gu1, o] A[gu2, o] }; u
o , ; {gu1, gu2,} = fgroups(u) ,
u. - -
-
129
, " -".
- "" . , , , - - -- , , - - , -. " " R. . , .
-
, , - , . . .
, , -, -. , , , , , -. , - A , , , . , - , , , .
, G -
FGG : G x G - , () -,
g1, g2 G, g1 g2, g1 g2 .
-
f hgroups: G G fgroups(g) - {gg1, gg2,} G , g - FGG .
-
130
f hgroups fgroups fusers - "-" , , . . "(-+)-".
, , "" -, , . , - , , . . 2.28. -, .
. 2.28.
:
, (-) (. . 9.2);
, - , -, . . ; - , , . ,
, , ""
1
2 4 3
5 6 7 8 9
10 11 12 13
g1
g3 g4 g5
g2
g6
g7
g8
g9
g10 g11 g12
g13 g14 g15
g18 g17
g16
-
131
. , , - , , , - , - 1 (. . 2.29).
- "", . - .
. 2.29.
2.4.3. R g g o A[g, o], , A[ggi , o], FGG :
R g(o) {A[g, o]
-
132
R gui(o) 5.3 gi, u.
, - - - - . , - - , , "" , - . , - , - - .
-
133
2.5. -
2.5.1.
, , , , . 2.5.1. 1 , - ( ) - () 2.
, -, , "" ( ). , - , - . , , "" . " " - NRU NWD.
, - " " - -.
- .
2.5.2. , - - NRU NWD.
, -
1 " ". 2 .. , - - ( ).
-
134
read/write , . , NRU , "" , , , - . , , "-" , , , .
"" - 1 . :
( - );
( - );
( 2).
, , " ".
1 "". 2 .. .
-
135
2.5.2.
- . , - . . , . - , - . - - - - . . (HRU, TAKE-GRANT, -) , - - .
, - ( , ) , -, , , , - . - , , - . - .
1. :
- H; - L.
, -, , , , (read/write) - " ".
2. hH lL . - "" :
2.5.3. ,
-
136
. , " " -. , - , - , - . , 3.20, -
:
p(h) >0, p(l) >0, p(h|l) >0 , (2.5.1)
p(h), p(l) , , - ;
p(h|l) .
3. -:
2.5.4. -, , 2.5.3.
- (2.5.1) , , , . , p(h) > 0, p(l) > 0 :
p(l|h) = p(h, l)/p(h) = p(h|l)p(l)/p(h) , (2.5.2)
, p(h|l) > 0, , p(l|h) > 0. p(l|h) , - , , . . . , " " - .
,
-
137
, - .
, -.
4. - :
2.5.5. , (-) - .
2.5.5 -:
p(l|h) = p(l) . (2.5.3)
, , , p(h)>0, p(l)>0
p(h|l) = p(h) . (2.5.4)
- (2.5.3) (2.5.4) :
p(lt|ht -1) = p(lt ) , (2.5.5) p(ht|lt -1) = p(ht ) ,
(2.5.6)
ht, lt , t.
(2.5.5) (2.5.6) - , p(ht ) - (, , -) p(lt ), . , ( ) . , ,
(2.5.5) (2.5.6) , - . (2.5.5) (2.5.6) , , . , - - - . ,
-
138
, - -, . , - , , - , , - - . 2.5.5 - , , , . 2.5.6. , - .
2.5.6 , - lt lt -1 - ht -1:
p(lt|ht -1, lt -1) = p(lt|lt -1) . (2.5.7)
, (2.5.7) :
p(ht -1|lt, lt -1) = p(ht -1|lt -1) , (2.5.8)
lt ht - 1, lt ht + 1.
, - , .
- 2.5.6 - . 2.5.7. -, -, 2.5.5, . . -:
p(lt|ht', lt')= p(lt|lt') , (2.5.9)
-
139
t, t' = 0,1,2,, t'< t. , -
-- - , , .
-
140
2.5.3. "" " "
- "" (views) " ". - - .
. 2.5.8. "" - - , , .
, "" , , "" , "", , -. - , , . , , - 2.5.4 2.5.7.
, "" - . -, read , , , , "" , - "" (), . , - "" -, .
"" , "" - -, - "" . - , -
-
141
"" - - "" , ! - .
, "", - -, , , , , .
- , " -". 2.5.9. " " - , - - - (read, write, append, create,
delete . .) .
, " " , , , . . "" - , " " - - . , - , . - (J. Goguen) (J.
Meseguer), - (), GM-. GM- - , - , - - - . - - , "" . - "" .
-
142
GM (out), , - , (traces) . , . . - , - (purge) () , out . -, "
", - , / , - .
-
143
2.6.
2.6.1.
, - - , , .
"" , - , -, . , () -, . , - , ( ). - , - "".
, , , , , .. , .. , [] .
- . . ( ) . . , . . - . - : - , - , -, .. ;
-
144
- , - ;
- - ().
2.6.2. - , - , - - "", " " -(), -. . 1. D CDI , (constrained
data items), UDI, - (unconstrained data items).
D = CDI UDI , CDI UDI = 2. - (), - , TP (trans-formation
procedures).
3. IVP , - (in-tegrity verification procedures).
4. TP, IVP -, (, ) .
. 1. IVP -
CDI.
2. TP - , .. , - () CDI, .
1. TP - CDI , 2
2. - TP TP CDI (.. -TP- CDI)
-
145
3. , 2, - ( .. -).
3. , - TP.
4. TP , - TP. CDI, .
5. TP UDI, CDI .
4. () , 2 2. - , .
2.6.3. () . -. . 1. - S - O - R ( - read write) - ( ) - F, S O -
V, - (F,A) - v0 - Q - T: (VxQ) V, 2. ( ) - , .. - ("-" /).
3. ( -:
-
146
- s S o O , F(s) < F(o). - (no write up - NWU) , .. () ; - s
S o O , F(o) < F(s). - (no read down - NRD) , .. () . , -, - , ,
- .. - -. . - "" - . - . , , "", . . -, - .. "", - ("") -. , "", -
( "") . - . , - . , , -, "", , , . ( - ) - - ..
-.
-
147
1. . , . - - .. , , - , . . .
2. (-/). - , - (.. " " " ").
3. , - /. - ( - ). ( ). , ,
, - , , , .
-
148
2.6.4. - ()
- "" - . - . . . - , "" (- SQL ROLLBACK), - ( SQL COMMIT). - - .
, - , , (-) - ( ) , - . - :
; "" ; .
, - . , - , , , , , , , - . "" - . - .. . "" , - - , . , , , -,
, "" , .. "-
-
149
" . - , , - , . , - , . , -, , "" , .. . , - . - - . () , - -. .
- :
() ; .
(Shared) (eXclusive). - , . -. , . , , . (-) 2PL (TwoPhase
Locks). . ( ) - - . () ( - ) . . , "" (). - "-" ( , , -
-
150
, ). , -, ( ) , - - , ). - - . (Deadlock). -, - , . , , , . - ,
.. - , .. , . (-) (). , . , , - -. - (), , . - , () - , . , , - . ,
- -, , , - . "" "" , . .
-
151
, , - . - "" - ( ). - "" , : , , "" -
; ,
; ,
(, , "");
, -, -, .. ;
, () -, , .
, - , , . - , , , .
-
152
2.7. ()
2.7.1. , - - , : - (- );
- ( - , , - - , - "", "" "" )
- - , - , - (, ) (- /, , - ).
: - - ( ) -; - , - () . - , ( - ). .. "-" - 2- () , - .. , - . -
- , . , , - , - ( -), - . - . , -, .. , -
-
153
) , ) - ( ) . / . 2.30.
. 2.30. / -/ . 2.31.
. 2.31. /
-
154
, ( ) , -, ( - ).
-
155
2.7.2. - - , , , / - .
() . , - () , - , - . , - /, . - - () , , , , . , , - , -:
;
. , , : (
); ( -
). - " ", , , , .., -
-
156
. - , , . - , , "". , . () - -. , , -, , -. , , , () , , , . . ,
- . - , - , .. . . () - , "", , -, . - - . - , . , , - , "-" - . -
, - , , , , . . -
-
157
. . - , - - . , - , -, "", "" . , - . . - , .. - . , - , , . , -
, , - ( ) - - . - , - . - () -, ( ) 1. , . , - , - , - , - . , - .
- , () -. , -
1 .. (GUID).
-
158
. , , - - "", -, . - , - . , , (, ) , - .
-
159
2.8. -
, 1, . - .
2.8.1.
- :
- - , , , -- () ;
-, , - () - , -;
, - (), , - ( ).
(/, -, , , . .), (--) . - - ,
-, - , , -- . - -
1 " ", .
-
160
- (- ) -. , , . , , , , - .
- - , . . , - " ". , , - - " ". 2.8.1. , , - .
, (, . .) , . . . () - :
- ( );
;
() () - , - .
(- ) , "-", - "" . ( ) (, ) - . , . , -
-
161
, -. ( - ), ( ). , , - (, ) . , . - . , , . , - () . , - .
2.8.1. , ( ).
-
- , , - , -, .
-
162
2.8.2.
- - . . 2.32:
; " - ".
. 2.32.
, - , - ( ) . , - -, . . - ( ). () , . . , , .
- -. - ,
1
2
-
(- ) -
-
()
-
163
( ), - ( ).
. 2.32 - ( ) st, - " ", . . . - - () .
, , . 2.8.2. pout = Stream(sm , oi)oj - sm 1 oj 2 sm - s(1)t
s(2)t 1 2 oj () oi 1 ( . . () oi , () sm). , -
, . 2.33.
. 2.33.
, , , , ( ), (
1 2
: s(1)t s(2)t 1 2, ;
o(1)t o(2)t s(1)t s(2)t - ( . .);
oi , ( ) sm .
o(1)t
s(1)t
oi sm
o(2)ts(2)t
oj
-
164
), - ( ).
- 2.8.2 , 1 - oj - 2. . , . 2.8.2. U - {1, 2,, K} - {U1, U2,,
UK} .
, , , 2.8.2 , , , -- - . , . , , , , .
2.8.2, , -, , -.
- , - . 2.8.3. 1 2 - , - .
: , , , ; ;
.
-
165
, , - 1 2 2 - 1, - 1 2 . " " - () - ( - 1 , , - 1).
, , , - ( ) -.
- , - . - 2.8.1 , () - . - -. , - , - - " ", . . , . - , -
-.
:
, "" ;
, -, , (-) -.
-
166
, " (- ) ( )", ( ) - . -.
- " " ("Trusted Network Interpretati-on", 1987 .)1 (- ) NTCB
(Network Trusted Computer Base).
2.8.2 - . , , , , () . . 2.33, " sm(1) - s(1)t - s(2)t " - 2 ,
1.
, - - .
, , , - , , . . (Vijay Varadharajan) 1990 . , - , . , . . . -, ,
, . , , - - .
1 " ".
-
167
2.8.3.
, , - , . , -, Windows NT/2000 - - .
, , - - , , -- . - - - , () , -, . . (), , , (-, ), . - Windows
NT/2000 - - .
, , - -.
- - - , - , - , - Windows NT/2000.
1. - :
- () O (o1, o2,, oM );
- U (u1, u2,, uN ); - V(v1,v2,, vL) -
( , ), , . .;
- Z (z1, z2,, zK ).
-
168
2.8.4. , , - () .
, 2.8.4 - , - - .
2. - 2.8.1 -, (- - , , ).
2.8.5. - (), - z Z PL(z), , - () , , - , - (, ) :
PL(z) = P inL(z) P outL(z) , (2.8.1) P inL(z) ; P outL(z) = P
outL(z) P outL(z)
z Z, - z P outL(z) z P outL(z). , -
, - :
"-"; . - , -
, () , -, ( ) . - - , -
-
169
. -- , , (, -, -, . .)1. ( ) .
, - , - , - . - . , - , () 2.
- - . , - , - - .
3. , :
fphys : V Z z = fphys(v) z Z, ( ) v V; fuser : U Z z = fuser(u)
z Z, () - u U; ffobject : O V v = ffobject(o) - v V, ( ) o O.
, v = ffobject(o) z = fphys(v) z = fiobject(o), o O z Z, "-
1 " " . 2 " ".
-
170
"1 - .
4. Z -, -:
FZZ : Z x Z - , ,,
z1, z2 Z, z1 "=" z2, z1 z2 - ( z1, z2 - , , z1 z2, , , z2
z1)2
P outL(z1 z2) P outL(z1z2) ; (2.8.2) z1, z2 Z, z1 > z2, z1 z2
- ( z2 z1, z1 z2, , - z1 z2, - z2 z1 )
P outL(z1 z2) P outL(z1 z2) = ; (2.8.3) z1, z2 Z, z1 "" z2, -
z1, z2 ( z1, z2 -, , - z1 z2 z2 z1) 3
P outL(z1 z2) = P outL(z1z2) = . (2.8.4) , -
Z , - , :
z Z: z z , 1 - , - , . . 2.8