在密码重置电子邮件中发送用户名是否存在风险?

信息安全 密码 密码管理 重设密码
2021-09-06 17:29:14

我们正在使用具有密码重置功能的 CMS,该功能根据开箱即用的最佳实践工作。

  • 密码存储为加盐哈希
  • 忘记密码的工作方式如下:
    • 用户在文本框中输入用户名或电子邮件地址
    • 系统生成一封带有“重置密码”链接的电子邮件
    • 用户有 x 分钟的时间来点击链接并重置密码,或者它被禁用。

(旁注,我们想添加两因素身份验证,开发此 CMS 的公司正在努力提供该功能,但目前尚不可用。)

或者,我们可以在电子邮件中包含用户名,以防用户忘记了他们的用户名。

在密码重置电子邮件中包含用户名是否会增加安全风险?

显然,这是攻击者掌握的另一条信息,但说实话,如果攻击者设法拦截这封电子邮件,他们已经可以单击第一个链接以用户身份登录,所以我真的看不到增加的风险。我错过了什么吗?

2个回答

不,这种方法绝对没有安全风险。

用户名是公共信息,应该被这样对待。

编辑

@Polynomial 指出了我遗漏的一个关键事实。如果有问题的用户名是一些敏感信息,如 SS 号码,我的建议不适用。

这不是一个重大的安全风险,尽管它确实略微增加了攻击面。允许它带来的可用性收益很可能大大超过了微小的风险。

但是,需要注意的是,如果攻击者能够以某种方式拦截您的大量重置电子邮件,他们将获得两件事:

  • 攻击者可以建立一个有效用户名列表,以更好地针对您网站上的暴力破解或生日攻击。
  • 攻击者可以使用您通过电子邮件发送给用户的重置令牌、临时密码或其他任何东西。

如果要求用户在登录期间提供他们的用户名,那么其中的第二个只会增加风险,并且无论如何用户名经常可以从电子邮件地址中猜出。

此外,在攻击者可以窥探您发出的电子邮件之前,这些都不是问题,这本身可能就是一个问题。但是,SSL/TLS 交付可以帮助防止这种情况。