Vývojáři DNS serveru BIND oznámili přidání do experimentální větve 9.17 implementace serverové podpory pro technologie „DNS přes HTTPS“ (DoH, DNS over HTTPS) a DNS přes TLS (DoT, DNS over TLS), stejně jako mechanismus XFR-over-TLS pro bezpečný přenos obsahu DNS zón mezi servery. DoH je k testování dostupný ve vydání 9.17.10, zatímco podpora DoT je přítomna od vydání 9.17.7. Po stabilizaci bude podpora DoT a DoH přenesena do stabilní větve 9.16.
Implementace protokolu HTTP/2 používaného v DoH je založena na aplikaci knihovny nghttp2, která je zařazena mezi závislosti pro sestavení (v budoucnu se plánuje převést knihovnu na volitelné závislosti). Podporují se jak šifrovaná (TLS), tak nezabezpečená spojení přes HTTP/2. Při příslušném nastavení nyní může jeden proces named obsluhovat nejen tradiční DNS dotazy, ale také dotazy posílané pomocí DoH (DNS-over-HTTPS) a DoT (DNS-over-TLS). Podpora HTTPS na klientské straně (dig) zatím není implementována. Podpora XFR-over-TLS je dostupná jak pro příchozí, tak pro odchozí dotazy.
Zpracování dotazů pomocí DoH a DoT se aktivuje přidáním voleb http a tls do direktivy listen-on. Pro podporu nezašifrovaného DNS-over-HTTP je třeba v nastaveních uvést „tls none“. Klíče se definují v sekci „tls“. Standardní síťové porty 853 pro DoT, 443 pro DoH a 80 pro DNS-over-HTTP mohou být přepsány pomocí parametrů tls-port, https-port a http-port. Například: tls local-tls { key-file "/path/to/priv_key.pem"; cert-file "/path/to/cert_chain.pem"; }; http local-http-server { endpoints { "/dns-query"; }; }; options { https-port 443; listen-on port 443 tls local-tls http myserver {any;}; }
Mezi zvláštnosti implementace DoH v BIND patří integrace jako společného transportu, který může být použit nejen pro zpracování požadavků klientů směrem k resolveru, ale také při výměně dat mezi servery, při přenosu zón autoritativním DNS serverem a při zpracování jakýchkoliv dotazů podporovaných jinými transporty DNS.
Další vlastností je možnost přesunutí šifrovacích operací pro TLS na jiný server, což může být nezbytné v situacích, kdy jsou TLS certifikáty uloženy na jiném systému (například v infrastruktuře s webovými servery) a jsou spravovány jiným personálem. Podpora nezašifrovaného DNS-over-HTTP byla implementována pro usnadnění ladění a jako úroveň pro přesměrování v interní síti, na jejímž základě může být na jiném serveru zorganizováno šifrování. Na externím serveru pro generování TLS provozu může být využit nginx, podobně jako je organizováno obalování HTTPS pro webové stránky.
Připomínáme, že DNS-over-HTTPS může být užitečné pro vyloučení úniků informací o dotazovaných názvech hostitelů přes DNS servery poskytovatelů, pro boj s MITM útoky a podvodem DNS provozu (například při připojení k veřejným Wi-Fi), pro odolávání blokacím na úrovni DNS (DNS-over-HTTPS nemůže nahradit VPN v oblasti obcházení blokací, realizovaných na úrovni DPI) nebo pro organizaci práce v případě nemožnosti přímého přístupu k DNS serverům (například při práci přes proxy). Pokud jsou v běžné situaci DNS dotazy přímo odesílány na určité v konfiguraci systému DNS servery, pak v případě DNS-over-HTTPS je požadavek na určení IP adres hostitele enkapsulován v HTTPS provozu a odeslán na HTTP server, na němž resolver zpracovává požadavky prostřednictvím Web API.
„DNS over TLS“ se liší od „DNS over HTTPS“ použitím standardního protokolu DNS (obvykle používaný síťový port 853), zabalného do šifrovaného komunikačního kanálu, organizovaného pomocí protokolu TLS s ověřením platnosti hosta prostřednictvím TLS/SSL certifikátů, které jsou certifikovány certifikační autoritou. Existující standard DNSSEC používá šifrování pouze pro autentizaci klienta a serveru, ale nechrání provoz před odposloucháváním a nezaručuje důvěrnost dotazů.
Zdroj: opennet.ru
