Русский
Русский
English
Статистика
Реклама

Riot

Как криптомессенджер Signal успешно противостоит прослушке со стороны властей США

16.06.2020 10:18:24 | Автор: admin


На фоне событий в США резко выросла популярность защищённого мессенджера Signal c 6000 до 26 000 скачиваний в день. В этой программе реализована стойкая криптография и сквозное шифрование, она распространяется с открытым исходным кодом и работает на известных криптографических протоколах (в отличие от проприетарного MProto).

Но теперь разработчики Signal столкнулись с новой угрозой. Правительство США пытается скомпрометировать защиту мессенджера и опять получить доступ к переписке пользователей. В 2016 году им удалось получить судебную повестку на изъятие переписки одного пользователя, но из-за сквозного шифрования там нечего было изымать.

Единственные данные, которые Signal может предоставить по запросу правительственных служб или по судебной повестке только те данные, которые она хранит о пользователе. Это:

  • дата создания аккаунта в Unix-времени;
  • дата последнего использования в Unix-времени.

И это всё. Никаких контактов, информации о группах и данных из профиля.


Досье пользователя, которое Signal предоставил по судебному запросу. Скриншот из судебных документов

Мы разработали Signal таким образом, чтобы персональные данные хранились у клиентов, а не у нас, пишут разработчики. Signal использует сквозное шифрование, так что мы никогда не имеем доступа к содержимому сообщений, которые вы отправляете. Они видны только вам и предполагаемым получателям. Однако Signal также применяет эту философию дизайна и к остальным вашим данным.

В отличие от любых других популярных мессенджеров, у Signal нет доступа к контактам, социальному графу, групповым данным, информации о состоянии в группах, имени профиля, аватару профиля, данным о местоположении, истории поиска и так далее. В коде программы отсутствуют трекеры, реклама или код для аналитики. Абсолютно вся информация зашифрована, кроме даты создания аккаунта и даты последнего использования, как показано на скриншоте.


Кадр из лекции Мокси Марлинспайка на конференции по информационной безопасности Chaos Computer Club в декабре 2019 года с демонстрацией учётных данных его личного аккаунта Signal

Поскольку мы создали Signal, чтобы полностью избежать хранения какой-либо конфиденциальной информации, я могу выйти на сцену перед тысячами людей и публично опубликовать все данные своей учётной записи, не раскрыв при этом ничего, кроме того, как давно у меня установлен Signal (с тех пор, как я последний раз поменял телефон) и последней даты, когда я его использовал (это сегодня, кстати), говорит Мокси Марлинспайк (Moxie Marlinspike), известный хакер, криптоанархист и основной разработчик программы.

Главная слабость Signal и подобных мессенджеров привязка к конкретному номеру телефона. Например, если посторонний присоединиться к некоей группе, то увидит телефонные номера всех участников этой группы. Этот приём использовала полиция Гонконга, чтобы установить личности протестующих в WhatsApp, Signal и Telegram-.

С другой стороны, остальные данные аккаунта злоумышленник не получит даже по судебному запросу.

Если вы попросите генерального директора любой другой крупной коммуникационной платформы публично опубликовать свои учётные данные со своей платформы, он этого не сделает, пишет Мокси. Я их не виню это много данных, которыми неудобно делиться с вами, но это поднимает вопрос о том, насколько комфортно делиться теми же данными с ними [властями].

Любая американская компания обязана выполнять правила американского законодательства и предъявлять данные по судебному запросу, будь то WhatsApp или Signal. Но в случае Signal ей просто нечего будет предъявить.

В некоторых странах после утечек из WhatsApp даже военных и политиков переводят на обязательное использование криптомессенджеров Signal и Wickr. Например, такие правила установлены для бойцов 82-й воздушно-десантной дивизии армии США и для коммуникации членов консервативной партии Великобритании. Так что наличие на телефоне Signal не признак подозрительной активности, а скорее признак наличия здравого смысла.

