Ошибка «подпись PKCS # 7 не подписана доверенным ключом» на modprobe module.ko - PullRequest
0 голосов
/ 31 января 2020

В Ubuntu 18.04.3 я хочу подписать драйвер, который я собрал на той же машине Ubuntu, и загрузить его через modprobe. На этом компьютере включена функция SecureBoot.

После сборки драйвера для получения файла .ko я попытался подписать модуль следующим образом:

  1. Я создал ключ с помощью работает:
sudo update-secureboot-policy --new-key

как в " Как я могу сделать неавтоматическую подпись драйверов? " раздел здесь говорит делать. (Нет вывода / сообщение об ошибке)

Я попытался зарегистрировать ключ, выполнив:
sudo update-secureboot-policy --enroll-key**

, как предложено той же страницей . (В результате получается однострочный вывод, из которого я не знал, что делать: «Не установлены модули DKMS».)

Затем я попытался подписать модули ключами, выполнив:
sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der my_module.ko

, как сказано: здесь . (Нет вывода / сообщение об ошибке)

Но когда я пытаюсь установить модуль через modprobe:

sudo modprobe my_module.ko**

Я получаю сообщение об ошибке:

modprobe: ОШИБКА: не удалось вставить 'gve': операция не разрешена

Запись dmesg, которую я считаю релевантной, гласит:

Подпись PKCS # 7 не засекла с доверенным ключом

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

Это вывод, который я получаю при выполнении следующих команд:

$ mokutil --test-key /var/lib/shim-signed/mok/MOLK.der

И вывод: /var/lib/shim-signed/mok/MOLK.der не зарегистрирован

$ sudo mokutil --import /var/lib/shim-signed/mok/MOLK.der

И вывод: SKIP: / var / lib /shim-signed/mok/MOLK.der уже находится в запросе на регистрацию

Хорошо, я думаю, что мое сообщение может быть дубликатом этого сообщения S / O, но я на самом деле ищу написать скрипт, который будет загружать, собирать, подписывать и устанавливать драйвер, но кажется, что перезагрузка является необходимой частью регистрации ключей, которые ch является необходимой частью подписи драйвера. Есть ли способ обойти это, что позволит мне автоматизировать все это в сценарии?

1 Ответ

0 голосов
/ 24 апреля 2020

вот какое-то решение.

sudo -i 
mkdir /root/module-signing
cd /root/module-signing
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME"
chmod 600 MOK.priv 
mokutil --import /root/module-signing/MOK.der 
input password: 
input password again:
reboot

Зарегистрируйте MOK, затем продолжите, затем выберите да, чтобы зарегистрировать ключ, а затем повторно введите пароль. Затем выбрал ОК.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...