Leksjon 3 av 4 · 7 min
Kryptert DNS: DoH og DoT
To standarder pakker DNS-oppslag inn i kryptering. Hva det faktisk skjuler, hva det fortsatt ikke gjør, og hvordan macOS støtter det.
Forrige leksjon beskrev et vanlig DNS-oppslag som et postkort: lesbart for alle som håndterer det underveis. To IETF-standarder finnes for å legge det postkortet i en konvolutt: DNS over TLS (DoT, RFC 7858) og DNS over HTTPS (DoH, RFC 8484). Begge krypterer det samme oppslaget; de skiller seg hovedsakelig i hvordan de fører det.
DNS over TLS
RFC 7858 fastslår målet direkte: «kryptering levert av TLS eliminerer muligheter for avlytting og manipulering underveis av DNS-spørringer», og adresserer det faktum at «nesten alle DNS-spørringer sendes ukryptert, noe som gjør dem sårbare for avlytting av en angriper.» DoT bruker sin egen dedikerte port, 853, i stedet for den vanlige port 53. RFC-en forklarer hvorfor: «denne anbefalingen mot bruk av port 53 for DNS over TLS er for å unngå komplikasjon i valget av å bruke eller ikke bruke TLS og for å redusere risikoen for nedgraderingsangrep.»
DNS over HTTPS
RFC 8484 tar en annen vei: «hvert DNS-spørring/svar-par kartlegges til en HTTP-utveksling», ført over den samme port 443 som vanlig HTTPS-trafikk bruker. RFC-en bemerker at dette har en sidefordel: «HTTPS-standardporten 443 og muligheten til å blande DoH-trafikk med annen HTTPS-trafikk på samme tilkobling kan avskrekke uprivilegerte enheter underveis fra å forstyrre DNS-operasjoner», fordi et oppslag er vanskeligere å plukke ut og blokkere når det ser ut som enhver annen nettforespørsel.
| DNS over TLS (DoT) | DNS over HTTPS (DoH) | |
|---|---|---|
| Port | 853, dedikert til DoT | 443, delt med vanlig HTTPS-trafikk |
| Synlig på nettverket som | Sin egen distinkte trafikk (lett å oppdage og, hvis et nettverk velger det, blokkere) | Blandet inn med vanlig nettlesing |
Hva kryptering skjuler, og hva den fortsatt ikke gjør
Begge standardene stopper en nettverksoperatør eller Wi-Fi-avlytter fra å lese oppslagene dine underveis. Ingen av dem skjuler dem fra resolveren du sendte dem til. RFC 8484 er eksplisitt på at DoH ikke endrer hva selve serveren kan se: den bemerker at «ulike transporter for DNS-spørringer og -svar faktisk gir data som kan brukes til å korrelere forespørsler», og at vanlige nettmekanismer som klient-IP-adresser, informasjonskapsler og TLS-øktinformasjon betyr at «DoH er ikke kjent for å introdusere nye bekymringer utover de assosiert med HTTPS» på serversiden. RFC 7858 bemerker på lignende vis at DoT «ikke adresserer andre sikkerhetsproblemer i DNS» og at «selv med krypterte meldinger kan en godt posisjonert part være i stand til å hente ut enkelte detaljer fra en analyse av meldingstidspunkt og -størrelser.» Kort sagt: kryptert DNS flytter hvem som ser oppslagene dine tilbake til resolveroperatøren du valgte, det fjerner ikke synligheten fullstendig.
Det finnes et andre gap verdt å kjenne til. Å kryptere DNS-oppslaget skjuler ikke i seg selv hvilket nettsted du deretter kobler til: TLS-håndtrykket som følger, inkluderer normalt vertsnavnet i klartekst. Som Cloudflares forklaring av Server Name Indication (SNI) sier det, «SNI inkluderer vertsnavnet i Client Hello-meldingen, eller det aller første steget i et TLS-håndtrykk» — sendt før kryptering er etablert. En utvidelse kalt Encrypted SNI (ESNI), forklarer samme kilde, «bygger videre på SNI-utvidelsen ved å kryptere SNI-delen av Client Hello», noe som «hindrer alle som snoker mellom klienten og serveren fra å se hvilket sertifikat klienten ber om.» Støtte for å skjule SNI avhenger fortsatt av at både nettleseren og nettstedet blir enige om det, og er ennå ikke slik hver tilkobling fungerer.
Hvordan macOS støtter det
Apple dokumenterer en DNS-innstillingskonfigurasjon for Mac, iPhone og iPad som gjør nettopp dette: den lar en enhet «rute en enhets DNS-spørringer gjennom en kryptert DNS-server ved bruk av DNS over HTTPS eller DNS over TLS.» Den leveres som en konfigurasjonsprofil, som kan begrense den krypterte resolveren til spesifikke domener gjennom «supplerende matchdomener», eller bare gjelde på bestemte nettverk ved bruk av «on-demand-regler» som kan matche ting som nettverkets SSID.
Det viktigste
- DoT (RFC 7858) krypterer DNS med TLS på en dedikert port, 853; DoH (RFC 8484) krypterer det og fører det over HTTPS sin vanlige port, 443, blandet inn med annen nettrafikk.
- Begge stopper avlyttere på nettverksstien fra å lese oppslagene dine.
- Ingen av dem skjuler oppslagene dine fra resolveren du sendte dem til: RFC 8484 selv sier at DoH «ikke er kjent for å introdusere nye bekymringer utover de assosiert med HTTPS» på serversiden.
- Selv med kryptert DNS avslører TLS-håndtrykket for selve nettstedet normalt vertsnavnet i klartekst (SNI), med mindre en utvidelse som Encrypted SNI brukes.
- macOS og iOS støtter kryptert DNS gjennom en dokumentert DNS-innstillingskonfigurasjonsprofil, som kan spesifisere DoH eller DoT og begrense den til bestemte domener eller nettverk.
Test deg selv
1. Hvilken port bruker DNS over TLS (DoT), og hvorfor en dedikert en?
- Port 80, samme som HTTP
- Port 853, delvis valgt for å unngå nedgraderingsangrep som kunne komme av tvetydighet på port 53 — Riktig.
- Port 25, samme som e-post
- Enhver tilfeldig port hver gang
RFC 7858 gir DoT sin egen port, 853, og forklarer at å unngå port 53 for det «reduserer risikoen for nedgraderingsangrep.»
2. Hvorfor bruker DNS over HTTPS (DoH) port 443?
- Fordi det er den eneste ledige porten
- Fordi å dele port 443 med vanlig HTTPS-trafikk gjør DoH vanskeligere å plukke ut og blokkere — Riktig.
- Fordi port 443 er raskere enn andre porter
- DoH bruker ikke port 443
RFC 8484 bemerker at å blande DoH med vanlig HTTPS-trafikk på port 443 «kan avskrekke uprivilegerte enheter underveis fra å forstyrre DNS-operasjoner.»
3. Skjuler DoH eller DoT DNS-oppslagene dine fra resolveren du sender dem til?
- Ja, fullstendig
- Nei, de skjuler oppslag fra nettverksstien, men resolveroperatøren ser fortsatt spørringene — Riktig.
- Bare DoH skjuler dem fra resolveren
- Bare DoT skjuler dem fra resolveren
RFC 8484 fastslår at DoH «ikke er kjent for å introdusere nye bekymringer utover de assosiert med HTTPS» på serversiden, noe som betyr at resolveroperatøren fortsatt kan se og korrelere spørringer.
4. Selv med kryptert DNS, hva avslører ofte fortsatt hvilket nettsted du kobler til?
- Wi-Fi-passordet
- Vertsnavnet sendt i klartekst i TLS Client Hello (SNI), med mindre en utvidelse som Encrypted SNI brukes — Riktig.
- Mac-ens private IP-adresse
- DNS-resolverens buffer
Cloudflare forklarer at «SNI inkluderer vertsnavnet i Client Hello-meldingen» før kryptering starter; Encrypted SNI (ESNI) er designet for å skjule det, men er ennå ikke universelt.
Prøv det med FireAI
Sett denne leksjonen ut i praksis på din egen Mac.
- Dyp granskning, uten å dekryptere noe — Få reelle detaljer om en sikker tilkobling uten at FireAI noensinne leser hva som er inni den.
- Trussellister (valgfritt) — Sjekk trafikken din mot offentlige trusseldata uten å sende den noe sted.
- Blokker en app fra internett, eller bare ett selskap eller domene for den — Kutt nøyaktig det du mener — hele appen, eller bare ett selskap den snakker med.
Kilder
- 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
Ta det i bruk på din Mac
Prøv alle funksjonene gratis i 17 dager, uten kort.