35 FIPSモードの有効化
FIPSの概要
Federal Information Processing Standards (FIPS) 140-2は、アメリカ合衆国政府の機密でも未分類の使用に関する要件を記載した規格です。WebLogic Serverでは、RSA FIPS互換(FIPS 140-2)機密モジュールを使用できます。
FIPSのサポートされるバージョンは、「サポートされるFIPS標準と暗号スイート」を参照してください。
この機密モジュールをRSA JSSEプロバイダおよびRSA JCEプロバイダと組み合せて使用すると、FIPS準拠(FIPS 140-2)実装が提供されます。
ノート:
RSA JSSEプロバイダとRSA JCEプロバイダはこの項で説明するようにFIPSモードで使用するだけでなく、非FIPSモードでも使用できます。たとえば、RSA JSSEプロバイダに固有の特定の暗号化アルゴリズムを使用することもできます。
次のトピックを参照してください。
JavaオプションでのFIPS 140-2モードの有効化
Javaセキュリティ・ファイルを使用してJavaオプションをコマンドラインで指定すると、FIPS 140-2モードを有効にできます。
JavaオプションでFIPS 140-2を有効にするには、次のステップに従います。
java.securityでのFIPS 140-2モードの有効化
インストールされているJDKのjava.security
ファイルからFIPS 140-2モードを有効にできます。
構成のステップは次のとおりです。
FIPS 140-2モード有効時のJCEの検証
FIPS 140-2モードのWLSを構成するときにJCE検証を有効にするには、WebLogic Serverを起動するときに-Dweblogic.security.allowCryptoJDefaultJCEVerification=true
JAVA_OPTIONS
環境変数を設定します。
通常のWebLogic起動時には、パフォーマンスの理由からRSA Crypto-J JCE自己整合性テストは無効になっています。
この環境変数を設定すると、処理が追加されて、起動に時間がかかるようになることに注意してください。
FIPS 140-2準拠のキーストアの作成
WebLogic Server 12.2.1.3以下では、Sun JSSEプロバイダ(デフォルト)を使用してキーツールで作成されたJKSおよびPKCS12キーストアはFIPSに完全には準拠していません。キーストアがFIPS 140-2に準拠していることを確認するには、キーツール・コマンドを使用して、WebLogic Serverディストリビューションに用意されているRSA JCEプロバイダを指定することにより、Sun JSSEプロバイダを使用して作成したキーストアを変換します。
また、Oracle Identity Cloud Integratorプロバイダを使用して構成されたJava Cloud Serviceなどの環境では、CA証明書とともにデフォルトのJKSキーストアであるcacerts
を使用します。これらの環境では、RSA JCEプロバイダを使用してJKSキーストアをFIPS準拠のPKCS12キーストアに変換する必要があります。
次の項では、キーストアがFIPSに準拠していることを確認するためにこれらのステップを完了する手順を示します。
RSA JCEプロバイダを使用した非FIPS準拠のキーストアの変換
WebLogic Serverディストリビューションのクラスパスを使用することにより、次のように、RSA JCEプロバイダとともにkeytool –importkeystore
コマンドを使用して非準拠のキーストアを変換できます。
keytool -importkeystore -srckeystore srckeystore
–srcstoretype srcstoretype
-srcprovidername providername –destkeystore destkeystore
-deststoretype PKCS12 -destprovidername JsafeJCE
-providerclass com.rsa.jsafe.provider.JsafeJCE
-providerpath $CLASSPATH
このコマンドで、次のパラメータの値を指定します。
-srckeystore
– ソース・キーストアの名前-srcstoretype
– ソース・キーストアのタイプ(PKCS12
など)-srcprovidername
– ソース・キーストア・プロバイダの名前。srcstoretype
がPKCS12
である場合、JsafeJCE
に設定します-
-destkeystore
- 宛先キーストアの名前 -deststoretype
– 宛先キーストアのタイプ。RSA JCEプロバイダに対してPKCS12
に設定します-destprovidername
- 宛先キーストア・プロバイダの名前。RSA JCEプロバイダに対してJsafeJCE
に設定します-providerclass
– プロバイダ・クラスの名前。com.rsa.jsafe.provider.JsafeJCE
に設定します-providerpath
- プロバイダのクラスパス
FIPSに準拠するためのデフォルトのJKSキーストアの変換
JDKに含まれる、CA証明書を使用したデフォルトのJKSキーストアであるcacerts
は、WebLogic Server 12.2.1.3以下ではFIPSに準拠していません。FIPS 140-2には、PKCS12 PBES2キーストアが必要です。Sun JSSEプロバイダ(デフォルト)を使用してキーツールで作成されたPKCS12キーストアはサポートされていません。Oracle Identity Cloud Integratorプロバイダを使用したJava Cloud Service環境の場合のように、デフォルトのJDK cacerts
キーストアを使用する場合、次のステップを完了してFIPSに準拠していることを確認する必要があります。
-
JDK
cacerts
キーストアをJKSからPKCS12フォーマットに変換します -
RSA JCEプロバイダを使用してPKCS12キーストアをFIPSに準拠するよう変換します
-
Javaシステムのプロパティを設定し、環境内のJavaのデフォルトSSLコンテキストによって使用されるデフォルトのトラスト・ストアを更新することにより、WebLogic Serverを正常に起動および操作できるようにします
Webサービスを使用する際の重要な考慮事項
FIPS 140-2モードでWebサービスを使用する際には、留意すべき重要な考慮事項があります。
たとえば:
-
すべての証明書のキー・サイズは2048ビットにする必要があります。
SHA-1セキュア・ハッシュ・アルゴリズムのサポートなし
SHA-1セキュア・ハッシュ・アルゴリズムはFIPS 140-2モードではサポートされません。したがって、次のWS-SP <sp:AlgorithmSuite>
値はFIPS 140-2モードではサポートされません。
-
Basic256
-
Basic192
-
Basic128
-
TripleDes
-
Basic256Rsa15
-
Basic192Rsa15
-
Basic128Rsa15
-
TripleDesRsa15
『Oracle WebLogic Server WebLogic Webサービスの保護』のSHA-256セキュア・ハッシュ・アルゴリズムの使用に関する項で説明しているように、WebLogic Server Webサービス・セキュリティ・ポリシーでは、デジタル署名のハッシュのためにSHA-1およびより強固なSHA-2 (SHA-256)セキュア・ハッシュ・アルゴリズムの両方がサポートされています。特にSHA-256ポリシーの使用では、SHA-1セキュア・ハッシュ・アルゴリズムとSHA-2セキュア・ハッシュ・アルゴリズムを使用するポリシーを説明しています。
FIPS 140-2モードでは、デジタル署名の使用時には拡張アルゴリズム・スイートが必要です。『Oracle WebLogic Server WebLogic Webサービスの保護』の「拡張アルゴリズム・スイート(EAS)の使用」を参照してください。
FIPS 140-2モードを有効にする場合、セキュリティ・ポリシーの<sp:AlgorithmSuite>
要素を、次に示すサポートされている<sp:AlgorithmSuite>
値(詳細は、SHA-256セキュア・ハッシュ・アルゴリズムの使用に関する項を参照)のいずれかに変更します。
-
Basic256Sha256
-
Basic192Sha256
-
Basic128Sha256
-
Basic256Exn256
-
Basic192Exn256
-
Basic128Exn256
-
TripleDesSha256
-
TripleDesExn256
-
Basic256Sha256Rsa15
-
Basic192Sha256Rsa15
-
Basic128Sha256Rsa15
-
Basic256Exn256Rsa15
-
Basic192Exn256Rsa15
-
Basic128Exn256Rsa15
-
TripleDesSha256Rsa15
-
TripleDesExn256Rsa15
たとえば、既存のBasic256アルゴリズム・スイートを編集してEASアルゴリズム・スイートにするには、次のポリシーを変更します。
<sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256/> </wsp:Policy> </sp:AlgorithmSuite>
これを次のように変更します。
<sp:AlgorithmSuite> <wsp:Policy> <orasp:Basic256Exn256 xmlns:orasp="http://schemas.oracle.com/ws/2006/01/securitypolicy"/> </wsp:Policy> </sp:AlgorithmSuite>
X509PKIPathv1トークンのサポートなし
このリリースのWebLogic Serverでは、X509PKIPathv1トークンはFIPS 140-2モードでサポートされません。カスタム・ポリシーでX509PKIPathv1トークンを使用する場合、かわりにPKCS7トークンを使用するようにポリシーを変更します。
特に、次の2つのポリシー・アサーションは、このリリースのWebLogic ServerのFIPS 140-2モードでサポートされていません。
-
<sp:WssX509PkiPathV1Token10/>
-
<sp:WssX509PkiPathV1Token11/>
これら2つのポリシー・アサーションを使用する場合、かわりに次の2つのアサーションに変更してください。
-
<sp:WssX509Pkcs7Token10/>
-
<sp:WssX509Pkcs7Token11/>
たとえば、カスタム・ポリシーのポリシーに次のアサーションがあるとします。
<wsp:Policy> <sp:X509Token sp:IncludeToken=". . ."> <wsp:Policy> <sp:WssX509PkiPathV1Token10/> </wsp:Policy> </sp:X509Token> </wsp:Policy>
これは次のポリシー・アサーションで置き換えてください。
<wsp:Policy> <sp:X509Token sp:IncludeToken=". . ."> <wsp:Policy> <sp:WssX509Pkcs7Token10/> </wsp:Policy> </sp:X509Token> </wsp:Policy>
または、カスタム・ポリシーのポリシーに次のアサーションがあるとします。
<wsp:Policy> <sp:X509Token sp:IncludeToken=". . ."> <wsp:Policy> <sp:RequireThumbprintReference/> <sp:WssX509PkiPathV1Token11/> </wsp:Policy> </sp:X509Token> </wsp:Policy>
これは次のアサーションで置き換えてください。
<wsp:Policy> <sp:X509Token sp:IncludeToken=". . ."> <wsp:Policy> <sp:RequireThumbprintReference/> <sp:WssX509Pkcs7Token11/> </wsp:Policy> </sp:X509Token> </wsp:Policy>