Přivítejte technologii DNS over HTTPS, bude i ve Windows

2.12.2019 | Jindřich Zechmeister

DNS over HTTPS se dostává do řádného provozu a nedávno bylo oznámeno, že se stane i součástí systému Windows. Co tato technologie přináší nám uživatelům a zdali ji máme kvitovat se dozvíte v tomto článku. Podíváme se i na předchůdce DNS over TLS.

Co je to DNS přes HTTPS (DoH)?

Čtenáře našeho blogu tento termín jistě nepřekvapí, protože pokud něco běží přes HTTPS/TLS, je to chráněno šifrováním proti odposlechu. A stejně tak je tomu i v případě této technologie, která má bránit odposlechu DNS dotazů, tedy monitorování stránek, které uživatel navštěvuje. To je poměrně citlivý údaj a každý určitě někdy navštívil web, kterým by se veřejně nechlubil.

Kromě DoH existuje i DoT, což je protokol DNS over TLS; pozor na záměnu těchto dvou zkratek. DoT je předchůdce DoH, přičemž následník staví na principech svého předchůdce. Oba protokoly šifrují komunikaci od vašeho počítače k DNS resolveru; rozdíl mezi nimi najdete v dalších odstavcích.

Technologicky se toto rozšíření začíná používat přímo v prohlížečích, takže uživatel pro to nemusí nic dělat, ale na druhou stranu nebude mít možnost volby a nijak to nepozná. Od výrobců prohlížečů je to další paternalistické opatření bez respektování naší vůle. Google a Mozilla přece ví, co je pro nás uživatele dobré; a když nemáme zájem, tak si to stejně prosadí.

Nový protokol vychází z předchůdce DNS over TLS, který vznikl už v roce 2016 a je definován standardy RFC 7858 a RFC 8310. Ten běží přes protokol TCP na portu 853. Nikoliv na nám známém portu 443, který využívá HTTPS. Podpora DoT už existuje i v majoritních DNS serverech (Unbound, Knot Resolver, BIND), takže nic nebrání jeho masovému využití.

Mladší následovník DoT využívá místo TLS protokolu HTTPS a může tedy fungovat díky internetovému prohlížeči. Ten využívá k odesílání požadavků a dotazů do internetu.

DoH má přijít na Windows

Microsoft má se svými operačními systémy bezpochyby zásadní podíl na trhu a Windows stále využívá nejvíce počítačů. Náskok před Linuxem či Applem je na PC a noteboocích stále propastný. Pro uživatele je tedy zásadní zájem Microsoftu o nové technologie, protože bez jejich podpory v systému je nebudou moci využít. Prohlášení Microsoftu o doplnění funkce DNS over HTTPS najdete na jejich firemním Networking blogu; bohužel chybí jakýkoliv odhad data implementace. Windows chápe jako platformu, takže změna dorazí zcela jistě kromě desktopu i na Windows Server a další deriváty.

Není vše zelené co běží přes TLS/HTTPS

DoT a DoH jsou příklady standardů, které kromě přínosů přináší i diskutabilní vlastnosti a dokonce nevýhody. Pojďme se na jednotlivé argumenty postupně podívat v terminologii legendárního westernu Hodný, zlý a ošklivý (pokud film neznáte, tak to okamžitě napravte).

The Good

Zřejmou výhodou DoT a DoH je šifrování dotazů a ochrana proti jejich odposlechu. S šifrováním souvisí i záruka integrity dat, tedy jinak řečeno šifrovaná data nemůže cestou nikdo změnit. Pokud se na servery budou dávat důvěryhodné TLS certifikáty (tedy ty alespoň certifikáty s OV či EV ověřením), tak budeme odpovídající DNS servery moci autentizovat. To jsou příjemné funkce zlepšující bezpečnost uživatele internetu.

The Bad

Osobně výše uvedené TLS autentizaci v praxi vůbec nevěřím, protože pochybuji, že nějaký správce bude tuto autentizaci ověřeným certifikátem podporovat (spíše použije bezplatné automatické řešení, které mu nepřinese žádnou práci). Navíc posledně dvě jmenované výhody garantuje DNSSEC, který používáme už řadu let. A operační systémy ho stejně ignorují (viz poslední odstavec).

DNS over HTTPS byl vlastně vytvořen i díky nutnosti řešit problém s hlavičkami požadavků, které jsou u DNS over TLS vidět. Při použití DoT musí klient kvůli SNI tak jak tak poslat jmenný dotaz na server, který chce navštívit. Tyto údaje jsou v hlavičce stále a umožňují shromažďování metadat, případně sledování činnosti návštěvníka internetu. Řešení v podobě šifrování SNI je sice už na světě, ale bude využívat protokol TLS 1.3 a ten ještě zdaleka není výchozí. Je to tedy nedokonalá záplata. Zdali je neustálé vytváření nových standardů pro řešení nedostatků a děr stávajících technologií správným směrem nechám na posouzení čtenáře. Ani jeden z protokolů není všelék na sledování pohybu návštěvníka na internetu, což dokazuje další odstavec.

And The Ugly

Možná jste už zaznamenali výhrady vůči DoH a obecně fakt, že bezpečnostní odborníci ani uživatelé nepodléhají euforii. Zejména uživatelé Firefoxu se proti plošné implementaci DoH v prohlížeči ohrazují. Ptáte se proč? Nechtějí snad být více zabezpečeni? Pro pochopení je potřeba znát detaily této implementace.

