Все из нас пользуются теми или иным мессенджерами. Самый распространённый в РФ на данный момент WhatsApp и Telegram. Что их объединяет? Они централизованные, а корпорации в обмен за свои услуги собирают и монетизируют ваши данные, пока вы пользуетесь их услугами. Именно здесь на помощь приходит протокол Matrix.
В начале этого года WhatsApp представил новую политику конфиденциальности, которая вызвала много опасений. Следом, Telegram наступает на свободу слова и удаляет материалы со своей площадки. Не пора ли одуматься и сменить мессенджер? Благо есть альтернатива в виде протокола Matrix, который поможет нам значительно уменьшить влияние крупных корпораций и перейти к свободной сети, которая гарантирует приватность.
Протокол Matrix
Matrix — это открытый протокол для децентрализованного общения в реальном времени. Он может быть использован для текстовых сообщений, групповых чатов и аудио/видео звонков, создания ботов. Разрабатывается энтузиастами из Matrix.org Foundation с 2014 года.
Будучи открытым стандартом, Matrix объединил огромное количество энтузиастов. Это означает, что всегда будет хорошая группа людей, увлечённых поддержанием Matrix в рабочем состоянии.
Спецификации протокола, равно как и клиент-серверная часть находятся в открытом доступе, в отличие от Telegram, который в настоящее время в открытом доступе держит только свой клиент, что вызывает немало вопросов по поводу безопасности использования протокола MTProto.
Особенности
Федерация
Принципы федерации уже затрагивались в предыдущей статье «Путеводитель по Fediverse». Что касается Matrix — благодаря федеративному характеру протокола, пользователи с разных серверов могут общаться друг с другом. Серверы могут связываться между собой, образуя тем самым федерацию.
На данный момент в сети Matrix насчитывается свыше 75 тыс. узлов и 40 млн пользователей. Зарегистрироваться можно на любом открытом сервере либо организовать собственный сервер. И этот сервер может быть как открытым, так и закрытым. Например, вы хотите разместить сервер для своих друзей и родственников. Это вполне возможно. И если в будущем вы захотите подключить его к более широкой сети, вы сможете это сделать.
Вы можете запустить собственный сервер Matrix физически у себя дома, возможно, с помощью старого ПК, который валяется у вас без дела, либо на одноплатном компьютере по типу Raspberry Pi. Если вы действительно хотите, вы можете использовать облачное решение и разместить его на VPS. Но реальное преимущество — быть хозяином своего оборудования и размещать его в непосредственной близости от себя.
Репликация
Самая необычная особенность протокола — репликация. Содержимое комнат реплицируются между всеми участвующими серверами, что означает отсутствие единой точки контроля или отказа. Но вы можете создать локальную комнату доступную только для пользователей сервера.
Синхронизация ключей
Выгодно отличает Matrix от других Open Source решений — синхронизация ключей в зашифрованных комнатах, то есть вы можете пересесть с одного устройства на другое и всё равно будете видеть все сообщения.
Шифрование
Трафик сервер-сервер в обязательном порядке заворачивается в TLS. Трафик клиент-сервер шифруется на транспортном уровне.
Более того, Matrix поддерживает сквозное шифрование на основе механизма с открытым исходным кодом, который работает как в групповых, так и в личных чатах. В отличие от публичных каналов, размещённых в Telegram.
Мосты
Ещё одна необычная фича — это мосты (bridges). С их помощью можно собрать в одном месте все свои чаты и общаться с пользователями разных мессенджеров. Собственно поэтому Matrix именно так и назван, ведь он объединяет много разных сервисов в одну матрицу. Часто можно наткнутся на комнаты, где общаются пользователи IRC, XMPP, Telegram.
У Matrix есть несколько официально поддерживаемых мостов. К ним относятся Slack, IRC, XMPP и Gitter. Но поскольку вокруг Matrix существует активное сообщество, есть множество других, из которых можно выбирать. Например, Discord, Facebook Messenger, Telegram, Signal, WhatsApp, VK, SMS, Instagram и многие другие.
Виджеты
С помощью виджетов можно интегрировать сторонние приложения в комнаты. Сейчас доступны виджеты для совместного редактирование документов, календарь и многое другое. Доступны кастомные виджеты. Часто их используют для алертов. Крайне полезный функционал.
Боты
Matrix открыт для создания ботов. Клиент Element из коробки уже поддерживает некоторые из ботов, например, бот для интеграции RSS ленты в комнаты и многие другие.
Проверка устройств
Клиент Element использует проверку устройств с перекрёстной подписью для обеспечения идентификации участников разговора и их устройств, отслеживая каждое устройство, подключённое к зашифрованному разговору. Если к разговору присоединяется новое неизвестное устройство, вы можете использовать проверку устройства, чтобы убедиться, что это именно тот человек. Если вы подозреваете, что доверенное устройство попало в чужие руки, вы можете лишить его доступа к текущему зашифрованному разговору.
Проверка устройств защищает от атак «человек посередине» (Man in the middle).
Свободная регистрация
В популярных мессенджерах доступна регистрация только по номеру телефона, что в свою очередь добавляет как минимум две уязвимости: злоумышленники могут перевыпустить вашу сим-карту и войти в аккаунт. Также номер телефона могут сопоставить с аккаунтом.
Matrix решает эти проблемы: номер телефона и Email при регистрации необязателен, можно использовать только логин и пароль.
В случае, если вы желаете использовать контактные данные для обнаружения вас другими пользователями, в настройках клиента Element можно подключить сервер идентификации, чтобы вас можно было обнаружить по адресу электронной почты или номеру телефона. Использовать функцию обнаружения не обязательно так как вас без труда можно найти по личному адресу, который выглядит как @username:domain.tld
Клиенты
Чтобы пользоваться WhatsApp, вы должны загрузить его и только его, вы привязаны к этому приложению. С Matrix это работает по-другому. И мы подходим к ещё одной сильной стороне Matrix. Поскольку Matrix является открытым стандартом, любой может внедрить протокол в своё приложение.
Это означает, что не существует единого клиента Matrix, существует более чем 150 приложений на базе Matrix, от открытого исходного кода до коммерческих проприетарных решений. Вы получаете огромное количество клиентов для различных платформ, которые фокусируются на различных возможностях, предлагают различные функции и поддерживают разные устройства. Element — один из самых популярных клиентов Matrix.
Element
Element свободный кроссплатформенный мессенджер, десктопная версия использует фреймворк Electron. Знаю, это не лучшее решение, на этот случай можно использовать веб версию или другой клиент.
Клиент Element обладает всеми современными функциями, которые присущи другим популярным мессенджерам. Конечно, Telegram больше любят за его UI/UX — но Element на данный момент абсолютно ничем не уступает Telegram по функционалу:
Текстовые сообщения
Здесь все стандартно, отметить можно лишь форматирование сообщений с помощью Markdown или визуального редактора, кому как удобно.
Аудио/видео звонки
Аудио/видео звонки реализованы через WebRTC. В одном из последних обновлений добавили голосовые сообщения в клиент Element Android
Комнаты
Комнаты (групповые чаты) можно создавать приватными — только приглашённые пользователи смогут найти и присоединиться либо публичными — любой желающий сможет найти эту комнату и присоединиться к ней. Статус комнаты можно сменить в дальнейшем. Так же можно настроить запрет для пользователей с других узлов, комната будет использоваться только внутренними пользователями на вашем сервере. Админам комнат доступны гибкие настройки доступа и прав пользователя, назначения новых администраторов и модераторов.
Spaces
Если сильно упрощать, это комната для комнат. Или метод группировки комнат и пользователей, похожий на Workspaces у корпоративного мессенджера Slack.
Заключение
Трудно описать, насколько велик потенциал Matrix в настоящее время и я не знаю, является ли Matrix будущим, но это определённо большая его часть. Уже из этой статьи видно, что существует огромное количество опций, позволяющих вам создать тот сервис, который вы хотите. Вплоть до конкретного клиента. И вы можете настроить всё по своему вкусу.
Экосистема на базе Matrix неумолимо растёт, уже существуют различные стартапы на базе Matrix как Famedly и Beeper. Крупный бизнес в виде Thales, Ericsson, Dataport и Sopra Steria и многие ведущие организации как Red Hat, Mozilla, Uber, Samsung, TADHack, W3F и UpCloud, используют решения на базе Matrix для внутренней коммуникации. Это позволяет им создавать собственные безопасные коммуникационные приложения. В России сеть розничных магазинов Магнит использует Matrix.
В феврале 2021 года, крупнейшая конференция посвящённая свободному программному обеспечению FOSDEM, которая из-за пандемии вынуждена была проходить в режиме онлайн, провела её в Matrix. Онлайн мероприятие посетило больше 30 тыс. пользователей, команда использовала весь функционал дабы пользователям было комфортно — боты для автоматизации создания комнат по расписанию, виджеты с расписанием и для сообщений фильтрующихся по количеству emoji реакций от пользователей, мосты в каждую из более 500 комнат в IRC и XMPP. Matrix явно завоевал open source сообщество!
Ещё хотелось бы убедить читателей, что Matrix открыт для всех, не только для гиков и «анонимусов». Matrix будет полезен абсолютно каждому вне зависимости волнует ли вас тема приватности или нет.
Для ознакомления с Matrix, можно зарегистрироваться на сервере Matrix.org. Для это достаточно скачать приложение Element или воспользоваться веб клиентом.
В сети Matrix есть русскоговорящие комнаты, одна из них ru.[matrix] и spaces Русскоязычные комнаты в которой более 40 комнат. Короче, присоединяйтесь и welcome to the Internet!