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

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

Компоненты и процессы

Безопасная загрузка зависит от следующих критических компонентов.

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

На следующем рисунке и в этом процессе объясняется, как обновляются эти компоненты.

Схема, на которой показаны компоненты безопасной загрузки.

Во время производства изготовитель оборудования сохраняет дайджесты безопасной загрузки в энергонезависимом ОЗУ компьютера (NV-RAM).

  1. База данных сигнатур (DB) заполняется хэшами подписывающих или образов приложений UEFI, загрузчиками операционной системы (например, загрузчиком операционной системы Майкрософт или диспетчером загрузки), а также доверенными драйверами UEFI.
  2. База данных отозванных подписей (DBX) заполняется дайджестами модулей, которые больше не являются доверенными.
  3. База данных ключа регистрации ключей (KEK) заполняется ключами подписывания, которые можно использовать для обновления базы данных сигнатур и отзыва базы данных сигнатур. Базы данных могут быть изменены с помощью обновлений, подписанных правильным ключом или через обновления физически представленным полномочным пользователем с помощью меню встроенного ПО.
  4. После добавления баз данных Database, dbx и KEK и окончательной проверки встроенного ПО и завершения тестирования изготовитель оборудования блокирует редактирование встроенного ПО и создает ключ платформы (PK). Ключ PK можно использовать для подписывания обновлений KEK или для отключения безопасной загрузки.

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

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

Сегодня каждый компьютер, подключенный и развернутый на подсистеме вычислений Azure для размещения рабочих нагрузок клиентов, поступает из производственных этажей с включенной безопасной загрузкой. Целевые средства и процессы на каждом этапе в конвейере сборки и интеграции оборудования гарантируют, что включение безопасной загрузки не будет отменено случайно или злонамеренно.

Проверка правильности дайджестов баз данных db и dbx гарантирует следующее.

  • В одной из записей базы данных находится загрузчик
  • Подпись загрузчика действительна.
  • Узел загружается с доверенным программным обеспечением

Проверив сигнатуры KEKpub и PKpub, мы можем подтвердить, что только доверенные стороны имеют разрешение на изменение определений того, какое программное обеспечение считается доверенным. Наконец, убедившись в том, что безопасная загрузка активна, мы можем проверить, применяются ли эти определения.

Дальнейшие действия

Дополнительные сведения о том, что мы делаем для обеспечения целостности и безопасности платформы, см. в следующих статьях: