Второе пришествие Матрицы
Помню отчётливо тот день и тот момент, когда гасили тогда ещё независимый НТВ. Привычная эфирная сетка с новостями и мультиками погасла, логотип канала был показан перечёркнутым, а единственным содержанием телесигнала было фоновое изображение телестудии, поверх которого бегущими титрами показывался SMS-форум в поддержку компании. Честно, я не помню всего содержания, это был огромный массив информации даже по нынешним временам (в основном угрозы набить друг другу ебальник, через телеэфир, ага), но одно сообщение мой детский мозг всё же выловил и записал так же надёжно, как если бы выгравировал его на золотой пластинке Вояджера:
МАТРИЦА 2 АЦТОЙ
Нахуя я это запомнил? Ответа не было, это послание в ноосферу лежало мёртвым грузом и вызывало, честно говоря, некоторый диссонанс: фильм-то в итоге оказался неплохой, и даже прорекламированный там ультрасовременный автомобиль Cadillac CTS выглядел очень уместно. И только сегодня до меня дошло: тот ясновидец из далёкого прошлого, вероятно, говорил не про киноленту, а про протокол. Да, я попытался в очередной раз поднять хоумсервер Matrix (synapse), на этот раз с протоколом версии 2.0, и потерпел позорное поражение.
Пардоньте мне такое длинное вступление, теперь к сути:
- Встроенный механизм аутентификации не подразумевает никакого второго фактора. Даже примитивный TOTP, который умеет каждый тостер, и тот не поддерживается. Умные дядьки уже 5+ лет насупливают бровки и решаются принять решение о том, как решить этот вопрос.
- Отчуждаемая аутентификация через OpenID Connect до сих пор в состоянии драфта. Многолетнее присутствие areweoidcyet.com говорит о многом, если не обо всём.
- Ладно, ок, я пробую настроить Gitea в качестве сервиса аутентификации, поскольку для меня 2FA смерть как важен, и в принципе всё остальное у меня так или иначе уже настроено на аутентификацию через Gitea либо напрямую, либо посредством прокси.
- Установил последний стабильный хоумсервер и рекомендованный клиент на телефон, пытаюсь их совокупить, клиент ругается на отсутствие некой важной спецификации. Как выяснилось это Sliding Sync, протокол внутри протокола для синхронизации данных чанками по заданному оффсету.
- Попутно узнаю, что одного контейнера с хоумсервером и второго контейнера с базёнкой уже недостаточно, нужен третий контейнер, микросервис, который имплементит этот самый Sliding Sync.
- Доустанавливаю этот контейнер, настраиваю конфиги как надо, чтобы спека адвертайзилась через
./well-known
, клиент теперь доволен. - Идём дальше: клиент запрашивает спеку на OIDC, сервер говорит 404, но клиент потом не говорит, что какая-то ещё фигня недоустановлена, а просто молча делает fallback на дефолтный механизм аутентификации, в котором никакого 2FA нет, только логин и пароль.
- На этом месте у меня сгорела жопа, диван подо мной начал подавать признаки реакции ускоренного окисления, я плюнул и решил доверить свою идентичность Google, через который с помощью OIDC на основном сервере matrix.org можно создать аккаунт.
- Регистрируюсь через десктопный клиент, всё проходит относительно гладко, пытаюсь присоединиться к основной комнате поддержки сервероводов Matrix на ~7K пользователей. Слушал сверчков где-то 10 минут, пока на экране вертится кольцо загрузки. Кто там говорил про Sliding Sync?
- Пока сверчки стрекочут, решил проверить как эта самая аутентификация через OIDC работает в самом последнем официальном клиенте Element X, установленном с Google Play Store. В это трудно поверить, но здесь тоже случается fallback на дефолтный механизм аутентификации, который без всякого 2FA. То есть я не могу зайти в свой же аккаунт на двух разных устройствах.
- На этом месте у меня сгорела жопа, во второй раз. Я вытираю все конфиги и все признаки Synapse из репозитория под корень, останавливаю и удаляю контейнер с сервера, а потом иду туда, куда идут все отчаявшиеся — на сайт alternativeto.net
Я уже было испугался, что среди всех альтернатив будет только пыльный и ржавый XMPP, а также Rocket.chat и Mattermost, которые суть опенсорсный Slack для корпоративных рабов, безо всякой возможности федерации. Рад ошибаться: среди прочих пунктов в списке втесался небольшой хобби-проект, который в одном контейнере содержит и веб-клиент, и сервер, способный к федерации, и E2E-шифрование, и двухфакторку через TOTP, и даже возможность аудио- и видеозвонков (правда, опять через микросервис). Есть также официальные мобильные приложения в AppStore и Google Play Store, что очень большой плюс. Автор честно заявляет, что пользуется проектом сам для коммуникации с семьёй и друзьями, и это, справедливо говоря, заметно.
В общем, знакомьтесь — это Databag, маленький, но очень способный IM-сервер, который я планирую использовать в качестве бэкапа, если Web of Trust в том же Telegram или WhatsApp окажется безнадёжно скомпрометирован; гораздо хуже, чем это сейчас (а сейчас ни о какой безопасности в Telegram речи не идёт, это в первую очередь удобство и доверие платформе со стороны авторитетных акторов). Если хотите потестить Databag вместе со мной — пишите, выдам инвайт на свой инстанс. Если хотите сами поднять и пофедерировать со мной — код здесь, запускается сервер с полтычка.
А Matrix 2.0 действительно отстой.
Tue, 27 Aug 2024 11:43:07 +0200
RSS // Telegram // Статистика