2FA 网站是否会通过确认正确的密码猜测来泄露信息?

信息安全 密码 密码策略 密码破解 多因素
2021-08-17 09:05:17

这是我对这个问题的相对外行的看法。

许多网站将多因素身份验证 (MFA) 吹捧为极大地提高了用户帐户的安全性,如果实施得当,它可以做到。

但是,似乎某些网站只会在用户正确输入密码后才提示用户输入MFA 。我只用gmail.comoutlook.com对此进行了测试,但鉴于这是两个巨大的电子邮件提供商,我想他们只是众多肇事者中的两个。

这是(至少从表面上看)如此巨大的安全漏洞的原因是,它可以让破解者猜测用户的密码,直到他们收到 MFA 的提示,此时他们知道他们已经得到了用户的密码。似乎网站会对此置之不理,说:“但由于用户有 MFA,破解者无法进入他们的帐户。”

他们似乎忘记了用户可能在其他网站上拥有帐户,并且很可能在该网站上使用相同的密码。因此,现在破解者可以访问网络上所有用户的帐户,其中许多可能没有实施 MFA,从而使用户完全容易受到攻击。

我的论点或假设中是否有任何缺陷会使这成为非问题?如果不是,那么为什么像谷歌和微软这样的大公司不解决这个问题呢?

4个回答

如果我正确理解了您的问题,那么您提出的攻击是针对这样的服务器暴力破解密码,然后一旦它向您显示 MFA 屏幕,请在该用户拥有帐户的其他网站上尝试该密码。

这是一个很好的问题!好发现!但是您似乎忽略了两点:

  1. 这并不比没有 MFA 更弱,它还可以确认正确的密码……通过让您进入。

  2. 没有头脑正常的黑客会尝试对实时服务器强制输入密码,这通常会限制您每秒猜测 5 次。或者在 GMail 或 Outlook 等大型提供商的情况下,拥有复杂的欺诈检测系统,可以对可疑活动进行自动 IP 阻止。99.999...% 的时间,密码暴力破解是针对直接从数据库中窃取的密码哈希进行的,您可以在该数据库上每秒猜测 (m|b) 十亿个密码。

因此,虽然我同意你的观点,这里可能存在一些数据泄漏,但我认为风险很小,而且远远超过了用户不得不摸索他们的 OTP fob 以发现他们输入密码的不便.


更新地址评论,因为这已成为一个热门的网络问题:

有两种类型的多因素身份验证(又名“2FA”或“MFA”)确实需要单独考虑:

  1. SMS 或推送通知 2FA:当您进入 2FA 屏幕时,它会向您的设备发送一个代码,您必须输入该代码。对于许多用户来说,这可能是您接触过的唯一类型的 2FA。问题中描述的攻击在这种情况下将不起作用,因为用户将收到他们没有请求的 2FA 代码,他们会知道有问题。此外,无论密码是否正确,都执行 2FA 步骤实际上是有害的,因为:

    • 攻击者可能会导致用户每月获得巨额数据/短信账单,或者通过在其内存中填充通知来使他们的设备崩溃。
    • 它还泄露了哪些用户启用了 2FA,哪些是容易攻击的目标。
  2. 使用代码生成器令牌、应用程序或启用公钥的智能卡/USB 记忆棒的“离线”2FA这是政府、军队和企业使用的那种 2FA。因此,虽然它对最终用户来说不太明显,但由于它所保护的数据的价值,它是迄今为止更重要的 2FA 类型。在这种情况下,当攻击者进入他们的 2FA 屏幕时,不会向用户发送“内置”通知。而且通常要求所有用户都使用 2FA,因此泄露哪个用户启用了 2FA 并没有什么坏处,因为它是所有用户。

想象一下案例 2 的场景:位于 Windows Active Directory 之上的企业 VPN。面向公众的 VPN 整天都被密码猜测者敲打,所以这些日志并没有什么不寻常的地方。但是,如果我可以让 VPN 的 2FA 屏幕确认用户的密码,那么我可以走到他们的笔记本电脑前登录,确信它不会锁定 Windows 帐户——这肯定会被用户/IT 注意到。该问题正确地指出了一个安全漏洞,即“进入 2FA 屏幕但未输入任何内容/输入错误内容”的模式肯定应该被标记为比您的标准“不正确的用户名/密码”更严重,并应通知最终用户撤销他们的密码。

我认为这不是问题。多因素身份验证不是要防止有人猜测您的密码,而是要防止任何人登录您的帐户。

因此,现在破解者可以访问网络上所有用户的帐户,其中许多可能没有实施 MFA,从而使用户完全容易受到攻击。

攻击者不会尝试猜测 Google 上的密码,他们也不会尝试使用银行或 Facebook 等。仅仅因为它现在已经被泄露,它是一个有效的密码,攻击者就不会更接近于破坏任何其他帐户。猜测的密码需要来自高概率猜测的婴儿床,因为真正的蛮力永远不会在实时系统上工作。

如果您可以证明使用 2FA 的网站与不提供 2FA 的网站相比具有更差的反猜测算法(我敢打赌,即使不是更好,它们至少也一样好),那么您的观点将是有效的,因为攻击者可以滥用其中之一并且转向另一个。事实上,情况可能恰恰相反,投资 2FA 的网站同时也在投资反猜测系统。

从理论上讲,是的,这是一种可能性(前提是实施 2FA 的站点没有任何速率限制或任何类型的欺诈检测,正如其他答案所指出的那样)。

在实践中,还需要考虑可用性因素。想象一下,您构建了一个登录表单,在每次登录尝试时提示用户进行 2FA,仅在 2FA 步骤后告诉用户尝试不成功,而从不告诉他们是密码还是 2FA 令牌无效。

2FA 一开始就让我头疼 - 每次我登录时,我不仅要输入我的用户名和密码,还要找到我的手机(可能在另一个房间),解锁它,转到我的主屏幕,找到我的 2FA 应用程序,然后在列表中找到正确的站点。然后,代码不可避免地会在 5 秒后过期,所以我必须要么等待新代码出现,要么尝试在过期之前快速输入。

(在这方面,使用 SMS 或推送通知的 2FA 系统更好,因为它们出现在我的智能手表上 - 或者,对于没有智能手表的用户,他们的锁屏。在我们正在考虑的方案中,但是,只要用户知道我的用户名,这将允许用户通过无休止的通知/短信来惹恼我,因为他们不必正确获取我的密码来触发 2FA 尝试。我在某些国家也听说过,电话运营商向您收取接收 SMS 消息的费用,因此在那些地方,这种事情对用户来说会更糟。)

如果您让您的用户在密码错误时经历所有这一切两次,整个过程将变得更加痛苦,您甚至可能最终导致使用 2FA 的人减少,从而使您的用户平均安全性降低。