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