如果启用了多因素身份验证,这将如何影响自助密码重置?

信息安全 密码 验证 密码管理 多因素 优比键
2021-08-10 08:32:50

鉴于安全性仅与其最薄弱的链接一样安全,假设我的网站通过以下任何一种方式启用了额外的身份验证:(例如,可能需要多个条件)

  1. 短信/语音 HOTP 消息到手机
  2. 备用电子邮件地址
  3. 问答
  4. HOTP 软令牌(谷歌身份验证器)
  5. 打印出一次性密码列表
  6. YubiKey
  7. RSA 令牌
  8. “已知/受信任”计算机(由 evercookie 或类似链接)
  9. 客户证书
  10. 可信 IP

假设用户忘记了密码,如果正确回答了#2 或#3 的组合,大多数网站将允许他们重置密码。

问题

  1. 假设用户有一个多因素设备并且忘记了他们的密码,这应该如何影响“忘记密码”的工作流程?

  2. 如果用户丢失了多因素设备,或者软令牌已损坏,应该如何重新配置​​?

  3. 如果用户忘记了密码丢失了令牌怎么办......那么重新配置工作流程应该是什么样子?

3个回答

假设用户有一个多因素设备并且忘记了他们的密码,这应该如何影响“忘记密码”的工作流程?

如果用户从无法识别的设备/浏览器启动密码重置,则应该需要第二个身份验证因素来执行密码重置。最佳实践是在所有场景中一致地要求第二个因素:正常身份验证(在验证密码之后)或密码重置(在验证对电子邮件链接的访问之后)。

如果识别出请求密码重置的设备/浏览器,则可以在单击电子邮件密码重置链接后跳过双重身份验证。

如果用户丢失了多因素设备,或者软令牌已损坏,应该如何重新配置​​?

如果设备/浏览器被识别,或者如果用户已经在设备上拥有经过身份验证的会话,则用户应该能够取消提供丢失的第二因素设备并提供替换的第二因素设备。

如果无法识别设备/浏览器和/或用户在该设备上没有经过身份验证的会话,则必须在重新配置第二因素设备之前验证备用双因素身份验证方法。

如果用户忘记了密码并丢失了令牌怎么办......那么重新配置工作流程应该是什么样子?

通过电子邮件发送重置链接足以从被识别为受信任的设备/浏览器中恢复密码*。在用户重置密码后,用户可以通过上述第二因素的重新配置。

如果用户的设备/浏览器不受信任,那么如果第二因素设备不再可用,则用户必须验证备份方法。这可以是发送到备用电话号码的 SMS,或者是在注册双因素身份验证设备时提供的备用字符串。忽略备份代码的这种验证否定了曾经启用的双因素身份验证。必须执行。

有关 Google如何处理这些情况的更多信息,请参阅Google 关于两步验证的帮助文档。他们肯定已经考虑过这一点,并且在网上有很多很好的信息。

* 其中“受信任”表示用户之前使用双重身份验证进行了身份验证,并指出设备/浏览器应该被信任以进行后续身份验证(并且不需要再次从该设备进行双重身份验证)。

为了正确回答这个问题,需要考虑许多超出本论坛范围的事情。诸如用户立即访问您的应用程序的重要性、用户访问现场身份验证的难易程度(或难易程度)等条件需要与您组织的其他业务需求一起权衡来决定你将如何处理这个问题。

理想情况下,您实施的任何类型的身份验证器重置或恢复过程都应该至少与您的正常身份验证过程一样强大。如果您的应用程序通常需要多重身份验证,那么您还应该需要某种形式的多重身份验证来重置或恢复这些身份验证器。

要回答您的问题:

  1. 仍应要求用户使用多因素设备作为密码重置功能的身份验证过程的一部分。

  2. 为获得最佳安全性,需要亲自领取新设备。否则,您需要决定远程重新颁发设备需要哪些其他可接受的身份验证形式。

  3. 这个人需要严厉的谈话 - 仅使用亲自验证。

多因素身份验证意味着您需要多个身份验证“因素”来授予访问权限。当用户忘记他的密码,或丢失他的令牌,或两者兼而有之时,他就不再能够遵守所有因素。因此,任何用于恢复访问的方法都是对安全模型的破坏。如果受到足够的约束和审计,此类违规行为可能是可以容忍的。

作为一个通用的答案:一开始,用户没有注册,他既没有密码也没有令牌。然而,通过我们称之为注册的一些过程,用户获得了密码和令牌。在最坏的情况下,丢失密码或令牌或两者的用户可以通过相同的过程简单地再次注册。

“重新配置工作流程”是在寻找一种中间立场,这将确保良好的安全性,但比再次进行完全注册更便宜。一种常见的方法是保留第三个备份身份验证因素(这就是所谓的“安全问题”所涉及的)。在其他“备份因素”中,您可以让他使用他的信用卡支付一分钟(或一大笔现金,这是您的选择),从而捎带银行痛苦维护的身份验证框架。“激活”电话、带签名的 FedEx/UPS 交付……有许多可能性提供各种价格/安全组合。什么是好主意取决于上下文。