Wir verfügen über einen Client / Server, auf dem TLS v1.0 ausgeführt wird, und erhalten nach dem ersten Handshake weiterhin den Encryption Alert 21 vom Client. Sie verwenden Verschlüsselungsblockverkettung, und ich habe gelesen, wo die Blockverschlüsselungseingangslänge sich von etwas anderem als einem Vielfachen der Blocklänge unterscheidet, die Warnung "Entschlüsselung fehlgeschlagen" hervorrufen würde, aber wie würde ich diese Werte finden, um zu ermitteln, ob dies wirklich der Fall ist Ursache für die Warnung?
Ich habe die Handshake-Sequenz unten angehängt ... Danke ... Ich schätze es
villican - Bitte füge keine Änderungen hinzu, die nichts helfen.
Rory Alsop vor 8 Jahren
1
Sie verstehen, dass "TLS v1.0" im Grunde richtig kaputt ist? Gibt es einen Grund, warum Ihr Kunde für 1983 hält?
Ramhound vor 8 Jahren
0
@Ramhound: Der TLS 1.0-Standard wurde erstmals 1999 veröffentlicht.
bwDraco vor 8 Jahren
2
@ bwDraco - ** Ich weiß wirklich, dass ................ ** Sie haben den Punkt dieser zweiten, nicht zusammenhängenden Frage völlig verfehlt. "GMT Unix Time: 25. Juni 1983 13: 56: 23.000000000 Eastern Daylight Time". Daher meine Frage, warum der Kunde seinen 25. Juni 1983 um 13:53 Uhr GMT als das Gleiche in diesem Beitrag meint. Die Zeit ist korrekt (oder nahe genug), aber das Datum ist nicht korrekt. Es ist derzeit 14:39 Uhr GMT, daher weiß ich, dass es nahe genug ist.
Ramhound vor 8 Jahren
0
21 ist nicht die Alarmnummer, und dies ist kein "Verschlüsselungsalarm". [21 ist der Datensatztyp * aller * Alarmdatensätze] (http://tools.ietf.org/html/rfc5246#section-6.2), aber der Alarmdatensatz ist verschlüsselt. Wireshark kann ihn nicht entschlüsseln und zeigt "Encrypted Warnen". Es kann sich um eine normale close_notify handeln, aber überprüfen Sie die Serverprotokolle, um herauszufinden, ob ein Fehler vorliegt und wenn ja, was.
dave_thompson_085 vor 8 Jahren
1
Korrektur: Beim erneuten Lesen sehe ich, dass der Client eine Warnung ausgibt. Überprüfen Sie also die * Client * -Protokolle
dave_thompson_085 vor 8 Jahren
0
Was jetzt? Wir wissen also, dass es sich um eine Warnung handelt, aber welche Art von? Ein AlertDescriptionFeld ist ein Byte breit . Also welches ist das? Und leider ist die Antwort ...
Alert Message: Encrypted Alert
... wir wissen es einfach nicht. Es ist verschlüsselt.
F: Aber können wir diesen Paketdump nicht einfach entschlüsseln, wenn wir den privaten Schlüssel für das Zertifikat verwenden? A: Nein. Diese Verbindung verwendete eine kurzlebige Verschlüsselungssammlung (dh Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033), sie ist vorwärtssicher), und der Massenverschlüsselungsschlüssel für die Sitzung kann nicht mit dem privaten Schlüssel des Zertifikats rekonstruiert werden.
Nimm eine neue Spur.
Machen Sie eine weitere Spur, aber stellen Sie sicher, dass Sie sie später wieder entschlüsseln können. Dazu müssen Sie entweder den privaten Schlüssel bereitstellen und eine nicht nach vorne gesicherte Suite erzwingen (alles ohne DHEoder ECDHE im Namen) oder Ihre Software den Sitzungsschlüssel irgendwo ablegen. ( Chrome und Firefox können dies tun. )
Damit Wireshark mithilfe des Server-Schlüssels entschlüsseln kann, benötigen Sie Suite ** ohne DH ** (einschließlich ECDH). Streng genommen sind nur DHE und ECDHE (und EC / DH_anon, selten verwendet) * ephemeral *, und DH und ECDH könnten mit dem Server-Schlüssel entschlüsselt werden, aber Wireshark macht dies nicht. (Und es macht viel Arbeit, obwohl ich gelegentlich ein oder zwei Bilder manuell gemacht habe.)
dave_thompson_085 vor 8 Jahren
1
@ dave_thompson_085 danke. Ich habe keine Ahnung, warum ich "EC" geschrieben habe.
StackzOfZtuff vor 8 Jahren
0
4
jww
... wir haben einen Client / Server, auf dem TLS v1.0 ausgeführt wird, und erhalten nach dem ersten Handshake immer wieder den Encryption Alert 21 vom Client ...
Es sieht so aus, als sei der Client nicht in Betrieb und es muss ein Upgrade durchgeführt werden.
decryption_failed_RESERVED Diese Warnung wurde in einigen früheren TLS-Versionen verwendet und hat möglicherweise Angriffe auf den CBC-Modus [CBCATT] zugelassen. Es darf NICHT von kompatiblen Implementierungen gesendet werden.
Es ist nicht bekannt, dass die Alarmnummer 21 ist und wahrscheinlich auch nicht. siehe meinen Kommentar zur Frage. Beachten Sie, dass der Client anscheinend eine 1 / N-1-Fragmentierung durchführt, die als Reaktion auf BEAST nach Ende 2011 weitgehend implementiert wurde. Beachten Sie, dass das Zusammenführen von Alarmen 20 = MAC und 21 = 'decrypt' = CBC zum Blockieren des expliziten Orakels bereits empfohlen wurde 1.1 im Jahr 2009, und das war, nachdem viele defacto es in 1.0 implementiert hatten.
dave_thompson_085 vor 8 Jahren
0