Назначение шаблона

Шаблон предназначен для организации загрузки устройства с использованием только программного обеспечения, которому доверяет изготовитель аппаратной платформы (оборудования) системы.

Операционные системы — основа для большинства систем, поэтому злоумышленники стремятся по-разному воздействовать на них. При работе с прикладными средствами существует потребность в доверии к операционной системе: некоторые функции безопасности, которые лежат в основе запуска и исполнения программ, перекладываются на нее. Но возникает вопрос о доверии во время запуска самой операционной системы. Появляется необходимость такой схемы загрузки, чтобы проводилась проверка на подлинность операционной системы и, дополнительно, правильность и предсказуемость ее работы.

Типовые цели безопасности

Типовые цели безопасности при применении шаблона включают:

  • обеспечение целостности базового программного обеспечения системы;
  • обеспечение аутентичности базового программного обеспечения системы.

Предположения безопасности

Изначально в системе производителем закладывается доверенный микрокод: небольшая часть загрузчика, которая не может быть изменена. Главная задача этого микрокода — проверить целостность следующего кода, который будет использоваться для загрузки.

Предположения безопасности включают:

  • доверие аппаратной платформе (оборудованию) системы в смысле отсутствия аппаратных и программных закладок;
  • сохранение целостности и аутентичности загрузчика первой стадии загрузки и ключевой информации, хранимых в памяти только для чтения.

Предположения и условия, при которых шаблон не может быть применен:

  • неэффективность организационных и технических методов обеспечения доверия оборудованию системы.

Описание решения

Шаблон реализуется на основе шаблона «иерархия доверия». При этом корень доверия представляет собой загрузчик первой стадии загрузки и криптографический ключ (ключи или сертификаты, содержащие ключевую информацию), хранимые на уровне аппаратной платформы и используемые для проверки целостности и аутентичности как базового программного обеспечения, так и ключевой информации, хранимой загрузчиком следующей стадии.

На каждом этапе загрузки операционной системы, начиная от момента подачи питания до полной загрузки и передачи управления пользователю, загрузчик на текущей стадии загрузки проверяет целостность и аутентичность программного кода, используемого на следующей стадии, путем проверки его ЭЦП. Таким образом может гарантироваться, что на каждой стадии загрузки устройства будет происходить проверка аутентичности и целостности исполняемого кода. Будут загружаться только компоненты, подписанные заранее известными сертификатами, хранящимися в доверенном хранилище. У злоумышленника не будет возможности подменить код ни на одной стадии загрузки.

Элементы системы, реализующей шаблон:

  • загрузчик первой стадии и корневой сертификат, хранимые в памяти, доступной только для чтения;
  • загрузчик второй стадии и сертификат (ы) загрузчика второй стадии;
  • загрузчик третьей стадии и сертификат (ы) загрузчика третьей стадии;
  • ядро операционной системы и сертификат (ы) уровня ОС;
  • элементы, отнесенные к приложениям пространства пользователя.

Взаимодействие элементов системы, реализующей шаблон, показано на рисунке 1.

Почти все популярные ОС используют эту схему для безопасной загрузки.

Подробнее о Secure Boot и о самом процессе безопасной загрузки в Windows 10 и 11.
Подробнее о Secure Boot в Ubuntu.

Интересно, что некоторые игры EA Games требуют включение безопасной загрузки, что гарантирует чистоту игры от читов.
Начиная с Windows 8 безопасная загрузка должна быть включена по умолчанию для всего аппаратного обеспечения. Для Windows 11 обязательно хотя бы наличие возможности безопасной загрузки.

Требования к технологии разработки элементов системы

Требования к технологии разработки элементов системы
Необходимо организовать хранение на уровне аппаратной платформы загрузчика первой стадии загрузки и криптографического ключа (ключей или сертификатов, содержащих ключевую информацию).

Необходима гарантия со стороны аппаратной платформы целостности и аутентичности загрузчика первой стадии и криптографического ключа (ключей или сертификатов, содержащих ключевую информацию);

Необходима реализация криптографических алгоритмов проверки аутентичности и целостности цифровых образов исполняемого кода с использованием хранимых или сгенерированных в процессе работы ключей.

Ограничения на применение шаблона

Ограничения не применяются.

Допустимые модификации шаблона

Допустимо изменение количества стадий доверенной загрузки.

Допустимость прочих модификаций должна быть обоснована при проектировании архитектуры и формировании требований, предъявляемых к системе на основе целей и предположений безопасности для этой системы.