Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 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 によって認証された暗号化アルゴリズムおよび手法のみを使用することが求められます。このドキュメントは、読者が 認証済みセキュリティプロバイダーを選択、取得済みであることも前提としています。
Mule は、FIPS に準拠するセキュリティモジュールの提供を Java ランタイムに依存しています。そのため、最初の要件は、FIPS 140-2 Java 環境が適切にセットアップされていることです。FIPS に準拠するシステムを初めてセットアップしていて、認証済みセキュリティプロバイダーをまだ設定していない場合は、まず 認証済みセキュリティプロバイダーを選択して取得してから、選択したプロバイダーに固有の手順に従って Java 環境をセットアップする必要があります。
このプロセスの詳細は、選択したセキュリティプロバイダーによって異なります。セキュリティプロバイダーのドキュメントを参照して手順を実行してください。
次の例は、Bouncy Castle セキュリティプロバイダーをインストールして設定する方法を示しています。
BouncyCastle の Web ページからプロバイダーファイルをダウンロードします。
必要な JAR ファイルを $JAVA_HOME/lib/ext フォルダーにインストールします。
セキュリティプロバイダーを、$JAVA_HOME/lib/security フォルダーのセキュリティプロパティファイルに登録します。
java.security ファイルを開き、プロバイダーのクラス (org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider など) をプロバイダーリストの最初の項目として追加します。
SSL プロバイダーの行を Bouncy Castle プロバイダーを使用するように変更します (security.provider.4=com.sun.net.ssl.internal.ssl.Provider BCFIPS)。
他のセキュリティプロバイダーの番号を調整して、番号が連続するようにします。
変更を保存します。
FIPS 140-2 Java 環境のセットアップの手順に従った後に、Mule インスタンスが FIPS 140-2 準拠環境で動作するようにセットアップするために、Mule アプリケーションサーバーを起動するラッパーの設定を更新します。
wrapper.conf ファイルを開きます ($MULE_HOME/conf フォルダー内)。
Mule が FIPS セキュリティモードで動作するように設定する行のコメントを解除します (図を参照)。<n> を wrapper.conf ファイル内の連続する次の番号に置き換えます。
変更を保存します。
Mule がもう一度起動すると、起動時の表示に FIPS セキュリティモードが有効になっていることが示されます。
FIPS セキュリティモードが有効になると、Mule では自動的にプロトコルネゴシエーションが制限され、承認された暗号化スイートのサブセットのみが使用されます。すべての HTTPS Connector と TLS セキュリティレイヤーを使用するその他のコネクタは、自動的にこの制限の影響を受けます。
クラスター化された環境で Mule Runtime を使用して FIPS モードで実行している場合、クラスターの暗号化キーを定義する必要があります。詳細は、クラスターリファレンスを参照してください。
次のリストには、サポートされる 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
Mule アプリケーションのキーストアまたはトラストストアは、通常 PKCS12 または JKS 形式になります。
これらの形式は FIPS に準拠していません。準拠するように、これらを BCFKS 形式に変換します。
JKS キーストアを BCFKS 形式に変換するには、以下を行っていることを確認します。
Java 8 以降を使用し、JAVA_HOME が設定されていることを確認する。
Bouncy Castle Web サイトから bc-fips.jar ファイルをダウンロードする。
次のサンプルコマンドを使用して、キーストアを BCFKS 形式に変換する。
BC_FIPS_JAR=${BC_PATH}/bc-fips-*.jar # Replace with a correct path
OLD_KEYSTORE="keystore.jks" # Replace with the keystore to convert
OLD_PASSWD="changeit" # Replace with the keystore password
NEW_KEYSTORE="keystore.bcfks" # Replace with the new keystore
NEW_PASSWD="changeit" # Replace with the new keystore password
keytool -importkeystore \
-providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \
-providerpath ${BC_FIPS_JAR} \
-srckeystore ${OLD_KEYSTORE} -srcstoretype JKS -srcstorepass ${OLD_PASSWD} \
-destkeystore ${NEW_KEYSTORE} -deststoretype BCFKS -deststorepass ${NEW_PASSWD}
Java 17 以降を使用している場合、-J—add-exports=java.base/sun.security.provider=ALL-UNNAMED パラメーターを keytool コマンドの -importkeystore パラメーターの前に追加します。
|
新しいキーストアまたはトラストストアを使用するには、Mule 設定ファイルで TLS 設定を更新します。
<tls:context> <tls:key-store type="bcfks" path="server.bcfks" password="changeit" keyPassword="changeit" alias="default" /> <tls:trust-store type="bcfks" path="client.bcfks" password="changeit" /> </tls:context>
ソースキーストアが PKCS12 の場合、keytool コマンドでパラメーター -srcstoretype を PKCS12 に設定します。
|
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 に準拠していることを確認してください。)
環境によってセキュリティ設定が異なり、暗号化スキームやアルゴリズムの選択も異なる可能性があることに注意してください。そのため、セットアップ方法に応じて、一部の環境でこのエラーが表示され、他の環境では表示されないことがあります。
同様に、Red Hat などの OS レベルで FIPS を有効にすると、ライセンス検証時に暗号化スイートエラーが発生するため、この操作はサポートされていません。