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 ховається за одним із найвідвідуваніших доменів мережі й переживає найсуворіші білі списки - ціною низької швидкості.










