2016-09-16 4 views
0

Dies ist im Wesentlichen das gleiche wie meine other question about DH parameters (die keine Antworten erhalten hat), aber ich bin daran interessiert, Informationen über die TLS-Serverschlüsselaustauschnachricht (en) zu erhalten, die während gesendet werden der TLS-Handshake.Details der TLS-Serverschlüsselaustauschnachricht

Sind diese Nachrichten - oder die Informationen, die von ihnen wie die ausgehandelten ephemeren Schlüssel kommen - überhaupt über die Java-API verfügbar? Ich verwende Java SSLSocketFactory, um eine SSLSocket zu erhalten und dann die Verbindung zu verwenden; Es gibt keine anderen APIs, die darüber liegen (wie Apache http-client), die ich durchbrechen muss, um auf diese Ebene zu gelangen.

Ich bin nur nicht sicher, ob Java diese Informationen überhaupt verfügbar macht. Ich habe versucht, eine HandshakeCompletedListener zu verwenden, aber das scheint mir keine der Informationen zu liefern, die ich suche.

Weiß jemand, ob/wie dies getan werden kann?

+0

Die Nachrichten sind nicht über die Java-API verfügbar, die resultierende Verschlüsselungssuite ist jedoch über die SSLSession verfügbar. – EJP

+0

@EJP Ich habe keine Probleme, die Cipher Suite zu finden - das ist einfach. Ich habe Probleme, die Details des * Schlüsselaustauschs * zu erhalten. Zum Beispiel möchte ich, wenn ich den DHE-Schlüsselaustausch verwende, den ephemeren Schlüssel für die Verbindung in die Hände bekommen. Das ist kein Teil der Cipher Suite Definition. –

Antwort

0

Die Nachrichten sind nicht über die API verfügbar. Sie können jedoch libpcap verwenden, um Pakete zu erfassen und dann die durch sie übertragenen Handshake-Daten zu analysieren und in Ihrem Programm zu speichern.

Nach der Referenz von hier http://download.java.net/jdk7/archive/b123/docs/api/javax/net/ssl/SSLSocket.html Ich glaube nicht, dass es möglich ist, die DH-Parameter aus der API zu drucken.

+0

Die Verwendung von 'libpcap' ist nicht wirklich eine Option, aber danke für den kreativen Vorschlag. :) –

+0

Haben Sie versucht, die Java-Debug-Optionen zu überprüfen http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html –

+0

Ja, ich habe das gelesen, aber es einfach stürzt in 'stderr' ab. 'Stderr' zu lesen ist auch eine schlechte Technik. Ich muss es vielleicht einfach gehen lassen. :( –

Verwandte Themen