Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800302

.pdf
Скачиваний:
31
Добавлен:
01.05.2022
Размер:
1.42 Mб
Скачать

части: 1) условия, при которых выполняется команда; 2) последовательность примитивных операторов.

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1

 

 

 

Примитивные модели ХРУ

 

 

 

Примитив

Исходное

 

 

 

Результирующее состояние

ный

состояние

 

 

 

 

 

q' = (S',0',M')

 

оператор

q = (S,0,M)

 

 

 

 

 

 

 

 

 

 

«внести»

s

 

S;

S '

S,O'

o;M '

s,o

M s,o

r ; для

право

o

 

O;

'

,o

'

s,o

 

 

 

 

 

 

 

 

 

 

s

 

 

 

 

 

 

 

r в M s, o

r

 

R

выполняется равенство M'[s',o'] =

 

 

 

 

 

 

 

M[s',o']

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«удалить»

 

s

S;

S'

S,O'

o; M '

s, o

M s, o \ r ; для

 

право

 

o

O;

s' , o'

s, o

 

 

 

 

 

 

r из M s, o

 

r

R

выполняется равенство M'[s',o'] = M[s',o']

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«создать»

 

 

 

S '

 

S

s' ;O'

O

s' для (s,o)

S О

субъект s'

s'

O

выполняется равенство M'[s,o] = M[s,o];

 

 

 

 

для o

O'

выполняется равенство

 

 

 

 

M ' s' ,o

 

;

 

 

 

 

 

 

 

 

 

для s

S '

выполняется равенство

 

 

 

 

M'[s, s'] =

 

 

 

 

 

 

«создать»

o'

O

S'

 

S;O'

O

o'

 

 

 

 

объект о'

 

 

 

для (s,o)

S

O выполняется равенство

 

 

 

 

 

 

 

 

M'[s,o] = M[s,o];для s

S '

выполняется

 

 

 

 

равенство M ' s,o'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«уничто-

s'

S

S'

 

S \

s' ;O'

O \

s' ;

 

 

 

жить»

 

 

 

для s,o

S ' O' выполняется равенство

субъект s'

 

 

 

M'[s,o] = M[s,o]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«уничто-

o'

O

S'

 

S;O'

O \

o' для (s, о)

S '

O'

жить»

o

'

S

выполняется равенство

 

 

 

 

 

объект о'

 

 

 

 

 

 

M'[s,o] = M[s,o]

 

 

 

 

 

 

 

 

 

 

 

 

9

Таким образом, запись команды имеет следующий вид:

 

 

 

command c(x1,...,xk )

 

 

 

if (r1

M xs

, x0

)and...and(rm

M xs

, xo

)then

 

 

1

1

 

m

m

 

 

 

 

1;

 

 

 

 

 

 

 

.......

 

 

 

 

 

 

 

n

 

 

 

 

 

 

endif

 

 

 

 

 

 

end

 

 

 

где

r1,...,rm R

права

доступа;

1,..., n

последовательность примитивных операторов, параметрами которых, а также параметрами условий, являются параметры команды x1,...,xk . Следует отметить, что наличие условия в

теле команды не является обязательным. При выполнении команды c x1,...,xk система осуществляет переход из

состояния q в новое состояние q'. Данный переход обозначим как

q c x ,...,x

q' ,

1

k

при этом q' = q, когда одно из условий команды c x1,...,xk

не

выполнено, q'=qn, когда условие команды выполнено

и

существуют состояния q1,...,qn

такие, что

q = q0

1 q1

2

n qn .

Пример 1. Команда создания субъектом s личного файла f:

command CreateFile(s, f)

«создать» объект f;

«внести» право владения own в M s, f ;; «внести» право на чтение read в M s, f ;

«внести» право на запись write в M s, f ; end.

10

Пример 2. Команда передачи субъекту S ' права read к файлу f его владельцем субъектом s:

