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/lecture10.tex | 131 +++++++++++++++++++++++++++++++++
 1 file changed, 131 insertions(+)
 create mode 100644 security-models/lectures/lecture10.tex

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

diff --git a/security-models/lectures/lecture10.tex b/security-models/lectures/lecture10.tex
new file mode 100644
index 0000000..3a0a0d7
--- /dev/null
+++ b/security-models/lectures/lecture10.tex
@@ -0,0 +1,131 @@
+% Лекция 10 (24.11.23)
+
+%% NOTE: 2.3
+
+Устовия применения де-факто правил в исходном состоянии $G = (S, O, E \cup F)$
+и результаты их применения в результирующем состоянии $G' = (S, O, E \cup F')$
+приведены в таблице.
+
+%% TODO: таблица 1 - Де-факто правила расширенной модели Take-Grant
+
+\begin{table}[H]
+  \smallsize
+  \centering
+  \caption{}
+  \begin{tabular}{|c|p{6cm}|p{6cm}|}
+    \hline
+    Правило &
+    Исходное состояние $G = (S, O, E \cup F)$ &
+    Результирующее состояние $G' = (S, O, E \cup F')$ \\ \hline
+
+    Первое правило &
+    $x \in S; y \in O; (x, y, r) \in E \cup F$ &
+    $F' = F \cup \set{(y, x, w), (x, y, r)}$ \\ \hline
+
+    Второе правило &
+    $x \in S; y \in O; (x, y, w) \in E \cup F$ &
+    $F' = F \cup \set{(y, x, r), (x, y, w)}$ \\ \hline
+
+    $\fn{spy}(x, y, z)$ &
+    $x, y \in S; x \neq z; \set{(x, y, r), (y, z, r)} \subset E \cup F$ &
+    $F' = F \cup \set{(x, z, r), (z, x, w)}$ \\ \hline
+
+    $\fn{find}(x, y, z)$ &
+    $x, y \in S; z \in O; x \neq z; \set{(x, y, w), (y, z, w)} \subset E \cup F$ &
+    $F' = F \cup \set{(x, z, w), (z, x, r)}$ \\ \hline
+
+    $\fn{post}(x, y, z)$ &
+    $x, z \in S; y \in O; x \neq z; \set{(x, y, r), (z, y, w)} \subset E \cup F$ &
+    $F' = F \cup \set{(x, z, r), (z, x, w)}$ \\ \hline
+
+    $\fn{pass}(x, y, z)$ &
+    $y \in S; x, z \in O; x \neq z; \set{(y, x, w), (y, z, r)} \subset E \cup F$ &
+    $F' = F \cup \set{(x, z, r), (z, x, w)}$ \\ \hline
+  \end{tabular}
+\end{table}
+
+Из определения де-факто правил следует, что для анализа информационных потоков
+достаточно рассматривать потоки одного вида: либо на чтение, либо на запись.
+
+Будем рассматривать только информационные потоки на запись. Будем предполагать,
+что при возникновении информационного потока не накладывается ограничений на
+кооперацию субъектов системы, участвующих в этом процессе.
+
+Пусть $x, y \in O_0$, $x \neq y$, --- различные объекты графа доступов и
+информационных потоков $G_0 = (S_0, O_0, E_0 \cup F_0)$. Определим предикат
+$\fn{can_write}(x, y, G_0)$, который будет истинным $\iff$ $\exists$ графы $G_1
+= (S_1, O_1, E_1 \cup F_1), \dots, G_N = (S_N, O_N, E_N \cup F_N)$ и де-юре
+или де-факто правила $op_1, \dots, op_N$, где $N \geq 0$, такие, что $G_0
+\vdash_{op_1} G_1 \vdash_{op_2} \dots \vdash_{op_N} G_N$ и $(x, y, w) \subset
+F_N$.
+
+%% NOTE: 2.8
+\begin{theorem}
+  Пусть $G_0 = (S_0, O_0, E_0 \cup F_0)$ --- граф доступов и информационных
+  потоков, $x, y \in O_0$, $x \neq y$. Тогда предикат $\fn{can_write}(x, y, G_0)$
+  истинен $\iff$ существуют объекты $o_1, \dots, o_m \in O_0$, где $o_1 = x,
+  o_m = y$, такие, что или $m = 2$ и $(x, y, w) \in F_0$, или для $i = 1, \dots,
+  m - 1$ выполняется одно из трёх условий:
+  \begin{enumerate}
+    \item
+      $o_i \in S_0$ и или истинен предикат $\fn{can_share}(\set{w}, o_i, o_{i +
+      1}, G_0)$, или $(o_i, o_{i + 1}, w) \in E_0 \cup F_0$;
+    \item
+      $o_{i + 1} \in S_0$ и или истинен предикат $\fn{can_share}(\set{r}, o_{i +
+      1}, o_i, G_0)$, или $(o_{i + 1}, o_i, r) \in E_0 \cup F_0$;
+    \item
+      $o_i, o_{i + 1} \in S_0$ и или истинен предикат $\fn{can_share}(\alpha,
+      o_i, o_{i + 1}, G_0)$, или истинен предикат $\fn{cna_share}(\alpha, o_{i
+      + 1}, o_i, G_0)$, где $\alpha \in \set{t, g}$, или существует объект
+      $o_i' \in O_0$ такой, что либо истинны предикаты $\fn{can_share}(\set{t},
+      o_i, o_i', G_0)$, $\fn{can_share}(\set{g}, o_{i + 1}, o_i', G_0)$,
+      либо истинны предикаты $\fn{can_share}(\set{g}, o_i, o_i', G_0)$,
+      $\fn{can_share}(\set{t}, o_{i + 1}, o_i', G_0)$.
+  \end{enumerate}
+
+  \label{thm:2.8}
+\end{theorem}
+
+\paragraph{Алгоритм построения замыкания графа доступов и информационных потоков.}
+
+Для проверки истинности предиката $\fn{can_share}(\alpha, x, y, G_0)$ или
+$\fn{can_write}(x, y, G_0)$ для многих пар вершин неэффективно использовать
+алгоритмы проверки условий теорем \ref{thm:2.6}, \ref{thm:2.8}.
+
+Эффективнее применять алгоритмы, позволяющие осуществлять проверку истинности
+данных предикатов сразу для всех пар вершин. Такие алгоритмы реализуют
+преобразование графа доступов и информационных потоков в его замыкание.
+
+Пусть $G = (S, O, E \cup F)$ --- граф доступов и информационных потоков такой,
+что для каждого субъекта $s \in S$ существует объект $o \in O$ такой, что
+выполняется условие $(s, o, \set{t, g, r, w}) \in E$.
+
+\emph{Замыканием} (или \emph{де-факто замыканием}) графа $G$ называется граф
+доступов и информационных потоков $G^* = (S, O, E^* \cup F^*)$, полученный из
+$G$ применением последовательности правил take, grant и де-факто правил. При
+этом применение к графу $G^*$ указанных правил не приводит к появлению в нём
+новых дуг.
+
+$tg$-замыканием графа $G$ называется граф доступов и информационных
+потоков $G^{tg} = (S, O, E^{tg} \cup F)$, полученный из $G$ применением
+последовательности правил take или grant.
+
+При этом каждое ребро $(o_1, o_2, \alpha) \in E^{tg} - E$ имеет вид $(o_1, o_2,
+t)$ или $(o_1, o_2, g)$, и применение к графу $G^{tg}$ правил take или grant не
+приводит к появлению в нём новых дуг указанного вида.
+
+\emph{Де-юре замыканием} графа $G$ называется граф доступов и информационных
+потоков $G^\text{де-юре} = (S, O, E^\text{де-юре} \cup F)$, полученный из $G$
+применением последовательности правил take или grant. При этом применение в
+графу $G^\text{де-юре}$ правил take или grant не приводит к появлению в нём
+новых дуг.
+
+Алгоритм построения замыкания графа доступов состоит из трёх этапов:
+\begin{enumerate}
+  \item построение $tg$-замыкания;
+  \item построение де-юре-замыкания;
+  \item построение замыкания.
+\end{enumerate}
+
+Алгоритм построения $tg$-замыкания графа доступов и информационных потоков
+$G = (S, O, E \cup F)$.
-- 
cgit v1.2.3

