Перейти до вмістуHisnLabs
← DNS: адресна книга Інтернету

Урок 3 з 4 · 7 хв

Шифрований DNS: DoH і DoT

Два стандарти загортають DNS-пошуки в шифрування. Що це насправді приховує, чого досі не приховує, і як це підтримує macOS.

Попереднє заняття описало звичайний DNS-пошук як листівку: читабельну для будь-кого, хто обробляє її дорогою. Існує два стандарти IETF, щоб покласти цю листівку в конверт: DNS через TLS (DoT, RFC 7858) і DNS через HTTPS (DoH, RFC 8484). Обидва шифрують той самий пошук; вони переважно різняться тим, як його переносять.

DNS через TLS

RFC 7858 прямо заявляє свою мету: «шифрування, надане TLS, усуває можливості для підслуховування та втручання в DNS-запити на шляху», вирішуючи те, що «майже всі DNS-запити надсилаються незашифрованими, що робить їх вразливими до підслуховування зловмисником». DoT використовує власний виділений порт, 853, а не звичайний порт 53. RFC пояснює чому: «ця рекомендація проти використання порту 53 для DNS через TLS покликана уникнути ускладнень при виборі використання чи невикористання TLS і зменшити ризик атак пониження версії».

DNS через HTTPS

RFC 8484 обирає інший шлях: «кожна пара DNS-запит-відповідь відображається в HTTP-обмін», що переноситься через той самий порт 443, який використовує звичайний трафік HTTPS. RFC зазначає, що це має побічну вигоду: «типовий порт HTTPS 443 і можливість змішувати трафік DoH з іншим трафіком HTTPS у тому самому з’єднанні можуть стримувати непривілейовані пристрої на шляху від втручання в операції DNS», бо пошук важче виокремити й заблокувати, коли він виглядає як будь-який інший вебзапит.

Джерело: Cloudflare Learning, DNS over TLS vs. DNS over HTTPS.
DNS через TLS (DoT)DNS через HTTPS (DoH)
Порт853, виділений для DoT443, спільний зі звичайним трафіком HTTPS
Видимий у мережі якВласний, окремий трафік (легко помітити й, якщо мережа вирішить, заблокувати)Змішаний зі звичайним переглядом вебсторінок

Що приховує шифрування, а що досі ні

Обидва стандарти заважають оператору мережі чи підслуховувачу Wi-Fi читати ваші пошуки під час передавання. Жоден не приховує їх від резолвера, якому ви їх надіслали. RFC 8484 прямо каже, що DoH не змінює те, кого може бачити сам сервер: він зазначає, що «різні способи транспортування DNS-запитів і відповідей справді надають дані, які можна використати для зіставлення запитів», і що звичайна вебмеханіка на кшталт IP-адрес клієнта, файлів cookie та інформації про сесію TLS означає, що «DoH, наскільки відомо, не додає нових проблем понад ті, що пов’язані з HTTPS» на боці сервера. RFC 7858 так само зазначає, що DoT «не вирішує інші проблеми безпеки в DNS» і що «навіть із зашифрованими повідомленнями, добре розташована сторона може вловити певні деталі з аналізу часу й розміру повідомлень». Коротко: шифрований DNS переміщує те, хто бачить ваші пошуки, назад до оператора резолвера, якого ви обрали, а не прибирає видимість повністю.

Є ще одна прогалина, яку варто знати. Шифрування DNS-пошуку саме по собі не приховує, до якого сайту ви потім з’єднуєтеся: рукостискання TLS, що йде далі, зазвичай містить ім’я хоста у відкритому вигляді. Як пояснює Cloudflare щодо вказівки імені сервера (SNI), «SNI включає ім’я хоста в повідомлення Client Hello, тобто найперший крок рукостискання TLS» — надісланий до того, як встановлено шифрування. Розширення під назвою Encrypted SNI (ESNI), за тим самим джерелом, «доповнює розширення SNI, шифруючи частину SNI в Client Hello», що «заважає будь-кому, хто підслуховує між клієнтом і сервером, бачити, який сертифікат запитує клієнт». Підтримка приховування SNI досі залежить від того, чи погоджуються на це і браузер, і сайт, і поки що працює не в кожному з’єднанні.

