15

SSLSocketFactory.getSupportedCipherSuites() を使用して暗号スイートが返される順序を解決しようとしています - Java 1.6 と Java 1.7 では異なるようです。

これは簡単に判断できると思っていましたが、いくつかの問題が発生しました。最初に、ただし、ここに私が使用しているコードがあります:

SSLContext context = SSLContext.getDefault();
SSLSocketFactory sf = context.getSocketFactory();
String[] cipherSuites = sf.getSupportedCipherSuites();

かなり簡単です(私が愚かなことをした場合は修正してください)。だから、(Eclipseを使って)getSupportedCipherSuites()メソッドにステップインできると思ったのですが、それを行うためのソースコードがないようです(その理由はありますか?)。jsse.jar でクラスを見つけ、JD-Eclipseを使用して逆コンパイルしました。ただし、これにより抽象クラスが得られ、抽象クラスの具体的な実装を確認できませんでした (プロパティ「ssl.SocketFactory.provider」を使用してクラスを設定できることを発見しましたが、これは行われていませんjava.security で指定)。また、「javax.net.debug」プロパティを使用してログをオンにする方法を特定することもできませんでした (これはネイティブ メソッドに消えます)。

誰かが私が間違っているところを指摘できますか?

4

1 に答える 1

16

サポートされている (および有効になっている) 暗号スイートのリストは、SunJSSE プロバイダーのドキュメント ( for Java 6および for Java 7 ) で入手できます。リストの順序は実際には異なります。

サポートされている暗号スイートのリストの順序に注意を払ったことがないことを認めなければなりません。重要なのは、*enabled 暗号スイート リストです。

コード自体に興味がある場合は、 および で見つける必要がsun.security.ssl.SSLContextImplありsun.security.ssl.CipherSuiteます。これらのクラスは Sun JSSE 実装の一部であり、パブリック Java API の一部ではないことに注意してください。

デバッグに関しては、必要なパラメーターは JSSE リファレンス ガイド のデバッグ セクションにあります。

于 2012-05-07T19:37:35.887 に答える