- PVSM.RU - https://www.pvsm.ru -
Вы видите меня хозяином Франции, но я бы не взялся править ею и три месяца при свободной прессе.
— Наполеон I [1]
Чисто гипотетически, представьте себе ситуацию, что власть захватили вражеские агенты, мы в оккупации, нас помещают в информационный пузырь. Конечно гипотетически, на самом деле, такое с нами произойти не может. А то, что сейчас блокируют (как устроена блокировка в РФ [2] и РБ [3]), это же конечно "для нашего блага".
Цель этой статьи: найти и проанализировать открытые или, как минимум, закрытые но бесплатные и удобные инструменты, которые позволяют получить доступ к информации в случае частичной или полной блокировки доступа к сети Интернет.
Кому лень читать, буду краток: Tor [4] и Bridgefy [5] — это то, что должно стоять у каждого борца за свободу информации :).
Disclaimer: "вдохновлением" для этой статьи послужил беспредел, который происходит в родных краях.
Рассмотрим, как как нам могут перекрыть доступ? У нас есть вымышленный Интернет ресурс example.com с IP адресом 123.123.123.123. Что с ним могут сделать?
Блокировка по статическому IP адресу (IP black hole [6]). Сомнительный по эффективности способ. В облачных хостингах можно мгновенно получить новый IP адрес. А затем поменять DNS A записи [7]. Да и часто используется Content Distribution Network [8] (CDN), которые хостят ресурсы не на одном IP, и на этом IP по-другому доменному имени хостятся другие веб ресурсы. Заблокируешь эти IP - половина сервисов интернета станут недоступны. При попытках заблокировать Telegram [9], блокировались пулы CDN IP-адресов, которые использовались клиентским приложением — многие ресурсы стали недоступны. Многие бизнесы пострадали. И это не единcтвенный случай.
Изменении DNS записи (DNS hijacking [10]). Обходится проще всего: нужно изменить DNS сервер в настройках своего роутера или ОС.
Но провайдеры могут пойти дальше. DNS протокол придуман давно, и не предусматривал шифрование или обязательную авторизацию ответа. Таким образом, провайдеры могут перехватывать ваши DNS [10] пакеты на любой DNS сервер (Google DNS 8.8.8.8 или Cloudlfare DNS 1.1.1.1) и отвечать за них другими IP-шниками, которые ведут на страницу блокировки (вместо нашего 123.123.123.123). С такими атаками призван бороться DNSSEC [11]. Но этот подход встретил критику [12]: она заключается в том, что DNSSEC все равно не решает проблему полностью. Далее, на помощь [13] приходит DNS over HTTPS [14] или DNS over TLS [15]. В новых релизах от Apple: macOS Big Sur и iOS 14 [16] он уже включен по умолчанию. В Windows 10 Insider [17] так же добавили поддержку. На Linux в systemd-resolved идет разработка [18]. Более того, Firefox включил [19] DNS over HTTPS по умолчанию для новых релизов. В Chromium есть возможность [20] включить поддержку.
Глубокий анализ пакетов (Deep Packet Inspection [21], DPI) - здесь уже интереснее. Например, Ideco Selecta ISP [22], или Великий Китайский Фаервол [23]. Данные инструменты могут не только обращать внимание на доменное имя, IP адрес, L4 [24] протокол и порт, но и на другие нюансы протокола. Например на используемый TLS Сipher Suite [25] для HTTPS [26]. Или на размер первого, второго, третьего пакета в TLS Handshake [25]. Вот такие инструменты могут достать SNI [27] поле из TLS Client Hello [25] сообщения, в котором содержится доменное имя (в нашем случае "example.com"). И если DPI увидит неугодный ресурс - отбросит пакет.
Инженеры-борцы за свободу и приватность в сети Интернет пошли дальше: Encrypted SNI [28] (ESNI). В связке с DNS over HTTPS/TLS позволяет скрыть от DPI доменное имя ресурса, к которому вы получаете доступ. Поддерживает ли ваш браузер необходимый функционал? Проверить можно здесь [29]. Firefox поддерживает [30]. Chromium [31] еще нет. Но ESNI заработает только, если создатели ресурса позаботились об этом, а это все еще экспериментальная функциональность. Поэтому, поддерживается не всеми. Хотечется добавить, что не все DPI хороши как Великая Китайская Огненная Стена: при блокировке сайта navalny.com [32], использовали трюк [33] с TCP Window Size [34], чтобы разделить SNI на несколько TCP cегментов. GoodbyeDPI [35], который использовался некоторыми провайдерами, не умел собирать фрагментированные TCP сегменты — блокировка не сработала.

