第2章 FIPS モードでのシステムのインストール

連邦情報処理標準 (FIPS) 140-3 で義務付けられている暗号化モジュールの自己チェックを有効にするには、FIPS モードで RHEL 9 を操作する必要があります。FIPS 準拠を目指す場合は、FIPS モードでインストールを開始することを推奨します。

注記

RHEL 9 の暗号化モジュールは、FIPS 140-3 の要件に対して認定されていません。

2.1. 連邦情報処理標準 140 および FIPS モード

連邦情報処理標準 (FIPS) Publication 140 は、暗号モジュールの品質を確保するために米国立標準技術研究所 (NIST) によって開発された一連のコンピューターセキュリティー標準です。FIPS 140 標準は、暗号化ツールがアルゴリズムを正しく実装できるようにします。ランタイム暗号アルゴリズムと整合性セルフテストは、システムが標準の要件を満たす暗号を使用していることを確認するためのメカニズムの一部です。

RHEL システムが FIPS 承認アルゴリズムのみを使用してすべての暗号キーを生成および使用するようにするには、RHEL を FIPS モードに切り替える必要があります。

次のいずれかの方法を使用して、FIPS モードを有効にできます。

  • FIPS モードでのインストールの開始
  • インストール後に FIPS モードにシステムを切り替えます。

FIPS 準拠を目指す場合は、FIPS モードでインストールを開始してください。これにより、暗号鍵マテリアルの再生成と、すでにデプロイメントされているシステムの変換に関連する、結果として得られるシステムのコンプライアンスの再評価が回避されます。

FIPS 準拠のシステムを運用するには、すべての暗号化キーマテリアルを FIPS モードで作成します。さらに、暗号鍵マテリアルは、安全にラップされ、非 FIPS 環境でラップ解除されない限り、FIPS 環境から決して出てはなりません。

fips-mode-setup ツールを使用してシステムを FIPS モードに切り替えても、FIPS 140 標準への準拠は保証されません。システムを FIPS モードに設定した後にすべての暗号キーを再生成することは、可能でない場合があります。たとえば、ユーザーの暗号キーを含む既存の IdM レルムの場合、すべてのキーを再生成することはできません。FIPS モードでインストールを開始できない場合は、インストール後の設定手順を実行したり、ワークロードをインストールしたりする前に、インストール後の最初の手順として常に FIPS モードを有効にしてください。

fips-mode-setup ツールも内部的に FIPS システム全体の暗号化ポリシーを使用します。ただし、update-crypto-policies --set FIPS コマンドが実行する内容に加え、fips-mode-setup は、fips-finish-install ツールを使用して FIPS dracut モジュールを確実にインストールします。また、fips=1 ブートオプションをカーネルコマンドラインに追加し、初期 RAM ディスクを再生成します。

さらに、FIPS モードで必要な制限の適用は /proc/sys/crypto/fips_enabled ファイルの内容によって異なります。ファイルに 1 が含まれている場合、RHEL コア暗号化コンポーネントは、FIPS 承認の暗号化アルゴリズムの実装のみを使用するモードに切り替わります。/proc/sys/crypto/fips_enabled0 が含まれている場合、暗号化コンポーネントは FIPS モードを有効にしません。

FIPS システム全体の暗号化ポリシーは、より高いレベルの制限を設定するのに役立ちます。したがって、暗号化の俊敏性をサポートする通信プロトコルは、選択時にシステムが拒否する暗号をアナウンスしません。たとえば、ChaCha20 アルゴリズムは FIPS によって承認されておらず、FIPS 暗号化ポリシーは、TLS サーバーおよびクライアントが TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS 暗号スイートをアナウンスしないようにします。これは、そのような暗号を使用しようとすると失敗するためです。

RHEL を FIPS モードで操作し、独自の FIPS モード関連の設定オプションを提供するアプリケーションを使用する場合は、これらのオプションと対応するアプリケーションのガイダンスを無視してください。FIPS モードで実行されているシステムとシステム全体の暗号化ポリシーは、FIPS 準拠の暗号化のみを適用します。たとえば、システムが FIPS モードで実行されている場合、Node.js 設定オプション --enable-fips は無視されます。FIPS モードで実行されていないシステムで --enable-fips オプションを使用すると、FIPS-140 準拠の要件を満たせなくなります。

注記

RHEL 9 の暗号化モジュールは、米国立標準技術研究所 (NIST) 暗号化モジュール検証プログラム (CMVP) にの FIPS 140-3 要件に関しては、まだ認定されていません。暗号化モジュールの検証ステータスについては、ナレッジベースの記事 Compliance Activities and Government StandardsFIPS 140-2 および FIPS 140-3 セクションで確認できます。

警告

FIPS モードで実行されている RHEL 9.2 以降のシステムでは、FIPS 140-3 標準の要件に従って、TLS 1.2 接続で Extended Master Secret (EMS) 拡張機能 (RFC 7627) を使用する必要があります。したがって、EMS または TLS 1.3 をサポートしていないレガシークライアントは、FIPS モードで実行されている RHEL 9 サーバーに接続できません。FIPS モードの RHEL 9 クライアントは、EMS なしで TLS 1.2 のみをサポートするサーバーに接続できません。TLS Extension "Extended Master Secret" enforced with Red Hat Enterprise Linux 9.2 を参照してください。