Отсутствие персональных данных во владении компании единственная стратегия, которая позволяет обеспечить безопасность этих данных, уверены создатели Signal. Соответственно, доверие к любой компании сводится не к доверию сохранности наших личных данных, а к доверию их инженерным способностям и ноу-хау для разработки программного обеспечения, которое не допустит передачи личных данных от пользователя и гарантирует, что они хранятся только у него и больше никому не доступны, включая саму компанию.

Signal это некоммерческая организация 501(с)(3), поэтому программное обеспечение было и останется свободным и бесплатным. Наша миссия заключается в повышении конфиденциальности в интернете, поэтому мы публикуем нашу технологию и делимся знаниями, чтобы побудить другие компании использовать её в своих собственных продуктах и услугах, пишет Мокси Марлинспайк. Сегодня на протоколе Signal работают некоторые другие мессенджеры, хотя и они и не реализовали строгий отказ от сбора персональной информации о пользователях и продолжают хранить на своих серверах контакты, разговоры, фотографии и прочие данные для каждого аккаунта. Например, WhatsApp тоже использует защищённый протокол Signal, однако передаёт в материнскую компанию Facebook социальный граф пользователя. То же самое относится к коммерческим компаниям Telegram FZ LLC и Telegram Messenger Inc. В случае Signal на сервер передаётся только усечённый хеш каждого телефонного номера из списка контактов. Такой хеш нельзя сбрутить напрямую, хотя и о полной секретности речи не идёт.

Конечно, существуют более защищённые и надёжные мессенджеры со сквозным шифрованием, без указания телефонного номера и других идентификаторов. Например, P2P-система прямого обмена шифрованными сообщениями Matrix с клиентским программным обеспечением типа Riot и другими клиентами.


Интерфейс клиента Riot для пиринговой криптосети Matrix

Но пока эти программы не очень дружественны к пользователям. Например, чтобы в десктопном клиенте Riot отменить отправку подтверждений о прочтении, нужно отредактировать файл конфигурации /etc/riot/config.json.

Подробнее..

Перевод Свой мессенджер Matrix-synapse в связке с Jitsi-meet. Часть 3

02.04.2021 16:10:53 | Автор: admin

Всем Приветь. Как вы уже обратили внимание, порядок публикации нарушен. Изначально планировалось выпустить эту статью в качестве третьей части цикла, однако она стала второй. Это объясняется тем, что поднять один новый сервер для Matrix дешевле, чем несколько для высоконагруженного сервиса Jitsi-meet. Без паники, все будет. А пока займемся Matrix.

Сразу хочу отметить тот факт, что данный мануал не является полностью моим. Это перевод оригинального мануала разработчиков с моими дополнениями и адаптацией. И вошел он в данную серию статей, ибо связан с jitsi-meet (ну или их можно связать вместе).

Прежде чем мы погрузимся в команды, конфигурацию и "танцы" поговорим немного на тему "а зачем и кому это надо"....

А зачем и кому это надо...

Причин может быть много: от личной паранойи до требований безопасности в компании. Matrix-synapse - это мессенджер, который вы можете не только скачать или открыть в браузере, пройти регистрацию и общаться, но и поднять собственный сервер, установить на него серверную часть matrix, а потом общаться в нем с полной уверенностью, что ваша переписка не только шифруется, но и хранится не у кого-то, а у вас на сервере. Если уж совсем паранойить, то все это можно запихуть в VPN и доступ к серверу будет только у тех, у кого есть подключение к VPN (тут мы такое рассматривать не будем, а настроим только matrix в связке с jitsi).

В прошлой статье мы уже настроили два сервера: jitsi-meet - для видеоконференций и jibri - для записи и/или трансляции этих видеоконференций. Сейчас мы будем расширять наши возможности. Мы поднимем сервер со своим мессенджером и привяжем его к нашему jitsi, дабы совершать видеовызовы через него.

Сервера поднималтут.

Команды, конфигурация и "танцы".

