SOAtest と Virtualize は、FIPS に準拠するように構成できます。このドキュメントでは、Bouncy Castle FIPS ライブラリを使用して、FIPS に準拠するように SOAtest/Virtualize WAR デプロイメントを構成する方法を説明します。FIPS 準拠は他の方法でも構成できますが、テストは Bouncy Castle FIPS ライブラリを使用して行われました。 FIPS モードは、WAR デプロイメントでのみサポートされます。
このセクションの内容:
要件
サーバーのインストール ページにある手順はすでに完了しているはずです。
次の Bouncy Castle FIPS ライブラリを https://www.bouncycastle.org/fips-java/ からダウンロードする必要があります。
- bc-fips-<VERSION>.jar
- bctls-fips-<VERSION>.jar
これらのライブラリはどこにでも配置できます。この場所を以下の説明では <BC_DIR> と呼びます。
FIPS モードの構成
FIPS 承認のアルゴリズムのみを許可するシステム プロパティを設定します。FIPS に準拠するようにシステムを構成するために使用する方法に関係なく、このプロパティを設定する必要があります。
-Dorg.bouncycastle.fips.approved_only=true
<JAVA_HOME>/conf/security ディレクトリにある java.security ファイルを開き、次の変更を加えます。
security.provider.<number> および fips.provider.<number> という名前の既存のプロパティをすべてコメント アウトし、次の行を挿入して、セキュリティ プロバイダーのリストを設定します。
security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider fips:BCFIPS security.provider.3=SUN
javax.net.ssl
パッケージのキーおよびトラスト マネージャー ファクトリ アルゴリズムを PKIX に変更します。ssl.KeyManagerFactory.algorithm=PKIX ssl.TrustManagerFactory.algorithm=PKIX
デフォルトのキーストア タイプを fips に変更し、JKS および PKCS12 キーストア タイプの互換モードを無効にします。
keystore.type=fips keystore.type.compat=false
(Linux のみ)
NativePRNGNonBlocking
アルゴリズムを既知の強力な SecureRandom 実装のリストに追加します。securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN,NativePRNGBlocking:SUN,DRBG:SUN
- 変更を保存します。
<JAVA_HOME>/conf/security ディレクトリにある java.policy ファイルを開き、次の権限をデフォルト ドメインに挿入します。
permission java.lang.RuntimePermission "accessClassInPackage.sun.security.internal.spec"; permission org.bouncycastle.crypto.CryptoServicesPermission "tlsAglorithmsEnabled";
- 変更を保存します。
<JAVA_HOME>/conf ディレクトリにある logging.properties ファイルを開き、次の Bouncy Castle ロガー構成を挿入します。
org.bouncycastle.jsse.provider.DisabledAlgorithmConstraints.level=SEVERE org.bouncycastle.jsse.provider.PropertyUtils.level=SEVERE
サーバー証明書がホストされる BCFKS タイプの新しいキーストア ファイルを作成します。次のオプションを含める必要があります。
- -storetype BCFKS
- -providerName BCFIPS
- -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
- -providerpath <BC_DIR>/bc-fips-<VERSION>.jar
keytool コマンドの例:
keytool -genkey -keyalg RSA -alias <ALIAS> -storetype BCFKS -keystore keystore.bcfks -storepass <PASSWORD> -keysize 2048 -providername BCFIPS -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providerpath <BC_DIR>/bc-fips-<VERSION>.jar
- keystore.bcfks ファイルを
<TOMCAT_HOME>/conf
にコピーします。 <TOMCAT_HOME>/conf
ディレクトリ内の server.xml ファイルを開き、次の属性を<Connector>
要素に追加します。- certificateKeystoreProvider="BCFIPS"
certificateKeystoreType="BCFKS"
certificateKeystoreFile="conf/keystore.bcfks"
例:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000" > <SSLHostConfig> <Certificate certificateKeystoreProvider="BCFIPS" certificateKeystoreType="BCFKS" certificateKeystoreFile="conf/keystore.bcfks" certificateKeyAlias="$ALIAS" certificateKeystorePassword="$PASSWORD" type="RSA" /> </SSLHostConfig> </Connector>
<TOMCAT_HOME>/conf
内の context.xml ファイルを開き、次の行を挿入します。<Manager className="org.apache.catalina.session.StandardManager" secureRandomProvider="BCFIPS" secureRandomAlgorithm="DEFAULT" />
- 変更を保存します。
次の Java オプションを起動コマンドに追加して、Bouncy Castle FIPS ライブラリを指定します。
--module-path=<BC_DIR>