Мандатная модель Дискреционная модель Ролевая модель Улучшенная ролевая модель (ForceField)
Задачи любой модели Ограничить доступ к объектам системы. Управлять ограничениями.
Базовые модели Сущности системы: субъекты и объекты Хорошо известные модели: –Мандатная –Дискреционная –Ролевая
Мандатная модель Модель Белла-ЛаПадулы – правила секретного документооборота. Объекты и субъекты имеют уровни допуска. Можно «читать вниз» и «писать вверх». Проблемы: –Разграничение прав внутри одного уровня. –Обмен уведомлениями между уровнями.
Дискреционная модель Явная выдача разрешений для каждого объекта системы. Пример – большинство операционных систем. Модель Харрисона-Руззо-Ульмана – матрица доступа. Гибче мандатного, но сложен в управлении. Улучшения: –Группировка пользователей. –Типы объектов.
Ролевая модель Операции группируются в роль. Роли составляют иерархию. Пользователь играет в системе одну или более ролей. Операция разрешена, если есть нужные роли. У объекта нет хозяина. Все однотипные объекты одинаковы. Проще дискреционной в управлении. Нельзя управлять отдельными частями системы.
Подробнее о ролевой модели Компромиссное решение, поэтому часто применяется в прикладных программах. Ограничения: –Глобальность ролей. –Отсутствие владельца объекта. –Операции принадлежат ролям. Microsoft Authorization Manager
Улучшенная ролевая модель (ForceField) Мощнее ролевой и проста в управлении Дерево объектов –Все объекты объединены в дерево –Роли назначаются в контексте объекта –Автоматически образует домены Роль «владелец»
Классы доступа Распределение операций по ролям затрудняет разработку схемы доступа Сценарии усложяют управление Класс доступа: –Состоит из правил, определяющих право роли на выполнение операции. –Может базироваться на другом классе –Каждый объект имеет один класс доступа –Нет связи между классом типом объектов
Иерархии Есть также иерархии: –Ролей –Операций Наследование по иерархии объектов: –Ролей –Правил доступа
Реализация базовых моделей ForceField позволяет реализовать все три базовых модели: –Мандатную –Дискреционную –Ролевую
Пример ролевой модели A, B – Объекты U – Пользователи r – Роли op - Операции
Реализация ролевой модели root – искуственный корневой объект с 0 – единый класс доступа
Пример дискреционной модели
Реализация дискреционной модели
Упростим предыдущую модель
Реализация мандатной модели Назначаем уровни секретности классам доступа. Назначаем уровни допуска пользователям системы. Разделяем все операции на «чтение» и «запись». Модифицируем процедуру проверки: –При разных уровнях доступа проверяем по правилам мандатной модели –При одинаковых – по нашим обычным правилам.
Вопросы?