21.4. X.509 鍵でカーネルモジュールを認証するための要件
RHEL 9 では、カーネルモジュールがロードされると、カーネルがモジュールの署名をカーネルシステムキーリング (.builtin_trusted_keys) とカーネルプラットフォームキーリング (.platform) の X.509 公開鍵と照合します。.platform キーリングは、サードパーティーのプラットフォームプロバイダーおよびカスタム公開鍵からの鍵を提供します。カーネルシステムの .blacklist キーリングからの鍵は検証から除外されます。
UEFI セキュアブート機能が有効になっているシステムでカーネルモジュールをロードするには、特定の条件を満たす必要があります。
UEFI セキュアブートが有効な場合、または
module.sig_enforceカーネルパラメーターが指定されている場合:-
署名がシステムキーリング (
.builtin_trusted_keys) およびプラットフォームキーリング (.platform) からの鍵に対して認証されている署名済みのカーネルモジュールだけを読み込みできます。 -
公開鍵は、システムで拒否されたキーのキーリング (
.blacklist) に配置できません。
-
署名がシステムキーリング (
UEFI セキュアブートが無効で
module.sig_enforceカーネルパラメーターが指定されていない場合:- 公開鍵なしで、未署名のカーネルモジュールと署名済みカーネルモジュールを読み込むことができます。
システムが UEFI ベースでない場合、または UEFI セキュアブートが無効になっている場合:
-
カーネルに埋め込まれた鍵のみが
.builtin_trusted_keysおよび.platformに読み込まれます。 - カーネルの再構築なしでキーセットを拡張することはできません。
-
カーネルに埋め込まれた鍵のみが
| モジュールの署名 | 公開鍵ありおよび署名が有効 | UEFI セキュアブートの状態 | sig_enforce | モジュールの読み込み | カーネルのテイント |
|---|---|---|---|---|---|
| 署名なし | - | 有効でない | 有効でない | 成功 | はい |
| 有効でない | 有効 | 失敗 | - | ||
| 有効 | - | 失敗 | - | ||
| 署名あり | いいえ | 有効でない | 有効でない | 成功 | はい |
| 有効でない | 有効 | 失敗 | - | ||
| 有効 | - | 失敗 | - | ||
| 署名あり | はい | 有効でない | 有効でない | 成功 | いいえ |
| 有効でない | 有効 | 成功 | いいえ | ||
| 有効 | - | 成功 | いいえ |