DNS поверх HTTPS

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

DNS поверх HTTPS — общедоступные DNS-серверы[править | править код]

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

Провайдер IP-адреса Блокирование Особенности
Cloudflare 1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
нет Конечная точка DNS поверх HTTPS[7].
Google Public DNS 8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
нет Конечная точка DNS поверх HTTPS[8].
CleanBrowsing 185.228.168.168
185.228.168.10
2a0d:2a00:1::
2a0d:2a00:2::
Взрослый контент. Конечная точка DNS поверх HTTPS[9].

Поддержка клиентов[править | править код]

  • Firefox Nightly — поддержка браузера[10]
  • DNSCrypt-proxy — локальный DNS → прокси DoH[11]
  • doh-php-client — реализация PHP[12].

Альтернативы[править | править код]

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

См. также[править | править код]

Примечания[править | править код]