Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for RHEL 8

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

署名付きカーネルモジュールを使用して、システムのセキュリティーを強化できます。以下のセクションでは、セキュアブートが有効になっている UEFI ベースのビルドシステムで、RHEL 8 で使用するプライベートに構築されたカーネルモジュールへの自己署名の方法を説明します。また、カーネルモジュールの展開を希望するターゲットシステムに公開鍵をインポートするのに利用可能なオプションについても説明しています。

セキュアブートが有効な場合は、UEFI オペレーティングシステムのブートローダー、Red Hat Enterprise Linux のカーネル、およびすべてのカーネルモジュールを秘密鍵で署名し、対応する公開鍵で認証する必要があります。それらが署名・認証されてなければ、システムは起動プロセスを終了できません。

RHEL 8 ディストリビューションには、以下が含まれます。

  • 署名付きブートローダー
  • 署名付きカーネル
  • 署名付きカーネルモジュール

また、署名された第 1 ステージのブートローダーと署名されたカーネルには、組み込み Red Hat 公開鍵が含まれています。この署名済みの実行可能なバイナリーおよび組み込み鍵により、RHEL 8 は UEFI セキュアブートに対応するシステムで、UEFI ファームウェアが提供する Microsoft UEFI セキュアブート認証局の鍵を使用してインストール、起動、実行できます。すべての UEFI ベースのシステムにセキュアブートのサポートが含まれているわけではないことに注意してください。

前提条件

外部でビルドされたカーネルモジュールに署名できるようにするには、次の表にリストされているユーティリティーをビルドシステムにインストールします。

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

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

openssl

openssl

ビルドシステム

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

sign-file

kernel-devel

ビルドシステム

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

mokutil

mokutil

ターゲットシステム

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

keyctl

keyutils

ターゲットシステム

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

注記

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

3.1. UEFI セキュアブートとは

Unified Extensible Firmware Interface (UEFI) セキュアブート技術を使用すると、システムブートローダーが暗号化キーで署名されるようにできます。ファームウェアに含まれる公開鍵のデータベースは、署名キーを承認します。次のステージのブートローダーおよびカーネルで署名を検証できます。これにより、信頼できる鍵で署名されていないカーネルスペースコードが実行されないようにすることができます。

UEFI セキュアブートは、以下のようにファームウェアから署名済みドライバーおよびカーネルモジュールへの信頼チェーンを確立します。

  • UEFI 秘密鍵が shim 第 1 ステージブートローダーに署名し、それを公開鍵が認証します。認証局 (CA) は公開鍵に署名します。CA はファームウェアのデータベースに保存されます。
  • shim.efi には、GRUB ブートローダーおよびカーネルを認証する Red Hat 公開鍵 Red Hat セキュアブート (CA キー 1) が含まれます。
  • カーネルには、ドライバーおよびモジュールを認証する公開鍵が含まれます。

セキュアブートは、UEFI 仕様のブートパス検証コンポーネントです。この仕様は、以下を定義します。

  • 揮発性ではないストレージでの暗号で保護された UEFI 変数用のプログラミングインターフェイス
  • UEFI 変数での信頼できる X.509 ルート証明書の保存
  • ブートローダーやドライバーなどの UEFI アプリケーションの検証
  • 既知の問題のある証明書およびアプリケーションハッシュを無効にする手順

UEFI セキュアブートは、第 2 ステージブートローダーのインストールや削除を妨ぎません。また、このような変更のユーザーによる明示的な確認を必要としません。署名は、ブートローダーのインストールや更新時ではなく、起動時に検証されます。したがって、UEFI セキュアブートはブートパスの操作を停止しません。これは、不正な変更の検出に役立ちます。

注記

システムによる信頼済みの鍵で署名されている限り、ブートローダーまたはカーネルは動作します。