Разработчики DNS-сервера BIND сообщили о добавлении в экспериментальную ветку 9.17 реализации серверной поддержки технологий «DNS поверх HTTPS» (DoH, DNS over HTTPS) и DNS поверх TLS (DoT, DNS over TLS), а также механизма XFR-over-TLS для безопасной передачи содержимого DNS-зон между серверами. DoH доступен для тестирования в выпуске 9.17.10, а поддержка DoT присутствует начиная с выпуска 9.17.7. После стабилизации поддержка DoT и DoH будет бэкпортирована в стабильную ветку 9.16.
Реализация протокола HTTP/2, используемого в DoH, основана на применении библиотеки nghttp2, которая включена в число сборочных зависимостей (в дальнейшем библиотеку планируется перевести в число необязательных зависимостей). Поддерживаются как шифрованные (TLS), так и незашифрованные соединения по HTTP/2. При соответствующих настройках один процесс named теперь может обслуживать не только традиционные DNS-запросы, но и запросы, отправленные с использованием DoH (DNS-over-HTTPS) и DoT (DNS-over-TLS). Поддержка HTTPS на стороне клиента (dig) пока не реализована. поддержка XFR-over-TLS доступна как для входящих, так и для исходящих запросов.
Обработка запросов с использованием DoH и DoT включается через добавление опций http и tls в директиве listen-on. Для поддержки незашифрованного DNS-over-HTTP в настройках следует указать «tls none». Ключи определяются в секции «tls». Стандартные сетевые порты 853 для DoT, 443 для DoH и 80 для DNS-over-HTTP могут быть переопределены через параметры tls-port, https-port и http-port. Например: 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;}; }
Из особенностей реализации DoH в BIND отмечается интеграция в качестве общего транспорта, который может применяться не только для обработки запросов клиентов к резолверу, но и при обмене данными между серверами, при передаче зон авторитетным DNS-сервером и при обработке любых запросов, поддерживаемых другими транспортами DNS.
Другой особенности является возможность выноса операций шифрования для TLS на другой сервер, что может понадобиться в условиях, когда хранение TLS-сертификатов осуществляется на другой системе (например, в инфраструктуре с web-серверами) и обслуживается другим персоналом. Поддержка незашифрованного DNS-over-HTTP реализована для упрощения отладки и как уровень для проброса во внутренней сети, на базе которого на другом сервере может быть организовано шифрование. На выносном сервере для формирования TLS-трафика может использоваться nginx, по аналогии с тем, как организуется обвязка HTTPS для сайтов.
Vi påminner om att DNS-over-HTTPS kan vara användbart för att förhindra läckor av information om begärda värdnamn via internetleverantörernas DNS-servrar, för att motverka MITM-attacker och modifikation av DNS-trafik (till exempel när man ansluter till offentliga Wi-Fi-nät), samt för att motstå blockeringar på DNS-nivå (DNS-over-HTTPS kan inte ersätta VPN när det gäller att kringgå blockeringar som genomförts på DPI-nivå) eller för att organisera arbete när direkt åtkomst till DNS-servrar inte är möjlig (till exempel när man arbetar via en proxy). I en vanlig situation skickas DNS-förfrågningar direkt till specifika DNS-servrar som definieras i systemets konfiguration, men i fallet DNS-over-HTTPS inkapslas förfrågningen för att bestämma IP-adresser värden i HTTPS-trafiken och skickas till en HTTP-server, där resolvern hanterar förfrågningarna via Web API.
«DNS över TLS» skiljer sig från «DNS över HTTPS» genom användningen av det standard DNS-protokollet (vanligtvis används nätverksport 853), inbäddat i en krypterad kommunikationskanal som organiseras med hjälp av TLS-protokollet och validering av värd via TLS/SSL-certifikat, som utfärdas av en certifieringsmyndighet. Den befintliga standarden DNSSEC använder kryptering endast för autentisering av klient och server, men skyddar inte trafiken från avlyssning och garanterar inte sekretess för förfrågningar.
Källa: opennet.ru