command GrantRead(s, s', f) if (own M s, f ) then

«внести» право read в M s, f ;

endif end.

Другая дискретиционная модель, получившая название типизированной матрицы доступов (ТМД), представляет собой развитие модели ХРУ, дополненной концепцией типов, что позволяет несколько смягчить те условия, для которых возможно доказательство безопасности системы.

Формальное описание модели ТМД включает в себя следующие элементы:

О — множество объектов системы;

S — множество субъектов системы S O ; ;

R — множество прав доступа субъектов к объектам; М — матрица доступов; С — множество команд;

T — множество типов объектов;

t: O T - функция, ставящая в соответствие каждому объекту его тип;

q S,O,t, M — состояние системы; Q — множество состояний системы.

Состояния системы изменяются в результате применения к ним команд из множества С. Команды в модели ТМД имеют тот же формат что и в модели ХРУ, при этом для всех параметров команд указывается их тип:

command c x1 : t1,...,tk : tk

if (r1 M xs1 , x01 )and...and(rm M xsm , xom )then

11

1;

.......

n

endif

end

Перед выполнением команды происходит проверка типов фактических параметров, и, если они не совпадают с указанными в определении команды, то команда не выполняется. В модели ТМД используются шесть видов примитивных операторов, отличающихся от аналогичных операторов модели ХРУ только использованием типизированных параметров (табл. 2).

Таким образом, ТМД является обобщением модели ХРУ, которую можно рассматривать как частный случай ТМД с одним единственным типом для всех объектов и субъектов. С другой стороны, любую систему ТМД можно выразить через систему ХРУ, введя для обозначения типов специальные права доступа, а проверку типов в командах заменив проверкой наличия соответствующих прав доступа.

Определение 2. Пусть c x1 : t1,...,tk : tk некоторая ко-

манда системы

ТМД.

Будем

говорить, что xi

является

дочерним параметром,

a ti

является

дочерним

типом в

c x1 : t1,...,tk : tk ,

где 1 i

k , в случае,

когда в ней имеется

один из следующих примитивных операторов:

• «создать» субъект xi с типом ti ;

• «создать» объект xi с типом xi .

В противном случае будем говорить, что xi является родительским параметром, a ti является родительским типом в

команде c x1 : t1,...,tk : tk .

Заметим, что в одной команде тип может быть одновременно и родительским, и дочерним. Например:

12

command foo s1 : u, s2 : u, s3 : v, o1 : w, o2 ;b

«создать» субъект s2 с типом и; «создать» субъект s3 с типом v;

end

Здесь и является родительским типом относительно s1 дочерним типом относительно s2 . Кроме того, w и b являются

родительскими типами, a v — дочерним типом.

Появление в каждой команде дополнительных неявных условий, ограничивающих область применения команды только объектами соответствующих типов, позволяет несколько смягчить жесткие условия модели ХРУ, при которых критерий безопасности является разрешимым.

Определение 3. Система монотонной ТМД (МТМД) — система ТМД, в командах которой отсутствуют немонотонные примитивные операторы вида «удалить»... и «уничтожить»...

Определение 4. Каноническая форма системы МТМД (КФ МТМД) — система МТМД, в которой команды, содержащие примитивные операторы вида «создать»..., не содержат условий и примитивных операторов вида «внести»…

Определение 5. Граф создания системы МТМД — ориентированный граф с множеством вершин Т, в котором ребро от вершины и к вершине v существует тогда и только тогда, когда в системе имеется команда, в которой и является родительским типом, а — дочерним типом.

Граф создания для каждого типа позволяет определить:

объекты каких типов должны существовать в системе, чтобы в ней мог появиться объект или субъект заданного типа;

объекты каких типов могут быть порождены при участии объектов заданного типа.

13

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2

 

 

Примитивные операторы модели ТМД

 

 

 

 

Примитивный

Исходное

 

Результирующее состояние

оператор

состояние

 

 

 

 

q' = (S', О' ,t', М')

 

 

 

q = (S,0,t,M)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

 

S

S '

S; O'

O; t '

t ;

 

«внести» право

 

M'[s,o] = M[s,o]

r ; ;

o

 

O

r в M[s,o]

 

 

 

 

 

 

 

 

 

 

r

 

R

для (s' , o' ) выполняется

 

 

 

 

 

 

 

 

 

 

равенство M'[s',o'] = [s',o']

«удалить»

 

s

 

S

S '

S; O'

O; t '

t ;

 

 

 

M'[s,o] = M[s,o}\{r};

 

право r из

o

 

O

 

 

для (s'

, o' )

(s, o) выполняется

M[s,o]

 

 

r

 

R

 

 

 

равенство M'[s',o'] = M[s',o']

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S '

S

{s'};O' O {s'}; для o O

 

 

 

 

 

 

выполняется равенство t' (o) t(o) ;

«создать»

 

 

 

 

t' (s' ) t

для (s, o)

S

O выполняется

 

 

 

 

 

 

 

 

s

 

 

 

 

субъект s'

 

s'

 

O

равенство M'[s',o'] =[s,o]

с типом t

s

.

 

 

 

для o

O'

выполняется

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

равенство M'[s',o] =

;

 

 

 

 

 

 

для s S ' выполняется

 

 

 

 

 

 

равенство M'[s, s'] =

 

 

 

 

 

 

S '

S; O'

O {o'};

 

 

«создать»

 

 

 

 

для o

 

O выполняется

 

 

 

 

равенство t'(o) = t(o);

объект о'

 

 

 

 

 

 

 

o

'

O

t'(o')=t

; для (s, o)

S O выполняется

 

 

 

 

с типом to

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

равенство M'[s,o] = M[s,o];

 

 

 

 

 

 

 

 

 

 

 

 

для s

 

S '

выполняется равенство

 

 

 

 

 

 

M'[s,o'] =

 

 

 

 

 

 

 

 

 

