Tor bridges и pluggable transports (obfs4, meek, Snowflake) против активной цензуры

konstrukt
Оффлайн

konstrukt

.
.
.
Регистрация
19.09.18
Сообщения
142
Реакции
78
Репутация
1
Всем привет. Сегодня хочу разобрать тему, которая напрямую касается людей в странах с активной цензурой интернета — почему обычный Tor там часто просто не работает, и что конкретно решает проблему через мостовые узлы и pluggable transports. Это практическая тема, не теоретическая, и я хочу разложить механику по уровням, чтобы было понятно, почему один инструмент не решает всё сразу.


Почему базовый Tor детектируется и блокируется


Первое, что нужно понять — Tor никогда не был спроектирован как инструмент, скрывающий сам факт своего использования. Его задача — анонимизировать содержание и маршрут трафика, а не маскировать протокол. Проблема в том, что у стандартного Tor-хендшейка есть узнаваемая сигнатура на уровне протокола — конкретная структура TLS-сертификатов, паттерны размеров пакетов, специфичные байтовые последовательности при установке соединения с узлом сети.


Системы Deep Packet Inspection (DPI), которые массово развёрнуты в странах с государственным контролем трафика, не нуждаются в расшифровке содержимого, чтобы заблокировать Tor — им достаточно распознать саму сигнатуру протокола на лету и сбросить соединение. Дополнительно списки IP-адресов публичных Tor-узлов открыты (это часть архитектуры — directory authorities публикуют consensus с адресами relay-узлов), поэтому блокировка по IP тоже тривиальна для государственного провайдера. Получается двойная проблема: блокировка по сигнатуре протокола и блокировка по известным адресам входных узлов.


Bridges — решение проблемы известных адресов


Bridge-узлы — это входные точки в сеть Tor, которые не публикуются в открытом consensus-каталоге. Вместо того чтобы тянуть список входных узлов из публичного источника, который точно так же доступен и цензору, пользователь получает адреса мостов через альтернативные закрытые каналы — запрос по email с определённого почтового домена, через сайт с captcha-защитой от массового скрейпинга, или через закрытые каналы распространения внутри доверенных сообществ.


Это решает проблему блокировки по IP, но не решает проблему сигнатуры протокола — DPI всё ещё может распознать сам факт использования Tor-протокола, даже если не знает заранее, что конкретный IP относится к Tor-сети, просто анализируя характер трафика в реальном времени.


Pluggable transports — маскировка самого протокола


Вот здесь начинается по-настоящему интересная часть, потому что разные pluggable transports решают задачу маскировки совершенно разными методами, и я считаю важным понимать разницу, а не воспринимать их как взаимозаменяемые опции в выпадающем списке.


obfs4 — это обфускация на уровне случайного шума. Протокол добавляет криптографический слой поверх Tor-трафика, делая его статистически похожим на случайные байты без узнаваемой структуры. Для DPI-системы, которая ищет конкретные сигнатуры протоколов, такой трафик не матчится ни под один известный шаблон — он просто выглядит как непонятный шум. Слабое место такого подхода — сам факт наличия трафика, который выглядит как чистый шум без видимой структуры, в некоторых конфигурациях DPI тоже может считаться подозрительным паттерном, потому что легитимный обычный трафик (HTTP, видео, обычный TLS) имеет свою узнаваемую статистическую структуру, а чистый шум на неё не похож.


meek — принципиально другой подход, основанный на маскировке через domain fronting. Идея в том, чтобы спрятать Tor-трафик внутри обычного HTTPS-соединения к крупному облачному провайдеру (исторически использовались Google App Engine, Amazon CloudFront, Microsoft Azure). С точки зрения цензора снаружи видно только TLS-соединение к домену крупной облачной платформы — а такие домены цензор физически не может заблокировать целиком, потому что на той же инфраструктуре висят тысячи легитимных сервисов, и блокировка означала бы отрезать доступ к огромному куску обычного интернета. Реальный Tor-трафик внутри туннелируется через эту облачную инфраструктуру до настоящего bridge-узла. Слабость этого метода — крупные облачные провайдеры периодически закрывают domain fronting как фичу на уровне инфраструктуры именно потому, что её одновременно используют и для обхода цензуры, и для маскировки вредоносного трафика, и компаниям не хочется быть посередине этого конфликта.


Snowflake — на мой взгляд, самый изящный из современных подходов. Вместо постоянной инфраструктуры на стороне облачных провайдеров, Snowflake использует временные WebRTC-соединения через браузеры обычных добровольцев по всему миру, которые установили расширение или просто держат открытой вкладку с прокси-кодом. Трафик пользователя в цензурируемой стране устанавливает WebRTC-соединение к случайному добровольческому "сноуфлейку", который и пробрасывает его дальше в сеть Tor. С точки зрения DPI это выглядит как обычный WebRTC-трафик — тот же протокол, что используется в видеозвонках, и блокировать его целиком означало бы заблокировать значительную часть легитимных видеосервисов. Дополнительное преимущество — нет постоянной инфраструктуры, которую можно методично заблокировать, потому что пул добровольческих узлов постоянно меняется.


Почему важно комбинировать, а не выбирать один инструмент навсегда


Практический вывод, который мне кажется недооценённым — цензурные системы тоже развиваются и адаптируются, особенно в странах с серьёзными ресурсами на эту задачу (Китай с его Great Firewall — самый продвинутый пример). То, что работало год назад, может быть детектировано сегодня через обновлённые модели машинного обучения, анализирующие тонкие статистические аномалии трафика, а не только явные сигнатуры. Поэтому в реальных условиях активной цензуры разумная стратегия — иметь под рукой несколько pluggable transports одновременно и переключаться при первых признаках деградации соединения, а не закладываться на единственный метод как постоянное решение.


Также стоит понимать границу применимости — все эти методы решают проблему доступа к сети Tor через цензурируемый канал, но не усиливают саму анонимность внутри сети после подключения. Это инструменты против цензуры конкретно, а не дополнительный слой анонимности поверх стандартной модели угроз Tor.
 
Сверху Снизу