DNS поверх HTTPS

01.03.2021


DNS over HTTPS (DoH) — протокол для выполнения разрешения DNS по протоколу HTTPS. Целью этого метода является повышение конфиденциальности и безопасности пользователей путём предотвращения перехвата и манипулирования данными DNS с помощью атак типа «Атака посредника». По состоянию на март 2018 года, Google и Mozilla Foundation тестируют версии DNS по протоколу HTTPS. Опубликован IETF в RFC 8484 в октябре 2018 года.

В дополнение к повышению безопасности ещё одна цель DNS over HTTPS — повысить производительность: тестирование DNS-резолверов ISP показало, что во многих случаях они имеют неожиданно медленное время отклика, что может быть дополнительно умножено на необходимость получения адресов многих доменов, например, при загрузке веб-страницы.

В публично реализованной версии этого протокола Google использует HTTP GET-запросы (через HTTPS) для доступа к информации DNS с использованием кодировки DNS-запроса и параметров результата, представленных в нотации JSON.

Другая аналогичная спецификация находится в статусе интернет-проекта под эгидой IETF. В этой версии протокола используются протоколы HTTP/2 и HTTPS, а исходная версия поддерживает данные ответа DNS в виде «проводного формата», которые возвращаются в существующих ответах UDP, в полезной нагрузке с HTTPS — application/dns-udpwireformat, с MIME — application/dns-udpwireformat. Если используется HTTP/2, сервер может также использовать HTTP/2-серверный push для отправки значений, которые, скорее всего, понадобятся клиенту.

В июле 2019 года специалисты компании Qihoo 360 обнаружили первый в мире образец вредоносного ПО, использующий протокол DNS over HTTPS.

DNS over HTTPS — общедоступные DNS-серверы

Реализации серверов DNS по HTTPS уже доступны бесплатно некоторыми публичными поставщиками DNS. Предлагаются три реализации для производственных услуг:

Список серверов с поддержкой DNS-over-HTTPS

Поддержка клиентов

  • Firefox с версии 62 — поддержка браузера
  • DNSCrypt-proxy — локальный DNS → прокси DoH
  • doh-php-client — реализация PHP
  • KeeneticOS - прошивка для роутеров KEENETIC
  • OpenWRT - открытая прошивка для роутеров позволяет включить поддержку DNS over HTTPS
  • Router OS с версии 6.47 - прошивка для роутеров Mikrotik

Альтернативы

DNSCrypt шифрует не модифицированный трафик DNS между клиентом и DNS-резольвером для предотвращения атак типа «Атака посредника», но не прошедший процесс IETF RFC. Тогда как DNS over TLS описан в RFC 7858.