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 внутри
}
  1. Клиент получает публичный ключ ECH через DNS HTTPS-record.
  2. Формирует внешний ClientHello с фейковым SNI.
  3. Настоящий шифрует по HPKE.
  4. ТСПУ видит только внешний SNI → пропускает.
  5. CDN расшифровывает inner, продолжает.

Кто внедрил

Что случилось в РФ

Октябрь 2024: Роскомнадзор через рекомендацию ЦМУ ССОП объявил ECH «технологией обхода ТСПУ».

Провайдерам предписано:

Cloudflare отключил ECH для российского трафика по геолокации.

Итог

Из РФ ECH просто рвётся: ERR_CONNECTION_RESET без объяснений. Работает только через VPN (но тогда VPN сам скрывает всё).

Красивый протокол, у нас нихуя не работает.