FIPS に準拠するよう C/C++test を設定できます。

このセクションの内容

前提条件

https://www.bouncycastle.org/fips-java/ から以下の BouncyCastle FIPS ライブラリをダウンロードする必要があります。

  • bc-fips-<VERSION>.jar (バージョン 1.0.2.4 でテスト済み)
  • bctls-fips-<VERSION>.jar (バージョン 1.0.17 でテスト済み)

C/C++test での FIPS モードの設定

  1. bc-fips-<VERSION>.jar および bctls-fips-<VERSION>.jar を <CPPTEST_INSTALL_DIR>/bin/jars ディレクトリにコピーします。


  2. <CPPTEST_INSTALL_DIR>/bin/jre/conf/security/ ディレクトリにある java.security ファイルを開いて以下の変更を行います。 

    1. security.provider.<number> という名前の既存のプロパティをすべてコメント アウトし、以下の行を挿入することでセキュリティ プロバイダーのリストを設定します。

      security.provider.<number>. and inserting the following lines:
      
      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 package のキー マネージャー ファクトリおよびトラスト マネージャー ファクトリのアルゴリズムを PKIX に変更します。

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

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

      securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN,NativePRNGBlocking:SUN,DRBG:SUN
    5. FIPS 認証済みのアルゴリズムだけを許可します。

      org.bouncycastle.fips.approved_only=true
  3. 変更を保存します。
  4.  <CPPTEST_INSTALL_DIR>/bin/jre/conf/security/ ディレクトリにある java.policy ファイルを開き、デフォルト ドメインに次のパーミッションを挿入します。

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

    org.bouncycastle.jsse.provider.DisabledAlgorithmConstraints.level=SEVERE
    org.bouncycastle.jsse.provider.PropertyUtils.level=SEVERE
  7. 変更を保存します。


  • No labels