В DNS-сервер BIND добавлена экспериментальная поддержка DNS-over-HTTPS
19 февраля 2021 года
Разработчики 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 для сайтов.
Напомним, что DNS-over-HTTPS может оказаться полезным для исключения утечек сведений о запрашиваемых именах хостов через DNS-серверы провайдеров, борьбы с MITM-атаками и подменой DNS-трафика (например, при подключении к публичным Wi-Fi), противостояния блокировкам на уровне DNS (DNS-over-HTTPS не может заменить VPN в области обхода блокировок, реализованных на уровне DPI) или для организации работы в случае невозможности прямого обращения к DNS-серверам (например, при работе через прокси). Если в обычной ситуации DNS-запросы напрямую отправляются на определённые в конфигурации системы DNS-серверы, то в случае DNS-over-HTTPS запрос на определение IP-адреса хоста инкапсулируется в трафик HTTPS и отправляется на HTTP-сервер, на котором резолвер обрабатывает запросы через Web API.
"DNS over TLS" отличается от "DNS over HTTPS" применением штатного протокола DNS (обычно используется сетевой порт 853), завёрнутого в шифрованный канал связи, организованный при помощи протокола TLS с проверкой валидности хоста через TLS/SSL-сертификаты, заверенные удостоверяющим центром. Существующий стандарт DNSSEC использует шифрование лишь для аутентификации клиента и сервера, но не защищает трафик от перехвата и не гарантирует конфиденциальность запросов.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.