第3章 セキュアブート用のカーネルとモジュールの署名
署名済みカーネルと署名済みカーネルモジュールを使用して、システムのセキュリティーを強化できます。セキュアブートが有効になっている UEFI ベースのビルドシステムでは、プライベートにビルドされたカーネルまたはカーネルモジュールに自己署名できます。さらに、カーネルまたはカーネルモジュールをデプロイするターゲットシステムに公開鍵をインポートすることもできます。
セキュアブートが有効な場合、次のすべてのコンポーネントを秘密鍵で署名し、対応する公開鍵で認証する必要があります。
- UEFI オペレーティングシステムのブートローダー
- Red Hat Enterprise Linux カーネル
- すべてのカーネルモジュール
これらのコンポーネントのいずれかが署名および認証されていない場合、システムは起動プロセスを完了できません。
RHEL 8 には以下が含まれます。
- 署名済みブートローダー
- 署名済みカーネル
- 署名済みカーネルモジュール
また、署名された第 1 ステージのブートローダーと署名されたカーネルには、組み込み Red Hat 公開鍵が含まれています。これらの署名済み実行可能バイナリーと組み込みキーにより、RHEL 8 は、UEFI セキュアブートをサポートするシステム上の UEFI ファームウェアによって提供される Microsoft UEFI セキュアブート認証局キーでインストール、起動、および実行できます。
- セキュアブートのサポートは、すべての UEFI ベースのシステムに含まれるわけではありません。
- カーネルモジュールを構築、署名するビルドシステムは、UEFI セキュアブートを有効にする必要がなく、UEFI ベースのシステムである必要すらありません。
3.1. 前提条件
外部でビルドされたカーネルモジュールに署名できるようにするには、次のパッケージからユーティリティーをインストールします。
# yum install pesign openssl kernel-devel mokutil keyutils
表3.1 必要なユーティリティー ユーティリティー 提供するパッケージ 使用対象 目的 efikeygen
pesign
ビルドシステム
公開および秘密 X.509 鍵のペアを生成
openssl
openssl
ビルドシステム
暗号化されていない秘密鍵をエクスポートします。
sign-file
kernel-devel
ビルドシステム
秘密鍵でカーネルモジュールに署名するために使用する実行ファイル
mokutil
mokutil
ターゲットシステム
公開鍵を手動で登録する際に使用するオプションのユーティリティー
keyctl
keyutils
ターゲットシステム
システムキーリングへの公開鍵の表示時に使用するオプションのユーティリティー