加密说明
为什么敏感数据需要清晰边界,以及 Nokuo 的加密流程、算法、密钥模型和零知识边界。
为什么敏感数据需要清晰边界
你放进 Nokuo 的不是普通笔记,是敏感数据:API Key、数据库密码、SSH 私钥、云凭据、CI Token。任何一条泄露都可能导致生产数据库被拖、服务器被入侵、云账单被刷爆、代码仓库被清空。
密码管家把这类东西塞进"安全笔记"的文本框——能存,但没有为敏感数据的生命周期设计。Notion 这类工具更适合普通内容,不是专门为敏感凭据设计;如果把密钥放进去,就需要自己承担云端侧的信任边界。
Nokuo 的原则是清晰边界:
- 本地先加密:敏感数据离开你的设备前就已经是密文。
- 服务端不保存明文:Nokuo 服务端只看到加密后的 Vault 文件,无法解密内容。
- 只有你持密钥:主密码和恢复密钥只有你知道,服务端不保存。
- 不可恢复:主密码和恢复密钥都丢失即无法还原——这是更强安全边界的代价。
加密顺序
Nokuo 的默认顺序是先本地加密,再同步或备份:
- 创建或打开本地 Vault。
- 主密码在本地通过 Argon2id 派生主密钥。
- Vault 清单使用主密钥加密。
- 每条资源使用独立资源密钥加密。
- 资源密钥再由主密钥包裹。
- 同步和备份处理的是加密后的 Vault 文件。
算法
- 密钥派生(KDF):Argon2id。主密码通过 Argon2id 派生主密钥,抗暴力破解。
- 内容加密:XChaCha20-Poly1305。一种 AEAD 流密码,带认证标签,无需 IV 复用担心(nonce 长 192 位)。
密钥模型
- 主密钥:由主密码派生,包裹所有资源密钥。
- 资源密钥:每条资源独立密钥,互不影响。改一条资源不会暴露其他资源。
- 主密钥包裹:资源密钥被主密钥加密后存入 Vault 清单。
零知识边界
Nokuo 服务端只看到加密后的 Vault 文件,不保存:
- 明文主密码或明文主密钥
- 明文资源密钥
- 明文配置、密钥或内容
服务端管理账号、登录会话、许可证、套餐和必要元数据,不参与解密。
不可恢复
主密码和恢复密钥丢失即不可恢复:
- 主密码用于本地解锁和派生加密材料。
- 恢复密钥是最后的找回手段。
- Nokuo 服务端无法替你还原明文内容。
请把主密码和恢复密钥分开保存,并考虑离线备份。