21.2. UEFI セキュアブートとは
Unified Extensible Firmware Interface (UEFI) セキュアブートテクノロジーを使用すると、信頼できる鍵によって署名されていないカーネル空間コードの実行を防ぐことができます。システムブートローダーは暗号鍵で署名されています。ファームウェアに含まれる公開鍵のデータベースは、署名鍵を承認します。その後、次のステージのブートローダーとカーネルで署名を検証できます。
UEFI セキュアブートは、以下のようにファームウェアから署名済みドライバーおよびカーネルモジュールへの信頼チェーンを確立します。
-
UEFI 秘密鍵が
shim
第 1 ステージブートローダーに署名し、それを公開鍵が認証します。認証局 (CA) は公開鍵に署名します。CA はファームウェアのデータベースに保存されます。 -
shim
ファイルには、GRUB ブートローダーとカーネルを認証するための Red Hat 公開鍵 Red Hat Secure Boot (CA key 1) が含まれています。 - カーネルには、ドライバーおよびモジュールを認証する公開鍵が含まれます。
セキュアブートは、UEFI 仕様のブートパス検証コンポーネントです。この仕様は、以下を定義します。
- 揮発性ではないストレージでの暗号で保護された UEFI 変数用のプログラミングインターフェイス
- UEFI 変数での信頼できる X.509 ルート証明書の保存
- ブートローダーやドライバーなどの UEFI アプリケーションの検証
- 既知の問題のある証明書およびアプリケーションハッシュを無効にする手順
UEFI セキュアブートは、不正な変更の検出には役立ちますが、以下を行うことは できません。
- 第 2 ステージブートローダーのインストールまたは削除を防止する。
- このような変更について、ユーザーによる明示的な確認を要求する。
- ブートパスの操作を停止する。署名は、ブートローダーのインストールや更新時ではなく、起動時に検証されます。
ブートローダーまたはカーネルがシステムの信頼された鍵で署名されていない場合、セキュアブートにより起動が妨げられます。