Организации и роли
В организации есть участники с ролями: владелец, администратор, редактор и наблюдатель. Роли определяют, кто управляет членством и содержимым, но не то, кто может расшифровывать. В этом различии — весь смысл конструкции.
Политика задаётся для каждой организации: требование двухфакторной аутентификации, требование подтверждения устройства до синхронизации, ограничение способов входа и предельная длительность сессии. Требование записи сессий — это требование раскрытия, применяемое клиентом, и оно так и помечено, а не как техническая гарантия.
Группы, приглашения и доступ к ключу
Доступ выдаётся группам пользователей, а не отдельным людям, везде, где это возможно, — тогда новому участнику не нужна отдельная выдача для каждой коллекции.
Когда приглашение принято, членство действует немедленно, а доступ к ключу явно остаётся ожидающим. Сервер не может изготовить конверт с ключом для нового участника; авторизованный разблокированный клиент упаковывает ключ содержимого для каждого его устройства. До этого новый участник может скачать шифротекст, который не сможет прочитать, и интерфейс об этом говорит.
Отзыв и смена ключей
Удаление участника или отзыв устройства немедленно отзывает доступ на сервере и возвращает список коллекций, которым теперь нужен перевыпуск ключей. Выполнить его может только клиент, у которого есть текущий ключ.
Смена ключей защищает будущее содержимое. То, что человеку было выдано законно, может у него остаться. Любой продукт, намекающий на обратное, говорит неправду о том, как работает шифрование.
Исходные документы
Эта страница кратко излагает файлы ниже. Полный и авторитетный текст — в них.
docs/ARCHITECTURE.md
Путь в репозиторииcontracts/openapi.yaml
Путь в репозитории