
Предположим, что я только что установил подписанный загрузчик EFI (например, grub2
из Ubuntu 14.10 amd64 на Lenovo IdeaPad U410, который может загружаться только в защищенном режиме загрузки EFI или в режиме legacy) на машину из системы Linux или (более конкретно) на базе Debian. Есть ли способ узнать, будет ли машина загружаться из работающей системы без перезагрузки?
решение1
Да, но вы должны иметь ключи Secure Boot на руках. Во-первых, имейте в виду, что есть по крайней мере три формы, которые могут принимать открытые ключи Secure Boot:
.cer
/.der
files — эти файлы используются большинством реализаций UEFI, а также инструментом MokManager, который работает в паре с Shim..crt
-- Эти файлы изначально используются большинством инструментов безопасности Linux, таких какsbsigntool
иsbverify
..esl
-- Эти файлы объединяют несколько ключей в один файл. (Остальные файлы содержат по одному ключу.) Если вы используете пользовательский интерфейс прошивки или KeyTool для сохранения ключей, полученные файлы будут в этом формате.
Если вы установили свой собственный ключ владельца машины (MOK) с помощью MokManager, у вас должен быть файл в .cer
/ .der
-форме. Если вы хотите проверить, будет ли работать двоичный файл при загрузке с другим ключом (например, ключами, используемыми для подписи версии GRUB в Ubuntu или 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, но я не исследовал ее подробно. AFAIK, это не влияет на двоичные файлы, проверенные через Shim, но это может повлиять на сам Shim или двоичные файлы, запущенные без помощи Shim.