Сегодня многие ищут более удобный, дешёвый и безопасный вариант для корпоративных коммуникаций. К сожалению, Slack, Microsoft Teams и другие проприетарные решения не удовлетворяют требованиям по безопасности, а за коммерческие лицензии нужно платить. В качестве альтернативы часто смотрят в сторону бесплатного опенсорсного Mattermost. Но есть вариант получше.

Для начала небольшое введение для тех, кто ещё незнаком с «Матрицей».

▍ Протокол Matrix. Децентрализация


Matrix — открытый, современный, мощный протокол для защищённых систем связи реального времени.

Представляет собой набор API (JSON over REST), который позволяет обмениваться мгновенными сообщениями, поддерживает передачу файлов, VoIP, видеосвязь, Интернет вещей и др.

Помимо передачи данных между клиентом и сервером, Matrix — это способ организации связи между серверами за счёт механизма федерации, то есть децентрализованного доступа с серверами и клиентами:



Чёрным цветом обозначены серверы Matrix, зелёным — клиенты Element, синим — мосты в другие сети, в том числе Slack или Microsoft Teams (о них ниже).

Преимущества децентрализации хорошо известны:

  • полное владение своими данными;
  • лучшая безопасность;
  • надёжность и устойчивость сети;
  • отсутствие центральной точки отказа;
  • независимость, отсутствие внешнего надзора или цензуры;.

Любая компания может просто поднять свой сервер — и подключиться к глобальной сети Matrix или использовать свой сервер для внутрикорпоративных коммуникаций (так называемая «закрытая федерация»).

▍ Element — лучший клиент для Matrix


В последнее время широкую известность получил клиент Element, который даже называют «официальным» клиентом (его бывшее название Riot сохранилось только для пирингового веб-мессенджера, который уже не имеет отношения к Element).

Уникальные функции Element/Matrix:

  • хранение данных на своём сервере (on-premise) или Element Cloud в любом регионе;
  • сквозное шифрование по умолчанию (об этом ниже);
  • мосты в другие мессенджеры (Microsoft Teams, Slack, Signal, Telegram, Whatsapp, поддерживаются протоколы XMPP и IRC);
  • умная верификация устройств через QR-код или последовательность эмодзи (любое новое устройство, которое подключается к сети, нужно одобрить на аутентифицированном ранее устройстве, что защищает от посторонних);
  • мощные виджеты (настройка чатов и каналов с помощью своих или сторонних приложений);
  • корпоративная функциональность (поиск в зашифрованной истории, аудит, антивирусная защита, DLP в E2EE-окружении).

Количество пользователей Matrix/Element сейчас растёт во всём мире. В первую очередь потому, что организациям и частным лицам нужна приватность и надёжная безопасность в общении, основанная на открытых стандартах и стойкой криптографии. Как мы уже упоминали, проприетарные решения типа Slack или Microsoft Teams не удовлетворяют современным требованиям.

Например, в 2020 году компания-разработчик Element (New Vector Ltd) выиграла крупнейший в мире единый контракт на программное обеспечение для совместной работы на 500 000 рабочих мест.

Недавно была новость, что Франция официально запретила использовать в школах проприетарные решения от Google и Microsoft. Такая тенденция естественным образом повышает популярность Element/Matrix и других опенсорсных пакетов для коммуникаций, и это очень хорошо с точки зрения свободы и безопасности.

Переход на надёжное опенсорсное ПО для корпоративных коммуникаций происходит и в государственных организациях, и в частных компаниях. Многие отказываются от Slack. В Element даже разработали специальный инструмент миграции Slack Migration Wizard, чтобы помогать организациям в переходе конкретно со Slack. Правда, инструмент работает только на их собственном хостинге Element Matrix Services (EMS). Возможно, и нам есть смысл подумать о внедрении такого инструмента.

