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

Материал из testwiki
Перейти к навигации Перейти к поиску

Модель Харрисона-Руззо-Ульмана (HRU-модель) — одна из формальных моделей управления доступом субъектов (пользователей) к объектам, реализованная с помощью матрицы доступов. Названа в честь трёх его авторов: Шаблон:Iw, Уолтера Руззо и Джеффри Ульмана.Шаблон:Sfn

Описание модели

Введение

В современном мире одной из главных ценностей является информация. Поэтому так важно сделать доступ к информации безопасным. В связи с этим были разработаны модели управления доступом. Одной из таких моделей является модель Харрисона-Руззо-Ульмана, главной особенностью которой является матрица с полным описанием пользовательских прав к файлам. Изменения в эту матрицу вводятся с помощью специальных команд.

Описание состояния системы

Основной задачей любой модели управления доступом является ограничение на выполнениe операций, которые разрешено проводить субъекту (пользователю) над объектом. Такими операциями могут являться, например, чтение (поток информации от объекта к субъекту) и запись (поток информации от субъекта к объекту). Введем некоторые обозначения:

Матрица доступа

S — множество субъектов,

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

R=(r1,r2,...,rn) — множество прав доступа.

Для реализации этих прав в данной модели используется матрица доступов M, строки которой соответствуют субъектам, а столбцы — объектам. На пересечении строчек и столбцов указаны права доступа, которыми обладает данный субъект по отношению к данному объекту. Тогда текущее состояние системы Q можно однозначно записать в таком виде:Шаблон:Sfn

Q=(S,O,M)

Переходы между состояниями системы

Для того чтобы был возможен переход из Q=(S,O,M) в Q=(S,O,M), нужно ввести некоторые элементарные операции. Для этой цели в данной модели существует шесть операторов op:Шаблон:Sfn

  1. Добавление права r в ячейку M[s;o]:
    • op=enterrintoM[s,o]
  2. Удаление права r из ячейки M[s;o]:
    • op=deleterfromM[s,o]
  3. Создание нового субъекта s:
    • op=createsubjects
  4. Создание нового объекта o:
    • op=createobjecto
  5. Удаление субъекта s:
    • op=destroysubjects
  6. Удаление объекта o:
    • op=destroyobjecto

Условия выполнения и новое состояние системы записаны в виде таблицы:Шаблон:Sfn

Оператор Условия выполнения Новое состояние системы
op=enterrintoM[s,o] sS,oO S=S,O=O,A[s,o]=A[s,o]{r},

if(s,o)(s,o)A[s,o]=A[s,o]

op=deleterfromM[s,o] sS,oO S=S,O=O,A[s,o]=A[s,o]{r},

if(s,o)(s,o)A[s,o]=A[s,o]

op=createsubjects sS S=S{s},O=O,

if(s,o)S×OA[s,o]=A[s,o],

ifoOA[s,o]=

op=createobjecto oO S=S,O=O{o},

if(s,o)S×OA[s,o]=A[s,o],

ifsSA[s,o]=

op=destroysubjects sS S=S{s},O=O,

if(s,o)S×OA[s,o]=A[s,o],

op=destroyobjecto oO S=S,O=O{o},

if(s,o)S×OA[s,o]=A[s,o],

Любой переход может быть осуществлен с помощью такой команды:Шаблон:Sfn

command α(x1,x2,...,xn)
    if r1inM[s1,o1]and
       r2inM[s2,o2]and
       ...
       rminM[sm,om]
    then
         op1,
         op2,
         ...
         opk,
end

Пример команды

Примером команды, которая является комбинацией элементарных операций op, может служить создание файла F пользователем P и получение им прав на чтение read:Шаблон:Sfn

command CreateFile(F,P) 
      createobjectF,
      enterreadintoM[P,F],
end

Системы в модели Харрисона-Руззо-Ульмана

Любая система в модели Харрисона-Руззо-Ульмана характеризуется матрицей доступа M, конечным количеством прав R=(r1,r2,...,rn), объектов O=(o1,o2,...,om), субъектов S=(s1,s2,...,sl) и операций A=(α1,α2,...,αk). Система является монооперационной, если каждая команда αi данной системы выполняет лишь одну элементарную операцию op.Шаблон:Sfn


