Verify

双因素认证与两步验证:有什么区别?

区别归结为一个词:因素与步骤。

区别归结为一个词:因素与步骤。双因素身份验证(2FA)要求来自两个不同类别的两项证明,例如密码加上手机上的验证码。两步验证要求两个连续的步骤,但两个步骤可以属于同一类别。因此,所有 2FA 都是两步验证,但并非所有两步验证都是双因素身份验证。

在日常用语中,这两个术语经常互换使用,大多数时候无关紧要。当你分析攻击者实际需要突破什么时,区别就开始重要了。同一类别的两个步骤可能被同一种攻击同时攻破,而两个不同的因素通常不会。

三种认证因素

身份验证证明分为三个类别。一次登录是否属于 "two-factor",完全取决于它是否使用了两个不同的类别。

因素类别含义示例
知识你知道的东西密码、PIN、安全问题
持有你拥有的东西带有 SMS 或应用的手机、硬件安全密钥
固有特征你本身的特征指纹、面部扫描、声纹

密码加指纹是双因素:知识加固有特征。密码加安全问题是两步但单因素,因为两者都属于知识,泄露其一往往也会暴露另一个。

两者如何比较?

双因素身份验证两步验证
核心要求两个不同的因素类别两个连续的步骤
证明是否始终属于不同类型?是,按定义如此不一定
符合条件的示例密码 + 身份验证器验证码密码 + 邮件链接,或密码 + 第二个密码
对单一类型攻击的抵御能力更高,因为一种攻击很少能同时突破两个类别视情况而定;同类别的两个步骤可能共享同一弱点
关系两步验证的严格形式更宽泛、更松散的术语

坦白总结:2FA 是更严格的承诺。两步验证是上位概念,具体的两步流程可能满足也可能不满足 2FA 标准。营销文案常把任何带第二次提示的方案都标为 2FA,这就是两个词变得模糊的原因。如果你想单独了解基础定义,请参阅什么是双因素身份验证

真实场景示例

逐一审视常见的第二步,看看每种实际添加了哪个因素,会很有帮助。

  • SMS 一次性密码。 你输入密码(知识),然后输入发送到手机上的验证码(持有物)。两个不同的因素,因此这是真正的 2FA。该验证码本身是一个一次性密码
  • 身份验证器应用(TOTP)。 密码加上设备生成的滚动六位验证码。知识加持有物,且验证码不经过网络传输,因此不存在被中途拦截的风险。
  • 硬件安全密钥。 密码加上点击 FIDO2 密钥对质询进行签名。知识加持有物,且由于签名绑定到真实站点的源,因此具有防钓鱼能力。
  • 邮件魔术链接作为 "second step." 如果登录已经使用了密码,再向你的邮箱发送确认链接就是第二步。它是否构成第二因素尚有争议:你的邮箱通常受另一个密码保护,因此你可能只是叠加了两个知识因素。这是两步验证不能直接等同于双因素的最典型案例。

最后这个例子就是关键所在。邮件链接感觉像是额外的安全保障,它确实提高了门槛,但如果你的账户密码和邮箱密码在同一次泄露中被曝光,"second step" 几乎没有帮助。持有物或固有特征因素就不会有这个问题。

什么时候这个区别才重要?

对于个人流媒体账户,怎么称呼无关紧要;任何第二步都比没有强。对于管理控制台、银行应用或任何存储他人数据的系统,请坚持使用真正的第二因素(持有物或固有特征),而非第二个知识步骤。第二因素的意义在于打破

常见问题

2FA 和两步验证是同一回事吗?

两者高度重叠,常被当作同义词使用。严格来说,2FA 要求两个不同的因素类别,而两步验证只要求两个连续的步骤,这两个步骤可能属于同一类别。所有 2FA 都是两步验证,但并非所有两步验证都是 2FA。

密码加安全问题算双因素吗?

不算。两者都是知识因素,因此属于两步但单因素。一次数据泄露或少量调查就能同时暴露两者,这就是为什么同类别步骤比真正的第二因素更弱。

哪个更安全?

双因素更安全,前提是两个因素确实属于不同类别。如果两步验证的第二步是持有物或固有因素,它可以同样安全;但如果两步都是知识因素,则安全性较弱。

服务使用哪个术语重要吗?

看实际的第二步是什么,而不是看标签。任何服务都可以把任何东西称为 "2FA." 检查第二步是设备上的验证码、密钥还是生物特征,还是另一个你只需要知道的东西。

如果你要选择如何保护账户流程,最实际的做法是添加一个持有物因素,例如一次性验证码。你可以在什么是 OTP 中了解这些验证码的工作原理,也可以在验证产品中了解 Bird 如何通过 SMS、语音和电子邮件发送和验证它们。

基于同一网络构建。

测试 API 密钥即刻获取。添加付款方式并验证发送者身份后,即可解锁生产环境。

你的下一个创意。
随时连接。