Рейтинг:0

Не удается загрузиться с безопасной загрузкой и с подписанным ядром

флаг us

Я хочу использовать безопасную загрузку со своими ключами и ядрами, которые я подписываю. У меня загружается Grub, но не с подписанным ядром. Я получаю следующее: «Ошибка: /vmlinuz-5.4.0.91-generic имеет недопустимую подпись».

Вот что я сделал:

ключи mkdir
компакт-диски

efi-readvar -v dbx -o dbx.esl

# (перезагрузите и очистите ключи безопасной загрузки по умолчанию в конфигурации прошивки)

экспорт myuuid=e9ffcff5-9186-4da1-ae89-654000af85eb

# создаем ключи
openssl req -subj "/CN=SecBoot PK cert/" -new -x509 -newkey rsa:2048 -nodes -days 730 -outform PEM -keyout "PK.key" -out "PK.pem"
openssl req -subj "/CN=SecBoot KEK cert/" -new -x509 -newkey rsa:2048 -nodes -days 730 -outform PEM -keyout "KEK.key" -out "KEK.pem"
openssl req -subj "/CN=SecBoot db cert/" -new -x509 -newkey rsa:2048 -nodes -days 730 -outform PEM -keyout "db.key" -out "db.pem"

cert-to-efi-sig-list -g "$myuuid" PK.pem PK.esl
cert-to-efi-sig-list -g "$myuuid" KEK.pem KEK.esl
cert-to-efi-sig-list -g "$myuuid" db.pem db.esl

#подписать ключи
sign-efi-sig-list -g "$myuuid" -c PK.pem -k PK.key PK PK.esl PK.auth
sign-efi-sig-list -g "$myuuid" -c PK.pem -k PK.key KEK KEK.esl KEK.auth
sign-efi-sig-list -g "$myuuid" -c KEK.pem -k KEK.key db db.esl db.auth
sign-efi-sig-list -g "$myuuid" -c KEK.pem -k KEK.key dbx dbx.esl dbx.auth

# добавить ключи в прошивку
efi-updatevar -k PK.key -g "$myuuid" -f PK.auth ПК
efi-updatevar -k PK.key -g "$myuuid" -f KEK.auth KEK
efi-updatevar -k KEK.key -g "$myuuid" -f db.auth db
efi-updatevar -k KEK.key -g "$myuuid" -f dbx.auth dbx

# удалить текущую подпись (необязательно, пробовал удалять и не удалять)
sbattach --удалить /boot/efi/EFI/BOOT/BOOTX64.EFI
sbattach --удалить /boot/efi/EFI/ubuntu/grubx64.efi
sbattach --удалить /boot/vmlinuz-5.4.0.91-общий

# подписываем двоичные файлы
sbsign --key db.key --cert db.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI /boot/efi/EFI/BOOT/BOOTX64.EFI
sbsign --key db.key --cert db.pem --output /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/ubuntu/grubx64.efi
sbsign --key db.key --cert db.pem --output /boot/vmlinuz-5.4.0.91-generic /boot/vmlinuz-5.4.0.91-generic

Примечание 1: Если возможно, я не хочу использовать mok, потому что он требует перезагрузки, и я пытаюсь установить его с помощью автоматического скрипта.

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

РЕДАКТИРОВАТЬ: я использую Ubuntu 20.04.3

Рейтинг:0
флаг jp

Установка PK изменит режим на пользовательский режим. Вы должны добавить его в последнюю очередь.

efi-updatevar -a -k PK.key -g "$myuuid" -c KEK.crt KEK
efi-updatevar -a -k KEK.key -g "$myuuid" -c DB.crt db
efi-updatevar -f PK.auth ПК

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.