
匿名文章称Passkeys是陷阱,多方发文反驳
来源标题:Are Passkeys a Trap?
一篇匿名文章称Passkeys是陷阱、呼吁不要使用,引发大量讨论和多方反驳。该文声称Passkeys是特洛伊木马,可让网站识别设备、浏览器等信息,并配合远程认证限制软件使用。反驳者认为文章标题党,论点基于对Passkeys工作原理的误解和稻草人论证。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
分享 一篇匿名文章《Passkeys 是个陷阱,别用》引发了不小的风波,招来大量评论和好几篇公开反驳。这个标题党之后,是一连串阴谋论式的说法:什么有一项协同计划,先让你对 passkey 上瘾,然后启用“远程认证”来控制你能用什么软件——其间还夹杂着稻草人论证和对 passkey 工作原理的误解。我本以为大家一旦看清它有多离谱,这事就会过去,但它却一再冒出来。所以我也来出一份力,打一打这只地鼠。
作者臆测 passkey 是“特洛伊木马”,能让网站识别你的手机或电脑、浏览器、浏览器扩展、操作系统、安全配置,以及你是否在运行修改过或第三方的软件。作者还进一步声称,passkey 可以被用来“核实你的设备不具备某些能力,比如收发加密消息、运行竞争对手的应用,或者在不验证身份的情况下使用社交媒体”,可以举报你是否“关闭了强制内置的 AI 图像扫描器”,可以窥探朋友之间私下的政治讨论,还能识别政治异见人士。
这基本上是想入非非。现实情况是,网站通常能识别你所用的 passkey 管理器(即创建 passkey 的硬件或软件)的品牌/型号¹,由此或许能推断出一些额外信息。下面我会说明,有些 passkey 管理器不会泄露任何额外信息,另一些可能暴露你的平台或浏览器,但绝不是上面那串荒唐的清单。
可网站根本不需要 passkey 就能做这些事。它们本来就在——也一直在——查看你的浏览器、扩展、操作系统、设备类型、CPU、位置等等,并可以据此封杀你,跟你用什么方式登录毫无关系。这种窥探可以通过注重隐私的浏览器和 VPN 来缓解,但这些都不是主流。如果说 Microsoft、Google、Apple、Facebook 和 Amazon 真有什么不可告人的目的,是要“阻止你运行未经批准的软件”,那它们有比 passkey 好用得多的手段。
作者把恶意意图安在认证(attestation)头上(还把它叫作“远程认证”,大概是为了让它听起来更吓人,尽管所有 passkey 认证本来就是“远程”的,因为你的设备是在跟网站通信)。当你注册一个新 passkey 时,网站可以要求认证,这基本上就是 passkey 管理器为其创建了该 passkey 作担保。默认是不认证,而且大多数面向消费者的网站也不会要求认证。认证是可选的,许多 passkey 管理器即便被要求也不提供。passkey 管理器总会提供一个 AAGUID,即标识其“型号”的 ID,但 AAGUID 可以全是零。
简单来说,认证基本上分三类:无认证、自认证(用 passkey 的私钥签名)和证书背书认证。网站只能验证某些类型的证书背书认证的真实性。² 没有可信认证,AAGUID 就只是一种声明,而非证明。
passkey 分两种:设备绑定型和同步型(详见下文)。大多数设备绑定型 passkey 创建在 YubiKey 这类物理安全密钥上,或创建在手机、电脑的安全硬件元件中。³ 创建设备绑定型 passkey 的管理器通常会提供证书背书认证。大多数软件 passkey 管理器,包括 Apple Passwords、Google Password Manager、Microsoft Password Manager 以及独立密码管理器,都不提供认证。
换句话说,passkey 管理器会报告一个 AAGUID,它可能如实标识了其所声称的型号。大多数网站不要求认证,但一旦被要求,passkey 管理器可能提供也可能不提供认证,而所提供的认证又可能属于能让网站独立核实该声明的类型。这里可回旋的余地很大。
文章声称“你对自己的 passkey 没有最终控制权”,并断言认证是刻意被纳入 WebAuthn 的,以便网站有朝一日“扳动开关……开始拒绝……passkey”,并“利用 passkey 阻止你运行未经批准的软件”。
网站能用 AAGUID 来识别并控制你使用的硬件和软件吗?只能在非常有限的意义上。它们可以限制接受哪种类型的 passkey(同步型还是设备绑定型)以及哪些 passkey 管理器。这一能力的设计初衷,是满足主要与硬件安全密钥相关的安全需求。但 passkey 认证并不是一份关于你设备的清单,不能让网站检查你的浏览器扩展、禁止加密通讯、查看你装了哪些应用,诸如此类。而且,网站只能可靠地信任某些设备绑定型 passkey 的 AAGUID。大多数 passkey 是同步型的,所以基于无法核实的 AAGUID 来封禁 passkey 管理器,既不精确,也容易被绕过。
网站可以检查 AAGUID 来判断你用的是不是硬件安全密钥、是什么品牌(YubiKey、Titan、Kensington 等),也能判断你是否在用 Windows Hello,但它无法可靠地判断你在用哪个浏览器、哪台设备,甚至哪个 passkey 管理器。Apple 等公司过去会返回全零的 AAGUID,显然什么信息都没告诉网站,不过这一趋势似乎正在改变。作者对“经密码学验证的远程认证”的担忧实属过虑,因为:a) 当 AAGUID 来自安全密钥时,它只标识该安全密钥,与操作系统、浏览器等无关;b) 当 AAGUID 来自软件 passkey 管理器时,它可能标识、也可能不标识其运行环境的细节,而且可以被伪造。⁴ 例如,网站(通常)能看出你的 passkey 是由 Google Password Manager 还是某个独立密码管理器创建的,但它并不知道该软件运行在 iOS、Windows、Linux、Android 还是别的平台上。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。