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[недоступне посилання]
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[недоступне посилання]
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[недоступне посилання]

Підтримка клієнтів[ред. | ред. код]

  • 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.

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. а б IETF protects privacy and helps net neutrality with DNS over HTTPS • The Register. Архів оригіналу за 14 грудня 2017. Процитовано 18 січня 2022.
  2. а б DNS-over-HTTPS | Public DNS | Google Developers. Архів оригіналу за 20 березня 2018. Процитовано 18 січня 2022.
  3. Mozilla Is Testing «DNS over HTTPS» Support in Firefox. Архів оригіналу за 20 березня 2018. Процитовано 18 січня 2022.
  4. а б draft-ietf-doh-dns-over-https-07 — DNS Queries over HTTPS. Архів оригіналу за 25 квітня 2018. Процитовано 18 січня 2022.
  5. ALEX.TURING, YEGENSHEN, An Analysis of Godlua Backdoor [Архівовано 18 січня 2022 у Wayback Machine.], 1 JULY 2019, netlab 360.com blog (англ.)
  6. DNS over HTTPS · curl/curl Wiki · GitHub. Архів оригіналу за 2 квітня 2018. Процитовано 18 січня 2022.
  7. DNS Security and Privacy — Choosing the right provider. Архів оригіналу за 9 листопада 2020. Процитовано 18 січня 2022.
  8. Introducing 1.1.1.1 for Families. The Cloudflare Blog (англ.). 1 квітня 2020. Архів оригіналу за 1 березня 2022. Процитовано 23 вересня 2020.
  9. Improving DNS Privacy in Firefox — Firefox Nightly News. Архів оригіналу за 2 вересня 2018. Процитовано 18 січня 2022.
  10. GitHub — jedisct1/dnscrypt-proxy: DNSCrypt Proxy — A flexible DNS proxy, with support for encrypted DNS protocols. Архів оригіналу за 20 січня 2016. Процитовано 18 січня 2022.
  11. GitHub — dcid/doh-php-client: DoH (DNS over HTTPS) PHP Client. Архів оригіналу за 30 грудня 2020. Процитовано 18 січня 2022.
  12. Информация о релизе KeeneticOS 3.1. https://help.keenetic.com (рос.). Keenetic. 22.01.2020. Архів оригіналу за 18 січня 2022. Процитовано 29 жовтня 2020.
  13. OpenWrt Project: DNS over HTTPS with Dnsmasq and https-dns-proxy. openwrt.org. Архів оригіналу за 18 січня 2022. Процитовано 17 травня 2020.
  14. MikroTik (англ.). mikrotik.com. Архів оригіналу за 20 січня 2022. Процитовано 4 червня 2020.