Мессенджеры, приватность и интернет — изнутри

Приватность

Открытая соцсеть Flora: шифрование переписки и прозрачная формула ленты вместо алгоритмической магии

Flora выглядит как попытка собрать социальную сеть заново: без рекламного шума, закрытых алгоритмов и переписок, которые в любой момент может прочитать кто-то третий. Проект позиционируется как открытая некоммерческая экосистема, код которой опубликован под лицензией AGPL-3.0-only. Стек — Rust и TypeScript, данные лежат в PostgreSQL, а сама система построена как модульный монолит: соцсеть, шифрование, лента, поиск и кодеки существуют как отдельные продукты, которые можно использовать независимо друг от друга.

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

Брендовые публикации, если они появляются, проходят по общим правилам и помечаются, но переключателя, который полностью убирает такой контент из ленты, пока не существует — автор говорит, что эта кнопка в разработке. Главная ставка сделана на сквозное шифрование. Для переписки используется собственный протокол FSCP версии один.

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

Криптографическая схема выглядит продуманно, но не без оговорок. На каждое сообщение генерируется отдельный 32-байтовый ключ, тело шифруется XChaCha20-Poly1305, для каждого получателя создаётся отдельный конверт с эфемерным X25519 и Ed25519-подписью. Файлы закрываются AES-GCM, а ключ файла лежит внутри уже зашифрованного тела.

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

Настоящего Double Ratchet нет: долгосрочный ключ соглашения переиспользуется, а это значит, что его кража раскроет ключи сообщений. Гибрид с постквантовым ML-KEM-768 есть лишь в черновике второй версии. Функция верифицируемого раскрытия одного сообщения без раскрытия всего чата в коде присутствует, но в проде не включается.

Второе устройство не ломает схему, как это часто бывает в других мессенджерах. Пользователь входит в аккаунт, скачивает бэкап ключей и открывает его паролем на новом устройстве. Это отдельный Argon2id с 64 МиБ памяти и тремя проходами, не тот хеш, которым выполняется вход.

После сброса почты старый бэкап не поднимается, историю можно восстановить только фразой из 12 слов или через другое доверенное устройство. Если потеряно всё — пароль, фраза и устройства — переписка остаётся закрытой навсегда. Живучесть проекта обеспечивает лицензия.

Если разработчик исчезнет, добавит рекламу или закроет открытую редакцию, сообщество может поднять ту же соцсеть под другим именем, поскольку исходники обязаны остаться открытыми. Параллельно существует коммерческая лицензия для встройки кода Flora в закрытые продукты, но она не отменяет AGPL для пользовательской сети и не продаёт внимание людей внутри платформы. Лента тоже устроена иначе, чем у крупных соцсетей.

Алгоритм FIRA открыт и настраивается: пользователь может выбрать свежесть, долю нового контента, лимит постов одного автора подряд, отключить репосты и посты сообществ, управлять уже виденным. Хронологическая вкладка «Подписки» вообще проходит мимо формулы. Сам скор считается как 0,70 умножить на глобальную релевантность плюс 0,30 умножить на социальную близость, где глобальная часть учитывает виральность с экспоненциальным затуханием по возрасту поста, а социальная — активность тех, на кого подписан пользователь.

Отдельный проект внутри экосистемы — собственный фотокодек FRC-I на Rust. Формат заморожен на bitstream v12, ядро без unsafe, один код собирается и под сервер, и под браузер, и под мобильное приложение. По PSNR кодек обгоняет JPEG примерно на 29% по битрейту при том же качестве, кодирование быстрее — 11,8 мегапикселя в секунду против 9,2 у JPEG.

При этом до JPEG XL автор не дотягивает: на 33,6% больше бит, но Encoding быстрее — 13,8 Мп/с против 7,9 у cjxl. Flora — это не манифест о лучшем будущем, а конкретная альфа, в которую уже можно зайти, почитать формулу ленты, разобрать криптографию и при желании поднять сервер у себя. Все ограничения первой версии описаны открыто, без маркетинговых обещаний.

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

приватность соцсети разработка протоколы

Оригинал

Обсуждение

Комментариев пока нет.

Похожие новости