この付録では、WebLogic ServerのJSSEおよびJDK 7.0に対してFIPS 140-2モードを有効化する方法について説明します。
内容は次のとおりです。
Federal Information Processing Standards (FIPS) 140-2は、アメリカ合衆国政府の機密でも未分類の使用に関する要件を記載した規格です。
注意: このリリースでは、WebLogic ServerのJSSEおよびJDK 7に対してFIPS 140-2をサポートするために、バンドルされているパッチをインストールする必要があります。これはデフォルトでは使用できません。WebLogic Serverおよび他のFusion Middlewareコンポーネント用のこのパッチの詳細は、My Oracle Supportのサポート・ドキュメント2115681.1を参照してください。My Oracle Supportには JSSEに対するFIPS 140-2のサポートには、JDK 1.7.0_80以降が必要です。 WebLogic ServerでJSSEサポートを有効化する方法は、JSSEベースSSL実装の使用を参照してください。 |
WebLogic Serverでは、RSA FIPS互換(FIPS 140-2)機密モジュールを使用できます。(サポートされるバージョンは、「サポートされるFIPS標準と暗号スイート」を参照してください。)
この機密モジュールをRSA JSSEプロバイダおよびRSA JCEプロバイダと組み合せて使用すると、FIPS準拠(FIPS 140-2)実装が提供されます。
FIPSに対するOracle Fusion Middlewareのサポートの詳細は、Oracle Fusion Middlewareの管理のOracle Fusion MiddlewareでのFIPS-140サポートを参照してください。
表A-1は、サポートされるFIPSバージョンと暗号スイートを示します。
表A-1 暗号スイートとサポートされるFIPS 140-2バージョン
標準 | バージョン | その他の検討事項 |
---|---|---|
FIPS 140-2 |
RSA Crypto-J V6.2.0.1 RSA SSL-J V6.2 RSA Cert-J V6.2 |
|
JSSE JDK 7用暗号スイート |
優先されるネゴシエーション済の暗号の組合せは、AES + SHA2です。 |
JDK 7 SunJSSEによってサポートされる暗号スイートのセットは、 |
RSA JSSE用暗号スイート |
製品に依存 |
|
(非推奨の) WebLogic Server Certicom SSL実装およびSunJSSE同等製品でサポートされる暗号スイート |
製品に依存 |
暗号スイート名の等価物を参照してください。 Certicomを使用するとき、WebLogic ServerはSHA256ハッシング、またはSHA256を含む署名アルゴリズムをサポートしません。 |
JavaオプションでFIPS 140-2を有効にするには、次の手順に従います。
次のURLより、使用しているJDKのバージョンに対応するJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policyファイルをダウンロードおよびインストールします。これらのJavaポリシーJARファイルは、サイズが128ビットを超える暗号鍵に影響します。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
.ZIPディストリビューションを開き、JAVA_HOME/jre/lib/security
のlocal_policy.jar
とUS_export_policy.jar
を更新します。詳細およびインストール方法は、.ZIPディストリビューション内のREADME.txtファイルを参照してください。
自らのjava.security
ファイルを作成します。インストールしたJDKに含まれるファイルを見本として使用できます。
RSA JCEプロバイダとRSA JSSEプロバイダの両方を、java.security
プロパティ・ファイルに最初の2つのJavaセキュリティ・プロバイダとして追加します。
# security.provider.1=com.rsa.jsafe.provider.JsafeJCE security.provider.2=com.rsa.jsse.JsseProvider security.provider.3=sun.security.provider.Sun :
WebLogic Serverの起動コマンドラインに-Djava.security.properties
を設定して、java.security
ファイルのデフォルト構成をオーバーライドします。カスタムjava.security
ファイルのフルパスを指定します。
set JAVA_OPTIONS=-Djava.security.properties=C:\Users\user\java.security
注意: インストールされているJREセキュリティ・プロパティにjava.securityプロパティを追加する場合は、1つの等号(=)を使用してファイル名を指定します。すべてのJavaセキュリティ・プロパティをオーバーライドする場合は、2つの等号(==)を使用します(例:-Djava.security.properties==C:\Users\user\java.security )。 |
jcmFIPS.jar
jarファイルおよびsslj.jar
JARファイル(どちらもWL_HOME
/server/lib/
にある)をクラスパスの先頭に指定します。これには、PRE_CLASSPATH
環境変数を使用します。
(RSA JCEプロバイダCrypto-Jはデフォルトでcryptoj.jar
とクラスパスにあります。)
たとえば、jcmFIPS.jar
とsslj.jar
をPRE_CLASSPATH
変数に設定してから、サーバー起動スクリプト(通常はstartWebLogic.cmd/sh
)を呼び出すことができます。
set PRE_CLASSPATH=%MW_HOME%\wlserver\server\lib\jcmFIPS.jar;%MW_HOME%\wlserver\server\lib\sslj.jar cd %MW_HOME%\user_projects\domains\base_domain startWebLogic.cmd
WebLogic Serverを起動します。
インストールされているJDKのjava.security
ファイルを使用してFIPS 140-2モードを有効化するには、次の手順を実行します。
次のURLより、使用しているJDKのバージョンに対応するJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policyファイルをダウンロードおよびインストールします。これらのJavaポリシーJARファイルは、サイズが128ビットを超える暗号鍵に影響します。
インストール方法は、.ZIPディストリビューション内のREADME.txtファイルを参照してください。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
.ZIPディストリビューションを開き、JAVA_HOME/jre/lib/security
のlocal_policy.jar
とUS_export_policy.jar
を更新します。詳細およびインストール方法は、.ZIPディストリビューション内のREADME.txtファイルを参照してください。
java.security
ファイルを編集します。RSA JCEプロバイダとRSA JSSEプロバイダの両方を、java.security
プロパティ・ファイルに最初の2つのJavaセキュリティ・プロバイダとして追加します。
# security.provider.1=com.rsa.jsafe.provider.JsafeJCE security.provider.2=com.rsa.jsse.JsseProvider security.provider.3=sun.security.provider.Sun :
jcmFIPS.jar
jarファイルおよびsslj.jar
JARファイル(どちらもWL_HOME
/server/lib/
にある)をクラスパスの先頭に指定します。これには、PRE_CLASSPATH
環境変数を使用します。
(RSA JCEプロバイダCrypto-Jはデフォルトでcryptoj.jar
とクラスパスにあります。)
たとえば、jcmFIPS.jar
とsslj.jar
をPRE_CLASSPATH
変数に設定してから、サーバー起動スクリプト(通常はstartWebLogic.cmd/sh
)を呼び出すことができます。
set PRE_CLASSPATH=%MW_HOME%\wlserver\server\lib\jcmFIPS.jar;%MW_HOME%\wlserver\server\lib\sslj.jar cd %MW_HOME%\user_projects\domains\base_domain startWebLogic.cmd
または、jcmFIPS.jar
とsslj.jar
をサーバー起動スクリプトそのもののPRE_CLASSPATH
変数に追加します。
WebLogic Serverを起動します。
通常のWebLogic起動時には、パフォーマンスの理由からRSA Crypto-J JCE自己整合性テストは無効になっています。
FIPS 140-2モードのWLSを構成するときにJCE検証を有効にするには、WebLogic Serverを起動するときに-Dweblogic.security.allowCryptoJDefaultJCEVerification=true
JAVA_OPTIONS
環境変数を設定します。
この環境変数を設定すると、処理が追加されて、起動に時間がかかるようになることに注意してください。
FIPS 140-2モードの場合、すべての証明書の鍵サイズは2048ビットでなければなりません。
注意: FIPSモードのインストールに含まれているデモ用証明書は、安全でないため使用しないでください。これらは開発用にのみ提供されています。 |
FIPS 140-2モードでWebサービスを使用するときは、次の注意事項を念頭に置いてください。
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モードには、SHA-2セキュア・ハッシュ・アルゴリズムに加えて、拡張アルゴリズム・スイート・ポリシーでサポートされている、より強力なデジタル署名メソッドが必要です。詳細は、Oracle WebLogic Server WebLogic Webサービスの保護の拡張アルゴリズム・スイートの使用を参照してください。
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アルゴリズム・スイートがポリシーで使用されている場合に、拡張アルゴリズム・スイートが必要な場合は、既存のポリシーを編集して、次のアルゴリズム・スイートを変更します。
<sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256/> </wsp:Policy> </sp:AlgorithmSuite>
これを次のように変更します。
<sp:AlgorithmSuite> <wsp:Policy> <orasp:Basic256Exn256xmlns:orasp="http://schemas.oracle.com/ws/2006/01/securitypolicy"/> </wsp:Policy> </sp:AlgorithmSuite>
このリリースの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>