Ну и самое банальное. Если регистратором доменного имени выступает регистратор, на который могут "надавить" враги, то доменно имя у вас могут "отжать". Я про такие случаи "не читал, но осуждаю".
example.com" использует CDN с поддержкой TLSv1.3 / ESNI;Все виды блокировок можно обойти с помощью VPN [37]. Но могут заблокировать сам VPN. Для таких случаев придумали Tor (о нем речь пойдет ниже).
Решения расположены в порядке простоты их использования.
Закрытый бесплатный VPN от Cloudflare [40] на основе протокола Wireguard [41]. Рекламы нет, поэтому поместил в этот список.

Открытое VPN приложение на базе протокола OpenVPN. Предоставляет бесплатно свои сервера. Доступно для Android, Linux, Windows, macOS. Ссылки на приложения доступны на официальном сайте.

example.com" хватит.Это удобное расширение для браузера для настройки прокси-серверов. Расположение (страну) прокси-сервера можно выбрать в настройках.

Cписок бесплатных OpenVPN серверов, которые хостятся в основном США и Японии.
Будет работать с любым OpenVPN клиентом на любой операционной системе.
Попробуйте описанные выше продукты. Скорее всего они вам помогут. Если вам не хватает пропускной способности, а денег много тратить не хочется, можно развернуть [50] свой VPN сервер в сети. Это сложнее, но дешевле (от 3 евро в месяц), если VPN вы собираетесь пользоваться много.
Вражеские агенты узнали о том, что люди могут получить доступ к информации. VPN начали блокировать DPI инструментами.
Хьюстон, у нас проблема!
Не отчаивайтесь, мы не первые. Многие страны уже прошли этот этап. Великий Китайский Фаервол уже давно умеет и практикует [51]. А в РФ [52] и РБ (обкатывают на госорганизациях) [3] есть соответствующие постановления. И инструменты обхода соответствующие разработаны. И интересно, что несколько проектов, которые будут рассмотрены, разработаны правительством США.
Если вас интересует не только возможность получать доступ к Интернет ресурсам, но и еще делать это анонимно, то вам нужен Tor. В обещания VPN провайдеров о том, что они не хранят логи доступа или не начнут дампить пакеты по требованию вражеских агентов, я не верю. Хотя анонимность Tor тоже под вопросом, если узлы сети скомпроментированы [54].
Наверняка вы уже слышали о этой сети. И о ее архитектуре, где каждый пакет шифруется несколько раз, а затем расшифровывается на промежуточных сетевых узлах. Это похоже на разворачивании луковицы, поэтому и называется onion (лук)-network. В Беларуси [55] Tor официально заблокирован с 2016 года, но из-за архитектуры, он продолжает работать через Bridges [56]. Конечно враг может пойти дальше и усложнить процесс использования даже Bridges. Но все каналы перекрыть не получится.

А еще через сеть Tor доступен Darknet [57]. А это что-то реально свободное и неподконтрольное никому [58]. Но организовано неудобно.
Разработан в университете города Торонто [62]. Для туннелирования используется обфусцированный SSH туннель [63]. Но было найдено упоминание [64] о использовании L2TP/IPsec для VPN на Windows. До начала моего исследования я не слышал про этот сервис. А зря, он использовался во время блокировок Телеграм в Иране [65] во время протестов конца 2017 начала 2018 года.

