Ищите обходной путь для подписи модулей ядра virtualbox

У меня были некоторые проблемы с управлением настройкой безопасной загрузки на моей машине с материнской платой Asus X99.

Я успешно сгенерировал MOK с помощью openssl, а затем использовал его, чтобы подписать модуль ядра для моей карты WiFi (bcmwl-kernel-source / wl.ko) и зарегистрировал ключ в shim (если я правильно понимаю ?) с помощью MokManager. Я запустил MokManager, добавив для него загрузочную запись EFI, а затем используя EFI, чтобы запустить его во время загрузки. Я не смог заставить mokutil работать, и мне пришлось вручную скопировать ключ в раздел /boot, перезагрузиться, выбрать «Записать ключ с диска» и сделать это так. Но как только это было сделано, модуль ядра для драйвера Wi-Fi загружается и работает в режиме безопасной загрузки без проблем.

Итак, подписание, проверка и загрузка модулей ядра в режиме безопасной загрузки работают.

Похоже, что ошибка mokutil связана с какой-то ошибкой материнской платы / прошивки с X99 (а также с некоторыми другими моделями, согласно отчету об ошибках в Fedora):

mokutil - сбой почти для всех опций

https://bugzilla.redhat.com/show_bug.cgi?id=1263992

Вот несколько примеров Вывод из mokutil на моем компьютере:

alex@alex-dev-desktop:~$ mokutil --sb-state
SecureBoot enabled
alex@alex-dev-desktop:~$ sudo mokutil --password
input password: 
input password again: 
Failed to write MokPW: Invalid argument
alex@alex-dev-desktop:~$ sudo mokutil --import MOK.der 
SKIP: MOK.der is already enrolled
alex@alex-dev-desktop:~$ sudo mokutil --list-enrolled |grep Issuer
    Issuer: C=GB, ST=London, L=London, O=ghostaldev, CN=Secure Boot Signing/emailAddress=<my email>
    Issuer: C=GB, ST=Isle of Man, L=Douglas, O=Canonical Ltd., CN=Canonical Ltd. Master Certificate Authority
alex@alex-dev-desktop:~$ sudo mokutil --import SOMENEWKEY.der
input password: 
input password again: 
Failed to enroll new keys
alex@alex-dev-desktop:~$ sudo mokutil --disable-validation
password length: 8~16
input password: 
input password again: 
Failed to request new MokSB state
alex@alex-dev-desktop:~$ 

Как показано, ключ, который я использовал для подписи моего драйвера Wi-Fi, находится в списке зарегистрированных ключей, наряду с Canonicals, но использование mokutil для регистрации ключей не ' т работа. Кажется, что все команды, которые записывают любые данные для управления MokManager, терпят неудачу.

Что я пытаюсь сделать: подписать модули ядра Virtualbox, чтобы они работали под Secure Boot

Когда я делаю sudo apt-get install virtualbox-dkms, я получаю подсказку GUI терминала, сообщающую мне, что я в режиме безопасной загрузки, что модули должны быть подписаны и ключи зарегистрированы, и просит меня установить пароль. Под капотом установка пакета выглядит так, как будто он пытается использовать mokutil, а в выводе я вижу сообщение Failed to enroll new keys. Используя hexdump, похоже, что модуль vboxdrv.ko был подписан каким-то ключом:

alex@alex-dev-desktop:~$ hexdump -e "16 \"%_p\" \"\\n\"" /lib/modules/4.15.0-58-generic/updates/vboxdrv.ko |tail -n 27 |head -n 5
......1..q0..m..
.0H001.0,..U...%
mint Secure Boot
 Module Signatur
e key..W+.0.x..(
alex@alex-dev-desktop:~$ 

Я не уверен, какой ключ используется для этого, но, очевидно, это не рабочий раствор, потому что он не зарегистрирован.

Я ищу обходной путь, чтобы подписать эти модули ядра и загрузить их под Secure Boot. Вот мои идеи для потенциальных обходных путей (и почему я застрял):

  • Зарегистрируйте ключ, используемый для подписи модулей виртуальной коробки (я не знаю, где это найти)
  • Подпишите их самим с помощью ключа, который у меня уже зарегистрирован (я пробовал это, но, похоже, это не работает - я не уверен, возможно ли подписать модуль ядра несколькими ключами)
  • Отключить проверку модуля ядра в shim (насколько я понимаю, для этого и нужна команда mokutil --disable-validation, но она не работает, и когда я запускаю MokManager, я не вижу опции, доступной для этого - только «Продолжить загрузку», «Записать ключ с диска» и «Записать хэш с диска», нет опции «Изменить состояние безопасной загрузки», как показано, например, на на этой странице ).

Очень признателен за помощь! :)

3
задан 4 September 2019 в 16:22

0 ответов

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

Похожие вопросы: