Oracle® Fusion Middleware Oracle WebLogic Server 12.1.3セキュリティの管理 12c (12.1.3) E57576-07 |
|
前 |
次 |
ここでは、JSSEベースSSL実装の使用方法を説明し、サポートされる暗号スイートを示します。また、Certicomベースの実装との主な違いを説明して、WebLogic Server 12.1.3でのRSA JSSEプロバイダの使用方法も説明します。
注意: 次の点に注意してください。
|
この章の内容は次のとおりです。
表39-1では、JSSEベースSSL実装によるWebLogicシステム・プロパティの処理の違いを示しています。
表39-1 システム・プロパティの相違
システム・プロパティ | JSSEの適用性 | 説明 |
---|---|---|
weblogic.security.SSL.ignoreHostnameVerification |
このプロパティは引き続き機能し、JSSE統合による影響はありません。 |
証明書のホスト名に対してURLのホスト名を検証しません。 |
weblogic.ReverseDNSAllowed |
このプロパティは引き続き機能し、JSSE統合による影響はありません。 |
trueに設定すると、逆引きDNSルックアップを使用して、 |
weblogic.security.SSL.trustedCAKeyStore |
このプロパティは引き続き機能し、JSSE統合による影響はありません。 |
キーストアから信頼できるCA証明書をロードします。 |
weblogic.security.SSL.verbose |
このプロパティを |
|
ssl.debug=true |
このプロパティを |
SSLデバッグ情報をコンソールまたはログに表示します。このプロパティは、呼出し側のWebLogicコード用です。JSSEベースSSL実装には、 注意: JSSEロギング( |
weblogic.security.SSL.disableJsseCipherSuiteAliases=true|false |
デフォルトは |
必要に応じて、Certicom暗号スイート名の Certicom暗号スイート名とそれらの |
weblogic.security.SSL.ignoreHostnameVerify |
このプロパティは引き続き機能し、JSSE統合による影響はありません。 |
|
weblogic.security.SSL.HostnameVerifier=classname
|
このプロパティは引き続き機能し、JSSE統合による影響はありません。 |
カスタム・ホスト名検証クラスのクラス名を指定します。 |
weblogic.security.SSL.protocolVersion=protocol
|
このプロパティは引き続き機能し、JSSE統合による影響はありません。 サポートされるプロトコルの値は、JSSEでサポートされる同等のプロトコルにマップされます。 |
第38章「SSLプロトコル・バージョンの指定」を参照してください。 |
次のうちいずれか。
|
この設定が有効な場合、この2つのNull暗号は暗号リストに追加されます。 |
デフォルトでは、この制御は設定されず、Null暗号の使用はサーバーで許可されません。このような構成では、SSLクライアントでNull暗号スイートを使用する場合(唯一のサポート対象暗号スイートとして この制御を設定した場合、Null暗号スイート( 注意: 設定の意味とその結果を把握しないかぎり、本番環境ではこの制御を設定しないでください。 |
weblogic.security.SSL.enforceConstraints=option
|
|
CA証明書の基本制約拡張が確実にCAとして定義されることを確認します。「証明書検証のレベルの制御」を参照してください。 |
weblogic.security.SSL.allowedcertificatepolicyids |
サポートされていません。 |
WebLogic Serverでは、X.509証明書の証明書ポリシー拡張機能に対するサポートが制限されます。「証明書の証明書ポリシーの許可」を参照してください。 |
weblogic.security.SSL.nojce |
サポートされていません。 |
「SSLの設定: 主な手順」を参照してください。 |
脚注 1 このWebLogicシステム・プロパティは、CerticomとJSSEベースSSL実装の両方に適用できます。ただし、JSSEの場合、このプロパティはSSL呼出しコードにのみ影響を及ぼし、JSSEベース実装には影響を及ぼしません。javax.net.debug
システム・プロパティおよびJSSEベースSSL実装のデバッグに関する詳細は、Java Secure Socket Extension (JSSE)リファレンス・ガイド(http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug
)のユーティリティのデバッグに関する項を参照してください。
WebLogic ServerはJDK 7で構成されるため、デフォルトのSSLのパフォーマンスが以前のリリースのWebLogic Serverより低い場合があります。このパフォーマンスの変化は、JDK 7がWebLogic ServerでJSSEベースのSSLプロバイダとともに使用される場合にデフォルトで使用される、より強力な暗号とMACアルゴリズムが原因で起こります。具体的には、AESが暗号化に、SHA1がハッシュに使用されます。(ここではこの暗号の組合せが、通常AES + SHA1、つまり暗号+MACアルゴリズムとして指定されます。)
以前のバージョンのWebLogic Serverは、SSL接続のために、RC4とMD5の暗号の組合せ(RC4 + MD5)を使用していました。AES + SHA1のパフォーマンスはRC4 + MD5より低下します。AES + SHA1をお薦めしますが、より強力な暗号を制限し、SSLでAES + SHA1ではなくRC4 + MD5が使用されるようにWebLogic Serverを構成できます。RC4 + MD5はAES + SHA1より安全性が低下しますが、特定のWebLogic Server環境のセキュリティ要件によってはRC4 + MD5を使用できる場合があります。
注意: SSL接続には、AES + SHA1で提供されるより強力なセキュリティの使用を強くお薦めします。 |
RC4 + MD5を使用するようにWebLogic Serverを構成するには、次のプロパティをファイルJAVA_HOME
/jre/lib/security/java.security
に追加します。
jdk.tls.disabledAlgorithms=AES, DESede, DES, SHA1, SHA
前述のプロパティによって、SSL接続のためにデフォルトで使用されるより強力な暗号化が無効になり、RC4 + MD5の使用が許可されます。JDK7における暗号の組合せの優先度の詳細は、http://bugs.java.com/view_bug.do?bug_id=6996365
を参照してください。
このトピックには次のセクションが含まれます:
Java SE 7を使用している場合、JDKデフォルトJSSEプロバイダSunJSSE
によってサポートされる暗号化スイート・セットは、次のURLからダウンロードできます。
http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#SunJSSEProvider
Java SE 8を使用している場合、JDKデフォルトJSSEプロバイダSunJSSE
によってサポートされる暗号化スイート・セットは、次のURLからダウンロードできます。
http://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSEProvider
後方互換性のために、JSSEベースのSSL実装はSunJSSE
と互換性のある暗号スイートのCerticom暗号スイート名を受け入れます。Certicom暗号スイート名は、SunJSSE
の対応する名前に変換され、表39-2に示すように、通常は接頭辞「TLS_」が「SSL_」で置き換えられます。
Certicom暗号スイートとの後方互換性を考慮する上で、次のことを念頭においてください。
JSSEでは、デフォルトで選択されている暗号スイートはCerticom SSLと比較して強力ですが、パフォーマンスが低くなります。通常は、使用している環境のセキュリティ・ポリシーで、使用する必要のある暗号スイートの要件を設定します。ただし、非常にセキュアな環境の場合、許容できるパフォーマンスを提供する使用可能な最強の暗号を使用することをお薦めします。
有効な暗号スイートまたはサポートされる暗号スイートが返される操作では、暗号スイートのCerticom名とSunJSSE
名がどちらも返されます。(表39-1で説明されるように、weblogic.security.SSL.disableJsseCipherSuiteAliases=true
プロパティはこの動作を無効にします。)
有効化された暗号スイートを指定する操作の場合、等価なCerticom暗号スイート名またはSunJSSE
名のいずれかを使用できます。Certicom暗号スイートとそれらのSunJSSE
の等価物は、表39-2にリストされています。(この先、Certicom暗号スイート名は使用しないことをお薦めします。)
_DSS_
暗号スイートの場合、NIST FIPS Pub 186で定義されるDSS (Digital Signature Standard)で署名された証明書が必要です。DSAは、FIPS 186で説明されている鍵生成スキームです。
_anon_
暗号スイートはデフォルトで無効であり、WebLogic Server管理コンソールで管理できません。「WLSTを使用した暗号スイートの設定: 一例」で説明されているように、かわりにWLSTを使用する必要があります。
Kerberos暗号スイートTLS_KRB5_***
を使用するには、KDCアカウントを設定する必要があります。Kerberos要件の詳細は、Java Secure Socket Extension (JSSE)リファレンス・ガイド(http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KRB
)を参照してください。
次の匿名暗号は、WebLogic ServerのJSSEベースのWebLogic SSL実装でデフォルトでサポートされていません。
TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
TLS_DH_anon_WITH_RC4_128_MD5
TLS_DH_anon_WITH_DES_CBC_SHA
TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
ただし前述の匿名暗号を有効にする場合は、次の引数を、WebLogic Serverを開始するJavaコマンドに追加します。
-Dweblogic.security.SSL.AllowAnonymousCipher=true
ほとんどの場合、WebLogic Serverまたはデプロイされたアプリケーションが、匿名暗号のみを使用するように構成されたSSLサーバー(LDAPサーバー、RDBMSシステムなど)へのアウトバウンド接続を行うSSLクライアントとして機能するときは、匿名暗号の有効化が必要です。一般的なユース・ケースは、非認証モードで構成されたOracle Internet Directoryインスタンスへの接続です。
注意: 本番環境で匿名暗号を使用することはお薦めしません。 |
デフォルトでは、WebLogic ServerがJSSEベースのSSL実装を使用するように構成されるとき、Certicom暗号スイート名はSunJSSE
暗号スイート名に変換されます。表39-2は、(削除された) WebLogic Server Certicom SSL実装とそのSunJSSE
の等価物でサポートされる各暗号スイートをリストで表示します。TLS_
名はCerticom暗号スイート名で、SSL_
名は、等価なSunJSSE
プロバイダの暗号スイート名です。
表39-2 暗号スイート名の等価物
Certicom暗号スイート | SunJSSEの等価な暗号スイート |
---|---|
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA |
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA |
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
TLS_DHE_DSS_WITH_DES_CBC_SHA |
SSL_DHE_DSS_WITH_DES_CBC_SHA |
TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA |
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA |
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA |
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA |
TLS_DHE_RSA_WITH_DES_CBC_SHA |
SSL_DHE_RSA_WITH_DES_CBC_SHA |
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA |
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA |
TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 |
SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 |
TLS_DH_anon_WITH_3DES_EDE_CBC_SHA |
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA |
TLS_DH_anon_WITH_DES_CBC_SHA |
SSL_DH_anon_WITH_DES_CBC_SHA |
TLS_DH_anon_WITH_RC4_128_MD5 |
SSL_DH_anon_WITH_RC4_128_MD5 |
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA |
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA |
TLS_RSA_EXPORT_WITH_RC4_40_MD5 |
SSL_RSA_EXPORT_WITH_RC4_40_MD5 |
TLS_RSA_WITH_3DES_EDE_CBC_SHA |
SSL_RSA_WITH_3DES_EDE_CBC_SHA |
TLS_RSA_WITH_DES_CBC_SHA |
SSL_RSA_WITH_DES_CBC_SHA |
TLS_RSA_WITH_RC4_128_MD5 |
SSL_RSA_WITH_RC4_128_MD5 |
TLS_RSA_WITH_RC4_128_SHA |
SSL_RSA_WITH_RC4_128_SHA |
注意: 安全ではないため、DHE暗号スイートを構成しないでください。 |
次のサンプルは、暗号スイートSSL_RSA_WITH_RC4_128_MD5
、SSL_RSA_WITH_RC4_128_SHA
およびSSL_RSA_WITH_3DES_EDE_CBC_SHA
を設定するWLSTスクリプトの使用を示しています。このスクリプトを実行すると、暗号スイートがドメイン構成(config.xml
ファイル)に設定され、SSLリスナーがこの新しい暗号スイート設定で再起動されます。
url="t3://localhost:7001" adminUsername="weblogic" adminPassword="password" connect(adminUsername, adminPassword, url) edit() server=cmo.lookupServer('myserver') cd('Servers') cd('myserver') startEdit() cd('SSL') cd('myserver') ssl = server.getSSL() ciphers = ['SSL_RSA_WITH_RC4_128_MD5', 'SSL_RSA_WITH_RC4_128_SHA', 'SSL_RSA_WITH_3DES_EDE_CBC_SHA'] ssl.setCiphersuites(ciphers) save() activate() disconnect() exit()
第34章「SSLのデバッグ」で説明するように、SSLデバッグにより、SSLハンドシェイクで生じたSSLイベントに関する詳細情報が提供されます。
JSSEベースSSL実装が有効化されているときにSSLをデバッグする場合、表39-1に示されているデバッグ・ロギング・プロパティを使用できます。ただし、一部のプロパティは、SSL呼出しコードにのみ影響を及ぼし、JSSE実装には影響しません。JSSEベースSSL実装には、javax.net.debug
プロパティによってアクティブ化される独自のロギング・システムが含まれます。javax.net.debug
プロパティは、出力量を超える複数の制御レベルを提供し、WebLogic SSLロギング(ssl.debug
)とは別個に使用できます。
javax.net.debug
プロパティの詳細は、次のURLからダウンロードできるJava Secure Socket Extension (JSSE)リファレンス・ガイドのユーティリティのデバッグに関する項を参照してください。
http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug
注意: この項では、非FIPSモードでのRSA JSSEプロバイダの使用について説明します。RSA JSSEプロバイダは、第37章「FIPSモードの有効化」で説明するようにFIPSモードで使用することもできます。 |
RSA JSSEは、JVMを使用する場合、これに静的に登録できるサード・パーティのJSSEプロバイダです。RSA JSSEプロバイダをインストールおよび構成するには、次の手順を完了させます。
次の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/
セキュリティのlocal_policy.jar
とUS_export_policy.jar
を更新します。詳細およびインストール方法は、.ZIPディストリビューション内のREADME.txt
ファイルを参照してください。
テキスト・エディタを使用して、ファイルJAVA_HOME
/jre/lib/security/java.security
を変更し、RSA JSSEプロバイダcom.rsa.jsse.JsseProvider
をリスト内で最初のプロバイダにします。
たとえば、この更新の前に、プロバイダのリストが次のように表示されていたとします。
# # List of providers and their preference orders (see above): # security.provider.1=sun.security.provider.Sun security.provider.2=sun.security.rsa.SunRsaSign security.provider.3=com.sun.net.ssl.internal.ssl.Provider security.provider.4=com.sun.crypto.provider.SunJCE security.provider.5=sun.security.jgss.SunProvider security.provider.6=com.sun.security.sasl.Provider security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI security.provider.8=sun.security.smartcardio.SunPCSC security.provider.9=sun.security.mscapi.SunMSCAPI
RSA JSSEプロバイダを追加すると、リストは次のようになります。
# # List of providers and their preference orders (see above): # security.provider.1=com.rsa.jsse.JsseProvider security.provider.2=sun.security.provider.Sun security.provider.3=sun.security.rsa.SunRsaSign security.provider.4=com.sun.net.ssl.internal.ssl.Provider security.provider.5=com.sun.crypto.provider.SunJCE security.provider.6=sun.security.jgss.SunProvider security.provider.7=com.sun.security.sasl.Provider security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI security.provider.9=sun.security.smartcardio.SunPCSC security.provider.10=sun.security.mscapi.SunMSCAPI
つまり、後続の各プロバイダのシーケンス番号を更新する必要があるということです。たとえば、security.provider.
1
=sun.security.provider.Sun
は、security.provider.
2
=sun.security.provider.Sun
に変更されます(変更部分は太字で表示)。
クラスパスの先頭にSSL-J jar WL_HOME
/server/lib/sslj.jar
を追加します。これには、PRE_CLASSPATH環境変数を使用します。
たとえば、sslj.jar
をPRE_CLASSPATH
変数に設定してから、サーバー起動スクリプト(通常はstartWebLogic.cmd/sh
)を呼び出すことができます。
set PRE_CLASSPATH=%MW_HOME%\wlserver\server\lib\sslj.jar
RSA JSEEプロバイダへの変更を有効にするには、WebLogic Serverを再起動します。