Перейти к основному содержанию

Настройка DoH и ESNI в Mozilla Firefox

DNS

В браузере Mozilla Firefox есть возможность включить использование протоколов DNS over HTTPS и Encrypted SNI. Настроим вместе DoH и ESNI в браузере Mozilla Firefox через провайдера Cloudflare.

Что такое DoH и ESNI?

DoH — DNS over HTTPS

Обращение к DNS серверу для разрешения доменных имён происходит по 53 порту в открытом виде. Такой запрос ничем не защищён от кибератаки вида Man-in-the-Middle (человек посередине). Злоумышленник, получив доступ к любому серверу в цепочке DNS запроса, может манипулировать вашим DNS трафиком, выдавая себя за систему, с которой вы общаетесь. Мне, например, глубоко безразлично, подсматривают ли на какие порносайты я захожу. А кому-то не хочется светить свою историю. А вот если уведут мою учётную запись от онлайн банка, то это будет печально.

Для усиления безопасности и защиты приватности пользователей путём шифрования DNS запросов был придуман протокол DNS over HTTPS. Протокол DoH инкапсулирует DNS запросы в HTTPS трафик и по 443 порту отправляет их DNS серверу. Естественно, нужно использовать специальный DNS сервер с поддержкой DoH.

Примеры общедоступных DNS серверов с поддержкой DoH:

Провайдер IP Блокировка DoH-URI-template
Cloudflare 1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
Нет. https://cloudflare-dns.com/dns-query
Cloudflare
Security
1.1.1.2
1.0.0.2
2606:4700:4700::1112
2606:4700:4700::1002
Вредоносный контент. https://security.cloudflare-dns.com/dns-query

Cloudflare
Family

1.1.1.3
1.0.0.3
2606:4700:4700::1113
2606:4700:4700::1003
Вредоносный и взрослый контент. https://family.cloudflare-dns.com/dns-query
Google 8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
Нет. https://dns.google/dns-query

CleanBrowsing
Security

185.228.168.9
185.228.169.9
2a0d:2a00:1::2
2a0d:2a00:2::2
Вредоносный контент. https://doh.cleanbrowsing.org/doh/security-filter/

CleanBrowsing
Adult

185.228.168.10
185.228.169.11
2a0d:2a00:1::1
2a0d:2a00:2::1
Вредоносный и взрослый контент. https://doh.cleanbrowsing.org/doh/adult-filter/
CleanBrowsing
Family
185.228.168.168
185.228.169.168
2a0d:2a00:1::
2a0d:2a00:2::
Вредоносный, взрослый и смешанный контент. https://doh.cleanbrowsing.org/doh/family-filter/
Adguard 94.140.14.14
94.140.15.15
2a10:50c0::ad1:ff
2a10:50c0::ad2:ff
Рекламный контент. https://dns.adguard.com/dns-query
Adguard
Family
94.140.14.15
94.140.15.16
2a10:50c0::bad1:ff
2a10:50c0::bad2:ff
Рекламный и взрослый контент. https://dns-family.adguard.com/dns-query
Quad9 9.9.9.10
149.112.112.10
2620:fe::10
2620:fe::fe:10
Нет. https://dns10.quad9.net/dns-query
Quad9
Sequrity
9.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::9
Вредоносный контент. https://dns.quad9.net/dns-query
https://dns9.quad9.net/dns-query
Quad9
Secured ECS support
9.9.9.11
149.112.112.11
2620:fe::11
2620:fe::fe:11
Вредоносный контент. https://dns11.quad9.net/dns-query
OpenDNS 208.67.222.222
208.67.220.220
2620:119:35::35
2620:119:53::53
Нет. https://doh.opendns.com/dns-query
OpenDNS
Family
208.67.222.123
208.67.220.123
2620:119:35::123
2620:119:53::123
Взрослый контент. https://doh.familyshield.opendns.com/dns-query

ESNI — Encrypted Server Name Indication

Даже если вы включили DoH, то ваш провайдер всё равно знает, на какой домен вы пытаетесь зайти. Дело в том, что обычный протокол TLS SNI перед началом шифрования отправляет провайдеру доменное имя в ClientHello во время рукопожатия. Перед началом шифрования серверу необходимо знать, к какому домену вы обращаетесь, чтобы предъявить нужный сертификат. И доменное имя отправляется в открытом виде, что на корню рубит идею приватности DNS запросов.

dns

А протокол Encrypted SNI шифрует все данные публичным ключом сервера из DNS до установления TLS сессии.

dns

Выбор дистрибутива браузера Mozilla Firefox

Прежде чем перейти непосредственно к настройкам, следует правильно выбрать дистрибутив браузера. Дело в том, что начиная с версии 85.0 браузер Firefox официально больше не поддерживает технологию защиты от перехватов ESNI (Encrypted Server Name Indication). Вместо неё теперь — ECH или Encrypted Client Hello.

В общем, ECH круче чем ESNI, но есть ньюанс. Провайдер Cloudflare сам ещё не включил эту технологию. Сложилась парадоксальная ситуация, Mozilla Firefox уже не поддерживает ESNI, а Cloudflare ещё не поддерживает ECH. Но выход есть. Mozilla рекомендует пользователям временно перейти на Firefox ESR, в котором поддержка ESNI еще не отключена.

Firefox Extended Support Release

Я скачиваю Firefox Extended Support Release 78.9.0esr (64-битный) для Windows 10.

firefox

Настройка сети

В настройках сети в качестве DNS серверов я укажу IP адреса Cloudflare. Это не обязательно, просто будет наглядно. Указываю IP адреса:

  • 1.1.1.1
  • 1.0.0.1

doh

Протестируем браузер в Cloudflare.

https://www.cloudflare.com/ssl/encrypted-sni/

doh

Итак, мы видим, что Encrypted SNI не работает. Secure DNS (в нашем случае это DNS over HTTPS) тоже не работает, не смотря на то, что мы используем безопасный DNS сервер CloudFlare с IP адресом 1.1.1.1.

Настройка DoH в браузере Mozilla Firefox

Открываем настройки браузера. Можно через вкладку:

about:preferences

Или через интерфейс:

doh

Основные > Параметры сети > Настроить.

doh

Устанавливаем галку "Включить DNS через HTTPS". Используемый провайдер по умолчанию "Cloudflare". Можно выбрать также NextDNS или указать Другой URL. Для указания своего URL можно использовать DoH-URI-template из таблицы выше. В таблице приведены не все провайдеры. OK.

Переходим к более тонким настройкам. Открываем вкладку:

about:config

Находим параметр network.trr.mode. Это режим работы TRR (Trusted Recursive Resolver).

doh

При включении DoH в Firefox параметр network.trr.mode по умолчанию устанавливается в значение 2. Возможны варианты:

  • 0 — Отключить TRR по умолчанию.
  • 1 — Firefox выберет самый быстрый вариант.
  • 2 (по умолчанию) — DNS over HTTPS по умолчанию, стандартный DNS-сервер резервный.
  • 3 — Только TRR. Отключается стандартный резолвер.
  • 4 — Теневой режим. DNS over HTTPS работает параллельно с обычным DNS-сервером для синхронизации и измерений. Используются только результаты стандартного DNS-сервера.
  • 5 — Отключить TRR по выбору.

Оставляю вариант по умолчанию — 2.

Находим параметр network.trr.uri.

doh
По умолчанию для Cloudflare браузер устанавливает значение https://mozilla.cloudflare-dns.com/dns-query. Не меняю.

Secure DNS (в нашем случае DNS over HTTPS) теперь заработает. Или не заработает, потому что IP адрес https://mozilla.cloudflare-dns.com/dns-query заблокирован РКН.

doh

Я просто явно укажу другой IP адрес Cloudflare. Находим параметр network.trr.bootstrapAddress и устанавливаем ему значение DNS сервера Cloudflare 1.1.1.1. Этот параметр переопределяет IP адрес домена, указанного в network.trr.uri.

doh

Протестируем браузер в Cloudflare.

https://www.cloudflare.com/ssl/encrypted-sni/

doh

Secure DNS (в нашем случае DNS over HTTPS) теперь работает.

Настройка ESNI в браузере Mozilla Firefox

Для включения ESNI в браузере Mozilla Firefox необходимо предварительно настроить DNS over HTTPS как описано выше.

Находим параметр network.security.esni.enabled и устанавливаем ему значение true.

esni

Протестируем браузер в Cloudflare.

https://www.cloudflare.com/ssl/encrypted-sni/

esni

Encrypted SNI теперь работает.

Вместо заключения

С какой стороны ни посмотри — DNS over HTTPS для нас, как конечных пользователей, очень хорошая штука.

Но технологии DNS over HTTPS и Encrypted SNI как кость в горле провайдеров, которые стремятся повысить свой доход путём встраивания рекламы в контент или продажи статистических данных сторонным компаниям.

Госорганы тоже не заинтересованы в том, чтобы преступники скрывали свои действия данной технологией. Кстати, уже появились вирусы, которые маскируют свою активность помощью DNS over HTTPS.

Повсеместное внедрение DoH в компаниях может снизить возможности встроенных централизованных средств информационной безопасности, которые мониторят общий трафик и ловят DNS обращения к зловредным и сомнительным ресурсам. Проблема, конечно, решается путём децентрализации таких систем защиты, но это накладно.

Всё это тормозит внедрение технологии DoH, но движение есть. Mozilla Firefox уже собирается включить по умолчанию DNS over HTTPS в США. В Великобритании DoH будет по умолчанию отключён. Цели Google, Cloudflare, Mozilla, Microsoft и прочих интернет-гигантов, конечно, не бескорыстны. Статистика и трафик DNS запросов теперь будет сосредотачиваться только у них. Этот ресурс монитизируется, промежуточные провайдеры окажутся в пролёте.

Ссылки

В операционной системе Windows тоже появилась возможность использовать DNS over HTTPS:

Windows 10 — настройка DNS over HTTPS (DoH)

 

Похожие материалы

Windows 10 — настройка DNS over HTTPS

В Windows 10 начиная с версии 2004 (Май 2020) появилась поддержка протокола DoH — DNS over HTTPS. Теперь в операционной системе есть встроенный клиент, позволяющий делать DNS запросы через HTTPS.

Windows 11 — посмотреть сохранённый пароль от Wi-Fi

При подключении к Wi-Fi сети пароль от неё сохраняется и при последующих подключениях его не нужно вводить. Этот пароль легко посмотреть.

CTF web — router

Разбираем четвёртую задачку из нашего соревнования CTF. Задание называется router, 122 балла за флаг. Я бы отнёс данную задачу к разделу admin, мне кажется она больше на системное администрирование, нежели на web-разработку.

Теги