Taggat med: DoH

Krypterad SNI i TLS 1.3

Server Name Indication (SNI) är den del av TLS som berättar för servern till vilken webbserver du vill besöka. Detta behövs om din webbserver bara har en IP-adress men flertalet certifikat. Detta fält går i klartext och gör att någon som kan se din nätverkstrafik också kan se vilken webbserver du besöker.

För att göra det svårare har bl.a. Domain Fronting används av såväl Tor som skadlig kod för att försvåra analys av nätverkstrafik men detta är något som flertalet leverantörer såsom CloudFlare nu stängt ner.

Följande bild förevisar bra där server_name skickas i klartext under handskakningsprocessen:

Firefox släppte precis stöd för ESNI (encrypted SNI) i sin nightly build. Du kan testa att ESNI fungerar genom att surfa till följande URL. Och glöm inte att slå på DoH:

Att ta fram en lösning som krypterar SNI var inte helt trivialt eftersom det rör sig om ett ”hönan eller ägget”-problem. Men för att lösa detta problem så används en ny nyckel hos klienten samt en ESNIKeys-structure som placeras i DNS:

Givetvis bör krypterad DNS också användas:

Moreover, as noted in the introduction, SNI encryption is
less useful without encryption of DNS queries in transit via DoH or DPRIVE mechanisms.

För mer matnyttig läsning rekommenderas följande IETF-draft:

 

Alphabet (Google) släpper säkerhets-app till Android

Känner du till Alphabet? Företaget som äger Google? Jag skrev om Alphabet i Januari detta år. Alphabet har nu via deras inkubator Jigsaw släppt en app vid namn Intra.

Intra fungerar till Android-baserade mobiltelefoner och ser till att DNS-frågor går via en krypterad anslutning. Nämligen mer specifikt protokollet DoH (DNS over HTTPS) vilket även Firefox stödjer.

Givetvis finns även Intra tillgängligt som öppen källkod på Github för den som vill medverka till utvecklingen eller granska koden.

Intra fungerar från och med Android version 4.0 och kan laddas hem här:

Bra att tillägga är även att Android 9.0 ”Pie” stödjer DoH utan denna app, och för att citera Alphabet:

If you have Android 9.0 or later, we recommend enabling the Private DNS setting instead of installing Intra

Vidare läsning

Säkrare webbsurf med DNS över HTTPS (DoH)

Säkrare DNS med DoH

DNS över HTTPS eller DoH som det även kallas är en relativt ny IETF-draft som är skriven av Paul Hoffman på ICANN samt Patrick McManus på Mozilla. Målet med DoH är att skicka DNS-förfrågningar som vanligtvis går i klartext över internet i en krypterad tunnel över https. DoH är ett alternativ till DNSCrypt samt DNS över TLS.

Än så länge finns det stöd i webbläsarna Firefox och Chrome(?), dock inte aktiverat som standard.

Om du gillar risker i livet så kan du redan nu vill testa DoH. Har du en relativt ny version i Firefox kan du göra enligt följande:

  1. Skriv about:config i adressraden
  2. Godkänn ett eventuellt varningsmeddelande
  3. Sök efter network.trr som prefix i inställningsnamnet. TRR står för Trusted Recursive Resolver
  4. Ändra följande inställningar:
    1. Sätt network.trr.bootstrapAddress till 1.1.1.1
    2. Sätt network.trr.confirmationNS till kryptera.se
    3. Sätt network.trr.mode till 3
    4. Sätt network.trr.uri till https://mozilla.cloudflare-dns.com/dns-query
  5. Sedan är det klart. Du måste eventuellt starta om Firefox.

Skärmdump:

Och för att verifiera att DoH/TRR används så kan du göra enligt följande:

  1. Skriv about:networking i adressraden
  2. Godkänn eventuellt varningsmeddelande
  3. Tryck på DNS till vänster
  4. Titta på kolumnen där det står TRR. Där bör det stå true på majoriteten av genomförda uppslagningar:

Alternativt titta direkt på nätverkstrafiken med Wireshark eller tcpdump.

Skärmdump:

Några förklaringar: network.trr.mode kan sättas till något av följande lägen:

0 – Av (standard). Använd vanlig DNS
1 – Race native against TRR. Kör vanlig DNS och TRR och ta den som hinner först
2 – TRR first. Använd TRR enbart och använd DNS som backup
3 – TRR only. Kör bara TRR, använder enbart DNS för bootstrap (dvs hitta till DoH-servern)
4 – Shadow mode. Kör TRR hela tiden i bakgrunden men använd DNS. Bra för att undersöka svarstider etc
5 – Explicitly off. Välj att stänga av TRR

Funkar det dåligt med att köra mode 3 så kan du ändra till 2.

Även om DNS krypteras enligt ovan så läcker https klartext fortfarande om vart du surfar med fältet Server Name Indication (SNI). Men det finns hopp om kryperad SNI också.

Och för mer information om Firefox implementation av DoH kan jag rekommendera Daniel Stenbergs blogginlägg.

Daniel har även skrivit ett testprogram i C för att ställa doh-förfrågningar direkt från kommandotolken:

Det kan även vara bra att läsa Cloudflares privacy policy.