Dal momento che nessuno ha fornito una cattura del filo, eccone uno.
Il nome del server (la parte del dominio dell'URL) è presentato nel ClientHello
pacchetto, in testo semplice .
Quanto segue mostra una richiesta del browser a:
https://i.stack.imgur.com/path/?some=parameters&go=here
Vedi questa risposta per ulteriori informazioni sui campi della versione TLS (ce ne sono 3 - non versioni, campi che contengono ciascuno un numero di versione!)
Da https://www.ietf.org/rfc/rfc3546.txt :
3.1. Indicazione nome server
[TLS] non fornisce un meccanismo per un client per comunicare a un server il nome del server che sta contattando. Potrebbe essere desiderabile che i clienti forniscano queste informazioni per facilitare connessioni sicure ai server che ospitano più server "virtuali" a un singolo indirizzo di rete sottostante.
Per fornire il nome del server, i client POSSONO includere un'estensione di tipo "nome_server" nel ciao (esteso) del client.
In breve:
L'FQDN (la parte del dominio dell'URL) PUO ' essere trasmesso in chiaro all'interno del ClientHello
pacchetto se viene utilizzata l'estensione SNI
Il resto dell'URL ( /path/?some=parameters&go=here
) non ha attività commerciali ClientHello
poiché l'URL della richiesta è una cosa HTTP (OSI Layer 7), quindi non verrà mai visualizzato in un handshake TLS (Layer 4 o 5). Ciò verrà successivamente in una GET /path/?some=parameters&go=here HTTP/1.1
richiesta HTTP, DOPO che il canale TLS sicuro è stato stabilito.
SINTESI
Il nome di dominio PUO 'essere trasmesso in chiaro (se l'estensione SNI è utilizzata nell'handshake TLS) ma l'URL (percorso e parametri) è sempre crittografato.
AGGIORNAMENTO MARZO 2019
Grazie carlin.scott per averne parlato .
Il payload nell'estensione SNI può ora essere crittografato tramite questo progetto di proposta RFC . Questa funzionalità esiste solo in TLS 1.3 (come opzione e spetta ad entrambe le estremità implementarla) e non esiste retrocompatibilità con TLS 1.2 e versioni precedenti.
CloudFlare lo sta facendo e puoi leggere di più sugli interni qui -
Se il pollo deve venire prima dell'uovo, dove lo metti?
In pratica ciò significa che invece di trasmettere il nome di dominio completo in testo normale (come mostra la cattura di Wireshark), ora è crittografato.
NOTA: si tratta dell'aspetto della privacy più di quello della sicurezza poiché una ricerca DNS inversa può comunque rivelare l'host di destinazione previsto.