Skip to content
密码管理器中的双因素认证

密码管理器中的双因素认证 ​

双因素认证(2FA) 意味着用第二份证据来证明你就是你,而不只是靠密码。最常见的形式是认证器应用生成的轮换六位码 — TOTP — 它基于由共享种子计算出的、基于时间的一次性密码。

别扭之处在于,种子和验证码住在与你密码 不同的另一个应用 里。本文解释其中的原理、为什么把种子存进密码管理器才是合理安排,以及 passkeys 如何改变这一切。

2FA 如何工作 ​

  1. 当你在某个网站上启用 2FA 时,它会给你一个 秘密 — 通常是一个包含 otpauth:// URI 的二维码。
  2. 你把这个秘密扫描或粘贴进某个认证器。
  3. 每 30 秒,认证器会根据该秘密加上当前时间计算出一个六位码:HMAC(secret, floor(time/30))。
  4. 网站计算出同一个值。如果一致,你就进去了。

这个码一分钟后即告失效,所以它有效。但那个 秘密 实际上就是一个永久密码 — 任何拿到它的人都可以永远生成有效验证码。

抉择:认证器应用、SMS 还是 passkey ​

方式可被钓鱼服务器被攻破的影响备注
SMS 验证码是无易受 SIM 换卡和号码回收攻击;仍好过没有
TOTP 应用 / 验证码是(种子被窃)无可离线工作;秘密必须受到保护
硬件密钥(FIDO2)否无最强;需要第二台设备或密钥作为备份
Passkey否无无物可输,无物可偷;见下文

硬件密钥和 passkeys 是仅有的两种不可被钓鱼的选项,因为凭据从不离开你的设备,且签名被绑定到请求的来源。

为何 TOTP 种子应当放进你的保险库 ​

常见的建议是「让认证器应用与密码管理器分开」,其合理依据是:一个被攻破的应用不该解锁所有东西。实践中这会造成更糟的问题:密码和它的第二因素分散在不同地方,于是缺少其中一样就无法从另一样恢复,人们最终不得不反复重新注册 2FA。

更好的思路是:把 TOTP 种子视为 凭据的一部分,并用同样的控制手段来保护它。如果你的保险库在一道主密码之后解锁,最好再加一道生物识别,那么这个种子就不会比它所保护的密码更弱 — 而且它总是在你需要它的地方。

大多数管理器都直接支持这一点:粘贴秘密、粘贴 otpauth:// URI,或直接把二维码扫进条目。

在 OpenKey 中,把认证器秘密或 otpauth URI 加到登录条目,或从网站的 2FA 设置界面扫描二维码。保险库一解锁,验证码就会出现;在平台支持的地方,系统 Autofill 提供方或浏览器扩展可以填充它们。在终端中,CLI 可以直接读取:

bash
openkey totp "GitHub" -c     # copy the live code
openkey totp "GitHub" -w     # watch it refresh until you stop it

在账户上设置 2FA ​

  1. 登录并打开该网站的安全设置。
  2. 选择认证器应用,然后 扫描二维码 或手动输入秘密。
  3. 把那个秘密的副本存进与用户名、密码相同的那个保险库条目。
  4. 输入当前验证码以确认。
  5. 把该网站的 恢复代码 存在你掌控的某个地方 — 同一保险库中的一条加密笔记,或一份离线存放的纸质副本。

第 3 步是人们会跳过的一步,而它恰恰是在你日后换手机时救你的那一步。

为整个账户强制执行 ​

一旦有几个登录项启用了 2FA,就把它当作默认做法:

  • 按站点保存恢复方式,因为每个站点处理方式都不同。
  • 在站点允许时优先用 两个认证器:手机和桌面,都从保险库中取。丢掉一台设备,另一台仍然可用。
  • 先在邮箱上启用 2FA。 它是那个能重置其他所有账户的账户。
  • 看看有没有硬件密钥或 passkey 选项,并把它与 TOTP 并列添加而非取代它,直到你有信心能够恢复。

2FA 在哪里出错 ​

手机丢失且没有备份。 没有第二个认证器、没有恢复代码、没有硬件密钥,账户就没了。这是 2FA 最常见的单点失效,也是恢复代码之所以重要的原因。

种子留在了截图里。 被拍下来的二维码就是一个明文凭据。把种子存进你的保险库,然后删掉那张图片。

种子留在了会同步的笔记文件里。 云端笔记是以明文同步的。如果你确实会用笔记来保存恢复材料,它也应当放在加密的保险库内。

从错误的应用输入轮换验证码。 有些认证器允许你重排账户顺序,这会导致验证码被输入到错误的站点上。这不是安全问题 — 是支持问题。

以为有 2FA 就可以放心复用密码。 并不是。如果你在两个站点复用同一密码而只有一个启用了 2FA,另一个仍离被攻破只差一步。

Passkeys 如何改变 2FA ​

Passkey 是移除了第二因素,而不是强化它。私钥由设备的安全硬件保护,且只有在生物识别或 PIN 校验之后才能使用,于是「你知道的东西」和「你是谁」塌缩为同一个有硬件背书的动作。没有码可偷,没有种子可泄露,也没有 SIM 可换。

这就是 passkeys 成为行业方向的原因:它们是少数既 更安全 又 更省事 的凭据。保留 2FA 的剩余理由是覆盖面 — passkeys 还不是每个网站都有,所以在你保险库里留一个 TOTP 种子,作为那些尚未跟上的网站的合理过渡方案是值得的。

关于 passkeys 如何工作的更多内容 · OpenKey 如何处理它们

搜索数据说明 ​

2FA 是网络上与安全相邻的查询词中规模最大的一批之一。在头部词条的层面上,「2fa」吸引的关注度约为「password manager」的 67% — 高于「passkey」的 42% 和「password generator」的 36%。

人们在「two-factor authentication」上添加的细化词(Google Trends,全球范围,过去 12 个月):

相关查询相对关注度
what is two-factor authentication100
two-factor authentication app14
two-factor authentication code12
two-factor authentication google8
enable two-factor authentication7
two-factor authentication iphone5
two-factor authentication examples2

「what is two-factor authentication」同时是这个簇中上升最快的词,同比上涨约 550%。一个定义类查询上升最快,是受众还很新的明确信号 — 这正是本文以原理开头、而非以建议开头的原因。

Method: Google Trends,全球范围,过去 12 个月,2026 年九月提取。数字为归一化的相对关注度(0–100),而非搜索量。

一分钟版本 ​

TOTP 验证码由一个与网站共享的永久秘密计算而来,所以那个秘密其实就是一个密码,值得同等的保护。把它存进与用户名、密码相同的那个加密保险库条目,保留第二个认证器,把网站的恢复代码离线保存,先在你的邮箱账户上启用 2FA,并在任何提供 passkey 的地方都加上一个。

下一步 ​