summaryrefslogtreecommitdiff
path: root/security-models/lectures/lecture2.tex
blob: 9ccde6566773816f36ab18cad94069302b5ec42a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
% Лекция 2? (15.09.23)

\subsection{Виды политик} % 1.4

Известны три основных вида политик управления доступом, определяющих способ
задания разрешённых прав доступа субъектов к сущностям.

\begin{enumerate}
  \item
    \emph{Дискреционная политика управления доступом} --- политика,
    соответствующая следующим требованиям управления доступом в компьютерной
    системе:
    \begin{enumerate}
      \item
        все сущности должны быть идентифицированы, то есть каждой сущности
        должен быть присвоен уникальный идентификатор;
      \item
        задана матрица доступов, каждая строка которой соответствует субъекту
        компьютерной системы, столбец --- сущности компьютерной системы, ячейка
        содержит список прав доступа субъекта к сущности, представляющий собой
        подмножество прав доступа, реализованных в компьютерной системе;
      \item
        субъект обладает правом доступа к сущности компьютерной системы в том
        и только том случае, когда в ячейке матрицы доступов, соответствующей
        субъекту и сущности, содержится данное право доступа.
    \end{enumerate}

    Достоинства: относительно простая реализация системы управления доступом.

    Недостатки: статичность установленных правил управления доступом.
    
    Примеры: модель Take-Grant, ДП-модель.

    В общем случае дискреционная политика управления доступом не позволяет
    реализовывать ясную и чёткую систему защиты информации в компьютерной
    системе.

  \item
    \emph{Мандатная (полномочная) политика управления доступом} --- политика,
    соответствующая следующим требованиям управления доступом в компьютерной
    системе:
    \begin{enumerate}
      \item
        все сущности компьютерной системы должны быть идентифицированы;
      \item
        задана решётка уровней конфиденциальности информации;
      \item
        каждой сущности компьютерной системы присвоен уровень
        конфиденциальности, задающий установленные ограничения на доступ к
        данной сущности;
      \item
        каждому субъекту системы присвоен уровень доступа, задающий уровень
        полномочий данного субъекта в компьютерной системе;
      \item
        субъект может получить доступ к сущности компьютерной системы только в
        случае, когда уровень доступа субъекта позволяет предоставить ему
        данный доступ к сущности с заданным уровнем конфиденциальности, и
        реализация доступа не приведёт к возникновению информационных потоков
        от сущностей с высоким уровнем конфиденциальности к сущностям с низким
        уровнем конфиденциальности.
    \end{enumerate}

    Пример: модель Белла-ЛаПадулы.

    Достоинства: задача проверки безопасности является алгоритмически
    разрешимой; правила данной политики более ясны и просты для понимания
    разработчиками и пользователями компьютерной системы.

    Недостатки: реализация достаточно сложна и требует значительных ресурсов
    компьютерной системы.

  \item
    \emph{Политика ролевого управления доступом} --- политика, соответствующая
    следующим требования управления доступом в компьютерной системе:
    \begin{enumerate}
      \item все сущности должны быть идентифицированы;
      \item
        задано множество ролей, каждой из который ставится в соответствие
        некоторое множество прав доступа к сущностям;
      \item
        каждый субъект обладает некоторым множеством разрешённых
        (авторизованных) для данного субъекта ролей;
      \item
        субъект обладает правом доступа к сущности компьютерной системы в
        случае, когда субъект обладает ролью, которой соответствует множество
        прав доступа, содержащее данное право доступа к данной сущности.
    \end{enumerate}

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

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

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

    В том числе на основе ролевого управления доступом могут быть реализованы
    дискреционное или мандатное управление доступом.

    Кроме данных трёх политик в формальных моделях также анализируются следующие
    две политики.

  \item
    \emph{Политика безопасности информационных потоков} основана на разделении
    всех возможных информационных потоков между сущностями компьютерной системы
    на два непересекающихся множества: множество разрешённых информационных
    потоков и множество запрещённых информационных потоков.

    Цель реализации данной политики состоит в том, чтобы обеспечить
    невозможность возникновения в компьютерной системе запрещённых
    информационных потоков.

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

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

  \item
    \emph{Политика изолированной программной среды}.

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

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

    При этом должна контролироваться целостность сущностей компьютерной системы,
    влияющих на функциональность активизируемых субъектов.
\end{enumerate}


\subsection{Математические основы}

\paragraph{Алгоритмически разрешимые и алгоритмически неразрешимые проблемы.}

\emph{Массовая проблема} представляет собой бесконечную серию индивидуальных
задач. Без ограничения общности рассмотрим массовые задачи, все индивидуальные
задачи которых имеют двузначный ответ (<<да>> и <<нет>>).

\emph{Характеристической функцией} для массовой проблемы $P$ называется функция
$f : P \to \set{0, 1}$, где для индивидуальной задачи $p \in P$ выполняются
условия:
\begin{equation*}
  \begin{cases}
    f(p) = 1, &\text{когда } p \text{ имеет ответ <<да>>}; \\
    f(p) = 0, &\text{когда } p \text{ имеет ответ <<нет>>};
  \end{cases}
\end{equation*}

Массовая проблема является \emph{алгоритмически разрешимой}, когда существует
алгоритм, вычисляющий её характеристическую функцию.

В противном случае массовая проблема является \emph{алгоритмически
неразрешимой}.

Основной метод, применяемый для доказательства алгоритмической неразрешимости,
базируется на следующем рассуждении:
\begin{enumerate}
  \item Пусть имеются две массовые проблемы $P_1$ и $P_2$.
  \item
    Пусть имеется алгоритм $A$, который по всякой индивидуальной задаче $p_1 \in
    P_1$ строит индивидуальную задачу $p_2 \in P_2$ такую, что $p_1$ имеет ответ
    <<да>> тогда и только тогда, когда $p_2$ имеет ответ <<да>>.
  \item
    В этом случае говорят, что проблема $P_1$ сводится к проблеме $P_2$.
  \item Если проблема $P_1$ неразрешима, то проблема $P_2$ также неразрешима.
\end{enumerate}

Пример алгоритмически неразрешимой проблемы --- проблема останова машины
Тьюринга.