Каждый раз, когда вы открываете сайт, устройство просит резолвер превратить доменное имя в IP-адрес. Этот вопрос — открытая запись о том, куда вы собираетесь пойти, и по умолчанию он уходит тому резолверу, который вам выдала сеть, то есть обычно резолверу вашего интернет-провайдера.

Утечка DNS — это когда такие запросы уходят не туда, куда вы рассчитывали. Типичный случай: устройство настроено на приватный или шифрованный резолвер, но по одной из нескольких структурных причин всё равно продолжает отправлять часть или все запросы провайдеру. Внешне ничего не ломается — поэтому утечки годами остаются незамеченными.

Что именно раскрывает DNS?

Домен, момент времени и источник — а этого достаточно, чтобы восстановить сессию просмотра.

Классический DNS работает без шифрования на порту 53. Любой, кто находится между вами и резолвером, может прочитать запрос, а сам резолвер видит их все, привязанными к вашему подключению. Конкретную страницу он не видит, но чувствительная часть обычно как раз домен.

Шифрование меняет то, у кого хранится эта запись, а не то, существует ли она:

Транспорт Шифруется? Кто видит запрос
Обычный DNS (порт 53) Нет Ваша сеть, ваш провайдер, резолвер
DNS over TLS (DoT, порт 853) Да Резолвер, который вы выбрали
DNS over HTTPS (DoH, порт 443) Да Резолвер, который вы выбрали; сети труднее отличить это от веб-трафика
DNSSEC Нет — он аутентифицирует То же, что у обычного DNS; он доказывает подлинность ответов, но не прячет их

DNSSEC чаще всего понимают неправильно. Он подписывает ответы, чтобы их нельзя было подделать. Конфиденциальности он не даёт вообще никакой.

Из-за чего утечки происходят на самом деле?

Почти все они сводятся к шести структурным причинам.

Причина Механизм
Раздельная маршрутизация Часть трафика идёт через туннель, а DNS — через интерфейс по умолчанию
IPv6 не заворачивается Туннель обслуживает только IPv4, поэтому запросы IPv6 уходят провайдерским путём
Параллельное разрешение в ОС Windows умеет опрашивать все интерфейсы разом и брать первый ответ
DoH на уровне браузера Браузер разрешает имена независимо от системной настройки, в обе стороны
Подмена на роутере Роутер навязывает свой резолвер через DHCP или перехватывает порт 53
Captive portal Сети отелей и аэропортов угоняют DNS, чтобы подсунуть страницу входа

Случай с браузером стоит расписать, потому что он бьёт в обе стороны. Браузер со своей настройкой DoH может обойти тщательно настроенный системный резолвер, и ровно так же правильно настроенный браузер может скрыть тот факт, что всё за его пределами по-прежнему утекает. Проверить одно и сделать вывод о другом — самая частая ошибка тестирования.

Как это проверить?

Проверяйте каждый слой отдельно, потому что их показания могут расходиться.

Операционная система — какие резолверы прописаны:

Система Команда
macOS scutil --dns | grep nameserver
Windows Get-DnsClientServerAddress
Linux (systemd-resolved) resolvectl status
Linux (в общем случае) cat /etc/resolv.conf

Какой резолвер ответил на самом деле — настройка и поведение это разные вещи:

dig +short whoami.akamai.net возвращает IP-адрес того резолвера, который выполнил запрос от вашего имени. Сравните его с тем, который вы ожидали.

Уровень браузера: откройте настройку защищённого DNS в браузере и посмотрите, включена ли она и какой провайдер выбран. Затем откройте в этом же браузере страницу проверки утечек DNS. Если она показывает не тот резолвер, что проверка в командной строке, браузер разрешает имена самостоятельно.

IPv6: повторите проверку запросом только по IPv6. Туннель, обслуживающий один лишь IPv4, — самая частая причина частичной утечки.

Как читать результат?

Сравнивайте владельца резолвера со своими ожиданиями, а не со списком «хороших» адресов.

Что вы видите Как это понимать
Резолвер принадлежит провайдеру, хотя вы настроили другой Утечка
Несколько резолверов, один из них провайдерский Частичная утечка — запросы расщепляются
По IPv4 ожидаемый резолвер, по IPv6 провайдерский Утечка по IPv6
Браузер и система показывают разные резолверы Не обязательно утечка, но два независимых пути, которые надо проверить
Резолвер находится в неожиданной стране Часто это норма — anycast-резолверы отвечают с ближайшей площадки
Резолвер — приватный адрес роутера Ничего не доказывает; роутер пересылает запросы дальше, так что смотрите настройки самого роутера

Последняя строка ловит людей в домашних сетях. Результат 192.168.1.1 говорит лишь о том, что ответил ваш роутер. Куда роутер пересылает запросы — отдельный вопрос, ответ на который лежит в его настройках WAN или DNS.

Каковы пределы того, что даёт исправление?

Устранение утечки DNS меняет то, кто узнаёт, какие домены вы искали. Приватным сам визит от этого не становится, и главное искажение темы — как раз преувеличение этого эффекта.

После того как имя разрешено, устройство открывает соединение с этим IP-адресом. Любой наблюдатель на пути видит адрес назначения, а в большинстве TLS-соединений имя сервера передаётся в рукопожатии незашифрованным, если только с обеих сторон не работает Encrypted Client Hello. Оба сигнала опознают сайт независимо от DNS.

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

Смежные вопросы