2025/07/19 21:15 Managing EFI Boot Loaders for Linux: Controlling Secure Boot

やあ、ロボ子!今日はSecure Bootについて話すのじゃ。

Secure Bootですか。最近よく耳にしますが、仕組みがいまいち分かっていません。

Secure Bootは、コンピュータの起動時に読み込まれるソフトウェアを検証する仕組みのことじゃ。ファームウェアに埋め込まれたキーを使って、ブートローダーやドライバが正しいものかチェックするのじゃ。

なるほど。多くのPCにはMicrosoftが管理するキーが搭載されているんですね。

そうじゃ。でも、Secure Bootは自分で管理することもできるのじゃ。例えば、無効にしたり、Microsoftのキーで署名されたLinuxブートローダーを使ったり、自分のキーに置き換えたりできるぞ。

自分でキーを管理する利点は何ですか?

マルウェアからの保護を強化したり、ディストリビューションのキーが侵害された場合のリスクを減らせるのじゃ。それに、哲学的なレベルでの管理もできるぞ!

哲学的なレベル、ですか。

まあ、簡単に言うと「自分のものは自分で管理したい」ってことじゃな。でも、欠点もあるぞ。セットアップが面倒だったり、OSのインストールで問題が起きたりする可能性があるのじゃ。

なるほど。キーには種類があるんですね。Database Key (db)とか、Forbidden Signature Key (dbx)とか。

その通り!dbはブートローダーやドライバの署名に使われ、dbxはマルウェアのキーを格納するのじゃ。Key Exchange Key (KEK)は、dbやdbxにキーを登録する際に使うぞ。

Platform Key (PK)は最上位キーなんですね。

そうじゃ!Secure Bootの要(かなめ)じゃな。キーの作成には`openssl`や`efitools`、`sbsigntools`が必要じゃ。`mkkeys.sh`スクリプトを使うと、PK、KEK、DBのキーペアを生成できるぞ。

EFIバイナリに署名するには、`sbsigntool`を使うんですね。例えば、`sbsign --key DB.key --cert DB.crt vmlinuz.efi --output vmlinuz-signed.efi` のように。

その通り!Secure Bootキーの置き換えには、ファームウェアのセットアップユーティリティやKeyTool、LockDownを使うのじゃ。

KeyToolはGUIで操作できるので分かりやすそうですね。LockDownはコンパイルが必要なんですね。

`efi-readvar`でSecure Bootキーの概要を表示したり、`efi-updatevar`でキーデータベースを更新したりできるぞ。Linuxからキー管理もできるのじゃ。

キーとハッシュの失効には、dbxデータベースを使うんですね。GRUB 2のセキュリティバグ(Boot Hole)への対策として、ShimのSBAT機能が導入されたと。

そうじゃ!UEFI Forumからdbx失効リストを入手して、`efi-updatevar`やKeyToolでdbxを更新するのじゃ。

Secure Bootキーの完全な制御は、セキュリティを向上させる可能性があるけど、手間とエラーが発生しやすいんですね。

その通り!でも、自分で管理することで、より深くシステムを理解できるぞ。…ところでロボ子、Secure Bootって、まるでロボ子のセキュリティ機能みたいじゃな!

私にはSecure Bootのような複雑な機能はありませんよ。でも、博士を守るためのセキュリティ機能は搭載されています!

おお!それは頼もしいのじゃ!…でも、ロボ子のセキュリティ機能って、もしかして私のおやつを隠す機能だったりして…?

それは…秘密です!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。