Як це підтримує macOS

Apple документує налаштування DNS для Mac, iPhone та iPad, що робить саме це: воно дозволяє пристрою «спрямовувати DNS-запити пристрою через зашифрований DNS-сервер за допомогою DNS через HTTPS чи DNS через TLS». Це постачається як конфігураційний профіль, що може обмежити зашифрований резолвер конкретними доменами через «додаткові домени збігу» чи застосовуватися лише в певних мережах за допомогою «правил за потреби», що можуть звірятися, наприклад, з ідентифікатором мережі SSID.

Головне

  • DoT (RFC 7858) шифрує DNS за допомогою TLS на виділеному порту, 853; DoH (RFC 8484) шифрує його і переносить через звичайний порт HTTPS, 443, змішуючи з іншим вебтрафіком.
  • Обидва заважають підслуховувачам на шляху мережі читати ваші пошуки.
  • Жоден не приховує ваші пошуки від резолвера, якому ви їх надіслали: сам RFC 8484 каже, що DoH «наскільки відомо, не додає нових проблем понад ті, що пов’язані з HTTPS» на боці сервера.
  • Навіть із шифрованим DNS рукостискання TLS для самого сайту зазвичай розкриває його ім’я хоста у відкритому вигляді (SNI), якщо не використовується розширення на кшталт Encrypted SNI.
  • macOS та iOS підтримують шифрований DNS через задокументований конфігураційний профіль налаштувань DNS, що може вказувати DoH чи DoT і обмежувати його певними доменами чи мережами.

Перевірте себе

  1. 1. Який порт використовує DNS через TLS (DoT), і чому виділений?

    • Порт 80, той самий, що й HTTP
    • Порт 853, обраний частково, щоб уникнути атак пониження версії, які могли б виникнути через неоднозначність на порту 53 — Правильно.
    • Порт 25, той самий, що й пошта
    • Кожного разу випадковий порт

    RFC 7858 призначає DoT власний порт, 853, пояснюючи, що уникнення порту 53 для нього «зменшує ризик атак пониження версії».

  2. 2. Чому DNS через HTTPS (DoH) використовує порт 443?

    • Тому що це єдиний вільний порт
    • Тому що спільне використання порту 443 зі звичайним трафіком HTTPS ускладнює виокремлення й блокування DoH — Правильно.
    • Тому що порт 443 швидший за інші порти
    • DoH не використовує порт 443

    RFC 8484 зазначає, що змішування DoH зі звичайним трафіком HTTPS на порту 443 «може стримувати непривілейовані пристрої на шляху від втручання в операції DNS».

  3. 3. Чи приховують DoH чи DoT ваші DNS-пошуки від резолвера, якому ви їх надсилаєте?

    • Так, повністю
    • Ні, вони приховують пошуки від шляху мережі, але оператор резолвера все одно бачить запити — Правильно.
    • Лише DoH приховує їх від резолвера
    • Лише DoT приховує їх від резолвера

    RFC 8484 стверджує, що DoH «наскільки відомо, не додає нових проблем понад ті, що пов’язані з HTTPS» на боці сервера, тобто оператор резолвера все ще може бачити й зіставляти запити.

  4. 4. Навіть із шифрованим DNS, що зазвичай досі розкриває, до якого сайту ви з’єднуєтеся?

    • Пароль Wi-Fi
    • Ім’я хоста, надіслане у відкритому вигляді в Client Hello TLS (SNI), якщо не використовується розширення на кшталт Encrypted SNI — Правильно.
    • Приватна IP-адреса вашого Mac
    • Кеш DNS-резолвера

    Cloudflare пояснює, що «SNI включає ім’я хоста в повідомлення Client Hello» до початку шифрування; Encrypted SNI (ESNI) створений, щоб його приховати, але поки що не універсальний.

Застосуйте на практиці з FireAI

Застосуйте цей урок на своєму Mac.

Джерела

Застосуйте це на своєму Mac

Усі функції безкоштовно на 17 днів, без банківської картки.

Завантажити для Mac Документація