0环境检测
1创建测试 Passkey
创建一个 resident passkey,并带上 prf 扩展。
成功后 getClientExtensionResults().prf.enabled 为 true,说明这个 credential 真的支持 PRF。
2本机 PRF 测试
用随机 salt 发起一次带 prf.eval.first 的 assertion。
页面只显示 SHA-256(PRF output),不显示 PRF 原值。
3再执行一次
用同一个 salt 再跑一次,比较两次的指纹是否一致。 这一步测的是同一 credential 在同一设备上的 PRF 稳定性。
4跨设备测试(PC → QR → 手机)
真实跨设备调用:点击下面的按钮,在浏览器弹窗里选择“使用手机 / 其他设备”,扫描浏览器生成的二维码。PRF 指纹直接返回电脑。手机上需已有本站的 Passkey。
补充:在手机网页上运行 PRF
PC 生成带当前 salt的二维码 → 手机扫码打开 → 手机用自己的 passkey 算 PRF → 拿到指纹后传回 PC。传回方式二选一:手机复制粘贴,或手机再显示一个二维码由 PC 扫。
5比较
只在同一 credential、同一 salt 下判断 PRF 是否稳定。不同 credential 的结果不能用来判断跨设备一致性;同步或跨设备是否返回相同结果,以实测为准。
6密钥保管(静态加密演示)
磁盘上只留 encryptedPrivateKey 与 wrappedDEK。
解开时 DEK 与私钥都只短暂以 byte 形式存在,随即导入
extractable = false 的 CryptoKey 并清空 buffer。