Record subgroup leave key retention decision

This commit is contained in:
evgeny committed 2026-11-03 12:10:23 +01:00
1 parent cf2880596c
commit 1dbc2bfce5
2 files changed
+28 -1

No files matched your search

+26 -1
View File
@@ -2,7 +2,8 @@
======================================
Дата: 03.11.2026. Ветка реализации: feature/dm-devgroups.
Статус: согласованная схема; выполнение этапов отмечается ниже.
Статус: реализация начата; до изменения протокола требуется решить вопрос
доступа после выхода из подгруппы (раздел 9). Выполнение этапов отмечается ниже.
1. Два режима беседы
-------------------
@@ -203,3 +204,27 @@ Qt/Android/headless получают итоговый conv_id от ядра и
[ ] Обновить нормативную документацию; выполнить целевые DM/devgroup тесты,
Qt/Android проверки и полный ./check.sh. Известные исходные отказы из
doc/tasks.md отделять от новых регрессий. Итог фиксировать с логами.
9. Обнаруженный вопрос: выход из подгруппы
----------------------------------------
chat_devgroup_leave → cd_commit удаляет devgroup_local, включая приватный
X25519 ключ подгруппы (src/chat/chat_devgroup.c). Стороны GROUPS закреплены,
а упаковка F_private адресована этому ключу. Поэтому после выхода без
дополнительного хранения секретов нельзя расшифровать ни ещё не скачанные
вложения, ни ранее адресованные, но ещё не полученные сообщения.
Неявное переключение старой беседы на DEVICE неверно: это другие ключи и ID.
Нужен выбор поведения:
А. Сохранять прежний X25519 ключ локально для отложенной доставки по исходному
snapshot; ключ подписи подгруппы для этого сохранять не требуется.
Б. Выход завершает получение старой GROUPS-беседы; оставляем читаемыми только
уже сохранённую историю и доступные вложения. Для этого локально сохраняем
необходимые ключи конкретных бесед/вложений до удаления группового секрета.
Это также выбор доступа, а не только удобства: существующий выход не меняет
ключи на остальных устройствах. Сохранённый групповой X25519 секрет технически
подходит и для будущих шифротекстов этой группы; строгий криптографический
отзыв требует отдельного протокола ротации ключей, которого сейчас нет.
Пока решение не принято, протокол/рабочая доставка не изменяются. По правилу
AGENTS.md об остановке при обнаруженной несогласованности завершается только
проверка подготовленного модуля идентичностей и снимков адресатов.
+2
View File
@@ -10,6 +10,8 @@
Снимок адресатов, per-device ACK и mailbox fallback; отдельная пара ключей вложения и две упаковки,
P2P/RTT-выбор источника, настройки автозагрузки и политика M: открытие либо загрузка всеми получателями/TTL.
Согласованный план и этапы: [dm_devgroup_plan.txt](dm_devgroup_plan.txt).
До изменения протокола уточнить доступ после выхода из подгруппы: сейчас выход удаляет её X25519 секрет,
необходимый для отложенных сообщений и вложений. Варианты и последствия — раздел 9 плана.
[+] **Связывание личных устройств: явное меню и два PIN** — 03.11.2026.
Qt/Android: «Это моё устройство» только для чужого устройства без подгруппы с живым BGP; пояснение и явная кнопка «Связать».