Китай внедрил блокировку всех HTTPS-соединений, в которых используется протокол TLS 1.3 и TLS-расширение ESNI (Encrypted Server Name Indication), обеспечивающее шифрование данных о запрашиваемом хосте. Блокировка осуществляется на транзитных маршрутизаторах как для соединений, устанавливаемых из Китая во внешний мир, так и из внешнего мира в Китай.
Для блокировки выполняется отбрасывание пакетов от клиента к серверу, а не подстановка пакетов с флагом RST, которая ранее выполнялась при выборочной блокировке по содержимому SNI. После срабатывания блокировки пакета с ESNI в течение от 120 до 180 секунд также блокируются все сетевые пакеты, соответствующие связке из исходного IP, целевого IP и номера порта назначения. HTTPS-соединения на основе старых версий TLS и TLS 1.3 без ESNI пропускаются как обычно.
Напомним, что для организации работы на одном IP-адресе нескольких HTTPS-сайтов было разработано расширение SNI, осуществляющее передачу имени хоста в открытом виде в сообщении ClientHello, передаваемом до установки шифрованного канала связи. Подобная особенность даёт возможность на стороне интернет-провайдера выборочно фильтровать HTTPS-трафик и анализировать какие сайты открывает пользователь, что не позволяет добиться полной конфиденциальности при применении HTTPS.
Новое TLS-расширение ECH (ранее ESNI), которое может применяться совместно с TLS 1.3, устраняет этот недостаток и полностью исключает утечку сведений о запрашиваемом сайте при анализе HTTPS-соединений. В сочетании с обращением через сеть доставки контента применение ECH/ESNI также даёт возможность скрыть от провайдера и IP-адрес запрашиваемого ресурса. Системы инспектирования трафика будут видеть только обращения к CDN и не смогут применить блокировку без подмены TLS-сеанса, в случае которой в браузере пользователя будет показано соответствующее уведомление о подмене сертификата. Возможным каналом утечки остаётся DNS, но для скрытия обращения к DNS клиентом может применяться DNS-over-HTTPS или DNS-over-TLS.
Исследователи уже выявили несколько обходных путей для преодоления китайской блокировки на стороне клиента и сервера, но они могут потерять актуальность и их следует рассматривать лишь как временную меру. Например, в настоящее время блокируются только пакеты с идентификатором расширения ESNI 0xffce (encrypted_server_name), который использовался в пятой версии черновика стандарта, но пока пропускаются пакеты с актуальным идентификатором 0xff02 (encrypted_client_hello), предложенным в седьмом черновике спецификации ECH.
Другим вариантом обхода является использование нестандартного процесса согласования соединения, например, блокировка не срабатывает при предварительной отправке дополнительного SYN-пакета с неверным номером последовательности, манипуляциями с флагами фрагментирования пакетов, отправке пакета с одновременно выставленными флагами FIN и SYN, подстановке RST-пакета с некорректной контрольной суммой или отправке до начала согласования соединения пакета с флагами SYN и ACK. Описанные методы уже реализованы в форме плагина к инструментарию Geneva, развиваемого для обхода методов цензурирования.
Ви маєте увійти під своїм обліковим записом