Я использую стандартный подход Ubuntu с shim и grub2, в сочетании с моим собственным ключом платформы (самоподписывающий shim с sbsign) и зашифрованным корневым разделом, для безопасной загрузки моей установки Ubuntu. Но это проверяет только grubx64.efi и ядро, но не защищает файлы initrd.img и grub.cfg в незашифрованном загрузочном разделе от вредоносных изменений.
Итак, как я могу проверить конфигурацию initrd и grub, возможно, используя хэш sha256, прежде чем использовать их для загрузки? Эта проверка может происходить в shim, grub или в другом инструменте, который я мог бы использовать в дополнение или вместо shim и / или grub.
Цель этого вопроса - предотвратить запуск ядра с измененной средой (командной строкой ядра и initrd), чтобы предотвратить утечку пароля шифрования корневого раздела в любое место.
Не нашел каких-либо методов проверки конфигурации загрузки, несмотря на несколько дней чтения веб-учебников / блогов по безопасной загрузке, включая Ubuntu и PreLoader.efi Linux Foundation, каждый из которых объясняет, как работает проверка исполняемых файлов, включая модули ядра, но ни один из в котором упоминаются grub.cfg и (сценарии оболочки и файлы конфигурации внутри) initrd, так что, похоже, я первый, кто когда-либо обратился за проверкой недвоичных файлов в процессе загрузки. Лучшие источники, которые я когда-либо нашел, это источник Род Смит .
Чего я еще не пытался, так это изменять исходный код shim или grub, создавая форк или непосредственно внося в них свой вклад. Будет ли это единственный путь?