Matrix позволяет разработать защищённую систему обмена сообщениями, которую использует даже в армии Германии (для них разработан опенсорсный криптомессенджер BwMessenger), Франции и других стран. Предполагается, что в ближайшее время Matrix станет стандартной защищённой коммуникационной магистралью для госсектора Германии. То есть это реально самая мощная защита и максимальная надёжность.

Клиент Element практически ни в чём не уступает сверхзащищённым военным системам. Для Matrix существуют десятки клиентов, из которых можно выбрать наиболее подходящий.

Клиенты Matrix

Если сравнивать все клиенты для Matrix, то Element больше ориентирован на корпоративных заказчиков и поэтому, наверное, лучше подходит для групповых бизнес-коммуникаций. Например, если в других мессенджерах Matrix шифрование необратимо, то в Element можно интегрировать бизнес-системы DLP, поиск по архиву и проч.

▍ Шифрование


Вот технологическое сравнение всех протоколов коммуникации по ряду критериев, включая безопасность, совместимость, функциональность и надёжность. Как легко увидеть, связка Element/Matrix выигрывает практически по всем показателям.



По уровню безопасности к Element/Matrix ближе всего другие опенсорсные системы, которые поддерживают сквозное шифрование, такие как XMPP, NextCloud Talk, Wire и проч.

Внизу списка — проприетарные системы Discord, Slack, Skype, Zoom, Hangouts и тому подобные, где нормальное шифрование отсутствует, а исходный код засекречен.



Если напрямую сравнить функциональность Element/Matrix и Slack, то такое сравнение выглядит удручающе для последнего:



Владение своими данными:



Сравнение по уровню шифрования:



Element по умолчанию использует для всех коммуникаций сквозное шифрование.

Конкретно для управления ключами после первоначального обмена применяется алгоритм двойного храповика (double ratchet), разработанный в 2013 году специально для сквозного шифрования мгновенных сообщений.

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

Храповик — это что-то вроде вращающейся шестерни, которая с заданной периодичностью производит определённое действие, как механический храповик на анимации вверху. Так вот, данный алгоритм объединяет два криптографических храповика:

  1. на основе обмена ключами по протоколу Диффи-Хеллмана (DH);
  2. на основе хеш-функции для формирования ключа.

Таким образом, два этих события происходят с заданной периодичностью, одно в зависимости от другого, по следующей схеме:



Красные точки соответствуют зубьям основного храповика DH, а сиреневые — зубьям вторичного храповика хеш-функций для формирования ключей (ключи — бирюзовые точки).

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

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

▍ Сервер MATRIX SYNAPSE




Synapse — это официальный сервер для протокола Matrix. Он разрабатывается организацией Matrix.org Foundation с 2014 года параллельно с совершенствованием самого протокола.

RuVDS предлагает нативный VPS-сервер MATRIX SYNAPSE всего за 899₽ в месяц (719 руб. при оплате за год). Три дня для теста предоставляется бесплатно. Тестовый период можно использовать без ввода данных банковской карты.

Как вариант, можно оплачивать фактически израсходованные ресурсы (от 656,24 руб).

В образе MATRIX SYNAPSE изначально установлены:

  • Synapse admin UI — небольшая открытая утилита с веб-интерфейсом для администрирования;
  • Element Web — веб-версия клиента.

Нативные приложения Element выпускаются для Windows, macOS, Android и iOS. Есть также веб-версия, которая здесь и установлена:



Главное отличие от Slack — при создании комнаты вы можете указать шифрование всех сообщений. Эта опция будет применяться автоматически, и отключить её впоследствии будет невозможно:



Это сквозное E2E-шифрование сообщений между клиентами, так что их даже теоретически не может прочитать постороннее лицо, получившее доступ к каналу коммуникации.

▍ Итог


