7.0 FIPS用のJREの設定

JREをBCFIPSのapproved-onlyモード用に設定するには、次の手順を実行します。

  1. BCFIPS.jarファイルをJavaクラスパスに追加します。

    必要なBCFIPSファイルは次のとおりです。

    • bc-fips-1.0.2.4.jar

    • bcpkix-fips-1.0.7.jar

    • bctls-fips-1.0.18.jar

  2. <jre-root>/conf/securityディレクトリにあるjava.securityファイルを変更し、BCFIPSで定義されたJavaシステムプロパティを設定します。

    テキストエディタで、WebコンテナをホストしているJRE用の上記のファイルを開きます。ファイルは<jre-root>/conf/security/java.securityにあります。セキュリティプロバイダのリストを見つけて、既存のプロバイダをすべてコメント化し、そのエントリを以下に置き換えます。

    • security.provider.1=BCFIPS

    • security.provider.2=BCJSSE

    • security.provider.3=SunJSSE

    • security.provider.4=SUN

    • security.provider.5=SunJCE

OSPはトラストストアを初期化する際に特定のTrustManagerの実装を必要とするため、SunJSSEプロバイダ(Java 11)が必要です。セキュリティプロバイダを変更する以外に、BCFIPS JSSE KeyManagerの実装を使用する必要もあります。これが必要な理由は主に、Sunの実装に不備があり、FIPSで必要な、キーに関する特定の決定を行えないためです。これは、java.securityの次の行を置き換えることで実行します。

ssl.KeyManagerFactory.algorithm=SunX509

これを以下に置き換えます。

ssl.KeyManagerFactory.algorithm=PKIX

また、古いSSLおよびTLSのアルゴリズムを無効にすることもお勧めします。その理由は、TLS v2.0よりも前のSSL/TLSバージョンに必要なアルゴリズムは、BCFIPS approvedモードでは利用できないためです。古いアルゴリズムを無効にするには、jdk.tls.disabledAlgorithmsエントリを見つけます。次に例を示します。

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \ EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC

このリストにTLSv1とTLSv1.1を追加します。

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, MD5withRSA, DH keySize < 1024, \ EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC

TLSv1およびTLSv1.1の無効化はオプションですが、無効にしておくと、OSPが、TLS v1.1以前のみをサポートするサービス(LDAPなど)との安全な接続を試みたときに、わかりにくいエラーメッセージを回避できます。以前のTLSバージョンを無効にした場合に表示されるエラーメッセージは、より理解しやすく、問題を直接指示します。

メモ:eDirectory 8.8 (またはそれ以前)は、TLS v1.0のみをサポートするため、セキュアLDAPとともに使用することはできません。セキュアLDAPを使用するには、eDirectory 9以降を使用する必要があります。別の代替手段は、デフォルトのキーストアタイプを変更することです。keystore.type=jksまたはkeystore.type=pkcs12の行を見つけて、それをkeystore.type=bcfksに変更します。