JREをBCFIPSのapproved-onlyモード用に設定するには、次の手順を実行します。
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リポジトリからダウンロードできます。
<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バージョンを無効にした場合に表示されるエラーメッセージは、より理解しやすく、問題を直接指示します。
これらの.jarファイルの許可を有効にするため、次のコマンドを実行します。
chown novlua:novlua <jar-file>
chmod 755 <jar-file>
環境変数を設定するため、次のコマンドを実行します。
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証明書を有効にします。
/opt/netiq/common/jre/lib/security/ディレクトリに移動します。
cacertsファイルのバックアップを取ります。
セキュリティ強化拡張をサポートするため、次のコマンドを使用して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に変更します。