DNS över HTTPS - DoH

DNS är ett gammalt protokoll från den gamla goda godtrogna tiden när ingenting krypterades. Idag lever vi i en helt annan “ond” värld.

DNS trafik krypteras inte. Det innebär att när man i webbläsare vill t.ex. gå till www.satansdyrkarna.com då slås adressen till denna webbsida upp i klartext, i den DNS som man använder. Vilken DNS använder man då? Jo, man använder i regel den som ens internetleverantör anger, typ Telia, Tele2, Bredbandsbolaget. Eftersom dom äger den DNS ni använder ser de i klartext vilka webbsidor ni besöker. Från er IP adress vet dom också exakt vem ni är, vad ni heter, vart ni bor.

Vad är då problemet med detta? Jo, oavsett vilka försiktighetsmått ni själv tar för att inte registreras hos olika företag, t.ex att ni använder https för att surfa, så vet fortfarande er internetleverantör vilka webbsidor ni besöker, och när ni gör det.

Denna information är guld idag, personlig information är internets valuta. I USA är det solklart att internetleverantörerna samlar denna information och sedan säljer den vidare. Det finns inskrivet i deras villkor att de kan göra det, och de gör också det. Hur det är i Sverige vet jag inte, antagligen gör dom inte det, men men …

Hur kan man då skydda sig mot detta? Många ser till att använda andra DNS’er än de som deras internetleverantör tillhandahåller. Det finns många gratis, t.ex. Google (8.8.8.8), Cloudflare (1.1.1.1) och OpenDNS. Nu skulle jag själv absolut undvika Google, men de båda andra är super. OpenDNS ägs dock av Cisco och Cisco använder OpenDNS som sin honeypot för sin kommersiella tjänst Umbrella, så jag väljer Cloudflare här, de garanterar att de inte fluktar på datat och inte heller sparar undan det.

Ok, jag har konfigurerat min router nu så att alla datorer hemma använder Cloudflares DNS, är jag skyddad nu?

Nix, det är du inte. DNS är ett okrypterat protokoll. Alla som kan avlyssna din trafik, typ din internetleverantör, ser vilka DNS uppslag du gör, i klartext. Men, inte tusan avlyssnar min internetleverantör min trafik! Såklart de gör. De lyssnar kontinuerligt efter mönster i trafiken, av flera olika skäl.

Så vad gör jag då? Det är här DoH kommer in, DNS över https, dvs på samma sätt som webbsidor över https krypteras så krypteras också här DNS trafiken.

Mozilla har här under flera år drivit ett samarbete med Cloudflare för att etablera DoH i webbläsaren Firefox. DoH finns nu i den senaste versionen av FF, dock som standard inte aktiverad, men i slutet av September kommer den nya versionen att ha det aktiverat som standard.

Det innebär att när ni surfar med Firefox och går till www.satansdyrkarna.com, dels struntar FF i vilken DNS ni har på nätverket, FF använder Cloudflare DNS och dels krypterar FF sin DNS förfrågan till Cloudflares DNS för att få tillbaka IP adressen till sidan. Trafiken är krypterad, er internetleverantör, eller någon annan blackhat för den delen, kan inte läsa av detta, och Cloudflare, som sagt, de kikar inte och de sparar inte. Case closed.

Nja, hyffsat, men inte helt. Man behöver lita på Cloudflare, som trots allt är ett amerikanskt företag med allt vad det innebär. FF stödjer dock att man kan använda andra DNS leverantörer, men ännu är inte utbudet så imponerande. Helst hade man nog sett någon europeisk organisation.

Så, kasta Chrome, Safari, IE och allt vad de heter och skaffa Firefox. FF skyddar mot tracking, inherent, och har en sund filosofi (Mozilla).

https://support.mozilla.org/en-US/kb/firefox-dns-over-https

Också Microsoft hoppar på det här med DoH, glädjande:

Vill också slå ett slag för Pi-hole som också går att konfigurera med DoH. Man använder Cloudflares proxy för detta, men man kan med denna välja andra DoH leverantörer om man så vill (Google Dodgy ).

I Ryssland har man nu lagt ett lagförslag på att förbjuda krypterad DNS. Kina har redan gjort det. Det understryker bara vikten av att också kryptera metadata som DNS trafik. Att det är så viktigt för politiska diktaturer visar bara hur vital den här informationen är och något som även andra än de politiska diktaturerna är intresserade av.

