跳到正文
Hacker News· speckx·· 3 天前AI 评分22

驳「Passkeys 是陷阱」:同步 Passkey 根本不做认证声明

Passkeys are not a trap

AI 导读

针对热传文章「Passkeys are a trap. Do not use them.」,一位开源 passkey 库作者逐条反驳:主流同步 passkey 存于 iCloud Keychain。

正文 · AI 翻译

一篇题为通行密钥是个陷阱。不要使用它们。的文章在过去几天里广为流传,在 Hacker News 上排名相当高,我多次收到有人发来这篇文章,带着一种“这是真的吗?”的语气。它是写给“网络上的非技术公民”的,其核心建议是停止使用通行密钥,回到 TOTP 验证码和密码。

论点

这篇文章似乎提出了一个核心主张:通行密钥支持一种叫做认证(attestation)的东西,它让网站可以要求提供通行密钥是由什么生成的加密证明。

作者称之为一个“隐藏的旋钮”,并认为网站会慢慢把它调高,直到你只被允许在未经修改的、经过批准的操作系统上使用经过批准的软件登录,不能刷 LineageOS,也不能分享你的 Netflix 密码。再加上 uBlock Origin、FIDO 联盟成员名单和英国的图像扫描提案,结论就是通行密钥“并非旨在优先考虑你的利益”。<这升级得也太快了.gif>

这是一个引人入胜的故事。只是它和这一切实际运作的方式对不上……

你的通行密钥不会进行认证

大多数人使用的通行密钥是同步通行密钥,存储在 iCloud 钥匙串、Google 密码管理器、1Password、Bitwarden 或你选择的其他任何软件中。这些通行密钥根本不会向网站提供认证声明,尽管网站可以请求,但返回的是none。我知道这一点,因为我写了一个开源通行密钥库并向所有人开放。

如果一个面向消费者的网站明天决定只接受经过认证的通行密钥,它会立刻把几乎所有自己的用户锁在门外。哪个网站会这么做?况且,面向消费者网站的指导方针已经是多年来连认证都不要请求了。

认证不是你想的那样

这篇文章把认证描述为证明“正在使用经过批准的通行密钥管理器、操作系统和固件”,这根本不是真的。

当认证存在时,WebAuthn 认证会告诉网站认证器的品牌和型号,由其AAGUID标识,并附有来自厂商的证书链作为佐证。它不会说明你的操作系统、你的浏览器、你的扩展程序、你的手机是否已 root 或越狱、你的固件版本,甚至它是什么颜色。

YubiKey 推荐

这是最让我惊讶的部分。对于想要更强安全性的人,这篇文章推荐使用像 YubiKey 这样的硬件安全密钥,因为它“避免了操作系统范围的认证”。

YubiKey 恰恰是会进行认证的认证器。每一个 YubiKey 都附带由 Yubico 签发的认证证书,而企业认证的存在正是为了让组织可以要求使用经过批准的硬件密钥。我仍然会向任何想要的人推荐 YubiKey,它们非常出色,我自己也在用,但如果你担心的是认证,这篇文章自己的推荐反而把你推向认证,而不是让你远离它!

TOTP 是一种倒退

这篇文章把 TOTP 说成"已经"是一个很好的解决方案。TOTP 绝对比只用密码好,但它有一个很大的弱点:你可能会把验证码输入到错误的网站上,问问我的好朋友 Troy Hunt 就知道了。像 Evilginx 这样的钓鱼工具包会坐在中间,实时把你的密码和验证码转发给真正的网站,然后带着你的会话扬长而去。这不是理论上的假设,这就是如今大量账户被接管的方式,我们有证据可以证明。

这正是 passkeys 所解决的问题。passkey 绑定在它创建时所属的域名上,所以你的浏览器根本不会在 examp1e.com 上使用你的 example.com passkey。没有验证码需要读出来,用户也没有任何可能出错的地方。作者甚至在附录中也承认了这一点,说 passkeys 是域名绑定的,能抵御中间人攻击,但仍然告诉读者要避开它们。把一种能抵御钓鱼的凭证换成一种可被钓鱼的凭证,这真是一笔糟糕的交易……

你应该怎么做

继续使用 passkeys!只要网站提供,就用它,并把它存放在你信任的密码/passkey 管理器中。如果你希望能够迁移你的凭证,就选择一个支持这一点的提供商。如果你担心认证(attestation)会悄悄进入消费者登录流程,那这值得大声反对(如果它真的发生的话)。但它并没有发生,最大的提供商都不支持它,而在等待它发生的同时今天就避开 passkeys,并不能保护你免受任何威胁,只会让你暴露在钓鱼攻击之下。

来源

我在这个领域有一些经验:

我创建了 WhyNoPasskeys.com 来追踪 Web 上 passkeys 的可用情况。

我在自己的 SaaS 公司中构建并部署了 passkeys 支持。

我们构建了自己的 passkeys 库,并对其进行了安全审查。

我写过关于 在你的网站上使用 Passkeys 时的安全考量 的文章。

我写过 Passkeys 101:Passkeys 简介及其工作原理。

我把我们的 passkeys 库开源了,供所有人使用。

我对 passkeys 实现做了 大量的安全测试。

我公开 承认了不使用认证(attestation)的局限性。

我认为最重要的是要说明,我在所有能用的地方都使用 passkeys,因为它们目前是我们保护账户可用的最好的东西。而且它们不是陷阱。


你喜欢这篇文章或觉得它有帮助吗?
☕️ 考虑 请我喝杯咖啡 表示感谢!
🔔 订阅,在我发布时获得 免费通知!
🤩 成为 会员,支持我的内容!

标签:Passkeys

来源:Hacker News · scotthelme.co.uk