Децентрализованный мессенджер SimpleX

Оригинал статьи на английском

Проблемы существующих решений

Существующие платформы и протоколы для обмена сообщениями имеют некоторые или все из перечисленных ниже проблем:

  • Отсутствие приватности пользовательского профиля и контактов (конфиденциальности метаданных).
  • Отсутствие защиты (или лишь опциональная защита) реализаций E2EE от MITM-атак через провайдера.
  • Нежелательные сообщения (спам и другие вредоносные действия).
  • Отсутствие владения данными и их защиты.
  • Сложность использования всех децентрализованных протоколов для неподготовленных пользователей.

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

Решение SimpleX

Стек протоколов в SimpleX решает эти проблемы за счет хранения как сообщений, так и контактов, исключительно на устройствах пользователей. Роль серверов сведена к простой передаче сообщений — они лишь проверяют авторизацию сообщений, направляемых в очереди, но НЕ требуют аутентификации пользователей. Это означает, что защищены не только сами сообщения, но и метаданные, поскольку пользователям не присваиваются никакие идентификаторы — в отличие от всех остальных платформ.

Более подробную информацию о целях и техническом дизайне платформы можно найти в документации SimpleX.

Почему стоит использовать SimpleX — уникальный подход SimpleX к обеспечению конфиденциальности и безопасности

Каждый должен заботиться о приватности и безопасности своих коммуникаций — даже обычные разговоры могут подвергнуть вас опасности.

Полная приватность вашей личности, профиля, контактов и метаданных

В отличие от любой другой существующей платформы обмена сообщениями, SimpleX не присваивает пользователям никакие идентификаторы — он не использует для идентификации пользователей ни телефонные номера (как Signal или WhatsApp), ни доменные адреса (как email, XMPP или Matrix), ни имена пользователей (как Telegram), ни открытые ключи, ни даже случайные числа (как все остальные мессенджеры) — даже разработчики не знают, сколько людей пользуются SimpleX.

Для доставки сообщений вместо идентификаторов пользователей, которые используют все остальные платформы, SimpleX использует адреса однонаправленных (симплексных) очередей сообщений. Использовать SimpleX — это как если бы у вас был отдельный адрес электронной почты или номер телефона для каждого контакта, но без необходимости управлять ими вручную. В ближайшем будущем приложение SimpleX будет автоматически менять очереди сообщений, перемещая переписку с одного сервера на другой, обеспечивая еще более высокий уровень приватности.

Такой подход защищает приватность ваших контактов — кто с кем общается остается скрытым как от серверов SimpleX, так и от любых внешних наблюдателей. Для еще большей анонимности вы можете настроить подключение к серверам SimpleX через анонимную транспортную сеть, например, Tor.

Лучшая защита от спама и других вредоносных действий

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

Полное владение, контроль и безопасность ваших данных

SimpleX хранит все пользовательские данные на клиентских устройствах, сообщения лишь временно хранятся на ретрансляционных серверах SimpleX до их получения.

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

В отличие от серверов федеративных сетей (email, XMPP или Matrix), серверы SimpleX не хранят учетные записи пользователей, они просто передают сообщения получателям, защищая приватность обеих сторон. На сервере нет общих идентификаторов или зашифрованных сообщений между отправленным и полученным трафиком, благодаря дополнительному слою шифрования для доставляемых сообщений. Поэтому если кто-то наблюдает за трафиком сервера, он не сможет легко определить, кто с кем общается (подробности об известных атаках на корреляцию трафика можно найти в документации SimpleX).

Пользователи владеют сетью SimpleX

Вы можете использовать SimpleX со своими собственными серверами и при этом общаться с людьми, использующими серверы, предустановленными в приложении, или любые другие серверы SimpleX.

Платформа SimpleX использует открытый протокол и предоставляет SDK для создания чат-ботов, позволяя реализовывать сервисы, с которыми пользователи могут взаимодействовать через приложение SimpleX Chat — не терпится увидеть, какие сервисы SimpleX можно будет создать.

