TLS, SNI и ECH: что это и почему важно для обхода блокировок
Чтобы понимать, как работают блокировки и обход, достаточно разобраться в одном моменте — как начинается защищённое соединение.
Что происходит при открытии сайта
Прежде чем браузер получит хоть байт содержимого, он проводит с сервером короткий переговорный ритуал — TLS-рукопожатие:
- Client Hello. Браузер сообщает: поддерживаю такие-то версии протокола и шифры, и мне нужен сайт example.com
- Server Hello. Сервер выбирает параметры и присылает сертификат
- Обмен ключами. Стороны договариваются о секрете, который знают только они
- Шифрование включено. Дальше всё закрыто
Обратите внимание на первый шаг. Имя сайта передаётся до включения шифрования — другого выхода нет, сервер ведь должен понять, какой сертификат предъявить. На одном IP-адресе могут жить сотни сайтов.
Проверьте на своём устройстве
Три дня бесплатно, карта не нужна. Аккаунт заводится на сайте, поддержка отвечает в Telegram.
Это и есть SNI
Server Name Indication — то самое поле с именем домена, открытое для всех на пути. Именно по нему работает большинство современных блокировок: не нужно расшифровывать трафик, достаточно прочитать строку в первом пакете и оборвать соединение.
Отсюда и эффект, который многие замечали: сайт недоступен, хотя его IP-адрес прекрасно пингуется.
Попытка первая: ESNI
Идея напрашивалась — зашифровать имя сайта. Технология ESNI появилась около 2018 года и шифровала только поле SNI ключом, полученным через DNS.
Не взлетело. Во-первых, остальные части рукопожатия оставались открытыми и выдавали достаточно информации. Во-вторых, сам факт использования ESNI был редким и потому заметным — трафик с ним просто стали блокировать целиком.
Попытка вторая: ECH
Encrypted Client Hello — развитие идеи, более продуманное. Шифруется не одно поле, а всё приветствие клиента целиком. Снаружи виден «внешний» Client Hello с нейтральным именем, а настоящий запрос спрятан внутри.
Технология уже поддерживается Cloudflare, Firefox и Chrome, но нужна поддержка с обеих сторон, а для надёжной работы ещё и зашифрованный DNS. Пока это скорее будущее, чем настоящее — и в ряде стран трафик с ECH блокируют превентивно, ровно как когда-то ESNI.
Как это обходят сегодня
Раз имя домена видно — надо сделать так, чтобы оно было нормальным. Это и делает Reality: указывает в SNI реальный популярный домен и, что важнее, подтверждает его настоящим сертификатом, проксируя проверку на подлинный сервер.
Второй подход — спрятать трафик внутрь обычного веб-соединения. WebSocket поверх TLS выглядит как чат или онлайн-игра: SNI ведёт на ваш домен, но содержимое ничем не выделяется.
Пока имя сайта передаётся открытым текстом, борьба идёт не за то, чтобы его спрятать, а за то, чтобы оно не вызывало вопросов.
Что полезно знать пользователю
Включите в браузере DNS поверх HTTPS — это закроет ещё один канал утечки: кому вы отправляете запросы на разрешение имён. В Firefox и Chrome настройка есть в разделе приватности. Полной анонимности это не даст, но убирает самый простой способ наблюдения.
Попробуйте бесплатно 3 дня
Без карты и автосписаний. Регистрация на сайте занимает минуту — ссылка подписки появится в личном кабинете сразу.
Читайте также
XTLS-Vision: как убрали двойное шифрование и ускорили прокси
Что такое проблема TLS-in-TLS, как XTLS-Vision её решает и почему это влияет не только на скорость, …
ПротоколыQUIC и HTTP/3: поможет ли новый протокол обходить блокировки
Что такое QUIC, почему он работает поверх UDP и какие перспективы и проблемы это создаёт для обхода …
СетиAnycast, CDN и маршрутизация: почему один адрес ведёт в разные места
Как работает раздача контента по всему миру, что такое Anycast и почему через VPN некоторые сайты вд…