密码 → Passkey · 私钥解锁实验

先保存密码密文,再添加 Passkey。最后两种方式各自重新解密同一把私钥。

当前状态

原 PRF 测试工具

1建立随机私钥,用密码加密保存

生成 ECDSA P-256 私钥和随机 DEK。密码通过 PBKDF2 派生钥匙,保护 DEK;DEK 加密私钥。只保存密文和公开参数。完成后结束处理私钥的 Worker。

2重新用密码解密,添加 Passkey

必须重新输入第一步密码,从 localStorage 取出密文并验证私钥。之后创建 Passkey、实际取得 PRF,通过 HKDF 派生另一把钥匙,给同一个 DEK 添加第二份加密封装。密码解锁方式继续保留。

3两种方式独立解密、签名验证

每次点击都重新读取 localStorage;每次 Passkey 解锁都重新请求用户确认和 PRF。解出的私钥导入不可导出的 CryptoKey,签名随机消息,用第一步保存的公钥验签。通过才算真的解开原私钥,随后结束 Worker。

localStorage 实际内容

这里显示实际保存的数据:一份私钥密文、密码封装的 DEK,以及添加成功后的 Passkey 封装 DEK。没有密码、私钥明文、DEK 明文或 PRF 原值。