Quote:Enligt ett lagförslag från den ryska regeringen föreslås att säkerhetsprotokoll som döljer information om vilken destination trafiken går mot ska förbjudas. Specifikt gäller den föreslagna lagen protokollen TLS 1.3 (Transport Layer Security), DNS over HTTPS (DoH), DNS over TLS (DoT) och Encrypted Server Name Indication (ESNI).

Quote:Med endast https kan rysslands rättsvårdande myndigheter och underrättelsetjänster fortfarande få fram användbar metadata om trafiken, till exempel destinationen, framförallt på grund av att dessa myndigheter har full rätt, genom den så kallade SORM-lagen, att analysera trafik direkt i operatörernas datacenter. Det gäller specifikt DNS-trafik, som normalt skickas i klartext, och SNI-fältet i https-protokollet som visar paketets destination.

https://google.com/search?rls=en&q=russia+DoH&ie=UTF-8&oe=UTF-8

I min tidigare post framgår att det inte räcker med krypterad DNS för att dölja meta-data om vad jag surfar till. Det man behöver adressera är

  1. Krypterad DNS för att dölja DNS uppslag

  2. TLS 1.3 för att inte certifikatet skall skickas i klartext och ur detta kan servernamnet extraheras. TLS 1.3 kryptera själva certifikatet.

  3. Krypterad SNI. För att etablera den krypterade TLS förbindelsen måste destinationens servernamn anges, alltså trafiken innan krypteringen kommit igång. Den skicka normalt i klartext, SNI. Med ESNI krypteras den emellertid.

Ni kan kontrollera i vilken utsträckning ni är skyddad med avseende på detta här:

Prova med alla webbläsare ni använder. Det görs en test på DNSSEC här också, den är dock mindre relevant ur perpektivet meta-data.

Så här blev resultatet för mig, då jag använder pi-hole och cloudflare för DoH och Safari 14.

Punkt 1 kan ni åtgärda själv, enligt mina postningar ovan. Min rekommendation är att använda pi-hole.

Vad gäller TLS 1.3 och ESNI, där krävs det att både er webbläsare och den server ni kopplar upp er mot stödjer det. Ni kan bara påverka er egen webbläsare och se till att den stödjer det. Serversidan kan ni inte påverka, men trenden är att allt fler servrar stödjer och använder TLS 1.3, men som ni såg ovan, finns det krafter för att förbjuda dessa.

Notera också att TLS problematiken inte är begränsad till surfning, den är applicerbar för alla protokoll som använder TLS för kryptering. Ett annat exempel är mail. När ni hämtar er e-post, från t.ex. våra mailservrar, då krypteras denna trafik med TLS. Våra servrar använder i första hand TLS 1.3, men då krävs det också att er e-postklient gör det.

Allt detta gör det hela komplext och att vara helt säker är svårt. En lösning på allt detta är att använda VPN. Då försvinner alla dessa problem så länge man har en VPN leverantör man kan lita på. Nackdelarna med VPN är att det kostar pengar och att bandbredden på trafiken man får blir begränsad. Med riktigt bra VPN leverantörer kan man idag få robust 100 Mbit/s. Men har man 1Gbit/s från sin internetleverantör då är det lite surt. att begränsa ned det till 100Mbit/s

Här kommer en riktigt bra Youtube, som förutom beskriver tekniken lite, på ett bra sätt visar vad det är man utsätter sig för när ens DNS data är öppen.

Ett alternativ som jag inte tog upp här är Quad9. Dom har ett riktigt bra rykte, dom har sannolikt inte någon annan agenda än att tillhandahålla tjänsten. Google använder tjänsten för att samla in data/statistik för hur webben används och denna data använder dom sedan då bland för sina annonseringsprodukter. CloudFlare är världens största content delivery network och antagligen använder också den data de får in, kanske då inte som Google, utan mer internt för att förbättra prestanda för sitt nätverk. OpenDNS används som sagt av Cisco som honeypot. Så det är svårt att hitta någon som inte har någon annan agenda också.

Det sägs emellertid att Quad9 inte har någon annan agenda, och kanske har dom inte det. Dom är ju trots allt fortfarande amerikanska, och utöver det har vi inte så bra erfarenhet av dem.

