Download_Link
Участник клуба
Фактически с самого начала протестов по политическим причинам в Беларуси, у пользователей возникли проблемы с доступом в всемирную паутину. Независимый проект OONI, отслеживающий проявления интернет-цензуры (Слежки) по всему миру, регулярно фиксировал и находил многочисленные шатдауны как локально в столице, так и на территории всей республики. Кроме этого, клиенты многих провайдеров отмечали, что невозможно подключиться к сети Tor даже с использованием мостов!. Вместе с тем в архитектуре Tor предусмотрены весьма изощренные инструменты для обхода цензуры, способные противостоять технически сложным попыткам блокировок. О них и пойдет речь.
Ситуация с блокировками Tor и интернета в Беларуси далеко не уникальная: до этого с аналогичными проблемами сталкивались жители Венесуэлы. Несмотря на то что при подключении к мостам obfs3 и obfs4 используется обфусцированный трафик, местным властям каким-то образом удавалось успешно отфильтровать его и блокировать подобные соединения. Установить связь получалось только с использованием подключаемого транспорта meek либо при помощи традиционного VPN. Так каким же образом работают в Tor средства для борьбы с цензурой и насколько они эффективны?
Поговорим об анонимности
Если верить словам сооснователя Tor Project Роджера Динглдайна (Roger Dingledine), прозвучавшим на конференции DEF CON в 2019 году, к сети Tor ежедневно подключается от 2 до 8 миллионов пользователей. Это внушительная аудитория, равная по численности населению небольшой страны. Все эти люди не просто желают посещать какие-то сайты в даркнете или заблокированные правительством ресурсы, они хотят оставаться при этом анонимными.
К сожалению, далеко не каждый осознает, что шифрование не равно анонимности. Трафик шифруется при соединении с большинством использующих HTTPS сайтов, но практически любая третья сторона может легко отследить, к каким именно ресурсам ты отправляешь запросы и когда именно ты это делаешь. Использование VPN способно слегка осложнить жизнь «большому брату», но дотошный исследователь в состоянии построить граф твоих интересов и социальных связей на основе открытых данных. Кроме того, ты никогда не можешь быть полностью уверен в том, что твой VPN-провайдер не сливает данные налево.
Поэтому под «анонимностью» обычно понимают, что пользователю удается скрыть от третьих лиц:
Как блокируют Tor?
По утверждениям Роджера Динглдайна, существует четыре базовых способа заблокировать Tor. Первый выглядит очевидным: всего имеется девять публичных каталогов входных узлов Tor-сети, и, если закрыть доступ к этим каталогам, юзеры не смогут установить соединение.
Второй метод — выгрузить список из порядка 7000 relay nodes Tor-сети, отвечающих за перенаправление трафика, и заблокировать их все по IP-адресам.
Третий, не очень надежный, но действенный способ — отслеживать характерные отпечатки пакетов, то есть применить fingerprinting. По этим косвенным признакам, характерным для передаваемых в Tor-сети данных, можно настроить фильтрацию трафика. Примерно так действовало правительство Ирана во время протестов в 2009 году. Для глубокой инспекции трафика иранские власти использовали DPI. Пакеты Tor по ряду признаков были похожи на пакеты SSL, и иранцы с помощью специально закупленного для этих целей оборудования просто снизили пропускную с
пособность для шифрованного SSL-трафика в своих сетях, временно сделав невозможным использование Tor на территории страны.
Наконец, четвертый способ — перекрыть доступ к ресурсам, с которых конечные пользователи могут скачать необходимый для подключения софт. Сочетание этих четырех методик может дать отличный — с точки зрения спецслужб и правительств — результат. Но чем ответили на это разработчики Tor?
Наводим мосты
Первым рубежом борьбы с сетевой цензурой стал так называемый подключаемый транспорт, первой разновидностью которого были мосты obfs3 и obfs4. Идея заключается в следующем: поскольку «плохие парни» могут получить полный список открытых relay nodes и заблокировать доступ к самим этим узлам или их публичным каталогам, в Tor-сети были созданы тысячи мостов, список адресов которых отсутствует в публичном доступе.
Чтобы подключиться к Tor через мост, нужно перейти на сайт https://bridges.Torproject.org, выбрать тип транспорта и указать, поддерживает ли твоя сеть IPv6, ввести капчу, получить адрес моста, а затем указать его в настройках Tor Browser. Можно пойти более простым путем — в тех же настройках подключения запросить адрес моста с сайта Torproject (снова придется ввести капчу). Если сайт Torproject.org заблокирован, можно отправить письмо с пустой темой на адрес [email protected], написав в теле сообщения строку get transport obfs4. Важный момент: письмо нужно отправлять исключительно с Gmail или Riseup, иначе оно будет проигнорировано. В ответ специально обученный бот пришлет тебе адреса мостов, которые ты сможешь прописать в настройках Tor Browser.
Настройка моста в Tor Browser
По большому счету мосты Tor используют интерфейс SOCKS Proxy и по своей архитектуре похожи на китайский проект Shadowsocks, направленный на борьбу с цензурой. Мосты Tor работают как обфускаторы, которые маскируют трафик в Tor-сети, делая его похожим на обычный HTTP или поток случайных байтов, что затрудняет фильтрацию. Транспорт obfs3 оказался неустойчив к активному зондированию (Active Probing) — методу поиска адресов мостов в сети с целью их блокировки, поэтому ему на смену пришел более совершенный obfs4.
Правительства научились блокировать подобные соединения. Для большей эффективности активное зондирование может применяться совместно с глубоким анализом трафика.
Например, с использованием DPI правительство мониторит все соединения, похожие на Tor. Обнаружив «подозрительный» узел, правительственный хост сам пытается установить с ним связь через протокол Tor. Если узел поддерживает этот протокол и отвечает, что является мостом, его тут же блокируют, а его IP-адрес заносят в черный список. В Китае такая фильтрация делается на магистральном уровне, из-за чего блокировки работают достаточно эффективно.
Сам Роджер Динглдайн называл мосты «дерьмовой гонкой вооружений», поскольку правительственные цензоры научились фильтровать трафик описанным выше методом. Разработчики Tor в ответ выкатывали патчи, видоизменяющие данные в пакетах и устраняющие признаки, по которым выполнялась фильтрация, либо меняли поведение мостов. В свою очередь, правительства редактировали настройки фильтров, и все начиналось заново. Так было в Иране в период массовых протестов, в Египте времен арабской весны, в Тунисе во время революции 2010–2011 годов. Прямо сейчас что-то подобное происходит в Беларуси.
Иными словами, при должной настойчивости правительство может заблокировать доступные мосты в определенном регионе, и тогда пользователь при очередной попытке подключения рискует увидеть примерно такую картину.
Все мосты разведены, отправляйтесь вплавь
Для обхода подобных блокировок разработчики Tor придумали meek.
Meek
В Tor имеется еще один подключаемый транспорт под названием meek, который может сработать в случае, если мосты заблокированы. Его принцип действия тоже чем-то напоминает прокси, но в качестве промежуточного звена для передачи трафика используются облачные серверы Amazon, Content delivery network, Google, CloudFront или Microsoft Azure. Расчет делается на то, что вводящее цензуру правительство, если оно в своем уме, никогда полностью не заблокирует CDN, AWS, Azure и им подобные сервисы, поскольку эти облака использует огромное количество различных интернет-ресурсов, которые в этом случае просто перестанут работать. Но на здравомыслие некоторых госструктур рассчитывать, впрочем, довольно-таки наивно. Порой они способны обрушить половину национального сегмента сети в погоне за одним-единственным непослушным мессенджером, заблокировать который в итоге все равно не получилось.
Подключить meek очень просто: при запуске Tor Browser нужно нажать на кнопку Configure, установить флажок Tor is censored in my country, а затем, выставив переключатель в позицию Select a built-in bridge, выбрать в выпадающем списке транспорт meek.
Транспорт meek — работает даже в Китае
Meek использует в работе технику под названием domain fronting. Для соединения с целевым узлом в интернете клиент meek генерирует специальные HTTPS-запросы и отправляет их незаблокированному «внешнему» сервису, например CDN или AWS. Это «внешнее» имя отображается в DNS-запросе и данных, используемых протоколом Server Name Indication (SNI). А вот реальное имя хоста, с которым клиенту и требуется соединиться, спрятано в заголовке HTTP Host header. Промежуточный облачный сервис определяет это имя и пересылает запрос серверу meek, запущенному на одном из мостов Tor-сети. В свою очередь, meek-сервер расшифровывает тело запроса и форвардит его в сеть Tor, а оттуда он попадает в свободный интернет.
Схема работы meek
Помимо настройки по умолчанию с использованием Azure, можно задать собственные параметры транспорта meek, вот подробная инструкция. Казалось бы, все просто. Но не для всех.
Snowflake
Хорошо, если ты в состоянии скачать и настроить Tor Browser под виндой. Хорошо, если ты можешь установить Linux и набрать в консоли apt-get install obfs4proxy или apt-get install Tor. Но многие миллионы пользователей интернета не умеют и этого.
Для решения этой проблемы ребята из Tor Project разработали браузерное расширение на JavaScript под названием Snowflake. Достаточно установить этот плагин (или зайти на сайт со специальным JS-скриптом), и без скачивания дополнительного софта на твоей машине поднимается Tor-мост, который запускается прямо в браузере. Он использует webrtc и корректно работает за NAT.
Схема работы Snowflake — иллюстрация с сайта Torproject.org
С использованием Snowflake ковровые блокировки теряют смысл, потому что ни одно правительство мира не способно заблокировать все браузеры в интернете. Теряет смысл и глубокая инспекция трафика с использованием DPI, потому что технологию webrtc использует легитимный софт вроде Google Hangouts и множество программ для организации видеоконференций. Блокировка потоковых данных webrtc поломает всю эту инфраструктуру.
С использованием Snowflake борьба с цензурой обрела армию добровольцев, предоставляющих свои аппаратные ресурсы для обхода блокировок. При этом совершенно не обязательно устанавливать браузерный плагин — вполне достаточно открыть веб-страницу с Snowflake-скриптом в одной из вкладок браузера или поместить этот скрипт где-нибудь на своем сайте, чтобы он выполнялся при просмотре веб-страницы в фоновом режиме.
Со своей стороны разработчики Tor стараются получать обратную связь от пользователей сети. Существуют и независимые проекты мониторинга цензуры вроде Open ObservaTory for Network Interference — это приложение, позволяющее просканировать сетевое окружение пользователя в поисках заблокированных ресурсов, протоколов и сервисов.
Как бы то ни было, технологиям борьбы с цензурой еще предстоит проделать долгий путь, прежде чем они достигнут своей максимальной эффективности. Так, на DEF CON прозвучала информация о том, что в Tor Project активно работают над использованием в шифровании трафика технологии Format-Transforming Encryption. Она позволит сделать передаваемый трафик максимально похожим на обычный незашифрованный HTTP и тем самым сбить с толку механизмы глубокого анализа.
Другой подход называется «ложной маршрутизацией» — в этом случае при установке SSL-соединения один из промежуточных узлов ищет специальный тег внутри пакета SSL-handshake и при его обнаружении перенаправляет трафик в Tor-сеть. В то время как местный интернет-провайдер продолжает считать, будто клиент общается с фейковым удаленным сервером из белого списка, и не догадывается об изменении маршрута.
Выводы
Борьба с цензурой действительно похожа на гонку вооружений, в которой с одной стороны выступают правительства со своими бескрайними ресурсами и многомиллиардные международные корпорации, а с другой — общественные организации и энтузиасты, движимые чувством справедливости, стремлением к свободе и шилом в известном месте. При этом совершенно неочевидно, кто из них победит.
На DEF CON Роджер Динглдайн сказал:
«Австралия подвергает цензуре свой интернет, в Англии есть штука под названием „Фонд наблюдения за интернетом“ (Internet Watch Foundation), которая является частью их правительства. Дания цензурирует интернет, Швеция цензурирует интернет. Поэтому, когда мы ругаем правительство Китая, не позволяющее своим гражданам смотреть BBC, оно вполне обоснованно заявляет, что делает в точности то же самое, что и все остальные…
Дело не только в цензуре: важно привлечь внимание пользователей к тому факту, что за ними наблюдают. И тогда они смогут самостоятельно сделать свой выбор».
И в этом сооснователь Tor Project, безусловно, прав. Пока существует интернет, выбор есть у каждого.
Ситуация с блокировками Tor и интернета в Беларуси далеко не уникальная: до этого с аналогичными проблемами сталкивались жители Венесуэлы. Несмотря на то что при подключении к мостам obfs3 и obfs4 используется обфусцированный трафик, местным властям каким-то образом удавалось успешно отфильтровать его и блокировать подобные соединения. Установить связь получалось только с использованием подключаемого транспорта meek либо при помощи традиционного VPN. Так каким же образом работают в Tor средства для борьбы с цензурой и насколько они эффективны?
Поговорим об анонимности
Если верить словам сооснователя Tor Project Роджера Динглдайна (Roger Dingledine), прозвучавшим на конференции DEF CON в 2019 году, к сети Tor ежедневно подключается от 2 до 8 миллионов пользователей. Это внушительная аудитория, равная по численности населению небольшой страны. Все эти люди не просто желают посещать какие-то сайты в даркнете или заблокированные правительством ресурсы, они хотят оставаться при этом анонимными.
К сожалению, далеко не каждый осознает, что шифрование не равно анонимности. Трафик шифруется при соединении с большинством использующих HTTPS сайтов, но практически любая третья сторона может легко отследить, к каким именно ресурсам ты отправляешь запросы и когда именно ты это делаешь. Использование VPN способно слегка осложнить жизнь «большому брату», но дотошный исследователь в состоянии построить граф твоих интересов и социальных связей на основе открытых данных. Кроме того, ты никогда не можешь быть полностью уверен в том, что твой VPN-провайдер не сливает данные налево.
Поэтому под «анонимностью» обычно понимают, что пользователю удается скрыть от третьих лиц:
- свою геопозицию и даже страну, с территории которой он выходит в сеть;
- сайты, к которым он обращается;
- временные периоды, в течение которых устанавливаются соединения;
- сведения об аппаратном и программном обеспечении, которое он использует.
Как блокируют Tor?
По утверждениям Роджера Динглдайна, существует четыре базовых способа заблокировать Tor. Первый выглядит очевидным: всего имеется девять публичных каталогов входных узлов Tor-сети, и, если закрыть доступ к этим каталогам, юзеры не смогут установить соединение.
Второй метод — выгрузить список из порядка 7000 relay nodes Tor-сети, отвечающих за перенаправление трафика, и заблокировать их все по IP-адресам.
Третий, не очень надежный, но действенный способ — отслеживать характерные отпечатки пакетов, то есть применить fingerprinting. По этим косвенным признакам, характерным для передаваемых в Tor-сети данных, можно настроить фильтрацию трафика. Примерно так действовало правительство Ирана во время протестов в 2009 году. Для глубокой инспекции трафика иранские власти использовали DPI. Пакеты Tor по ряду признаков были похожи на пакеты SSL, и иранцы с помощью специально закупленного для этих целей оборудования просто снизили пропускную с
пособность для шифрованного SSL-трафика в своих сетях, временно сделав невозможным использование Tor на территории страны.
Наконец, четвертый способ — перекрыть доступ к ресурсам, с которых конечные пользователи могут скачать необходимый для подключения софт. Сочетание этих четырех методик может дать отличный — с точки зрения спецслужб и правительств — результат. Но чем ответили на это разработчики Tor?
Наводим мосты
Первым рубежом борьбы с сетевой цензурой стал так называемый подключаемый транспорт, первой разновидностью которого были мосты obfs3 и obfs4. Идея заключается в следующем: поскольку «плохие парни» могут получить полный список открытых relay nodes и заблокировать доступ к самим этим узлам или их публичным каталогам, в Tor-сети были созданы тысячи мостов, список адресов которых отсутствует в публичном доступе.
Чтобы подключиться к Tor через мост, нужно перейти на сайт https://bridges.Torproject.org, выбрать тип транспорта и указать, поддерживает ли твоя сеть IPv6, ввести капчу, получить адрес моста, а затем указать его в настройках Tor Browser. Можно пойти более простым путем — в тех же настройках подключения запросить адрес моста с сайта Torproject (снова придется ввести капчу). Если сайт Torproject.org заблокирован, можно отправить письмо с пустой темой на адрес [email protected], написав в теле сообщения строку get transport obfs4. Важный момент: письмо нужно отправлять исключительно с Gmail или Riseup, иначе оно будет проигнорировано. В ответ специально обученный бот пришлет тебе адреса мостов, которые ты сможешь прописать в настройках Tor Browser.
![tor01.jpg](https://st768.s3.eu-central-1.amazonaws.com/02935d2827d188798528921c33c2f373/15639/tor01.jpg)
Настройка моста в Tor Browser
По большому счету мосты Tor используют интерфейс SOCKS Proxy и по своей архитектуре похожи на китайский проект Shadowsocks, направленный на борьбу с цензурой. Мосты Tor работают как обфускаторы, которые маскируют трафик в Tor-сети, делая его похожим на обычный HTTP или поток случайных байтов, что затрудняет фильтрацию. Транспорт obfs3 оказался неустойчив к активному зондированию (Active Probing) — методу поиска адресов мостов в сети с целью их блокировки, поэтому ему на смену пришел более совершенный obfs4.
Правительства научились блокировать подобные соединения. Для большей эффективности активное зондирование может применяться совместно с глубоким анализом трафика.
Например, с использованием DPI правительство мониторит все соединения, похожие на Tor. Обнаружив «подозрительный» узел, правительственный хост сам пытается установить с ним связь через протокол Tor. Если узел поддерживает этот протокол и отвечает, что является мостом, его тут же блокируют, а его IP-адрес заносят в черный список. В Китае такая фильтрация делается на магистральном уровне, из-за чего блокировки работают достаточно эффективно.
Сам Роджер Динглдайн называл мосты «дерьмовой гонкой вооружений», поскольку правительственные цензоры научились фильтровать трафик описанным выше методом. Разработчики Tor в ответ выкатывали патчи, видоизменяющие данные в пакетах и устраняющие признаки, по которым выполнялась фильтрация, либо меняли поведение мостов. В свою очередь, правительства редактировали настройки фильтров, и все начиналось заново. Так было в Иране в период массовых протестов, в Египте времен арабской весны, в Тунисе во время революции 2010–2011 годов. Прямо сейчас что-то подобное происходит в Беларуси.
Иными словами, при должной настойчивости правительство может заблокировать доступные мосты в определенном регионе, и тогда пользователь при очередной попытке подключения рискует увидеть примерно такую картину.
![tor02.jpg](https://st768.s3.eu-central-1.amazonaws.com/02935d2827d188798528921c33c2f373/15640/tor02.jpg)
Все мосты разведены, отправляйтесь вплавь
Для обхода подобных блокировок разработчики Tor придумали meek.
Meek
В Tor имеется еще один подключаемый транспорт под названием meek, который может сработать в случае, если мосты заблокированы. Его принцип действия тоже чем-то напоминает прокси, но в качестве промежуточного звена для передачи трафика используются облачные серверы Amazon, Content delivery network, Google, CloudFront или Microsoft Azure. Расчет делается на то, что вводящее цензуру правительство, если оно в своем уме, никогда полностью не заблокирует CDN, AWS, Azure и им подобные сервисы, поскольку эти облака использует огромное количество различных интернет-ресурсов, которые в этом случае просто перестанут работать. Но на здравомыслие некоторых госструктур рассчитывать, впрочем, довольно-таки наивно. Порой они способны обрушить половину национального сегмента сети в погоне за одним-единственным непослушным мессенджером, заблокировать который в итоге все равно не получилось.
Подключить meek очень просто: при запуске Tor Browser нужно нажать на кнопку Configure, установить флажок Tor is censored in my country, а затем, выставив переключатель в позицию Select a built-in bridge, выбрать в выпадающем списке транспорт meek.
![tor03.jpg](https://st768.s3.eu-central-1.amazonaws.com/02935d2827d188798528921c33c2f373/15641/tor03.jpg)
Транспорт meek — работает даже в Китае
Meek использует в работе технику под названием domain fronting. Для соединения с целевым узлом в интернете клиент meek генерирует специальные HTTPS-запросы и отправляет их незаблокированному «внешнему» сервису, например CDN или AWS. Это «внешнее» имя отображается в DNS-запросе и данных, используемых протоколом Server Name Indication (SNI). А вот реальное имя хоста, с которым клиенту и требуется соединиться, спрятано в заголовке HTTP Host header. Промежуточный облачный сервис определяет это имя и пересылает запрос серверу meek, запущенному на одном из мостов Tor-сети. В свою очередь, meek-сервер расшифровывает тело запроса и форвардит его в сеть Tor, а оттуда он попадает в свободный интернет.
![tor04.jpg](https://st768.s3.eu-central-1.amazonaws.com/02935d2827d188798528921c33c2f373/15642/tor04.jpg)
Схема работы meek
Помимо настройки по умолчанию с использованием Azure, можно задать собственные параметры транспорта meek, вот подробная инструкция. Казалось бы, все просто. Но не для всех.
Snowflake
Хорошо, если ты в состоянии скачать и настроить Tor Browser под виндой. Хорошо, если ты можешь установить Linux и набрать в консоли apt-get install obfs4proxy или apt-get install Tor. Но многие миллионы пользователей интернета не умеют и этого.
Для решения этой проблемы ребята из Tor Project разработали браузерное расширение на JavaScript под названием Snowflake. Достаточно установить этот плагин (или зайти на сайт со специальным JS-скриптом), и без скачивания дополнительного софта на твоей машине поднимается Tor-мост, который запускается прямо в браузере. Он использует webrtc и корректно работает за NAT.
![tor05.jpg](https://st768.s3.eu-central-1.amazonaws.com/02935d2827d188798528921c33c2f373/15643/tor05.jpg)
Схема работы Snowflake — иллюстрация с сайта Torproject.org
С использованием Snowflake ковровые блокировки теряют смысл, потому что ни одно правительство мира не способно заблокировать все браузеры в интернете. Теряет смысл и глубокая инспекция трафика с использованием DPI, потому что технологию webrtc использует легитимный софт вроде Google Hangouts и множество программ для организации видеоконференций. Блокировка потоковых данных webrtc поломает всю эту инфраструктуру.
С использованием Snowflake борьба с цензурой обрела армию добровольцев, предоставляющих свои аппаратные ресурсы для обхода блокировок. При этом совершенно не обязательно устанавливать браузерный плагин — вполне достаточно открыть веб-страницу с Snowflake-скриптом в одной из вкладок браузера или поместить этот скрипт где-нибудь на своем сайте, чтобы он выполнялся при просмотре веб-страницы в фоновом режиме.
Со своей стороны разработчики Tor стараются получать обратную связь от пользователей сети. Существуют и независимые проекты мониторинга цензуры вроде Open ObservaTory for Network Interference — это приложение, позволяющее просканировать сетевое окружение пользователя в поисках заблокированных ресурсов, протоколов и сервисов.
Как бы то ни было, технологиям борьбы с цензурой еще предстоит проделать долгий путь, прежде чем они достигнут своей максимальной эффективности. Так, на DEF CON прозвучала информация о том, что в Tor Project активно работают над использованием в шифровании трафика технологии Format-Transforming Encryption. Она позволит сделать передаваемый трафик максимально похожим на обычный незашифрованный HTTP и тем самым сбить с толку механизмы глубокого анализа.
Другой подход называется «ложной маршрутизацией» — в этом случае при установке SSL-соединения один из промежуточных узлов ищет специальный тег внутри пакета SSL-handshake и при его обнаружении перенаправляет трафик в Tor-сеть. В то время как местный интернет-провайдер продолжает считать, будто клиент общается с фейковым удаленным сервером из белого списка, и не догадывается об изменении маршрута.
Выводы
Борьба с цензурой действительно похожа на гонку вооружений, в которой с одной стороны выступают правительства со своими бескрайними ресурсами и многомиллиардные международные корпорации, а с другой — общественные организации и энтузиасты, движимые чувством справедливости, стремлением к свободе и шилом в известном месте. При этом совершенно неочевидно, кто из них победит.
На DEF CON Роджер Динглдайн сказал:
«Австралия подвергает цензуре свой интернет, в Англии есть штука под названием „Фонд наблюдения за интернетом“ (Internet Watch Foundation), которая является частью их правительства. Дания цензурирует интернет, Швеция цензурирует интернет. Поэтому, когда мы ругаем правительство Китая, не позволяющее своим гражданам смотреть BBC, оно вполне обоснованно заявляет, что делает в точности то же самое, что и все остальные…
Дело не только в цензуре: важно привлечь внимание пользователей к тому факту, что за ними наблюдают. И тогда они смогут самостоятельно сделать свой выбор».
И в этом сооснователь Tor Project, безусловно, прав. Пока существует интернет, выбор есть у каждого.