Использование ESNI (Encrypted SNI) в России

Этот тест не всегда корректно работает. Я бы рекомендовал опираться на результаты tls-ech.dev

Напомните, у вас флаг network.dns.native_https_query в конфиге файерфокса установлен в true или нет? См. https://groups.google.com/a/mozilla.org/g/dev-platform/c/oh_Tk0iLT9A и 1890999 - Let network.dns.native_https_query ride the trains для контекста.

проверил в chrome и firefox: так и есть, после блокировки sni cloudflare-ech.com перестают открываться все сайты на cloudflare с вкл. ECH, fallback на подключение без ECH нету (и надеюсь не добавят)

в firefox network.dns.native_https_query по дефолту и так true, но HTTPS запросов по UDP DNS нету, есть еще флаг network.dns.native_https_query_win10 который включает HTTPS запросы по UDP DNS (A и AAAA запросы после этого пропадают), но ECH при этом всё равно не работает, приходится включать DoH чтобы ECH заработал

ECH не работает, если VPN от Cloudflare и сайт от Cloudflare. Видимо, друг от друга им нечего скрывать. Можно также посмотреть в Wireshark заголовок SNI (он запрятан глубоко), но в новых версиях можно включить отображение домена не только на основе DNS, но и SNI.

115esr нет такого

130
network.dns.native_https_query true
network.dns.native_https_query_win10 false

p.s. оно просто “выключено” в ДНС
one.one.one.one. 83323 IN HTTPS 1 . alpn=“h3,h2” ipv4hint=1.1.1.1,1.0.0.1 ipv6hint=2606:4700:4700::1111,2606:4700:4700::1001

https://one.one.one.one/cdn-cgi/trace
https://crypto.cloudflare.com/cdn-cgi/trace
sni=plaintext

https://rutracker.org/cdn-cgi/trace
sni=encrypted

Всё правильно, этот флаг появился два месяца назад в 128-129 версии.

а вот как проверка https://www.cloudflare.com/ru-ru/ssl/encrypted-sni/
“находит” SNI я уже не понимаю

www.cloudflare.com. 209 IN HTTPS 1 . alpn=“h3,h2” ipv4hint=104.16.123.96,104.16.124.96 ipv6hint=2606:4700::6810:7b60,2606:4700::6810:7c60

У меня кстати под первым пунктом Secure DNS стоит вопросик типо мы не могли определить это, во всех остальных галочка. Значит ли это что мой запрос даже кф не мог вычислить, хорошо это или плохо?

CF не может вычислить чужие DoH, только свой в первом пункте показывает как успех.

настройки в браузерах
DoH == cloudflare
в firefox это https://mozilla.cloudflare-dns.com/dns-query

свой он тоже не смог вычислить
image

Просто.
После нажатия на кнопку, страница в том числе пытается загрузить https://encryptedsni.com/cdn-cgi/trace

meduza.io добавили ECH
Появился новый — очень удобный! — способ читать «Медузу» без VPN. Все необходимое уже есть в вашем браузере Простая инструкция, которая может помочь обмануть Роскомнадзор — Meduza

ValdikSS рассказал им. Ждём блокировку DoH.

Что-то здесь DEfO ECH Domain Name Check ничего не проверяет, страница обновляется, и на ней всё то же.

Ну, через запись в DNS можно посмотреть. И, кстати, посмотрел свой сайт, он на бесплатном тарифе CF, ECH включён, значит, включили для всех клиентов, хотя в настройках нет.

И это также значит, что если начнут блокировать фронт-домен, отвалится треть интернета.

Сделал скрипт для проверки наличия ECH у сайта. Делает запрос к гугл-днс через курл и парсит ответ.

ECH_Support_Tester.cmd (1,5 КБ)

upd: оптимизация

Сайты с поддержкой из тех что я успел почекать:

kinozal.tv
hdkinoteatr.com
gelbooru.com
konachan.com
readmanga.live
checkvpn.net
novayagazeta.ru
annas-archive.org
xhamster2.com
hentaiera.com
10minutemail.net
libgen.li

Сейчас попробую докрутить скрипт и может быть весь russia-blacklist через него прогоню.

Да, не проверяет. Кстати, можно проверить в Wireshark. В фильтр вводите frame contains "forum.ru-board". Если таких пакетов не будет, а сайт открывается, значит ECH и DoH работают. Может появиться какой-нибудь домен Cloudflare, если вы посещаете Cloudflare. Но в таком случае посмотрите на тело пакета или на заголовок Server Name Indication (далеко запрятан). Это наверняка будет фейковый публичный адрес, просто он совпадёт с фильтром, т.к. от одной конторы. А новые версии Wireshark SNI автоматически показывают, если включить в настройках.

Так, я написал прогу которая проверяет все сайты в листе на наличие ECH и выводит результаты в 2 листа (с поддержкой ECH и без). Таким образом, по идее, можно сильно сократить блэклист, т.к. сайты с ECH открываются без обхода. Кто хочет сам попробовать - просто перетаскиваете лист в формате txt на экзешник. Убедитесь что у экзешника есть доступ к сети.

ech_tester.zip (4,2 МБ)

Сейчас я попробую прогнать фул проверку по вот этому списку.

Боюсь ГуглДНС меня возненавидит за 40к запросов.

upd: походу я там накосячил с keep-alive, он очень много соединений оставляет за собой. Щас попробую что-нибудь придумать

upd2: вроде исправил?

И-и-и… готово! На основе вот этого листа (42686 адресов на момент тестирования), я сформировал 2 списка:

Иными словами, 47,6% всех сайтов из данного блеклиста открываются без всяких обходов, на современных браузерах. Это НАМНОГО больше, чем я ожидал. И это число будет только расти. Что РКН собираются с этим делать я хз.

Заставят всех операторов форвардить DNS-запросы со своих рекурсоров на рекурсоры НСДИ. На самих рекурсорах порежут отдачу HTTPS-записи. Так хотя бы по-умолчанию открываться заблоченные сайты не будут. Пользователю нужно будет вручную прописывать какой-нибудь 8.8.8.8, DoH или DoT. Следующим этапом заблочат их.

Ну, будем резолвить через тор, что тут сказать :slightly_smiling_face: