纯文本密码重置漏洞

信息安全 密码 攻击
2021-08-26 16:39:52

如果我收到一封带有纯文本生成密码的电子邮件(响应密码重置请求),这是一个漏洞吗?密码在使用一次后过期,换句话说,用户必须在注册后立即更改密码。

我可以想象这样的密码重置方案至少容易受到中间人的攻击。中间的人可以得到临时密码,然后用新密码锁定用户。但是可能还有另一个漏洞吗?

2个回答

假设密码是随机生成的并且不容易被猜到,正如您所说,攻击者破坏该系统的主要方式是执行 MITM 攻击。

然而,如果攻击者可以拦截用户和他们的电子邮件帐户之间的通信,任何基于电子邮件地址的密码重置系统都容易受到相同类型的问题(例如一次性链接)的影响。

虽然它绝对不是完全安全的,或者我会依赖于高风险应用程序(如网上银行),但我也不认为一次性密码是一个特别糟糕的系统。

主要建议是确保您仅通过加密通道(例如 SSL 或 IMAP(S))访问您的电子邮件帐户

我不认为这是一个漏洞。当您将其视为以明文形式发送的密码时,是的,认为这里存在漏洞是可以理解的,但它不是密码。

向您发送一个链接,例如https://example.com/reset.php?code=97fy978y39fny39478fyn3一次性链接,您单击该链接以进入密码重置表单,您可以在其中键入新密码,本质上与向您发送一次性密码相同,他们只是code从链接并将其称为临时密码。 这个想法本身并不脆弱,但不正确的实现大多是。

这里有什么问题?

  1. code密码可能非常短和/或没有使用加密安全的 PRNG生成。

  2. 在设置新密码之前,该code或 密码可能会在较长时间内授予对帐户区域的访问权限。

  3. code密码可能会长时间保持有效,从而使其最终暴露在风险之中。

  4. 不使用 HTTPS,这让中间人有机会拦截它们。

更新:你是对的,电子邮件不在实施范围之内,但我们会完全偏离主题。我们可以讨论整个系统坏了,但没有其他选择。他们可以通过短信向您发送代码,但如果您的朋友拿着您的手机怎么办?他们可以将它发送到您的邮箱(有点傻)但是如果有人打开了您的邮箱怎么办?剩下的唯一安全选择是,他们派公司代表前往您的地址并询问您的身份证件并采集您的指纹(您在注册表单上提供的指纹),然后重置您的密码。

你看,电子邮件实际上是联系原始帐户所有者的方式,所以这是他们能做的最好的事情。

总而言之,我只是想向您展示明文一次性密码的安全性与几乎所有 Web 服务(Facebook、Twitter、StackExchange...)使用的一次性链接的安全性完全相同。