Если вы рассматриваете возможность разработки на платформе SimpleX, будь то создание чат-ботов для пользователей приложения SimpleX или интеграция библиотеки SimpleX Chat в ваше мобильное приложение, пожалуйста, свяжитесь с разработчиками, чтобы получить любые консультации и поддержку.

Сравнение с другими протоколами

SimpleX ChatSignal, крупные платформыXMPP, MatrixПротоколы P2P
Требуется идентификатор пользователяНет = приватностьДа 1Да 2Да 3
Возможность MITM-атакиНет = безопасностьДа 4ДаДа
Зависимость от DNSНет = устойчивостьДаДаНет
Единый оператор или сетьНет = децентрализацияДаНетДа 5
Центральная точка отказа или атака на всю сетьНет = устойчивостьДаДа 2Да 6
  1. Обычно на основе номера телефона, в некоторых случаях — имени пользователя.
  2. На основе DNS.
  3. Открытый ключ или другой глобальный уникальный идентификатор.
  4. Если серверы оператора будут взломаны.
  5. Хотя P2P-сети, как и сети криптовалют, являются распределенными, они не децентрализованы — они работают как единая сеть, с единым пространством имен пользовательских адресов.
  6. В P2P-сетях либо есть центральная точка отказа, либо вся сеть может быть взломана — см. следующий раздел.

Сравнение с P2P-протоколами обмена сообщениями

Существует несколько протоколов и реализаций P2P-чатов/мессенджеров, которые стремятся решить проблемы приватности и централизации, но у них есть свои собственные проблемы, из-за которых они менее надежны, чем дизайн SimpleX, сложнее в реализации и анализе, а также более уязвимы к атакам.

  1. P2P-сети используют тот или иной вариант DHT для маршрутизации сообщений/запросов по сети. Реализации DHT имеют сложную конструкцию, которая должна обеспечивать баланс между надежностью, гарантией доставки и задержкой. Дизайн SimpleX обеспечивает более высокую гарантию доставки и меньшую задержку (сообщение передается несколько раз параллельно, через один узел каждый раз, используя серверы, выбранные получателем, в то время как в P2P-сетях сообщение передается через O(log N) узлов последовательно, используя узлы, выбранные алгоритмом

  2. SimpleX, в отличие от большинства P2P-сетей, не имеет глобальных идентификаторов пользователей, даже временных.

  3. Одноранговая P2P-сеть сама по себе не решает проблему MITM-атак, а большинство существующих решений не используют внеполосные сообщения для первоначального обмена ключами. В SimpleX для первоначального обмена ключами используются внеполосные сообщения или, в некоторых случаях, уже существующие безопасные и доверенные соединения.

  4. Реализации P2P, такие как BitTorrent могут быть заблокированы некоторыми интернет-провайдерами. SimpleX не зависит от транспортного протокола — он может работать по стандартным веб-протоколам, а серверы могут быть развернуты на тех же доменах, что и веб-сайты.

  5. Все известные P2P-сети, скорее всего, уязвимы для атаки Сивиллы, поскольку каждый узел можно обнаружить, а сеть работает как единое целое. Известные меры по снижению вероятности атаки Сивиллы либо требуют централизованного компонента, либо дорогостоящего доказательства работы. В SimpleX, напротив, отсутствует возможность обнаружения сервера — серверы не связаны между собой, не известны друг другу и всем клиентам. Сеть SimpleX фрагментирована и работает как множество изолированных соединений. Это делает невозможными атаки, которые бы охватывали всю сеть — даже если некоторые серверы скомпрометированы, другие части сети могут работать нормально, а затронутые клиенты могут переключиться на использование других серверов без потери контактов или сообщений.

  6. P2P-сети могут быть уязвимы к DRDoS-атакам. В SimpleX клиенты передают трафик только от известных доверенных соединений и не могут использоваться для отражения и усиления потока трафика во всей сети.