Перейти к основному контенту
LiMP VPN
Все статьи

ECH (Encrypted Client Hello): что это и как включить в 2026

ECH (Encrypted Client Hello): что это и как включить в 2026

Коротко: 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 и ECHVPN
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 года). Для ручного включения:

  1. Откройте chrome://flags в адресной строке.
  2. Найдите флаг #encrypted-client-hello и переключите в Enabled.
  3. Найдите флаг #use-dns-https-svcb-alpn и также переключите в Enabled — без него браузер не запрашивает HTTPS/SVCB DNS-запись с ECH-конфигом.
  4. Нажмите Relaunch для перезапуска браузера.
  5. Убедитесь, что 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 без ошибки — безопасность не снижается.

ECH (Encrypted Client Hello): что это и как включить в 2026