安全与隐私
Snow Cues 的安全设计不依赖「我们替你保管秘密」。相反,它尽量少保存、明确保存什么,并把关键材料留在你的输入和当前浏览器内存中。
Snow Cues 的安全边界建立在三点上:
- 少保存:只保存必要的条目数据和管理元数据。
- 显式保存:保存必须由用户触发,并在保存前确认摘要 diff。
- 浏览器原生 WebCrypto:核心密码学链路依赖浏览器原生能力,不退回到纯 JavaScript 实现。
Snow Cues 不会保存:
- 空间主密码。
- 单条密码的关键密钥。
- 关键密钥的可逆副本。
- 可被系统自动拼接成关键密钥的结构化字段。
- 密码校验材料。
- 外部平台的明文密码。
- 游离密码的派生输入、预览结果或历史。
- 单条密码的规则 ID、scene/context 等可重建派生输入的元数据。
这些内容不会被写入 storageData、IndexedDB、localStorage、sessionStorage、URL 或其他文件。
只保存在内存中的内容
Section titled “只保存在内存中的内容”当前浏览器会话中可能短暂存在:
- 由空间主密码派生出的 non-extractable 加密密钥。
- 当前输入的关键密钥。
- 临时解密出的密码。
- 临时查看的记忆提示明文。
- 迁移期间的来源空间会话。
这些内容会在离开空间、会话过期或用户执行对应隐藏 / 取消动作后清除。
加密处理的内容
Section titled “加密处理的内容”Snow Cues 不把外部平台的明文密码当作托管密码库保存,也不知道你最终在外部平台使用的密码是什么。
条目创建和查看时,空间主密码会建立当前浏览器内存会话,单条关键密钥由你输入。应用会在本地用这些材料完成派生、加密处理和查看,不会把空间主密码、关键密钥或明文密码上传到官网。
会进入 storageData 的敏感辅助数据包括:
- 与单条关键密钥相关的加密条目材料。
- 可选的关键密钥记忆提示。
这些数据不是外部平台明文密码,也不能替代你的空间主密码或关键密钥。忘记它们后,Snow Cues 没有可用于恢复的后门材料。
会明文保存的管理信息
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 “运行环境要求”推荐作为正式环境:
- 官方 HTTPS 正式地址。
- 由 HTTPS 正式地址安装的 PWA。
- 你自行部署到可信 HTTPS 环境的静态产物。
- 本地开发中的
localhost或127.0.0.1。
正式使用建议选择 Chrome、Edge 等 Chromium 系浏览器。其他浏览器可能因为 WebCrypto、File System Access API 或安全上下文差异,导致加密、保存或文件夹访问能力不可用。
官方部署和自部署
Section titled “官方部署和自部署”官方部署只用于分发静态前端代码。它:
- 不保存用户账号。
- 不保存
storageData。 - 不接收主密码、关键密钥或密码内容。
自部署时也应保持这个模型:只部署静态产物,不增加会接收 storageData、空间主密码、关键密钥或密码内容的服务端逻辑。
自部署算法扩展
Section titled “自部署算法扩展”官方构建只包含项目维护者审计过的规则算法模板。自部署版本可以在源码层扩展算法注册表并自行构建,但 Snow Cues 不支持通过运行时导入、URL 参数、storageData 或远程配置动态加载任意算法代码。
规则扩展遵循「源码 / 构建期注册,运行时声明式选择」:
- 算法实现必须写入源码,并随自部署静态产物一起发布。
- 导入规则 JSON 只能声明
algorithm、namespace和公开非秘密params。 algorithm必须存在于自部署构建的算法注册表中。params必须由对应算法模板执行白名单校验、归一化和限幅。- 算法配置不得包含主密码、关键密钥、平台账号、scene/context、代码片段、远程 URL 或任何单条密码可重建派生输入。
自部署构建和官方构建可能使用不同算法注册表。使用自部署专有算法创建的空间,必须继续使用包含该算法的构建打开;官方构建无法使用未注册算法维护该空间。
记忆提示边界
Section titled “记忆提示边界”记忆提示会加密保存,但它仍是敏感辅助信息。建议只写自己能理解、别人难以利用的提醒,不要写出完整关键密钥。
查看记忆提示不需要再次输入关键密钥,但需要当前空间会话能力。
如果你希望通过复用相同或相似关键密钥、写更直接的记忆提示来降低记忆负担,请先理解 安全性与便利性的取舍。
不能恢复的内容
Section titled “不能恢复的内容”Snow Cues 不提供:
- 主密码找回。
- 关键密钥找回。
- 明文密码托管备份。
- 云端账号恢复。
- 自动合并冲突。
- 忘记密码怎么办:常见问题。
- 数据如何落盘:存储数据与保存。
- 自行部署静态产物:运行方式与自部署。
- 记忆便利性与风险:安全性与便利性的取舍。