212
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образова- ния «Уральский государственный университет им. А.М. Горького» ИОНЦ «Информационная безопасность» математико-механический факультет кафедра алгебры и дискретной математики УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС Теоретические основы компьютерной безопасности Учебное пособие Автор: профессор кафедры алгебры и дискретной математики Н.А. Гайдамакин Екатеринбург 2008

1335332 Schoolbook

Embed Size (px)

DESCRIPTION

книга

Citation preview

  • -

    . ..

    -

    -

    :

    ..

    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