Безопасная загрузка

Безопасная загрузка — это стандарт безопасности, разработанный участниками компьютерной индустрии, чтобы гарантировать загрузку устройства с использованием только программного обеспечения, которому доверяет изготовитель оборудования (OEM). Когда компьютер запускается, встроенное ПО проверяет сигнатуру каждого загрузочного программного обеспечения, включая драйверы встроенного ПО UEFI (также известные как дополнительные ПЗУ), приложения EFI и операционную систему. Если сигнатуры действительны, компьютер загружается, а встроенное ПО предоставляет управление операционной системе.

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

Сведения о том, как работает процесс безопасной загрузки, включая надежную загрузку и измеряемую загрузку, см. в разделе Защита процесса загрузки Windows 10.

Требования к безопасной загрузке

Чтобы обеспечить поддержку безопасной загрузки, необходимо указать следующее.

Требования к оборудованию Сведения
Переменные UEFI версии 2.3.1 Errata C Для переменных необходимо задать значение SecureBoot=1 и SetupMode=0 с базой данных сигнатуры (EFI_IMAGE_SECURITY_DATABASE), необходимой для безопасной предварительно подготовленной загрузки компьютера и включая PK, заданный в допустимой базе данных KEK. Дополнительные сведения см. в разделе Требования к системе System.Fundamentals.Firmware.UEFISecureBoot, скачанный в формате PDF в разделе Спецификации и политики программы совместимости оборудования Windows.
UEFI версии 2.3.1, раздел 27 Платформа должна предоставлять интерфейс, соответствующий профилю UEFI версии 2.3.1, раздел 27.
База данных сигнатур UEFI Платформа должна быть подготовлена с правильными ключами в базе данных сигнатуры UEFI (db), чтобы разрешить загрузку Windows. Он также должен поддерживать безопасные обновления для баз данных, прошедшие проверку подлинности. Хранилище защищенных переменных должно быть изолировано от работающей операционной системы таким образом, чтобы их нельзя было изменить без обнаружения.
Подписывание встроенного ПО Все компоненты встроенного ПО должны быть подписаны с помощью по крайней мере RSA-2048 с SHA-256.
Диспетчер загрузки При включении питания система должна начать выполнение кода во встроенном ПО и использовать шифрование с открытым ключом в рамках политики алгоритма для проверки подписей всех образов в последовательности загрузки, вплоть до диспетчера загрузки Windows.
Защита от отката Система должна защищаться от отката встроенного ПО на более старые версии.
EFI_HASH_PROTOCOL Платформа предоставляет EFI_HASH_PROTOCOL (по UEFI версии 2.3.1) для разгрузки криптографических хэш-операций и EFI_RNG_PROTOCOL (определено Корпорацией Майкрософт) для доступа к энтропии платформы.

Базы данных и ключи подписи

Перед развертыванием компьютера вы, как изготовитель оборудования, сохраните базы данных безопасной загрузки на компьютере. Сюда входят база данных сигнатур (db), база данных отозванных подписей (dbx) и база данных ключа регистрации ключей (KEK). Эти базы данных хранятся в энергонезависимой памяти встроенного ПО (NV-RAM) во время производства.

В базе данных сигнатур (db) и в базе данных отозванных сигнатур (dbx) перечислены подписывающиеся или хэши образов приложений UEFI, загрузчиков операционной системы (например, загрузчик операционной системы Майкрософт или диспетчер загрузки), а также драйверы UEFI, которые можно загрузить на устройство. Отозванный список содержит элементы, которые больше не являются доверенными и не могут быть загружены. Если хэш изображения находится в обеих базах данных, то база данных отозванных подписей (dbx) имеет прецедент.

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

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

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

Последовательность загрузки

  1. После включения компьютера все базы данных сигнатур проверяются на соответствие ключу платформы.
  2. Если встроенное ПО не является доверенным, встроенное ПО UEFI должно инициировать восстановление для конкретного изготовителя оборудования для восстановления доверенного встроенного ПО.
  3. При возникновении проблем с диспетчером загрузки Windows встроенное ПО попытается загрузить резервную копию диспетчера загрузки Windows. Если это также не удается, встроенное ПО должно инициировать исправление для конкретного изготовителя оборудования.
  4. После запуска диспетчера загрузки Windows при возникновении проблем с драйверами или ядром NTOS загружается среда восстановления Windows (Windows RE), чтобы можно было восстановить эти драйверы или образ ядра.
  5. Windows загружает антивредоносное программное обеспечение.
  6. Windows загружает другие драйверы ядра и инициализирует процессы пользовательского режима.