这份白皮书完整描述源钥的加密架构、密钥生命周期、威胁模型与已知局限。 没有模糊的「银行级加密」这类形容词,只有算法、参数与每一层防线的边界。
{
"id": "vi_9f2c…",
"type": "login",
"name": "云控制台",
"username": "[email protected]",
"password": {
"v": 1,
"iv": "6bQ2h1sP0vV9…",
"data": "8fJ2mQ…"
},
"tags": ["生产", "云"],
"health": {
"weak": false,
"reused": false,
"breached": false,
"score": 92
}
}服务端看到的 password 字段只是一段密文。没有主密钥的服务器, 得到的也只会是这些字符。
每一层都独立成立:即便其中一层被突破,其余各层仍在。
你的主密码永远不会被发送。它只存在于你的设备内存中,是解开整个保险库的钥匙。忘记它意味着数据无法被任何人恢复——包括我们自己。
主密码经 Argon2id(m=64 MiB,t=3,p=4,16 字节随机盐)派生出主密钥。这一步刻意消耗内存与时间,让暴力破解的成本高到没有意义。
每条保险库条目使用独立随机 IV 的 AES-256-GCM 加密,附带认证标签,任何一比特被篡改都会导致解密失败而不是返回错误数据。
密钥经 HKDF-SHA256 派生出的子密钥包裹,并混入安全密钥生成 HMAC-SHA256 校验值。这样即便数据库被完整拖走,也无法用单纯的主密码批量解密。
客户端在握手时提交设备指纹(浏览器、平台、随机安装 ID 的哈希)。服务端据此识别异常设备并触发二次验证或冻结会话。
全链路 TLS 1.3,服务端数据库中保存的是客户端生成的密文与最小化元数据。备份、导出与附件同样遵循密文优先的原则。
诚实地标注「部分可缓解」,比把所有攻击都说成已防护更有价值。
服务端数据库被拖库
已防护服务端不持有主密钥,也不持有明文条目。拖库得到的密文需要每个条目的独立密钥才能解开,而密钥由客户端保管。
传输途中被劫持或篡改
已防护TLS 1.3 强制前向保密;应用层再做一次 AES-256-GCM 认证加密,双重保险。
攻击者离线爆破主密码
部分可缓解Argon2id 把每次尝试的成本抬高到约 100 毫秒量级,配合足够强的密码可有效抵抗。弱密码仍可能被字典攻击击败,因此我们在注册时给出强度评估并支持二次验证。
设备被控制(恶意软件 / 键盘记录)
部分可缓解端侧数据在解密状态下必然可被恶意软件读取。源钥提供自动锁定、剪贴板清除、异常登录告警与设备信任评分,把暴露窗口压到最小。
主密码泄露
部分可缓解两步验证可以防止主密码泄露后的账户接管。紧急访问采用「等待期 + 可撤销」设计,让误授权有时间被撤回。
钓鱼攻击
部分可缓解通行密钥与设备绑定生物识别可以抵抗大多数钓鱼;域名匹配规则与自动填充仅在域名完全匹配时才生效,降低误填风险。
内部人员越权访问
已防护服务端没有任何解密能力,运维也无法读取明文。管理员后台的每一次操作都写入审计日志,可被管理员之外的角色查看。
安全决策经常要牺牲便利。我们把这三条写下来,让取舍有据可依。
我们公开协议与实现、公开审计报告、公开事件记录。安全不是营销话术,而是可以被第三方复现的事实。
端到端加密、两步验证、通行密钥对个人用户永久免费。收费的只有企业治理能力,核心安全能力永不打折。
单一防线迟早会失效。我们用密钥派生、条目加密、密钥包裹、设备指纹、传输加密组成六层独立机制。