Свободу байтам
Вы видите меня хозяином Франции, но я бы не взялся править ею и три месяца при свободной прессе.
— Наполеон I
Чисто гипотетически, представьте себе ситуацию, что власть захватили вражеские агенты, мы в оккупации, нас помещают в информационный пузырь. Конечно гипотетически, на самом деле, такое с нами произойти не может. А то, что сейчас блокируют (как устроена блокировка в РФ и РБ), это же конечно «для нашего блага».
Цель этой статьи: найти и проанализировать открытые или, как минимум, закрытые, но бесплатные и удобные инструменты, которые позволяют получить доступ к информации в случае частичной или полной блокировки доступа к сети Интернет.
Кому лень читать, буду краток: Tor и Bridgefy — это то, что должно стоять у каждого борца за свободу информации :).
Disclaimer: «вдохновлением» для этой статьи послужил беспредел, который происходит в родных краях.
Рассмотрим, как как нам могут перекрыть доступ? У нас есть вымышленный Интернет ресурс example.com
с IP адресом 123.123.123.123
. Что с ним могут сделать?
Блокировка по статическому IP адресу (IP black hole). Сомнительный по эффективности способ. В облачных хостингах можно мгновенно получить новый IP адрес. А затем поменять DNS A записи. Да и часто используется Content Distribution Network (CDN), которые хостят ресурсы не на одном IP, и на этом IP по-другому доменному имени хостятся другие веб ресурсы. Заблокируешь эти IP — половина сервисов интернета станут недоступны. При попытках заблокировать Telegram, блокировались пулы CDN IP-адресов, которые использовались клиентским приложением — многие ресурсы стали недоступны. Многие бизнесы пострадали. И это не единcтвенный случай.
Изменении DNS записи (DNS hijacking). Обходится проще всего: нужно изменить DNS сервер в настройках своего роутера или ОС.
Но провайдеры могут пойти дальше. DNS протокол придуман давно, и не предусматривал шифрование или обязательную авторизацию ответа. Таким образом, провайдеры могут перехватывать ваши DNS пакеты на любой DNS сервер (Google DNS 8.8.8.8 или Cloudlfare DNS 1.1.1.1) и отвечать за них другими IP-шниками, которые ведут на страницу блокировки (вместо нашего123.123.123.123
). С такими атаками призван бороться DNSSEC. Но этот подход встретил критику: она заключается в том, что DNSSEC все равно не решает проблему полностью. Далее, на помощь приходит DNS over HTTPS или DNS over TLS. В новых релизах от Apple: macOS Big Sur и iOS 14 он уже включен по умолчанию. В Windows 10 Insider так же добавили поддержку. На Linux в systemd-resolved идет разработка. Более того, Firefox включил DNS over HTTPS по умолчанию для новых релизов. В Chromium есть возможность включить поддержку.Глубокий анализ пакетов (Deep Packet Inspection, DPI) — здесь уже интереснее. Например, Ideco Selecta ISP, или Великий Китайский Фаервол. Данные инструменты могут не только обращать внимание на доменное имя, IP адрес, L4 протокол и порт, но и на другие нюансы протокола. Например на используемый TLS Сipher Suite для HTTPS. Или на размер первого, второго, третьего пакета в TLS Handshake. Вот такие инструменты могут достать SNI поле из TLS Client Hello сообщения, в котором содержится доменное имя (в нашем случае »
example.com
»). И если DPI увидит неугодный ресурс — отбросит пакет.
Инженеры-борцы за свободу и приватность в сети Интернет пошли дальше: Encrypted SNI (ESNI). В связке с DNS over HTTPS/TLS позволяет скрыть от DPI доменное имя ресурса, к которому вы получаете доступ. Поддерживает ли ваш браузер необходимый функционал? Проверить можно здесь. Firefox поддерживает. Chromium еще нет. Но ESNI заработает только, если создатели ресурса позаботились об этом, а это все еще экспериментальная функциональность. Поэтому, поддерживается не всеми. Хотечется добавить, что не все DPI хороши как Великая Китайская Огненная Стена: при блокировке сайта navalny.com, использовали трюк с TCP Window Size, чтобы разделить SNI на несколько TCP cегментов. GoodbyeDPI, который использовался некоторыми провайдерами, не умел собирать фрагментированные TCP сегменты — блокировка не сработала.Ну и самое банальное. Если регистратором доменного имени выступает регистратор, на который могут «надавить» враги, то доменно имя у вас могут «отжать». Я про такие случаи «не читал, но осуждаю».
Итого
- У вас не возникнет проблем, если:
- на вашей ОС включен DNS over HTTPS (или over TLS, при условии использования внешнего независимого DNS сервера, например от Cloudflare);
- и »
example.com
» использует CDN с поддержкой TLSv1.3 / ESNI; - и провайдер не заблокировал независимый DNS по IP адресу;
- и провайдер не заблокировал пул IP адресов CDN, как это было в во время блокировки Telegram в РФ;
- Если что-то из вышеперечисленного не поддерживается на клиентской или серверной стороне, то скорее всего доступ прикроют использую DPI ПО — читаем дальше.
Все виды блокировок можно обойти с помощью VPN. Но могут заблокировать сам VPN. Для таких случаев придумали Tor (о нем речь пойдет ниже).
Решения расположены в порядке простоты их использования.
Закрытый бесплатный VPN от Cloudflare на основе протокола Wireguard. Рекламы нет, поэтому поместил в этот список.
- Протокол блокируется Великим Китайским Фаерволом.
- Не поддерживается Linux. Но скоро добавят.
- Лимиты по объему передаваемых данных.
- Удобство использования.
- Нет рекламы в бесплатной версии.
- Wireguard поддерживает роуминг. Это позволяет прозрачно и незаметно для пользователя сменять сети (Wi-Fi, LTE, 3G).
Открытое VPN приложение на базе протокола OpenVPN. Предоставляет бесплатно свои сервера. Доступно для Android, Linux, Windows, macOS. Ссылки на приложения доступны на официальном сайте.
- Протокол блокируется Великим Китайским Фаерволом.
- Не поддерживается iOS.
- Удобство использования.
- Открытый код.
- Нету лимитов по объемам передаваемых данных.
- Есть лимиты по скорости. Для просмотра видео с »
example.com
» хватит.
Это удобное расширение для браузера для настройки прокси-серверов. Расположение (страну) прокси-сервера можно выбрать в настройках.
- Дополнение работает только в браузерах на Desktop-системах. Но есть приложения под мобильные платформы, но уже с рекламой.
- Доступно в Firefox и Chrome.
Cписок бесплатных OpenVPN серверов, которые хостятся в основном США и Японии.
Будет работать с любым OpenVPN клиентом на любой операционной системе.
- Протокол блокируется Великим Китайским Фаерволом.
- OpenVPN клиенты есть для всех популярных операционных систем.
- Тяжело в использовании неопытными пользователями, необходимо скачивать конфигурацию самостоятельно. Нужно скачать конфигурационный файл с сайта и выбрать его в приложении: ,
Итого
Попробуйте описанные выше продукты. Скорее всего они вам помогут. Если вам не хватает пропускной способности, а денег много тратить не хочется, можно развернуть свой VPN сервер в сети. Это сложнее, но дешевле (от 3 евро в месяц), если VPN вы собираетесь пользоваться много.
Вражеские агенты узнали о том, что люди могут получить доступ к информации. VPN начали блокировать DPI инструментами.
Хьюстон, у нас проблема!
Не отчаивайтесь, мы не первые. Многие страны уже прошли этот этап. Великий Китайский Фаервол уже давно умеет и практикует. А в РФ и РБ (обкатывают на госорганизациях) есть соответствующие постановления. И инструменты обхода соответствующие разработаны. И интересно, что несколько проектов, которые будут рассмотрены, разработаны правительством США.
Если вас интересует не только возможность получать доступ к Интернет ресурсам, но и еще делать это анонимно, то вам нужен Tor. В обещания VPN провайдеров о том, что они не хранят логи доступа или не начнут дампить пакеты по требованию вражеских агентов, я не верю. Хотя анонимность Tor тоже под вопросом, если узлы сети скомпроментированы.
Наверняка вы уже слышали о этой сети. И о ее архитектуре, где каждый пакет шифруется несколько раз, а затем расшифровывается на промежуточных сетевых узлах. Это похоже на разворачивании луковицы, поэтому и называется onion (лук)-network. В Беларуси Tor официально заблокирован с 2016 года, но из-за архитектуры, он продолжает работать через Bridges. Конечно враг может пойти дальше и усложнить процесс использования даже Bridges. Но все каналы перекрыть не получится.
А еще через сеть Tor доступен Darknet. А это что-то реально свободное и неподконтрольное никому. Но организовано неудобно.
- Obfs4 позволяет обходить даже Великий Китайский Фаервол.
- Открытый код.
- Поддерживается всеми популярными операционными системами, в том числе мобильными.
- Проект развивается давно, поэтому приложения удобные и не вызывают трудностей при использовании.
- Работает медленнее VPN из-за луковичной архитектуры сети.
- Работает в виде прозрачного прокси или браузера на всех ОС.
Разработан в университете города Торонто. Для туннелирования используется обфусцированный SSH туннель. Но было найдено упоминание о использовании L2TP/IPsec для VPN на Windows. До начала моего исследования я не слышал про этот сервис. А зря, он использовался во время блокировок Телеграм в Иране во время протестов конца 2017 начала 2018 года.
Проект проспонсирован правительство США и может использовать других участников сети для проксирования (если разрешено). Если узлов, разрешающих проксирование, нет, то ПО использует резервные (fallback) прокси сервера, предоставленные самим проектом.
- Позволяет обходить Великий Китайский Фаервол в Pro версии. Но в бесплатной версии можно получить список Fallback Proxies IP и заблокировать.
- Поддерживается всеми популярными операционными системами, в том числе мобильными.
- Открытый код.
- Не сохраняет анонимность. Прямо так в соглашении прописано, что могут продавать ваши логи.
- Если же вы, например, в Китае, то бесплатная версия может не сработать. Нужно покупать подписку. По подписке доступны другие сервера, которые сложнее достать цензору.
От Китайских разработчиков с любовью. Кто, как не инженеры из страны с Великим Фаерволом, может с этим еще бороться эффективнее? В первозданном виде Shadowsocks блокируется Великим Китайским Фаерволом через Active Probing. Но можно подключить другие транспорты, например, Obfs4, который используется сетью Tor. В таком случае нам кран не перекроют.
- Obfs4 позволяет обходить даже Великий Китайский Фаервол.
- Открытый код.
- UX для опытных пользоавтелей.
- Публичных бесплатных серверов я не видел. Но можно очень просто развернуть свой сервер на Linode.
- Поддерживается на всех популярных операционных системах, в том числе на мобильных.
Проприетарное VPN приложение которое использует закрытый протокол Catapult Hydra. Согласно блогу компании, умеет обходить Китайский Фаервол. Приложение платное. В бесплатной версии навязчивая реклама. Но если ничего больше не работает, стоит попробовать.
- Обходит Китайский Фаервол.
- Есть клиенты под все популярные ОС.
- Реклама в бесплатной версии.
- Закрытый протокол.
- Не сохраняет анонимность.
Итого
Выбор редакции — Tor. Tor поможет в большинстве случаев. UI\UX приложения Orbot не вызвал у меня вопрос, все понятно. Скорее всего и у вас не будут проблем. Считаю, что это приложение должно быть утсановлено у всех борцов за свободу информации, рано или поздно вам оно пригодится.
Отлично, разобрались с Tor. А что если вражески-настроенные агенты пошли дальше. Они отключили GSM сеть. Или вообще отключили Интертнет. Перезагрузка ПК и роутера не помогает :).
Шеф, все пропало!
В таком случае подойдут mesh-сети. В нашем случае нас интересуют mesh-сети, которые строятся с помощью Bluetoothи Wi-Fi Direct. Используя эти технологии, можно построить mesh-сети между мобильными устройствами: все узлы сети соединяются с соседними узлами в радиусе доступности радиосигнала и помогают передавать пакеты до адресата. Такой вид взаимопомощи, хватит быть эгоистом! ;)
Mesh-сети явление не новое. Глоток популярности они получили во время протестов в Ираке и Гонконге в 2014 году благодаря приложения Firechat (уже не поддерживается). В 2015 году использовался активистами во время протестов в Эквадоре и во время протестов «Free Way to the Cataln Republic» в Барселоне. А в 2016 году использовался студентами во время протестов в Индии, когда в университете отключили Wi-Fi сеть.
FireChat был построен на закрытой библиотеке MeshKit от OpenGarden. Сообщество Hackernews ее не одобрили: «Какой это Freedom, если код закрыт»?! Для передачи текстовых сообщений и изображений используются беспроводные сети Bluetooth и Wi-Fi, устройства с установленным клиентом могут обнаруживать друг друга в радиусе до 60 метров. Каждое устройство с клиентом фактически становится ретранслятором для других устройств с этой программой, организуя распределенную mesh-сеть.
Хотелось бы напомнить, что вас могут отследить, если вы подключены к GSM сети. Переведя же телефон в режим полета и присоединившись к Bluetooth mesh-сети, вы лишаете вражеских агентов возможности отследить вас.
Так как FireChat закрыт, а приложение уже недоступно, предлагаю посмотреть на доступные альтернативы.
Разработчики приложения позиционируют его как способ для общения во время путешествий и различного рода общественных мероприятий, когда GSM сеть может оказаться перегруженной. Приложение может работать в 3 режимах:
- Person-to-Person: общение возможно только между двумя участниками. Используется Bluetooth, в таком режиме радиус действия сильно ограничен.
- Mesh-сеть: сообщения шифруются и передаются через других участников сети (узлы). Тот режим, который нас интересует.
Широковещательный (Broadcast): отправляет широковещательное сообщение всем участникам сети кругом. Все увидят ваше сообщение, даже если их нету в вашем контакт-листе.
Я протестировал приложением между двумя Android смартфонами, работали все режимы с выключенным Wi-Fi. Также, сообщения синхронизируются через сеть Интернет.
- Поддерживаются iOS и Android.
- Закрытый код.
- Добавлять можно только те контакты, которые рядом, что неудобно.
Этот проект с открытым кодом разработан для активистов, журналистов и других, кто нуждается в безопасном и надежном виде коммуникации. В отличии от традиционных мессенджеров, Briar полагается не только на центральный сервер, а синхронизирует сообщения между пользовательскими устройствами. Если сеть Интернет недоступна, Briar может синхронизировать сообщения через Bluetooth или Wi-Fi. Если сеть Интернет доступна, сообщения синхронизируются через Tor сеть, защищая пользователей от наблюдения. Больше деталей в официальной документации.
Я протестировал приложение между двумя Android смартфонами. Работали все режимы с выключенным Wi-Fi, добавление контакта через QR код и микроблогинг. Сообщения синхронизируются через сеть Интернет.
- Не поддерживает iOS. Только Android. Со временем доработают.
- Открытый код.
- Можно вести свой микроблог, полезная вещь, если нужно оповестить большую аудиторию о чем-то важном.
- Можно добавлять контакты по ссылке, которая представляет собой публичный ключ.
Итого
Используя мессенджеры на основе mesh-сетей можно наладить связь при массовых скоплениях людей без сети Интернет. Основная проблема — побудить всю «толпу» установить приложение. Мой выбор пал на Bridgefy, потому что поддерживается iOS и Android. Хотя UI\UX и функциональность понравились больше у Briar: возможность добавлять контакты через считывание QR кодов, индикаторы доступных каналов связи, возможность добавлять контакты с помощью ссылок, т.е не надо быть в радиусе-действия Bluetooth.
Хочу отметить, что мои коллеги предупредили, что сотни WiFi 2.4 GHz на небольшой площади из-за Beacon могут «нашуметь» на столько, что на данной частоте будет невозможно поддерживать связь. Но я с этим не сталкивался, пока что.
Буду краток: Tor и Bridgefy спасут вас с большой вероятностью.
Хотелось бы отметить, что вражеские агенты могут пойти дальше. Если начнут глушить не только GSM, а 2.4ГГц или 5ГГц, на котором работает Wi-Fi и Bluetooth, то здесь уже ничего не поделаешь. Или поделаешь? Поделитесь идеями!
Прошу прощения за возможные ошибки и описки. Посоветуйте плагин для VS Code, который может исправлять синтаксис и пунктуацию в Markdown:)