Puisque personne n'a fourni une capture de fil, en voici une.
Le nom du serveur (la partie domaine de l'URL) est présenté dans le ClientHello
paquet, en texte brut .
Ce qui suit montre une demande de navigateur pour:
https://i.stack.imgur.com/path/?some=parameters&go=here
Voir cette réponse pour en savoir plus sur les champs de version TLS (il y en a 3 - pas des versions, des champs qui contiennent chacun un numéro de version!)
Depuis https://www.ietf.org/rfc/rfc3546.txt :
3.1. Indication du nom du serveur
[TLS] ne fournit pas de mécanisme permettant à un client d'indiquer à un serveur le nom du serveur qu'il contacte. Il peut être souhaitable que les clients fournissent ces informations pour faciliter les connexions sécurisées aux serveurs qui hébergent plusieurs serveurs «virtuels» à une seule adresse réseau sous-jacente.
Afin de fournir le nom du serveur, les clients PEUVENT inclure une extension de type "nom_serveur" dans le bonjour du client (étendu).
En bref:
Le FQDN (la partie domaine de l'URL) PEUT être transmis en clair à l'intérieur du ClientHello
paquet si l'extension SNI est utilisée
Le reste de l'URL ( /path/?some=parameters&go=here
) n'a rien à faire ClientHello
puisque l'URL de demande est une chose HTTP (couche OSI 7), donc elle n'apparaîtra jamais dans une prise de contact TLS (couche 4 ou 5). Cela viendra plus tard dans une GET /path/?some=parameters&go=here HTTP/1.1
requête HTTP, APRÈS l' établissement du canal TLS sécurisé .
RÉSUMÉ
Le nom de domaine PEUT être transmis en clair (si l'extension SNI est utilisée dans la négociation TLS) mais l'URL (chemin et paramètres) est toujours cryptée.
MISE À JOUR DE MARS 2019
Merci carlin.scott d' avoir soulevé celui-ci.
La charge utile de l'extension SNI peut désormais être chiffrée via ce projet de proposition RFC . Cette capacité n'existe que dans TLS 1.3 (en option et c'est aux deux extrémités de l'implémenter) et il n'y a pas de compatibilité descendante avec TLS 1.2 et ci-dessous.
CloudFlare le fait et vous pouvez en savoir plus sur les éléments internes ici -
Si le poulet doit venir avant l'œuf, où mettez-vous le poulet?
En pratique, cela signifie qu'au lieu de transmettre le nom de domaine complet en texte brut (comme le montre la capture de Wireshark), il est désormais crypté.
REMARQUE: cela aborde l'aspect de la confidentialité plus que celui de la sécurité, car une recherche DNS inversée PEUT révéler l'hôte de destination souhaité de toute façon.