暴露电子邮件地址和用户名的安全风险?

时间:2008-11-19 03:44:19

标签: security email

Joomla在其登录屏幕上有一个内置功能“我忘记了我的用户名”,这样您就可以输入您的电子邮件地址,并通过电子邮件将用户名发送给您。

我正在考虑更改它,以便立即在屏幕上显示用户名,而不进行任何形式的身份验证。这将大大减少长时间返回的用户的摩擦,但它允许任何人输入任何电子邮件地址并查看相关的用户名(绝对不是相反的方式)。

这会产生任何安全风险吗?这根本不是一个好主意吗?

3 个答案:

答案 0 :(得分:8)

当前的实施要求用户拥有电子邮件地址,并阅读生成的电子邮件,以检索用户名。

您的实施可让攻击者立即知道哪个用户名与电子邮件地址相关联。因此,如果攻击者知道一个人的用户名,就可以猜到电子邮件地址。

更糟糕的是,假设攻击者以某种方式知道密码而不是电子邮件地址。成功猜出电子邮件地址后,可以合理地猜测电子邮件帐户的密码与您网站的密码类似。因此,您已帮助攻击者劫持了电子邮件帐户,该帐户可能包含其他帐户的更多信息,等等。

通常,更改任何与安全相关的功能以使事情比标准实施“更容易”可能会带来安全风险。在实施前通过SO进行研究的+1!

答案 1 :(得分:3)

乍一看,这似乎是一个“坏主意”,因为你允许任何人:

  1. 验证帐户是否存在
  2. 确认用户名和电子邮件地址之间的关联
  3. 如果用户名和邮件地址在您的网站上被视为“私人”信息但尚未共享,那么我就不会通过电子邮件功能实现用户名查找。实际上,您将安全条降低了1个因素:

    • 目前,查找用户名需要电子邮件地址和用户的完整邮件凭据(这样他们才能收到回复)
    • 更改后,他们只需要邮件地址。

    或许更重要的是,您创建了一个需要解决的隐私问题(如@SoapBox所述)。

    但实际上,您的网站可能已将“用户名”用作公共句柄或昵称。您可能已经让用户在其个人资料中发布他们的电子邮件。如果是这种情况,用户名查找不会泄漏任何新信息,您可以争辩不会创建新的安全性或隐私问题。

    这会让一切变得有点过于简单,就像在如何破解我的网站上发布脚本小子指南一样:

    1. 从首选供应商处获取电子邮件地址列表
    2. 来我的自助邮件到用户名翻译页面并运行列表(简单的脚本)
    3. 使用生成的用户名列表
    4. 在网站上启动字典攻击

      底线 - 我认为你最好保持这个功能。

答案 2 :(得分:2)

我认为对于不那么精明的用户来说,这是一个轻微的安全风险。对于密码较弱的用户,尤其是与用户名或电子邮件地址相关的用户,暴露他们的用户名会使他们对其帐户被劫持持开放态度。除此之外,我想不出它会成为问题的原因。如果用户有良好的密码,则根本不重要。

我想有一点匿名的担忧。例如,在一个论坛上,我不希望有“知道”我的人在没有告诉他们的情况下找到我的用户名。在这种情况下,他们可以接收我的电子邮件并获得它。但这是否是一个问题取决于您的网站和您的用户群。