Недавно узнал про замечательный протокол обмена сообщениями с открытым исходным кодом.
Так на вскидку современный, должен превосходить XMPP, в частности на нем можно реализовать анонимное и безопасное видео общение, у XMPP с этим проблемы.
Но вопрос в теме, почему чернушники (Кто занимается серыми делами и кому критично безопасность и анонимность) выбирают именно Jabber ?
Давайте разбираться:
Что такое Matrix?
Matrix — это федеративный протокол обмена сообщениями с открытым исходным кодом, разработанный для:
- зашифрованных чатов (E2EE),
- групповой переписки (чаты и каналы),
- голосовых и видео звонков,
- интеграции с другими мессенджерами (Telegram, Slack, IRC, WhatsApp и др.).
Под капотом Matrix использует:
- JSON-формат сообщений,
- HTTP/HTTPS REST API,
- WebSocket для реального времени,
- Olm/Megolm для шифрования.
Плюсы Matrix:
Современное сквозное шифрование (по умолчанию, Olm/Megolm).
Федерация — можно создать свой сервер и общаться с другими.
Bridges — умеет «вживую» работать с Telegram, Slack, WhatsApp и пр.
Удобные клиенты: web, десктоп, мобильные.
Поддержка вложений, реакций, редактирования сообщений.
Хранение всей истории чатов на сервере.
Минусы Matrix:
Тяжёлый сервер Synapse — требует много оперативки и CPU.
Большой объем данных в федерации → нагрузка на БД.
Клиенты и серверы обмениваются большим количеством метаданных.
E2EE сложен в администрировании: могут теряться ключи, нужна верификация устройств.
Официальный клиент: Element (бывш. Riot).
Официальный сервер: Synapse (есть и другие: Dendrite, Conduit).
Что такое Jabber (XMPP)?
Jabber, или XMPP (Extensible Messaging and Presence Protocol) — это старейший федеративный протокол (с 1999 г.), изначально разработанный как альтернатива ICQ и MSN.В Jabber:
- Используется XML-поток через TCP (5222 для c2s, 5269 для s2s),
- Есть сотни расширений (XEP — XMPP Extension Protocols),
- Легко кастомизируется под любые задачи: личные чаты, корпоративные сети, боты, конференции.
Плюсы Jabber:
Лёгкий и стабильный — запускается даже на Raspberry Pi.
Идеален для Tor/анонимных сетей.
Очень гибкий и модульный (XEP'ы можно включать выборочно).
Работает с большим числом клиентов: от GUI до CLI.
Поддерживает OMEMO и PGP (end-to-end encryption).
Работает без "аккаунта" как такового — можно подключиться напрямую к серверу.
Минусы Jabber:
Основной протокол — XML, не очень удобен и громоздок.
Модульность = возможная фрагментация клиентов (не все поддерживают одно и то же).
Отсутствие «из коробки» многих современных функций (редактирование сообщений, реакции и пр. — надо включать руками).
Устаревший UX у большинства клиентов (кроме Conversations, Dino, Snikket).
Matrix vs Jabber — краткое сравнение
Фактор | Matrix | Jabber (XMPP) |
---|---|---|
Протокол | JSON + HTTP/REST/WebSocket | XML + TCP |
Federation | Да | Да |
E2E шифрование | По умолчанию (Olm/Megolm) | OMEMO / OTR / PGP |
Удобство клиентов | Современные, кроссплатформенные | Много, но UX сильно различается |
Расширения (плагины) | Через Bridges и MSC | Через XEP‑модули |
Приватность | Требует доверия к серверу | Можно использовать анонимно |
Подходит для Tor | Частично | Отлично |
Ресурсоёмкость сервера | Высокая (Synapse) | Низкая (Prosody, ejabberd) |
Популярен среди | DevOps, open-source‑сообщества | Хакеры, журналисты, приватные пользователи |
Почему «серые» и тёмные используют именно Jabber
- Анонимность и конфиденциальность
- Можно настроить сервер с нуля, без логов, без регистрации, без связи с личностью.
- Возможна работа через Tor (Hidden Services).
- Протокол не требует централизованных API или ключей.
- Минимум зависимостей
- Работает без БД, nginx, PostgreSQL.
- Поддерживает простые клиенты и даже консольные.
- Шифрование без центральной доверенной стороны
- OMEMO не требует server-side верификации.
- Есть даже клиенты, где всё хранится только в RAM.
- Исторически отлажен
- Используется с 2000-х в underground-среде.
- Существуют hardened‑клиенты (Psi+, mcabber, Pidgin + OTR/OMEMO).
- Неприметность
- Трафик Jabber не выделяется, может маскироваться под обычный TCP.
В Matrix (особенно с сервером Synapse) сервер знает всё, если вы не используете сквозное шифрование (E2EE):
- История чатов хранится в базе данных сервера в открытом виде, если E2EE не включено.
- Даже если шифрование включено, сервер знает метаданные:
- кто с кем общается,
- когда отправлено сообщение,
- названия комнат,
- аватары, имена, ID и т.д.
- Администратор сервера (или тот, кто получил доступ к БД) может прочитать все незашифрованные сообщения и даже удалить или подменить их.
- Ключи E2EE тоже часто хранятся на сервере, зашифрованные, но не всегда безопасно (зависит от клиента и настроек).
Пример:
Ты пишешь другу в Matrix-чате.Если вы не включили шифрование — сервер видит всё слово в слово.
Даже если включили — сервер знает, что ты пишешь этому человеку, когда, откуда, с какого устройства.
Поэтому требуется доверие:
Ты должен доверять администратору сервера (или самому себе, если сервер твой), что он:- не шпионит,
- не пишет логи,
- не хранит переписку в открытом виде,
- не внедрил backdoor или не стал жертвой взлома.
В контексте Jabber (XMPP):
Здесь можно настроить всё так, что никакое доверие к серверу не требуется:- Используется OMEMO или OTR — сервер видит только зашифрованную "кашу", а не содержимое сообщений.
- Метаданные можно минимизировать:
- отключить хранение истории (mod_mam),
- отключить логгирование (log = "*console"),
- включить Tor Hidden Service,
- запретить регистрацию и авторизацию с внешней сети.
Итог:
Протокол | Приватность по умолчанию | Нужно доверять серверу? | Комментарий |
---|---|---|---|
Matrix | Нет (если не E2EE) | Да | Всё через сервер, даже ключи иногда. |
Jabber | Частично / Да, при E2EE | Нет (при OMEMO/OTR) | Можно настроить полностью автономно. |
В целом как Matrix, так и Jabber позволяют безопасно общаться, но есть нюансы.
Также Matrix более современный чем Jabber и позволяет общаться по видеосвязи...)