В начале декабря я обратил внимание, что в одной автономной системе (AS) начали уходить в оффлайн ретрансляторы (relay) сети Tor. В той же AS был расположен и мой relay.  Разумеется, этому могло быть простое объяснение – кто-то уехал в отпуск и отключил компьютер, или же просто забыл оплатить интернет. Но учитывая, что возраст некоторых из пропавших relay’ев превышал 3 года, а ранее нестабильностью они не отличались, такие наблюдения наводили на немного другие мысли. Если месяц назад поиск через сервис Tor|Metrics выдавал для этой AS десяток relay’ев из которых обычно offline было меньше половины, то в настоящий момент Tor|Metrics выдает всего 3 relay’а, из них online периодически отмечаются один-два. Но так как мой relay всё ещё сохранял работоспособность, а дяди с дубинками не пытались выломать мне дверь, я решил просто понаблюдать за ситуацией. Далее я расскажу о своих наблюдениях и оценке масштаба блокировки сети Tor. 3 декабря вышла новость о начале блокировки Tor Примерно 8-9 декабря мой relay, по мнению Tor|Metrics, ушел в оффлайн. На самом деле, в это время он имел около 4 дней аптайма после недавней установки обновлений, а количество входящих и исходящих сетевых соединений, а также объём ретранслируемого траффика также не отличался от обычного. Удалось выяснить, что мой relay потерял связь с большинством узлов сети Tor, имеющих флаг Authority - доступными оставались всего 3 таких узла из 10. Что интересно – все эти узлы продолжали отвечать на ICMP запросы, а попытки установить TCP соединение на ORPort для заблокированных узлов оканчивались по таймауту. Чем плохо то, что relay уходит в оффлайн? Он начинает терять флаги, вес, и может выпасть из консенсуса, в конечном итоге становясь бесполезным для сети. Поэтому, в качестве ответной меры я перенес свой relay за пределы РФ. 9 декабря во многих СМИ вышла новость о том, что “в России перестали блокировать сеть Tor, доступа нет только к сайту”. Я уже было обрадовался, и побежал проверять доступность ранее заблокированных узлов с флагом Authority. Но нет, блокировка не исчезла, и сохраняется она и в настоящее время. Мне стало интересно понять масштабы блокировки, поэтому я написал небольшой скрипт для сканирования доступности всех известных relay’ев сети Tor по протоколам ICMP и TCP. Список relay’ев был получен через Onionoo API. Для каждого relay’а была записана следующая информация: nickname, fingerprint, IP:ORPort, running (флаг из Onionoo API), ICMP-reachable (результат сканирования), TCP-reachable (результат сканирования). Так как ICMP может намеренно фильтроваться для некоторых relay’ев, не влияя при этом на их работоспособность, было принято решение считать заблокированными только те relay’и, которые имеют флаг running, отвечают по ICMP, но соединение по TCP оканчивается таймаутом. Все прочие случаи классифицируются как “on” или “off”, приоритет при классификации отдается результату проверки доступности по TCP, т.к. флаг running мог устареть между моментом получения списка узлов и сканированием конкретного узла. Краткие результаты сканирования для провайдера, в сети которого до недавних пор размещался мой ретранслятор сети Tor: Краткие результаты сканирования для провайдера, не осуществляющего блокировку: Агрегированные результаты сканирования (по странам и по AS; top-25 по кол-ву relay’ев) для провайдера, в сети которого до недавних пор размещался мой ретранслятор сети Tor: Агрегированные результаты сканирования (по странам и по AS; top-25 по кол-ву relay’ев) для провайдера, не осуществляющего блокировку: Для начала, хотелось бы пояснить, зачем я всё это делаю. Во-первых, я придерживаюсь мнения, что "незаконной информации" не бывает, бывают лишь незаконные действия людей. А "запрещенная информация" есть синоним понятия "цензура". К сожалению, оба эти словосочетания встречаются на веб-сайтах некоторых государственных органов. Кстати, как считаете, если человек ознакомится с "незаконной" или "запрещенной" информацией, и копия её станет храниться у него в голове в форме мыслей и воспоминаний, сделает ли это мысли этого человека незаконными? :) Во-вторых, я поднял свой relay, когда мне надоело бегать между прокси, в те времена, когда Telegram всё ещё не был вновь разрешен. Передаю привет и благодарность РКН за бесплатное цирковое представление. А теперь вернемся к результатам. Небольшое кол-во relay'ев, помеченных как "blocked" согласно принятой мною классификации, в случае второго провайдера скорее всего просто ушли в оффлайн. Из более чем 7 тысяч узлов доступны более 6 тысяч. У первого провайдера блокировка затрагивает почти 40% узлов. Некоторые AS затронуты целиком, например - AS62744 (QUINTEX), в которой расположено 99 relay'ев сети Tor. Небольшие расхождения в количествах relay'ев для провайдеров обусловлено тем, что сканирование выполнялось в разное время. Я намеренно не выкладываю скрипты и не указываю провайдеров, для которых выполнял сканирование. При желании вы можете сами повторить эксперимент, и сделать собственные выводы о достоверности моих результатов, а также о том, касается ли блокировка лично вас. Исследователь — разработчик алгоритмов