Я все делаю на debian 9, если это противоречит вашим религиозным взглядам, то использованные тут команды подстраивайте под свою ОС. Если вы хотите, то можете поднимать Matrix на том же сервере, где у вас поднят Jitsi-meet или на отдельном: этот мануал подойдет для обоих вариантов.

Начнем мы с того, что создадим DNS записи. Нам понадобится их три: dnsname.com, matrix.dnsname.com и riot.dnsname.com - на IP нашего сервера.

Веб-сервер и SSL

Я использовал nginx для jitsi и не буду отходить от своей традиции и буду настраивать его и для matrix.

Если nginx еще не установлен, то:

# apt update# apt install nginx -y

Если nginx установлен, то создаем конфигурацию (скопируем default и перенастроим):

# cd /etc/nginx/sites-avaliable

Теперь редактируем конфигурацию:

# vim dnsname.com

И меняем следующие директивы:

server_name dnsname.com;...root /var/www/dnsname.com;

Сохраняем и закрываем.

Тоже самое делаем для riot.dnsname.com:

# vim riot.dnsname.comserver_name riot.dnsname.com;  ...  root /var/www/riot.dnsname.com/riot;

Конфигурацию matrix.dnsname.com приводим к следующему виду:

# vim matrix.dnsname.comserver {    # редактируем этот блок       server_name matrix.dnsname.eu;       root /var/www/dnsname.eu;       index index.html;       location / {               proxy_pass http://localhost:8008;       }....

Теперь пора заняться SSL сертификатами. Мы создадим и подпишем бесплатные трехмесячные сертификаты Let's Encrypt. Для этого делаем следующее:

# apt install -y python3-certbot-nginx# certbot --nginx -d dnsname.com -d riot.dnsname.com -d matrix.dnsname.com

Этой же командой спустя три месяца можно продлить сертификаты.

Теперь нужно включить виртуальные хосты и перезагрузить nginx:

# ln -s dnsname.com /etc/nginx/sites-enable/# ln -s matrix.dnsname.com /etc/nginx/sites-enable/# ln -s riot.dnsname.com /etc/nginx/sites-enable/# systemctl restart nginx

Matrix-synapse и Postgresql

Из коробки Matrix использует SQLite - при малом количестве пользователей этого достаточно, однако рекомендуется использовать Postgresql (я настоятельно рекомендую сразу начать использовать Postgresql). Для тех, кто просто хочет "пощупать" Matrix, этот шаг можно пропустить, ну а мы, все же, сразу поставим Postgresql, ибо миграция c SQLite на Postgresql - в некоторых случаях может стать теми еще "танцами". Поехали...

Переходим к установке matrix.

# apt install -y lsb-release wget apt-transport-https# wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg# echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |    tee /etc/apt/sources.list.d/matrix-org.list# apt update# apt install matrix-synapse-py3 -y

В процессе установки будет запрошено DNS имя - указываем dnsname.com.

Устанавливаем Postgresql, создаем пользователя и БД для matrix-synapse:

# apt install postgresql postgresql-contrib -y# su - postgres# psqlpostgres=# \password postgrespostgres=# \q# createuser --pwprompt synapse_user# psqlpostgres=#CREATE DATABASE synapsepostgres-# ENCODING 'UTF8'postgres-# LC_COLLATE='C'postgres-# LC_CTYPE='C'postgres-# template=template0postgres-# OWNER synapse_user;postgres=# \q# exit
# cp /etc/matrix-synapse/homeserver.yaml /etc/matrix-synapse/homeserver.yaml.back# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

Открываем конфигурационный файл Matrix:

# vim /etc/matrix-synapse/homeserver.yaml

Находим строку #servername: "servername" и меняем значение на "dnsname.com", убираем "#", тоже самое делаем со строкой #registration_shared_secret: "UIBfgsjkdfhj3568JHGIUIEBfy3764JH" и вставляем в кавычках ключ, который мы получили ранее. Дальше ищем опцию#enable_registration: false, убираем "#" и меняем false на true

