Групповые P2P-чаты и первый мессенджер без ID
Схема маршрутизации по протоколу SimpleX Messaging Protocol (SMP) напоминает луковую маршрутизацию
Недавно в списке защищённых мессенджеров появилось несколько интересных разработок. Среди них первый распределённый групповой P2P-чат Quiet и первый мессенджер без использования идентификаторов пользователей SimpleX, о котором уже упоминали на Хабре.
SimpleX. Как доставлять сообщения без ID адресата
На первый взгляд кажется, что коммуникацию между объектами невозможно произвести, если неизвестны идентификаторы (ID) этих объектов. В этом причина, почему абсолютно все существующие мессенджеры, в том числе самые безопасные и защищённые Signal, Matrix, Session, Briar, Jami, Cwtch и другие действительно используют ID пользователя в том или ином виде, хотя бы сгенерированные случайным образом временные метки типа Session ID.
С ними приходится мириться всем, хотя опасность очевидна. Даже если использовать самые защищённые инструменты через Tor v3, всё равно ID позволяет соотнести личность анонимного пользователя с профилями в социальных сетях и определить его настоящее имя со всеми вытекающими последствиями — продажей информации дата-брокерам и профилированием у рекламодателей.
Новый мессенджер SimpleX заявляется как первый, в котором вообще по архитектуре отсутствуют ID пользователей, а в режиме «Инконито» вообще для каждого собеседника демонстрируется новое имя:
Как же без идентификатора доставлять сообщения адресату? Согласно технической документации, SimpleX с этой целью использует «временные анонимные парные идентификаторы очередей сообщений», отдельные для каждого из соединений:
Вы определяете серверы для получения своих сообщений, ваши контакты — серверы для получения своих. В каждой сессии, скорее всего, будет использоваться два разных сервера.Такая конструкция предотвращает утечку метаданных пользователей на уровне приложений. Чтобы ещё больше повысить уровень конфиденциальности и защитить свой IP-адрес, можно подключаться к серверам обмена сообщениями через Tor.
Профили пользователей, списки контактов и группы хранятся только на клиентских устройствах, а сообщения отправляются по каналам с двухуровневым сквозным шифрованием.
Quiet — групповой P2P-чат с шифрованием
В отличие от мессенджера SimpleX, новая разработка Quiet позиционирует себя как приватная P2P-альтернатива Slack и Discord, построенная на базе Tor и IPFS (CRDT). Пока выпущена только первая версия, сервис остаётся экспериментальным проектом, но им уже вполне можно пользоваться на практике.
Отличие от Element в том, что Quiet не использует никаких серверов: ни центральных, ни своих собственных (у клиента). Все данные синхронизируются напрямую между устройствами через Tor, а сервера не требуется. У каждого «сообщества«в Quiet собственная изолированная сеть, так что данные из одного сообщества никогда не попадают на устройства пользователей в других сообществах, даже в зашифрованном виде.
Проект написан на TypeScript, с фронтендами Electron и React Native. За синхронизацию сообщений отвечает пиринговая СУБД OrbitDB (Git + Gossip + BitTorrent).
Управление правами доступа осуществляется через стандартную инфраструктуру открытых ключей (PKI.js), где каждый владелец сообщества выступает центром сертификации для своего сообщества.
В наше время защита коммуникаций имеет большое значение. Дело не только в том, чтобы избежать слежки и прослушки, но также в защите приватности от самого мессенджера. Не секрет, что сейчас почти все программы, приложения и сайты пытаются собрать персональные данные о пользователях, чтобы перепродать их информационным брокерам. Для бесплатных приложений это один из главных источников дохода.
Приватность конкретно в мессенджерах особенно важна, ведь этим приложениям мы доверяем самую конфиденциальную информацию.