検索

第3章 Red Hat ビルドの OpenJDK 11 のデフォルトの FIPS 設定

download PDF

セキュリティープロバイダー

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 ライブラリーと機能するためにネイティブリソースを使用する必要があります。

表3.1 SunPKCS11 プロバイダー設定属性
属性タイプ説明

destroyTokenAfterLogout

ブール値

デフォルトは false です。true に設定すると、アプリケーションが SunPKCS11 プロバイダーインスタンスの logout () メソッドを呼び出すと、基礎となるトークンオブジェクトが SunPKCS11 プロバイダーインスタンスによって削除され、リソースが解放されます。これにより、logout () メソッド呼び出しの実行後に SunPKCS11 プロバイダーが使用できなくなるため、PKCS11 をシステムプロバイダーリストに追加しないでください。

cleaner.shortInterval

integer

デフォルトは 2000 ミリ秒 (ms) です。この属性は、クリーナースレッドが不要になったネイティブ PKCS11 参照をクリアキューから削除してネイティブメモリーを解放する頻度を定義します。

注: クリアキューにネイティブ PKCS11 参照が存在せず、クリーナースレッドがキューで削除プロセスを 200 回以上試行する場合、クリーナースレッドは、cleaner.longInterval 属性値を使用するように切り替わります。

cleaner.longInterval

integer

デフォルトは 60000 ミリ秒 (ms) です。この属性は、ビジーではない期間中に、クリーナースレッドがネイティブ PKCS11 参照のクリアキューをチェックする頻度を定義します。

注記: スレッドがクリアキューのネイティブ PKCS11 参照を検出すると、クリーナースレッドは cleaner.shortInterval 属性値を使用します。

改訂日時: 2024-05-10

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.