Коротко: ECH (Encrypted Client Hello) — стандарт IETF (RFC 9849, 2026), который прячет имя сайта (поле SNI) в TLS-рукопожатии. Даже при включённом зашифрованном DNS провайдер видит SNI в открытом виде — ECH закрывает именно этот пробел. Механизм работает через «два конверта»: внешний ClientHelloOuter содержит прикрывающее имя CDN, внутренний ClientHelloInner — реальный SNI — зашифрован под публичным ключом сервера. Для работы ECH нужны три условия одновременно: включённый DoH, сервер с ECH-конфигом в DNS и поддержка ECH браузером. IP-адрес назначения при этом всё равно остаётся видимым — здесь дополняет VPN, который прячет весь путь.
Что такое ECH простыми словами
Encrypted Client Hello — это расширение протокола TLS 1.3, закреплённое в RFC 9849 (Standards Track, IETF, 2026). Его задача — зашифровать первое сообщение браузера серверу (ClientHello), которое в обычном TLS видно любому наблюдателю в сети. Именно в этом сообщении браузер сообщает серверу, к какому именно сайту он подключается — через поле Server Name Indication (SNI).
Аналогия: когда вы отправляете письмо, адрес на конверте виден всем, кто его несёт. DoH шифрует справочник (DNS), так что курьер не знает, как искать адресата. Но сам конверт с адресом (SNI) по-прежнему открыт — почтальон (провайдер) его читает. ECH вкладывает ваш настоящий конверт в ещё один внешний — с другим, «прикрывающим» адресом. Только получатель (сервер) умеет вскрыть внешний конверт своим ключом и достать настоящий.
Предшественником ECH был ESNI (Encrypted SNI), который шифровал только поле SNI и устарел около 2020-го: он имел криптографические ограничения и не покрывал другие чувствительные поля ClientHello — в частности ALPN (согласование прикладного протокола). ECH шифрует весь ClientHello и полностью совместим с TLS 1.3.
Какую проблему решает ECH: утечка SNI
Что такое SNI и почему он виден
Когда браузер устанавливает HTTPS-соединение с сайтом, первое сообщение — ClientHello — содержит поле SNI (Server Name Indication). Оно нужно серверу и CDN, чтобы при одном IP-адресе обслуживать множество доменов: сервер смотрит на SNI и выдаёт нужный сертификат. В стандартном TLS это поле передаётся открытым текстом до того, как устанавливается шифрование — провайдер, корпоративный файрвол или любой другой наблюдатель «на пути» видит SNI так же отчётливо, как URL в адресной строке.
SNI — главный источник метаданных о посещаемых сайтах при HTTPS. Содержимое страниц зашифровано, имя сайта — нет. Именно это поле используют системы DPI (Deep Packet Inspection) для анализа трафика на уровне провайдера.
Почему зашифрованного DNS (DoH) недостаточно
Зашифрованный DNS (DoH и DoT) прячет DNS-запрос — провайдер перестаёт видеть, какой IP вы запрашиваете для domain.com. Без DoH имя сайта утекает дважды: в DNS и в SNI. DoH закрывает DNS-утечку, но SNI в TLS-рукопожатии остаётся открытым независимо от того, как получен IP-адрес. Если открыть https://example.com с включённым DoH, провайдер больше не видит DNS-запрос — но в следующую секунду видит ClientHello с SNI: example.com открытым текстом.
Как разобрано в статье «Видит ли провайдер, какие сайты вы посещаете», SNI — это именно тот идентификатор, который остаётся после того, как DNS уже зашифрован. ECH закрывает этот последний открытый элемент.
Наглядно — что видит наблюдатель в сети при разных уровнях защиты:
| Что видит наблюдатель | Обычный HTTPS | +DoH | +DoH и ECH | VPN |
|---|---|---|---|---|
| DNS-запрос (имя сайта) | Виден | Скрыт | Скрыт | Скрыт |
| SNI (имя сайта в TLS) | Виден | Виден | Скрыт | Скрыт |
| IP-адрес назначения | Виден | Виден | Виден | Виден только IP VPN-сервера |
| Факт подключения | Виден | Виден | Виден | Виден (к VPN-серверу) |
Как работает ECH: ClientHelloOuter и ClientHelloInner
Механизм ECH строится на концепции «двух конвертов» и использует HPKE (Hybrid Public Key Encryption) — современную схему асимметричного шифрования, специально разработанную для подобных задач.
При установке соединения браузер формирует два сообщения. ClientHelloOuter — внешнее, полностью открытое: в его поле SNI стоит «прикрывающее» имя, обычно принадлежащее CDN или общему фронтенду (например, домену Cloudflare). Именно это имя видит провайдер — и ничего другого. ClientHelloInner — внутреннее: в нём находятся реальный SNI целевого сайта, поле ALPN (какой прикладной протокол использовать — HTTP/2, HTTP/3) и другие параметры TLS-согласования. ClientHelloInner зашифрован публичным ключом конкретного сервера с помощью HPKE.
Публичный ключ ECH сервер заранее публикует в DNS-записи типа HTTPS (или SVCB). Браузер получает этот ключ через DoH — именно поэтому DoH является обязательным условием: без него нельзя безопасно получить ключ шифрования. Сервер расшифровывает ClientHelloInner своим приватным ключом и видит реальный SNI — соединение устанавливается. Наблюдатель в сети видит только ClientHelloOuter с прикрывающим именем CDN.
Важно: ECH использует HPKE — схему асимметричного шифрования уровня TLS-рукопожатия. Не путайте с шифрами VPN-протоколов (ChaCha20, AES). HPKE здесь только для защиты ClientHello; всё остальное соединение шифруется стандартными средствами TLS 1.3.
Что нужно, чтобы ECH заработал
ECH — составная технология: если хотя бы одно звено отсутствует, браузер не применяет ECH и соединение идёт обычным путём без ошибки и без шифрования SNI. Три обязательных условия:
- Зашифрованный DNS (DoH или DoT) включён. ECH-конфиг публикуется в DNS-записи HTTPS/SVCB; браузер забирает его при разрешении имени. Без DoH публичный ключ может быть подменён или виден наблюдателю — смысл ECH теряется.
- Сервер или CDN публикует ECH-конфиг в DNS-записи HTTPS/SVCB. Запись должна содержать поле
ech=с публичным ключом. Если у домена нет такой записи — ECH не применяется. Поэтому сайты на Cloudflare поддерживают ECH шире: Cloudflare включил ECH-конфиги для обслуживаемых доменов на уровне CDN. - Браузер поддерживает ECH. Firefox включил ECH по умолчанию начиная с версии 119. В Chrome/Chromium ECH включается вручную через экспериментальные флаги. Большинство Chromium-браузеров на мобильных (Chrome для Android) по умолчанию ECH не используют.
Если хоть одно из условий не выполнено, браузер отправляет обычный ClientHello — «ECH fallback». Соединение устанавливается в штатном режиме, SNI остаётся открытым.
Как включить ECH в браузере
Firefox
В Firefox ECH включён по умолчанию начиная с версии 119. Дополнительная настройка не нужна. Главное условие — активный DoH: без него браузер не получит ECH-конфиг из DNS и не применит шифрование SNI.
Для проверки статуса ECH: откройте about:config → введите network.dns.echconfig.enabled — значение должно быть true. Для DoH: Настройки → Основные → Использовать DNS через HTTPS. Рекомендуется режим «Только HTTPS» (не «Включить» с откатом) — тогда браузер не отправит DNS-запросы в открытом виде при недоступности DoH-сервера.
С Firefox 129 браузер умеет получать HTTPS-запись через системный DNS-резолвер, если тот поддерживает DoH на уровне ОС — это упрощает настройку на корпоративных устройствах.
Chrome / Chromium / Brave
В Chrome и Chromium-браузерах ECH по умолчанию не активирован (по состоянию на стабильную ветку 2026 года). Для ручного включения:
- Откройте
chrome://flagsв адресной строке. - Найдите флаг
#encrypted-client-helloи переключите в Enabled. - Найдите флаг
#use-dns-https-svcb-alpnи также переключите в Enabled — без него браузер не запрашивает HTTPS/SVCB DNS-запись с ECH-конфигом. - Нажмите Relaunch для перезапуска браузера.
- Убедитесь, что DoH включён: Настройки → Конфиденциальность и безопасность → Безопасность → Использовать безопасный DNS.
В Brave ECH включается аналогично через brave://flags/#encrypted-client-hello. По умолчанию Brave ECH не активирует, но встроенный DoH выполняет первое из трёх условий.
Как проверить, что ECH работает
После включения ECH и DoH убедитесь в работоспособности через специальную страницу. Cloudflare предоставляет страницу проверки ECH — ищите по запросу «ECH check Cloudflare» или «ECH test browser»; она показывает, применял ли браузер ECH при установке соединения. Также подходит browserleaks.com — там отображаются параметры TLS-соединения, включая наличие ECH.
ECH и VPN: в чём разница и зачем вместе
ECH и VPN — принципиально разные инструменты с разной областью действия. ECH шифрует одно поле в одном сообщении TLS-рукопожатия и только для тех сайтов, которые поддерживают ECH. Провайдер по-прежнему видит IP-адрес, к которому вы подключаетесь, видит факт и объём соединения; если сервер не поддерживает ECH — видит и SNI.
VPN работает на другом уровне: оборачивает весь сетевой трафик устройства в зашифрованный туннель. Провайдер видит только соединение с IP VPN-сервера — ни DNS-запросы, ни SNI, ни IP назначения ему недоступны. Это покрывает все сайты и приложения, независимо от поддержки ECH.
ECH бессилен на сайтах без ECH-конфига в DNS. VPN добавляет задержку и требует доверия к провайдеру — важно выбирать надёжный no-logs VPN, не ведущий журналы. Связка обоих сильнее: VPN прячет IP и весь трафик, ECH дополнительно шифрует SNI там, где он поддерживается.
Практическое правило: если VPN включён, SNI внутри туннеля и так не виден провайдеру. ECH наиболее полезен как самостоятельный инструмент — когда VPN отключён или не настроен на конкретном устройстве. Подробнее о том, что именно прячет VPN — в статье «Как VPN защищает от слежки провайдера».
Чек-лист: как закрыть утечку имени сайта
- Включите DoH в браузере. Firefox: Настройки → Основные → DNS через HTTPS (режим «Только HTTPS»). Chrome: Настройки → Конфиденциальность → Безопасный DNS.
- Проверьте, что ECH включён. Firefox v119+: включён по умолчанию. Chrome/Brave: включить через
chrome://flags→#encrypted-client-hello. - Обновите браузер до актуальной версии. Поддержка ECH появляется и улучшается с каждым выпуском; устаревший браузер — гарантированно без ECH.
- Проверьте работу ECH на специальной странице. Включить флаг недостаточно, если DoH не работает — убедитесь, что ECH реально применяется.
- Используйте VPN в публичных сетях. ECH не прячет IP назначения и не работает на сайтах без ECH-конфига. VPN закрывает весь трафик.
- Проверьте утечку DNS. При DoH и ECH некоторые браузеры всё равно могут отправлять часть запросов через незашифрованный системный DNS.
- На мобильных настройте DoH на уровне системы или используйте приложение с DoH. Большинство мобильных браузеров не включают ECH по умолчанию; альтернатива — VPN с DoH на борту.
Ограничения ECH (о чём важно знать)
IP-адрес назначения остаётся виден. Даже при ECH провайдер видит, к какому IP вы подключились. По IP зачастую можно определить CDN или конкретный сайт — особенно у небольших ресурсов с выделенным IP. ECH защищает только имя в SNI, но не скрывает получателя на сетевом уровне.
Работает только там, где сервер поддерживает ECH. Если у целевого сайта нет HTTPS-записи с ECH-конфигом в DNS, браузер не применяет ECH. Большинство сайтов в интернете пока его не поддерживают — лидируют сайты на Cloudflare и ряд других крупных CDN.
Некоторые сети могут блокировать или деградировать ECH. Агрессивные корпоративные прокси, DPI-фильтры или устаревшее оборудование могут блокировать HTTPS-записи в DNS или мешать ECH-рукопожатию. В этом случае браузер откатывается к обычному ClientHello — соединение устанавливается, SNI остаётся открытым, ошибки нет.
ECH не защищает от WebRTC-утечек и других утечек IP. ECH работает только на уровне TLS-рукопожатия. Если браузер раскрывает реальный IP через WebRTC или другие механизмы — ECH от этого не спасает.
Частые вопросы
ECH — это то же самое, что VPN?
Нет. ECH шифрует поле SNI в TLS-рукопожатии у поддерживающих серверов — точечная защита одного метаданных. VPN шифрует весь трафик и скрывает IP назначения. Они решают разные задачи и хорошо дополняют друг друга.
Нужен ли ECH, если я уже пользуюсь VPN?
Внутри VPN-туннеля SNI и так не виден провайдеру. ECH полезен, когда VPN выключен или на устройстве без VPN-приложения. Включить оба не помешает.
Замедляет ли ECH интернет?
Практически нет. ECH — часть обычного TLS-рукопожатия; добавленная HPKE-криптография не вносит заметной задержки.
Работает ли ECH на всех сайтах?
Нет. ECH применяется только там, где сервер или CDN опубликовал ECH-конфиг в HTTPS/SVCB DNS-записи. На сайтах без такой записи SNI остаётся открытым.
Виден ли провайдеру мой IP при включённом ECH?
Да, IP-адрес назначения остаётся виден. ECH прячет только имя сайта (SNI). Чтобы скрыть IP — нужен VPN.
Чем ECH отличается от ESNI?
ESNI шифровал только поле SNI и устарел около 2020-го. ECH (RFC 9849) шифрует весь ClientHello, использует HPKE и полностью совместим с TLS 1.3.
Безопасно ли включать ECH?
Да. ECH — утверждённый стандарт IETF (RFC 9849). В худшем случае браузер откатывается к обычному TLS без ошибки — безопасность не снижается.
