跳到主要内容
2FAAuth.Work
语言: 中文
阅读约 9 分钟 作者:2faauth.work 编辑政策

硬件安全密钥与通行密钥:最强的双重验证(2FA)方案

硬件安全密钥和通行密钥借助 FIDO2 与 WebAuthn 防范网络钓鱼,这是短信验证码和验证器应用无法做到的。本文介绍其工作原理及入门方法。

为什么验证码和验证器应用存在不足

多年来,建议一直很简单:开启双重身份验证,仅凭一个被盗的密码就不再足够。对大多数账户而言,第二个验证因素是一个验证码——通过短信收到的六位数字,或由验证器应用生成。短信验证码是两者中较弱的,因为 SIM 卡交换攻击可以截获它们,而应用生成的验证码至少永远不会离开你的设备。相比仅使用密码,两者都是真正的改进;如果它们是你唯一的选择,就使用它们。但它们是为一种威胁而构建的,而这种威胁此后已经演变。

其弱点是根本性的:验证码是你输入的共享密钥。凡是你能输入的东西,你都可能被诱骗去输入。一个以假乱真的假登录页面不会止步于你的密码。在实时网络钓鱼攻击中,攻击者的网站会将你输入的一切——先是密码,然后是验证码——直接转发到真实网站,并在验证码到达的瞬间完成登录。你看到一条含糊的“出了点问题”的错误提示;攻击者却得到了一个可用的会话。验证码确实起了作用——只是为错误的人起了作用。

还有几个常被忽视的问题:

  • 时效窗口:验证码通常每 30 秒更换一次,但许多网站会接受上一个仍然有效的码,攻击者因此有接近一分钟的转发时间。
  • 人为压力:攻击者常通过电话冒充客服,催促你“念出刚收到的验证码”,把技术防线变成心理防线。
  • 备份码误用:把一次性恢复码存进邮箱或聊天记录,等于在密码旁边贴上了第二把钥匙。
  • 疲劳轰炸:反复推送的登录请求会让人在疲惫时随手点下“允许”。

共同点在于:所有这些方案仍然依赖“你转述秘密”这一动作。只要登录靠人工转交信息,钓鱼者就始终有可乘之机。

FIDO2 和 WebAuthn 到底是什么

FIDO2 是硬件密钥和通行密钥(passkey)背后的总括标准。它由两个协同工作的部分组成:

  • WebAuthn 运行在浏览器中。它是网站用来请求登录并验证响应的协议。
  • CTAP 管辖你的设备——USB 密钥、手机、笔记本电脑的内置读卡器——如何与浏览器通信。插入密钥或通过 NFC 轻触,CTAP 便负责传递这场对话。

每个网站一对密钥

当你在某个网站注册设备时,密钥会专门为该网站生成一对全新的公钥/私钥。私钥留在硬件内部,绝不外泄。网站只会收到与之配对的公钥,并绑定到你的账户。

实际登录时,网站会发送一条随机挑战(challenge),密钥用私钥对其签名后返回。网站用保存的公钥验证签名,签名对得上,即证明你持有私钥——全程无需任何秘密离开你的设备。

正是这种分离使数据泄露的危害大大降低。传统登录方式迫使服务器存储密码或其哈希——这是攻击者真正想窃取的数据库。而使用 FIDO2 时,服务器的数据库只保存公钥。公钥无法用来冒充你登录,因此根本不存在值得攻破的机密库。

还有一个常被忽略的细节:每个网站的一对密钥彼此独立。即使某个网站被攻破,攻击者拿到的公钥对其他网站毫无用处,泄露范围天然被限制在单一站点内。

硬件安全密钥:一把摸得着的钥匙

硬件安全密钥是一种小型物理设备,通常只有 U 盘或门钥匙大小,专为登录而设计。YubiKey 是最知名的品牌,但也有多家厂商生产。把它挂在钥匙串上,插入电脑,按一下按钮即可登录。

密钥有不同的接口类型,以适配你的设备:

  • USB-C 适用于新款笔记本电脑、平板电脑和安卓手机
  • USB-A 适用于较旧的电脑
  • NFC 可贴近 iPhone 和许多安卓手机使用——无需数据线

