- 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
Нажмите здесь для печати.