Так же находим блок database снимаем "#" и подставляем свои значения:

database:  name: psycopg2  args:    user: synapse-user    password: password    database: synapse    host: localhost    cp_min: 5    cp_max: 10

А блок database, где прописана SQLite (она ниже) - комментируем (ставим "#").

Далее идем и вставляем строку host synapse synapse_user ::1/128 md5 как у меня:

# vim /etc/postgresql/9.6/main/pg_hba.conf...   # "local" is for Unix domain socket connections only   local   all             all                                     peer   # IPv4 local connections:   host    all             all             127.0.0.1/32            md5   host    synapse         synapse_user    ::1/128                 md5   # IPv6 local connections:   host    all             all             ::1/128                 md5...

Перезапускаем Matrix и Postgresql:

# systemctl restart postgresql# systemctl enable postgresql# systemctl restart matrix-synapse# systemctl enable matrix-synapse

Зарегистрируем пользователя с правами администратора:

# register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Будут запрошены данные: логин, пароль и права администратора.

Если у вас уже работает Matrix с SQLite, то можно мигрировать на Postgresql. Для этого нам надо сделать копию homeserver.yaml, сделать две копии homeserver.db (одну мы сохраним для "потомков", ну или если что-то пойдет не туда, а со второй будем работать). Подправить конфиг, мигрировать и перезагрузиться сервисы.

# cp /etc/matrix-synapse/homeserver.yaml /etc/matrix-synapse/homeserver-postgresql.yaml# chown matrix-synapse:nogroup /etc/matrix-synapse/homeserver-postgresql.yaml

Теперь с файлом homeserver-postgresql.yaml надо сделать это.

Останавливаем Matrix:

# systemctl stop matrix-synapse

Далее копируем базы и мигрируем.

# cp /var/lib/matrix-synapse/homeserver.db /etc/matrix-synapse/homeserver.db.snapshot# chown matrix-synapse:nogroup /etc/matrix-synapse/homeserver.db.snapshot# cp /var/lib/matrix-synapse/homeserver.db /tmp/# cd /etc/matrix-synapse/# synapse_port_db --curses --sqlite-database homeserver.db.snapshot --postgres-config /etc/matrix-synapse/homeserver-postgresql.yaml# mv homeserver.yaml homeserver-old-sqlite.yaml# mv homeserver-postgresql.yaml homeserver.yaml# systemctl restart postgresql# systemctl start matrix-synapse

Если остались какие-то вопросы, то можно посмотреть сюда.

Так же можно рассказать всем пользователям Matrix о своем сервере, но я не буду тут это расписывать, а дам ссылку, где можно это посмотреть.

Теперь мы можем перейти в браузере по адресу https://matrix.dnsname.com и увидеть, что это работает.

Осталось совсем немного и мы сможем погрузиться в мир "черт, как же это все работает....".

Мы уже сделали виртуальный хост riot.dnsname.com и указали директорию /var/www/riot.dnsname.com/riot;, однако такой директории еще нет. Давайте ее создадим и загрузим туда веб-приложение Riot (Element) из git:

# mkdir /var/www/riot.dnsname.com# cd /var/www/riot.dnsname.com# wget https://github.com/vector-im/element-web/releases/download/v1.7.23/element-v1.7.23.tar.gz# apt install -y gnupg# wget https://github.com/vector-im/element-web/releases/download/v1.7.23/element-v1.7.23.tar.gz.asc# gpg --keyserver keyserver.ubuntu.com --search-keys releases@riot.im# wget https://packages.riot.im/riot-release-key.asc# gpg --import riot-release-key.asc# gpg --verify element-v1.7.23.tar.gz.asc# gpg --edit-key 74692659bda3d940# tar -xzvf element-v1.7.23.tar.gz# ln -s element-v1.7.23 riot# chown www-data:www-data -R riot# cd riot# cp config.sample.json config.json

