什么是 2FA?
一句话:登录时除了密码,还需要另一个东西(通常是手机上的 6 位验证码)才能进去。这样即使密码泄露了,攻击者也进不来。下面把原理、各种方式、安全等级讲清楚。
「双因素」指的是哪两类?
所谓「因素」其实是三大类(你只要任选两类就构成 2FA):
- 你知道的东西 — 密码、PIN 码。
- 你拥有的东西 — 手机、硬件密钥、备用恢复码。
- 你本身的特征 — 指纹、Face ID(一般只用于解锁设备,很少作为账号层面的第二因素)。
只有密码是 1 个因素。密码 + 手机上的 6 位验证码就是 2 个因素 — 这就是 2FA。
几种主流 2FA 方式对比
| 方式 | 安全等级 | 适用场景 |
|---|---|---|
| 硬件安全密钥(YubiKey 等) | 最高 | 邮箱、密码管理器、GitHub 管理员 |
| Passkey | 非常高 | 支持的服务:Apple、Google、GitHub |
| 验证器 App(TOTP) | 高 | 几乎所有服务通用 — 推荐首选 |
| 推送通知 | 中 | 服务自带支持时可用 |
| 短信验证码 | 低 | 没有其他选项时的兜底 |
TOTP 验证码是怎么算出来的?
TOTP(Time-based One-Time Password,RFC 6238)是谷歌身份验证器、Authy、2FAA 这些验证器 App 背后的标准算法。原理很简单:
- 开启 2FA 时,服务给你一段密钥(一串 Base32 字符),通常用二维码展示。
- 验证器把这段密钥和当前时间组合,算出一个 6 位数字。
- 每 30 秒数字会变化一次。服务在自己这一端用同样的算法验证你输入的数字是否匹配。
- 密钥不会通过网络发送 — 没有任何东西可以被中间人拦截。
60 秒试用 2FA
2FAA 是免费的网页版 TOTP 验证器,不需要装 App,不需要注册。
常见问题
2FA 到底是什么意思?
2FA 是「Two-Factor Authentication(双因素认证)」的缩写。意思是登录时不光要输密码,还要再提供一个额外的凭证(比如手机上的 6 位验证码、硬件密钥等)。即使密码泄露,攻击者没有第二个因素也进不来。
2FA 和二步验证是一回事吗?
日常使用中是一回事。Google 叫「两步验证」,Discord 和 GitHub 叫「2FA」,PayPal 叫「2-step verification」,本质都是密码之外再加一道验证。
哪种 2FA 方式最安全?
从安全到不安全大致排序:硬件安全密钥(如 YubiKey)> Passkey > 验证器 App(TOTP)> 推送通知 > 短信。短信是最弱的(容易被 SIM 卡欺诈拦截),但有总比没有强。
每个账号都需要开 2FA 吗?
建议为重要账号开启:邮箱、银行、密码管理器、社交账号、GitHub、Discord、绑定了支付的游戏账号等。低价值账号可选。
2FA 能被破解吗?
短信 2FA 可能被 SIM 卡欺诈攻破;验证器 App 的 2FA 可能被仿冒登录页(钓鱼代理)骗取。硬件密钥和 Passkey 因为会校验真实域名,所以能挡住钓鱼。2FA 不是万能的,但能挡住绝大多数随机性攻击。