FIPS 140-2 コンプライアンスサポート

Mule 4 Runtime は、FIPS 140-2 認証済み環境で実行するように設定できます。これには、HTTP Connector などのすべての Runtime Connector を含みます。Mule は、デフォルトでは FIPS セキュリティモードで実行されません。2 つの要件があります。

  • 認証済みの Cryptography Module が Java 環境にインストールされている。

  • Mule Runtime の設定が FIPS セキュリティモードで実行されるように調整されている。

Government Cloud はデフォルトで FIPS 140-2 向けに設定されています。そのため、Government Cloud を使用している場合は、次の手順を実行する必要はありません。

Runtime Fabric を使用している場合は、これらの手順を実行せずに​「Enabling FIPS 140-2 Compliance Mode for Runtime Fabric (Runtime Fabric での FIPS 140-2 コンプライアンスモードの有効化)」​を参照してください。

前提条件

このドキュメントは、読者が FIPS 140-2​ に精通していることを前提としています。FIPS 140-2 は、米国政府のセキュリティ標準で、準拠者は NIST によって認証された暗号化アルゴリズムおよび手法のみを使用することが求められます。このドキュメントは、読者が 認証済みセキュリティプロバイダ​を選択、取得済みであることも前提としています。

FIPS 140-2 Java 環境のセットアップ

Mule は、FIPS に準拠するセキュリティモジュールの提供を Java ランタイムに依存しています。そのため、最初の要件は、FIPS 140-2 Java 環境が適切にセットアップされていることです。FIPS に準拠するシステムを初めてセットアップしていて、認証済みセキュリティプロバイダをまだ設定していない場合は、まず 認証済みセキュリティプロバイダを選択して取得​してから、選択したプロバイダに固有の手順に従って Java 環境をセットアップする必要があります。

このプロセスの詳細は、選択したセキュリティプロバイダによって異なります。セキュリティプロバイダのドキュメントを参照して手順を実行してください。

例: Bouncy Castle セキュリティプロバイダを使用したセットアップ手順

次の例は、Bouncy Castle セキュリティプロバイダをインストールして設定する方法を示しています。

  1. BouncyCastle の Web ページ​からプロバイダファイルをダウンロードします。

  2. 必要な JAR ファイルを ​$JAVA_HOME/lib/ext​ フォルダにインストールします。

    FIPS-install-jars
  3. セキュリティプロバイダを、​$JAVA_HOME/lib/security​ フォルダのセキュリティプロパティファイルに登録します。

    1. java.security​ ファイルを開き、プロバイダのクラス (​org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider​ など) をプロバイダリストの最初の項目として追加します。

    2. SSL プロバイダの行を Bouncy Castle プロバイダを使用するように変更します (​security.provider.4=com.sun.net.ssl.internal.ssl.Provider BCFIPS​)。

      FIPS-register-jar
  4. 他のセキュリティプロバイダの番号を調整して、番号が連続するようにします。

    FIPS-register-jar-renumber
  5. 変更を保存します。

FIPS セキュリティモードでの Mule の実行

FIPS 140-2 Java 環境のセットアップ​ の手順に従った後に、Mule インスタンスが FIPS 140-2 準拠環境で動作するようにセットアップするために、Mule アプリケーションサーバを起動するラッパーの設定を更新します。

  1. wrapper.conf​ ファイルを開きます (​$MULE_HOME/conf​ フォルダ内)。

  2. Mule が FIPS セキュリティモードで動作するように設定する行のコメントを解除します (図を参照)。​<n>​ を ​wrapper.conf​ ファイル内の連続する次の番号に置き換えます。

    FIPS-wrapper-conf-edit
  3. 変更を保存します。

Mule がもう一度起動すると、起動時の表示に FIPS セキュリティモードが有効になっていることが示されます。

FIPS-startup

FIPS セキュリティモードが有効になると、Mule では自動的にプロトコルネゴシエーションが制限され、承認された暗号化スイートのサブセットのみが使用されます。すべての HTTPS Connector と TLS セキュリティレイヤを使用するその他のコネクタは、自動的にこの制限の影響を受けます。

FIPS モードのクラスタ環境

クラスタ化された環境で Mule Runtime を使用して FIPS モードで実行している場合、クラスタの暗号化キーを定義する必要があります。詳細は、​クラスタリファレンス​を参照してください。

FIPS 140-2 準拠の暗号化スイート

次のリストには、サポートされる FIPS 140-2 準拠の暗号化スイートが記載されています。 オンプレミス Mule インストールで使用される暗号化スイートを設定するには、「​SSL Connector の微調整​」を参照してください。

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

SSL Connector の微調整

Mule conf フォルダには、SSL Connector の設定を微調整するための 2 つのファイルがあります。これらのファイルでは、Mule が使用できる暗号化スイートと許可される SSL プロトコルを手動で設定できます。

  • tls-default.conf​ (Mule が FIPS セキュリティモードで実行するように設定されていない場合に微調整できます)

  • tls-fips140-2.conf​ (Mule が FIPS セキュリティモードで実行されている場合に微調整できます)

該当するファイルを開き、リストの項目をコメントアウトまたはコメント解除して、使用できる暗号化スイートと SSL プロトコルを手動で設定します。これらのファイルを変更しない場合、Mule では、設定されたセキュリティマネージャが暗号化スイートとプロトコルを選択することが許可されます。

ヒントと制限事項

  • Mule Runtime の配布にバンドルされている Bouncy Castle セキュリティプロバイダは、FIPS 認証済みではありません。Mule が FIPS セキュリティモードを開始すると、Bouncy Castle プロバイダは登録されず、使用されません。

  • Mule Cryptography Module​ と ​Mule セキュアプロパティ​の設定オプションに含まれる一部の暗号化スキームと署名は FIPS に準拠していません。アプリケーションで FIPS 認証済みでないアルゴリズムを使用している場合は、実行時に次のようなエラーが表示されます。

	Could not find encryption algorithm '<algorithm-name>'. (暗号化アルゴリズム「<algorithm-name>」が見つかりません。)
	You are running in FIPS mode, so please verify that
	the algorithm is compliant with FIPS. (FIPS モードで実行中です。アルゴリズムが FIPS に準拠していることを確認してください。)
  • 環境によってセキュリティ設定が異なり、暗号化スキームやアルゴリズムの選択も異なる可能性があることに注意してください。そのため、セットアップ方法に応じて、一部の環境でこのエラーが表示され、他の環境では表示されないことがあります。