630 likes | 1.2k Views
Ролевое Разграничение Прав Доступа. (RBAC = Role Based Access Control). Обзор. Статическое Разрешение Конфликтов. (RH) Иерархия Ролей. (UA) Соответствие пользователи – –роли. (PA) Соответствие права доступа – –роли. USERS пользователи. ROLES роли. OPS операции. OBS объекты.
E N D
Ролевое Разграничение Прав Доступа (RBAC = Role Based Access Control) Обзор СтатическоеРазрешение Конфликтов (RH) Иерархия Ролей (UA) Соответствиепользователи– –роли (PA) Соответствиеправа доступа– –роли USERSпользователи ROLESроли OPSоперации OBSобъекты PRMS(permissions)права доступа user_sessionsприсвоениесессии пользователю session_rolesприсвоениеролей сессии SESSIONSсессии ДинамическоеРазрешение Конфликтов
Цель доклада • Установить общие понятия для ролевого разграничения доступа • Представить возможности применения RBAC в реальных и виртуальных доменах • Обсудить различные модели разграничения доступа и понять почему нам нужен RBAC!!!
Виды Контроля Доступа • Дискреционный Контроль Доступа • Мандатный Контроль Доступа • Ролевой Контроль Доступа
Дискреционный контроль доступа • Ограничения доступа к объектам только на основе идентификации пользователей, имеющих такой доступ. Пользователи Ресурсы Список Доступак приложениями Доступныеприложения Сервер 1 Имя Доступ ПетрДа ИванНет ДарьяДа Сервер 2 Серверr 3
Мандатныйконтроль доступа • Механизм MAC присваивает уровни секретности всей информации, уровни допуска для каждого пользователя и разрешает доступ пользователя только к тем данным, к которым они имеют их допуск. Принципы: Чтение Снизу равная или меньшая секретность Запись Вверх равная или большая секретность Лучшая секретность, чем в DAC
Мандатныйконтроль доступа (продолжение) SIPRNET LegacyApps Пользователи Ресурсы Сервер 1 “Совершенно секретно” Сервер 2 “Секретно” Сервер 3 “ДСП”
Ролевойконтроль доступа • Пользователь имеет доступ к объекту на основе присвоенных ему ролей. • Роли определяются на основе исполняемых сотрудниками функций. • Права доступа определяются на основе авторизации в соответствии с исполняемыми функциями. • Операции над объектом выполняются в соответствии с правами доступа. • Объект взаимодействует с ролью пользователя, а не с самим пользователем. “Ideally, the [RBAC] system is clearly defined and agile, making the addition of new applications, roles, and employees as efficient as possible”
Роль 1 Роль 2 Роль 3 Ролевойконтроль доступа Пользователи Роли Ресурсы Сервер 1 Сервер 2 Сервер 3 Пользователи меняются часто, роли – редко
Привилегии Роли разрабатываются на основе принципа минимальных привилегий: • Роль содержит минимальное количество действий над объектом. • Пользователю присваиваются только те роли, которые позволяют выполнять ему только требуемые действия. • Права, присваиваемые ролью, не зависят от пользователя, которому она присваивается.
Концепция ролевогоконтроля доступа • Базовые компоненты • Расширения RBAC • Иерархический RBAC • Иерархия общего вида • Ограниченная иерархия • Разрешение конфликтов • Статическое • Динамическое
Базовые компоненты • Определения: • ПОЛЬЗОВАТЕЛИ (USERS) • РОЛИ (ROLES) • Операции (ops) • Объекты (obs) • User Assignments (ua) • assigned_users
Базовые компоненты(продолжение) • Права доступа (prms) • Assigned Permissions • Object Permissions • Operation Permissions • Сессии • User Sessions • Available Session Permissions • Session Roles
Расширениябазовых компонент • Иерархия ролей (rh) • Иерархия общего вида • Ограниченная иерархия • Разрешение конфликтов • Статическое • Динамическое
Развитие RBAC Разграничение обязанностей с минимумом привилегий Самаясложная RBAC3 Успех Модель RBAC
Система RBAC иее функциональные спецификации • Административные операции • создать, удалить, задать элементы и связи • Просмотр информации • запрос (операция query) • Системные функции • создание сессии для пользователя • активация/дезактивация роли • установление ограничений • принятие решения о доступе
(UA) Соответствиепользователи– –роли (PA) Соответствиеправа доступа– –роли USERSпользователи ROLESроли OPSоперации OBSобъекты PRMS(permissions)права доступа user_sessionsприсвоениесессии пользователю session_rolesприсвоениеролей сессии SESSIONSсессии Базовый RBAC
ПОЛЬЗОВАТЕЛИ Процессы Автоматическиеагенты Пользователи
РОЛИ Исполняемые функции с ясным определением присущей им власти и ответственности (правами). Директор Разработчик Финансовыйменеджер Секретарь Отношение многие-ко-многиммеждуПользователями и Правами
ОПЕРАЦИИ (ops) Определенные действия, выполняемые программами, по команде пользователя. • Базы данных – Обновить, Вставить, Удалить • Блокировки– Открыть, Закрыть • Отчеты – Создать, Показать, Печатать • Приложения – Читать, Писать, Исполнять SQL
ОБЪЕКТЫ (obs) Любая сущность содержащая или аккумулирующая информацию, или ограниченный системный ресурс. • Файлы и директории ОС • Строки, колонки, таблицы и отчеты БД • Принтеры • Дисковое пространство • Механизмы блокировки RBAC имеет дело со всеми объектами, права на доступ к которым включены хотя бы в одну из ролей.
Соответствие пользователь ― роль(user assignment) Множество Пользователей Множество РОЛЕЙ Пользователю может быть присвоена одна или несколько ролей Разработчик Роль может бытьприсвоена одному или нескольким пользователям Секретарь
Соответствие пользователь ― роль(user assignment) Отображение ролиrна множество пользователей МножествоРОЛЕЙ МножествоПользователей User.F1 User.F2 User.F3 • User.DB1 • Просмотр • Изменение • Добавление User.DB1 права доступа объекты User.DB1
User.DB1 • Просмотр • Изменение • Добавление • User.F1 • Чтение • Запись • Исполнение правадоступа правадоступа объект объект ПРАВА ДОСТУПА(PRMS=permissions) Множество прав доступа каждый элемент которого дает разрешение на проведение некоторой операции над защищенным объектом.
Присвоение прав доступа(PA=prms assignment) множество ПРАВДОСТУПА множествоРОЛЕЙ Права доступа могут быть присвоены одной или нескольким ролям создать удалить очистить Admin.DB1 просмотреть обновить добавить Роль может быть связанас одним или несколькими правами доступа User.DB1
Присвоение прав доступа(PA=prms assignment) Отображение ролиrна множество пользователей множествоРОЛЕЙ множествоПРАВ ДОСТУПА User.F1 User.F2 User.F3 Admin.DB1 • Чтение • Запись • Исполнение • Просмотр • Обновление • Добавление • Создание • Очистка SQL
Присвоение прав доступа(PA=prms assignment) Отображение операций на права доступа множествоОПЕРАЦИЙ множествоПРАВ ДОСТУПА • public int read(byteBuffer dst) • throws IOException • Inherited methods from java.nio.channls • close() • isOpen() • Чтение Заданное множество операций связывается с определенным правом доступа
Присвоение прав доступа(PA=prms assignment) Отображение прав доступа на объекты множествоПРАВ ДОСТУПА Объекты • Открытие • Закрытие • Просмотр • Обновление • Добавление • Создание • Очистка Заданное множество объектов связывается с определенными правами доступа BLD1.door2 SQL DB1.table1
guest admin запускает user СЕССИИ Множество сессий, которые запускает каждый пользователь ПОЛЬЗОВАТЕЛЬ СЕССИИ FIN1.report1 SQL DB1.table1 APP1.desktop
guest admin запускает user СЕССИИ Отображение пользователя u на множество сессий ПОЛЬЗОВАТЕЛИ СЕССИИ User2.FIN1.report1.session USER1 SQL User2.DB1.table1.session USER2 User2.APP1.desktop.session
СЕССИИ Отображение сессии s на множество ролей СЕССИЯ РОЛИ SQL • Администратор (Admin) • Пользователь (User) • Гость (Guest) DB1.table1.session
SQL DB1.table1.session СЕССИИ Права, доступные пользователю в данной сессии РОЛЬ ПРАВАДОСТУПА СЕССИЯ • Просмотр • Обновление • Добавление • Создание • Очистка DB1.ADMINАдминистратор.DB1
(RH) Иерархия Ролей (UA) Соответствиепользователи– –роли (PA) Соответствиеправа доступа– –роли USERSпользователи ROLESроли OPSоперации OBSобъекты PRMS(permissions)права доступа user_sessionsприсвоениесессии пользователю session_rolesприсвоениеролей сессии SESSIONSсессии Иерархический RBAC
Директор Зав. лаб. 1 Зав. лаб. 2 Инженер- Технолог 1 Инженер- Технолог 2 Инженер- Конструктор 1 Инженер- Конструктор 2 Деревья Иерархий Инженер-Технолог 1 Инженер- Конструктор 1 Инженер- Технолог 2 Инженер- Конструктор 2 Инженерная группа 1 Инженерная группа 2 Дерево Инженерный департамент Обратное дерево
Решетка Иерархии Директор Зав. лаб. 1 Зав. лаб. 2 Инженер-Технолог 1 Инженер- Конструктор 1 Инженер-Технолог 2 Инженер- Конструктор 2 Инженерная группа 2 Инженерная группа 1 Инженерный департамент
Иерархия Ролей(RH=Role Hierarchies) • Структура ролей должна отражать распределение прав и обязанностей организации • Иерархии: Ограниченная и общего вида • Определение наследственных связей между ролями т.е. r1наследует отr2 Пользователь user r-w-h Гость guest -r-
Иерархия ролей общего вида Поддерживает Множественное Наследование Роль “Гость” Роль “Пользователь” Роль “Опытный Пользователь” Роль “Администратор” Только если все права r1являются также правами r2 т.е. r1 наследует от r2 Только если пользователи с ролью r1 являются также пользователямис ролью r2 Пользователь user r-w-h Гость guest -r-
авторизованные пользователи Отображение роли на множество пользователей в присутствии иерархии ролей ПОЛЬЗОВАТЕЛИпервого поколения множество РОЛЕЙ Admin.DB1 User.DB2 User.DB3 • User.DB1 • Просмотр • Обновление • Добавление User.DB1 объект правадоступа User.DB1
authorized permissions Mapping of a role onto a set of permissions in the presence of a role hierarchy ROLES set PRMS set User.DB1 User.DB2 User.DB3 Admin.DB1 • View • Update • Append • Create • Drop SQL
Ограниченнаяиерархия ролей Ограничение на число непосредственных предшественников данной роли («предок» может быть только один) Роль2 Роль2 наследует от Рольи1 Роль3 Роль3 не наследует от Роли1 или Роли2 Роль1
Ограниченнаяиерархия ролей(продолжение) Николай Сергей Федор Контролеркассы Контролербаланса Контролерсчетов Иван Инна Анна Тамара Семен Оформители счетов Баланс Аудиторы Кассиры Счетоводы Семейство Ролей Счетоводов Заметьте, чтоСеменимеет две роли: Кассира и Оформителя счетов. Это требует объединения двух различных ролей и не позволяет Семену получить роль Аудитора.
СтатическоеРазрешение Конфликтов (RH) Иерархия Ролей (UA) Соответствиепользователи– –роли (PA) Соответствиеправа доступа– –роли USERSпользователи ROLESроли OPSоперации OBSобъекты PRMS(permissions)права доступа user_sessionsприсвоениесессии пользователю session_rolesприсвоениеролей сессии SESSIONSсессии ДинамическоеРазрешение Конфликтов RBACбез конфликтов
Разрешение конфликтов • Одно из правил избежать конфликта интересов ― не давать пользователю полномочия превышающие уровень, соответствующий его должности. • Ошибки и упущения в работе организации в целом могут возникать из-за конфликта индивидуальных интересов работников. • Два типа разрешения конфликтов: • Статическое (SSD=Static Separation of Duties) • Динамическое (DSD=Dynamic Separation of Duties)
Статическоеразрешение конфликтов • SSD накладывает ограничения на роли и на установление связей Роли – Пользователи. • Пользователю не могут быть присвоены конфликтующие друг с другом роли. Ему может быть присвоена либо одна из них, либо другая. • Например, субъект не должен посылать и сам же санкционировать свои запросы.
SSD при иерархии ролей • A constraint on the authorized users of the roles that have an SSD relation. • Based on the authorized users rather than assigned users. • Ensures that inheritance does not undermine SSD policies. • Reduce the number of potential permissions that can be made available to a user by placing constraints on the users that can be assigned to a set of roles.
Динамическое разрешение конфликтов • Накладываются ограничения на множества ролей, которые присваивается пользователям. Т.о. уменьшается набор прав доступа, которые могут быть доступны для пользователя. • Данные ограничения назначаются пользователю на одну сессию. • Пользователь не может активировать конфликтующие друг с другом роли в рамках одной сессии. • Временное Лишение Доверия: пользователь не обладает правами доступа (не активирует их) до момента их выполнения ответственного действия.
Динамическое разрешение конфликтов(продолжение) Роли наследование Reduce COI Кассир Контролер Закрыть Сессию роли Кассира Закрыть ведомость кассы Начать сессию роли Контролера Открыть ведомость кассы Контролер Кассир Исправления Бухгалтерская Ошибка