U Firefoxu je problém v přesměrování DNS dotazů. Američtí uživatelé mají ve výchozím stavu zapnuté přesměrování DoH dotazů. To znamená, že každý jejich DNS dotaz je automaticky přesměrován na servery Cloudflare (zdroj). Díky tomu může Cloudflare sbírat metadata o uživatelích. USA jsou zemí, která budí značné obavy z vynucování svých zájmů a porušování práv uživatelů internetu, či obecně práv občanů jiných států; proto někteří uživatelé toto přesměrování nesou nelibě a v Evropě by se určitě setkalo se značnou nelibostí. Naštěstí jde ve Firefoxu DoH vypnout.

Obecně platí, že síťová komunikace při surfování internetem tvoří hodně dotazů a tyto metadata mohou být použita k identifikování uživatele a jeho aktivit. Šifrování navštěvovaných domén není všemocné; prohlížeč generuje například OCSP dotazy na platnost použitých certifikátů. I prostá IP adresa dokáže identifikovat drtivou většinu velkých internetových služeb a identifikovat příslušný server, který navštívím (málokdy se bude jednat o sdílenou IP adresu). To vše může být snadno logováno a zaznamenáno k pozdějšímu vyhodnocení.

Dalším problémem je fakt, že na tyto technologie vylepšující staré síťové protokoly nemůžeme spoléhat a nemáme nad nimi jako uživatelé kontrolu. Pokud jejich použití není možné, tak klient použije standardní prostředky (fallback na nešifrovaný přenos) a veškeré zabezpečení DoT či DoH je pasé. Prohlížeč bude opět většinu dotazů do internetu posílat v plaintextu. U DNSSECu si ani nemůžeme být jistí, zdali funguje či nikoliv (viz samostatný odstavec).

Nezanedbatelným aspektem používání DoH je i snazší identifikace tazatele v síti. Zatímco běžné DNS dotazy přes UDP protokol v síťové komunikaci zaniknou ve změti dalších dotazů (zejména ve firmách), tak dotaz pomocí DoH vytváří konkrétní spojení serveru s tazatelem a paradoxně i díky šifrování pomáhá k lepší identifikaci zdroje dotazů. A v konečném součtu na tom může být uživatel hůře než bez použití DoH. K tomuto názoru dospěl autor článku Centralizované DoH škodí ochraně soukromí na Rootu, který doporučuji pro zamyšlení nad těmito širšími aspekty plošného DoH.

Nakonec můžeme jako uživatelé internetu narazit i na nestandardnost DoT portu 853, který není běžně používán pro komunikaci a může být síťovými prvky a firewally blokován. Jeho "standardizace" může trvat řadu let a do té doby uživatele dost omezovat. Pokud však budou používat DoH, neměli by tento problém mít, protože ten využívá standardní HTTPS port 443.

(Nejen) Windows stále ignoruje DNSSEC

Motivací k napsání tohoto článku bylo prohlášení Microsoftu o doplnění podpory DoH do Windows. To je přes všechny výše uvedené argumenty chvályhodné. Na druhou stranu je zvláštní, že ve Windows dosud není přítomen validující stubresolver; tedy jednoduše řečeno systém neumí používat DNSSEC a vyhodnotit správnost či nesprávnost podpisu odpovědi od resolveru. Zdali je tedy odpověď kladná, tedy DNS záznam správně podepsán, nemáte možnost poznat. Musíte se spoléhat na to, že DNS resolver vašeho ISP je validující a záznamy ověřuje. Nicméně pokud by resolver odpověď vyhodnotil a byla podvržená, tak se na daný web nedostanete (což je správně), ale nemáte žádnou zpětnou vazbu proč se tak stalo. Já osobně tvrdím, že toto chování pouze motivuje uživatele zkoušet se na web dostat jiným kanálem a na podvržený záznam tak "naletět".

CZ.NIC naštěstí vyvíjí doplněk pro Firefox, který ukazuje fungování DNSSECu a upozorňuje na pravý či podvržený záznam, ale není to moc praktické. Nejjednodušší cestou ke spolehlivému použití DNSSECu na PC je používání otevřených validujících resolverů CZ.NIC, které podporují i DoT a DoH. Návod pro nastavení najdete v uvedeném odkazu.

V tomto světle je starost Microsoftu o šifrování DNS dotazů trochu nelogická a měl by si nejprve dokončit domácí úkol z minulosti.

Závěr a další zdroje informací

Jak vidíte, tak nasazení a použití DNS over HTTPS je poněkud rozporuplné. Určitě však lze článek ukončit pozitivním konstatováním, že s novým protokolem TLS 1.3 bezpečnost uživatele internetu rozhodně roste a proto je třeba mu popřát rychlé rozšíření. Doufejme však, že výrobce prohlížečů nenapadne (opět) ukončovat starší protokoly a "odepsat" TLS 1.2, které bude po jaru 2020 nejstarším podporovaným protokolem. Více o ukončení TLS 1.0 a 1.1 najdete v článku Konec podpory TLS 1.0 a 1.1 se blíží.

V tomto článku zmíněné technologie má pěkně pokryté server Root.cz. V samostatných článcích se dočtete vše o šifrovaném SNI (ESNI), DNS over HTTPS. Nakonec si můžete dostupnost uvedených technologií a podporu prohlížeče vyzkoušet v online testu CloudFlare, průkopníků DNS over HTTPS a ESNI, na který Root odkazuje v jednom z článků.


Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz