initrdとgrub.cfgを保護するためにセキュアブートを使用する方法は?

initrdとgrub.cfgを保護するためにセキュアブートを使用する方法は?

shim私はUbuntuのインストールを安全に起動するために、grub2独自のプラットフォームキー(を使用して自己署名shim)と暗号化されたルートパーティションを組み合わせるデフォルトのUbuntuメソッドを使用しています。sbsignただし、これはgrubx64.efiカーネルのみをチェックし、暗号化されていないブートパーティションのファイルを悪意のある修正から保護しませんinitrd.imggrub.cfg

それでは、起動前にinitrdとgrubをどうやって確認しますか(sha256ハッシュが利用可能)この検証はshim、および/または代わりに、grubまたは代わりに使用できる他のツールで発生する可能性があります。shimgrub

この問題の目的は、変更された環境(カーネルコマンドラインとinitrd)でカーネルを実行しないようにすることで、ルートパーティションの暗号化パスワードがどこにも漏洩するのを防ぐことです。

開始を確認する方法が見つかりません。構成UbuntuとLinux Foundationのセキュアブートに関するWebチュートリアル/ブログを読むために数日を過ごしたにもかかわらず、両方を確認PreLoader.efiする方法を説明しました。実行可能ファイルカーネルモジュールを含めるとうまくいきますが、grub.cfginitrdとinitrd(シェルスクリプトと設定ファイル)への言及がないので、私は最初に確認を求めたようです。ノンバイナリ起動中。私が見つけた最高のソースはロードスミス

まだ試していないのは、shimorのソースコードを修正したり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

おすすめ記事