帐户登录相同通过不同的电子邮件

1 email passwords

我希望这是适合发布的 StackExchange,因为它与编程无关。如果没有,请见谅。

如果我有一个用户系统,无论是瘦客户端、Web 应用程序还是软件,我都有 2 个用户,Billy 和 John。比利和约翰巧合地使用相同的密码,pass1234,但电子邮件不同,因此:

billy@test.com - pass1234

john@test.com - pass1234

如果比利不小心输入了约翰的电子邮件并登录,那么他肯定可以以他的身份登录;纯属巧合,他们有相同的密码。

是否有任何编程/系统/管理机制来防止这样的事情?至于阻止某人使用固定密码“Passw0rd”然后循环浏览数千封不同的电子邮件,直到他们受到打击。(不包括验证码的使用)

在数据库级别进行验证之前,我正在考虑诸如从用户名派生的密码 + 随机盐,或使用用户名等散列密码之类的东西。

Kin*_*tus 5

如果用户选择相同的密码(巧合),那么无论您使用什么散列算法,您使用相同的密码仍然是相同的密码。

解决此问题的唯一方法是在每次有人注册或更改密码时检查密码是否已根据密码数据库 (baaad) 进行检查,或者您是否使用不使用不同盐/胡椒等的散列算法。密码(再次,baaad)。

归根结底,这也是应始终需要密码复杂性策略的众多原因之一,以便您最大限度地降低人们创建相同密码的潜在风险。

即,如果您不允许您的员工创建像“Password1”这样的简单密码,而是要求他们输入大写字母、数字、符号,那么他们输入完全相同密码的机会就会减少——而不是因为有人可以轻松做到而消除,因为例如“Password123!”。

散列仅保护存储在数据库中的数据,因为服务器获取用户输入的详细信息 -> 检索散列、盐(以及胡椒,如果使用的话) -> 运行通过算法从数据库输入和获取的详细信息-> 如果结果与存储的哈希值进行比较,那么详细信息是正确的,并让用户进入。这只是为了验证详细信息 - 与用户输入的内容和选择的密码设置无关。盐和胡椒只是允许散列不会在数据库的其他地方重复(即,如果两个散列相同,则两个帐户的密码将相同 - baaad)。

正如其他答案所说,最好的解决方案是多因素(以下一项以上,但不是更多相同因素)身份验证:

  1. 您拥有的东西 -> 智能卡、RSA 生成器等。
  2. 您知道的信息 -> 密码或 PIN
  3. 你是什​​么 -> 生物特征(指纹、视网膜等)

例如

  • 智能卡 + 密码 = 好
  • RSA 生成器 + 密码 + 指纹 = 好
  • 密码 + PIN = 错误


归档时间:

查看次数:

203 次

最近记录:

9 年,6 月 前