Проект проспонсирован правительство США и может использовать других участников сети для проксирования (если разрешено). Если узлов, разрешающих проксирование, нет, то ПО использует резервные (fallback) прокси сервера, предоставленные самим проектом.

От Китайских разработчиков с любовью. Кто, как не инженеры из страны с Великим Фаерволом, может с этим еще бороться эффективнее? В первозданном виде Shadowsocks блокируется Великим Китайским Фаерволом [76] через Active Probing [77]. Но можно подключить другие транспорты, например, Obfs4 [78], который используется сетью Tor. В таком случае нам кран не перекроют.

Проприетарное VPN приложение которое использует закрытый протокол Catapult Hydra [82]. Согласно блогу компании, умеет обходить [83] Китайский Фаервол. Приложение платное. В бесплатной версии навязчивая реклама. Но если ничего больше не работает, стоит попробовать.

Выбор редакции — Tor [53]. Tor поможет в большинстве случаев. UIUX приложения Orbot [84] не вызвал у меня вопрос, все понятно. Скорее всего и у вас не будут проблем. Считаю, что это приложение должно быть утсановлено у всех борцов за свободу информации, рано или поздно вам оно пригодится.
Отлично, разобрались с Tor. А что если вражески-настроенные агенты пошли дальше. Они отключили GSM сеть. Или вообще отключили Интертнет. Перезагрузка ПК и роутера не помогает :).
Шеф, все пропало!
В таком случае подойдут mesh-сети. В нашем случае нас интересуют mesh-сети, которые строятся с помощью Bluetooth [86]и Wi-Fi Direct [87]. Используя эти технологии, можно построить mesh-сети между мобильными устройствами: все узлы сети соединяются с соседними узлами в радиусе доступности радиосигнала и помогают передавать пакеты до адресата. Такой вид взаимопомощи, хватит быть эгоистом! ;)

Mesh-сети явление не новое. Глоток популярности они получили во время протестов в Ираке и Гонконге [88] в 2014 году благодаря приложения Firechat [89] (уже не поддерживается). В 2015 году использовался активистами во время протестов в Эквадоре и во время протестов "Free Way to the Cataln Republic" [90] в Барселоне [91]. А в 2016 году использовался студентами во время протестов в Индии [92], когда в университете отключили Wi-Fi сеть.
FireChat был построен на закрытой библиотеке MeshKit [93] от OpenGarden. Сообщество Hackernews [93] ее не одобрили: "Какой это Freedom, если код закрыт"?! Для передачи текстовых сообщений и изображений используются беспроводные сети Bluetooth и Wi-Fi, устройства с установленным клиентом могут обнаруживать друг друга в радиусе до 60 метров. Каждое устройство с клиентом фактически становится ретранслятором для других устройств с этой программой, организуя распределенную mesh-сеть.
Хотелось бы напомнить, что вас могут отследить, если вы подключены к GSM сети. Переведя же телефон в режим полета и присоединившись к Bluetooth mesh-сети, вы лишаете вражеских агентов возможности отследить вас.
Так как FireChat закрыт, а приложение уже недоступно, предлагаю посмотреть на доступные альтернативы.
Разработчики приложения позиционируют его как способ для общения во время путешествий и различного рода общественных мероприятий, когда GSM сеть может оказаться перегруженной. Приложение может работать в 3 режимах:
Широковещательный (Broadcast): отправляет широковещательное сообщение всем участникам сети кругом. Все увидят ваше сообщение, даже если их нету в вашем контакт-листе.
Я протестировал приложением между двумя Android смартфонами, работали все режимы с выключенным Wi-Fi. Также, сообщения синхронизируются через сеть Интернет.

