Lektion 3 av 4 · 7 min
Krypterad DNS: DoH och DoT
Två standarder sveper in DNS-uppslagningar i kryptering. Vad det faktiskt döljer, vad det fortfarande inte gör, och hur macOS stöder det.
Föregående lektion beskrev en vanlig DNS-uppslagning som ett vykort: läsbart för vem som helst som hanterar det på vägen. Två IETF-standarder finns för att stoppa in det vykortet i ett kuvert: DNS over TLS (DoT, RFC 7858) och DNS over HTTPS (DoH, RFC 8484). Båda krypterar samma uppslagning; de skiljer sig huvudsakligen i hur de bär den.
DNS over TLS
RFC 7858 anger sitt mål direkt: "kryptering som tillhandahålls av TLS eliminerar möjligheter för avlyssning och manipulation på vägen av DNS-frågor", vilket adresserar faktumet att "nästan alla DNS-frågor skickas okrypterade, vilket gör dem sårbara för avlyssning av en angripare". DoT använder sin egen dedikerade port, 853, snarare än den vanliga port 53. RFC:n förklarar varför: "denna rekommendation mot användning av port 53 för DNS over TLS är för att undvika komplikationer vid val av användning eller icke-användning av TLS och för att minska risken för nedgraderingsattacker".
DNS over HTTPS
RFC 8484 tar en annan väg: "varje DNS-fråga-svar-par mappas till ett HTTP-utbyte", buret över samma port 443 som vanlig HTTPS-trafik använder. RFC:n noterar att detta har en sidofördel: "HTTPS standardport 443 och möjligheten att blanda DoH-trafik med annan HTTPS-trafik på samma anslutning kan avskräcka obehöriga enheter på vägen från att störa DNS-verksamheten", eftersom en uppslagning är svårare att peka ut och blockera när den ser ut som vilken annan webbförfrågan som helst.
| DNS over TLS (DoT) | DNS over HTTPS (DoH) | |
|---|---|---|
| Port | 853, dedikerad för DoT | 443, delad med vanlig HTTPS-trafik |
| Synlig i nätverket som | Sin egen distinkta trafik (lätt att upptäcka och, om ett nätverk väljer det, blockera) | Inblandad med vanlig webbsurfning |
Vad kryptering döljer, och vad den fortfarande inte gör
Båda standarderna hindrar en nätverksoperatör eller Wi-Fi-avlyssnare från att läsa dina uppslagningar under transport. Ingen av dem döljer dem för resolvern du skickade dem till. RFC 8484 är tydlig med att DoH inte förändrar vad servern själv kan se: den noterar att "olika transporter av DNS-frågor och svar tillhandahåller faktiskt data som kan användas för att korrelera förfrågningar", och att vanlig webbmekanik som klient-IP-adresser, kakor och TLS-sessionsinformation innebär att "DoH är inte känt för att introducera nya problem utöver de som förknippas med HTTPS" på serversidan. RFC 7858 noterar på liknande sätt att DoT "inte adresserar andra säkerhetsproblem i DNS" och att "även med krypterade meddelanden kan en välplacerad part kunna utvinna vissa detaljer från en analys av meddelandetider och storlekar". Kort sagt: krypterad DNS flyttar tillbaka vem som ser dina uppslagningar till resolveroperatören du valde, den tar inte bort synligheten helt.
Det finns ett andra gap värt att känna till. Att kryptera DNS-uppslagningen döljer inte i sig vilken sida du sedan ansluter till: TLS-handskakningen som följer inkluderar normalt värdnamnet i klartext. Som Cloudflares förklaring av Server Name Indication (SNI) uttrycker det, "SNI inkluderar värdnamnet i Client Hello-meddelandet, eller det allra första steget i en TLS-handskakning" — skickat innan kryptering upprättas. En utökning kallad Encrypted SNI (ESNI), enligt samma källa, "bygger vidare på SNI-utökningen genom att kryptera SNI-delen av Client Hello", vilket "förhindrar att någon som snokar mellan klienten och servern kan se vilket certifikat klienten begär". Stöd för att dölja SNI beror fortfarande på att både webbläsaren och webbplatsen går med på det, och är ännu inte hur varje anslutning fungerar.
Hur macOS stöder det
Apple dokumenterar en DNS-inställningskonfiguration för Mac, iPhone och iPad som gör exakt detta: den låter en enhet "dirigera en enhets DNS-frågor genom en krypterad DNS-server med DNS over HTTPS eller DNS over TLS". Den levereras som en konfigurationsprofil, som kan begränsa den krypterade resolvern till specifika domäner genom "kompletterande matchningsdomäner", eller tillämpas endast på vissa nätverk med hjälp av "on-demand-regler" som kan matcha saker som nätverkets SSID.
Viktigt att minnas
- DoT (RFC 7858) krypterar DNS med TLS på en dedikerad port, 853; DoH (RFC 8484) krypterar det och bär det över HTTPS vanliga port, 443, inblandat med annan webbtrafik.
- Båda hindrar avlyssnare på nätverksvägen från att läsa dina uppslagningar.
- Ingen av dem döljer dina uppslagningar för resolvern du skickade dem till: RFC 8484 säger själv att DoH "inte är känt för att introducera nya problem utöver de som förknippas med HTTPS" på serversidan.
- Även med krypterad DNS avslöjar TLS-handskakningen för själva webbplatsen normalt dess värdnamn i klartext (SNI), om inte en utökning som Encrypted SNI används.
- macOS och iOS stöder krypterad DNS genom en dokumenterad DNS-inställningskonfigurationsprofil, som kan ange DoH eller DoT och begränsa den till vissa domäner eller nätverk.
Testa dig själv
1. Vilken port använder DNS over TLS (DoT), och varför en dedikerad?
- Port 80, samma som HTTP
- Port 853, vald delvis för att undvika nedgraderingsattacker som skulle kunna komma från tvetydighet på port 53 — Rätt.
- Port 25, samma som e-post
- En slumpmässig port varje gång
RFC 7858 tilldelar DoT en egen port, 853, och förklarar att undvikande av port 53 för den "minskar risken för nedgraderingsattacker".
2. Varför använder DNS over HTTPS (DoH) port 443?
- Eftersom det är den enda lediga porten
- Eftersom delning av port 443 med vanlig HTTPS-trafik gör DoH svårare att peka ut och blockera — Rätt.
- Eftersom port 443 är snabbare än andra portar
- DoH använder inte port 443
RFC 8484 noterar att blandning av DoH med vanlig HTTPS-trafik på port 443 "kan avskräcka obehöriga enheter på vägen från att störa DNS-verksamheten".
3. Döljer DoH eller DoT dina DNS-uppslagningar för resolvern du skickar dem till?
- Ja, fullständigt
- Nej, de döljer uppslagningar från nätverksvägen, men resolveroperatören ser fortfarande frågorna — Rätt.
- Endast DoH döljer dem för resolvern
- Endast DoT döljer dem för resolvern
RFC 8484 anger att DoH "inte är känt för att introducera nya problem utöver de som förknippas med HTTPS" på serversidan, vilket betyder att resolveroperatören fortfarande kan se och korrelera frågor.
4. Även med krypterad DNS, vad avslöjar vanligtvis fortfarande vilken sida du ansluter till?
- Wi-Fi-lösenordet
- Värdnamnet skickat i klartext i TLS Client Hello (SNI), om inte en utökning som Encrypted SNI används — Rätt.
- Din Macs privata IP-adress
- DNS-resolverns cache
Cloudflare förklarar att "SNI inkluderar värdnamnet i Client Hello-meddelandet" innan kryptering påbörjas; Encrypted SNI (ESNI) är utformat för att dölja det, men är ännu inte universellt.
Testa det med FireAI
Omsätt den här lektionen i praktiken på din egen Mac.
- Djup granskning, utan att dekryptera något — Få riktiga detaljer om en säker anslutning utan att FireAI någonsin läser vad som finns inuti den.
- Hotlistor (valfritt) — Kontrollera din trafik mot offentlig hotdata utan att skicka den någonstans.
- Blockera en app från internet, eller bara ett företag eller en domän för den — Stäng av exakt det du menar — hela appen, eller bara ett företag den pratar med.
Källor
- 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
Omsätt det på din Mac
Prova alla funktioner gratis i 17 dagar, inget kort behövs.