Курс лекций Защита Информации/Модель Харрисона-Рузза-Ульмана: различия между версиями
Содержимое удалено Содержимое добавлено
Нет описания правки |
Нет описания правки |
||
Строка 1:
Модель Харрисона-Руззо-Ульмана является классом дискретизационной модели, реализует произвольное управление доступом субъектов к объектам и контроль за распределение прав доступа в рамках этой модели.
Строка 23 ⟶ 13 :
Поведение системы во времени моделируется переходами между различными состояниями. Переход осуществляется путем внесения изменений в матрицу <math>M</math> с помощью команд вида:
<math>command</math> <math>\alpha(x_1, ... ,x_n)</math>
<math>if~
...
<math>if~ r_m~ in~ M[x_{s_m}, x_{o_2m}]</math>
<math>then</math>
<math>op_1, op_2, ... , op_n</math>
где:
* <math>\alpha</math> - имя команды;
* <math>x_i</math> - параметры команды. являющиеся идентификаторами субъектов и объектов;
* <math>s_i</math> и <math>o_i</math> - индексы субъектов и объектов;
* <math>op_i</math> - эелементарная операция.
Элементарная операция, составляющая команду, выполняется только в том случае, если все условия, означающие присутствие указанных прав доступа в ячейках матрицы <math>M</math> являются истинными.
В классической модели допустимы только 6 элементарных операций:
# <math>enter~ r~ into~ M[s,o]</math>
# <math>delete~ r~ from~ M[s,o]</math>
# <math>create~ subject~ s</math>
# <math>create~ object~ s</math>
# <math>destroy~ subject~ s</math>
# <math>destroy~ object~ o</math>
Применение любой элементарной операции в системе, находящейся в состоянии <math>Q=(S,O,M)</math>, влечет за собой переход в другое состояние <math>Q'=(S',O',M')</math>, которое отличаеся от состояния <math>Q</math> по крайней мере одним компонентом.
* <math>enter</math>
<math>enter~ r~ into~ M[s,o]~ (s \in S, o \in O)</math>
<math>o'=o</math>
<math>s'=s</math>
<math>M'[x_s,x_o]=M[x_s, x_o]</math> если <math>(x_s, x_o) \ne (s, o)</math>
<math>M'[s,o]=M[s,o] \cup \{r\}</math>
* <math>delete</math>
<math>delete~ r~ from~ M[S,O]~ (s \in S, o \in O)</math>
<math>o'=o</math>
<math>s'=s</math>
<math>M'[x_s,x_o]=M[x_s, x_o]</math> если <math>(x_s, x_o) \ne (s, o)</math>
<math>M'[s,o]=M[s,o] \setminus \{r\}</math>
* <math>create object</math>
<math>create~ object~ o~ (o \in O)</math>
<math>o'=o \cup \{o}</math>
<math>s'=s</math>
<math>M'[x_s,x_o]=M[x_s, x_o]</math> для <math>(x_s, x_o) \in s \times o</math>
<math>M'[x_s,o]=\empty</math> для <math>x_s \in S'</math>
* <math>create subject</math>
<math>create~ subject~ s~ (s \in S)</math>
<math>o'=o \cup \{o}</math>
<math>s'=s \cup \{s}</math>
<math>M'[x_s,x_o]=M[x_s, x_o]</math> для <math>(x_s, x_o) \in s \times o</math>
<math>M'[x_s,s]=\empty</math> для <math>x_s \in S'</math>
<math>M'[s,x_o]=\empty</math> для <math>x_o \in O'</math>
* <math>destroy subject</math>
<math>destroy~ subject~ s~ (s \in S)</math>
<math>o'=o \setminus \{o}</math>
<math>s'=s \setminus \{s}</math>
<math>M'[x_s,x_o]=M[x_s, x_o]</math> для <math>(x_s, x_o) \in s' \times o'</math>
* <math>destroy subject</math>
* <math>destroy object</math>
<math>destroy~ object~ o~ (o \in O \setminus S)</math>
<math>o'=o \setminus \{o}</math>
<math>s'=s</math>
<math>M'[x_s,x_o]=M[x_s, x_o]</math> для <math>(x_s, x_o) \in s' \times o'</math>
|