Vi använde initialt Quad9 för DoH genom vår pi-hole på vårt kontor. En av våra hostingkunder fick sin hemsida hackad och det lades in allvarlig malware på den. Det tog bara någon timme innan domännamnet hamnade på blocklistor och vår abuse varskoddes. Vi kunde enkelt snabbt rensa hela hemsidan, vi tog bort allt material och lade in en statisk index.html sida som var helt tom. Dess public_html innehöll bara en fil, index.hml. Alltså, inte en chans att någon malware låg kvar.

Domänen försvann snabbt från de olika blocklistorna, bland annat från SpamHaus, men också från DNS leverantörer som CloudFlare och OpenDNS. Google blockade aldrig domänen i din DNS. Men, Quad9 vägrade att ta bort domännamnet från sin blocklista. Det innebar att vi inte kunde komma åt hemsidan för domännamnet från vårt kontor eftersom vi använder Quad9 där. Vi hade en dialog med Quad9 om detta, men denna gick bara runt i cirklar, där det egentligen gick ut på att de pekade på att andra blockade domänen, mer obskyra blocklistor. Att de stora släppt blocken, de brydde de sig inte om. Någon egen process för att kontrollera malware siter hade de tydligen inte, de förlitade sig på andra.

I det läget bestämde vi oss för att vi i ett kommersiellt läge inte kan vara beroende av en produkt som Quad9. För privatpersoner fungerar de säkert bra, men för oss som företag behöver vi ha ett mer robust system, så vi gick tillbaka till CloudFlare, då till 1.1.1.2 som blockar bara malware.

Ni kan läsa mer om de olika alternativen som CloudFlare erbjuder:

Fler och fler erbjuder nu DoH och som kan användas med Pi-Hole.

T.ex. nu också OpenDNS, se denna artikel Using DNS over HTTPS (DoH) with OpenDNS. En fördel med att använda OpenDNS är att man då också får med Phishtank blocklistort. Det är OpenDNS som står bakom Phishtank och den hålls synnerligen uppdaterad med malware och phishing siter.

Det är enkelt att använda OpenDNS som DoH i Pi-Hole:

vi /etc/default/cloudflared

#CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query
#CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.2/dns-query --upstream https://1.0.0.2/dns-query
CLOUDFLARED_OPTS=--port 5053 --upstream https://doh.opendns.com/dns-query --upstream https://doh.opendns.com/dns-query

systemctl restart cloudflared

Denna test verkar dock bara känna igen att DoH används om man använder Cloudflares DoH servrar (1.1.1.1 etc.). Använder man OpenDNS, då säger testen att man inte använder DoH, vilket borde vara fel. Skall emellertid kika närmare på detta.

Yep, Cloudflare känner bara igen om man använder just deras DoH. Använder ni OpenDNS DoH, gå till DNS over HTTPS (DoH) Diagnostic Page för att kontroller er DoH. Jag fick detta resultat:

Här kommer en liten uppdatering av våra erfarenheter av DoH. Vi använder som sagt Pi-Hole och har använt OpenDNS DoH på kontoret. Tyvärr har det inte fungerat riktigt bra. Vi har fått konstiga blockar, bland annat av egna domäner.

Vi har nu kopplat bort DoH och använder Cloudflares 1.1.1.2. Vi skulle kunna använda DoH med Cloudflare, men har valt att inte göra det ännu, och det beror på att vår ISP dokumenterat värderar integritet högt.

Vad gäller webbläsare har jag tidigare i denna tråd rekommenderat Firefox. Tyvärr utvecklas nog inte Firefox i samma takt som Chromium och Safari varför Firefox ofta inte är något bra funktionellt alternativ, framförallt inte i en Mac/IOS värld där Safari är extremt optimerad. Med egen DNS som pi-hole spelar det då mindre roll vilken webbläsare man använder. Konfigurerar man pi-hole med DoH då får man det oavsett vilken webbläsare som används. Är man ute och reser med sin Laptop, då spelar webbläsaren roll, då skulle jag nog använda Firefox med DoH, alternativt VPN.

Provar nu ett alternativ till egen Pi-Hole:

Den är helt ekvivalent jämfört med Pi-Hole, förutom att man då inte själv behöver ha en egen server för DNS. NexrDNS är extremt lätt att använda för vem som helst. Återkommer med mer återkoppling när jag använt det lite mer.