安全与隐私
Snow Cues 的安全设计不依赖「我们替你保管秘密」。相反,它尽量少保存、明确保存什么,并把关键材料留在你的输入和当前浏览器内存中。
Snow Cues 的安全边界建立在三点上:
- 少保存:只保存必要的加密输出和管理元数据。
- 显式保存:保存必须由用户触发,并在保存前确认摘要 diff。
- 浏览器原生 WebCrypto:核心密码学链路依赖浏览器原生能力,不退回到纯 JavaScript 实现。
Snow Cues 不会保存:
- 空间主密码。
- 单条密码的关键密钥。
- 关键密钥的可逆副本。
- 可被系统自动拼接成关键密钥的结构化字段。
- 密码校验材料。
- 明文密码。
- 游离密码的派生输入、预览结果或历史。
- 单条密码的规则 ID、scene/context 等可重建派生输入的元数据。
这些内容不会被写入 storageData、IndexedDB、localStorage、sessionStorage、URL 或其他文件。
只保存在内存中的内容
Section titled “只保存在内存中的内容”当前浏览器会话中可能短暂存在:
- 由空间主密码派生出的 non-extractable 加密密钥。
- 当前输入的关键密钥。
- 临时解密出的密码。
- 临时查看的记忆提示明文。
- 迁移期间的来源空间会话。
这些内容会在离开空间、会话过期或用户执行对应隐藏 / 取消动作后清除。
- 核心密码输出。
- 可选的关键密钥记忆提示。
密码输出先用加密保存,再进入 storageData。
会明文保存的管理信息
Section titled “会明文保存的管理信息”正式密码条目的以下字段是明文管理元数据:
- 条目 ID。
- 空间 ID。
- 密码组 ID。
- 平台。
- 普通备注。
- 废弃时间。
- 创建和更新时间。
密码组会保存组名、普通说明和声明式输出适配策略。空间 profile 会保存规则链和声明式导入规则 manifest。
平台、密码组名称和普通备注是明文管理元数据。不要在这些字段中填写账号、关键密钥、密码或其他敏感秘密。
Snow Cues 使用浏览器原生 WebCrypto,包括:
- PBKDF2-SHA256
- HMAC-SHA256
- AES-GCM
- SHA-256
- non-extractable
CryptoKey
核心链路不会退回到纯 JavaScript 密码学库。若环境缺少 crypto.subtle 等能力,应用会阻断敏感操作并提示更换运行环境。
运行环境要求
Section titled “运行环境要求”推荐作为正式环境:
- Cloudflare Pages HTTPS 正式地址。
- 由 HTTPS 正式地址安装的 PWA。
- 本地开发中的
localhost或127.0.0.1。
Cloudflare Pages 的角色
Section titled “Cloudflare Pages 的角色”Cloudflare Pages 只用于分发静态前端代码。它:
- 不保存用户账号。
- 不保存
storageData。 - 不接收主密码、关键密钥或密码内容。
记忆提示边界
Section titled “记忆提示边界”记忆提示会加密保存,但它仍是敏感辅助信息。建议只写自己能理解、别人难以利用的提醒,不要写出完整关键密钥。
查看记忆提示不需要再次输入关键密钥,但需要当前空间会话能力。
不能恢复的内容
Section titled “不能恢复的内容”Snow Cues 不提供:
- 主密码找回。
- 关键密钥找回。
- 明文密码托管备份。
- 云端账号恢复。
- 自动合并冲突。