请,请,请停止使用 passkeys 加密用户数据
Source: Hacker News
为什么我今天要写这篇文章?
因为我深切担忧用户失去他们最重要的数据。在过去的一两年里,我看到许多大大小小的组织实现了 passkeys(这很好,感谢!),并使用 PRF(伪随机函数)扩展来派生密钥以保护用户数据,通常用于支持端到端加密(包括备份)。我也看到一些有影响力的人和组织推广使用 PRF 来加密数据。
我见过的主要使用案例(已实现或推广)
- 加密消息备份(包括图像和视频)
- 端到端加密
- 加密文档及其他文件
- 加密并解锁加密货币钱包
- 凭证管理器解锁
- 本地账户登录
为什么这是个问题?
当你把用于身份验证的凭证也用于加密时,失去该凭证的“冲击半径”会变得不可估量地大。
用户故事
想象一下有位名叫 Erika 的用户。他们被要求在最喜欢的聊天应用中设置加密备份,因为他们不想丢失消息和照片,尤其是已故亲人的照片。系统提示他们使用自己的通行密钥(passkey)来启用这些备份。界面上没有任何强调这些备份现在与通行密钥紧密耦合的提示。即使有解释性文字,像 Erika 这样的普通用户通常也不会仔细阅读每一个对话框,更不可能在一年后还能记住这个技术细节。
几个月后,Erika 决定清理自己的凭证管理器。他们不记得为什么为这个聊天应用保存了特定的通行密钥,于是将其删除。
快进到一年后:他们换了新手机并重新设置聊天应用。由于凭证管理器中已经没有通行密钥,系统没有提示使用通行密钥,而是通过手机号码验证来恢复账户。随后,系统引导他们进入“恢复备份”流程,并要求输入通行密钥。
因为通行密钥已不在手,他们被告知无法访问已备份的数据。记忆就此失去。
删除通行密钥时用户看到的界面



用户怎么可能理解,他们可能正在一键删除已故亲属的照片、加密的房产证书或数字货币?
我们不能,也不应该指望用户知道这一点。
PRF 在 WebAuthn 中的合法用途
在 WebAuthn 中,PRF 有一些非常合法且更持久的用途,尤其是支持凭证管理器和操作系统。使用 PRF 的通行密钥可以让解锁您的凭证管理器(其中存储了您所有其他的通行密钥和凭证)变得更快且更安全。
凭证管理器拥有强大的机制,通过多种方法保护您的保险库数据,例如主密码、设备密钥、恢复密钥以及社交恢复密钥。丢失用于解锁凭证管理器的通行密钥很少会导致保险库数据的完全丢失。
PRF 已经在 WebAuthn 客户端和凭证管理器中实现,所以事实已经摆在眼前。
我的请求
致更广泛的身份行业
请停止推广和使用通行密钥来加密用户数据。 让它们仅作为优秀的、抗钓鱼的身份验证凭证。
致凭证管理器
- 在用户删除带有 PRF 的通行密钥时,优先添加警告。
- 在可用时显示依赖方的信息页面(参见 Relying Party Passkey Endpoints usage spec)。
致使用通行密钥的网站和服务
如果您仍然需要在了解这些顾虑的情况下使用 PRF,请:
- 在您的支持站点添加信息页面,说明您如何将通行密钥用于除身份验证之外的用途。
- 在 Well‑Known URL for Relying Party Passkey Endpoints (
prfUsageDetails) 中列出该页面的 URL。 - 在启用时尽可能提前向用户提供充分的警示。
感谢阅读! 🙏🏻
(and thanks to Matthew Miller for reviewing and providing feedback on this post)