数据存储
本页从安全角度说明 Keragi 的数据存放在哪里、谁能解密,以及删除数据会带来什么后果。数据库选型与部署配置(默认 SQLite、后续数据库支持计划)见运行环境与数据库。
1. 服务端中转、客户端保存
Keragi 默认采用 服务端中转、客户端保存 的模式:
- 消息、群聊与频道内容在客户端加密后发送;服务端只中转(必要时盲存)密文。
- 服务端不持有私钥或会话密钥,不能读取消息明文。
- 私钥、会话密钥和消息历史保存在客户端,客户端才是消息数据的最终存储位置。
2. 服务端保存什么
服务端数据库主要保存运行所需的非明文数据:
- 账号、设备与公钥;
- 会话索引与必要的同步元数据;
- 中转/盲存期间的密文消息;
- 连接器与 WASM 资源的运行状态。
服务端可能保存与账号、连接和路由相关的元数据,因此中转模式不等于匿名。
3. 客户端保存什么
客户端保存可以解密消息的数据:
- 私钥与会话密钥;
- 消息明文与本地历史;
- 客户端设置、缓存与会话状态。
| 位置 | 主要保存内容 | 能否解密消息 |
|---|---|---|
| 服务端 | 账号、公钥、会话索引、密文消息、连接器与资源状态 | 不能 |
| 客户端 | 私钥、会话密钥、消息明文与本地历史、客户端设置 | 可以 |
4. 删除客户端数据的风险
重要提示:消息、密钥等数据的最终存储位置是客户端。清除浏览器站点数据、卸载客户端、重置设备或手动删除客户端数据后,本机保存的消息与密钥可能一并被删除。若没有其他已登录设备或可用备份,相关消息可能无法恢复或无法解密;服务端只持有密文,无法代为恢复。
建议:
- 不要随意清除浏览器的站点数据,或删除客户端的缓存与数据目录。
- 更换设备、重装客户端或重置系统前,先确认已有可用备份,或仍有其他已登录设备。
- 需要长期保留的会话,按客户端提供的方式导出或备份。
- 公共或共用设备上退出登录、清理本地数据前,先确认不会丢失需要保留的消息。
5. 备份与恢复
- 客户端备份:用于保留消息、密钥与本地历史;具体方式以客户端提供的能力为准。
- 服务端备份:只能恢复账号、密文与资源状态等服务端数据,不能解密消息,也不能替代客户端备份。
- 备份文件本身同样包含敏感数据,应加密保存并限制访问。
6. AI 与连接器的数据路径
AI 接管由客户端根据会话配置决定是否回复。启用第三方 AI 或连接器后,相关会话内容会按你的配置发送给对应服务,其处理与留存由该服务负责,不属于端到端加密的保护范围。