L'URL completo (nome host e percorso) è solo all'interno del protocollo HTTP ed è quindi crittografato dal livello TLS. Inoltre, tutte le intestazioni e il carico utile HTTP di richiesta e risposta sono crittografati end-to-end. Tuttavia, la parte hostname dell'URL si trova di solito nella richiesta CONNECT quando si utilizza un proxy HTTP non trasparente, a meno che il client stesso effettui la ricerca DNS. Con un proxy SOCKS la situazione è simile, cioè il client fornisce l'IP di destinazione (SOCKS4) o potrebbe fornire il nome host (SOCKS5). Inoltre, il nome host è solitamente incluso nell'handshake TLS anche in chiaro (SNI), indipendentemente dall'utilizzo di un proxy o meno.
Ciò significa che è noto al provider del proxy (forse l'ISP) che ospita l'accesso ma non la pagina su questo host. Inoltre ogni hop dopo che il proxy conosce almeno l'IP di destinazione perché è necessario per il routing. E se viene utilizzato SNI (ad esempio, nella maggior parte dei casi) qualsiasi hop può anche trovare il nome host del target.
In breve: l'obiettivo di TLS non è quello di mantenere la privacy o consentire connessioni anonime. L'obiettivo è proteggere i dati trasferiti tra client e server dallo sniffing e dalla modifica.
And who does the DNS lookup?
Con un proxy SOCKS4 deve essere eseguito dal client (browser). Con un proxy SOCKS5 o un proxy HTTP è possibile farlo e solitamente sarà eseguito dal proxy poiché questi protocolli possono trasportare il nome host invece dell'indirizzo IP.
Modifica: non ero a conoscenza del fatto che le versioni recenti di Firefox e Chrome in realtà supportino la connessione a un proxy HTTP con HTTPS. In questo caso, solo la connessione al proxy è visibile a qualsiasi hop prima del proxy e quindi l'URL incluso il nome host e l'indirizzo IP è completamente protetto sul percorso del proxy. Su e dopo il proxy questa protezione TLS in aggiunta viene rimossa e quindi il nome host e l'indirizzo IP di destinazione sono nuovamente visibili come descritto sopra. Suppongo che il browser invii il nome host e non l'indirizzo IP al proxy (perché questo viene fatto anche con un normale proxy HTTP), quindi la ricerca DNS verrà eseguita solo sul proxy.