From f9b917e3135b27caf54d4e595e30cbe7ece935ae Mon Sep 17 00:00:00 2001
From: Andrew Guschin <guschin@altlinux.org>
Date: Tue, 6 Aug 2024 23:54:54 +0400
Subject: =?UTF-8?q?=D0=9B=D0=B5=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BF=D0=BE=20?=
 =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8F=D0=BC=20=D0=B1=D0=B5=D0=B7?=
 =?UTF-8?q?=D0=BE=D0=BF=D0=B0=D1=81=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B8?=
 =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=D0=BC=20=D0=B0=D0=BB?=
 =?UTF-8?q?=D0=B3=D0=B5=D0=B1=D1=80=D0=B0=D0=B8=D1=87=D0=B5=D1=81=D0=BA?=
 =?UTF-8?q?=D0=BE=D0=B9=20=D0=B3=D0=B5=D0=BE=D0=BC=D0=B5=D1=82=D1=80=D0=B8?=
 =?UTF-8?q?=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 security-models/lectures/lecture4.tex | 159 ++++++++++++++++++++++++++++++++++
 1 file changed, 159 insertions(+)
 create mode 100644 security-models/lectures/lecture4.tex

(limited to 'security-models/lectures/lecture4.tex')

diff --git a/security-models/lectures/lecture4.tex b/security-models/lectures/lecture4.tex
new file mode 100644
index 0000000..aefcb56
--- /dev/null
+++ b/security-models/lectures/lecture4.tex
@@ -0,0 +1,159 @@
+% Лекция 4 (13.10.23)
+
+\subsection{Модель типизированной матрицы доступов}
+
+Дискреционная модель, получившая название <<типизированная матрица доступов>>
+(ТМД), представляет собой развитие модели ХРУ, дополненной концепцией типов,
+что позволяет несколько смягчить те условия, для которых возможно доказательство
+безопасности системы.
+
+Формальное описание модели включает в себя следующие элементы:
+\begin{itemize}
+  \item $O$ --- множество объектов системы;
+  \item $S$ --- множество субъектов системы ($S \subseteq O$);
+  \item $R$ --- множество прав доступа субъектов к объектам;
+  \item $M$ --- матрица доступов;
+  \item $C$ --- множество команд;
+  \item $T$ --- множество типов объектов;
+  \item $t: O \to T$ --- функция, ставящая в соответствие каждому объекту его тип;
+  \item $q = (S, O, t, M)$ --- состояние системы;
+  \item $Q$ --- множество состояний системы.
+\end{itemize}
+
+Состояния системы изменяются в результате применения к ним команд множества $C$.
+
+\begin{align*}
+  comm&and c(x_1 : t_1, \dots, x_k : t_k) \\
+      &if (r_1 \in M[x_{s_1}, x_{o_1} and \dots and r_m \in M[x_{s_m}, x_{o_m}]) then \\
+      &   a_1; \\
+      &   \dots \\
+      &   a_n; \\
+      &endif \\
+  &  end.
+\end{align*}
+
+Перед выполнением команды происходит проверка типов фактических параметров, и,
+если они не совпадают с указанными в определении команды, то команда не
+выполняется.
+
+В модели ТМД используются 6 видов примитивных операторов, отличающихся от
+аналогичных операторов модели ХРУ только использованием типизированных
+параметров.
+
+%% TODO: таблица
+Примитивный оператор / Исходное состояние $q = (S, O, t, M)$ / Результирующее состояние $q' = (S', O', t', M')$
+<<внести>> право $r$ в $M[s, o]$ / $s \in S, o \in O, r \in R$ / $S' = S, O' = O, t' = t, M'[s, o] = M[s, o] \cup \set{r}$, если $(s', o') \neq (s, o)$, то $M'[s', o'] = M[s', o']$.
+<<удалить>> право $r$ из $M[s, o]$ / $s \in S, o \in O, r \in R$ / $S' = S, O' = O, t' = t, M'[s, o] = M[s, o] - \set{r}$, если $(s', o') \neq (s, o)$, то $M'[s', o'] = M[s', o']$.
+<<создать>> субъект $s'$ с типом $t_s$ / $s' \not\in O$ / $S' = S \cup \set{s'}, O' = O \cup \set{s'}$, если $o \in O$, то $t'(o) = t(o), t'(s') = t_s$, если $(s, o) \in S \times O$, то $M'[s, o] = M[s, o]$, если $o \in O'$, то $M'[s', o] = \varempty$, если $s \in S'$, то $M'[s, s'] = \varempty$.
+<<создать>> объект $o'$ с типом $t_o$ / $o' \not\in O$ / $S' = S, O' = O \cup \set{o'}$, если $o \in O$, то $t'(o) = t(o), t'(o') = t_o$, если $(s, o) \in S \times O$, то $M'[s, o] = M[s, o]$, если $s \in S'$, то $M'[s, o'] = \varempty$.
+<<уничтожить>> субъект $s'$ / $s' \in O$ / $S' = S - \set{s'}, O' = O - \set{s'}$, если $o \in O$, то $t'(o) = t(o)$, если $(s, o) \in S' \times O'$, то $M'[s, o] = M[s, o]$.
+<<уничтожить>> объект $o'$ / $o' \in O, o' \in S$ / $S' = S, O' = O - \set{o'}$, если $o \in O'$, то $t'(o) = t(o)$, если $(s, o) \in S' \times O'$, то $M'[s, o] = M[s, o]$.
+
+Таким образом, ТМД является обобщением модели ХРУ, которую можно рассматривать
+как частный случай ТМД с одним единственным типом для всех субъектов и объектов.
+
+С другой стороны, любую ТМД можно выразить через систему ХРУ, введя для
+обозначения типов специальные права доступа, а проверку типов в командах
+заменив проверкой наличия соответствующих прав доступа.
+
+Пусть $c(x_1 : t_1, \dots, x_k : t_k)$ --- некоторая команда системы ТМД. Будем
+говорить, что $x_i$ является \emph{дочерним параметром}, а $t_i$ является
+\emph{дочерним типом} в $c(x_1 : t_1, \dots, x_k : t_k)$, где $1 \leq i \leq k$,
+в случае, когда в ней имеется один из следующих примитивных операторов:
+\begin{itemize}
+  \item <<создать>> субъект $x_i$ с типом $t_i$;
+  \item <<создать>> объект $x_i$ с типом $t_i$.
+\end{itemize}
+
+В противном случае будем говорить, что $x_i$ является \emph{родительским
+параметром}, а $t_i$ является \emph{родительским типом} в команде
+$c(x_1 : t_1, \dots, x_k : t_k)$.
+
+Заметим, что в одной команде тип может быть одновременно и родительским и
+дочерним.
+
+Например,
+\begin{align*}
+  &command foo(s_1: u, s_2: u, s_3: v, o_1: w, o_2: b) \\
+  &   \text{<<создать>> субъект } s_2 \text{с типом } u; \\
+  &   \text{<<создать>> объект } s_3 \text{с типом } v; \\
+  &end.
+\end{align*}
+
+Здесь $u$ является
+
+
+\emph{Система монотонной ТМД} (МТМД) --- система ТМД, в командах которой
+отсутствуют немонотонные примитивные операторы вида <<удалить>> и
+<<уничтожить>>.
+
+\emph{Каноническая форма системы МТМД} (КФМТМД) --- система МТМД, в которой
+команды, содержащие примитивные операторы вида <<создать>>, не содержат
+условий и примитивных операторов вида <<внести>>.
+
+\begin{theorem} %% NOTE: 2.3
+  Для каждой системы МТМД существует эквивалентная ей система КФМТМД.
+\end{theorem}
+\begin{proof}
+  Пусть задана система МТМД, в которой определены множества $R, T, Q, C$.
+  Построим эквивалентную ей систему КФМТМД, определив множества $R^*, T^*,
+  Q^*, C^*$.
+
+  Зададим множества
+  \begin{align*}
+    R^* &= R \cup \set{active}; \\
+    T^* &= T \cup \set{t_{active}}.
+  \end{align*}
+
+  В каждом состоянии $q^* = (S^*, O^*, t^*, M^*)$, соответствующем состоянию
+  $q = (S, O, t, M)$, справедливы равенства:
+  \begin{align*}
+    S^* &= S \cup \set{s_{active}}; \\
+    O^* &= O \cup \set{s_{active}}.
+  \end{align*}
+
+  Пусть также для каждого $o \in O$ справедливо равенство $t^*(o) = t(o)$ и
+  $s_{active}$ --- единственный объект такой, что $t^*(s_{active}) = t_{active}$.
+
+  Кроме того, для $s \in S, o \in O$ справедливо равенство $M^*[s, o] = M[s, o]$,
+  и в начальном состоянии $q_0^* = (S_0^*, O_0^*, t_0^*, M_0^*)$ системы КФМТМД
+  для $o \in O_0$ справедливо равенство $M_0^*[s_{active}, o] = \set{active}$.
+
+  Таким образом, право доступа $active$ обозначает активизированные субъекты и объекты
+  КФМТМД.
+
+  Каждую команду $c(x_1: t_1, \dots, x_k: t_k) \in C$ системы МТМД, не содержащую
+  примитивные операторы <<создать>>, представим командой $c(x_1: t_1, \dots, x_k:
+  t_k, x: active)$ системы КФМТМД, полученной из исходной команды добавлением
+  условий проверки $active \in M[x, x_i], i = 1, \dots, k$.
+
+  Каждую команду $c(x_1: t_1, \dots, x_k: t_k)$ системы МТМД, содержащую
+  примитивные операторы <<создать>>, представим монотонными командами КФМТМД:
+  \begin{itemize}
+    \item
+      $c'_{x_i}(x_{j_1}: t_{j_1}, \dots x_{j_m}: t_{j_m})$ --- команды без
+      проверки условий, каждая из которых соответствуют одному дочернему
+      параметру $x_i$ команды $c(x_1: t_1, \dots, x_k: t_k)$, содержит все её
+      родительские параметры и параметр $x_i$ и содержит соответствующий
+      примитивный оператор вида <<создать>>;
+    \item
+      $c''(x_1: t_1, \dots, t_k: t_k, x: t_{active})$ --- команда, содержащая
+      условия и примитивные операторы <<внести>> команды $c(x_1: t_1, \dots,
+      x_k: t_k)$, условия проверки $active \in M[x, x_i]$, для всех
+      родительских параметров $x_i$, примитивные операторы <<внести>> право
+      $active$ в $M[x, x_i]$ для всех дочерних параметров $x_i$.
+  \end{itemize}
+
+  Таким образом, только <<активизированные>> объекты (в том числе и субъекты)
+  системы КФМТМД соответствуют объектам системы МТМД, а все преобразования над
+  ними в системе КФМТМД, соответствуют преобразованиям системы МТМД.
+\end{proof}
+
+\emph{Граф создания системы МТМД} --- ориентированный граф с множеством вершин
+$T$, в котором дуга от вершина $u$ к вершине $v$ существует $\iff$ в системе
+имеется команда, в которой $u$ является родительским типом, а $v$ --- дочерним
+типом.
+
+Система МТМД (КФ МТМД) называется \emph{ациклической} (АМТМД или, соответственно,
+АКФМТМД) $\iff$ её граф создания не содержит циклов; в противном случае система
+является \emph{циклической}.
-- 
cgit v1.2.3

