Ich habe wireshark verwendet, um mehrere SSL3.0-Verkehr zu beobachten und die Nachrichten zu entschlüsseln, die zwischen Client & amp; Server.
Und was ich gerade gefunden habe, ist sehr seltsam:
AFAIK, der Verschlüsselungsschlüssel, der MAC und der Verschlüsselungsalgorithmus, die bei der Berechnung der Client-Fertig- und Anwendungsdaten verwendet werden, die vom Client gesendet werden, sind genau dieselben.
Aber wenn ich den gleichen Client-Write-Key benutze, um Client-Encrypted zu verwenden (Abgeleitet von MasterSecret), um Anwendungsdaten zu verschlüsseln, bekomme ich das unterschiedliche Ergebnis von dem, was der Client (firefox) berechnet hat.
Das seltsame Verhalten ist auch beim Server passiert: Ich kann server-write-key (abgeleitet von MasterSecret) verwenden, um die Nachricht "server-finished" erfolgreich zu entschlüsseln, konnte aber keine andere verschlüsselte Nachricht vom Server entschlüsseln.
Also, können Sie mir bitte sagen, was mit dem Client-Write-Key & amp; Server-Schreib-Schlüssel? Haben sowohl der Client als auch der Server ihren Schreibschlüssel nach dem Senden der "Fertig" -Nachricht geändert?
PS: Ich habe den Client (Firefox) gezwungen, SSL V3.0, cipherSuite = TLS_RSA_WITH_RC4_128_MD5
zu verwendenIch habe die Antwort selbst herausgefunden: Die Funktion RC4, die ich benutzt habe, hat den Verschlüsselungszustand nicht gespeichert, während die SSL-Stromchiffre das erforderte. Ich habe eine RC4-Klasse verwendet und das Problem gelöst!
Tags und Links ssl encryption