DNS, DoH, DoT и DNSCrypt
Прежде чем открыть сайт, устройство спрашивает: какой у него адрес? Этот вопрос уходит на DNS-сервер — и в обычном виде идёт открытым текстом. Даже если сам сайт открывается по HTTPS, сам факт «этот человек спрашивал адрес такого-то сайта» виден всем по дороге.
DoT — DNS over TLS
Заворачивает DNS-запросы в TLS и отправляет на отдельный порт 853. Реализация простая и честная: сразу видно, что это DNS, просто зашифрованный.
Плюс: администратор сети видит DNS-трафик как DNS-трафик и может им управлять осмысленно — удобно в корпоративной среде. Минус: ровно то же самое. Отдельный порт легко заблокировать целиком, и тогда разрешение имён просто перестаёт работать.
DoH — DNS over HTTPS
Тот же смысл, другая упаковка: запрос идёт как обычный HTTPS-запрос на 443-й порт, вперемешку со всем остальным веб-трафиком.
Плюс: со стороны неотличим от посещения сайта, заблокировать выборочно почти невозможно. Минус: по той же причине его недолюбливают сетевые администраторы — родительский контроль и корпоративные фильтры на DNS перестают работать.
Это самый распространённый вариант сегодня: DoH встроен в Chrome, Firefox, Windows и Android, и часто включён по умолчанию.
DNSCrypt
Появился раньше остальных и решал ту же задачу до появления стандартов. Использует собственный формат с подписью ответов, что защищает не только от подглядывания, но и от подмены ответа по дороге.
Стандартом так и не стал, поддержки в браузерах и системах нет — нужен отдельный клиент вроде dnscrypt-proxy. Сейчас это выбор тех, кто настраивает разрешение имён на роутере или на своём сервере и хочет тонкого контроля.
Сравнение
| Признак | Обычный DNS | DoT | DoH | DNSCrypt |
|---|---|---|---|---|
| Порт | 53 | 853 | 443 | 443 или свой |
| Шифрование | Нет | Да | Да | Да |
| Заметность | Очевиден | Виден как DNS | Как обычный HTTPS | Свой формат |
| Защита от подмены ответа | Нет | Есть | Есть | Есть, с подписью |
| Встроен в браузеры и ОС | Да | Частично | Да | Нужен клиент |
| Легко ли заблокировать | Тривиально | Просто | Сложно | Средне |
Утечка DNS: почему она бывает даже с VPN
Самая частая и самая неочевидная проблема. Трафик идёт через туннель, а запросы на разрешение имён продолжают уходить напрямую — на DNS-сервер провайдера. Формально всё зашифровано, а список посещённых сайтов провайдер видит по-прежнему.
Причины обычно три:
- клиент не перехватывает DNS и оставляет системные настройки;
- в системе жёстко прописан свой DNS-сервер, и он имеет приоритет;
- браузер использует собственный DoH мимо системных настроек.
Как проверить: подключитесь и откройте любой сервис проверки утечки DNS. Если в результатах видны серверы вашего провайдера или ваша страна — утечка есть.
Как чинить: в настройках клиента указать DNS явно, например
1.1.1.1 или 8.8.8.8, и включить перехват DNS, если такая
опция есть. В хороших клиентах это работает из коробки, но проверить стоит.
Что делать на практике
- С VPN: ничего специально настраивать не надо, но проверить на утечку — обязательно. Один раз, после настройки клиента.
- Без VPN: включить DoH в браузере — это минута работы и заметно уменьшает то, что видит провайдер.
- На роутере: имеет смысл, если хотите закрыть все устройства разом, включая телевизор. Тут пригодится DNSCrypt или DoT.
Что VPN скрывает помимо этого, а что не скрывает никогда — на отдельной странице.
Нужен рабочий доступ?
DarkyVS — есть тестовый доступ на сутки. Windows, Android, iOS, macOS, роутеры.
Перейти на DarkyVS