Этот проект с открытым кодом разработан для активистов, журналистов и других, кто нуждается в безопасном и надежном виде коммуникации. В отличии от традиционных мессенджеров, Briar полагается не только на центральный сервер, а синхронизирует сообщения между пользовательскими устройствами. Если сеть Интернет недоступна, Briar может синхронизировать сообщения через Bluetooth или Wi-Fi. Если сеть Интернет доступна, сообщения синхронизируются через Tor сеть, защищая пользователей от наблюдения. Больше деталей в официальной [97] документации.

Я протестировал приложение между двумя Android смартфонами. Работали все режимы с выключенным Wi-Fi, добавление контакта через QR код и микроблогинг. Сообщения синхронизируются через сеть Интернет.
Используя мессенджеры на основе mesh-сетей можно наладить связь при массовых скоплениях людей без сети Интернет. Основная проблема — побудить всю "толпу" установить приложение. Мой выбор пал на Bridgefy, потому что поддерживается iOS и Android. Хотя UIUX и функциональность понравились больше у Briar: возможность добавлять контакты через считывание QR кодов, индикаторы доступных каналов связи, возможность добавлять контакты с помощью ссылок, т.е не надо быть в радиусе-действия Bluetooth [99].
Хочу отметить, что мои коллеги предупредили, что сотни WiFi 2.4 GHz на небольшой площади из-за Beacon [100] могут "нашуметь" на столько, что на данной частоте будет невозможно поддерживать связь. Но я с этим не сталкивался, пока что.
Буду краток: Tor [4] и Bridgefy [5] спасут вас с большой вероятностью.
Хотелось бы отметить, что вражеские агенты могут пойти дальше. Если начнут глушить [101] не только GSM, а 2.4ГГц или 5ГГц, на котором работает Wi-Fi и Bluetooth, то здесь уже ничего не поделаешь. Или поделаешь? Поделитесь идеями!
Прошу прощения за возможные ошибки и описки. Посоветуйте плагин для VS Code, который может исправлять синтаксис и пунктуацию в Markdown :)
Автор: denis4inet
Источник [102]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/355768
Ссылки в тексте:
[1] Наполеон I: https://www.forbes.ru/forbeslife/obrazovanie/241205-22-luchshie-tsitaty-o-svobodnoi-presse
[2] РФ: https://habr.com/ru/company/cloud4y/blog/347964/
[3] РБ: https://oac.gov.by/public/content/files/files/law/prikaz-oac/2019%20-%20408.pdf
[4] Tor: https://www.torproject.org/download/
[5] Bridgefy: https://bridgefy.me/
[6] IP black hole: https://en.wikipedia.org/wiki/Black_hole_(networking)
[7] DNS A записи: https://www.cloudflare.com/learning/dns/dns-records/dns-a-record/
[8] Content Distribution Network: https://www.cloudflare.com/learning/cdn/what-is-a-cdn/
[9] При попытках заблокировать Telegram: https://ru.wikipedia.org/wiki/%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_Telegram_%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8
[10] DNS hijacking: https://en.wikipedia.org/wiki/DNS_hijacking
[11] DNSSEC: https://www.cloudflare.com/dns/dnssec/how-dnssec-works/
[12] критику: https://news.ycombinator.com/item?id=8894902
[13] помощь: https://www.cloudflare.com/learning/dns/dns-over-tls/
[14] DNS over HTTPS: https://en.wikipedia.org/wiki/DNS_over_HTTPS
[15] DNS over TLS: https://en.wikipedia.org/wiki/DNS_over_TLS
[16] macOS Big Sur и iOS 14: https://www.zdnet.com/article/apple-adds-support-for-encrypted-dns-doh-and-dot/
[17] Windows 10 Insider: https://techcommunity.microsoft.com/t5/networking-blog/windows-insiders-can-now-test-dns-over-https/ba-p/1381282
[18] идет разработка: https://github.com/systemd/systemd/issues/8639
[19] включил: https://support.mozilla.org/en-US/kb/firefox-dns-over-https
[20] возможность: https://www.fastcompany.com/90507324/google-chrome-gets-major-privacy-boost-heres-how-to-enable-dns-over-https
[21] Deep Packet Inspection: https://en.wikipedia.org/wiki/Deep_packet_inspection
[22] Ideco Selecta ISP: https://ideco.ru/files/WP/Ideco_Selecta_ISP.pdf
[23] Великий Китайский Фаервол: https://en.wikipedia.org/wiki/Great_Firewall
[24] L4: https://en.wikipedia.org/wiki/Transport_layer
[25] TLS Сipher Suite: https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/
[26] HTTPS: https://en.wikipedia.org/wiki/HTTPS
[27] SNI: https://en.wikipedia.org/wiki/Server_Name_Indication
[28] Encrypted SNI: https://blog.cloudflare.com/encrypted-sni/
[29] здесь: https://www.cloudflare.com/ssl/encrypted-sni/
[30] Firefox поддерживает: https://blog.cloudflare.com/encrypt-that-sni-firefox-edition/
[31] Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=908132
[32] navalny.com: http://navalny.com
[33] трюк: http://www.compromat.ru/page_38868.htm
[34] TCP Window Size: https://en.wikipedia.org/wiki/TCP_window_scale_option#TCP_windows
[35] GoodbyeDPI: https://github.com/ValdikSS/GoodbyeDPI
[36] Cloudflare: https://developers.cloudflare.com/1.1.1.1/dns-over-https/web-browser/
[37] VPN: https://en.wikipedia.org/wiki/Virtual_private_network
[38] Proxy: https://en.wikipedia.org/wiki/Proxy_server
[39] WARP+: https://1.1.1.1/
[40] Cloudflare: https://blog.cloudflare.com/announcing-warp-plus/
[41] Wireguard: https://www.wireguard.com/
[42] Но скоро добавят: https://blog.cloudflare.com/announcing-the-beta-for-warp-for-macos-and-windows/
[43] роуминг: https://www.wireguard.com/#built-in-roaming
[44] RiseUP: http://riseup.net
[45] Открытый код: https://0xacab.org/leap/bitmask_android
[46] TouchVPN: https://touchvpn.net/
[47] Firefox: https://addons.mozilla.org/en-US/firefox/addon/touch-vpn/
[48] Chrome: https://chrome.google.com/webstore/detail/touch-vpn-secure-and-unli/bihmplhobchoageeokmgbdihknkjbknd?hl=en
[49] VpnGate: https://www.vpngate.net/en/
[50] развернуть: https://www.scaleway.com/en/docs/installing-wireguard-vpn-linux/
[51] умеет и практикует: https://medium.com/@phoebecross/bypass-gfw-china-2019-9d293b322e20
[52] РФ: http://publication.pravo.gov.ru/Document/View/0001201707300002
[53] Tor: https://torporject.org
[54] если узлы сети скомпроментированы: https://nakedsecurity.sophos.com/2015/06/25/can-you-trust-tors-exit-nodes/
[55] Беларуси: https://blog.torproject.org/tor-heart-bridges-and-pluggable-transports
[56] Bridges: https://bridges.torproject.org/
[57] Darknet: https://en.wikipedia.org/wiki/Darknet
[58] реально свободное и неподконтрольное никому: https://www.ted.com/talks/jamie_bartlett_how_the_mysterious_dark_net_is_going_mainstream?language=en
[59] Obfs4: https://blog.torproject.org/learning-more-about-gfws-active-probing-system
[60] Открытый код: https://gitweb.torproject.org/tor.git
[61] Psiphon: https://psiphon.ca
[62] Торонто: https://psiphon.ca/en/about.html
[63] обфусцированный SSH туннель: https://github.com/brl/obfuscated-openssh/blob/ca93a2c09cf0f6d2f80e7daca18a669045665a3b/README.obfuscation
[64] упоминание: https://psiphon.ca/en/faq.html#proxy-all
[65] во время блокировок Телеграм в Иране: https://www.wsj.com/articles/iranians-turn-to-tech-tools-to-evade-internet-censors-1515493800
[66] Позволяет обходить: https://www.csoonline.com/article/3299424/traveling-to-china-for-work-punch-through-the-great-firewall-and-securely-connect-with-your-home-of.html
[67] Открытый код: https://github.com/Psiphon-Labs
[68] Android: https://play.google.com/store/apps/details?id=com.psiphon3.subscription
[69] iOS: https://itunes.apple.com/app/apple-store/id1276263909?pt=117859657&ct=cpsiphoncap&mt=8
[70] Windows: https://psiphon.ca/en/download.html?getpsiphontest
[71] Lantern: https://getlantern.org/en_US/index.html
[72] Fallback Proxies IP: https://www.techinasia.com/china-blocks-anti-censorship-tool-lantern
[73] Открытый код: https://github.com/getlantern
[74] соглашении прописано: https://en.wikipedia.org/wiki/Lantern_(software)#cite_note-techinasia-8
[75] Shadowsocks: https://shadowsocks.org
[76] блокируется Великим Китайским Фаерволом: https://censorbib.nymity.ch/pdf/Deng2017a.pdf
[77] Active Probing: https://en.wikipedia.org/wiki/Great_Firewall#Active_probing
[78] Obfs4: https://github.com/madeye/obfs4-tunnel
[79] Открытый код: https://github.com/shadowsocks
[80] Linode: https://www.linode.com/docs/platform/one-click/deploy-shadowsocks-with-one-click-apps/
[81] Hotspotshield: https://www.hotspotshield.com/
[82] Catapult Hydra: https://support.hotspotshield.com/hc/en-us/articles/360000374343
[83] обходить: https://www.hotspotshield.com/blog/china-travel-tips-vpn/
[84] Orbot: https://play.google.com/store/apps/details?id=org.torproject.android
[85] Mesh-сети: https://en.wikipedia.org/wiki/Mesh_networking
[86] Bluetooth: https://en.wikipedia.org/wiki/Bluetooth_mesh_networking
[87] Wi-Fi Direct: https://developer.android.com/training/connect-devices-wirelessly/wifi-direct
[88] Гонконге: https://thenextweb.com/socialmedia/2019/09/03/how-hong-kong-protesters-are-embracing-offline-messaging-apps-to-avoid-being-snooped-on/
[89] Firechat: https://youtu.be/GogPPT3ePGQ
[90] "Free Way to the Cataln Republic": https://en.wikipedia.org/wiki/Free_Way_to_the_Catalan_Republic
[91] Барселоне: https://www.opendemocracy.net/en/can-europe-make-it/how-technology-powered-catalan-referendum/
[92] протестов в Индии: https://www.bbc.com/news/world-asia-india-35349789
[93] MeshKit: https://news.ycombinator.com/item?id=15797079
[94] iOS: https://apps.apple.com/us/app/bridgefy/id975776347
[95] Android: https://play.google.com/store/apps/details?id=me.bridgefy.main
[96] Briar: https://briarproject.org
[97] официальной: https://briarproject.org/how-it-works/
[98] Открытый код: https://code.briarproject.org/briar/briar/tree/master
[99] возможность добавлять контакты с помощью ссылок, т.е не надо быть в радиусе-действия Bluetooth: https://briarproject.org/manual/
[100] Beacon: https://en.wikipedia.org/wiki/Beacon_frame
[101] глушить: https://uk.wikipedia.org/wiki/%D0%A0%D0%91-636%D0%90%D0%9C2_%C2%AB%D0%A1%D0%B2%D1%94%D1%82-%D0%9A%D0%A3%C2%BB
[102] Источник: https://habr.com/ru/post/511816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=511816
Нажмите здесь для печати.