Вопрос или проблема
Существует несколько веб-сайтов, позволяющих вам просматривать ваш DNS. Например, один из них: https://browserleaks.com/dns.
Как работает такой веб-сайт? Особенно, у меня включен DNS через HTTPS, но сайт все равно корректно показывает моего провайдера DNS.
Как работает такой веб-сайт?
Ваш браузер запрашивает локальный DNS-сервер для разрешения имени хоста. Локальный DNS-сервер затем отправляет DNS-запрос на авторитетный DNS-сервер. browserleaks.com
контролирует авторитетный DNS-сервер (“Этот тест пытается разрешить 50 случайно сгенерированных доменных имен”, и вы можете увидеть, что эти домены выглядят как r50q8om8uo71xkwz.dns4.browserleaks.org
), поэтому он может видеть IP-адрес в DNS-запросе, отправленном с вашего локального DNS-сервера.
Особенно, у меня включен DNS через HTTPS, но сайт все равно корректно показывает моего провайдера DNS.
HTTPS (TLS) шифрует лишь уровень приложения, то есть HTTP (и DNS) сообщения, включая имя хоста домена в DNS-запросе и IP-адрес домена в DNS-ответе. Но IP-адрес локального DNS-сервера находится в заголовке IP на сетевом уровне. Более того, шифрование предназначено только для предотвращения атак типа “человек посередине”, но browserleaks.com
контролирует сервер. Поскольку это не атака типа “человек посередине”, даже DNS-сообщения находятся в открытом виде для browserleaks.com
.
Ответ или решение
Сайты, проверяющие утечки DNS, такие как browserleaks.com, используют несколько ключевых механизмов для определения того, какой DNS-сервер вы используете, даже если вы включили DNS over HTTPS (DoH).
Как работают такие сайты?
Когда вы запрашиваете разрешение доменного имени, ваш браузер сначала обращается к локальному DNS-серверу. Локальный DNS-сервер, в свою очередь, посылает запрос к авторитетному DNS-серверу для получения IP-адреса, соответствующего запрашиваемому домену. В случае сайта browserleaks.com, он контролирует авторитетный DNS-сервер, что позволяет ему видеть IP-адрес, использованный в DNS-запросах, которые отправляются с вашего локального DNS-сервера.
Сайт может генерировать множество случайных доменных имен (например, r50q8om8uo71xkwz.dns4.browserleaks.org
) и отправляет запросы на их разрешение. Когда ваш локальный DNS-сервер обрабатывает эти запросы, он передает вашему интернет-провайдеру информацию о том, какую DNS-службу он использует. Таким образом, сайт получает возможность увидеть, какой именно DNS-сервер используется вашим устройством, а также IP-адрес этого сервера.
Почему он все равно показывает вашего провайдера DNS при включенном DNS over HTTPS?
Стоит отметить, что DNS over HTTPS (DoH) шифрует только уровень приложения, что включает в себя HTTP-сообщения и DNS-запросы. Это означает, что содержимое запросов и ответов DNS защищено от перехвата третьими лицами в сети. Однако информация о IP-адресе вашего локального DNS-сервера содержится в заголовке IP-пакета на уровне сетевого протокола.
Даже с активированным DoH, сайт browserleaks.com не является "человеком посередине" (man-in-the-middle) и может видеть ваш IP-адрес, поскольку он контролирует сервер, который отправляет запросы к DNS. Таким образом, даже если DNS-запросы шифруются, сам процесс разрешения по-прежнему может быть видим и зафиксирован.
В дополнение к этому, некоторые браузеры реализуют DoH, предоставляя возможность использовать собственные DNS-серверы для шифрования запросов. Тем не менее, если ваш браузер в первую очередь настроен на использование локального DNS-сервера (например, провайдера интернета), GoH не сможет скрыть сам факт обращения к этому серверу.
Заключение
Таким образом, даже если у вас включен DNS over HTTPS, сайты, проверяющие утечки DNS, все равно могут определить ваш DNS-провайдер благодаря особенностям работы сетевых протоколов. Они получают доступ к IP-адресу вашего локального DNS-сервера и могут определить, какой DNS-сервис вы используете, что указывает на возможные утечки DNS. Для достижения лучшей конфиденциальности можно рассмотреть альтернативные решения, такие как использование безопасных VPN-сервисов, которые шифруют весь ваш трафик, в том числе обращения к DNS.