4.2. 暗号化スイートフィルター
概要
通常、標準的なアプリケーションでは、利用可能な暗号スイートのリストを JSSE プロバイダーがサポートする暗号のサブセットに制限します。
通常、sec:cipherSuites
要素の代わりに sec:cipherSuitesFilter
要素を使用して、使用する暗号スイートを選択する必要があります。
sec:cipherSuites
要素は直感的ではないセマンティクスを持つため、一般的な使用は 推奨されません。読み込まれるセキュリティープロバイダーが、少なくともリストされている暗号スイートをサポートすることを要求するために使用できます。ただし、ロードされるセキュリティープロバイダーは、指定されたものよりも多くの暗号スイートをサポートする可能性があります。したがって、sec:cipherSuites
要素を使用する場合は、実行時にどの暗号スイートがサポートされているかは明確ではありません。
Namespaces
表4.1「暗号スイートフィルターの設定に使用する名前空間」 は、このセクションで参照される XML 名前空間を示しています。
接頭辞 | 名前空間 URI |
---|---|
| |
| |
|
sec:cipherSuitesFilter 要素
sec:cipherSuitesFilter
要素を使用して暗号スイートフィルターを定義します。これは、http:tlsClientParameters
要素または httpj:tlsServerParameters
要素の子になります。一般的な sec:cipherSuitesFilter
要素には、例4.1「sec:cipherSuitesFilter 要素の構造」 に記載されているアウトライン構造があります。
例4.1 sec:cipherSuitesFilter 要素の構造
<sec:cipherSuitesFilter> <sec:include>RegularExpression</sec:include> <sec:include>RegularExpression</sec:include> ... <sec:exclude>RegularExpression</sec:exclude> <sec:exclude>RegularExpression</sec:exclude> ... </sec:cipherSuitesFilter>
セマンティクス
以下のセマンティックルールは sec:cipherSuitesFilter
要素に適用されます。
sec:cipherSuitesFilter
要素がエンドポイントの設定に 表示されない (つまり、関連するhttp:conduit
またはhttpj:engine-factory
要素にない) 場合 は、以下のデフォルトフィルターが使用されます。<sec:cipherSuitesFilter> <sec:include>.*_EXPORT_.*</sec:include> <sec:include>.*_EXPORT1024.*</sec:include> <sec:include>.*_DES_.*</sec:include> <sec:include>.*_WITH_NULL_.*</sec:include> </sec:cipherSuitesFilter>
-
sec:cipherSuitesFilter
要素がエンドポイントの設定に 表示される 場合、すべての暗号スイートはデフォルトで 除外されます。 -
暗号化スイートを含めるには、
sec:cipherSuitesFilter
要素にsec:include
子要素を追加します。sec:include
要素の内容は、1 つ以上の暗号スイート名と一致する正規表現です (例: 「SunJSSE でサポートされる暗号スイート」 の暗号スイート名を参照)。 選択した暗号スイートのセットをさらに絞り込むには、
sec:exclude
要素をsec:cipherSuitesFilter
要素に追加します。sec:exclude
要素の内容は、現在含まれているセットからゼロ以上の暗号スイート名と一致する正規表現です。注記望ましくない暗号化スイートが意図しない暗号化スイートを明示的に除外することは理にかなっています。
正規表現の一致
sec:include
および sec:exclude
要素に表示される正規表現の文法は、Java 正規表現ユーティリティー java.util.regex.Pattern
で定義されています。文法の詳細については、Java リファレンスガイド http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html を参照してください。
クライアントのコンジットの例
以下の XML 設定は、暗号スイートフィルターをリモートエンドポイント {
WSDLPortNamespace}
PortName に適用するクライアントの例を示しています。クライアントがこのエンドポイントへの SSL/TLS 接続を開こうとすると、利用可能な暗号スイートを sec:cipherSuitesFilter
要素が選択したセットに制限します。
<beans ... > <http:conduit name="{WSDLPortNamespace}PortName.http-conduit"> <http:tlsClientParameters> ... <sec:cipherSuitesFilter> <sec:include>.*_WITH_3DES_.*</sec:include> <sec:include>.*_WITH_DES_.*</sec:include> <sec:exclude>.*_WITH_NULL_.*</sec:exclude> <sec:exclude>.*_DH_anon_.*</sec:exclude> </sec:cipherSuitesFilter> </http:tlsClientParameters> </http:conduit> <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl"/> </beans>