shim
私はUbuntuのインストールを安全に起動するために、grub2
独自のプラットフォームキー(を使用して自己署名shim
)と暗号化されたルートパーティションを組み合わせるデフォルトのUbuntuメソッドを使用しています。sbsign
ただし、これはgrubx64.efi
カーネルのみをチェックし、暗号化されていないブートパーティションのファイルを悪意のある修正から保護しませんinitrd.img
。grub.cfg
それでは、起動前にinitrdとgrubをどうやって確認しますか(sha256ハッシュが利用可能)この検証はshim
、および/または代わりに、grub
または代わりに使用できる他のツールで発生する可能性があります。shim
grub
この問題の目的は、変更された環境(カーネルコマンドラインとinitrd)でカーネルを実行しないようにすることで、ルートパーティションの暗号化パスワードがどこにも漏洩するのを防ぐことです。
開始を確認する方法が見つかりません。構成UbuntuとLinux Foundationのセキュアブートに関するWebチュートリアル/ブログを読むために数日を過ごしたにもかかわらず、両方を確認PreLoader.efi
する方法を説明しました。実行可能ファイルカーネルモジュールを含めるとうまくいきますが、grub.cfg
initrdとinitrd(シェルスクリプトと設定ファイル)への言及がないので、私は最初に確認を求めたようです。ノンバイナリ起動中。私が見つけた最高のソースはロードスミス。
まだ試していないのは、shim
orのソースコードを修正したりgrub
、フォークを生成したり、直接貢献することです。これが唯一の脱出口ですか?
答え1
この設定を説明する素晴らしい記事を見つけました。 https://ruderich.org/simon/notes/secure-boot-with-grub-and-signed-linux-and-initrd
tl;dr: GPG を使用して grub config および initrd に署名し、強制的にチェックして secureboot キーで署名する grub バイナリを生成します。
Ubuntuパッケージは同様のアイデアを実装しています:https://github.com/JohnstonJ/ubuntu-secure-boot
答え2
Grubは、分離された署名を使用した署名検証をサポートしているようです。私はこれがあなたの答えだと思います。