Безопасность

Критерий безопасности системы

Для заданной системы исходное состояние Q0=(S0,O0,M0) называется безопасным относительно права r, если не существует такой последовательности команд, которая изменила бы заданное начальное состояние системы так, что право r записалось бы в ячейку M[s;o], в которой оно отсутствовало в начальном состоянии Q0. Если это условие не выполнено, то произошла утечка информации.Шаблон:Sfn

Теорема 1

Существует алгоритм, проверяющий на безопасность исходное состояние Q0 монооперационной системы на безопасность относительно права r.Шаблон:Sfn

Доказательство

Чтобы показать, что исходное состояние системы является безопасным относительно права r, нужно перебрать все последовательности операций и проверить на отсутствие утечки права r для каждого конечного состояния. Из этого следует, что условием возможности проверки на безопасность будет ограниченность количества последовательностей операций. Пусть α1,α2,...,αk — некоторая последовательность операций. Заметим, что её можно упростить. Команды delete и destroy уберем из последовательности, так как нас интересует наличие права в ячейке, а не его отсутствие. Добавим команду createsubject в начало последовательности операций и создадим таким образом субъект sadd. Заменим ссылки на субъекты и объекты, создаваемые другими командами createsubject и createobject, ссылкой на sadd. Остальные команды createsubject и createobject убираем, так как ввиду монооперационности системы нельзя создать субъект и определить для него права в одной операции. В результате остается одна команда createsubject и множество команд enter, максимальное число которых легко посчитать по формуле N=|R|(|S0|+1)(|O0|+1). Из этого следует, что число последовательностей операций ограниченно, а значит возможно перебором проверить на безопасность состояние системы относительно права r.Шаблон:Sfn

Теорема 2

Задача определения безопасности исходного состояния Q0 системы общего вида для данного права r является неразрешимой.Шаблон:Sfn

Доказательство

Чтобы доказать данную теорему, достаточно свести задачу определения безопасности к задаче остановки машины Тьюринга, которая является заведомо неразрешимой.Шаблон:Sfn

Преимущества и недостатки

ПреимуществаШаблон:Sfn

  1. Простота и наглядность, так как для данной модели не требуется сложных алгоритмов.
  2. Эффективность в управлении, так как возможно управление правами пользователей с точностью до операции.
  3. Сильный критерий безопасности.

НедостаткиШаблон:Sfn

  1. Не существует алгоритма проверки на безопасность для произвольной системы.
  2. Уязвимость для атаки с помощью троянского коня, так как в данной модели не существует контроля за потоками информации между субъектами.

Применение

Несмотря на то, что модель Харрисона-Руззо-Ульмана не предоставляет алгоритма проверки на безопасность для произвольной системы, данная модель нашла свою нишу в мире и используется при формальной верификации корректности построения систем разграничения доступа в высокозащищённых автоматизированных системах. На данный момент создание и развитие моделей управления доступом заключается в основном в проектировании различных модификаций модели Харрисона-Руззо-Ульмана и в поиске условий, при которых бы задача определения безопасности была алгоритмически разрешимой.Шаблон:Sfn Шаблон:Sfn

Сравнение с аналогом

Аналогом модели Харрисона-Руззо-Ульмана является модель Белла-Лападулы, которая предусматривает разделение объектов и субъектов на уровни секретности, а также контролирует поток данных от субъекта к субъекту. Так субъект, имеющий менее высокий уровень секретности, чем у объекта, не получит права доступа к этому объекту. Это создает ряд преимуществ и недостатков по сравнению с моделью Харрисона-Руззо-Ульмана. Модель Белла — Лападулы не подвержена атакам с помощью троянских коней, более безопасна. Но модель Харрисона-Руззо-Ульмана более эффективна в управлении и проста в использовании. Поэтому каждая из этих моделей нашла свое применение.Шаблон:Sfn

См. также

Примечания

Шаблон:Примечания

Литература