Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Формальные модели управления доступом




27. Модель Харрисона – Руззо – Ульмана. Элементарные операции. Теоремы.

Разработанная в 1971 г. модель Харрисона-Руззо-Ульмана формализует упоминавшееся ранее понятие матрицы доступа – таблицы, описывающей права доступа субъектов к объектам (рис. 2.3.1.1).

Строки матрицы доступа соответствуют субъектам, существующим в системе, а столбцы – объектам. На пересечении строки и столбца указаны права доступа соответствующего субъекта к данному объекту: например, на рис. 2.3.1.1 субъект subj 3 обладает правами чтения и записи по отношению к объекту obj 3.

Введём следующие обозначения:

- S – множество возможных субъектов,

- O – множество возможных объектов (напомним, что S O);

- R={r1, …, rn} – конечное множество прав доступа

- O× S × R - пространство состояний системы;

- M – матрица прав доступа, описывающая текущие права доступа субъектов к объектам;

- Q=(S, O, M) – текущее состояние системы;

- M[s,o] – ячейка матрицы, содержащая набор прав доступа субъекта sS к объекту oO .

Поведение системы во времени моделируется переходами между различными её состояниями. Переходы осуществляются путём внесения изменений в матрицу М с использованием команд следующего вида:

commandα (x1,…,xn)

ifr1 in M[xs1, xo1] and

r2 in M[xs2, xo2] and

rm in M[xsm, xom]

Then

op1,

op2,

opn,

End

Здесь α - имя команды; xi – параметры команды, представляющие собой идентификаторы субъектов и объектов, opi – элементарные операции. Элементарные операции op1…opn будут выполнены в том случае, если выполняются все без исключения условия из блока if … then. При описании элементарных операций мы будем полагать, что в результате выполнения операции система переходит из состояния Q=(S, O, M) в состояние Q’=(S’, O’, M’).

Модель предусматривает наличие 6 элементарных операций:

1. enter r into M[s,o] ( sS,oO ) – добавление субъекту s права r по отношению к объекту o. В результате выполнения команды происходят следующие изменения в состоянии системы:

- S’=S,

- O’=O,

- M’[xs, xo]=M[xs, x0], если (xs, xo) (s,o),

- M’[s, o]=M[s, o] {r}.

Заметим, что содержимое ячейки таблицы рассматривается как множество. Это, в частности, означает, что если добавляемый элемент уже присутствовал в ячейке, то её содержимое не изменяется.

2. delete r from M[s,o] ( sS,oO ) – удаление у субъекта s права r по отношению к объекту o. Изменения в состоянии системы:

- S’=S,

- O’=O,

- M’[xs, xo]=M[xs, x0], если (xs, xo) (s,o),

- M’[s,o]=M[s.o] \ {r}.

Если удаляемое право отсутствовало в ячейке, то состояние системы в результате выполнения данной команды никак не изменяется.

3. create subject s (s∉S ) – создание нового субъекта s. Изменения в состоянии системы:

- O’=O{s},

- S’=S {s},

- M’[xs, xo]=M[xs, xo] для (xs, xo)S×O,

- M’[s, xo]=Ø для x O' o

- M’[s, xs]=Ø для x S' s

Как видим, при создании субъекта в матрицу M добавляются строка и столбец.

4. destroy subject s (sS) – удаление существующего субъекта s. Изменения в состоянии системы:

- S’=S \ {s},

- O’=O \ {s},

- M’[xs, xo]=M[xs, xo] для (xs, xo)S’×O’.

5. create object o (oO) – создание нового объекта o. Изменения в состоянии системы:

- O’=O{o},

- S’=S,

- M’[xs, xo]=M[xs, xo] для (xs, xo)S×O,

- M’[xs, o]= Ø для x S' s

При добавлении объекта в матрице доступа создаётся новый столбец.

6. destroy object o (oO \ S) – удаление существующего объекта o. Изменения в состоянии системы:

- O’=O \ {o},

- S’=S,

- M’[xs, xo]=M[xs, xo] для (xs, xo)S’×O’.

Приведём несколько примеров команд:

1. Создание файла.

Пользователь p создаёт файл f и получает на него права владения, чтения и записи.

commandcreate_file (p, f)

create objectf,

enterown intoM[p, f],

enterr intoM[p, f],

enterw intoM[p, f],

End

2. Создание процесса.

Процесс p создаёт процесс q и получает на него право чтения, записи и владения, передавая процессу q права записи и чтения по отношению к самому себе.

commandexec_process(p, q)

create subjectq,

enterown intoM[p, q],

enterr intoM[p, q],

enterw intoM[p, q],

enterr intoM[q, p],

enterw intoM[q, p],

End


Поделиться:

Дата добавления: 2015-01-19; просмотров: 138; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты