第2章 Red Hat build of OpenJDK 21 における FIPS 設定
起動時に、Red Hat build of OpenJDK 21 は、システムの FIPS ポリシーが有効化されているか確認します。このポリシーが有効化されている場合、Red Hat build of OpenJDK 21 は、Java アプリケーションが FIPS 要件に準拠できるようにするための一連の自動設定を実行します。
これらの自動設定には、次のアクションが含まれます。
- 暗号化操作用の FIPS 認定ネットワークセキュリティーサービス (NSS) ソフトウェアトークンモジュールを含むセキュリティープロバイダーの制限リストをインストールする
- 利用可能なアルゴリズムとパラメーターを制限する Java 用の Red Hat Enterprise Linux (RHEL) FIPS rypto-policy を適用する
JVM インスタンスの実行中にシステムで FIPS モードが有効になっている場合は、変更を有効にするために JVM インスタンスを再起動する必要があります。
前述した FIPS 自動化をバイパスするように、Red Hat build of OpenJDK 21 を設定できます。たとえば、NSS ソフトウェアトークンモジュールではなく、Hardware Security Module (HSM) を使用して FIPS 準拠を実現することを推奨します。
システム または セキュリティー プロパティーを使用して FIPS 設定を指定できます。
FIPS プロパティーをより深く理解するには、次の JDK プロパティークラスを理解する必要があります。
-
システムプロパティーは、
-Dという接頭辞が付いた JVM 引数であり、通常は‑Dproperty.name=property.valueという形式になります。これらの値を渡すための特権アクセスは必要ありません。起動された JVM のみが設定の影響を受け、永続性はランチャースクリプトの存在に依存します。UTF-8 でエンコードされた値はシステムプロパティーに有効です。 -
セキュリティープロパティーは、
$JRE_HOME/conf/security/java.securityまたはjava.security.propertiesシステムプロパティーが指すファイルで使用できます。$JRE_HOME/conf/security/java.securityファイルの値を変更するには、特権アクセスが必要です。このファイルへの変更は保持され、同じ Red Hat build of OpenJDK 21 のすべてのインスタンスに影響します。基本ラテン文字以外の Unicode 文字は\uXXXXでエンコードする必要があります。
システムプロパティーとセキュリティープロパティーの名前が同じで、異なる値に設定されている場合、システムプロパティーが優先されます。設定によっては、プロパティーが異なる名前を持つ他のプロパティーに影響を与える場合があります。
セキュリティープロパティーとそのデフォルト値の詳細は、java.security ファイルを参照してください。
次のリストは、Red Hat build of OpenJDK 21 の FIPS 設定に影響するプロパティーの詳細を示しています。
| プロパティー | 型 | デフォルト値 | 説明 |
|---|---|---|---|
|
| セキュリティー |
|
このプロパティーを |
|
| システム |
|
|
|
| システム |
|
このプロパティーを |
|
| セキュリティー |
|
このプロパティーは、Red Hat build of OpenJDK 21 が FIPS モードの場合のデフォルトのキーストアタイプを設定します。サポートされる値は |
前述の設定に加えて、FIPS モードで NSS DB キーストアを使用するために特定の設定を適用できます。これらのキーストアは、SunPKCS11 セキュリティープロバイダーと、セキュリティープロバイダーの PKCS#11 バックエンドである NSS ソフトウェアトークンによって処理されます。
次のリストは、Red Hat build of OpenJDK 21 の NSS DB FIPS プロパティーの詳細を示しています。
| プロパティー | 型 | デフォルト値 | 説明 |
|---|---|---|---|
|
| システムまたはセキュリティー |
| NSS DB の場所を指すファイルシステムパス。
このプロパティーの構文は、 |
|
| システムまたはセキュリティー |
|
このプロパティーを使用して、NSS DB PIN を次のいずれかの形式で渡すことができます。
注記
暗号化操作に NSS DB 認証が必要で、ステータスが認証されていない場合、Red Hat build of OpenJDK 21 はこの PIN 値を使用して暗黙的なログインを実行します。アプリケーションは、暗号化操作の前に |
セキュリティー評価を実行して、保存されたキーと証明書のインテグリティーと機密性を保護する設定を決定できるようにします。この評価では、脅威、コンテキスト情報、およびオペレーティングシステムのユーザー分離やファイルシステムの権限など、実施されているその他のセキュリティー対策を考慮する必要があります。たとえば、キーを保存し、マルチユーザー環境で実行されるアプリケーションには、デフォルトの設定値が適切でない場合があります。RHEL の modutil ツールを使用して NSS DB キーストアを作成および管理し、certutil または keytool を使用して証明書とキーをインポートします。