Открыть сервис

DNS over TLS

DNS over TLS (DoT, DNS поверх TLS) — это протокол безопасности, предназначенный для шифрования и аутентификации запросов и ответов системы доменных имён (DNS) с использованием протокола Transport Layer Security (TLS). DoT относится к классу технологий, повышающих конфиденциальность и целостность DNS-трафика, защищая его от перехвата, подмены и анализа со стороны промежуточных узлов сети (например, интернет-провайдеров или злоумышленников). В отличие от традиционного DNS, который передаёт данные в открытом виде (обычно через UDP или TCP на порт 53), DoT инкапсулирует DNS-сообщения в зашифрованный TLS-туннель, используя по умолчанию TCP-порт 853.

История и развитие

Традиционный протокол DNS, разработанный в 1980-х годах, не предусматривал механизмов шифрования или аутентификации. Это делало его уязвимым для атак «человек посередине» (MITM), перехвата трафика и DNS-спуфинга. С ростом осведомлённости о проблемах конфиденциальности в интернете, особенно после разоблачений массовой слежки в начале 2010-х годов, возникла необходимость в защищённых версиях DNS.

Работа над стандартизацией DoT началась в рамках Рабочей группы по расширениям DNS (DNS Extensions, DNSEXT) в IETF. Первый проект стандарта был предложен в 2014 году. Основным документом, определяющим DoT, является RFC 7858, опубликованный в мае 2016 года. Дополнительные спецификации, такие как RFC 8310 (об использовании аутентификации на основе сертификатов), уточнили требования к реализации.

DoT был разработан как альтернатива и дополнение к DNS over HTTPS (DoH), который также шифрует DNS-запросы, но использует протокол HTTP/2 и порт 443. Выбор между DoT и DoH часто определяется архитектурными предпочтениями: DoT считается более «чистым» с точки зрения сетевого стека, так как работает на отдельном порту, что упрощает его фильтрацию и мониторинг, в то время как DoH маскирует DNS-трафик под обычный веб-трафик.

Принцип работы

Протокол DoT работает на транспортном уровне, устанавливая защищённое TLS-соединение между DNS-клиентом (например, операционной системой, браузером или отдельным DNS-резольвером) и DNS-сервером, поддерживающим DoT.

Установка соединения

  1. Инициализация: Клиент (резольвер) инициирует TCP-соединение с сервером на порт 853.
  2. Рукопожатие TLS: Происходит стандартное рукопожатие TLS, в ходе которого:
  • Клиент и сервер согласовывают версию TLS (обычно 1.2 или 1.3) и набор шифров.
  • Сервер предоставляет свой цифровой сертификат X.509, подписанный доверенным центром сертификации (CA).
  • Клиент проверяет сертификат сервера, чтобы убедиться в его подлинности и предотвратить атаки MITM. Валидация может включать проверку имени сервера (SNI) и цепочки сертификатов.
  1. Шифрование: После успешного рукопожатия все последующие DNS-сообщения (запросы и ответы) шифруются с использованием согласованного симметричного ключа. Шифрование защищает содержимое запроса (например, www.example.com`) и ответа (IP-адрес) от прослушивания.

Передача данных

После установления защищённого канала клиент отправляет стандартные DNS-запросы (в формате, определённом в RFC 1035), которые инкапсулируются в TLS-записи. Каждое DNS-сообщение предваряется двухбайтовым полем длины, что позволяет мультиплексировать несколько запросов в одном TCP-соединении. Сервер, в свою очередь, отправляет зашифрованные ответы.

Отличия от DNS over HTTPS

  • Порт: DoT использует выделенный порт 853, DoH — порт 443 (стандартный HTTPS).
  • Протокол: DoT работает непосредственно поверх TLS, DoH — поверх HTTP/2 (или HTTP/1.1) и TLS.
  • Видимость: DoT легко идентифицируется и блокируется сетевыми администраторами по порту, в то время как DoH маскируется под обычный веб-трафик, что делает его сложнее для фильтрации.
  • Сложность: DoT проще в реализации с точки зрения кода, так как не требует обработки HTTP-заголовков.

Преимущества и недостатки

Преимущества

  • Конфиденциальность: Шифрование предотвращает перехват DNS-запросов и ответов, что защищает историю посещений пользователя от интернет-провайдера, злоумышленников в общественных Wi-Fi сетях и других третьих сторон.
  • Целостность: Аутентификация сервера через TLS-сертификаты гарантирует, что клиент общается именно с легитимным DNS-сервером, а не с подставным. Это предотвращает DNS-спуфинг и перенаправление на вредоносные сайты.
  • Защита от манипуляций: Шифрование делает невозможным изменение DNS-ответов в пути (например, для вставки рекламы или блокировки сайтов на уровне провайдера).
  • Стандартизация: DoT является стандартом IETF (RFC 7858), что обеспечивает совместимость между различными реализациями.

Недостатки

  • Зависимость от порта: Использование выделенного порта 853 делает DoT уязвимым для блокировки на уровне сети. Администраторы могут легко заблокировать весь трафик на этот порт, что сведёт на нет преимущества протокола.
  • Производительность: Установка TLS-соединения требует дополнительных вычислительных ресурсов и времени (дополнительные RTT — round-trip times). Это может незначительно увеличить задержку при первом запросе, хотя современные реализации (TLS 1.3, 0-RTT) минимизируют этот эффект.
  • Сложность настройки: Для конечного пользователя настройка DoT может быть сложнее, чем использование стандартного DNS, особенно если операционная система или роутер не имеют встроенной поддержки.
  • Централизация: Поскольку DoT-серверы должны иметь валидные TLS-сертификаты, их эксплуатация часто осуществляется крупными компаниями (например, Cloudflare, Google, Quad9), что может привести к централизации DNS-инфраструктуры и потенциальным проблемам с конфиденциальностью данных.

Применение и поддержка

DoT используется в различных сценариях:

  • Операционные системы: Android (начиная с версии 9) и iOS (начиная с версии 14) имеют встроенную поддержку DoT. В Windows 10 и 11 поддержка DoT была добавлена в обновлениях, но её настройка требует ручного вмешательства.
  • Браузеры: Некоторые браузеры, такие как Mozilla Firefox, поддерживают DoT, хотя чаще они используют DoH.
  • DNS-резольверы: Многие публичные DNS-серверы, такие как Cloudflare (1.1.1.1), Google (8.8.8.8) и Quad9 (9.9.9.9), поддерживают DoT.
  • Корпоративные сети: Администраторы могут использовать DoT для защиты DNS-трафика внутри организации, но могут также блокировать его для соблюдения политик безопасности.
  • VPN-сервисы: Многие VPN-провайдеры предлагают DoT как часть своей защиты от утечек DNS.

Критика и альтернативы

Основная критика DoT связана с его уязвимостью к блокировке на уровне сети. Противники DoT также указывают на то, что он не решает проблему конфиденциальности данных на стороне DNS-сервера: оператор сервера всё равно видит все запросы пользователя. Альтернативой является DoH, который, будучи замаскированным под HTTPS, сложнее блокируется, но также может быть использован для обхода корпоративных политик. Другой альтернативой является DNSCrypt, который также шифрует DNS-трафик, но не является стандартом IETF.

Источники

  • RFC 7858: Specification for DNS over Transport Layer Security (TLS)
  • RFC 8310: Usage Profiles for DNS over TLS and DNS over DTLS
  • RFC 1035: Domain Names - Implementation and Specification
  • Документация по настройке DNS over TLS в операционных системах Android, iOS, Windows.
  • Статьи и публикации на тему безопасности DNS от Cloudflare, Google, Quad9.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →