Lezione 3 di 4 · 7 min
DNS cifrato: DoH e DoT
Due standard racchiudono le ricerche DNS in una cifratura. Cosa nasconde davvero, cosa ancora non nasconde, e come macOS lo supporta.
La lezione precedente ha descritto una ricerca DNS semplice come una cartolina: leggibile da chiunque la maneggi lungo il percorso. Esistono due standard IETF per mettere quella cartolina in una busta: DNS su TLS (DoT, RFC 7858) e DNS su HTTPS (DoH, RFC 8484). Entrambi cifrano la stessa ricerca; differiscono principalmente nel modo in cui la trasportano.
DNS su TLS
RFC 7858 dichiara direttamente il suo obiettivo: “la cifratura fornita da TLS elimina le opportunità di intercettazione e manomissione sul percorso delle query DNS”, affrontando il fatto che “quasi tutte le query DNS vengono inviate non cifrate, il che le rende vulnerabili all’intercettazione da parte di un aggressore.” DoT usa una propria porta dedicata, la 853, invece della solita porta 53. La RFC spiega perché: “questa raccomandazione contro l’uso della porta 53 per DNS su TLS serve a evitare complicazioni nello scegliere l’uso o il non uso di TLS e a ridurre il rischio di attacchi di downgrade.”
DNS su HTTPS
RFC 8484 prende una strada diversa: “ogni coppia query-risposta DNS viene mappata in uno scambio HTTP”, trasportata sulla stessa porta 443 usata dal normale traffico HTTPS. La RFC nota che questo ha un vantaggio collaterale: “la porta predefinita 443 di HTTPS e la capacità di mescolare il traffico DoH con altro traffico HTTPS sulla stessa connessione possono scoraggiare i dispositivi non privilegiati sul percorso dall’interferire con le operazioni DNS”, perché una ricerca è più difficile da isolare e bloccare quando assomiglia a qualsiasi altra richiesta web.
| DNS su TLS (DoT) | DNS su HTTPS (DoH) | |
|---|---|---|
| Porta | 853, dedicata a DoT | 443, condivisa con il normale traffico HTTPS |
| Visibile sulla rete come | Il suo traffico distinto (facile da individuare e, se una rete sceglie di farlo, bloccare) | Mescolato con la normale navigazione web |
Cosa nasconde la cifratura, e cosa ancora non nasconde
Entrambi gli standard impediscono a un operatore di rete o a un intercettatore Wi-Fi di leggere le tue ricerche in transito. Nessuno dei due le nasconde dal resolver a cui le hai inviate. RFC 8484 è esplicita sul fatto che DoH non cambia cosa può vedere il server stesso: nota che “vari trasporti delle query e risposte DNS forniscono dati che possono essere usati per correlare le richieste”, e che meccanismi web ordinari come indirizzi IP del client, cookie e informazioni di sessione TLS significano che “non risulta che DoH introduca nuove preoccupazioni oltre a quelle associate a HTTPS” lato server. RFC 7858 nota allo stesso modo che DoT “non affronta altri problemi di sicurezza nel DNS” e che “anche con messaggi cifrati, una parte ben posizionata potrebbe essere in grado di raccogliere alcuni dettagli da un’analisi dei tempi e delle dimensioni dei messaggi.” In breve: il DNS cifrato sposta chi vede le tue ricerche verso l’operatore del resolver che hai scelto, non elimina del tutto la visibilità.
C’è una seconda lacuna che vale la pena conoscere. Cifrare la ricerca DNS non nasconde di per sé a quale sito ti connetti poi: l’handshake TLS che segue normalmente include il nome host in chiaro. Come spiega Cloudflare a proposito della Server Name Indication (SNI), “SNI include il nome host nel messaggio Client Hello, ovvero il primissimo passo di un handshake TLS” — inviato prima che la cifratura sia stabilita. Un’estensione chiamata Encrypted SNI (ESNI), spiega la stessa fonte, “si aggiunge all’estensione SNI cifrando la parte SNI del Client Hello”, il che “impedisce a chiunque origli tra client e server di vedere quale certificato sta richiedendo il client.” Il supporto per nascondere SNI dipende ancora dall’accordo sia del browser che del sito, e non è ancora il modo in cui funziona ogni connessione.
Come lo supporta macOS
Apple documenta una configurazione Impostazioni DNS per Mac, iPhone e iPad che fa esattamente questo: permette a un dispositivo di “instradare le query DNS di un dispositivo attraverso un server DNS cifrato usando DNS su HTTPS o DNS su TLS.” Viene fornita come profilo di configurazione, che può limitare il resolver cifrato a domini specifici tramite “domini di corrispondenza supplementari”, oppure applicarsi solo su certe reti usando “regole su richiesta” che possono corrispondere a cose come l’SSID della rete.
Da ricordare
- DoT (RFC 7858) cifra il DNS con TLS su una porta dedicata, la 853; DoH (RFC 8484) lo cifra e lo trasporta sulla solita porta di HTTPS, la 443, mescolandolo con altro traffico web.
- Entrambi impediscono agli intercettatori sul percorso di rete di leggere le tue ricerche.
- Nessuno dei due nasconde le tue ricerche dal resolver a cui le hai inviate: la stessa RFC 8484 dice che non risulta che DoH introduca nuove preoccupazioni oltre a quelle associate a HTTPS lato server.
- Anche con il DNS cifrato, l’handshake TLS per il sito stesso rivela normalmente il suo nome host in chiaro (SNI), a meno che non venga usata un’estensione come Encrypted SNI.
- macOS e iOS supportano il DNS cifrato tramite un profilo di configurazione documentato Impostazioni DNS, che può specificare DoH o DoT e limitarlo a certi domini o reti.
Mettiti alla prova
1. Quale porta usa DNS su TLS (DoT), e perché una dedicata?
- La porta 80, la stessa di HTTP
- La porta 853, scelta in parte per evitare attacchi di downgrade che potrebbero derivare dall’ambiguità sulla porta 53 — Esatto.
- La porta 25, la stessa dell’email
- Una porta casuale ogni volta
RFC 7858 assegna a DoT una propria porta, la 853, spiegando che evitare la porta 53 per essa “riduce il rischio di attacchi di downgrade.”
2. Perché DNS su HTTPS (DoH) usa la porta 443?
- Perché è l’unica porta libera
- Perché condividere la porta 443 con il normale traffico HTTPS rende DoH più difficile da isolare e bloccare — Esatto.
- Perché la porta 443 è più veloce di altre porte
- DoH non usa la porta 443
RFC 8484 nota che mescolare DoH con il normale traffico HTTPS sulla porta 443 “può scoraggiare i dispositivi non privilegiati sul percorso dall’interferire con le operazioni DNS.”
3. DoH o DoT nascondono le tue ricerche DNS dal resolver a cui le invii?
- Sì, completamente
- No, nascondono le ricerche dal percorso di rete, ma l’operatore del resolver vede comunque le query — Esatto.
- Solo DoH le nasconde dal resolver
- Solo DoT le nasconde dal resolver
RFC 8484 afferma che non risulta che DoH introduca nuove preoccupazioni oltre a quelle associate a HTTPS lato server, il che significa che l’operatore del resolver resta in grado di vedere e correlare le query.
4. Anche con il DNS cifrato, cosa rivela comunemente ancora a quale sito ti stai connettendo?
- La password del Wi-Fi
- Il nome host inviato in chiaro nel Client Hello TLS (SNI), a meno che non venga usata un’estensione come Encrypted SNI — Esatto.
- L’indirizzo IP privato del tuo Mac
- La cache del resolver DNS
Cloudflare spiega che “SNI include il nome host nel messaggio Client Hello” prima che inizi la cifratura; Encrypted SNI (ESNI) è progettato per nasconderlo, ma non è ancora universale.
Mettilo in pratica con FireAI
Metti in pratica questa lezione sul tuo Mac.
- Ispezione approfondita, senza decifrare nulla — Ottieni un dettaglio reale su una connessione sicura senza che FireAI legga mai cosa c’è dentro.
- Liste di minacce (facoltative) — Confronta il tuo traffico con dati pubblici sulle minacce senza inviarlo da nessuna parte.
- Blocca un’app da internet, o solo un’azienda o un dominio per lei — Taglia esattamente ciò che intendi — l’intera app, o solo un’azienda con cui comunica.
Fonti
- RFC 7858: Specification for DNS over Transport Layer Security (TLS)
- RFC 8484: DNS Queries over HTTPS (DoH)
- Cloudflare Learning: DNS over TLS vs. DNS over HTTPS
- Cloudflare Learning: What is SNI? / Encrypted Client Hello
- Apple Platform Deployment: DNS settings declarative configuration for Apple devices
Mettilo in pratica sul tuo Mac
Prova tutte le funzioni gratis per 17 giorni, senza carta.