Далее нам надо привести содержимое конфигурационного файла config.json к следующему виду (меняем "base_url": "https://matrix.dnsname.com", "server_name": "dnsname.com", "jitsi": { "preferredDomain": "jitsi.dnsname.com" - последняя настройка свяжет наш matrix и jitsi):

# vim /var/www/riot.dnsname.com/riot/config.json{    "default_server_config": {        "m.homeserver": {            "base_url": "https://matrix.dnsname.com",            "server_name": "dnsname.com"        },        "m.identity_server": {            "base_url": "https://vector.im"        }    },    "disable_custom_urls": false,    "disable_guests": false,    "disable_login_language_selector": false,    "disable_3pid_login": false,    "brand": "Element",    "integrations_ui_url": "https://scalar.vector.im/",    "integrations_rest_url": "https://scalar.vector.im/api",    "integrations_widgets_urls": [        "https://scalar.vector.im/_matrix/integrations/v1",        "https://scalar.vector.im/api",        "https://scalar-staging.vector.im/_matrix/integrations/v1",        "https://scalar-staging.vector.im/api",        "https://scalar-staging.riot.im/scalar/api"    ],    "bug_report_endpoint_url": "https://element.io/bugreports/submit",    "defaultCountryCode": "GB",    "showLabsSettings": false,    "features": {        "feature_new_spinner": false    },    "default_federate": true,    "default_theme": "light",    "roomDirectory": {        "servers": [            "matrix.org"        ]    },    "piwik": {        "url": "https://piwik.riot.im/",        "whitelistedHSUrls": ["https://matrix.org"],        "whitelistedISUrls": ["https://vector.im", "https://matrix.org"],        "siteId": 1    },    "enable_presence_by_hs_url": {        "https://matrix.org": false,        "https://matrix-client.matrix.org": false    },    "settingDefaults": {        "breadcrumbs": true    },    "jitsi": {        "preferredDomain": "jitsi.dnsname.com"    }}

Осталось только перезагрузить службы (или сервер целиком):

# systemctl restart nginx# systemctl restart matrix-synapse

Регистрация и чаты

Осталось понять, как этим пользоваться. Я не буду детально обрисовывать использование, а расскажу, как зарегистрироваться, установить приложение, добавить "друга по переписке". Поехали:

Переходим в браузере на https://riot.dnsname.com

Создаем аккаунт.Создаем аккаунт.Меняем домашний сервер. Придумываем логин и пароль. Дальше надо будет создать ключи шифрования, просто следуйте инструкциям riot.Меняем домашний сервер. Придумываем логин и пароль. Дальше надо будет создать ключи шифрования, просто следуйте инструкциям riot.Искать пользователя надо в данном формате.Искать пользователя надо в данном формате.

Обновление Riot

Периодически тут выкатывают обновления серверной части Riot. Обновиться очень просто. Идем на Гит (ссылка выше) и берем там ссылки необходимой версии релиза, а именно нам нужны element-vx.x.xx.tar.gz и element-vx.x.xx.tar.gz.asc. Далее идем:

# cd /var/www/riot.dnsname.com/# wget https://github.com/vector-im/element-web/releases/download/vx.x.xx/element-vx.x.xx.tar.gz# wget https://github.com/vector-im/element-web/releases/download/vx.x.xx/element-vx.x.xx.tar.gz.asc# gpg --keyserver keyserver.ubuntu.com --search-keys releases@riot.im# wget https://packages.riot.im/riot-release-key.asc# gpg --import riot-release-key.asc# gpg --verify element-vx.x.xx.tar.gz.asc# tar -xzvf element-vx.x.xx.tar.gz# rm riot# ln -s element-vx.x.xx riot# chown www-data:www-data -R riot# cd riot# cp config.sample.json config.json

Теперь надо обновить файл конфигурации как мы делали ранее тут.

Репозиторий с релизами Riot.

Клиентское приложение element.

Подробнее..

Пиринговые мессенджеры враг государства?

24.05.2021 12:21:25 | Автор: admin


В случае полного отключения интернета одна из главных проблем общение с товарищами и родственниками. Опыт Гонконга показывает, что для этого хорошо подходят децентрализованные P2P-мессенджеры, которые работают без интернета, используя mesh-сеть по протоколам Wi-Fi Direct, Bluetooth, Apple Multipeer Connectivity Framework, ANT+, LoRa и др.

Для эффективной коммуникации приложение нужно скачать максимальному количеству человек до начала блокады интернета. Иначе придётся искать файлы после блокады. Человек с нужными файлами станет настоящим авторитетом в офисе или в классе (как это было в Беларуси в августе 2020 года за файлами Psiphon люди реально приезжали из других микрорайонов города).

Вообще, вся история сетей wireless mesh намекает на то, что эта технология крайне не нравится правоохранительным органам.

Mesh-сети


Приложения типа FireChat создают mesh-сеть, используя Bluetooth и прямые подключения через Wi-Fi. Они обеспечивают обмен сообщениями и фотографиями в офлайне между устройствами, находящимися друг от друга на расстоянии примерно до 60 метров.

Все пользователи образуют единую сеть, которая расширяется с ростом количества устройств. На пути к получателю (получателям) сообщения передаются от одного устройства к другому.

Другими словами, вам достаточно приблизиться на 60 метров к ближайшему пользователю и вы можете отправить сообщение кому угодно. Каждый юзер нода в сети. Без интернета.

Поэтому чем больше людей пользуются приложением, тем больше сеть, и тем лучше она работает. Кстати, в этом фундаментальное отличие mesh-систем от большинства других компьютерных сетей и сетевых технологий, в том числе сетей сотовой связи.

Если какой-нибудь узел mesh-сети вдруг выйдет в интернет, то сообщения пакетом от всех пользователей уйдут получателям по всему миру.

Особенно удобно, если каналы или комнаты в мессенджере создаются автоматически и объединяют людей, которые находятся рядом с друг другом (многоквартирный дом, стадион, концертный зал).

Для передачи текстовых сообщений можно приспособить практически любую mesh-сеть, даже сеть из геометок Apple AirTag, которые вообще-то предназначены не для общения людей, а для поиска утерянных вещей. В мае 2021 года хакерам удалось расшифровать трафик AirTag и передать по сети Apple Find My произвольный текст под видом оригинальных зашифрованных сообщений с GPS-координатами. Скорость передачи составила 3байта в секунду. Задержка в сети от 1 до 60 минут.



Подобные mesh-сети есть также у Samsung (Smart Things) и Amazon (Sidewalk) на протоколе LoRa. В принципе, можно использовать эту инфраструктуру для пирингового обмена сообщениями, а также для съёма данных с устройств вне зоны доступа в интернет.

Трагедия FireСhat


FireChat проприетарное приложение от американской компании Open Garden. Эта фирма прекратила дальнейшую разработку, не открыв исходники.

Последняя версия приложения: 9.0.14 (копия на 4pda) вышла полтора года назад (примечание: доступ к сайту 4pda затруднён с территории РФ).


FireChat

Первая версия FireChat появилась в марте 2014 года под iOS, в апреле под Android. Среди сооснователей Open Garden и разработчиков программы Станислав Шалунов и Грег Хазел из компании BitTorrent, где они делали торрент-клиент uTorrent (200 млн пользователей). Там и познакомились.

Вероятно, предприниматели рассчитывали, что FireСhat станет настолько же успешным, как файлоообменные P2P-приложения. Если представить себе эту картину, то весь мир может объединиться в mesh-сеть, а интернет становится практически не нужен! Даже хостинг сайтов теоретически можно размазать в распределённой сети. Такая фантазия.

Очень быстро FireСhat приобрёл популярность в Ираке после того, как местное правительство ввело ограничения на использование интернета, а затем то же самое произошло в Гонконге, во время массовых протестов 2014 года.


Главной проблемой FireСhat во время массовых протестов в Гонконге стала безопасность. Сама архитектура открытой mesh-сети предполагает, что все пользователи приложения светятся как радиомаячки на расстоянии 60 метров, а то и больше. Так что полиции отловить их было очень просто. Наличие программы на телефоне однозначно доказывало вину. Можно предположить, что сотни или тысячи пользователей были арестованы благодаря FireСhat. К тому же, в приложении не использовалось шифрование, так что никакие сообщения не были действительно приватными.

Возможно, критика от специалистов по ИБ повлияла на решение американской компании Open Garden прекратить разработку и не публиковать исходники. Ну или ребята увидели, что всемирная популярность торрентов им не светит, а развитие программы пошло совсем не по тому пути.

Когда появился FireСhat, это была единственная программа такого рода, которая позволяла пользователям создавать mеsh-сети в офлайновом режиме (без интернета) и обмениваться сообщениями1.

Инструмент, который задумывался для общения людей, де-факто превратился в наводку для репрессий и физического насилия. Пожалуй, в этом есть какая-то трагедия.


Фото из статьи FireChat мессенджер, на котором работают протесты в Гонконге, The Guardian

Тем более обидно, если FireСhat создавали специально для Гонконга, как разработку аналогичного приложения Commotion Wireless в 2011 году профинансировал госдепартамент США в преддверии Арабской весны. Хотели как лучше, а получилось как всегда

После FireСhat фирма Open Garden торговала электронными сим-картами (eSIM), продвигала свою криптовалюту, но в последние годы про неё ничего не слышно.

Вообще, приложение FireСhat было не очень качественным. Во-первых, закрытый код. Во-вторых, для регистрации обязательно (!) был нужен доступ в интернет, хотя потом оно работало в офлайне. Короче, странная программа. Может и хорошо, что разработчики её похоронили.

Рация Zello


Близкой по логике функционирования является интернет-рация Zello, которая заблокирована в Российской Федерации в апреле 2017 года.

Радио работает по принципу уоки-токи или push-to-talk. Основное преимущество возможность слушать голосовые сообщения по громкой связи в реал-тайме, вообще не притрагиваясь к смартфону и в то же время быть на связи с большим количеством пользователей.

Хотя здесь передаётся не текст/картинки, а звук, но принцип работы такой же через mesh-сеть, без интернета. Близкие друг к другу пользователи соединяются друг с другом напрямую и передают сообщения дальше, по цепочке. Что важно, здесь используется сквозное шифрование (E2E).

В России приложение получило особую популярность среди дальнобойщиков и других автомобилистов, поскольку очень удобно (и приятно) беседовать с попутчиками, которые едут по той же трассе. Они подскажут о радаре в кустах, о ДТП на дороге и т.д. Репрессии со стороны государства начались после массовых протестов дальнобойщиков в связи с введением обязательной платы миллиардеру Игорю Ротенбергу за проезд тяжёлых грузовиков по дорогам России (система Платон). Координация протестов осуществлялась через Zello, поэтому программу решили заблокировать.

Это был первый прецедент, когда власти попытались сломать мессенджер, работающий по VPN. Понадобился целый год, чтобы заблокировать свыше 4тыс. IP-адресов из облака AWS, что не принесло успеха. Тогда РКН пошёл на шантаж компании Amazon, угрожая заблокировать 26 подсетей AWS, в сумме 13,5млн адресов.

Компания Amazon оказалась не готова к войне и отказалась предоставлять услуги Zello. Лишившийся облачной инфраструктуры сервис было легко заблокировать.

После успеха с блокировкой облачной VPN-инфраструктуры Zello, в 2018 году власти решили, что смогут успешно заблокировать такую же облачную инфраструктуру мессенджера Telegram. Но здесь нашла коса на камень: Павел Дуров инвестировал миллионы долларов в покупку всё новых и новых инстансов AWS, его брат Николай с коллегами запрограммировал систему обхода блокировок через прокси, а компании Amazon и Google выдержали блокировку своих подсетей в РФ. В итоге властям пришлось заблокировать 18 миллионов IP-адресов AWS и Google Cloud, что нарушило работу крупных ритейл-компаний, банков из топ-20, частных клиник и тысяч бизнесов в России. После двух лет выматывающей борьбы государство сдалось: руководителя Роскомнадзора уволили, Telegram разблокировали, а IP-адреса облачных сервисов удалили из чёрного списка.

Криптомессенджер Briar


Четыре года назад, в июле 2017 года, вышла первая публичная бета-версия мессенджера Briar, который работает через Tor или в офлайне, через пиринг. Его разработка продолжалась аж три года. Но продукт вышел на редкость качественный.

Это уже честный опенсорс. Приложение можно собрать из исходников (пошаговая инструкция для Android Studio). Оно доступно в каталогах приложений (например, Google Play) и отлично поддерживается: последняя версия 1.2.20 от 2апреля 2021года. Реализована стойкая криптография, сквозное шифрование.


По умолчанию мессенджер работает через интернет по протоколу Tor (луковичная маршрутизация). В этом случае программа создаёт на устройстве пользователя скрытый сервис Tor и соединяется со скрытыми сервисами Tor других людей из списка контактов. В случае отсутствия интернета она переходит на peer-to-peer коммуникации через Wi-Fi Direct, локальную сеть или Bluetooth.

Разумеется, при регистрации в криптомессенджере не требуется указывать номер телефона.

Поддерживает передачу сообщений (но не файлов), приватные группы, блоги/статусы и импорт RSS. Есть несколько полезных функций, таких как блокировка приложения (по PIN-коду).

Система относительно защищена от посторонних: добавление новых контактов производится по QR-коду с другого телефона (подразумевается физическое присутствие лица) или через обмен контактами, или по уникальной ссылке. Таким образом, в контакты не должен попасть человек, с которым никто не знаком.



Briar Project некоммерческий проект, который сейчас ведут шесть добровольцев. Код на 97,7% написан на Java (+немного Kotlin, Python и Ruby) и поставляется под GPLv3. Вскоре после первого релиза код прошёл независимый аудит безопасности от компании Cure53. Она известна своим аудитом проектов SecureDrop, Cryptocat и Dovecot. Так что Briar действительно надёжный вариант для пиринговых коммуникаций.

Единственный минус, что приложение выпущено только в версии под Android. Официальной версии для iOS нет и не будет, потому что эта платформа накладывает жёсткие ограничения на разработчиков, не позволяющие реализовать некоторые идеи P2P, и является закрытым проприетарным продуктом.

Но исходный код открыт, так что теоретически кто угодно может попробовать сделать стороннюю реализацию Briar под iOS, например.


Matrix, Riot, Element


Официальный клиент Element (бывший Riot) для относительно децентрализованной сети Matrix не поддерживает пиринговые коммуникации в офлайн-режиме и формирование mesh-сети.

В последнее время этот клиент получил некоторую известность. Сейчас количество пользователей Matrix/Element сравнимо с Briar или больше. У него есть сквозное шифрование, мосты в IRC, Slack, Telegram, Jitsi Meet и др. Но именно пиринга в офлайне нет.

См. также:


Secure Scuttlebutt p2p социальная сеть, работающая и в офлайне (есть клиент Manyverse для Android и iOS)

P. S. Кроме FireСhat, протестующие в Гонконге использовали малоизвестное мексиканское приложение Bridgefy, которое тоже умеет формировать mesh-сеть и передавать сообщения в офлайне. В октябре 2020 года приложение перешло на криптографический протокол Signal.

1 На самом деле ещё раньше были другие приложения, такие как Serval Mesh от проекта Serval Project или древний Commotion Wireless от Open Technology Initiative (с финансированием госдепа), но все эти разработки давно прекращены [вернуться]




На правах рекламы


Мощные виртуальные серверы на базе процессоров AMD EPYC для любых целей, в том числе для установки VPN.

Присоединяйтесь к нашему чату в Telegram.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru