Один из возможных подходов к удовлетворению требований безопасности состоит в том, чтобы оснащать средствами безопасности, такими, как хранение запечатанных данных и засвидетельствование, унаследованные программные системы. Но мы полагаем, что такая стратегия, скорее всего, не принесет успеха.
Обычные, предназначенные для массового рынка операционные системы имеют гигантские размеры. Они содержат десятки миллионов строк кода и оптимизированы для обеспечения максимальной функциональности и быстродействия. Постоянно разрастается разнородная коллекция периферийных устройств и соответствующих драйверов устройств. Зачастую они тоже не отличаются компактностью и оптимизированы по функциональности и быстродействию. В итоге получается, что для набора программ, на которые приходится возлагать задачу обеспечения безопасности, характерны такие свойства, как большие размеры, децентрализованность и разнородность. К тому же, их код часто меняется. По-видимому, использование таких программ противоречит основным принципам проектирования систем безопасности.
Теоретически можно примирить эти взаимоисключающие требования с помощью выделения на машине разделов (machine partitioning) и одновременного выполнения на одном и том же оборудовании двух или большего числа изолированных друг от друга операционных систем [9]. Одна из них может быть традиционной массовой системой, ответственной за управление большинством устройств и за выполнение любых старых приложений. Другие системы могут быть специально предназначены для создания высоконадежной вычислительной среды. Такую среду можно реализовать с помощью высоконадежных операционных систем, с помощью обычных операционных систем, помещенных в изолированную ограниченную область («песочницу») средствами монитора виртуальных машин, или через автономные приложения.
![]() | |
Рис. 2. Схема NGSCB. Монитор делит машину на два раздела, один из которых (на рисунке слева) предназначен для немодифицированной старой операционной системы, а второй (справа) — для более компактного, обеспечивающего защиту данных диспетчера системы, именуемого nexus. Во втором разделе выполняются приложения, называемые агентами. Они функционируют в изолированном адресном пространстве и имеют доступ к примитивам режима с проверкой прав доступа. Nexus и его агенты могут иметь доступ к защищенным средствам пользовательского ввода и вывода |