第3章 Red Hat ビルドの OpenJDK 11 のデフォルトの FIPS 設定
セキュリティープロバイダー
Red Hat ビルドの OpenJDK セキュリティーポリシーは、グローバル java セキュリティーポリシーファイルによって制御されます。$JRE_HOME/lib/security/java.security
に java セキュリティーポリシーファイルがあります。
FIPS モードを有効にすると、Red Hat build of OpenJDK はインストールされたセキュリティープロバイダーを以下のものに置き換えます。これは優先度が高い順になります。
SunPKCS11-NSS-FIPS
Network Security Services (NSS) ソフトウェアトークン (PKCS#11 バックエンド) で初期化されます。NSS Software Token が以下のように設定されます。
- name = NSS-FIPS
- nssLibraryDirectory = /usr/lib64
- nssSecmodDirectory = /etc/pki/nssdb
- nssDbMode = readOnly
- nssModule = fips
- NSS ライブラリーは、FIPS 準拠のソフトウェアトークンを実装します。また、RHEL で FIPS ポリシー対応も可能にします。
SUN
-
X.509 証明書でサポートされるのは、X.509 証明書のみです。アプリケーションがこのプロバイダーの他の暗号化アルゴリズムを使用していないことを確認します。たとえば、
MessageDigest.getInstance("SHA-256", Security.getProvider("SUN"))
は機能しますが、FIPS に準拠していないMessageDigest
サービスにつながることになります。
SunEC
- SunPKCS11 補助ヘルパーの場合のみ。アプリケーションがこのプロバイダーを明示的に使用していないことを確認してください。
SunJSSE
-
キー派生など、TLS エンジンが必要とするすべての暗号化プリミティブに対して
SunPKCS11-NSS-FIPS
プロバイダーで初期化されます。
crypto-policies
FIPS モードを有効にすると、Red Hat build of OpenJDK はグローバル crypto-policies から暗号化アルゴリズムの設定値を取ります。これらの値は /etc/crypto-policies/back-ends/java.config
にあります。RHEL の update-crypto-policies
ツールを使用すると、一貫性のある方法で crypto-policies を管理できます。
暗号ポリシー承認アルゴリズムは、Red Hat build of OpenJDK の FIPS モードでは使用できません。これは、FIPS 準拠の実装が NSS ライブラリーで利用できない場合や、Red Hat build of OpenJDK の SunPKCS11 セキュリティープロバイダーでサポートされない場合に発生します。
trust Anchor 証明書
Red Hat build of OpenJDK は、FIPS モードでは、グローバル Trust Anchor 証明書リポジトリーを使用します。このリポジトリーは、/etc/pki/java/cacerts
で確認することができます。RHEL の update-ca-trust
ツールを使用して、一貫性のある方法で証明書を管理します。
キーストア
FIPS モードでは、Red Hat build of OpenJDK は、鍵の読み取り専用 PKCS#11
ストアとして NSS DB を使用します。これにより、keystore.type
セキュリティープロパティーは PKCS11
に設定されます。NSS DB リポジトリーは /etc/pki/nssdb
で見つけることができます。RHEL で modutil
ツールを使用し、NSS DB キーを管理します。
SunPKCS11
プロバイダー設定属性
SunPKCS11
プロバイダーには、キーオブジェクトなどのネイティブリソースの使用を強化する設定属性が含まれています。SunPKCS11
プロバイダーは、ネイティブの PKCS11
ライブラリーと機能するためにネイティブリソースを使用する必要があります。
属性 | タイプ | 説明 |
---|---|---|
| ブール値 |
デフォルトは |
| integer |
デフォルトは
注: クリアキューにネイティブ PKCS11 参照が存在せず、クリーナースレッドがキューで削除プロセスを 200 回以上試行する場合、クリーナースレッドは、 |
| integer |
デフォルトは
注記: スレッドがクリアキューのネイティブ PKCS11 参照を検出すると、クリーナースレッドは |
改訂日時: 2024-05-10