В итоге — Element/Matrix выигрывает у Slack по всем параметрам:

  • цена (недорогая виртуалка против корпоративного тарифа Slack);
  • лучшее шифрование и безопасность;
  • контроль за инфраструктурой (вы сами контролируете свои коммуникации, никакая информация не отправляется наружу);
  • более широкая функциональность, в том числе в Matrix API:

В общем, оптимальное решение, чтобы избавиться от проприетарного софта и защитить коммуникации.

Если посмотреть на глобальные тенденции в области корпоративных мессенджеров, то сейчас централизованные приложения (Slack, Teams, Discord и т. д.) постепенно вытесняются движением с открытым исходным кодом. Это похоже на то, как Linux вытеснил коммерческие ОС в интернете и в целом сместил баланс сил в сторону опенсорса. Одновременно идёт повсеместное внедрение сквозного шифрования, а Element/Matrix находится во фронтире этого движения.

Telegram-канал с полезностями и уютный чат

Комментарии (25)


  1. 13werwolf13
    30.11.2022 12:39
    +6

    несмотря на то что мне очень нравится matrix и я уже больше года его активно юзаю есть у него ахилесова пята - отсутствие нормального клиента
    element так восхваляемый в статье не годится, он как и весь electron/js/web based софт не годится для сколько нибудь постоянного использования, nheko лагуч, некрасив, неудобен, neochat вообще не запускается в 9 из 10 попыток (хотя на него были самые большие надежды ибо юзать один и тот же клиент и на компе и на телефоне это несомненно плюс).
    есть конечно fractal, но он не нравится лично мне (не люблю я gtk) да и по функционалу он довольно сильно отстаёт.. и вот вроде клиентов предлагается много, но перепробовав все могу сказать что клиентов просто нет от слова совсем.. печально это.


  1. mumg
    30.11.2022 13:06
    +5

    Пользуемся Matrix + Element внутри компании, разворачивал не я, я лишь пользователь. В общем отзыв о сервисе: Я никогда не работал с такими тормозным месенджером, у меня никогда не было столько проблем с ключами шифрования между устройствами. Это ужас какой то. Голосовые звонки практически не работают. Не рекомендую или те кто разворачивал не умеют его готовить. Расскажите как у вас ?


    1. altardoc
      30.11.2022 15:10

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


    1. alexovchinnicov
      30.11.2022 15:49

      Для голосовых/видео звонков лучше поставить свой TURN сервер (https://github.com/matrix-org/synapse/blob/develop/docs/turn-howto.md).


  1. andreymal
    30.11.2022 13:28
    +6

    E2E для корпоративного использования вроде бы не нужно и наверное даже вредно, ведь корпорация скорее всего захочет контролировать, что происходит в её собственном мессенджере. Я не понял, зачем в посте делается такой упор на шифрование, объясните кто-нибудь?


    Поиск в E2E-комнатах — странная штука. Веб-версия Element отказывается искать и просит воспользоваться десктопным клиентом, десктопный nheko вроде бы ищет (и на том спасибо), а в мобильном Element кнопки поиска вообще нет. В целом не очень корпоративно как-то.


    Вообще, Element жутко тормозной — и в десктопной, и в мобильной версии, пользоваться им некомфортно. А альтернативные клиенты все до сих пор слишком сырые.


    Про сервер Synapse говорят, что он жутко тормозной и жрущий ресурсы (на фоне какого-нибудь ejabberd, например), а Dendrite, судя по списку открытых issues, ещё не совсем готов (в частности, в нём не хватает корпоративных плюшек вроде SSO).


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


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


    Могу ещё долго расписывать тонны мелких неудобств, которые на данный момент имеет Matrix (в лице «эталонного» клиента Element) по сравнению с теми же Telegram и Mattermost. Слежу за матриксом больше пяти лет, но всё ещё не могу рекомендовать его.


  1. MikkiKre
    30.11.2022 13:47

    Пробовал некоторое время назад Mattermost в качестве замены Slack, остановило отсутствие нормального Android-приложения. У Matrix та же проблема как я понимаю?


    1. Bedal
      30.11.2022 14:21
      +1

      "Нормального" клиента у Матрикса вообще нет. Но андроидный Элемент в наличии.


      1. porn
        30.11.2022 19:46

        На андроиде есть FluffyChat.


        1. andreymal
          30.11.2022 20:33

          Эта гадина автоматически принимает инвайты в комнаты, я таким образом однажды попал в спам-комнату против своей воли (в Element и nheko всё нормально)


        1. Bedal
          30.11.2022 20:46

          у меня всё просто - это корпоративный мессенджер, и на 99% я использую десктопный клиент. Мобильный нужен только, чтобы увидеть, что что-то пишут.


  1. Bedal
    30.11.2022 14:16
    +2

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

    Показ экрана раньше вообще укладывал Элемент, сейчас работает - но плохо.

    Про поиски тут уже написали.

    Итог: один из худших мессенджеров, какими приходится пользоваться. Лучший по удобству и набору функций - по-прежнему старичок Скайп.

    ________

    Кстати: у меня на телефоне стоит пять мессенджеров: Воцап, Телеграм, Скайп, Элемент и Сигнал. Чтобы не путаться, в каком вызывают, и не запоминать, какое треньканье что означает, я сделал вот, что:

    — Зашел на forvo.com Этот сайт предоставляет произношение слов носителями языка.

    — Сохранил оттуда живое произношение названий мессенджеров

    — На звук уведомления каждого навесил его название.

    Стало удобно. Стучится кто-то в телегу - смартфон орёт "Telegram"


  1. ne555
    01.12.2022 09:11

    В Matrix официально не существует условий для приватности

    Я тестировал мессенджер Elelement и просто опешил от того, что они открыто поддерживают исключительно концепцию групповых чатов. В Element нет понятия личка, там комната. Когда вы создаете комнату и приглашаете оппонента на тет-а-тет, то вы оба становитесь администраторами этой комнаты и если один из участников запрещает приглашать еще кого-либо в эту комнату и показывать новым вступившим в этот чат историю сообщений, то оппонент (он же то же админ) может снять все ограничения вами установленные с комнаты и пригласить любое кол-во персонажей в ваш чат, и которым также будет доступна вся переписка.

    ИХМО, это настолько открытый и продвигаемый бэкдор, что ранее я составлял и отправлял письмо по этому вопросу в саму компанию Element и получил ответ, цитата:

    Users are allowed to invite 3rd parties into their DMs if they want; it's a very common pattern for extending a DM into a private chatroom or to route the conversation to someone else. The app warns you when you do so that the new user will be able to see history (unless you configure it not to share history).
    Newly invited users do not become administrators, and you can remove them again if you want.

    Я просто удивлён, что в Интернете известные криптографы не особо возмущенны по этой теме.

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


    1. andreymal
      01.12.2022 12:57
      +2

      Если собеседник захочет передать переписку недоброжелателям — он всегда может просто скопировать весь текст, никого не добавляя комнату. То же самое и в джаббере. По-моему вы раздули проблему из ничего


      1. ne555
        01.12.2022 13:58

        Я, кончено, оценил минусом ваш троллинг, но добавлю еще ответ текстом.

        Есть такое понятие, как доказательство. Пример, любовница слила переписку любовника его жене, он же сказал своей жене, что та девка лживая и чёкнутая. Жена перед дилеммой: кому верить (скриншоты и текст невозможно однозначно подтвердить или опровергнуть). В ином случае все её сомнения отпали, если бы она лично зашла в чат и почитала переписку, проверила, что аккаунт не поддельный, а её мужа...

        Так работает и Open Source. Все маркетинговые заявления о безопасности какого-либо продукта = 0, если их невозможно проверить.


        1. andreymal
          01.12.2022 14:04

          Я не просто так упомянул именно джаббер - и он, и матрикс технически позволяют вытащить сообщения в их исходном виде, вместе со всеми связанными криптографическими доказательствами.
          Если криптографических доказательств нет (переписка не зашифрована), то злоумышленник всегда может сделать поддельную комнату с поддельными сообщениями аккаунта мужа, и глупенькая жена на это поведётся.
          Так что вы продолжаете раздувать проблему из ничего


          1. ne555
            01.12.2022 14:52

            Я не просто так упомянул именно джаббер

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

            сделать поддельную комнату с поддельными сообщениями аккаунта мужа

            Поддельная комната на то она и поддельная, разоблачается.

            Так что вы продолжаете раздувать проблему из ничего

            Это вы продолжаете легонько троллить.

            Но я готов забрать свои слова последнего предложения, если вы мне сообщите истину: в Jabber, что, тоже можно было приглашать в приватный лс/чат посторонних личностей с показом всей истории?!


            1. andreymal
              01.12.2022 14:54

              Вы проигнорировали самое главное предложение в моём сообщении. Я напишу его ещё раз, чтобы вы прочитали его:


              и [джаббер], и матрикс технически позволяют вытащить сообщения в их исходном виде, вместе со всеми связанными криптографическими доказательствами.


              1. ne555
                01.12.2022 15:23

                Вы сколь угодно раз можете ссылаться на ваши "главные" предложения по вашему мнению, что ~равнозначно:

                часто слабым звеном является человек, который подвержен атаке с использования дешёвого гаечного ключа для получения пароля, хотя сами данные защищены надёжным вариантом алгоритма RSA

                Однако, это не изменяет концепции, что Matrix пошли по пути отмены условий для приватности. Это факт!

                В Telegram тоже есть и секретные чаты и автоудаление/удаление переписки, но если оно не работает — это считается уязвимостью, хотя переписку до удаления также можно хоть бэкапить хоть автобэкапить.


                1. andreymal
                  01.12.2022 15:39

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


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


                  1. ne555
                    01.12.2022 16:02

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

                    Я не забыл. 2021г. Я тестирую мессенджер и получаю ровно противоположные результаты: если ваш собеседник сам изменит настройки комнаты — старые сообщения станут видны! Поэтому я и был возмущен и даже так и написал в первом сообщении этой ветки, и по этой же причине я отправлял письмо в компанию:

                    то оппонент (он же то же админ) может снять все ограничения вами установленные с комнаты и пригласить любое кол-во персонажей в ваш чат, и которым также будет доступна вся переписка.

                    Я более года не пользовался Element, но именно на 2021 год он работал так, как я написал — с явным открытым бэкдором.


                    1. andreymal
                      01.12.2022 16:06

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


                      1. ne555
                        01.12.2022 16:15

                        Проверьте, именно по этой причине я и покинул Element и ушел в более, как мне казалось на тот момент, стабильные открытые решения, но вскоре разочаровался и там (опять же на личном опыте).


  1. fire64
    01.12.2022 09:14

    Интересно, его ждёт судьба Jabber?

    В своё время тоже все писали о его перспективах, его поддерживали многие крупные соцсети и мессенджеры.

    А сейчас и не вспоминает никто....


  1. ogost
    01.12.2022 11:42

    Разворачивал для тестов и на посмотреть, согласен с комментаторами. Минусы:

    1. Element тормознутый, что мобильный, что веб, что десктоп. Я так понял это одно и то же приложение Electron, раскиданное по разным платформам

    2. Другие клиенты либо тормознутые, либо глючные

    3. Synapse ресурсоёмкий, другие серверные имплементации не смотрел

    4. Мосты в другие мессенджеры глючные, тормозные и часто отваливаются

    Голосовые звонки в принципе нормально работают, если правильно поднять TURN сервер.


  1. Dr_Wut
    01.12.2022 12:53

    вы забыли еще про такой продукт как https://express.ms/

    у нас в компании развернут - весьма хорошая альтернатива