Глубокий в-DoH. Разбираемся, как работает DNS over HTTPS и кому (не) выгодно его внедрение

Mr.Who

Пользователь

Mr.Who

Пользователь
1 lvl
Регистрация
20 Янв 2020
Сообщения
8
Реакции
5
Шаткая скрепа DNS
Для порядка и связности изложения кратко вспомним основные понятия. Система доменных имен DNS — одна из технологий, лежащих в самой основе современного интернета. С ее помощью соотносятся числовые IP-адреса и более удобные для человека доменные имена. Она построена по принципу иерархического взаимодействия DNS-серверов.

Важный момент: разрабатывалась эта система еще в 1983 году, и поэтому у нее есть некоторые проблемы с безопасностью. Ведь интернет тогда, как известно, был сетью, которая связывала американские научные и военные учреждения, и подключать к ней кого попало не планировалось.


DNS-запрос и DNS-ответ в базовом устройстве системыDNS-запрос и DNS-ответ в базовом устройстве системы

Если вкратце, то корень проблемы в том, что базовая система DNS принимает и передает любые запросы, поступающие в нее. Как во многих других решениях, которые появились на заре интернета, защиты от злонамеренного использования здесь нет. В те времена считалось, что главное — это простота и масштабируемость.

В результате появились разные методы атак на DNS-серверы (например, отравление кеша DNS или перехват DNS). Результат таких атак — перенаправление клиентских браузеров куда-то, куда пользователи попадать не собирались.

Для борьбы с этими бедами Инженерный совет интернета разработал набор расширений DNSSEC, который добавил к DNS-запросам подпись-аутентификацию на основе криптографии с открытым ключом. Но разрабатывался этот набор расширений очень долго. Проблема стала очевидной еще в начале девяностых, направление работы над проблемой определили к 1993 году, первую версию DNSSEC подготовили к 1997 году, попытались внедрить, стали вносить изменения...

В общем, к 2005 году была создана версия, подходящая для широкомасштабного использования, и ее начали внедрять, распространяя по зонам интернета и DNS-серверам цепочку ключей доверия. Внедряли тоже долго — например, только к марту 2011 года была подписана зона .com.


INFO
Если хочешь подробнее разобраться, от каких угроз DNSSEC должен был защитить DNS, то можешь почитать доклад об анализе угроз того самого Инженерного совета интернета от 2004 года. Как пишут его авторы, спустя десять лет после начала работ настало время отчитаться о том, с какими проблемами и как именно мы собираемся бороться.
Но DNSSEC решает только часть проблемы — он гарантирует аутентичность и целостность данных, но не их приватность. В борьбе за эту цель логичным средством выступает шифрование. Вопрос в том, как именно его реализовать.

Варианты шифрования
Несколько групп разработчиков предложили свои варианты технологических решений. Среди них есть те, которые используют оригинальные способы шифрования, например DNSCrypt или DNSCurve, в котором применяется шифрование с использованием эллиптических кривых. Но решения, оказавшиеся в итоге более популярными, опираются на широко распространенный протокол безопасности TLS. Такими решениями являются DoT (DNS over TLS) и DoH, основной предмет этой статьи.

DoT, как и следует из его названия, использует для зашифрованной передачи DNS-запросов сам протокол TLS. Это влечет за собой смену основных портов и протоколов — вместо UDP по порту 53 используется TCP по порту 853.

DoH устроен иначе и по-другому использует TLS. В DoH TLS-шифрование применяется на уровне протокола HTTPS, с использованием HTTPS-запросов и обращением к HTTP-портам DNS-сервера.

Звучит сложновато? Ян Шауман рассказывает об этом очень точно и доходчиво:

Поскольку HTTPS использует TLS, можно было бы позанудствовать и подоказывать, что технически DoH — это тоже DNS через TLS. Но это было бы неверно. DoT отправляет запросы базового протокола DNS через TLS-соединение на отдельном выделенном порте. DoH использует протокол HTTP на уровне протокола прикладного уровня (HTTP application layer protocol), чтобы отправлять запросы на HTTPS-порт сервера, используя и включая все элементы обычных сообщений HTTP.
DoH: DNS-сообщения завернуты в HTTPSDoH: DNS-сообщения завернуты в HTTPS


DoHодим до сути
Здесь резонно задаться вопросом: а в чем вообще тут может быть проблема? Чем больше безопасности, тем лучше, разве не так?

Ответ на этот вопрос лежит в нюансах выбранных решений, их сильных и слабых сторонах. А именно в том, как новая технология взаимодействует с разными участниками системы DNS, кого из них ее разработчики считают условно заслуживающими доверия, а кого — источниками угрозы. И речь сейчас даже не о хакерах-злоумышленниках, имеющих откровенно преступные цели.

Речь о том, что между пользовательским устройством и конечным сайтом находятся посредники. Администратор сети, файрвол, провайдер интернета — все они могут в своих интересах взаимодействовать с системой DNS, задавая своим резолверам имен DNS настройки того, какие запросы отслеживать, блокировать, модифицировать. Так можно встраивать рекламу, отсекать вредоносный контент, не пускать на определенные ресурсы...

Путь запроса от клиента до сервера может проходить через множество резолверовПуть запроса от клиента до сервера может проходить через множество резолверов

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

Поскольку для DoT используется новый, выделенный порт, возможно заметить передаваемый трафик и наблюдать за его объемами, шифрование этому никак не помешает. При желании можно даже заблокировать его вовсе.

В общем, DoT нужно грамотно настроить, но зато он содержит некоторые крайне полезные для системных администраторов и сетевых инженеров функции. Поэтому многие из профессионалов и хвалят за это DoT.

С DoH история другая. Эта технология разрабатывалась с расчетом на пользовательские приложения, а именно — браузеры. Это ключевая деталь во всей этой истории. Означает она вот что. При использовании DoH весь трафик, который не относится к браузерам, идет через базовый DNS, но браузерный трафик при этом обходит любые настройки DNS — на уровне операционной системы, локальной сети, провайдера — и, минуя промежуточные этапы, по HTTPS попадает сразу к поддерживающему DoH резолверу DNS.
 
Сверху