Модель надежности
Другой подход к пониманию безопасности описывает модель надежности. В этом подходе значимость объекта понимается как степень доверия к нему: например, может оцениваться качество содержащейся в нем информации, ее актуальность, достоверность и т. п. Надежность объекта сама собой повышаться не может, а может только падать: со временем информация теряет актуальность, да и степень доверия к ней не может быть выше степени доверия к ее источнику. Можно предположить, что эта модель будет зеркальна модели секретности, в которой значимость объекта, наоборот, никогда не понижается.
Как и в случае модели секретности к очевидному правилу, запрещающему запись на верхний уровень (субъект не в состоянии подтвердить, что его объект надежнее его самого), добавляется чуть менее очевидное, запрещающее чтение нижнего уровня (с какой это стати мы будем доверять объекту больше, чем какому бы то ни было породившему его субъекту?).
Горизонтальные информационные потоки
Предположим теперь, что объекты в системе невозможно распределить по уровням значимости. Это бывает довольно часто, если значимость данных определяется не самой системой, а конкретным человеком, который с ними работает. Тогда для одного субъекта системы некоторый объект будет значим, а для другого - нет. Более того, иногда единственным поводом открыть или запретить кому-тодоступ к объекту становится мнение некоторого субъекта системы.
Операции чтения и записи определяются в этом случае по отношению к каждому отдельному объекту (классу объектов).
Чтение – это копирование данных из объекта в некоторое личное информационное пространство субъекта (пользователь запоминает содержимое файла).
Запись - это копирование данных из личного информационного пространства субъекта в объект (пользователь изменяет содержимое файла).
Если множество объектов, которые субъекту разрешено читать, не совпадают с множеством объектов, доступных ему для записи, а некоторые из записываемых объектов разрешено читать другому субъекту, возникает очевидный горизонтальный информационный поток. Точнее было бы назвать его безуровневым, однако слово "горизонтальный" здесь подчеркивает равную с точки зрения системы значимость и объектов, и субъектов.
Для выявления всех возможных информационных потоков в системе составляется диаграмма достижимости.
Диаграмма достижимости состоит из вершин двух видов: субъектов и объектов, соединенных стрелками: от объекта к субъекту - возможные операции чтения, от субъекта к объекту - записи.
Достижимость (возможность пройти по диаграмме, следуя стрелкам) одной вершины-субъекта с другой вершины-субъекта означает потенциальную возможность передачи данных от одного к другому, хотя бы и не напрямую. Достижимость вершины-объекта с другой вершины-объекта как раз и отражает информационный поток от одного объекта (класса объектов) к другому (см.р1).
Рис. 1. Горизонтальные информационные потоки: диаграмма достижимости
На приведенном примере прямая передача информации из объекта "о1" в объект "о3" невозможна, однако существует информационный поток "о1--с1--о2--с3--о3", организуемый субъектами "с1" и "с3". Невозможна и прямая передача данных от субъекта "с3" субъекту "с1", однако через "третьи руки" это можно сделать: "с3--о3--с2--о1--с1". Алгоритмы выявления достижимости достаточно просты, однако они не дают рекомендации по тому, как изменить существующую модель, чтобы избежать нежелательных информационных потоков.
Механизм предоставления доступа может быть статическим, при котором решение о предоставлении доступа система принимает заранее, на основании свойств субъекта и объекта, или динамическим, когда на результат влияет текущее состояние субъекта, объекта, а также состояние всей системы. В частности, могут использоваться данные подсистемы учета ресурсов или состояния некоторых иных объектов исубъектов системы. Полная диаграмма достижимости при динамическом доступе может покавать ложные информационные потоки, опирающиеся на невозможные переходы в состояниях системы, но может и выявлять скрытые каналы переброски данных. Таким скрытым каналом может быть, например, отсроченная передача данных, когда один субъект записывает информацию, а другой, при определенном стечении обстоятельств, впоследствии получает доступ к ней.
Динамическим можно назвать правило отказывать в доступе, если в системе активен некоторый привилегированный субъект, или механизм "жетонов" для одноразового доступа к объекту. Когда используется статический механизм, говорят о правах доступа, когда динамический или смешанный - о сеансах доступа. Правила организации сеансов доступа могут быть весьма запутанными, потому что решение, которое примет система, зависит от состояния любой ее части. Такие правила привязаны к внутреннему устройству системы и реализации ее объектов. Пример динамических механизмов предоставления доступа .
Организация прав доступа может быть целиком отдана на откуп самой системе, точнее, доверенному субъекту, на действия которого распространяются не все правила, определяющие доступ к объектам. В этом случае доверенный субъект (как правило, администратор системы) составляет некий свод правил, с которыми система и будет сообразовываться в дальнейшем. Назовем это централизованной ответственностью за потоки информации.
Другая возможность - так называемая доменная ответственность. Вводится понятие хозяина объекта. Хозяин объекта - это субъект, определяющий права доступа других субъектов к данному объекту. Таким образом, любой объект системы попадает в зону ответственности (домен) некоторого субъекта. Другой субъект, имеющий право читать данные из этого объекта, возможно, поместит их в другой объект, уже в своем домене. Тогда к этим данным, возможно, получит доступ третий субъект; так информация перетекает из домена в домен, направляемая хозяевами объектов.
