7.0 FIPS用のJREの設定

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

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

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

    • bc-fips-1.0.2.5.jar

    • bcpkix-fips-1.0.7.jar

    • bctls-fips-1.0.19.jar

    メモ:これらのjarは、次のmavenリポジトリからダウンロードできます。

  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、TLSv1.2を追加します。

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

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

  3. これらの.jarファイルの許可を有効にするため、次のコマンドを実行します。

    chown novlua:novlua <jar-file>
    chmod 755 <jar-file>
  4. 環境変数を設定するため、次のコマンドを実行します。

    export IS_FIPS_ENABLED=true
    export BC_FIPS_VERSION=1.0.2.5
    export JAVA_OPTS=" -Dorg.bouncycastle.fips.approved_only=true  -Dorg.bouncycastle.rsa.allow_multi_use=true"
    export CLASSPATH=/opt/netiq/common/jre/lib/bc-fips-1.0.2.5.jar

    設定後に、echoコマンドを使用してすべての環境変数を確認できます。

    メモ:ポート636でdxcmdにアクセスするには、LDAP設定でSSL EC証明書を有効にします。

  5. /opt/netiq/common/jre/lib/security/ディレクトリに移動します。

  6. cacertsファイルのバックアップを取ります。

  7. セキュリティ強化拡張をサポートするため、次のコマンドを使用してcacertsファイルをbcfksに変換します。

    keytool -importkeystore -srckeystore cacerts -srcstorepass novell -srcstoretype JKS -destkeystore cacerts -deststorepass changeit -deststoretype BCFKS -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath $CLASSPATH

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