Добавление Secure Boot ключа для безопасной загрузки МСВСфера ОС на системах с UEFI
Глоссарий
BIOS — Basic Input/Output System, базовая система ввода/вывода;
UEFI — Unified Extensible Firmware Interface, единый расширяемый интерфейс прошивки;
Secure Boot — безопасная загрузка;
MOK — Machine Owner Key, ключ владельца компьютера (пользовательский ключ).
Область применения
Технология UEFI Secure Boot применяется в основном на современных персональных компьютерах (ПК), автоматизированных рабочих местах (АРМ), серверах, планшетных компьютерах и других электронных вычислительных машинах (ЭВМ).
Загрузка с включенным режимом Secure Boot имеет некоторые преимущества — UEFI Secure Boot (в отличие от функционала BIOS) помогает защититься от вредоносных программ до загрузки операционной системы.
В случае загрузки с отключенным Secure Boot, после включения ЭВМ может произойти запуск вредоносного EFI-приложения с любого устройства, подключенного к USB-порту, например, с USB-накопителя. В результате чего в ЭВМ может проникнуть зловредное программное обеспечение (ПО), исполняемое в кольце защиты центрального процессора (ЦП), которое недоступно антивирусу в операционной системе.
Поэтому получается, что антивирус никогда не сможет обнаружить это зловредное ПО, так как фактически операционная система (ОС) и антивирус будут исполняться в среде этого ПО. Удаление такого зловредного ПО возможно только восстановлением прошивки с помощью программатора, иногда с выпаиванием микросхемы flash-памяти, что обычно возможно сделать только в специализированной мастерской.
Принцип работы технологии Secure Boot заключается в проверке электронной цифровой подписи (ЭЦП) EFI-приложения перед его выполнением при запуске ЭВМ относительно ключей, находящихся в хранилищах UEFI Secure Boot (PK, KEK, DB и DBX).
Управление Secure Boot
Отключение Secure Boot
Несмотря на то что Secure Boot предназначен для защиты системы и разрешает в процессе загрузки только аутентифицированные двоичные файлы, он является дополнительной функцией для большинства систем общего назначения. По умолчанию безопасная загрузка UEFI может быть отключена на большинстве компьютеров. Поставщики систем сами решают, какие системные политики будут реализованы на данной машине. Например, при развертывании киосков, банкоматов или субсидированных устройств по соображениям безопасности владелец этой системы не хочет, чтобы её меняли.
Включение Secure Boot
Для использования Secure Boot необходимо удостовериться, что значение переменной Secure Boot Mode
установлено в Standard
.
Это необходимо сделать после того, как будет установлен MOK.
Проверить включение Secure Boot можно в Setup Utility в меню Security.
Режимы Secure Boot
В Setup Utility для Secure Boot можно задать два режима работы — Standard или Custom.
Режим Standard служит для запуска загрузчиков, подписанных корпорацией Microsoft (запуск Windows), а также загрузчиков Shim для запуска Linux и других ОС, имеющих соответствующую подпись (МСВСфера ОС работает в режиме Standard после установки MOK).
Режим Custom предназначен для управления работой Secure Boot вручную. В этом режиме необходимо установить MOK.
Примечание: Если вы планируете устанавливать и использовать в ОС проприетарные драйверы nVidia, загруженные с сайта nvidia.com вручную, то необходимо удалить ключи Secure Boot. В этом режиме Secure Boot можно оставить включенным, но проверка запускаемых загрузчиков производиться не будет и, соответственно, система не будет защищена. Использование проприетарных драйверов nVidia будет рассмотрено в отдельной статье.
Добавление сертификатов МСВСфера ОС в хранилище ЭЦП Secure Boot
Добавить сертификат можно тремя различными способами:
используя утилиту mokutil
используя метод Enroll EFI Image в Setup Utility
используя метод добавления сертификата в хранилище Secure Boot при запуске ОС
Создание резервной копии хранилища ЭЦП UEFI Secure Boot
Перед изменениями Secure Boot в Setup Utility рекомендуется создать резервную копию хранилищ, таких как Platform Key (PK), Key Exchange (KEK), Authorized Signatures (db) и Forbidden Signatures (dbx). Для этого можно использовать интерфейс Setup Utility (возможность зависит от конкретной реализации UEFI).
Для сохранения резервной копии необходимо иметь на диске раздел, на котором создана файловая система FAT32. В системах с UEFI обычно имеется раздел диска (таблица разделов GPT) с типом 1, EFI System, C12A7328-F81F-11D2-BA4B-00A0C93EC93B, который отформатирован FAT.
Хранилища ЭЦП Secure Boot
Secure Boot имеет несколько хранилищ сертификатов:
Platform Key (PK) — содержит сертификат производителя оборудования;
Key Exchange (KEK) — содержит сертификат корпорации Microsoft (для обновления DB и DBX);
Authorized Signatures (DB) — содержит разрешенные сертификаты;
Forbidden Signatures (DBX) — содержит отозванные сертификаты (чёрный список).
Сертификат МСВСфера ОС необходимо добавить как MOK.
Установка сертификата
С помощью mokutil
Установка производится c помощью утилиты mokutil, установленной в операционную систему. Если у вас уже установлена МСВСфера ОС и вы хотите настроить загрузку Secure Boot, то установить mokutil и RPM-пакет, содержащий сертификаты МСВСфера ОС, можно следующей командой:
dnf install mokutil sphere-sb-certs
Если планируется устанавливать МСВСфера ОС в режиме Secure Boot Standard, то для импортирования сертификата можно воспользоваться загрузочным образом MSVSphere-9.2-x86_64-arm.iso <https://repo1.msvsphere-os.ru/msvsphere/9/isos/x86_64/>.
До загрузки с ISO необходимо включить режим Secure Boot Custom с включённым режимом запроса исполнения загружаемого файла (зависит от реализации UEFI Secure Boot) или произвести очистку всех ключей.
Далее импортировать MOK и установить ключи по умолчанию (MOK после этой процедуры должен остаться в UEFI). После чего можно включать режим Secure Boot Standard и проводить установку МСВСфера ОС в обычном режиме.
Если была произведена очистка ключей, желательно после установки МСВСфера ОС запустить следующую команду для обновления сигнатур в DB и DBX (для повышения безопасности системы):
fwupdtool update
Установка сертификата производится следующей командой:
mokutil --import /usr/share/pki/sb-certs/secureboot-ca-x86_64.cer
После чего следует перезагрузиться и проверить корректность импортирования сертификата командой:
mokutil --list-enrolled
С помощью метода Enroll EFI Image в Setup Utility
Установить сертификат можно методом импортирования сертификата из файла, который подписан сертификатом МСВСфера ОС (возможность использования этого метода зависит от конкретной реализации UEFI).
С помощью добавления сертификата в хранилище Secure Boot при запуске ОС
Установить сертификат также можно методом добавления сертификата в DB предварительно включив режим запроса исполнения загружаемого файла в Secure Boot (возможность использования зависит от конкретной реализации UEFI).
После нажатия клавиши A (Append Image`s Cert to DB) происходит добавление сертификата в DB и последующие загрузки системы (если не изменится сертификат) будут происходить без запросов.