Есть ли способ узнать, примет ли мой загрузчик EFI сигнатуру двоичного файла без перезагрузки?

Предположим, что я только что установил подписанный загрузчик EFI (например, grub2 из Ubuntu 14.10 amd64 на Lenovo IdeaPad U410, который может загружаться только в режиме безопасной загрузки EFI или в устаревшем режиме) на машине из системы Linux или (более точно) системы на основе Debian. Есть ли способ сказать, что машина будет загружаться изнутри без перезагрузки?

1 ответ

Да, но вы должны иметь ключи Secure Boot под рукой. Во-первых, имейте в виду, что есть как минимум три формы, которые могут принимать открытые ключи Secure Boot:

  • .cer/.der файлы - эти файлы используются большинством реализаций UEFI, а также инструментом MokManager, который связан с Shim.
  • .crt - Эти файлы изначально используются большинством инструментов безопасности Linux, такими как sbsigntool а также sbverify,
  • .esl - Эти файлы объединяют несколько ключей в один файл. (Каждый из остальных файлов содержит один ключ.) Если вы используете встроенный пользовательский интерфейс или KeyTool для сохранения ваших ключей, результирующие файлы будут в этом формате.

Если вы установили свой собственный ключ владельца машины (MOK) с помощью MokManager, файл должен быть в .cer/.der форма. Если вы хотите проверить, будет ли работать двоичный файл при загрузке с другим ключом (например, ключами, используемыми для подписи Ubuntu или версии GRUB для Fedora), вам придется получить его. Для удобства я собрал несколько с помощью rEFInd; Вы можете скачать их по частям здесь. Если вы получили полный контроль над безопасной загрузкой в ​​своей системе, у вас также должны быть ключи, которые вы создали.

Чтобы проверить двоичный файл, вы должны иметь ключ в .crt форма. Если у вас есть ключ в .der или же .cer Форма, вы можете преобразовать его:

openssl x509 -in mykey.cer -inform der -out mykey.crt

Затем вы можете проверить, правильно ли подписан бинарный файл:

sbverify --cert mykey.crt binary.efi

Результатом должно быть чтение сообщения Signature verification OK или же Signature verification failed,

Обратите внимание, что некоторые UEFI не могут запускать даже правильно подписанные двоичные файлы. Это кажется случайным; Двоичный файл A запустится нормально, тогда как двоичный код B, подписанный тем же ключом, завершится неудачно. Я считаю, что это ошибка в затронутых UEFI, но я не исследовал это подробно. На самом деле, это не влияет на двоичные файлы, проверенные с помощью Shim, но может влиять на сам Shim или на исполняемые файлы, запускаемые без помощи Shim.

Другие вопросы по тегам