如果启用 2FA,密码重置如何工作?

信息安全 密码 多因素 重设密码
2021-08-28 19:06:18

(有一个高度相关的问题,但是我相信我的问题不是重复的,因为它涉及在不访问帐户的情况下重置密码,而不是在登录时更改密码。)

假设有人访问了我用来注册某些帐户的电子邮件。还假设这些帐户都具有某种 2FA,无论是由应用程序生成的 30 秒代码还是 U2F 密钥 - 类型对我的问题无关紧要。

在我的理解中,攻击者要想更改账号密码,有两种方式:

  • 登录帐户并在内部设置中更改密码,而不使用关联的电子邮件。即使我们的计算机/电话处于无人看管的状态,相关帐户的活动会话,因此绕过黑客也猜测帐户密码的需要,更改仍然是不可能的。这是因为,正如上面链接的问题中所解释的,这将需要至少2FA 验证,可能需要 2FA + 原始帐户密码。

  • 在帐户的登录屏幕上,使用“重置密码”选项将重置电子邮件发送到我们认为黑客可以访问的电子邮件帐户。我对接下来会发生什么感到困惑:

    1. 首先发送重置电子邮件需要2FA吗?如果不,
    2. 由于 2FA 仍然存在,攻击者是否能够重置密码,但不能实际登录?这实质上意味着他们无法访问该帐户,但我们也不能。
    3. 攻击者是否能够重置密码登录帐户,因为 2FA 不知何故变得无效?

当然,从合法用户的角度来看,场景 1) 是最可取的,2) 明显更糟,3) 是悲剧性的。但是,当有人尝试为启用了 2FA 的帐户重置密码时,实际上会发生哪一种情况?

2个回答

从技术上讲,这是一个关于你应该如何实施 2FA(或者你应该如何期望它被实施)的问题,因为 2FA 没有任何内在的东西可以在任何一个方向上回答你的问题。话虽如此,肯定有最佳实践。

每当要求用户以任何方式证明其身份(即进行身份验证)时,都应适用 2FA(或一般的多因素身份验证)。因此,当用户执行您通常要求输入密码的任何操作(例如更改其当前密码或电子邮件地址,或更改 MFA 设置)时,您应该提示输入 MFA。您还应该在用户执行任何代替密码的操作时提示 MFA,例如单击密码重置电子邮件中的链接。

对于您的三种情况,#1 不太可能仅仅因为请求密码重置电子邮件通常根本不需要任何身份验证,因此提出 MFA 要求将是一个奇怪的地方。但是,以任何方式使用电子邮件(即实际重置密码)都需要 MFA。所以#2在技术上是不正确的——攻击者无法重置密码——但他们也确实无法登录。正确答案是“#1.5”。

然而,“哪一个实际发生”将100% 完全取决于该特定服务如何实现 MFA,并且不能保证他们正确地完成了它。我见过像#3 这样的网站。

如果我没记错的话,必须手动禁用 2FA,它不会因更改密码而失效。某些站点/应用程序可能需要 2FA 才能更改密码。因此,您必须查看攻击者 POV 以了解如何禁用 2FA。

禁用 2FA 因站点而异。例如,加密货币网站需要手动识别,例如带有必要 ID/护照的视频或照片。有些就像您的电话号码的 OTP 一样简单,有些则通过辅助电子邮件?

如果攻击者能够重置密码,他仍然需要 2FA,这回答了您的第 2 点。对于第 1 点,重置密码根本不需要 2FA。想想看,你点击“忘记密码?” > 输入您要重置密码的电子邮件 > 2FA 提示?答案是否定的,在那个阶段没有提示 2FA。