- •2. Акустический и виброакустический канал
- •3.Визуальный канал
- •4. Информационный канал
- •Криптографические методы защиты информации
- •Основы концепции[править]
- •Аутентификация[править]
- •Этапы доверенной загрузки[править]
- •Использование аппаратных средств[править]
- •Домены безопасности
- •Обычная модель[править]
- •Правило "Брать"[править]
- •Простое свойство безопасности (The Simple Security)[править]
- •Определения состояния безопасности[править]
- •Основная теорема безопасности Белла — Лападулы[править]
- •Недостатки[править]
- •Деклассификация[править]
- •Удаленное чтение[править]
Использование аппаратных средств[править]
Аппаратные модули доверенной загрузки имеют значительные преимущества перед чисто-программными средствами. Но обеспечение доверенной загрузки не может быть выполнено чисто аппаратно. Главные преимущества аппаратных средств:
Высокой степени защищённость секретной информации о паролях, ключах и контрольных суммах системных файлов. В условиях стабильной работы такого модуля не предусмотрено способа извлечения такой информации. (Однако известны некоторые атаки на существующие модули, нарушающие их работоспособность);
Возможная засекреченность алгоритмов шифрования, выполняемых аппаратно;
Невозможность запустить компьютер, не вскрывая его содержимого;
В случае шифрования загрузочного сектора, невозможно запустить операционную систему пользователя, даже после извлечения аппаратного модуля;
В случае полного шифрования данных, невозможность получить любые данные после извлечения аппаратного модуля.
Домены безопасности
Чтобы развить эту схему мы введем концепцию домена безопасности (protection domain). Процесс оперирует с доменом безопасности, который специфицирует ресурсы, к которым процесс может иметь доступ. Каждый домен определяет набор объектов и типов операций, которые могут быть осуществлены над каждым объектом. Возможность выполнять операции над объектом есть права доступа. Домен есть набор прав доступа, каждое из которых есть упорядоченная пара <object-name, rights-set>. Hапример, если домен D имеет права доступа <file F, {read, write}>, это означает, что процесс, выполняемый в домене D, может читать или писать в файл F, но не может выполнять других операций над этим объектом.

Рис. 16.1 Специфицирование прав доступа к ресурсам.
Связь процессов с доменами может быть статической и динамической. Организация динамической связи сложнее.
Заметим, что домен может быть реализован различными способами:
Каждый пользователь может быть доменом. В этом случае набор объектов, к которым может быть организован доступ, зависит от идентификации пользователя. Переключение между доменами имеет место, когда меняется пользователь (один входит в систему, другой выходит из нее).
Каждый процесс может быть доменом. В этом случае набор доступных объектов определяется идентификацией процесса. Переключение между доменами происходит, когда один из процессов посылает сообщение другому и ждет отклика.
Каждая процедура может быть доменом. В этом случае набор доступных объектов соответствует локальным переменным, определенным внутри процедуры. Переключение между доменами происходит, когда процедура выполнена.
Рассмотрим стандартную двух режимную модель выполнения ОС. Когда процесс выполняется в режиме системы (kernel mode), он может выполнять привилегированные инструкции и иметь полный контроль над компьютерной системой. С другой стороны, если процесс выполняется в пользовательском режиме, он может вызывать только непривилегированные инструкции. Следовательно, он может выполняться только внутри предопределенного пространства памяти. Наличие этих двух режимов позволяет защитить ОС (monitor domain) от пользовательских процессов (выполняющихся в user domain). В мультипрограммных системах двух доменов недостаточно, так как появляется необходимость защиты пользователей друг от друга. Поэтому требуется лучше разработанная схема.
В ОС Unix домен связан с пользователем. Переключение доменов соответствует смене пользователя. Это изменение реализуется через файловую систему.
22. Модель матрицы доступов HRU.Теорема о безопасности исходного состояния.
Модель системы безопасности HRU. Основные положения модели. Теорема об алгоритмической неразрешимости проблемы безопасности в произвольной системе.
Основные положения модели
Модель HRU (Харрисона – Руззо - Ульмана) используется для анализа системы защиты, реализующей дискреционную политику безопасности, и ее основного элемента - матрицы доступов. При этом система защиты представляется конечным автоматом, функционирующим согласно определенным правилам перехода.
Модель HRU была впервые предложена в 1971 г. В 1976 г. появилось формальное описание модели. Классическая Дискреционная модель реализует произвольное управление доступом субъектов и объектов и контроль за распространением прав доступа. В рамках этой модели система обработки информации представляется в виде совокупности активных сущностей субъектов / множество s/; которые осуществляют доступ к информации; пассивных сущностей объектов /множество о/, содержащих защищаемую информацию; конечного множества привилегированного доступа /множество R/, означающих полномочия на выполнение соответствующих действий.
Обозначим: О-множество объектов системы; S-множество субъектов системы
(S Í O); R- множество прав доступа субъектов к объектам, например права на чтение (read), на запись (write), владения (own); M-матрица доступа, строки которой соответствуют субъектам, а столбцы - объектам; М[s,o]ÍR- права доступа субъекта s к объекту о.
Отдельный автомат, построенный согласно положениям модели HRU, будем называть системой. Функционирование системы рассматривается только с точки зрения изменений в матрице доступа. Возможные изменения определяются шестью примитивными операторами:
· "Внести" право rÎR в M[s,о] - добавление субъекту s права доступа r объекту о. При этом в ячейку M[s,o] матрицы доступов добавляется элемент r.
· "Удалить" право r Î R из М [s, о] - удаление у субъекта s права доступа r к объекту о. При этом из ячейки М [s, о] матрицы доступов удаляется элемент r.
· "Создать" субъекта s'-добавление в систему нового субъекта s'. При этом в матрицу доступов добавляются новые столбец и строка.
· "Создать" объект о'-добавление в систему нового объекта о'. При этом в матрицу доступов добавляется новый столбец.
· "Уничтожить" субъекта s'-удаление из системы субъекта s'. При этом из матрицы доступов удаляются соответствующие столбец и строка.
· "Уничтожить" объект о'- удаление из системы объекта о'. При этом из матрицы доступов удаляется соответствующий столбец.
В результате выполнения примитивного оператора α осуществляется переход системы из состояния Q = (S,O,M) в новое состояние O' = (S', О', M') (табл.). Данный переход обозначим через Q├aQ'.
Таблица
|
Примитивный оператор модели HRU
|
Условия выполнения
|
Новое состояние системы
|
|
"Внести" право rÎR вM[s,o]
|
sÎS, оÎ О
|
S'=S. O'=0, M'[s.o]=M[s,o]È(r}, (s', o')¹(s, o)=> M' [s', o']=M[s', o]
|
|
"Удалить" право rÎR изM[s,o]
|
sÎS, оÎО
|
S'=S. O'=0,M' [s,o]=M[s,o]\{r}, (s', o')¹(s, o)=>M' [s', o1= M[s', o']. o']
|
|
"Создать" субъект s'
|
s'ÏS
|
S'=SÈ{s'}, O'=0È{s'}, (s, o)ÏÏSxO=> M' [s, o]=M[s, o], oÏO'=> M' [s',o]=Æ, sÏS'=> M'[s,s']=Æ
|
|
"Создать" объект о'
|
о'ÏО
|
S'=S. O'=OÈ{o'}, (s,o)ÎSxO=> M' [s,o]=M[s,o], sÎS'=> M' [s,o'] = Æ
|
|
"Уничтожить" субъект s'
|
s'ÎS
|
S'=S/{s'}, O=O'/{s'}, (s, o) Î S' x O'> M' [s, o] =M[s, o]
|
|
"Уничтожить" объект о'
|
О'ÎО o'ÏS
|
S'=S, O=O'/{o'}, (s, o)ÎS'x O'=>М' [s, o]=M[s, o]
|
Из примитивных операторов могут составляться команды. Каждая команда состоит из двух частей:
• условия, при котором выполняется команда;
• последовательности примитивных операторов.
Таким образом, запись команды имеет вид:
command С (x1 .... хk)
if r1 Î M[xs1,xo1 and...and rm ÎM[xsm, хom] then ;
a1;
…
an
end
Здесь r,..., rmÎR-права доступа, a1…,an -последовательность примитивных операторов. Следует отметить, что условия в теле команды необязательны.
При выполнении команды С (x1 .... хk) система осуществляет переход из состояния Q в новое состояние Q'. Данный переход обозначим через Q├С (x1 .... хk) Q'. При этом справедливо:
• Q'=Q, если одно из условий команды С (x1 .... хk)не выполнено;
• Q'=Qn, если все условия команды С (x1 .... хk) выполняются и существуют состояния Q1,..., Qn: Q = Q0├a1 Q1├a 2...├a n Q n.
Теорема о безопасности исходного состояния?
23 Теорема о неразрешимости задачи проверки безопасности произвольных систем.
Теорема об алгоритмической неразрешимости проблемы безопасности в произвольной системы
Согласно требованиям большинства критериев оценки безопасности, системы защиты должны строиться на основе определенных математических моделей, с помощью которых должно быть теоретически обосновано соответствие системы защиты требованиям заданной политики безопасности. Для решения поставленной задачи необходим алгоритм, осуществляющий данную проверку. Однако, как показывают результаты анализа модели HRU, задача построения алгоритма проверки безопасности систем, реализующих дискреционную политику разграничения прав доступа, не может быть решена в общем случае.
Теорема. Задача проверки безопасности произвольных систем алгоритмически неразрешима.
Доказательство. Для доказательства теоремы воспользуемся фактом, доказанным в теории машин Тьюринга: не существует алгоритма проверки для произвольной машины Тьюринга и произвольного начального слова остановится ли машина Тьюринга в конечном состоянии или нет.
Под машиной Тьюринга понимается способ переработки слов в конечных алфавитах. Слова записываются на бесконечную в обе стороны ленту, разбитую на ячейки.
Обозначим элементы и команды машины Тьюринга: А={а0,а1,...,аm}- внешний алфавит, где а0=Ù-пустой символ; Q={q0, q1,..., qk}-внутренний алфавит, где q1-начальное состояние, q0-конечное состояние; D={r,l,e}- множество действий, где r-шаг вправо управляющей головки, l-шаг влево, e-управляющая головка не перемещается; С: QxA®QxAxD - функция, задающая команды машины Тьюринга.
Запись C(qi0, ai0) = (qi1, ai1, d) означает, что когда машина находится в состоянии qi0 и управляющая головка указывает на ячейку ленты, содержащую символ ai0, то выполняется шаг машины, в результате которого в эту ячейку записывается символ ai1, машина переходит в состояние qi1, a управляющая головка смещается по ленте согласно действию d.
Для того чтобы воспользоваться указанным выше фактом, представим все элементы и команды машины Тьюринга в виде элементов и команд модели HRU.
Пусть машина Тьюринга выполнила некоторое количество шагов. Занумеруем все ячейки, пройденные считывающей головкой (включая те, в которые была изначально занесена информация) числами от 1 до n. Тогда (as1,,..., asn) - заполнение ленты, где asiÎA si{0,1, ...,m} для i=1,...,n. Пусть считывающая головка указывает на ячейку с номером iÎ{1,....,n}, содержащую символ аit ÎА, где it Î{0,1,.... m}, состояние машины qij ÎQ, где
ij Î {1,..., k], и должна быть выполнена команда С(qij, ait)= (qij', ait', d), где
qij'ÎQ, ait' ÎА, it' Î{0,1,..., m}, ij' Î{1,....k}, dÎD.
Каждой ячейке ленты поставим в соответствие субъекта модели HRU, при этом будем считать, что О = S = {s1,..., sn}. Зададим матрицу доступов М в текущем состоянии. Пусть множество прав доступа R = Q ÈAÈ{own} и в матрицу доступов внесены права:
· asjÎM[sj, sj] для j=1, ...,n-заполнение ленты;
· ownÎM[sj, sj+1] для j=1,..., n-1 - упорядочивание субъектов, соответствующих ячейкам ленты;
· qijÎM[si, si] - управляющая головка указывает на ячейку с номером i.
Таким образом, текущему состоянию машины Тьюринга соответствует матрица доступов М модели HRU следующего вида:

Для каждой команды машины Тьюринга С(qij, ait)= (qij', ait', d) зададим соответствующую ей команду cd(qij, ait ,qij', ait') модели HRU.
• Если d=е, то
command ce(qij, ait ,qij, ait):
if(qijÎM[s, s]) and (aijÎM[s, s]) then
"удалить" право qij из M[s, s];
"удалить" право ait из M[s,s];
"внести" право qij' в M[s,s];
"внести" право ait' в M[s,s];
end;
• Если d=r, то необходимо указать две команды cr1(qij, ait ,qij', ait') и
cr2 (qij, ait ,qij', ait') для случаев соответственно, когда считывающая ловка не указывает на самую правую ячейку ленты и когда это так.
command cr1(qij, ait ,qij', ait')
if(qijÎM[s, s]) and (aijÎM[s, s]) and (own ÎM[s, s']) then
"удалить" право qij из M[s. s];
"удалить" право ait из M[s, s];
"внести" право ait' в M[s,s];
"внести" право qij' в M[s',s'];
end;
command cr2(qij, ait ,qij', ait'):
if(qijÎM[s, s]) and (aijÎM[s, s]) and (not $sÎS: own ÎM[s, s])) then
"удалить" право qij из M[s,s];
"удалить" право ait из M[s,s];
"внести" право ait' в M[s,s];
"создать" субъект s';
"внести" право own в M[s,s'];
"внести" право а0 в M[s',s'];
внести" право qij' в M[s',s'];
end;
• Если d=l. то команды cl1(qij, ait ,qij', ait'), cl2(qij, ait ,qij', ait') задаются аналогично командам cr1(qij, ait ,qij', ait'), cr2(qij, ait ,qij', ait').
Если машина Тьюринга останавливается в своем конечном состоянии q0, то в соответствующей системе, построенной на основе модели HRU, происходит утечка права доступа q0. Из алгоритмической неразрешимости задачи проверки - остановится ли машина Тьюринга в конечном состоянии,-следует аналогичный вывод для задачи проверки безопасности соответствующей ей системы HRU. Таким образом, в общем случае для систем дискреционного разграничения доступа, построенных на основе модели HRU, задача проверки безопасности алгоритмически неразрешима.
С одной стороны, общая модель HRU может выражать большое разнообразие политик дискреционного разграничения доступа, но при этом не существует алгоритма проверки их безопасности. С другой стороны, можно использовать монооперационные системы, для которых алгоритм проверки безопасности существует, но данный класс систем является слишком узким. Например, монооперационные системы не могут выразить политику, дающую субъектам права на созданные ими объекты, так как не существует одной операции, которая и создает объект, и помечает его как принадлежащий создающему субъекту одновременно.
Дальнейшие исследования модели HRU велись в основном в направлении определения условий, которым должна удовлетворять система, чтобы для нее задача проверки безопасности была алгоритмически разрешима. Так, в 1976 г. в было доказано, что эта задача разрешима для систем, в которых нет операции "создать". В 1978 г. в показано, что таковыми могут быть системы монотонные и моноусловные, т.е. не содержащие операторов "уничтожить" или "удалить" и имеющие только команды, части условия которых имеют не более одного предложения. В том же году в показано, что задача безопасности для систем с конечным множеством субъектов разрешима, но вычислительно сложна.
24. Модель распространения прав доступа TAKE-GRANT.
Санкционированное получение прав доступа. Теорема 1.
Модель Take-Grant - это формальная модель, используемая в области компьютерной безопасности, для анализа систем дискреционного разграничения доступа; подтверждает либо опровергает степени защищенности данной автоматизированной системы, которая должна удовлетворять регламентированным требованиям. Модель представляет всю систему как направленный граф, где узлы - либо объекты, либо субъекты. Дуги между ними маркированы, и их значения указывают права, которые имеет объект или субъект (узел). В модели доминируют два правила: "давать" и "брать". Они играют в ней особую роль, переписывая правила, описывающие допустимые пути изменения графа. В общей сложности существует 4 правила преобразования:
правило "брать";
правило "давать";
правило "создать";
правило "удалить";
Используя эти правила, можно воспроизвести состояния, в которых будет находиться система в зависимости от распределения и изменения прав доступа. Следовательно, можно проанализировать возможные угрозы для данной системы.
