From f9b917e3135b27caf54d4e595e30cbe7ece935ae Mon Sep 17 00:00:00 2001 From: Andrew Guschin 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