多因素认证备忘单¶
简介¶
多因素认证 (MFA) 或双因素认证 (2FA) 是指用户需要提供不止一种类型的凭证才能在系统上进行认证。凭证(或因素)有五种不同类型,可以使用它们的任何组合,但在实际应用中,只有前三种在Web应用程序中常见。这五种类型如下:
因素 | 示例 |
---|---|
你所知道的 | 密码和PIN码, 安全问题 |
你所拥有的 | OTP 令牌, U2F 令牌, 证书,智能卡, 电子邮件, 短信和电话 |
你所具备的 | 指纹、面部识别、虹膜扫描 |
你所处的地点 | 源IP地址, 地理位置, 地理围栏 |
你所做的 | 行为画像, 键盘和鼠标动态, 步态分析 |
需要注意的是,要求同一认证因素的多个实例(例如同时需要密码和PIN码)不构成MFA,并且提供的额外安全性极小。所使用的因素应相互独立,且不应能够被相同的攻击所破坏。尽管以下部分讨论了各种MFA类型的缺点和弱点,但在许多情况下,这些只与针对性攻击相关。任何MFA都比没有MFA好。
优点¶
用户帐户在应用程序上最常见的被攻破方式是通过弱密码、重复使用或被盗的密码。尽管应用程序上实施了任何技术安全控制,用户仍有可能选择弱密码,或在不同应用程序上使用相同的密码。作为开发人员或系统管理员,应该假定用户的密码在某个时候会被泄露,系统应设计为能够防御这种情况。
MFA是迄今为止防御大多数密码相关攻击的最佳方法,包括暴力破解、撞库攻击和密码喷洒攻击。微软的分析表明,MFA可以阻止99.9%的账户泄露。
缺点¶
MFA最大的缺点是增加了管理员和最终用户的管理复杂性。许多技术水平较低的用户可能会发现配置和使用MFA很困难。此外,还会遇到许多其他常见问题:
- 需要用户具备特定硬件的MFA类型可能会带来显著的成本和管理开销。
- 如果用户丢失或无法使用其其他因素,他们可能会被锁定在帐户之外。
- MFA为应用程序引入了额外的复杂性。
- 许多MFA解决方案为系统增加了外部依赖,这可能引入安全漏洞或单点故障。
- 为允许用户绕过或重置MFA而实施的流程可能被攻击者利用。
- 要求MFA可能会阻止部分用户访问应用程序。
快速建议¶
MFA在应用程序中实施的具体时间和方式将根据多种不同因素而异,包括应用程序的威胁模型、用户的技术水平以及对用户的管理控制级别。这些需要根据每个应用程序的情况进行考虑。
然而,以下建议通常适用于大多数应用程序,并提供了一个初步的考虑起点。
实施MFA¶
MFA是一项关键的安全控制措施,建议所有应用程序都应实施。以下部分将提供关于如何实施MFA以及应考虑的因素的指南。
监管和合规要求¶
许多行业和国家都有要求使用MFA的法规。这在金融和医疗保健领域尤为常见,并且通常是为了遵守欧盟的《通用数据保护条例》(GDPR) 而要求的。在实施MFA时,考虑这些要求非常重要。
何时需要MFA¶
在应用程序中要求MFA最重要的地方是用户登录时。然而,根据可用功能的不同,对执行敏感操作也可能需要MFA,例如:
- 更改密码或安全问题。
- 更改与帐户关联的电子邮件地址。
- 禁用MFA。
- 将用户会话提升为管理会话。
如果应用程序为用户提供了多种认证方式,这些方式都应要求MFA,或实施其他保护措施。一个常见被忽视的领域是,如果应用程序提供了一个可用于登录的独立API,或者有一个相关的移动应用程序。
改善用户体验¶
基于风险的认证¶
频繁使用MFA登录会给用户带来额外负担,并可能导致他们禁用应用程序上的MFA。基于风险的认证可用于减少MFA提示的频率,仅在用户执行被认为是高风险的操作时才要求MFA。例如:
- 当用户从新设备或新位置登录时,要求MFA。
- 当用户从被认为是高风险的位置登录时,要求MFA。
- 允许公司IP范围(或使用地理位置作为附加因素)。
通行密钥¶
通行密钥基于FIDO2标准,是一种新型MFA,结合了所拥有和所知道或所具备的认证特征。用户需要拥有一个物理设备(例如手机),并输入PIN码或使用生物识别认证进行认证。用户的设备随后生成一个用于与服务器认证的加密密钥。这是一种非常安全的MFA形式,能够抵抗网络钓鱼攻击,同时对用户而言也无摩擦感。
登录尝试失败¶
当用户输入密码,但未能使用第二个因素进行认证时,这可能意味着以下两种情况之一:
- 用户丢失了第二个因素,或者无法使用它(例如,他们没有手机,或者没有信号)。
- 用户的密码已被泄露。
发生这种情况时,应采取以下几个步骤:
- 提示用户尝试另一种MFA形式。
- 允许用户尝试重置其MFA。
- 通知用户登录尝试失败,并鼓励他们在不识别该尝试时更改密码。
- 通知应包含登录尝试的时间、浏览器和地理位置。
- 这应在他们下次登录时显示,并可选择同时通过电子邮件发送给他们。
重置MFA¶
实施MFA的最大挑战之一是处理忘记或丢失附加因素的用户。这可能通过多种方式发生,例如:
- 在未备份数字证书的情况下重新安装工作站。
- 擦除或丢失手机而未备份OTP代码。
- 更改手机号码。
为了防止用户被锁定在应用程序之外,需要有一种机制,让他们在无法使用现有MFA时重新获得账户访问权限;然而,同样关键的是,这不应为攻击者提供绕过MFA并劫持账户的方式。
没有明确的“最佳方式”来做到这一点,何种方法合适将根据应用程序的安全性以及对用户的控制级别而大相径庭。适用于所有员工彼此了解的企业应用程序的解决方案,对于拥有全球数千用户的公开应用程序来说,可能不切实际。每种恢复方法都有其自身的优缺点,需要在应用程序的背景下进行评估。
可能的方法包括:
- 在用户首次设置MFA时,向其提供多个一次性恢复代码。
- 要求用户设置多种类型的MFA(例如数字证书、OTP核心和用于短信的手机号码),这样他们就不太可能同时失去对所有这些的访问权限。
- 将一次性恢复代码(或新的硬件令牌)邮寄到用户的注册地址。
- 要求用户联系支持团队,并建立严格的流程来验证其身份。
- 要求另一个受信任的用户为其担保。
考虑使用第三方服务¶
有许多第三方服务提供MFA即服务。对于没有资源自行实施MFA的应用程序,或者对MFA要求高保障水平的应用程序,这可能是一个不错的选择。然而,重要的是要考虑第三方服务的安全性及其使用后果。例如,如果第三方服务被攻破,攻击者可能绕过所有使用该服务的应用程序的MFA。
你所知道的¶
基于知识的认证是最常见的认证类型,它基于用户所知道的信息——通常是密码。这种因素的最大优点是它对开发人员和最终用户的要求都非常低,因为它不需要任何特殊硬件,也不需要与其他服务集成。
密码和PIN码¶
密码和PIN码是因其实现简单而最常见的认证形式。认证备忘单提供了如何实施强密码策略的指南,而密码存储备忘单则提供了如何安全存储密码的指南。大多数多因素认证系统都会使用密码,以及至少一个其他因素。
优点¶
- 简单且易于理解。
- 每个认证框架都原生支持。
- 易于实现。
缺点¶
- 用户容易选择弱密码。
- 密码常在不同系统间重复使用。
- 易受网络钓鱼攻击。
安全问题¶
根据NIST SP 800-63,安全问题不再被视为可接受的认证因素。账户恢复只是另一种认证方式,因此其安全性不应弱于常规认证。
优点¶
- 除了密码中已有的优点,没有其他优点。
缺点¶
- 不再被认为是可接受的认证因素。
- 问题通常有容易猜到的答案。
- 问题的答案通常可以从社交媒体或其他来源获取。
- 必须仔细选择问题,以确保用户多年后仍能记住答案。
- 易受网络钓鱼攻击。
你所拥有的¶
基于拥有的认证是基于用户持有进行认证所需的物理或数字物品。这是最常见的MFA形式,常与密码结合使用。最常见的基于拥有的认证类型是硬件和软件令牌,以及数字证书。如果实施得当,远程攻击者将更难以攻破;然而,它也给用户带来了额外的管理负担,因为他们在使用认证因素时必须随身携带。
一次性密码令牌¶
一次性密码(OTP)令牌是一种基于拥有的认证形式,要求用户提交不断变化的数字代码进行认证。其中最常见的是基于时间的一次性密码(TOTP)令牌,它可以是硬件或软件形式。
硬件OTP令牌¶
硬件OTP令牌生成不断变化的数字代码,必须在认证时提交。其中最著名的是RSA SecureID,它生成一个每60秒变化一次的六位数字。
优点¶
- 由于令牌是独立的物理设备,攻击者几乎不可能远程攻破它们。
- 使用令牌不需要用户拥有手机或其他设备。
缺点¶
- 向用户部署物理令牌既昂贵又复杂。
- 如果用户丢失了令牌,购买和邮寄新令牌可能需要大量时间。
- 某些实现需要后端服务器,这可能引入新的漏洞以及单点故障。
- 被盗令牌可以在没有PIN码或设备解锁码的情况下使用。
- 易受网络钓鱼攻击(尽管有效期短)。
软件OTP令牌¶
比硬件令牌更便宜、更简单的替代方案是使用软件生成基于时间的一次性密码(TOTP)代码。这通常涉及用户在其手机上安装TOTP应用程序,然后扫描Web应用程序提供的二维码以获取初始种子。身份验证器应用程序随后每60秒生成一个六位数字,其方式与硬件令牌大致相同。
大多数网站使用标准化的TOTP令牌,允许用户安装任何支持TOTP的身份验证器应用程序。然而,少数应用程序使用自己的变体(例如赛门铁克),这要求用户安装特定的应用程序才能使用该服务。应避免这种情况,而倾向于采用基于标准的方法。
优点¶
- 没有物理令牌大大降低了实施系统的成本和管理开销。
- 当用户失去对其TOTP应用程序的访问权限时,无需向其邮寄物理令牌即可配置新的应用程序。
- TOTP被广泛使用,许多用户已经安装了至少一个TOTP应用程序。
- 只要用户的手机有屏幕锁定,即使攻击者偷走手机也无法使用代码。
缺点¶
- TOTP应用程序通常安装在移动设备上,这些设备容易受到攻击。
- TOTP应用程序可能安装在用于认证的同一移动设备(或工作站)上。
- 用户可能不安全地存储备份种子。
- 并非所有用户都有可用于TOTP的移动设备。
- 如果用户的移动设备丢失、被盗或没电,他们将无法认证。
- 易受网络钓鱼攻击(尽管有效期短)。
通用第二因素¶
硬件U2F令牌
通用第二因素 (U2F) 是一种USB/NFC硬件令牌标准,它实现了基于挑战-响应的认证,而不是要求用户手动输入代码。这通常通过用户按下令牌上的按钮,或将其轻触其NFC阅读器来完成。最常见的U2F令牌是YubiKey。
优点¶
- U2F令牌能够抵抗网络钓鱼,因为私钥永远不会离开令牌。
- 用户只需按下按钮,无需输入代码。
- 由于令牌是独立的物理设备,攻击者几乎不可能远程攻破它们。
- U2F被许多主流网页浏览器原生支持。
- U2F令牌无需用户拥有手机或其他设备即可使用。
缺点¶
- 与硬件OTP令牌一样,使用物理令牌会带来显著的成本和管理开销。
- 被盗令牌可以在没有PIN码或设备解锁码的情况下使用。
- 由于令牌通常通过USB连接到工作站,用户更容易忘记它们。
证书¶
数字证书是存储在用户设备上的文件,在认证时与用户密码一同自动提供。最常见的类型是X.509证书,通常称为客户端证书。所有主流Web浏览器都支持证书,一旦安装,用户无需进一步交互。证书应与个人用户帐户关联,以防止用户尝试对其他帐户进行认证。
优点¶
- 无需购买和管理硬件令牌。
- 一旦安装,证书对用户来说非常简单。
- 证书可以集中管理和撤销。
- 抵抗网络钓鱼。
缺点¶
- 使用数字证书需要后端私钥基础设施(PKI)。
- 安装证书对用户来说可能很困难,尤其是在高度受限的环境中。
- 执行SSL解密的企业代理服务器将阻止证书的使用。
- 证书存储在用户的工作站上,因此如果其系统被攻破,证书可能会被盗。
智能卡¶
智能卡是信用卡大小的卡片,带有包含用户数字证书的芯片,通过PIN码解锁。它们通常用于操作系统认证,但很少用于Web应用程序。
优点¶
- 被盗的智能卡在没有PIN码的情况下无法使用。
- 智能卡可在多个应用程序和系统中使用。
- 抵抗网络钓鱼。
缺点¶
- 管理和分发智能卡与硬件令牌具有相同的成本和开销。
- 智能卡不被现代浏览器原生支持,因此需要第三方软件。
- 尽管大多数商用笔记本电脑内置智能卡读卡器,但家用系统通常没有。
- 智能卡的使用需要后端PKI。
短信和电话¶
短信或电话可用于向用户提供必须作为附加因素提交的一次性代码。由于这些方法带来的风险,不应使用它们来保护存储个人身份信息(PII)或存在财务风险的应用程序,例如医疗保健和银行。根据NIST SP 800-63,包含PII的应用程序不允许使用这些因素。
优点¶
- 相对简单易实现。
- 要求用户将其帐户关联至手机号码。
缺点¶
- 要求用户拥有移动设备或座机。
- 要求用户有信号或互联网连接才能接收电话或消息。
- 发送电话和短信可能产生费用,需要防范攻击者请求大量消息以耗尽资金。
- 易受SIM卡交换攻击。
- 短信可能在用户进行认证的同一设备上接收。
- 易受网络钓鱼攻击。
- 设备锁定时,短信可能会被预览。
- 短信可能被恶意或不安全的应用程序读取。
电子邮件¶
电子邮件验证要求用户输入发送到其电子邮件地址的代码或点击链接。关于电子邮件是否构成MFA的一种形式存在争议,因为如果用户在其电子邮件帐户上未配置MFA,则它仅需要知道用户的电子邮件密码(这通常与他们的应用程序密码相同)。然而,为了完整性,此处仍将其包含在内。
优点¶
- 非常容易实现。
- 无需独立硬件或移动设备。
缺点¶
- 完全依赖于电子邮件帐户的安全性,而该帐户通常缺乏MFA。
- 电子邮件密码通常与应用程序密码相同。
- 如果用户的电子邮件首先被攻破,则不提供任何保护。
- 电子邮件可能在用户进行认证的同一设备上接收。
- 易受网络钓鱼攻击。
你所具备的¶
基于内在的认证是基于用户的物理属性。这在Web应用程序中不太常见,因为它要求用户具备特定硬件,并且在隐私方面通常被认为是最具侵入性的。然而,它常用于操作系统认证,也用于某些移动应用程序。
生物识别¶
常见的生物识别类型包括:
- 指纹扫描
- 面部识别
- 虹膜扫描
- 语音识别
优点¶
- 实施良好的生物识别很难被欺骗,需要有针对性的攻击。
- 对用户来说快速便捷。
缺点¶
- 用户需要手动注册。
- 通常需要定制(有时昂贵)的硬件来读取生物识别数据。
- 隐私问题:必须存储用户的敏感物理信息。
- 如果被攻破,生物识别数据难以更改。
- 硬件可能容易受到额外攻击向量的影响。
你所处的地点¶
基于位置的认证是基于用户的物理位置。有时有人认为,在决定是否需要MFA时会使用位置信息(如上文所述),但这实际上与将其视为一个独立的因素是一样的。这方面的两个突出例子是Microsoft Azure中可用的条件访问策略,以及BitLocker中的网络解锁功能。
源IP地址¶
用户连接的源IP地址可以用作一个因素,通常采用基于允许列表的方法。这可以基于静态列表(如公司办公IP范围)或动态列表(如用户之前认证过的IP地址)。
优点¶
- 对用户来说非常容易。
- 管理员配置和管理工作量极小。
缺点¶
- 如果用户的系统被攻破,则不提供任何保护。
- 不提供任何针对恶意内部人员的保护。
- 必须仔细限制受信任的IP地址(例如,如果开放的访客Wi-Fi使用公司主IP范围)。
地理位置¶
不使用用户的精确IP地址,而是可以使用IP地址注册的地理位置。这不如精确IP地址精确,但在IP地址不静态的环境中可能更可行。常见的用法是,当认证尝试来自用户常用国家/地区之外时,要求提供额外的认证因素。
优点¶
- 对用户来说非常容易。
缺点¶
- 如果用户的系统被攻破,则不提供任何保护。
- 不提供任何针对恶意内部人员的保护。
- 攻击者通过获取受信任国家或位置的IP地址,可以轻易绕过此防御。
- 隐私功能,例如Apple的iCloud专用代理和VPN,可能会降低其准确性。
地理围栏¶
地理围栏是地理位置的一种更精确的版本,它允许用户定义一个特定区域,在该区域内他们被允许进行认证。这常用于移动应用程序中,用户的位置可以通过GPS等地理定位硬件高精度地确定。
优点¶
- 对用户来说非常容易。
- 提供针对远程攻击者的高度保护。
缺点¶
- 如果用户的系统被攻破,则不提供任何保护。
- 不提供任何针对恶意内部人员的保护。
- 对物理上接近受信任位置的攻击者不提供任何保护。
你所做的¶
基于行为的认证是基于用户的行为,例如他们打字、移动鼠标或使用移动设备的方式。这是最不常见的MFA形式,并与其他因素结合使用以提高用户身份的保障级别。它也是最难实现的,可能需要特定硬件以及大量数据和处理能力来分析用户的行为。
行为画像¶
行为画像是基于用户与应用程序交互的方式,例如他们登录的时间、使用的设备以及他们在应用程序中的导航方式。当与基于风险的认证以及用户和实体行为分析(UEBA)系统结合使用时,这在Web应用程序中正迅速变得越来越常见。
优点¶
- 无需用户交互。
- 可用于持续认证用户。
- 与其他因素结合良好,以提高用户身份的保障级别。
缺点¶
- 行为画像的早期实现通常不准确,并导致大量误报。
- 需要大量数据和处理能力来分析用户行为。
- 在用户行为可能频繁变化的环境中,可能难以实现。
键盘和鼠标动态¶
键盘和鼠标动态是基于用户打字和移动鼠标的方式。例如,按键之间的时间、按键和释放之间的时间,以及鼠标的速度和加速度。这在很大程度上是理论性的,并未在实践中广泛使用。
优点¶
- 无需任何额外硬件即可使用。
- 无需用户进行任何额外交互即可使用。
- 可用于持续认证用户。
- 可用于检测非用户本人正在使用系统的情况。
- 可用于检测用户处于胁迫状态的情况。
- 可用于检测用户不适合使用系统的情况。
缺点¶
- 作为独立因素使用时,其准确性可能不足。
- 可能被AI或其他高级攻击方式欺骗。
步态分析¶
步态分析是基于用户使用摄像头和传感器行走的方式。它们常用于物理安全系统,但并未在Web应用程序中广泛使用。移动设备应用程序可能能够利用加速度计检测用户的步态并将其用作附加因素,但这在很大程度上仍是理论性的。
优点¶
- 非常难以欺骗。
- 无需用户进行任何额外交互即可使用。
缺点¶
- 需要特定硬件才能实现。
- 在物理安全系统之外的使用尚未经过广泛测试。
自适应或基于风险的认证¶
自适应(或基于风险的)认证根据登录尝试的上下文动态调整认证要求。这种技术通过仅在风险升高时应用额外的验证步骤,有助于改善用户体验,同时增强安全性。
用于判断风险的常见信号包括:
- 地理位置和IP信誉
- 设备指纹识别
- 访问时间(例如,凌晨3点登录)
- 行为生物识别(例如,打字速度或鼠标移动)
- 已知被泄露的凭证
如果检测到风险,系统可能会:
- 提示提供附加因素(例如,OTP)
- 强制重新认证
- 拒绝访问并触发警报或帐户保护流程
这种方法在现代认证系统中被广泛使用,以平衡可用性和安全性。然而,开发人员必须确保风险信号无法被欺骗,并且备用机制不弱于主要的MFA方法。
示例用例:用户从常用位置的可信设备登录——无需额外提示。但如果他们从一个新国家使用Tor出口节点登录,系统会要求短信验证或触发帐户锁定,直到进一步验证。