第2章 RHEL から FIPS モードへの切り替え
連邦情報処理標準 (FIPS) 140-3 で義務付けられている暗号化モジュールの自己チェックを有効にするには、FIPS モードで RHEL 8 を操作する必要があります。FIPS 準拠を目指す場合は、FIPS モードでインストールを開始することを推奨します。
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_enabled
に 0
が含まれている場合、暗号化コンポーネントは 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 準拠の要件を満たせなくなります。
FIPS モードの RHEL 8.6 (およびそれ以降) カーネルは、FIPS 140-3 に準拠するように設計されていますが、まだ米国国立標準技術研究所 (NIST) 暗号モジュール検証プログラム (CMVP) によって認定されていません。最新の認定カーネルモジュールは、RHSA-2021:4356 アドバイザリー更新後の更新された RHEL 8.5 カーネルです。この認定は FIPS 140-2 標準に適用されます。暗号化モジュールが FIPS 140-2 または 140-3 のどちらに準拠するかを選択することはできません。Compliance Activities and Government Standards ナレッジベース記事の FIPS 140-2 and FIPS 140-3 セクションでは、選択した RHEL マイナーリリースにおける暗号化モジュールの検証ステータスの概要が説明されています。