DNS поверх HTTPS

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

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

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

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

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

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

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

ПровайдерIP-адресаБлокированиеОсобенности
Cloudflare1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
нетhttps://cloudflare-dns.com/dns-query
Cloudflare1.1.1.2
1.0.0.2
2606:4700:4700::1112
2606:4700:4700::1002
вредоносный контент
Cloudflare1.1.1.3
1.0.0.3
2606:4700:4700::1113
2606:4700:4700::1003
вредоносный и взрослый контент[8]
Google Public DNS8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
нетhttps://dns.google/dns-query
CleanBrowsing185.228.168.168
185.228.169.168
2a0d:2a00:1::
2a0d:2a00:2::
взрослый контентконечная точка DNS over HTTPS[9]
Adguard176.103.130.130
176.103.130.131
2a00:5a60::ad1:0ff
2a00:5a60::ad2:0ff
рекламный контентконечная точка DNS over HTTPS[10]
Quad99.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::9
вредоносный контент
OpenDNS208.67.222.222
208.67.220.220
2620:119:35::35
2620:119:53::53
нетhttps://doh.opendns.com/dns-query

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

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

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

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

См. также

Примечания