Files
mayatnikovandClaude Fable 5 ae55c846aa ADR-015…024 и спецификации v1: криптография, протокол, хранение, UI, деплой, план
Закрыты все открытые вопросы проектирования. Пароль не покидает клиент
(два ключа из мастера), TOFU для публичных ключей, устройства и конверт,
атомарный rekey комнат, регистрация и контакты, схема SQLite и драйвер
без cgo, сессии и CSRF, деплой через nginx+systemd, правила пушей,
айдентика «Скобы» на системном mono. Иконки PWA в web/icons.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015DbCjVfTFq4ZFG8juD45YJ
2026-08-22 10:53:24 +03:00

1.3 KiB

ADR-007: Симметричный ключ комнаты и rekey

Конкретизирован ADR-018: владелец, случайный keyId, атомарный rekey, постоянное хранение завёрнутых ключей.

Контекст

Сообщение в комнате должны читать все участники, но не сервер. Шифровать каждое сообщение отдельно каждому участнику — квадратичный объём работы и трафика.

Решение

У комнаты один симметричный ключ. Он раздаётся участникам зашифрованным на их публичные ключи. При любом изменении состава — rekey: новый ключ, новая раздача.

Следствия

  • Новый участник не видит сообщений до своего вступления — их и не существует нигде, кроме устройств участников.
  • Вышедший участник не читает сообщения после rekey.
  • Rekey выполняют клиенты; серверу ключи недоступны.