DNS over HTTPS (DoH) — протокол для выполнения разрешения имён DNS по протоколу HTTPS. Целью внедрения этого протокола является повышение конфиденциальности и безопасности пользователей путём предотвращения перехвата и манипулирования данными DNS с помощью атак типа «Атака посредника».
Протокол DNS over HTTPS описан в стандарте RFC 8484 IETF.
История Предпосылкой создания DoH стали выявленные массовые вмешательства интернет-провайдеров и правительств в работу распределённой системы DNS, в результате которых пользователи незаметно для себя получали поддельную информацию об адресах серверов и их запросы были перенаправлены на посторонние серверы, о чём пользователи не подозревали.
В 2016 году на Google Public DNS было внедрено собственное API Google для запросов DoH, использующее нотацию JSON
В мае 2017 года в IETF была сформирована рабочая группа по протоколу разрешения доменных имён через HTTPS.
В марте 2018 года Mozilla Foundation тестировала свою реализацию DoH в браузере Firefox.
В октябре 2018 года IETF утвердил стандарт DoH – RFC 8484.
Преимущества DoH перед классическим DNS
DoH исключает подделку адресов интернет-доменов правительством, интернет-провайдером или злоумышленником и гарантирует, что браузер пользователя получит верный адрес сервера для запрошенного доменного имени.
В дополнение к повышению безопасности ещё одна цель DNS over HTTPS — повысить производительность: тестирование DNS-резолверов разных интернет-провайдеров показало, что во многих случаях они дают неожиданно медленный отклик, что может вызывать серьёзные задержки в реакции браузера на действия пользователя из-за необходимости получения адресов многих доменов при загрузке веб-страницы.
Реализации Google в своих публичных серверах DNS использует две реализации DoH: URL https://dns.google/dns-query — стандартизованный в RFC 8484 с поддержкой HTTPS-запросов GET и POST; URL https://dns.google/resolve? — собственная реализация API для DoH, в которой используются только запросы GET в нотации JSON.
Стандартная реализация В стандарте RFC 8484 используются протокол HTTP/2 в HTTPS, запрос отправляется на путь /dns-query (в иерархии веб-сервера), запрос идентифицируется полем accept = application/dns-message, содержимое запроса идентично двоичному запросу к серверу DNS по RFC 1035, преобразованное в текстовый вид: в случае метода GET используется переменная dns с кодированным Base64 значением запроса DNS, в случае POST используется content-type = application/dns-message и значение DNS-запроса передаётся в шестнадцатиричном виде (). Ответы передаются с типом content-type = application/dns-message и текстом, содержащим шестнадцатиричный код ответа сервера DNS. Также в обмене данными c клиентом сервер может использовать для отправки значений клиенту push протокола HTTP/2, описанный в RFC 7540.
Общедоступные серверы DNS over HTTPS
Реализации серверов DoH доступны публично и бесплатно у некоторых поставщиков DNS.
Предлагаются три реализации для производственных услуг: Провайдер IP-адреса Блокирование URL описания Cloudflare 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001 нет https://cloudflare-dns.com/dns-query Cloudflare 1.1.1.2 1.0.0.2 2606:4700:4700::1112 2606:4700:4700::1002 вредоносный контентhttps://one.one.one.one/family/ Cloudflare 1.1.1.3 1.0.0.3 2606:4700:4700::1113 2606:4700:4700::1003 вредоносный и взрослый контентhttps://one.one.one.one/family/ Google Public DNS 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 нет https://dns.google/dns-query CleanBrowsing 185.228.168.168 185.228.169.168 2a0d:2a00:1:: 2a0d:2a00:2:: взрослый контент https://doh.cleanbrowsing.org/doh/family-filter/ Adguard 94.140.14.14 94.140.15.15 2a00:5a60::ad1:0ff 2a00:5a60::ad2:0ff рекламный контент https://dns.adguard.com/dns-query Quad9 9.9.9.9 149.112.112.112 2620:fe::fe 2620:fe::9 вредоносный контентhttps://quad9.net/service/service-addresses-and-features/Quad99.9.9.11 149.112.112.11
2620:fe::11
2620:fe::fe:11вредоносный контент, поддержка ECShttps://quad9.net/service/service-addresses-and-features/Quad99.9.9.10 149.112.112.10
2620:fe::10
2620:fe::fe:10нетhttps://quad9.net/service/service-addresses-and-features/ OpenDNS 208.67.222.222 208.67.220.220 2620:119:35::35 2620:119:53::53 нет https://doh.opendns.com/dns-query Яндекс DNS 77.88.8.877.88.8.12a02:6b8::feed:0ff2a02:6b8:0:1::feed:0ff нет https://common.dot.dns.yandex.net
Поддержка в клиентах Firefox с версии 62 — поддержка браузера DNSCrypt-proxy — локальный DNS → прокси DoH doh-php-client — реализация PHP KeeneticOS с версии 3.00 — прошивка для маршрутизаторов KEENETIC OpenWRT — открытая прошивка для маршрутизаторов позволяет включить поддержку DNS over HTTPS в dnsmasq Router OS — начиная с версии 6.47 — прошивка для маршрутизаторов Mikrotik
В апреле 2019 года специалисты компании Qihoo 360 обнаружили образец вредоносного ПО, использующий протокол DNS over HTTPS, и назвали его Godlua Backdoor.
См. также DNSSEC DNS over TLS
Примечания
Литература
Категория:DNS Категория:Незавершённые статьи об Интернете Категория:Интернет-протоколы Категория:Протоколы прикладного уровня Категория:Сетевая безопасность