Все тесты я делал на Windows.
Starting in August, 2024, ECH will be gradually released on free zones.
It seems that paid zones can use ECHConfig
of free zones.
printf 'GET / HTTP/1.1\r\nHost: readthedocs.org\r\n\r\n' | openssl s_client -tls1_3 -ech_config_list xxxx -alpn 'http/1.1' -connect readthedocs.org:443 -quiet
выяснено, что на виндовс fox использует DNS API, чтобы понять прописан ли в системе DoH
и работает это из коробки только на win11
на win10 - нет
если fox не детектит или не хочет детектить DoH в системе, он требует локальный DoH от себя.
если DoH нет нигде - он отказывается от ECH
пишут, что на win10 детект отключен из-за какого-то бага в винде
на linux нет возможности обнаружить прослойку DoH универсальным образом, потому ECH включают всегда
На 10ой майки на релизную сборку так и не завезли DoH попросту
вроде завезли, но неполностью
на windows server 2022 настройки уже есть в settings, но он на более новом билде, чем последняя 10
и не будет, и никто не обещал, это уже мертвая ось
эта статья ошибочная, нет и не будет в 10, там за пример взято было построение переходное до анонса 11
Возможно, немного оффтопик, но совсем немного. Может кто пояснить, вот если сайт открывается через ECH, и я хочу внести его в исключения своего VPN, ну просто чтобы быстрее работало, какой домен надо внести в исключения, самого сайта или cloudflare-ech.com? Читал-читал про ECH, но так и не понял. Ведь если SNI зашифровано ещё в браузере, мой VPN же не сможет его распознать и пустить напрямую? Простите, если глупый вопрос.
Написал и догадался как проверить, поэкспериментировал на https://encryptedsni.com/cdn-cgi/trace, результат - исключение целевого домена не влияет, а какой там фронт-домен я не понял…
The flag in the control panel just controls the DNS record. Since the ECH key is the same for all the domains, you can still connect to any (?) domain even if it has ECH disabled.
$ dig +short HTTPS gdeposylka.ru
1 . alpn="h3,h2" ipv4hint=104.25.106.6,104.25.107.6,172.67.80.113 ipv6hint=2606:4700:20::6819:6a06,2606:4700:20::6819:6b06,2606:4700:20::ac43:5071
$ (echo -e "GET / HTTP/1.0\r\nHost: gdeposylka.ru\r\n\r\n"; sleep 10) | ./openssl s_client -CApath /etc/ssl/certs/ -no_ssl3 -no_tls1 -no_tls1_1 -no_tls1_2 -connect gdeposylka.ru:443 -servername gdeposylka.ru -ech_config_list 'AEX+DQBBVgAgACC91NEyBX4eLKQ/XSZk9DabQ/MbtpGNoDC3hOhS7QPtNQAEAAEAAQASY2xvdWRmbGFyZS1lY2guY29tAAA=' -ech_alpn_outer outer,public,h2 -alpn inner,secret,http/1.1
Setting new_session_cb
Connecting to 2606:4700:20::6819:6a06
CONNECTED(00000003)
ECH client callback printing:
SSL_ech_print
s=0x560765ac9410
ech_attempted=1
ech_attempted_type=0xfe0d
ech_atttempted_cid=0x56
ech_done=1
ech_grease=0
HRR=0
ech_returned=0x0
ech_returned_len=0
ech_backend=0
ech_success=1
1 ECHConfig value loaded
cfg(0): [fe0d,56,cloudflare-ech.com,0020,[0001,0001],bdd4d132057e1e2ca43f5d2664f4369b43f31bb6918da030b784e852ed03ed35,00,00]
depth=2 C=US, O=Google Trust Services LLC, CN=GTS Root R4
verify return:1
depth=1 C=US, O=Google Trust Services, CN=WE1
verify return:1
depth=0 CN=gdeposylka.ru
verify return:1
…