术语表
什么是双因素认证(2FA)— 与两步验证的区别、各方式的强弱
双因素认证(2FA)是在密码之外,再叠加一种「不同种类的证明」来确认本人身份的机制。本文从防御视角讲解它与常被混淆的两步验证的区别、SMS・身份验证器应用(TOTP)・通行密钥各方式的强弱、以及如何选择,并刻意不写攻击手法。
「就算我的密码泄露了,单凭这一点也没人能进来」——这正是双因素认证(2FA)带来的保障。下面梳理它与常被混淆的两步验证的区别,以及各方式的对比(不写攻击手法)。
「两个因素」与「两个步骤」——区别在哪
两个词看着相似,但只要抓住目标就很简单。认证因素分为三个类别:
双因素认证(2FA)混合两个不同的类别(例如密码 = 知识 + 身份验证器应用 = 持有)。要点是:即使一个被攻破,另一个类别仍然屹立,攻击者也进不来。相比之下,两步验证(2SV)只意味着「确认两次」,两个步骤可以是同一类别(密码 + 安全问题是两个步骤但不是两个因素)。所以若真想要强度,关键在于混合不同的类别。
方式的强弱:归根结底看「能不能对钓鱼网站出示」
即便开启了 2FA,强度也会因方式而大不相同。决定性因素是:你会不会一不小心把「证明」交给假网站。
强 ── 通行密钥 / 物理密钥(FIDO2)
签名绑定到域名——从结构上无法对假网站出示(抗钓鱼)
中 ── 身份验证器应用(TOTP)
比 SMS 强,但验证码要由人来读——所以可能被交给假网站
弱 ── SMS / 邮件验证码
易受 SIM 交换和中继攻击;但仍强于仅有密码
弱:SMS / 邮件验证码
- 由人读取并输入验证码——所以可能被直接交给假网站
- 暴露于 SIM 交换和中间人(AiTM)钓鱼之下
- 但仍明显强于仅有密码(远胜于没有)
强:通行密钥 / 物理密钥(FIDO2)
- 签名绑定到网站的域名——不可能对假网站出示
- 甚至能抵御中间人钓鱼(抗钓鱼 MFA)
- 身份验证器应用(TOTP)居于两者之间——比 SMS 强,但仍可能对假网站出示
本站的观点:先开启,再转向『交不出去』的方式
2FA 最常见的失败,是在「哪个最强」上想太多,结果一个都没开。优先级很清楚——先在每个账户上开启某种 2FA,然后把王国之钥级别的账户(邮箱、域名、支付)提升到无法对钓鱼网站出示的方式(通行密钥)。本站不把「靠小心识破假网站」算作一种防御策略。与其依赖人的警觉,不如倾向那些在结构上就无法把证明交给假网站的方式。
接下来阅读
- 术语:什么是一次性密码(OTP)(身份验证器应用验证码的真面目・TOTP/HOTP/SMS)· 什么是通行密钥(无法交出去的最强一档)
- 术语:什么是钓鱼(理解瞄准 2FA 的中间人 AiTM 攻击)
- 入门:如何正确选择 MFA(在实务中选定方式)
FAQ
Q双因素认证和两步验证是同一回事吗?
严格来说不是。双因素认证(2FA)会组合两种不同的「因素」——知识(密码)、持有(手机、密钥)、生物(指纹、面容)。而两步验证(2SV)只是指「确认两次」,这两步未必是不同的因素(例如密码加安全问题都属于知识——是两步但不是两个因素)。实践中二者大量重叠,但目标是混合不同的类别,这样攻破一个也进不来。
Q基于 SMS 的 2FA 还值得用吗?
值得。它明显强于仅有密码,能挡下大多数因密码重用或泄露而来的账户被盗。但 SMS 是 SIM 交换和中间人钓鱼的首要目标,作为一种方式它属于最弱的一档。正确的理解是「远胜于没有,但不是终点」。在条件允许处,请迁移到身份验证器应用(TOTP)或通行密钥。
Q我该选哪种方式?
经验法则是:越难对钓鱼网站出示的方式越强。从强到弱:通行密钥/物理安全密钥(FIDO2)> 身份验证器应用验证码(TOTP)> SMS/邮件。对于「王国之钥」级别的账户——邮箱、你的域名、支付——请优先选用通行密钥这类抗钓鱼方式。务实的做法是:先在所有账户开启某种 2FA,再把最重要的账户提升到最强方式。