Рунет обреченный: замуровали, демоны. Часть 2
Это продолжение первой части статьи, где мы обсуждали технические возможности государства, на которые некоторая часть ИТ-публики смотрит явно сквозь розовые очки. Речь шла о том, что методы обхода грядущей цензуры и фильтрации Рунета ограничены. В результате мы выяснили, что «приделывание колес» к своему серверу не спасет поросенка Петра от нависающего над ним дамоклова меча интернет-цензуры.
Сегодня мы продолжим эту актуальную тему и рассмотрим все три режима работы оверлейной сети Tor, которая нынче у многих на слуху и на которую многие возлагают неоправданно большие надежды. Также под катом речь пойдет о Great Firewall of China и его составляющих: Deep Packet Inspection, Connection probe и Support vector machines.
Давайте начнем с наиболее расхожего мифа — о якобы непобедимости TOR и I2P для любых форм ограничения и цензуры сетей.
О Tor’е централизованном замолвите слово
Итак, Tor не является полностью децентрализованным. И это создает вполне реальные проблемы, поскольку если запретить или ограничить доступ к корневым серверам, хранящим список доступных узлов (реестр входных точек, Tor enrty nodes), то система рушится (это т.н. «bootstrapping problem»). Например, заинтересованные могут глянуть текущий список IP всех входных нод в удобоваримом виде здесь или здесь — это входные ворота в мир Tor’a, которые можно забанить.
В общих чертах логика работы системы в штатном режиме такова:
Рунет обреченный: замуровали, демоны. Часть 2
Хочу подчеркнуть, что подобные потенциальные проблемы блокировки — это вовсе не результат «кривой» реализации I2P или Тора — такие проблемы неизбежны by-design. Tor — это оверлейная сеть, это своего рода «надинтернет». Она не только в этот самый «регулируемый интернет» лезет за стартовыми адресами для своей инициализации, она через него дышит и живет, прокачивая свои данные и осуществляя адресацию. При таком раскладе довольно тяжело (невозможно?) абстрагироваться от нативных свойств IP-адресации, на базе которой и создали некую вывернутую наружу по своим свойствам абстрактную антисистему.
Правда, в отличие от тормозного задыхлика I2P (о котором мы поговорим ниже), в Tor предусмотрен второй эшелон обороны для случаев своего подавления, это так называемый «сетевой мост» («ретрансляторы типа мост», Tor bridge). И если с обычным режимом Tor все ясно — уже во многих странах мира Tor заблокирован, — то его «усиленные режимы работы» стоят отдельного рассмотрения, поскольку именно это решение часто называется некой вершиной среди инструментов пробивания государственного цензурирования и контроля.
Рунет обреченный: замуровали, демоны. Часть 2
Тор в квадрате: сетевые мосты
Итак, в некоторых технических кругах считается, что полностью заблокировать Tor с помощью блэклиста нельзя, потому что он имеет специальный адаптивный механизм для обхода подобных блокировок через приватные bridge-узлы. Но отличие в работе лишь в том, что если обычные Tor relays доступны через публичные списки, то Tor bridge — это точно такой же входной Тор-узел, но выдаваемый приватно, который следует самостоятельно не привлекая к себе внимание узнать и забить в свой Тор-браузер.
Таких узлов достаточно много, но выдают их в лучших конспирологических традициях — по личному запросу с почтовых ящиков в домене gmail и yahoo, при этом в теле письма необходимо указать обязательную сигнальную строку-пароль: ’get bridges’ (с недавних пор также есть веб-форма, защищённая от любой тоталитарщины капчей).
Рунет обреченный: замуровали, демоны. Часть 2
Этот вариант хоть и делает жизнь пользователя неудобной, потому как требует время от времени искать и менять адреса бриджей (они также выявляются и банятся), но, тем не менее, вся эта мелкая возня усложняет жизнь властям — теперь нет единой центральной точки-списка (Tor directory), через которую можно было бы забанить всю Tor-сеть одним махом.
Это нововведение привело к новому витку противостояния. Забегая вперед, констатирую, что эта проблема со стороны властей была успешно решена посредством следующих трех ингредиентов:
deep packet inspection для SSL;
избирательная блокировка определённых сочетаний IP-адресов/TCP-портов;
фильтрация по определенным ключевым словам и сигнатурам, характерным для Тора.
Этого достаточно, чтобы надежно и полностью заблокировать работу Tor’a в том числе и в режиме «сетевых мостов», что успешно продемонстрировал на своем примере Иран. Всего лишь два ИТ-специалиста Ирана полностью нейтрализовали все старания мирового сообщества, при этом сделали они это по-честному — обычный SSL/HTTPS продолжал работать более-менее исправно.
Рунет обреченный: замуровали, демоны. Часть 2
Потом этот же трюк повторили Китай и Эфиопия, полностью зарубив весь свой Тор-трафик, включая приватные мосты.
Вот так примерно это выглядело для случая Эфиопии:
Рунет обреченный: замуровали, демоны. Часть 2
Периодически это случается и в Беларуси, разве что в более топорном исполнении — здесь блокируется весь https-трафик во внешний мир (а на покупке DPI драгоценную валюту можно и сэкономить).
Рунет обреченный: замуровали, демоны. Часть 2
or obfsproxy: высшая магия скрытности
В случаях с Эфиопией и Китаем Tor Project не сдался, он ответил довольно навороченным решением — обфусицированной версией моста (obfuscated bridges, obfsproxy), которая подмешивает левые данные/пакеты, и создает что-то вроде «полиморфических» заголовков/пакетов, чтобы напрочь стереть идентичность или любую ассоциацию каждого отдельного пакета с Тор. Еще раз — это не какое-то принципиально новое решение, это просто возможность самостоятельно находить и прописывать у себя non-public Tor’s relays с поддержкой этой новой фичи-враппера, реализованной в виде подключаемого модуля.
Вот как выглядит логика работы Тора в таком «сверхсекретном» режиме:
Рунет обреченный: замуровали, демоны. Часть 2
Да, это устранило проблему автоматического обнаружения и блокировки точек входа на транзитном шлюзе во внешний мир. Но это не решило вторую проблему: как только адреса таких обфусицированных серверов становятся известны в паблике — их IP-адреса тупо банятся в точке интерконнекта. И снова придется искать девственно новый obfsproxy, чтобы получить выход в мир иной...
Мою претензию к все возрастающей сложности мер противодействия, типа obfsproxy, можно пояснить на примере: если государственную границу ежегодно нелегально пересекают тысячи человек (и некоторые из которых, судя по всему, делают это вполне успешно), то для рядового человека «это удовольствие» практически недоступно — уж слишком много специфических умений и знаний оно требует. Obfsproxy — это реализация принципа security thru obscurity, его сила не в «пуленепробиваемой для цензуры технологии», но исключительно в секретности (или приватности) IP-адреса входящей Tor-ноды.
Рунет обреченный: замуровали, демоны. Часть 2
Постепенно такие узлы подпадают под бан, в таких случаях приходится снова искать новую рабочую ноду... эта технология не блещет совершенством технического решения, скорее это напоминает попытку взять измором одну из сторон-участников процесса противостояния...
Obfsproxy — современный неуловимый Джо
Ради справедливости стоит все-таки признать, что подобные блокировки на уровне государств заточены исключительно на стандартные и массовые решения. Как минимум, пока. Что отчасти объясняет (по принципу «неуловимого Джо») теперешнюю «рабочесть» технологии Obfsproxy — крайняя малочисленность ее пользователей.
Рунет обреченный: замуровали, демоны. Часть 2
К примеру, я знаю российского журналиста, которому коллеги делали туннель для перегонки его видео из Ирана, для чего хватило GRE based vpn’s SSH и socks/tun over ssh, что работало на ура. Джуниперовский VPN (443 порт) тоже работал в тех краях абсолютно без проблем.
Короче, если за дело брался высококвалифицированный техногик с соответствующей поддержкой из-за рубежа — этот сим-сим тут же отворялся, выпуская дух свободы наружу. Да, хорошо иметь друзей-технарей снаружи сетевой клетки, которые готовы тебе помочь в обходной коммуникации (в сущности, в сборке "на коленке" некоего кастомного решения), но что делать остальному подавляющему большинству простых смертных?
Иногда возникает впечатление, что подобные блокировки — это пережиток азиатчины, — но это далеко не так. В декабре 2011 года подвиги Ирана решил повторить Казахстан — наш сосед по Таможенному Союзу. Его крупнейший транзитный оператор KazTransCom начал фильтровать свой трафик, используя расширенный DPI (по китайскому варианту). При этом он довольно хорошо чистил трафик от всех потенциальных разносчиков запрещенной информации: Tor, Tor в режиме бридж, IPsec, технологии на основе PPTP, а также от некоторых вариантов VPN работающих на базе SSL...
Рунет обреченный: замуровали, демоны. Часть 2
Для таких случаев ответ проекта Tor остался неизменен — Obfsproxy.
Рунет обреченный: замуровали, демоны. Часть 2
Но прогресс не стоит на месте — в последнее время появляются сложные методики обнаружения Tor и в режиме Obfsproxy. Для этого применяются timing-атаки или вычисляется процент энтропии (естественности) пакета, но... пока это достаточно сложно и дорого для того, чтобы массово реализовать в режиме реального времени сразу для всей страны. Впрочем, имя ключевой технологии, которая убьет Obfsproxy и ему подобных уже известно — это SVM (о ней более подробно ниже).
I2P — последнее прибежище негодяя техногика
Очень кратко остановимся и на I2P — несмотря на множество романтического бла-бла-бла в околотехнической среде — это не полностью децентрализованное p2p-решение. Так, при первом запуске I2P список всех активных узлов сети также тупо выкачивается в виде тарбола с «этих ваших интернетов» (служебный файл-список i2pseeds.su3 размером порядка 100K). Эта процедура стартовой инициализации называется здесь как reseed . В последнее время разработчики прячут эти специальные инит-сервера напрямик вшивая их в код клиента (только это большой-большой секрет, только между нами!).
Таким образом, внимание: в любой момент времени публично доступен актуальный список адресов всех «стартовых серверов» (reseed list) этой пиринговой сети. Ну, и что стоит их банально забанить нахрен? Здесь даже дорогие DPI не нужны...
Именно таким образом в Иране и Китае динамически блочатся все адреса с которых бутстрапится I2P, посему эта «децентрализованная» сеть уже давно недоступна с их территории.
Рунет обреченный: замуровали, демоны. Часть 2
Более ясно написали в ченжлоге прошлогоднего релиза I2P:
«Routers in certain countries will now automatically enable hidden mode for increased protection... For the list of countries see the thread on zzz.i2p. The only country on the list that has more than one or two I2P users is China.»
Поэтому давайте оставим в покое «неуязвимую» I2P вместе с теми самыми непобедимыми как Чак Норис «more than one or two I2P users in China».
Рунет обреченный: замуровали, демоны. Часть 2
Фильтрация по-взрослому: китайский опыт
Самое время перейти к рассмотрению передового китайского решения, элементы которого использует как Казахстан, так и Эфиопия. И как мы читали ранее — вероятно, именно это оборудование для «восстановления попранной законности» и собирается применить Ростелеком.
Описание текущего положения дел на китайском сетевом фронте начну сразу с фактов: на данный момент Great Firewall of China (GFoC) достаточно надежно блокирует весь национальный трафик из/в систем TOR, I2P и частично VPN. Технически это достигается сочетанием трех технологий-столпов:
Deep Packet Inspection (DPI);
Connection probe;
SVM (support vector machines).
Симбиоз данных методов фильтрации позволяет автоматически распознавать тип шифрованного трафика с высокой степенью точности. Так как о DPI я уже упоминал выше (более подробно смотрите о нем в первой части статьи), то здесь дам лишь краткое пояснение относительно малоизвестных у нас технологий — это connection probe (иногда ее же называют reverse probe) и специфического приложения теории SVM.
Рунет обреченный: замуровали, демоны. Часть 2
Тактика connection probe заключается в том, что любое подозрительное (по самым общим критериям) исходящее соединение во внешний мир замораживается в точке интерконнекта, после чего по указанному целевому адресу уже от имени правительственного сервиса инициируется опережающее соединение к destination IP:Port (к которому изначально и пыталось обратиться удерживаемое соединение).
Далее проводится попытка самостоятельного тестового подключения-сканирования. Если ответ сервера-назначения подпадает под паттерн запрещенных сервисов — удерживаемое соединение клиента принудительно рвется.
Таким образом, чтобы преодолевать connection probe, теоретически нужно обфусицировать поведение не только клиента, но и сервера/протокола, его обслуживающего. Учитывая, что весь трафик в поисках крамольных сигнатур параллельно молотит все тот же DPI, то все, что преодолеет подобную комплексную защиту, — уже будет очень слабо напоминать оригинальный протокол или первоначальный сервис.
Подобные защитные схемы вынуждают создавать для их преодоления узкоспециализированные кастомные сервисы «под заказ», которые, будучи обнародованы и выложены в паблик, — сразу же попадают в стоп-лист GFoC.
Здесь работа специалистов китайского НИИ Сетевой Цензуры и Пропаганды аналогична подходу антивирусных компаний, и в данном конкретном случае DPI — это поиск по сигнатурной базе, а connection probe — своего рода «запуск соединения под отладчиком», который выявляет и блокирует «нестандартные клиенты», позволяя нагло вклиниваться третьему лицу непосредственно в интимный процесс их хэндшейка (tcp session handshake).
Рунет обреченный: замуровали, демоны. Часть 2
Третий столп — уже упомянутый Метод опорных векторов (SVM, support vector machine) — это известный алгоритм машинного обучения, который очень эффективен, когда возникает необходимость автоматически классифицировать разнородные данные. Иначе говоря, машина опорных векторов — это самообучающаяся на базе статистических методов программа, которую можно представить как двухслойную нейросеть (RBF-сеть). Желающие более полно познакомиться с математической стороной теории могут вот здесь (рус.) глянуть тематическую брошюрку от сотрудника Яндекса, а также прочитать дополнительное введение в теорию SVM (англ.) и пример ее простейшей реализации на С.
Продолжая нашу антивирусную аналогию, SVM — это своего рода эвристический движок, позволяющий с высокой степенью вероятности идентифицировать в обилии разнообразных полиморфических штаммов оригинальный вирус, чтобы принять в отношении него адекватные меры. Таким образом, с помощью SVM признаки различных протоколов и их характерные паттерны вычленяются даже в специально обфусицированном потоке данных, и чаще всего это реализуется в виде продвинутой AI-надстройки над «сверхглубокой молотилкой пакетов» — DPI (два в одном). Именно на ее развитие возлагаются надежды по обнаружению технологий типа Obfsproxy (первые успехи уже имеются).
Рунет обреченный: замуровали, демоны. Часть 2
Переходя к частностям, именно с помощью connection probe Китай регистрирует, например, SSH (вот пример такой технологии). Типы SSL-трафика данный комплекс технологий также более-менее успешно разделяет (вот дополнительное описание, видео mp4, 600Mb) этого процесса по отношению к Tor).
Об особенностях борьбы с VPN мы поговорим более подробно в следующих статьях этого цикла, но раз уж мы коснулись Китая здесь, то сообщаю: на данный момент власти Китая согласовывают законодательный проект, который предполагает разрешение VPN для лицензируемого использования.
Рунет обреченный: замуровали, демоны. Часть 2
Иначе говоря, у юридических лиц для служебных нужд будут свои лицензированные тоннели (это будет свой собственный китайский софт), которые не будут блокироваться на трансграничном шлюзе, а физическим лицам все принудительно «порежут».
А детектирование VPN сведется к обнаружению и проверки валидности вшитой лицензии «лицензированного» тоннеля, а также к тупому «дропанью» всего остального зоопарка VPN.
Следствие всего сказанного -> немного статистики
Логично будет завершить данный теоретический экскурс статистикой количества активных пользователей Tor из ряда отобранных мною стран (ниже выборка: daily active Tor users both direct and bridge, per month by country):
Рунет обреченный: замуровали, демоны. Часть 2
Как видно, количество пользователей Tor Onion из многомиллиардного Китая даже меньше количества пользователей оной сети из Беларуси, хотя масштаб двух этих стран просто несопоставим. С одной стороны, можно подивиться изворотливости этой «отборной китайской тысячи», но с другой — кто будет спорить, глядя на эти результаты, что блокировка в масштабах всей китайской страны работает очень даже неплохо?
Если учитывать население Китая и количество прорвавшихся через его сетевую границу, то, соблюдая пропорции, при подобной блокировке в России наружу выползет около 100–150 человек максимум...
Короче, говоря о нашем будущем, важно запомнить главное:
Рунет обреченный: замуровали, демоны. Часть 2
Принципиально-очевидные выводы, которые можно не читать
Закрывая тему, давайте кратко подытожим и осмыслим всё сказанное ранее в двух частях.
Техногики ошибаются, сильно недооценивая государство им противостоящее. Как правило, они видят в качестве оппонентов неких низкоквалифицированных «студентов ПТУ-шников», которые пытаются на коленке «изобретать велосипеды» (вероятно, рядовые чиновники и производят такое отчасти лоховатое впечатление). И хотя в отношении некоторых небольших государств это верно, ведущие мировые державы могут позволить себе нанимать чрезвычайно квалифицированных сотрудников, предлагая им пиковые зарплаты на рынке. Даже глобальным именитым фирмам потенциально сложно конкурировать в этих вопросах с «федералами» по степени своей привлекательности, если они действительно захотят сделать кому-то оффер. Поэтому мой совет: не стоит недооценивать этих людей, если перед ними будет поставлена задача «быстро сделать вам проблему».
Техногики допускают довольно обидный промах, полагая, что если они с помощью сильной криптографии обеспечат анонимность содержимого своего трафика, то, якобы, это само по себе гарантирует их безопасность. Как я уже объяснял в первой части — нужно быть проще. Например, если тот же VPN будет юридически запрещён, то вовсе не нужно как-то расшифровывать этот защищённый трафик чтобы уличить кого-то в распространении «запрещённой информации» (sic!) — сам факт использования VPN/Tor будет незаконным со всеми вытекающими отсюда уголовными последствиями. А детектирование использования этих сервисов конкретным абонентом ISP — по нынешним временам дело и вовсе плёвое.
Да, любые «общественно-мотивированные» и благовидные причины блокировки будут использоваться в том числе для ограничения свободы слова. Проще пояснить это на примере: сначала Великобритания запретила онлайн-порнографию, а буквально через месяц начала массовую блокировку зарубежных VPN-сервисов под предлогом «их использования подростками для незаконного доступа к порнографии». Власти Австралии также собираются последовать примеру Туманного Альбиона в самое ближайшее время.
Повторю главный тезис, озвученный ещё в первой части: нет, техногикам не поможет их техно-крипто-пиринг магия, если государство проявит политическую волю и действительно захочет положить конец интернет-вольнице. К сожалению, инициатива и право «последнего слова» в этом вопросе принадлежит вовсе не интернет-населению Рунета (ба, сколько напускного удивления: петиция об отмене 187—ФЗ недавно набравшая 100 тыс. голосов — полностью проигнорирована властями, — кто бы мог подумать, да?), а регуляторам территорий (клан «siloviki», см. Теорию Операторов), на которой они физически восседают.
Решение этой и других проблем лежит не в ещё большей инкапсуляции и децентрализации в рамках сети (создание нового Super-Mega-Obfsproxy), не в ещё более глубоком погружении в виртуальность, но за пределами самого интернета. Логичная попытка государств устранить нынешний диссонанс, — когда в риале рот раскрыть без последствий невозможно («больше трёх не собираться»), а в сети местной «мерзкий госдеповский аноним» своей мыслью крамольной и античиновничьей тысячные аудитории поливает, — уже начата и, безусловно, вполне осуществима. Не нужно бороться с тупиковыми сетевыми следствиями, когда есть «риалные» причины происходящего, господа техногики.
Попытки же культивирования бессмысленной по своей сути, на каждом очередном витке, «гонки вооружений», для лобового столкновения с интересами государства — не только контрпродуктивны, но и обречены на поражение. Они также противоположны тому единственному пути во вне, который я лично назвал бы как «Вектор Навального» — то есть девиртуализация и выход из сети в риал, для активного участия в политике и общественной жизни нашей многострадальной и отчасти уже фантомной Родины.
К сожалению, есть вероятность, что поезд этот уже давно ушёл...
Рунет обреченный: замуровали, демоны. Часть 2
... и, в результате «этого развития», совершенно согласен с опасениями главы 
Google Russia ...
Рунет обреченный: замуровали, демоны. Часть 2
Окончание этой серии — почему не стоит огорчаться, или почему Роскомнадзор не сможет осуществить всего вышесказанного (немного умеренного позитива).
Продолжение следует