J'accède au serveur de test TLS 1.3 " https://tls13.pinterjann.is " via un client java http utilisant TLS 1.3. Tout semble bien fonctionner comme l'indique la réponse html:
Ce que je ne comprends pas: pourquoi Wireshark apparaît-il dans l'aperçu Protocole TLSv1.3 mais dans les détails Version TLS 1.2?
Est-ce que Wireshark affiche simplement la mauvaise version ou est-ce que j'utilise réellement TLS 1.2?
Merci d'avance pour ton soutien.
Réponses:
Désolé, pour la confusion, il me manquait la sémantique exacte de TLS 1.3: Par exemple, dans le client Bonjour, le champ "version" doit contenir la valeur fixe 0x0303 (TLS 1.2), tandis que la version préférée est contenue dans l'extension "prise en charge" versions ".
De RFC 8446 (spécification TLS 1.3):
Cela correspond à ce que Wireshark affiche:
la source
Wireshark signale TLS 1.3 dans la colonne de protocole en raison de Server Hello contenant une extension de versions prises en charge avec TLS 1.3.
Rappelez-vous que les sessions TLS commencent par une poignée de main pour négocier des paramètres tels que la version du protocole et les chiffres. Le client envoie un message de négociation Client Hello dans un enregistrement TLS contenant:
Le serveur envoie un message d'établissement de liaison Server Hello avec:
Ainsi, dans TLS 1.2, le client envoie une gamme de versions prises en charge tandis qu'un client TLS 1.3 envoie une liste de versions prises en charge. Le serveur choisira alors une seule version, mais à des fins de compatibilité, il utilisera un nouveau champ pour sélectionner TLS 1.3 ou plus récent.
(Même si un client annonce la prise en charge d'une certaine version (par exemple via une version d'enregistrement TLS contenant "TLS 1.0"), il pourrait toujours échouer la poignée de main si le serveur accepte cette version basse.)
Une autre chose à savoir: Wireshark essaie d'interpréter un paquet immédiatement lors de sa réception. Au moment où le Client Hello est reçu, il ne connaîtra pas la version finale et assumera donc la version d'enregistrement TLS. Lorsque le serveur Hello est reçu, il peut ajuster la version en conséquence:
Dans une dissection en deux passes (qui inclut également l'interface graphique Wireshark), la version convenue sera connue lorsqu'elle imprimera les résultats de la deuxième passe:
Capture de test utilisée ci-dessus: https://github.com/wireshark/wireshark/blob/master/test/captures/tls13-rfc8446.pcap
la source