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 に準拠していることを確認してください。)
  • 環境によってセキュリティ設定が異なり、暗号化スキームやアルゴリズムの選択も異なる可能性があることに注意してください。そのため、セットアップ方法に応じて、一部の環境でこのエラーが表示され、他の環境では表示されないことがあります。