许多型号同时具备其中两种接口,因此一把密钥即可同时覆盖笔记本电脑和手机。选购前先检查自己的设备:看电脑和手机各是什么接口,再决定买哪种组合,避免买回来插不上的尴尬。

其安全性源于密钥内部的工作方式。注册时,会在设备本身生成并存储一个唯一的加密密钥。它永远不会离开密钥——不会发给网站,不会发给你的电脑,哪儿都不去。每次登录都由密钥在内部完成签名,在你物理触碰之前什么都不会发生。远程攻击者无法按下你口袋里的按钮。

这也带来一个常见误区:很多人以为密钥会被网站“读取”或复制。实际上网站只会收到签名结果,拿不到密钥本身。即使你登录的网站数据库泄露,攻击者也无法据此伪造你的登录。代价是物理保管责任转移到了你身上——密钥丢了,登录凭证就没了,所以务必注册两把并分开存放。

Passkey:同样的技术,可同步

Passkey 是一种 WebAuthn 凭据,与安全密钥创建的凭据相同。区别在于它存放的位置。Passkey 不存储在物理设备内部,而是由你的操作系统或密码管理器保存,并可在你的各设备之间同步。

同步的工作原理

创建 passkey 时,你的设备会为它提供一个存放之处:

  • Apple 设备上的 iCloud 钥匙串,可在你的 iPhone、iPad 和 Mac 之间端到端同步
  • Android 和 Chrome 中的 Google 密码管理器,同步到你的 Google 账号
  • 第三方密码管理器,将 passkey 与你的登录信息一同存储

由于凭据始终跟随你,在新设备上登录通常只需在你已有的设备上确认一次提示即可。实际流程大致是:在平板电脑上登录某网站时,网站请求 passkey,平板弹出提示,让你用附近的手机扫码或通过蓝牙确认,手机验证指纹或面容后,登录即完成。整个过程无需输入密码。

同步型还是硬件绑定型?

同步型 passkey 适合日常账户:购物、社交媒体、流媒体。便利性很重要,而且丢失手机不再意味着失去访问权限——新手机登录同一账号后,凭据会自动恢复。

常见的错误是只用一个生态保存全部 passkey。若 Apple ID 或 Google 账号本身被攻破且未开启强 2FA,凭据会随之暴露。建议为账号系统本身启用最高级别的保护。

当风险更高时,硬件绑定密钥更胜一筹。永不离开设备的凭据无法被同步、复制或从云端账户中提取,这正是银行、雇主和管理员账户仍然值得配备物理密钥的原因。

为什么网络钓鱼不再奏效

传统的 2FA 之所以无法抵御网络钓鱼,是因为验证码只是一串数字。凡是能被键入的内容,受害者同样可能键入到伪造的表单中。验证器应用生成的 30 秒动态码也一样:它本身不包含任何关于“为哪个网站生成”的信息,拿到就能立刻用。

FIDO2 凭据的工作方式不同。当你注册安全密钥或通行密钥(passkey)时,该凭据会以加密方式绑定到网站的确切域名——例如 bank.example.com。浏览器会强制执行这一绑定。对于其他域名,密钥会直接拒绝签署任何内容。

伪造网站能得到什么

假设你点击了一个指向 bank.example-login.com 的链接——一个足以乱真的真实网站仿冒品。当浏览器执行 WebAuthn 流程时,它会把伪造的域名提交给你的密钥。密钥发现自己没有对应于该域名的任何凭据。于是登录失败,或者什么有用的东西也产生不出来。攻击者拿到的数据对于在其他地方登录毫无价值。

实践中这意味着:即使你在慌乱中把密码交了出去,攻击者仍然卡在第二步。没有你的密钥在场为 bank.example.com 签名,窃取的密码只是一半钥匙。

没有可通过电话窃取的内容

也不存在可以在电话里念出来或粘贴到表单里的六位验证码。秘密从不离开设备,而响应与真实域名绑定。骗子索要“你屏幕上的那串数字”时,索要的是一个根本不存在的东西。

