ECH: что он на самом деле решает, а что нет

Шифрование имени в TLS-рукопожатии закрывает одну утечку и не трогает остальные. Что остаётся видимым, при чём тут множество анонимности и почему местами это минус.

2026-08-31 GIGATAP Team #vpn
#vpn#anticensorship#tls#ech#dns#privacy

ECH: что он на самом деле решает, а что нет

Про шифрование имени в TLS-рукопожатии говорят как про решение проблемы видимости. Формулировка вида «включим — и не будет видно, куда мы идём» встречается постоянно. Формулировка неверна, и разбор того, почему, полезнее самого механизма: закрывается ровно одно поле, а всё остальное — адрес, форма трафика, отпечаток клиента — остаётся на месте.

Что видно в обычном рукопожатии#

Начало защищённого соединения передаётся открытым текстом — иначе стороны не смогли бы договориться о шифровании.

В этом открытом начале есть поле с именем сайта, к которому клиент обращается. Оно нужно серверу, чтобы понять, какой из размещённых на нём сайтов запрашивают.

клиент ──────────────────────────► сервер
        начало рукопожатия
        ├── адрес назначения   ← виден всем
        ├── ИМЯ САЙТА          ← видно всем
        ├── список алгоритмов  ← виден всем
        └── ...

Наблюдатель посередине читает имя, не расшифровывая ничего. Отсюда и берётся фильтрация по именам.

Что меняет ECH#

Механизм шифрует ту часть рукопожатия, где лежит имя. Наружу выставляется внешнее имя — общее, публичное, — а настоящее имя едет внутри, в зашифрованном виде.

БЕЗ ECH                      С ECH
├── адрес                    ├── адрес           ← по-прежнему виден
├── ИМЯ: наш-сайт            ├── имя: общее-имя  ← видно, но бесполезно
└── ...                      ├── [зашифровано]
                             │    └── имя: наш-сайт
                             └── ...

Видно, что закрылось ровно одно поле. Всё остальное осталось на месте.

Что остаётся видимым#

Это главная часть, и её обычно проговаривают недостаточно.

Что Скрыто ECH?
Имя сайта в рукопожатии да
Адрес назначения нет
Владелец адреса нет
Размеры и тайминги пакетов нет
Отпечаток клиентской библиотеки нет
Сам факт защищённого соединения нет
Запрос к DNS, если он не защищён нет

Адрес назначения — не деталь. Если по адресу расположен один сайт, скрытие имени не даёт ничего: адрес отвечает на тот же вопрос.

Множество анонимности#

Отсюда центральное понятие, определяющее ценность механизма.

Защита ECH равна числу сайтов, неразличимых за одним адресом и одним внешним именем.

СИЛЬНЫЙ СЛУЧАЙ
адрес X ──┬── сайт A
          ├── сайт B
          ├── ... тысячи сайтов
          └── ваш сайт        ⇒ имя скрыто по существу

СЛАБЫЙ СЛУЧАЙ
адрес Y ──── ваш сайт          ⇒ имя зашифровано,
                                 но адрес говорит всё

Формулировка, которая экономит много времени: ECH прячет вас в толпе, и вся защита — это размер толпы. Собственный сервер с собственным адресом толпы не образует, и включение механизма там меняет только формат утечки, а не её наличие.

Зависимость от DNS#

Второе ограничение, менее очевидное.

Чтобы зашифровать имя, клиенту нужен открытый ключ сервера. Он публикуется в DNS — в специальной записи, которую клиент запрашивает перед подключением.

Из этого следует цепочка:

Если DNS-запрос виден — виден и запрос ключа для конкретного имени. Утечка перемещается, а не исчезает.

Если DNS-ответ можно подделать или вырезать — клиент не получит ключ и подключится обычным образом, открыв имя. Механизм откатывается тихо, без ошибки.

Отсюда правило: ECH без защищённого DNS не даёт заявленного свойства. Это не рекомендация «желательно», а условие работоспособности.

Почему в части стран это минус?#

Есть эффект, ломающий интуицию. Он касается не свойств самого механизма, а того, насколько широко он распространён в сети вокруг вас.

Механизм полезен, когда он распространён. Если им пользуется большинство, его наличие ничего не говорит о пользователе. Если меньшинство — само использование становится признаком.

В ряде юрисдикций соединения с этим механизмом ограничивают: в России это делают с ноября 2024 года. И тогда получается перевёрнутая картина:

Ситуация Эффект механизма
Механизм массово используется скрывает, работает как задумано
Механизм редок выделяет пользователя
Механизм ограничивается соединение не проходит

Практический вывод неприятный, но однозначный: там, где механизм ограничивают, его включение ухудшает положение. Он не только не помогает, но и добавляет признак.

Отдельно стоит знать про имитацию: браузеры умеют отправлять пустышку — поле, похожее на зашифрованное имя, но не несущее содержимого. Смысл в том, чтобы наличие поля не выделяло тех, кто им реально пользуется. Там, где механизм ограничивают, ограничение обычно распространяется и на пустышку — «замаскироваться под массу» не выходит, потому что массы нет.

Числовой пример#

Сравним три размещения по тому, что даёт включение механизма.

Размещение Сайтов за адресом Что даёт ECH Итог
Крупный CDN ~10⁵ имя скрыто среди множества существенно
Небольшой хостинг ~50 сузило до 50 вариантов немного
Свой сервер 1 адрес отвечает на вопрос ничего
Свой сервер, страна с ограничением 1 добавлен признак хуже, чем без

Разброс между первой и последней строкой — это разница между «работает» и «вредит» при одном и том же включённом механизме. Решает не он сам, а контекст размещения.

Когда включать#

Короткий критерий, который заменяет длинное обсуждение.

Включать имеет смысл, если ваш ресурс делит адрес с большим числом посторонних, DNS защищён, и в целевых сетях механизм не ограничивают.

Не имеет смысла, если у ресурса собственный адрес: тогда закрывается поле, дублирующее видимую информацию.

Вредно, если в целевой сети механизм ограничивают: добавляется отличительный признак и вероятность отказа.

Вывод#

Механизм решает узкую и реальную задачу: убирает имя из открытой части рукопожатия. Он не скрывает адрес, не меняет форму трафика и не отменяет остальные признаки.

Две вещи стоит запомнить. Первая: защита равна размеру множества, в котором вы прячетесь — на своём адресе оно равно единице. Вторая: свойство приватности зависит от того, насколько механизм распространён вокруг — редкое средство сокрытия выделяет вместо того, чтобы скрывать.

Термины#

  • Множество анонимности - число ресурсов, неразличимых за одним адресом и одним внешним именем.
  • Внешнее имя - публичное имя, выставляемое наружу вместо настоящего при шифровании имени в рукопожатии.
  • Имитация поля - отправка пустышки, похожей на зашифрованное имя, чтобы наличие поля никого не выделяло.

FAQ: частые вопросы#

Скрывает ли ECH, куда я иду?#

Нет. Он скрывает имя в рукопожатии, но адрес назначения остаётся видимым и часто отвечает на тот же вопрос.

Есть ли смысл включать его на своём сервере?#

Обычно нет. Если за адресом один ресурс, множество анонимности равно единице и скрывать нечего.

Что будет, если механизм в сети ограничен?#

Соединение не пройдёт, а сама попытка добавит отличительный признак. В таких сетях включение ухудшает положение.

Что читать дальше#