第19章 セキュアブート用のカーネルとモジュールの署名

署名済みカーネルと署名済みカーネルモジュールを使用して、システムのセキュリティーを強化できます。セキュアブートが有効になっている UEFI ベースのビルドシステムでは、プライベートにビルドされたカーネルまたはカーネルモジュールに自己署名できます。さらに、カーネルまたはカーネルモジュールをデプロイするターゲットシステムに公開鍵をインポートすることもできます。

セキュアブートが有効な場合、次のすべてのコンポーネントを秘密鍵で署名し、対応する公開鍵で認証する必要があります。

  • UEFI オペレーティングシステムのブートローダー
  • Red Hat Enterprise Linux カーネル
  • すべてのカーネルモジュール

これらのコンポーネントのいずれかが署名および認証されていない場合、システムは起動プロセスを完了できません。

Red Hat Enterprise Linux 9 には以下が含まれます。

  • 署名済みブートローダー
  • 署名済みカーネル
  • 署名済みカーネルモジュール

また、署名された第 1 ステージのブートローダーと署名されたカーネルには、組み込み Red Hat 公開鍵が含まれています。これらの署名済み実行可能バイナリーと組み込みキーにより、Red Hat Enterprise Linux 9 は、UEFI セキュアブートをサポートするシステム上の UEFI ファームウェアによって提供される Microsoft UEFI セキュアブート認証局キーでインストール、起動、および実行できます。

注記
  • セキュアブートのサポートは、すべての UEFI ベースのシステムに含まれるわけではありません。
  • カーネルモジュールを構築、署名するビルドシステムは、UEFI セキュアブートを有効にする必要がなく、UEFI ベースのシステムである必要すらありません。

19.1. 前提条件

  • 外部でビルドされたカーネルモジュールに署名できるようにするには、次のパッケージからユーティリティーをインストールします。

    # dnf install pesign openssl kernel-devel mokutil keyutils

    表19.1 必要なユーティリティー

    ユーティリティー提供するパッケージ使用対象目的

    efikeygen

    pesign

    ビルドシステム

    公開および秘密 X.509 鍵のペアを生成

    openssl

    openssl

    ビルドシステム

    暗号化されていない秘密鍵をエクスポートします。

    sign-file

    kernel-devel

    ビルドシステム

    秘密鍵でカーネルモジュールに署名するために使用する実行ファイル

    mokutil

    mokutil

    ターゲットシステム

    公開鍵を手動で登録する際に使用するオプションのユーティリティー

    keyctl

    keyutils

    ターゲットシステム

    システムキーリングへの公開鍵の表示時に使用するオプションのユーティリティー