36 FIPSモードの有効化
FIPSの概要
Federal Information Processing Standards (FIPS) 140-2は、アメリカ合衆国政府の機密でも未分類の使用に関する要件を記載した規格です。
Jipher JCEおよびSunJSSEプロバイダを使用して、WebLogic ServerのFIPS準拠(FIPS 140-2)実装を有効にできます。
FIPSのサポートされるバージョンは、「サポートされるFIPS標準と暗号スイート」を参照してください。
Jipher JCEおよびSunJSSEプロバイダの使用
Jipher JCEプロバイダとSunJSSEプロバイダを組み合せると、WebLogic ServerのFIPS準拠の実装が作成されます。Jipher JCEとSunJSSEがそれぞれセキュリティ・プロバイダのリストの最初と2番目に登録されていることを確認します。
Jipher JCEおよびSunJSSEプロバイダでのFIPSモードの有効化
Jipher JCEプロバイダとSunJSSEプロバイダの組合せを使用して、WebLogic ServerのFIPS準拠の実装を作成します。
独自のjava.security
ファイルを作成し、コマンドラインからJavaオプションを指定するか、インストールされているJDKのjava.security
ファイルを編集して、FIPS 140-2モードを有効にできます。
Dell JCEおよびDell BSAFE JSSEプロバイダの削除
WebLogic Server 14.1.2.0.0より前のリリースでは、Dell JCEおよびDell BSAFE JSSEプロバイダを使用してFIPS準拠が実装されていました。FIPSモードは、Jipher JCEおよびSunJSSEプロバイダによって提供されるようになりました。WebLogic Server環境からDellプロバイダへの参照を削除してください。
ノート:
これらのステップは、WebLogic Server 14.1.1.0.0以前からアップグレードしていて、環境をFIPS準拠に変更している場合にのみ実行する必要があります。FIPSモードを有効にするには、「Jipher JCEおよびSunJSSEプロバイダでのFIPSモードの有効化」を参照してください。
FIPS 140-2準拠のキーストアの作成
keytool
ユーティリティを使用して作成され、SunJSSEプロバイダ(デフォルト)を使用するJKSまたはPKCS12キーストアは、完全にはFIPS準拠でない場合があります。キーストアがFIPS 140-2に準拠していることを確認するには、WebLogic Serverディストリビューションに用意されているJipher JCEプロバイダでキーツール・コマンドを使用して、SunJSSEプロバイダを使用して作成したキーストアを変換します。
FIPS承認アルゴリズムを使用してSunJSSEでキーストアを作成することはできますが、FIPSで検証された暗号化実装が使用されていない場合、公式にはFIPS準拠ではありません。
また、Oracle Identity Cloud Integratorプロバイダを使用して構成されたJava Cloud Serviceなどの環境では、CA証明書とともにデフォルトのJKSキーストアであるcacerts
を使用します。これらの環境では、Jipher JCEプロバイダを使用してJKSキーストアをFIPS準拠のPKCS12キーストアに変換する必要があります。
PKCS12タイプのキーストアのみが許可されるようにするには、WebLogic Serverの起動時にシステム・プロパティ: weblogic.security.fips140strictkeystores=true
を設定し、keystore.type=pkcs12
をjava.security
ファイルに追加します。JKSを使用するWebLogic Server環境からアップグレードする場合は、これらの変更を行う前に、それらのレガシー・キーストアをPKCS12に変換したことを確認します。
次の項では、キーストアがFIPSに準拠していることを確認するためにこれらのステップを完了する手順を示します。
Jipher JCEプロバイダを使用した非FIPS準拠のキーストアの変換
WebLogic Serverディストリビューションのクラスパスを使用することにより、Jipher JCEプロバイダとともにkeytool –importkeystore
コマンドを使用して非準拠のキーストアを変換できます。
Jipher JCEプロバイダを使用して非準拠キーストアを変換するには:
keytool -importkeystore -srckeystore srckeystore
–srcstoretype srcstoretype
-srcprovidername providername –destkeystore destkeystore
-deststoretype PKCS12 -destprovidername JipherJCE
-providerclass com.oracle.jipher.provider.JipherJCE
-providerpath $CLASSPATH
このコマンドで、次のパラメータの値を指定します。
-srckeystore
– ソース・キーストアの名前-srcstoretype
– ソース・キーストアのタイプ(PKCS12
など)-srcprovidername
– ソース・キーストア・プロバイダの名前。srcstoretype
がPKCS12
の場合はJipherJCE
に設定します-
-destkeystore
- 宛先キーストアの名前 -deststoretype
– 宛先キーストアのタイプ。Jipher JCEプロバイダの場合はPKCS12
に設定します-destprovidername
- 宛先キーストア・プロバイダの名前。Jipher JCEプロバイダの場合はJipherJCE
に設定します-providerclass
– プロバイダ・クラスの名前。com.oracle.jipher.provider.JipherJCE
に設定します-providerpath
- プロバイダのクラスパス
FIPSに準拠するためのデフォルトのJKSキーストアの変換
FIPS 140-2では、PBES2保護を使用してキーストアをPKCS12形式にする必要があります。Sun JSSEプロバイダ(デフォルト)を使用してキーツールで作成されたJKSキーストアおよびPKCS12キーストアはサポートされていません。Oracle Identity Cloud Integratorプロバイダを使用したJava Cloud Service環境の場合のように、デフォルトのJDK cacerts
キーストアを使用する場合、次のステップを完了してFIPSに準拠していることを確認する必要があります。
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>