注意一个常见误区:钓鱼防护依赖浏览器地址栏中的真实域名。如果你通过代理服务器或远程桌面等间接方式访问网站,域名绑定检查的对象就变了,防护可能被绕过。日常使用中直接在浏览器里访问即可。

入门:实用设置指南

购买两把密钥

购买两把硬件安全密钥,最好来自不同厂商,这样某一厂商的批次缺陷不会让两把同时失效。购买前确认接口类型:USB-C、USB-A 或 NFC,取决于你的设备。手机只有 USB-C 口,老笔记本可能还剩 USB-A;NFC 便于在支持的手机上轻触验证,不必插线。第一把挂在钥匙圈上日常使用。第二把存放在安全但可取之处——家中保险柜或你确实记得的抽屉。注意:不要放在与密钥登录所保护设备相同的工作包里,否则包被偷时两把一起丢失。未注册的备用密钥毫无保护作用——买到手只算完成一半,注册才算生效。

两把都注册,并保存恢复码

从最有价值的账户开始:先邮箱,再密码管理器,然后是银行和社交媒体。理由很简单:邮箱是几乎所有“忘记密码”流程的入口,邮箱失守,其他账户的密码都能被重置。在每个账户的安全设置中,注册两把密钥,并将服务的恢复码离线保存——打印出来或抄在纸上,与备用密钥分开存放。截图存在云相册里不算离线。恢复码是两把密钥同时丢失时重新登录的凭证,务必像第二个密码一样对待。常见错误:注册完就关页面,忘了下载恢复码。

其余账户全部开启 2FA

并非每个账户都需要硬件密钥。不支持密钥的地方,启用可用的任何 2FA——可能的话选验证器应用而非短信,因为短信可被 SIM 卡调换攻击截获。优先处理邮箱和密码管理器;控制了它们就等于控制了其他一切。其余账户逐步处理,每周几个即可。设置完成后,用浏览器无痕窗口登出并重新登录一次,确认密钥真正生效,再进入下一个账户。

密钥丢失、恢复与常见问题

如果提前做好准备,丢失硬件密钥并不是一场危机。成对购买密钥,在每个账户上都注册两把,并把备用密钥存放在安全但分开的地方——比如家里的抽屉,而不是同一个钥匙圈上。两把钥匙放在同一处,等于只买了一把。如果其中一把丢失,用备用密钥登录,然后从账户的安全设置中移除丢失的那把,防止被他人捡到后利用。搬家、换包或旅行前,也建议清点一遍密钥数量。

最薄弱的环节:账户恢复

当 2FA 挡住攻击者时,账户恢复就是他们的突破口。恢复码是一次性密码;请离线保存,切勿存放在电子邮箱中——邮箱恰恰是攻击者最先尝试攻破的地方。常见错误是把恢复码截图存进手机相册,或写在密码管理器里却忘了同步。更稳妥的做法是打印两份,与密钥分开存放。同时保护好你的恢复选项——手机号码、备用邮箱——因为任何绕过安全密钥的重置途径都会让一切防护前功尽弃。换手机号前,先更新所有账户的绑定号码。优先选择只允许用另一把通行密钥或密钥进行恢复的服务。

目前的支持情况

Google、Apple、Microsoft 以及许多银行、密码管理器和社交平台都支持通行密钥或 FIDO2 密钥。注意:部分网站只允许注册一台设备的通行密钥,遇到这种情况就改用硬件密钥补位。请查看每个账户的安全设置。

实用小结

从一个重要的账户开始——通常是电子邮箱,因为它掌握着其他账户的重置入口。添加通行密钥,注册备用密钥,打印恢复码。然后重复上述步骤。设置防钓鱼登录只需一个下午,而由此带来的保护却能持续多年。

分享本指南

阅读约 9 分钟

2FA安全清单:12步锁定你的账户

一份实用的安全清单,涵盖2FA设置、密码卫生和恢复选项。今天就能执行的12个具体步骤,强化你的账户,防止被接管。

阅读更多
阅读约 10 分钟

2FA 简史:从硬件令牌到通行密钥

双因素认证如何从外挂式硬件令牌与短信验证码,演变为如今可抵御网络钓鱼的通行密钥——以及每一步演变的原因。

阅读更多