Безопасность и шифрование. Element/Matrix — достойная альтернатива Slack и Mattermost

xe0xtr9p4mbd9nxko1xgu43sguq.png


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

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


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

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

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

8c30aecbbdfa1cef4a22726ab2b7a236.svg

Чёрным цветом обозначены серверы 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
fehtbezm_ijish_kkreagpdicv0.png


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

▍ Шифрование


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

v9nwzlp9ndd_w7mus8bc0-iu6rm.png

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

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

zx4jbwlwt4rukkb3stos6mz4jkw.png

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

ignralkl7dtiqbiuxqkfrts18mi.png

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

p_lqxwyhujuaqvsv6zwwngr6eb8.png

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

g7jgzuziirgxwy4zmkgqsfgco_e.png

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

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

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

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

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


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

50f34faa8de733ee5354c56c97fde421.png

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

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

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

▍ Сервер MATRIX SYNAPSE


17a0bus5tg6n6s7h1v9lht5hth4.png

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. Есть также веб-версия, которая здесь и установлена:

58mghxpkvendtnnegy6yjaelc0u.png

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

gmv5dyzpc-25dh_zywxxva-ctfm.png

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

▍ Итог


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

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


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

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

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

sz7jpfj8i1pa6ocj-eia09dev4q.png

© Habrahabr.ru