Ich greife über einen Java-HTTP-Client mit TLS 1.3 auf den TLS 1.3-Testserver " https://tls13.pinterjann.is " zu. Alles scheint gut zu funktionieren, wie die HTML-Antwort zeigt:
Was ich nicht verstehe: Warum wird Wireshark in der Übersicht Protokoll TLSv1.3 angezeigt, aber in der Detailversion TLS 1.2?
Zeigt Wireshark nur die falsche Version an oder verwende ich tatsächlich TLS 1.2?
Danke im Voraus für deine Unterstützung.
Antworten:
Entschuldigung, für die Verwirrung fehlte mir die genaue TLS 1.3-Semantik: Beispielsweise muss im Client Hello das Feld "version" den festen Wert 0x0303 (TLS 1.2) enthalten, während die bevorzugte Version in der unterstützten Erweiterung "unterstützt" ist Versionen ".
Ab RFC 8446 (TLS 1.3-Spezifikation):
Dies stimmt mit dem überein, was Wireshark anzeigt:
quelle
Wireshark meldet TLS 1.3 in der Protokollspalte, da Server Hello eine Erweiterung für unterstützte Versionen mit TLS 1.3 enthält.
Denken Sie daran, dass TLS-Sitzungen mit einem Handshake beginnen, um Parameter wie die Protokollversion und Chiffren auszuhandeln. Der Client sendet eine Client Hello-Handshake-Nachricht in einem TLS-Datensatz, der Folgendes enthält:
Der Server sendet eine Server Hello-Handshake-Nachricht mit:
In TLS 1.2 sendet der Client eine Reihe unterstützter Versionen, während ein TLS 1.3-Client eine Liste der unterstützten Versionen sendet. Der Server wählt dann eine einzelne Version aus, verwendet jedoch aus Kompatibilitätsgründen ein neues Feld zur Auswahl von TLS 1.3 oder neuer.
(Selbst wenn ein Client Unterstützung für eine bestimmte Version ankündigt (z. B. über eine TLS-Datensatzversion mit "TLS 1.0"), kann der Handshake dennoch fehlschlagen, wenn der Server dieser niedrigen Version zustimmt.)
Noch etwas zu beachten: Wireshark versucht, ein Paket sofort nach dem Empfang zu interpretieren. Zum Zeitpunkt des Empfangs des Client Hello kennt er die endgültige Version nicht und nimmt daher die TLS-Datensatzversion an. Wenn der Server Hello empfangen wird, kann er die Version entsprechend anpassen:
Bei einer Dissektion mit zwei Durchgängen (die auch die Wireshark-GUI enthält) wird die vereinbarte Version bekannt, wenn die Ergebnisse des zweiten Durchgangs gedruckt werden:
Die oben verwendete Testaufnahme: https://github.com/wireshark/wireshark/blob/master/test/captures/tls13-rfc8446.pcap
quelle