Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы Рудина.doc
Скачиваний:
25
Добавлен:
20.09.2019
Размер:
604.67 Кб
Скачать

7. Дискреционный контроль доступа.

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

Модель Харрисона-Руззо-Ульмана.

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

Рассмотрим элементы модели.

  1. Конечный набор общих прав R = {r1, …, rn}.

  2. Конечный набор исходных субъектов S0 и конечный набор исходных объектов O0, каждый субъект является также объектом.

  3. Конечный набор команд C формы a(X1, …, Xn), где a – имя команды,  X1, …, Xn – формальные параметры, указывающие на объекты.

Элементами матрицы доступа являются права доступа, взятые из набора общих прав. Состояния системы изменяются при изменении элементов матрицы доступа М.

Запросы к системе выглядят так:

If r1 in M[s1, o1] and r2 in M[s2, o2] and … and rm in M[sm, om]

                Then op1, op2, … , opn.

Здесь проверяется принадлежит ли право ri ячейке матрицы доступа на пресечении субъекта si и объекта oi, и если все права есть в соответствующих ячейках, то выполняются операторы opi.

Есть набор примитивных операций opi:

  1. enter г into (s, о) — внесение права r в ячейку матрицы (s, о); матрица доступа при этом изменяется следующим образом: S' = S, О' = О, a'[s, о] = a[s, о] ∪ r,∀ х ∈ S ∀ y ∈ O (x,y) ≠ (s, о)  а'[х,у] = а[х,у];

  2. delete г from (s, о) — удаление права r из ячейки матрицы (s, о);

  3. create subject s — создание субъекта s; матрица доступа при этом изменяется следующим образом: S' = S ∪ {s}, О' = О ∪ {s}, ∀ y ∈ О' a'[s, у] = Ø, ∀ x ∈  S' а' [х, s]= Ø, ∀ x ∈ S ∀ y ∈ O     а'[х, у] = а[х, у];

  4. create object о — создание объекта о;

  5. destroy subject s — удаление субъекта s;

  6. destroy object о — удаление объекта о;

Также приведу пример команды создания файла. Пользователь p создает файл f и устанавливает на него права чтения и записи:

 

 

command create_file{p,f)

create object f;                                //создаем объект

enter own into a[p,f];   //устанавливаем право владения

enter r into a[p,f];          //устанавливаем право на чтение

enter w into a[p,f];        //устанавливаем право на запись

end

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

 

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

 

Формулировка теоремы о разрешимости проблемы безопасности в некоторых частных случаях.

Теорема  1. Существует алгоритм для определения, является или нет монооперационная система безопасной для данного права r.

Теорема 2. Существует алгоритм, определяющий безопасность системы, описанной командами без операций create subject и create object. Данный алгоритм имеет полиномиальную сложность.

Системы, описанные командами без операций delete и destroy называются монотонными.

Теорема 3.  Множество систем безопасность, которых не может быть оценена является рекурсивно перечислимым.

Теорема 4. Проблема определения безопасности в монотонной системе является неразрешимой.

Теорема 5. Проблема определения безопасности для данного права r в системе с запросами общего вида является неразрешимой.