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

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

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

Рис. 6. Граф, илюстрирующий решение задания 3

Задачи для самостоятельного решения

1. Для команды C qi0 , ai0 qi1 , ai1 , l машины Тьюринга

выпишите две представляющие ее команды модели ХРУ.

2. Постройте графы создания для систем МТМД со следующими наборами команд.

command a1 x :

, y : , z :

 

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

;

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

;

end

 

 

command a2 x :

, y : , z :

 

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

;

end

 

 

command a3 x :

, y : , z :

 

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

;

 

end.

 

19

E O O R

Практическое занятие № 3 Управление распространением прав доступа на основе

классической модели Take-Grant

Теоретические положения

Классическая модель TakeGrant ориентирована на анализ путей распространения прав доступа в системах дискреционного управления доступом. Классическую модель Take-Grant будем рассматривать на основе [3].

Основными элементами модели TakeGrant являются:

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

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

R r1, r2 ,...,rm

t, g

множество видов прав

доступа, где t(take) — право брать права доступа, g(grant) — право давать права доступа;

G = (S, О, Е) — конечный помеченный ориентированный без петель граф доступов, описывающий состояние системы. Элементы множеств S и О являются вершинами графа, которые будем обозначать — объекты (элементы множества О\S) и • — субъекты (элементы множества S) соответственно. Элементы множества

являются ребрами графа. Каждое ребро помечено непустым подмножеством множества видов прав доступа R.

Состояние системы описывается соответствующим ему графом доступов. В отличие от модели ХРУ в модели TakeGrant возможно наличие прав доступа не только у субъектов к объектам, но и у объектов к объектам.

Основная цель классической модели TakeGrant — определение и обоснование алгоритмически проверяемых условий проверки возможности утечки права доступа по исходному графу доступов, соответствующего некоторому состоянию системы.

Порядок перехода системы модели Take-Grant из состояния в состояние определяется правилами

20

преобразования графа доступов, которые в классической модели носят название де-юре правил. Преобразование графа G в граф G' в результате выполнения правила ор обозначим

через G op G' .

В классической модели Take-Grant рассматриваются четыре де-юре правила преобразования графа, выполнение каждого из которых может быть инициировано только субъектом, являющимся активной компонентой системы (рис. 7-10): take — брать права доступа; grant — давать права доступа.

G

t

 

 

 

G'

t

 

 

 

 

 

 

 

x

y

z

take (

, x, y, z )

x

y

z

 

 

 

Рис. 7. Применение правила take

, x, y, z

 

G

g

 

 

 

G'

g

 

 

 

 

 

 

 

y

x

z

grant (

, x, y, z )

y

x

z

 

 

 

Рис. 8. Применение правила grant

, x, y, z

 

Рис. 9. Применение правила create( , x, y )

Рис. 10. Применение правила remove( , x, y )

21

create — создавать новый объект или субъект, при этом субъект создатель может взять на созданный субъект любые права доступа (по умолчанию предполагается, что при выполнение правила create создается объект, случаи, когда создается субъект, оговариваются особо); remove — удалять

права доступа.

 

 

 

 

 

 

 

 

 

 

Условия применения де-юре правил в исходном

состоянии

G

S, O, E и

результаты

их

применения в

результирующем состоянии G'

(S' ,O' , E' ) приведены в табл. 3.

 

 

 

 

 

 

 

 

 

 

 

Таблица 3

 

Де-юре правила классической модели Take-Grant

Правила

 

Исходное состояние

 

Результирующее

 

 

 

 

G=(S,O,E)

 

 

 

состояние

 

 

 

 

 

 

 

 

 

 

G' = (S',0',E')

 

 

 

 

 

 

 

 

 

 

take(

, x, у,z)

x

S ; y , z

O ;

(x, y, t ) E,

 

S'

S;O'

O;

 

 

y, z,

E; x z;

 

 

 

E'

E

x, z,

 

 

 

 

 

 

 

 

 

 

grant(

,x,y,z)

x

S; y, z O;(x, y,

g )

E;

 

S'

S;O'

O;

 

 

x, z,

E; y z;

 

 

 

E'

E

y, z,

 

 

 

 

 

 

 

 

 

 

 

 

create(

, x,y)

x

S; y

o;

 

 

 

 

O'

O

y ;

 

 

 

 

 

 

 

 

 

если у субъект, то

 

 

 

 

 

 

 

 

 

S'

S

y ,

 

 

 

 

 

 

 

 

 

иначе S' = S,

 

 

 

 

 

 

 

 

 

E'

E

x, y,

remove( ,x,y)

x

S; y

O, x, y,

E;

 

 

 

S'

S;O'

O;

 

 

 

 

 

 

 

 

 

E'

E \

x, y,

 

 

 

 

 

 

 

 

 

 

 

 

В модели TakeGrant основное внимание уделяется определению условий, при которых в системе возможно распространение прав доступа для случая, когда не рассматриваются ограничения на кооперацию субъектов при передаче прав доступа, и случая, когда на кооперацию субъектов наложены ограничения.

22

Данный случай характеризуется тем, что что при передаче прав доступа не накладывается ограничений на кооперацию субъектов системы, участвующих в этом процессе.

 

Определение

1. Пусть x, y O0 , x

y — различные

объекты графа доступов G0

S0 ,O0 , E0 ,

 

R.. Определим

предикат

can_share(

,x,у, G0 ), который будет истинным

тогда и

только

тогда,

когда

существуют

графы

G1

S1,O1, E1 ,...,GN

SN ,ON , EN и правила op1,...,opN , где

N

0 , такие, что G0

op G1

op

op GN и

x, y,

EN .

 

 

 

1

2

N

 

 

 

 

Определение

 

истинности

 

предиката

can_share(

,x,y, G0 )

непосредственно

по

определению

является в общем случае алгоритмически неразрешимой задачей, так как требует проверки всех траекторий функционирования системы. По этой причине для проверки

истинности

предиката

can_share( ,x,y, G0 )

следует

определить необходимые и достаточные условия, проверка которых возможна. Решение данной задачи будет выполнено в два этапа. На первом этапе будут определены и обоснованы условия истинности предиката can_share( ,x,y, G0 ) для

графов, все вершины которых являются субъектами, на

втором

этапе

условия

истинности

предиката

can_share(

,x,y, G0 )будут определены и обоснованы для

произвольных графов.

 

 

 

Определение 2. Пусть G = (S,S,E) — граф доступов, все вершины которого являются субъектами. Говорят, что вершины графа доступов являются tg-связными или что они соединены tg -путем, когда, без учета направления ребер, в графе между ними существует путь такой, что каждое ребро этого пути помечено t или g.

23

Теорема 1. Пусть G0 S0 , S0 , E0 — граф доступов,

содержащий только вершины субъекты,

x, y S0 , x y .

Тогда предикат can_share(

,x,y, G0 ) истинен тогда и только

тогда, когда выполняются условия 1 и 2.

 

 

 

Условие 1.

 

Существуют

 

 

субъекты

s1,...,sm S0 : si , y, i

E0 , где i

1,...,m и

 

1 ...

m.

Условие 2. Субъекты х и

si являются tg-связными в

графе G0 , где i 1,...,m.

 

 

 

 

 

Пусть N = 1.

Тогда существует

s, y,

E0

и х и s

соединены ребром t

или g

в графе G0 .

Возможны четыре

случая такого соединения х и s, для каждого из которых, указана последовательность преобразований графа, требуемая для передачи прав доступа (рис. 11-14).

G0

t

 

 

 

 

t

 

 

 

 

 

 

 

x

s

y

take (

, x, s, y )

x

s

y

 

 

 

 

Рис. 11. Первый случай

 

 

G0

g

 

 

 

 

g

 

 

 

 

, s, x, y ) x

 

x

s

y

grant (

s

y

Рис. 12. Второй случай

24

 

 

 

 

 

 

z

 

 

 

 

 

G0

 

 

 

 

 

t,

 

 

 

 

 

t

 

 

create t, g , x, z

g g

 

 

 

grant

x

 

s

y

)

x

 

s

y

t, g , x, z )

 

 

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

z

 

 

 

 

 

t,

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

t,

g

s

 

 

 

g

x

g

s

 

y

g

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

g

grant

, s, z, y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

take , x, z, y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 13. Третий случай

 

 

 

 

 

 

 

 

 

z

 

 

 

 

G0

 

 

 

 

 

 

t,g

 

 

 

 

t

 

 

 

 

 

 

g

 

 

 

x

 

 

 

create

 

 

 

x

s

 

y

 

s

y t, g , x, z

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z

 

 

 

 

z

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

t,g

 

 

 

t,g

g

 

 

 

 

 

 

 

 

y

 

 

 

 

 

x

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

s

 

 

t

 

grant

, s, z, y

 

 

 

 

x

 

s

 

take , x, z, y

 

 

 

 

 

 

 

 

 

Рис. 14. Четвёртый случай

 

 

 

Для

определения

истинности

предиката

can_share( ,x,y, G0 )в произвольном графе дадим определения.

Определение 3. Островом в произвольном графе доступов Go называется его максимальный tg-связный подграф, состоящий только из вершин субъектов.

Определение 4. Мостом в графе доступов G0

называется tg-путь, концами которого являются вершины субъекты, проходящий через вершины объекты, словарная

25

запись которого имеет вид t* , t* , t* g t* , t* g t* , где символ «*» означает многократное (в том числе нулевое) повторение.

Определение 5. Начальным пролетом моста в графе доступов Go называется tg-путь, началом которого является вершина субъект, концом — объект, проходящий через

вершины объекты, словарная запись которого имеет вид t* g .

Определение 6. Конечным пролетом моста в графе доступов Go называется ig-путь, началом которого является вершина субъект, концом — объект, проходящий через

вершины объекты, словарная запись которого имеет вид t* .

 

Теорема 2. Пусть

G0

S0 ,O0 , E0

— произвольный

 

граф доступов,

x, y O0 , x

y. Предикат can_share(a,x,y,Go)

 

истинен тогда и только тогда, когда или

x, y,

 

E0 , или

 

выполняются условия 1-3.

 

 

 

 

 

 

 

 

 

 

 

 

Условие 1. Существуют объекты s1,....,sm

 

O0 :

 

 

 

 

 

si , y, i

E0

для i

1,....,m и

1 ...

 

m.

 

 

 

 

 

Условие 2. Существуют субъекты x' ,..., x' , s'

,....,s'

S

0

:

 

 

 

 

 

 

 

 

 

 

 

 

 

1

m

1

m

 

 

 

 

а)

 

 

x

x'

или x'

соединен с х начальным пролетом

 

 

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

моста в графе G0 , где i

1,...m;

 

 

 

 

 

 

 

б)

 

 

s

s'

или s'

соединен с

s конечным пролетом

 

 

 

 

 

i

i

 

i

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

моста в графе G0 , где i

1,...,m.

 

 

 

 

 

 

 

Условие

3.

В

графе

G

для каждой

пары

x' , s'

,

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

i

 

i

 

i 1,...m, ,

существуют острова

Ii,1,..., Ii,ui

, где

 

ui 1,

такие,

что

x'

I

i,1

, s'

I

 

и существуют мосты между островами

 

i

 

i

 

i,ui

 

 

 

 

 

 

 

 

 

 

 

 

Ii, j

и Ii, j 1, j

1,...,ui

1.

 

 

 

 

 

 

 

 

 

 

 

26

Доказательство. Проведем доказательство теоремы для т = 1, так как схему доказательства для этого случая легко

продолжить на случай m

1.

 

 

 

При т=1

условия

1-3 формулируются

следующим

образом (рис. 15).

 

 

 

 

 

Условие 1.

Существует объект s O0 :

s, y,

E0.

Условие 2.

Существуют субъекты x' , s'

S

0

:

 

 

 

 

 

а) х=х' или х' соединен с х начальным пролетом моста в графе G0 ;

б) s=s' или s' соединен с s конечным пролетом моста в графе G0.

r

t

t

t x'

x

Начальный пролёт моста

I1

 

 

t

t

t

g

t

t

 

I2

Мосты

 

 

g

 

 

 

 

t

t

 

 

 

 

 

 

 

t

 

 

I3

 

 

 

 

S

 

 

 

 

t

 

 

S

t

t

 

 

 

 

y

Конечный пролёт моста

 

 

Рис. 15. Пример пути передачи объекту x прав доступа к объекту y

27

Условие 3. В графе G0

существуют острова I1,...,Iu ,

u 1, такие, что x'

I

, s'

I

u

,

в существуют

мосты между

 

1

 

 

 

 

 

 

островами I j и I j 1, j

 

1,...,u 1.

 

 

 

Достаточность.

Если

x, y,

E0 ,

то предикат

can_share ( , x, y,G0 )

истинен.

 

 

 

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

Задание 1. Проверьте, является ли мостом граф доступов на рис. 16, а.

Решение. Используем следующие обозначения для вершин графа доступов: s1, s2 субъекты, o1, o2 объекты

(рис.16, б)

Так как в определении 4 нет ограничения на повтор объектов на мосту, то граф доступов задает мост со словарной

записью t , t , g, t , С концами в вершинах-субъектах s1 , s2 и проходящий через объекты o2 , o1, o2 (рис. 16, в).

O1

 

t,g

 

 

 

t,g

 

 

t

t

S1

t

S

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

O2

 

 

а)

 

 

 

б)

 

 

t

t

g

 

t

 

S1

O2

 

O1

 

S2

 

 

 

 

O2

 

в)

Рис. 16. Графы, илюстрирующие решение задания 1

28