Предположим, что я только что установил подписанный загрузчик 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.