ECH †
Encrypted Client Hello · шифрует последнее что оставалось открытым в TLS · 2023
TL;DR: ECH шифрует SNI — единственный кусок TLS-хендшейка в открытом виде. Провайдер больше не знает какой сайт ты открываешь. В РФ отключён.
Что это
Encrypted Client Hello — расширение TLS 1.3, draft-ietf-tls-esni. Раньше — ESNI, потом переработали: шифруется весь ClientHello.
Проблема без ECH
ClientHello {
server_name: youtube.com ← открытым текстом!
cipher_suites: [...]
}По SNI ТСПУ определяет «плохой» домен и режет. Без SNI — не определит.
Как ECH это ломает
ClientHello {
outer_sni: cloudflare-ech.com (фасад)
encrypted_client_hello: 0x8f2a...
└─ настоящий ClientHello внутри
}- Клиент получает публичный ключ ECH через DNS HTTPS-record.
- Формирует внешний ClientHello с фейковым SNI.
- Настоящий шифрует по HPKE.
- ТСПУ видит только внешний SNI → пропускает.
- CDN расшифровывает inner, продолжает.
Кто внедрил
- Cloudflare — по умолчанию с сентября 2023.
- Firefox 118+, Chrome 117+ — поддержка.
- Meta / Fastly / Akamai — раскатывают.
Что случилось в РФ
Октябрь 2024: Роскомнадзор через рекомендацию ЦМУ ССОП объявил ECH «технологией обхода ТСПУ».
Провайдерам предписано:
- Резать TLS с расширением ECH.
- ТСПУ блокирует ClientHello с ECH-сигнатурой (extension
0xfe0d).
Cloudflare отключил ECH для российского трафика по геолокации.
Итог
Из РФ ECH просто рвётся: ERR_CONNECTION_RESET без объяснений. Работает только через VPN (но тогда VPN сам скрывает всё).
Красивый протокол, у нас нихуя не работает.