DNS поверх HTTPS
DNS поверх HTTPS, DNS over HTTPS (DoH) — протокол для розв'язання DNS за протоколом HTTPS. Метою цього методу є підвищення конфіденційності та безпеки користувачів шляхом запобігання перехоплення та маніпулювання даними DNS за допомогою атак типу «Атака посередника»[1]. Станом на березень 2018 року Google і Mozilla Foundation тестують версії DNS по протоколу HTTPS[2][3]. Опублікований IETF в RFC 8484 у жовтні 2018 року.
На додаток до підвищення безпеки ще одна мета 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-адреси | Блокування | Особливість |
---|---|---|---|
Cloudflare | 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001 |
Ні | https://cloudflare-dns.com/dns-query%5Bнедоступне+посилання%5D |
Cloudflare | 1.1.1.2 1.0.0.2 2606:4700:4700::1112 2606:4700:4700::1002 |
шкідливий контент | |
Cloudflare | 1.1.1.3 1.0.0.3 2606:4700:4700::1113 2606:4700:4700::1003 |
шкідливий і дорослий контент[8] | |
Google Public DNS | 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 |
Ні | https://dns.google/dns-query%5Bнедоступне+посилання%5D |
CleanBrowsing | 185.228.168.168 185.228.169.168 2a0d:2a00:1:: 2a0d:2a00:2:: |
дорослий контент | кінцева точка DNS over HTTPS |
Adguard | 176.103.130.130 176.103.130.131 2a00:5a60::ad1:0ff 2a00:5a60::ad2:0ff |
рекламний контент | кінцева точка DNS over HTTPS |
Quad9 | 9.9.9.9 149.112.112.112 2620:fe::fe 2620:fe::9 |
шкідливий контент | |
OpenDNS | 208.67.222.222 208.67.220.220 2620:119:35::35 2620:119:53::53 |
Ні | https://doh.opendns.com/dns-query%5Bнедоступне+посилання%5D |
Підтримка клієнтів
- Firefox з версії 62 — підтримка браузера[9]
- DNSCrypt-proxy — локальний DNS → проксі DoH[10]
- doh-php-client — реалізація PHP[11]
- KeeneticOS з версії 3.00 — прошивка для роутерів KEENETIC[12]
- OpenWRT — відкрита прошивка для роутерів дозволяє включити підтримку DNS поверх HTTPS[13]
- Router OS з версії 6.47 — прошивка для роутерів Mikrotik[14]
Альтернативи
DNSCrypt шифрує немодифікований трафік DNS між клієнтом і DNS-розв'язувачем для запобігання атак типу «Атака посередника», але не минулий процес IETF RFC, тоді як DNS поверх TLS описаний в RFC 7858.
Див. також
Примітки
- IETF protects privacy and helps net neutrality with DNS over HTTPS • The Register
- DNS-over-HTTPS | Public DNS | Google Developers
- Mozilla Is Testing «DNS over HTTPS» Support in Firefox
- draft-ietf-doh-dns-over-https-07 — DNS Queries over HTTPS
- ALEX.TURING, YEGENSHEN, An Analysis of Godlua Backdoor, 1 JULY 2019, netlab 360.com blog (англ.)
- DNS over HTTPS · curl/curl Wiki · GitHub
- DNS Security and Privacy — Choosing the right provider
- Introducing 1.1.1.1 for Families. The Cloudflare Blog (англ.). 1 квітня 2020. Процитовано 23 вересня 2020.
- Improving DNS Privacy in Firefox — Firefox Nightly News
- GitHub — jedisct1/dnscrypt-proxy: DNSCrypt Proxy — A flexible DNS proxy, with support for encrypted DNS protocols.
- GitHub — dcid/doh-php-client: DoH (DNS over HTTPS) PHP Client
- Информация о релизе KeeneticOS 3.1. https://help.keenetic.com (рос.). Keenetic. 22.01.2020. Процитовано 29 жовтня 2020.
- OpenWrt Project: DNS over HTTPS with Dnsmasq and https-dns-proxy. openwrt.org. Процитовано 17 травня 2020.
- MikroTik (англ.). mikrotik.com. Процитовано 4 червня 2020.