6

SSLSocketFactorygetDefaultCipherSuites(ソケットでデフォルトで有効になっている暗号) およびgetSupportedCipherSuites(必要に応じて有効にできる暗号) を提供します。

ただし、暗号リストを一度構成して、後続のソケットを優先することはできSSLSocketFactoryません。setEnabledCipherSuites

setEnabledCipherSuites実際、中華鍋のフローは非常にSSLSocket複雑になると思います。たとえば、HttpsURLConnectionは を提供せず、getSocketこのフローを実際に中断します。

...
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, trustManager.getTrustManagers(), null);

HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setSSLSocketFactory(context.getSocketFactory());

や などSSLContextのメソッドがあるので同じことが言えると思います。getDefaultSSLParametersgetSupportedSSLParameters

私は、(できない) 能力の健全なセキュリティ エンジニアリングの理由を考え出そうとしていますが、できません。おそらく、決定にはソフトウェア工学的な理由があります。(正当な理由があると思われますが、現時点ではそれを確認するための洞察が不足しています)。

Java に を構成する機能がないのはなぜSSLSocketFactoryですか? これは明らかに設計上の決定であり、ライブラリの関連部分のセキュリティを犠牲にして行われた理由を理解しようとしています。

4

2 に答える 2