2013-09-03 9 views
9

Javaアプリケーションは、SSL/TLSで保護されたさまざまなインターフェイス(SMTP、FTP、HTTP)を多数公開しています。ここでの目標は、これらのインターフェイスで許可されている暗号スイートに「強い」ものだけを含めることです。私はすでにリストを持っており、それが特定のソケットJREレベルの暗号スイートを制限する

socket.setEnabledCipherSuites(ENABLED_SECURE_CIPHER_SUITES); 

ためか、Tomcatのコネクタのために働いて、それを作るためにどのように明らかだ問題は、アプリケーション内の5ヶ所どこがすべきはすでに存在しているということです

<Connector port="443" ciphers="..."/> 

この制限を手動で適用してください。一般的なSocketFactoryはサードパーティのAPIやフレームワークにカスタムSocketFactoryを提供することは必ずしも実現可能ではないので、役に立たないようです。何らかの形でこの制限をJREレベルに導入することは可能ですか? JCEプロバイダのコンフィグレーションファイルまたはポリシーファイルを使用していますか?

JRE:OracleのJRE 1.7.0_17

+0

でサポートされています。 Javaは既に有効な暗号スイートを制限しています。 [Networking Properties](http://docs.oracle.com/javase/7/docs/technotes/guides/net/properties.html)についてご存知ですか? – EJP

+0

この質問は特定の暗号の強さに関するものではありません。私は許可された暗号の固定リストを持っており、それを変更することはできません。たとえば、RC4はまったく許可されません。したがって、デフォルトのJavaの制限は十分ではありません。ネットワーキングのプロパティもチェックしましたが、暗号スイートに関するプロパティは見つかりませんでした。 – Jk1

+0

「JSSEリファレンスガイド」を参照してください。 – EJP

答えて

9

まあ、私はその作業を取得するために管理。 EJPが正しい方向を指してくれてありがとう。証明書パスの構築と検証のため

jdk.certpath.disabledAlgorithms=MD2 

コントロールアルゴリズム: は、Java 1.7以来$ JRE_HOME/libに/セキュリティ/ java.securityの二つの追加プロパティがあります。

jdk.tls.disabledAlgorithms=MD5, SHA1, RC4, RSA keySize < 1024 

私が探していたSSL/TLS処理に関するJVM全体のアルゴリズム制限。表記法はここではっきりと分かります。特定のアルゴリズムを許可しないか、鍵のサイズを制限することが可能です。どちらのプロパティも、Oracle JRE 7、Open JRE 7および(驚くべきことに)IBM Java v7

関連する問題