2016-09-16 5 views
0

これは本質的に私のother question about DH parameters(これは回答が得られませんでした)と同じですが、その間に送信されたTLSサーバーの鍵交換メッセージに関する情報を取得することに興味があります。 TLSハンドシェイクTLSサーバーの鍵交換メッセージの詳細

これらのメッセージ(またはネゴシエートされた一時キーのような情報)は、Java APIを通じてまったく利用できますか? Java SSLSocketFactoryを使用してSSLSocketを取得し、それを使用して接続しています。このレベルに落ち着かせるためには、Apache HTTPクライアントなどのレイヤー上に他のAPIはレイヤー化されていません。

Javaがこの情報をまったく公開しているかどうかはわかりません。私はHandshakeCompletedListenerを使ってみましたが、それは私に求めている情報を私に提供してくれないようです。

これを実行できるかどうかは誰にもわかりますか?

+0

メッセージはJava APIでは使用できませんが、結果の暗号スイートはSSLSession経由で利用できます。 – EJP

+0

@EJP暗号スイートを見つけるのに問題はありません。簡単です。 *鍵交換の詳細を知ることができません。たとえば、DHE鍵交換を使用している場合、私は接続の一時的な鍵に手を差し伸べたいと思います。これは暗号スイート定義の一部ではありません。 –

答えて

0

メッセージはAPI経由では利用できませんが、libpcapを使用してパケットを取得し、それを介して受け取ったハンドシェイクデータを解析してプログラムに格納することができます。

ここからの参照に続きます。http://download.java.net/jdk7/archive/b123/docs/api/javax/net/ssl/SSLSocket.html APIからDHパラメータを印刷することはできません。

+0

'libpcap'を使うことは本当にオプションではありませんが、創造的な提案に感謝します。 :) –

+0

Javaデバッグオプションを確認しましたか?http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html –

+0

ええ、私はそれを読んだだけですが、 'stderr'にダンプします。 'stderr'を読むことも悪いテクニックです。私はちょうどこれを行かせなければならないかもしれない。 :( –