DNS přes HTTPS či anglicky DNS over HTTPS, zkráceně pak DoH (pozor, neplést s D’oh!) je technologie, o které se mluví jako o budoucnosti soukromí na webu.

Asi už všichni znáte protokol HTTPS – šifrované spojení mezi (nejčastěji) Vaším internetovým prohlížečem a webovým serverem, na který se připojujete. Pokud ne, tak velmi zjednodušeně – když se budete přihlašovat třeba na https://CZC.cz tak celá komunikace mezi Vámi a serverem CZC bude šifrovaná – to znamená, že nikdo, kdo by v síti nebo po cestě poslouchal, nezachytí ani uživatelské jméno a heslo, které serveru při přihlášení posíláte, ani neuvidí, co hledáte a na webu děláte.

Pokud Vás to zajímá víc, mrkněte na komix o tom, jak funguje HTTPS, který jsem přeložil:

Nyní tedy víme, že díky HTTPS můžeme bezpečně komunikovat. Nicméně dotazy DNS, které jsou zodpovědné za překlady webových adres na IP adresy (napíšete https://spajk.cz a Váš prohlížeč se zeptá několika DNS serverů, na jakou IP adresu má jít a ty mu řeknou ať jde na 172.67.217.14, což je IP serveru, kde leží webové stránky a soubory k tomuto webu), jsou stále přenášeny v nešifrované podobě – tedy v tzv. plaintextu.

Může je tak kdokoliv (Váš poskytovatel internetu, kdokoliv po cestě či v síti) odchytit a ví přesně jaké weby navštěvujete. Vzhledem k tomu, jak dnes algoritmy dokáží pospojovat kusé informace o uživateli a udělat si k Vám výborný fingerprint, mohou tak poměrně snadno sledovat na jaké weby chodíte, kde a co nakupujete a tyto údaje pak třeba prodávat reklamním společnostem, aby na Vás mohly lépe cílit reklamu (fuj!).

Také toho ale mohou zneužít útočníci – podvrhnou odpověď na DNS dotaz a přesměrují Vás úplně jinam – třeba na stránku s malwarem, na phishingovou sajtu a tak dále. Tyto typy útoků označujeme jako DNS hijacking.

A právě tady by nám mělo pomoci DNS přes HTTPS – stejně jako při komunikaci s jinými weby se požadavky DNS zašifrují a umožní pouze Vašemu prohlížeči a vybraným DNS serverům rozklíčovat překlady.

DNS dotaz navíc neběží přes UDP, ale z pohledu správce sítě nebo útočníka vypadá jako běžná HTTPS komunikace. Zní to parádně co? Ale bohužel to má i své mouchy. Pokud budeme veškerý DNS provoz ze zařízení šifrovat, nebudou správně fungovat antiviráky, rodičovské kontroly a další podobné appky, protože některé jejich části potřebují k fungování právě číst DNS dotazy – například aby mohly dětem blokovat přístup k webům pro dospělé.

Toto lze ale řešit tím, že se DoH zapne jen na routeru/AP (pokud to podporuje), takže v rámci lokální sítě by mělo klasické dotazování mezi browserem a routerem fungovat normálně a nenarušit další mechanismy. Netřeba asi říkat, že routery/AP v cenové hladině poloviny kartonu cigaret takovou funkcí obvykle nedisponují.

Nezpomaluje to net?

Vesměs ne. Mozilla dělala před dvěma lety pokus, kterého se nakonec účastnilo 25 tisíc uživatelů: Experiment za dobu svého trvání vygeneroval přes miliardu DNS dotazů. Ukázalo se, že DNS přes HTTPS přináší zpomalení v jednotkách milisekund. U pětiny nejpomalejších dotazů bylo ale naopak až o stovky milisekund rychlejší.

Zdroj: Mozilla informuje o výsledcích experimentu s DNS přes HTTPS – Root.cz

Jak DNS přes HTTPS nastavit

Funkční, bezpečné a snadné je nastavit si šifrovaná déeneska ve webovém prohlížeči – nemusíte tak mít obavy že se rozbourá komunikace jiných aplikací a přitom uděláte hodně pro ochranu svého soukromí na webu.

Nyní blíže k jednotlivým prohlížečům:

Mozilla Firefox

  1. Otevřete Možnosti: klikněte na tři čáry vpravo nahoře hamburger a přejděte na Možnosti.
  2. V části Obecné sjeďte až nakonec, kde najdete položku Nastavení sítě. Klikněte na Nastavení.
  3. Zaškrtněte volbu Zapnout DNS over HTTPS.
  4. Jako výchozí jsou nastaveny servery Cloudflare (1.1.1.1) – doporučuji ponechat, nebo můžete nastavit vlastní (OpenDNS a podobně).

Google Chrome / Microsoft Edge / Brave / Chromium a další

Ve starších verzích bylo nutno použít zkratku do skrytého/experimentálního nastavení:

  1. Otevřete Experimentální nastavení: do adresního řádku vložte tuto URL: chrome://flags/#dns-over-https. To Vás přepne do Secure DNS lookups
  2. Povolte DNS over HTTPS: Klikněte na Secure DNS lookups pro zapnutí DoH.
  3. Nastavte Cloudflare DNS.

V aktuálních verzích však stačí přejít do Nastavení a v sekci Ochrana osobních údaj, zabezpečení a služby aktivovat volbu Pomocí zabezpečeného serveru DNS… a vyberte poskytovatele služeb – já používám Cloudflare, ale vyberte co je Vám milé, třeba CZ.NIC nebo OpenDNS. Googlu nevěřím.

Safari

Safari zatím DNS over HTTPS nepodporuje, nicméně podpora pro iOS, iPadOS i MacOS je slíbena: Apple adds support for encrypted DNS (DoH and DoT) | ZDNet.

Jak zjistit jestli DoH funguje?

  1. Mrkněte na stránku 1.1.1.1/help
  2. Pokud je v části Using DNS over HTTPS (DoH) vidět Yes tak vše funguje jak má.

 

Co když to nefunguje? Na domácím/osobním PC by to neměl být problém, ale je možné, že Vám to třeba v práci zakázali – jsou způsoby jak vypnout možnost nastavení DoH, třeba přes registry: How to Enable or Disable DNS over HTTPS (DoH) in Microsoft Edge | Tutorials (tenforums.com)

A nebo přes Intune : Disable DNS over HTTPS in Firefox using Intune (securitygeneralist.blogspot.com)

DNS přes TLS

Aby toho nebylo málo, existuje ještě DoT – DNS over TLS. Při použití DoT jsou dotazy odesílány přímo přes UDP, místo HTTP nebo HTTP2 jak je tomu v případě DoH. Cíl je ale stejný – zajistit ochranu a zabezpečit DNS dotazy.