什么是多因素身份验证(MFA)?

多因素身份验证会检查一个人的身份的多个方面(而不只是检查一个),然后再允许其访问应用程序或数据库。它比单因素身份验证安全得多。

学习目标

阅读本文后,您将能够:

  • 定义多因素身份验证(MFA)
  • 了解为什么 MFA 比仅使用密码更安全
  • 探索不同的身份验证因素

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是 MFA(多因素身份验证)?

多因素身份验证(MFA)是一种验证用户身份的方式,比传统的用户名与密码组合更加安全。MFA 通常包含一个密码,但同时也包含一个或两个其他身份验证因素。双因素身份验证 (2FA) 是 MFA 的一种。

MFA 是身份和访问管理 (IAM) 的重要组成部分,通常在单点登录 (SSO) 解决方案中实施。

什么是身份验证因素?

在向用户授予访问软件应用程序或网络的权限之前,身份验证系统会评估用户专有的特征,以确保他们是所声称的身份。这些特征也称为“身份验证因素”。

用途最广的三大身份验证因素是:

  1. 知识:用户知道什么
  2. 所有物:用户拥有什么
  3. 固有特质:用户是什么

MFA 是指任何使用两个或多个身份验证因素的方法。如果仅使用两个验证因素,MFA 也可指代双因素身份验证或两步验证。三因素身份验证是 MFA 的另一种形式。

这三种身份验证因素的有哪些现实示例?

  • 知识(用户知道什么):此因素是应该只有一个用户掌握的信息,如用户名和密码组合。其他类型的知识因素包括安全提示问题、身份证号码和社会安全号码等。甚至“秘密握手”也可以是用户的知识。
  • 所有物(用户拥有的东西):此因素是指拥有物理令牌、设备或密钥。关于此身份验证因素的最基本的示例,是进入房屋的实体钥匙。在计算环境中,物理钥匙可以是密钥卡、U 盘甚至智能手机。许多现代 MFA 系统会向用户的手机发送临时短信码,要求他/她们输入代码才能访问其帐户。这表明用户拥有其他人没有的手机,从而帮助确定其个人身份(除非攻击者劫持了用户的 SIM 卡)。
  • 固有特质(用户的本质属性):这是指人体的物理属性。这种身份验证因素的最基本形式是通过视觉或声音来辨人的能力。人类在日常互动中会不断使用这种能力。另一个验证固有特质的示例是,对照身份证上的照片核实一个人的外表。在计算环境中,此类身份验证因素的一个示例是面部 ID,许多现代智能手机都提供这项目功能。其他方法可能包括指纹扫描、视网膜扫描和验血。

为什么 MFA 比单因素身份验证更安全?

单因素身份验证仅使用上述因素之一来识别一个人的身份。单因素身份验证的最常见示例是要求提供用户名和密码组合。

单因素身份验证的问题在于,攻击者只需要以一种方式成功攻击用户即可假冒用户。如果有人窃取了用户的密码,则用户的帐户已经受损。相比之下,如果用户实施了 MFA,则攻击者访问其帐户所需要的不仅仅是密码。例如,他们可能还需要从用户那里窃取实体物品,而这要困难得多。

此问题也适用于其他形式的单因素身份验证。想象一下,如果在取钱时银行仅要求提供借记卡(所有物因素),而不需要提供借记卡和 PIN。盗贼只需要窃得一个人的借记卡,就能从其帐户中盗取资金。

务必记住,只有使用不同的因素才能确保 MFA 的安全,而不是多次使用同一因素。

假设一个应用程序仅提示用户输入密码,而另一个应用程序则提示用户输入密码和安全提示问题答案。哪个应用程序更加安全?

从技术上讲,答案是两者都不:两个应用程序都仅依赖一个身份验证因素,即知识因素。与仅需要密码和一些安全提示问题的应用程序相比,需要密码和物理令牌或指纹扫描的应用程序更加安全。

哪种形式的 MFA 最有效?

这是一个与背景信息高度相关的问题。通常,任何形式的多因素身份验证都比单因素身份验证安全得多。

话虽如此,某些形式的 MFA 已被证明容易受到复杂攻击方法的攻击。在一个真实世界的例子中,攻击者向员工发送 SMS 网络钓鱼消息,指向组织单点登录服务的虚假登录页面。如果用户在这个虚假页面中输入用户名和密码,则会发生以下步骤:

  1. 攻击者在组织的真实登录页面上使用盗取的用户名和密码。
  2. 真实的登录页面试图通过向真实用户的手机发送一个临时代码来验证另一个身份验证因素——拥有的物品。
  3. 攻击者将用户重定向到另一个虚假页面,要求他们输入临时代码。
  4. 如果用户这样做,攻击者就会在真实登录页面上使用该代码并获得对该帐户的访问权限。

相比之下,另一种验证“拥有的物品”的方法——USB 安全令牌,不会受到这种特定攻击的影响。如果所有用户都获得了唯一的安全令牌来插入他们的计算机,并且必须物理激活这些令牌才能进行身份验证,那么拥有某人的用户名和密码的攻击者将无法访问帐户,除非他们窃取了该人的计算机。使用固有特质验证身份也是如此,例如用户的指纹或面部扫描。

这是否意味着安全令牌和指纹扫描比一次性密码更安全?在网络钓鱼的情况下,是的。但是在选择 MFA 方法之前,组织应该评估其特定的安全风险和需求。同样,任何形式的 MFA 都比单因素身份验证更安全,并且代表组织的安全之旅向前迈出了重要一步。

还有哪些其他身份验证因素?

除上面列出的三个主要因素外,一些安全行业成员还提议或实施了其他身份验证因素。尽管很少实施,但这些身份验证因素包括:

位置:用户登录时所在的位置。例如,如果一家公司位于美国,并且所有员工都在美国工作,那么它可以评估员工的 GPS 位置并拒绝来自另一个国家/地区的登录。

时间:用户登录的时间,通常与其他登录和位置有关。如果用户似乎从一个国家/地区登录,几分钟后又试图从另一个国家/地区进行后续登录,则这些请求不太可能是合法的。系统可能也会拒绝正常工作时间之外的登录,尽管这更像是安全策略,而不是身份验证因素。

如果这些都视为额外的身份因素(这有待商榷),那么四因素身份验证和五因素身份验证在技术上是可行的,两者都属于多因素身份验证的范畴。

必须权衡采取如此强有力的安全措施给用户造成的代价,因为过分严格的安全措施会促使用户规避官方政策。

用户如何为其帐户实施 MFA?

如今,许多消费者 Web 服务都提供 MFA。大多数具有 MFA 的应用程序都提供某种形式的 2FA,要求用户在登录时使用智能手机。浏览各个应用程序中的安全设置,即可查看是否可以激活 2FA。此外,Cloudflare 允许所有 Cloudflare 用户为其帐户实施 2FA

企业如何实施 MFA?

建议使用 SSO 解决方案来实施 MFA。SSO 提供单一的场所,以便在所有应用程序中实施 MFA,但并非所有应用程序都一一支持 MFA。

Cloudflare Zero Trust 与支持 2FA 的 SSO 供应商相集成。Cloudflare 能够控制用户能够执行的操作,以及为远程工作和办公室受控环境中的员工实施安全策略,从而保护公司的网站和云应用程序。