Unterschiedliche TLS-Versionen im ClientHello vom selben Client

540
user9371654

Ich habe einen Python-Client. Verwenden Sie ssl.SSLContext()( Dokumentation hier ) und set_ciphers(myciphers)(wobei Myciphers meine Liste von Chiffriersuiten ist, die ich bei jedem Handshake, dh bei jeder Socket-Verbindung, ändern). Ich kann die Liste der Client-Chiffriersätze kontrollieren. Die Standardeinstellung SSLContextin Python deaktiviert SSL 2.0 und SSL 3.0 standardmäßig und ich ändere keine Änderungen an den Versionen im Code meines Clients.

Ich schicke 3 Handshakes mit verschiedenen Chiffresuite-Listen auf die Website. Ich ändere die Version nicht.

In Wireshark, dem ClientHello in der Spalte "Protokoll", sehe ich verschiedene Versionen? Ich kontaktiere dieselbe Seite. Der Client ändert die Version nicht.

1) Können Sie mir bitte erklären, warum ich verschiedene TLS-Protokollversionen sehe? 2) Wenn dies nicht die tatsächliche Version ist, die der Client anbietet (die sollte TLS 1.2 sein), wo kann ich die aktuelle Client-angebotene TLS-Version erhalten?

Hier ist ein Screenshot zur Verdeutlichung (bitte entschuldigen Sie die Form, aber um die Sites und PC-Namen zu anonymisieren): enter image description here

BEARBEITEN : Obwohl in der Spalte "ClientHello" TLSv1 angezeigt wird, wird beim Klicken auf den Datensatz der erweiterte Bereich angezeigt. Ich sehe es:

> Secure Socket Layer > TLSv1.2 Record Layer: Handshake Protocol: Client Hello 

Ich bin verwirrt. Es ist mir sehr wichtig sicherzustellen, dass mein Kunde immer TLS 1.2 versucht. Ich habe den Standard des Pythons gelassen, der dies gemäß seiner Dokumentation tun sollte.

BEARBEITEN 2: Ich schaue Filter an, um TLS 1.0 zu sehen (wie der Bildschirm zeigt, da ClientHellos TLSv1 sendet). Aber mit diesem Ansichtsfilter:

ssl.handshake.version==0x0301 

Es ClientHellerscheinen mir keine Mitteilungen. Nur einige ServerHello. Bitte erkläre es mir. Das ist ziemlich verwirrend.

0
Es scheint möglich, dass Sie einen Fehler im Wireshark-Dissektor für TLS gefunden haben (oder welcher Code den Protokollnamen in der Spalte enthält, die Sie im Zusammenfassungsfenster anzeigen). Kannst du eine bestimmte Chiffre in der Chiffre-Suite finden, die sie auslöst? Möglicherweise wurden einige Verschlüsselungen vor TLS 1.2 nicht mehr unterstützt. Wenn also diese veralteten Verschlüsselungen auftauchen, wird in dieser Zusammenfassungsspalte angegeben, dass es sich um TLS 1.0 handeln muss. Spiff vor 6 Jahren 0

0 Antworten auf die Frage