Обновить

ONYX: self-hosted мессенджер с LAN-режимом — история одного инди-проекта

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели10K
Всего голосов 5: ↑4 и ↓1+3
Комментарии10

Комментарии 10

Есть же XMPP (Jabber). Чем не устроил?

Публичный ключ передаётся прямо в broadcast-пакете — это позволяет сразу же начать шифрованный обмен без дополнительного рукопожатия.

Т.е. злоумышленник может выслать ключ для атаки "человек посередине" ?

Почему хотя бы серверную часть не написать на c/c++/rust ?

А в таблице тогда что?

Скрытый текст

в таблице говорится про центральный сервер, не уточнил этот момент

А зачем центральный сервер в архитектуре self-hosted? Сделать тогда уж федерацию как в матрикс.

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

Flutter на десктопе без допиливания лагает заметно больше, чем на мобилках

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

Каждый клиент каждые 5 секунд рассылает JSON-пакет на адрес 255.255.255.255:45678

Лучше бы мультикаст

Раз в 5 секунд - много, если в локалке много клиентов

Не думали про DNS-SD вместо самодельного discovery?

Обмен ключами: X25519 ECDH с эфемерной парой ключей per-session Шифрование: XChaCha20-Poly1305 AEAD

Т.е., всё шифрование основано на алгоритмах, придуманых Бернштейном. Стрёмный он, этот Бернштейн…

Один из сложнейших кейсов — когда у пользователя несколько устройств, и при этом нужно сохранить E2E-шифрование

Кажется, у Шнайера рассказывается, что DHE может быть обобщён на несколько участников.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации