Meek и доменный фронтинг: мост Tor, который прячется внутри CDN
Каждый тип моста в Tor Browser - это упражнение в маскировке, но meek идёт самым амбициозным путём: он вообще не меняет трафик Tor, а просто переносит его в теле обычных HTTPS-запросов к крупной сети доставки контента. Лежащая в основе техника - доменный фронтинг - когда-то была доступна у всех крупных облачных провайдеров. Через десятилетие после дебюта она выжила фактически у одного, и развёртывание meek-azure - последний представитель этого семейства мостов, оставшийся в меню.
Как доменный фронтинг прячет соединение Tor
Слабость, которую эксплуатирует доменный фронтинг, в том, что TLS-рукопожатие вручает цензору удобную метку: поле Server Name Indication называет посещаемый сайт. Исследование Дэвида Файфилда и коллег 2015 года, перенёсшее технику в обход цензуры, описывает, как фронтинг разрывает эту связь. Один домен появляется снаружи HTTPS-запроса - в DNS-запросе и TLS-рукопожатии, - а другой домен появляется внутри, в HTTP-заголовке Host. Цензор видит только фасад. Заголовок Host невидим для цензора, но видим для CDN, принимающего запрос: тот читает его и пересылает соединение к настоящему адресату. Блокировка трафика означала бы блокировку оживлённого обычного сайта вместе со всеми его законными пользователями. meek превращает эту идею в мост. Клиент заворачивает фрагменты трафика Tor в HTTP POST-запросы и отправляет их через фронтинг-CDN на мост с meek-server, где идентификатор сессии собирает поток заново; когда данных нет, клиент продолжает отправлять пустые опросы, чтобы соединение не умолкало. В исходной конструкции эти запросы даже пропускались через настоящий браузерный движок - потому исследование могло сказать о получившемся трафике: он выглядит как браузер, потому что он и есть браузер.2018: парадные двери закрываются
Вся схема держалась на том, что облачные провайдеры терпят расхождение между двумя слоями, а в 2018 году они перестали. Согласно рассказу Signal, Google с тридцатидневным предупреждением прекратил поддержку доменного фронтинга после того, как Signal использовал фронтинг App Engine для связи с пользователями в Иране, которых собственное прочтение Google американского санкционного законодательства уже отрезало. Недели спустя, 27 апреля 2018 года, Amazon написал Signal с предупреждением, что тот не имеет разрешения использовать домен Souq.com в качестве фасада, пригрозил приостановкой аккаунта CloudFront и ввёл Enhanced Domain Protections, положившие конец фронтингу во всём CDN. Tor Project в том же месяце сообщил, что обе компании выдёргивают шнур и что meek стал непригоден через их сети; Access Now насчитала около дюжины пострадавших правозащитных инструментов, включая Signal и Telegram. Вывод Signal был беспощаден: доменный фронтинг как техника обхода цензуры стал в основном нежизнеспособным, а финальное наблюдение объяснило, почему отключения не стоили цензорам ничего."...им оставалось только ждать." - Signal, май 2018
Почему выжил meek-azure
Один провайдер к отступлению не присоединился. Tor Project тогда отмечал, что облако Microsoft Azure по-прежнему разрешало доменный фронтинг, а исследование 2015 года уже наблюдало структурную причину: CDN Azure пересылает запросы только в домены, аффилированные с Azure, тогда как CloudFront Амазона пересылал почти куда угодно. Развёртывание meek в Azure целиком находится внутри этих владений: его конечная точка размещена на собственном CDN Azure за управляемым Microsoft фронт-доменом, так что запрос никогда не переходит между несвязанными компаниями. Когда Google и Amazon перестали позволять видимому имени и реальному адресату расходиться, этой внутренней терпимости хватило. Tor Project с самого начала предупреждал, что о прочих отключениях не был предупреждён заранее и что политика Azure тоже может измениться, - оговорка, сопровождающая meek-azure с тех пор.Цена того, чтобы прятаться на виду
Свойства, из-за которых meek трудно заблокировать, делают его также медленным и дорогим. Дополнительный CDN-прыжок и построение на запросах снижали измеренную скорость загрузки в исследовании 2015 года примерно в два-три раза, а текущие рекомендации поддержки Tor ещё прямее: у meek ограничение по полосе, поэтому вариант будет довольно медленным. Деньги - второе ограничение. Кто-то платит CDN-сборы за исходящий трафик за каждый байт, который переносит мост meek, а счёт исходного развёртывания составил 565 долларов на Azure, 3 292 на Google App Engine и 3 793 на CloudFront за время исследования. Исследователи также предупреждали, что противник может раздуть этот счёт по желанию, - проблема финансового отказа в обслуживании, продемонстрированная, когда Great Cannon обрушил на хостинг своих целей десятки тысяч долларов расходов за трафик.Когда meek - правильный выбор
Для большинства пользователей под цензурой meek - запасной вариант, а не первый выбор. В актуальных рекомендациях Tor для Китая сначала предлагается WebTunnel, а meek и Snowflake перечислены как резервные, если он не сработает. Основные варианты по-разному расставляют компромиссы:- obfs4 перемешивает трафик, быстр и бесплатен, но каждый мост - отдельный сервер, чей адрес может утечь или быть просканирован.
- Snowflake одалживает эфемерные прокси у волонтёров - легко масштабируется, но скорость непостоянна.
- WebTunnel делает Tor похожим на обычное HTTPS-соединение с веб-сервером, не требуя сотрудничества CDN-гиганта.
- meek прячется за одним из самых посещаемых доменов сети и переживает самые строгие белые списки - ценой низкой скорости.










