Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОКБ - RBAC.docx
Скачиваний:
0
Добавлен:
18.01.2020
Размер:
183.79 Кб
Скачать

RBAC (Role-Based Access Control)

Ролевое управление доступом - развитие политики дискреционного управления доступом, при этом права доступа субъектов системы к объектам группируются с учетом специфики их применения, образуя роли.

Как правило, оно применяется в системах защиты СУБД.

Задание ролей позволяет определить более четкие и понятные для пользователей КС правила управления доступом.

Роль является совокупностью прав доступа к объектам КС.

Однако ролевое управление доступом не является частным случаем дискреционного управления доступом, так как его правила задают порядок предоставления прав доступа субъектам (пользователям) КС в зависимости от сессии его работы и от имеющихся или отсутствующих у него ролей в каждый момент времени, что является характерным для систем мандатного управления доступом.

В то же время правила ролевого управления доступом являются более гибкими, чем правила мандатного управления доступом, построенные на основе жестко определенной решетки (шкалы) ценности информации.

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

Базовая модель rbac

Для определения модели RBAC используются следующие соглашения:

  • S = Субъект (англ. Subject) = Множество пользователей;

  • R = Роль (англ. Role) = Множество ролей;

  • P = Разрешения (англ. Permissions) = Множество прав доступа на объекты системы;

  • SE = Сессия (англ. Session) = Соответствие между S, R и/или P

  • SA = функция, задающая для каждого пользователя множество ролей, на которые он может быть авторизован;

  • PA: R → 2p — функция, определяющая для каждой роли множество прав доступа; при этом для каждого p ∈ P существует r ∈ R такая, что p ∈ PA(r); (англ. Permission Assignment)

  • RH = Частично упорядоченная иерархия ролей (англ. Role Hierarchy). RH может быть еще записана так: ≥

  • user: S U  функция, задающая для каждой сессии пользователя, от имени которого она активизирована;

  • roles: S → 2R  функция, задающая для пользователя множество ролей, на которые он авторизован в данной сессии, при этом в каждый момент времени для каждой сессии s S выполняется условие roles(s)  SA(user(s)).

Могут существовать роли, на которые не авторизован ни один пользователь.

  • Один субъект может иметь несколько ролей.

  • Одну роль могут иметь несколько субъектов.

  • Одна роль может иметь несколько разрешений.

  • Одно разрешение может принадлежать нескольким ролям.

Обозначение: x ≥ y означает, что x наследует разрешения y.

Субъект может иметь множество одновременных сессий с различными разрешениями.

В базовой модели ролевого управления доступом предполагается, что множества S, R, P и функции PA, SA не изменяются с течением времени.

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

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

Для обеспечения возможности большего соответствия реальным КС, каждый пользователь которых занимает определенное положение в служебной иерархии, на множестве ролей реализуется иерархическая структура.

Определение 9.1. Иерархией ролей в базовой модели ролевого управления доступом называется заданное на множестве ролей R отношение частичного порядка «≤». При этом по определению выполняется условие

для пользователя sS, если роли r, r’  R, rSA(s) и r’ ≤ r, то r’ SA(s).

Таким образом, наряду с данной ролью пользователь должен быть авторизован на все роли, в иерархии ее меньшие.

Отношение частичного порядка на множестве ролей не обязательно задает на нем решетку.

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

Для чего? Распространенные ограничения

Определение 9.2. В базовой модели ролевого управления доступом заданы ограничения статического взаимного исключения ролей или прав доступа, если выполняются условия:

R = R1  …  Rn, где RiRj = , для 1 ≤ i < j n;

|UA(u)  Ri| ≤ 1 для uU, i  1, 2, …, n;

P = P1  …  Pm, где PiPj =  для 1 ≤ i < j m,

|PA(r)  Pi| ≤ 1 для pU, i  1, 2, …, m.

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

Определение 9.3. В базовой модели ролевого управления доступом задано ограничение динамического взаимного исключения ролей, если выполняются условия:

R = R1  …  Rn, где RiRj = , для 1 ≤ i < j n;

|roles(s)  Ri| ≤ 1, для sS, i  1, 2, …, n.

Множество ролей разделяется на непересекающиеся подмножества. При этом в каждой сессии пользователь может обладать не более чем одной ролью из каждого подмножества ролей.

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

: RN0,

: PN0,

где N0  множество натуральных чисел с нулем, и выполняются условия:

|SA-1(r)| ≤ (r), для rR;

|PA-1(p)| ≤ (p), для pP.

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

Определение 9.5. В базовой модели ролевого управления доступом задано динамическое количественное ограничение на обладание ролью, если определена функция

: RN0

и выполняется условие

|roles-1(r)| ≤ (r), для r R.

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

Определение 9.6. В базовой модели ролевого управления доступом заданы статические ограничения необходимого обладания ролью или правом доступа, если определены две функции:

: R  2R,

: P  2P,

и выполняются условия:

для sS, если r, r’  R, rSA(s) и r’  (r), то r’ SA(s);

для rR, если p, p’  P, pPA(r) и p’  (p), то p’ PA(r).

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

Определение 9.7. В базовой модели ролевого управления доступом задано динамическое ограничение необходимого обладания ролью, если определена функция

: R  2R

и выполняется условие

для sS, если r, r’  R, rroles(s) и r’  (r), то r’ roles(s).

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

Общая структура элементов базовой модели ролевого управления доступом имеет следующий вид (рис. 9.1).