Введение
Традиционные DNS-запросы и ответы отправляются по UDP или TCP без шифрования. Это уязвимо для прослушивания и спуфинга (включая интернет-фильтрацию на основе DNS). Ответы рекурсивных распознавателей клиентам наиболее уязвимы для нежелательных или злонамеренных изменений, в то время как обмен данными между рекурсивными распознавателями и авторитетными серверами имен часто включает дополнительную защиту .
Чтобы решить эти проблемы, Google Public DNS предлагает разрешение DNS через TCP-соединения с шифрованием TLS, как указано в RFC 7858 . DNS-over-TLS повышает конфиденциальность и безопасность между клиентами и преобразователями. Это дополняет DNSSEC и защищает проверенные DNSSEC результаты от модификации или подделки на пути к клиенту.
Как это работает
Клиентская система может использовать DNS-over-TLS с одним из двух профилей : строгая или оппортунистическая конфиденциальность. В профиле строгой конфиденциальности пользователь настраивает имя DNS-сервера (имя домена аутентификации в RFC 8310 ) для службы DNS-over-TLS, и клиент должен иметь возможность создать безопасное TLS-соединение через порт 853 с DNS-сервером. Неспособность установить безопасное соединение является серьезной ошибкой и приведет к отсутствию службы DNS для клиента.
С оппортунистическим профилем конфиденциальности IP-адрес DNS-сервера может быть настроен непосредственно пользователем или получен из локальной сети (используя DHCP или другие средства). Преобразователь клиента пытается установить безопасное соединение через порт 853 с указанным DNS-сервером. Если установлено безопасное соединение, это обеспечивает конфиденциальность запросов пользователя от пассивных наблюдателей на пути. Поскольку клиент не проверяет подлинность сервера, он не защищен от активного злоумышленника. Если клиент не может установить безопасное соединение через порт 853, он возвращается к обмену данными с DNS-сервером через стандартный порт DNS 53 по UDP или TCP без какой-либо безопасности или конфиденциальности. Использование Opportunistic Privacy предназначено для поддержки поэтапного развертывания повышенной конфиденциальности с целью повсеместного внедрения строгого профиля конфиденциальности.
При использовании строгого профиля конфиденциальности резолверы-заглушки устанавливают соединение DNS-over-TLS, выполнив следующие действия.
- Для преобразователя-заглушки настроено имя преобразователя DNS-over-TLS
dns.google
. - Резолвер-заглушка получает IP-адрес(а) для
dns.google
с помощью локального резолвера DNS. - Резольвер-заглушка устанавливает TCP-соединение с портом 853 по одному из этих IP-адресов.
- Резолвер-заглушка инициирует рукопожатие TLS с резолвером Google Public DNS.
- Общедоступный DNS-сервер Google возвращает свой сертификат TLS вместе с полной цепочкой сертификатов TLS вплоть до доверенного корневого сертификата.
- Преобразователь-заглушка проверяет подлинность сервера на основе представленных сертификатов.
- Если удостоверение не может быть проверено, разрешение DNS-имени завершается сбоем, и тупиковый преобразователь возвращает ошибку.
- После того, как TLS-соединение установлено, тупиковый преобразователь получает безопасный путь связи между общедоступным DNS-сервером Google.
- Теперь резолвер-заглушка может отправлять DNS-запросы и получать ответы по соединению.
При использовании оппортунистического профиля конфиденциальности клиент сначала пытается создать безопасное TLS-соединение с сервером. Это делается аналогично предыдущему с одним важным отличием — клиент не выполняет проверку сертификата. Это означает, что личности сервера нельзя доверять. Если TLS-соединение через порт 853 с сервером не может быть установлено, тупиковый резолвер возвращается к обращению к DNS-серверу через порт 53.
Конфиденциальность
Наша политика конфиденциальности применяется к службе DNS-over-TLS.
27.06.2019 мы повторно включили клиентскую подсеть EDNS (ECS) для службы DNS-over-TLS. ECS был отключен при запуске сервиса.
Поддержка стандартов
Google Public DNS реализует DNS-over-TLS на основе RFC 7858 . Кроме того, мы поддерживаем следующие рекомендации по предоставлению высококачественной службы DNS с малой задержкой.
- TLS 1.3 (RFC 8846)
- Быстрое открытие TCP (RFC 7413)
- Требования к реализации транспорта DNS через TCP (RFC 7766)
Начните использовать его
См. инструкции по настройке на устройстве с Android 9 (Pie) или выше.
DNS-over-TLS также поддерживается для службы Google Public DNS64 только для IPv6. Обратите внимание, что настраивать DNS64 для мобильного устройства, которое будет подключаться к нескольким сетям, не рекомендуется, поскольку DNS64 работает только при наличии IPv6.