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 モードの構成

  1. FIPS 承認のアルゴリズムのみを許可するシステム プロパティを設定します。FIPS に準拠するようにシステムを構成するために使用する方法に関係なく、このプロパティを設定する必要があります。

    -Dorg.bouncycastle.fips.approved_only=true
  2. <JAVA_HOME>/conf/security ディレクトリにある java.security ファイルを開き、次の変更を加えます。 

    1. 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
    2. javax.net.ssl パッケージのキーおよびトラスト マネージャー ファクトリ アルゴリズムを PKIX に変更します。

      ssl.KeyManagerFactory.algorithm=PKIX
      ssl.TrustManagerFactory.algorithm=PKIX
    3. デフォルトのキーストア タイプを fips に変更し、JKS および PKCS12 キーストア タイプの互換モードを無効にします。

      keystore.type=fips 
      keystore.type.compat=false
    4. (Linux のみ) NativePRNGNonBlocking アルゴリズムを既知の強力な SecureRandom 実装のリストに追加します。

      securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN,NativePRNGBlocking:SUN,DRBG:SUN
  3. 変更を保存します。
  4. <JAVA_HOME>/conf/security ディレクトリにある java.policy ファイルを開き、次の権限をデフォルト ドメインに挿入します。

    permission java.lang.RuntimePermission "accessClassInPackage.sun.security.internal.spec";
    permission org.bouncycastle.crypto.CryptoServicesPermission "tlsAglorithmsEnabled";
  5. 変更を保存します。
  6. <JAVA_HOME>/conf ディレクトリにある logging.properties ファイルを開き、次の Bouncy Castle ロガー構成を挿入します。

    org.bouncycastle.jsse.provider.DisabledAlgorithmConstraints.level=SEVERE
    org.bouncycastle.jsse.provider.PropertyUtils.level=SEVERE
  7. サーバー証明書がホストされる 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
  8. keystore.bcfks ファイルを <TOMCAT_HOME>/conf にコピーします。
  9. <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>
  10. <TOMCAT_HOME>/conf 内の context.xml ファイルを開き、次の行を挿入します。

    <Manager className="org.apache.catalina.session.StandardManager" secureRandomProvider="BCFIPS" secureRandomAlgorithm="DEFAULT" />
  11. 変更を保存します。
  12. 次の Java オプションを起動コマンドに追加して、Bouncy Castle FIPS ライブラリを指定します。

    --module-path=<BC_DIR>
  • No labels