Концепция безопасной загрузки
Наверняка вы читали про Trusted Computing (TCPA, Palladium). Вкратце, это концептуальная система безопасной обработки информации, в которой может выполняться только довереный код. Для этого предлагается контролировать загрузку и работу ОС на всех уровнях, начиная с аппаратного контроля кода BIOS. Все это преподноситься как панацея от вредоносного ПО, но к сожалению панацеей это не является по причине того, что в архитектуре системы заложено постулируемое доверие к поставщикам "правильного" софта (а конкретно Microsoft), которые имеют право решать, какой софт вы можете использовать на своем компьютере, а какой нет.
Все это преимущественно будет использовано для создания всяких гнусных вещей, вроде DRM, и совершенно не защищает пользователя от вредоносных программ всем известной корпорации.
Я хочу предложить вам весьма похожую концепцию контроля за загружаемым кодом, в которой только владелец компьютера, и никто иной, имеет право решать, какому софту он доверяет.
Моя концепция состоит в верификации любого исполняемого кода по базе довереного софта, в идеале не должно быть никакой возможности выполнить недовереный код. Для этого необходима верификация всего загрузочного кода в процессе загрузки ос, и верификация кода драйверов и программ запускаемых после загрузки ос.
Основной частью системы верификации будет дополнительный модуль (optional rom) прошиваемый в BIOS и изменяющий процесс загрузки компьютера. Этот модуль содержит в себе открытый ключ, механизм загрузки каталогов довереного кода и механизм проверки кода по загруженым каталогам.
Каталог представляет из себя блок данных содержащий отсортированый список хэшей довереного кода и подписаный секретным ключем, открытая часть которого прошита в BIOS. Модуль безопасности BIOS ищет в конце диска загрузочную область, в которую прописан начальный загрузочный модуль и каталог довереного кода. Загрузочный код проверяется по каталогу, загружается в память, и ему передается управление. Начальный загрузчик грузит ядро и драйвера ранней стадии загрузки, и проверяет их код используя интерфейс предоставляемый BIOS, после чего в действие вступает драйвер проверяющий код всех запускаемых процессов и загружаемых драйверов.
При установке этой системы мы генерируем ключ, создаем каталог довереного кода и подписываем его своим ключем, после чего ключ внедряется в модуль безопасности который прошивается в BIOS. После этого отпиливаем от микросхемы BIOS ножку разрещающую запись, и заливаем чип эпоксидкой. Теперь вы обладаете полным контролем над вашим компьютером, и без вашего ведома на нем нельзя выполнить код.
Меня интересуют комментарии к концепции, советы по ее улучшению, и рекомендации по выбору используемых алгоритмов и из конкретных реализаций.
комментариев: 11558 документов: 1036 редакций: 4118