включение check_signatures в GRUB

Me topé con este buen artículo sobre la manipulación de datos binarios :Manipulación de datos binarios en Bash

Principalmente explica una herramienta muy útil llamadaxxd

Por ejemplo, para volcar un archivo binario en ASCII, harás:

xxd -b myfile.bin

Para convertir una cadena corta, puede usar el viejobc:

$ echo "obase=16; ibase=2; 1010" | bc
A

Otro método a considerar:

$ base64 < binary.file > text.file

ibase and obase define the conversion base for input and output numbers. The default for both input and output is base 10.

1
25.07.2019, 02:08
1 ответ

Я столкнулся с точно такой же проблемой и смог ее решить после нескольких часов проб и ошибок. Это плохо обрабатывается на стороне GRUB, если не сказать больше, он просто молча терпит неудачу. Документация, похоже, тоже не помогает, я не смог найти ничего полезного об этой конкретной ошибке.

Решение довольно простое -есть несколько модулей, которые должны быть предварительно -загружены . Для меня, используя GRUB 2.04 на amd64 , это были:

  • верификаторы
  • гкри _ша256
  • гкри _ша512
  • гкри _дса
  • gcry _rsa

Полученная команда для меня была:

grub-mkstandalone --verbose --format=x86_64-efi --output=grubsax64.efi --pubkey=grub.pub --modules="verifiers gcry_sha256 gcry_sha512 gcry_dsa gcry_rsa" boot/grub/grub.cfg=grub.cfg

Важная часть здесь--modules="..." .

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

Судя по результату работы grub -mkstandalone , это также должно работать для grub -mkimage(grub -mkstandalone в какой-то момент вызывает grub -mkimage ), хотя сам не проверял:

grub-mkimage... verifiers gcry_sha256 gcry_sha512 gcry_dsa gcry_rsa

Создайте образ/двоичный файл GRUB, перезагрузите компьютер, введите командную строку, и вы заметите, что список _доверенных теперь выводит результат. Дальнейшие тесты показали, что проверка подписи теперь работает так, как я ожидал.


РЕДАКТИРОВАТЬ 23.04.21 относительно GRUB 2.06:

В GRUB 2.06 верификаторы были перемещены из модуля в ядро ​​(см. этот коммит ), т.е. это больше не отдельный модуль. Таким образом, команды, описанные выше, также необходимо изменить :

.
grub-mkstandalone --verbose --format=x86_64-efi --output=grubsax64.efi --pubkey=grub.pub --modules="gcry_sha256 gcry_sha512 gcry_dsa gcry_rsa" boot/grub/grub.cfg=grub.cfg
grub-mkimage... gcry_sha256 gcry_sha512 gcry_dsa gcry_rsa
1
26.07.2020, 15:08

Теги

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