S '

S \ {s'}; O'

O \ {s'};

 

 

« уничтожить »

 

' S

для o

O'

выполняется

s

равенство t'(o) = t(o);

субъект s'

 

 

 

 

 

для (s, о)

S ' O' выполняется

 

 

 

 

 

 

 

 

 

 

 

 

равенство M'[s,o] = M[s,o]

14

 

 

 

 

 

 

 

 

 

Продолжение табл. 2

Примитивный

Исходное

 

 

 

Результирующее состояние

оператор

состояние

 

 

 

 

 

q' = (S', О' ,t', М')

 

q = (S,0,t,M)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

«уничтожить»

o'

O ;

S

'

S; O

'

'

};

объект о'

 

'

 

 

 

O \ {o

s

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для o

O' выполняется

 

 

 

 

равенство t'(o) = t(о);

 

 

 

 

для (s, о) S ' O' выполняется

 

 

 

 

равенство M'[s,o] = M[s,o]

Определение 6. Система МТМД (КФ МТМД) называется ациклической (АМТМД или, соответственно, АКФМТМД) тогда и только тогда, когда ее граф создания не содержит циклов; в противном случае говорят, что система является циклической.

Типовые задачи

Задание 1. Докажите, что для общего случая систем ХРУ не существует алгоритма проверки возможности утечки права доступа r для заданной пары субъект s и объект о.

Решение. Пусть задана система ХРУ, в которой определены множества R,Q,C. Построим эквивалентную ей

систему ХРУ, определив множества R*, Q*, C*.

Пусть в каждом состоянии q* S*,O*, M *

соответствующем состоянию q = (S,0,M), справедливы равенства:

 

S *

S

S

own

;

 

 

 

 

 

 

 

 

 

 

O*

O

Sown

;

 

 

R*

R

own, noown .

 

 

Кроме того, для s

S, o O справедливы равенства

M * s, o M s, o , M * s

, o

noown , M * s

, s

own .

own

 

 

 

 

own

own

 

15

 

Каждую команду c x1,..., xk

C исходной системы ХРУ

заменим

командой c x1,..., xk , x ,

 

которая

удовлетворяет

следующим условиям:

 

 

 

 

 

 

 

 

 

условие команды c x1,..., xk , x содержит все условия

команды

c x1,..., xk

и

дополнительные

условия:

noown

M * x, x , i

1,...,k

и own

M * x, x ;

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

команда

c x1,..., xk , x

содержит

все

примитивные

операторы команды c x1,..., xk

 

 

 

 

 

 

 

 

если

команда

c x1,..., xk

 

содержит

примитивный

оператор вида «создать» субъекта xi

или «создать» объект xi ,

где 1

i

k , то после него в команду c x1,..., xk , x добавляется

примитивный оператор «внести» право noown в

M * x, x ; ;

 

 

 

 

 

 

 

 

 

 

 

i

 

 

если

команда

c x1,..., xk

содержит

примитивный

оператор

вида «внести» право r

в

M *

x, xj

, где

1 i k ,

1 j

k ,

то после него в команду

c* x ,..., x , x добавляется

 

 

 

 

 

 

 

 

1

k

 

 

примитивный оператор «внести» право r в M * x, x . .

Таким образом, утечка права доступа r в исходной системе происходит тогда и только тогда, когда в ячейке

M * sown , sown эквивалентной ей системы появляется данное

право доступа. Следовательно, если бы существовал алгоритм проверки возможности утечки права доступа r для заданной пары субъект s и объект о (в данном случае для пары sown,sown), то существовал бы алгоритм проверки безопасности произвольных систем ХРУ.

Задание 2. Представьте произвольную систему ТМД системой ХРУ.

Решение. Пусть задана система ТМД, в которой определены множества R,Q,T,C. Построим эквивалентную ей

16

систему ХРУ, определив множества R* ,Q* ,C*.

Пусть в каждом состоянии q* S*,O*, M * системы

ХРУ, соответствующем состоянию q = (S,0,t,M), справедливы равенства:

 

 

 

 

 

 

 

S *

S

S

own

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O*

O

Sown

;

 

 

 

 

 

 

 

 

 

R*

R

T

 

own .

 

 

 

 

Кроме того, для s

S справедливы равенства

 

 

 

 

 

M * s

 

, o

t o , M *

s , s

own .

 

 

 

 

 

own

 

 

 

 

own

own

 

 

 

 

Для каждой команды c x1 : t1,..., xk : tk

C системы ТМД

в

систему

 

ХРУ

добавим

команду

c* x ,..., x , x ,

которая

 

 

 

 

 

 

 

 

 

 

 

 

1

k

 

удовлетворяет следующим условиям:

 

 

 

 

 

условие команды c*

x ,..., x , x

содержит все условия

 

 

 

 

 

 

 

 

 

1

 

k

 

 

 

команды

 

c x1 : t1,..., xk : tk и

дополнительные

условия:

t

i

M * x, x

i

, где i

 

1,2,...k и

own

 

M * x, x ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

команда

c*

x ,..., x , x содержит все примитивные

 

 

 

 

 

 

 

1

k

 

 

 

 

 

 

операторы вида «внести»..., «удалить»..., «уничтожить»...

команды c x1 : t1,..., xk : tk

;

 

 

 

 

 

 

если

команда

c x1 : t1,..., xk : tk

 

 

содержит

примитивный., оператор вида «создать» субъект

xi

с типом

ti или «создать»

объект

xi

с типом ti , где

1

i

k , то в

команду c* x ,..., x , x

добавляются примитивные операторы

1

k

 

 

 

 

 

 

 

 

«создать» субъект xi

или «создать» объект

xi

соответственно

и примитивный оператор «внести» право t

i

в M * x, x .

 

 

 

 

 

 

 

 

i

Таким образом, строится система ХРУ, эквивалентная системе ТМД.

17

 

Задание 3. Постройте граф создания для системы

МТМД со следующим набором команд:

 

 

command

a1 x : , y :

, z :

 

 

 

 

 

«создать» субъект х с типом а

 

 

 

end;

 

 

 

 

 

 

 

command

a2

x : , y :

, z :

, s :

 

 

 

 

«создать» объект у с типом

;

 

 

 

«создать» субъект s с типом

;

 

 

end;

 

 

 

 

 

 

 

command a3 x : , y :

, z :

, s : , o :

 

 

 

«создать» субъект о с типом

;

 

 

 

«создать» объект х с типом

;

 

 

end.

 

 

 

 

 

 

 

Является ли данная система ациклической?

 

 

Решение. В соответствии с определением 5 строим

граф

создания.

Вершинами

графа являются

типы

T

,

, , , . .

 

 

 

 

 

 

 

В

команде

a1 x : , y :

, z :

родительским

типом

является

, дочерним —

. Следовательно, добавляем в граф

ребро , .

Вкоманде a2 x : , y : , z : , s :родительскими

типами

являются

и

,

дочерними

 

и

.

Следовательно, добавляем в граф ребра

,

,

, ,

,

и

, .

 

 

 

 

 

 

 

 

 

В

команде

a3 x :

, y :

, z : , s : , o :

 

родительскими

типами

являются

,

и

, дочерними

и

.

Следовательно,

добавляем

в

 

граф

ребра

, ,

, , , ,

, , ,

и ( , ) .

 

 

 

 

 

Получаем граф создания, приведенный на рис. 6. Система не является ациклической, так как граф

создания содержит цикл ( , ).

18