2012-03-19 62 views
0

我正在更新网站的登录过程。识别诈骗口令时密码

目前,密码存储为MD5(密码),我想补充盐, 但无盐密码被用来识别可能的欺诈,因为他们 通常使用新帐户相同的密码。

20%的流量来自移动设备,它们不一定具有相同的IP。

任何想法如何识别这些可能的欺诈行为?

+0

您如何区分所有将“密码”作为密码的人的欺诈行为? – TrueWill 2012-03-19 13:17:19

+0

如果用户已被禁止欺诈并创建新帐户,则新帐户密码将与其他用户进行比较,如果它与任何可疑帐户匹配,则会进一步调查。 – MLarsen 2012-03-19 13:25:40

+1

所以这些欺诈行为不是很聪明,是吗? – 2012-03-19 16:24:56

回答

0

你仍然可以添加一个salt,但是你必须对现有的密码进行比较,同时你仍然有明文密码,也就是说你必须遍历密码表寻找重复项(通过散列其他帐户盐与新密码)在帐户创建时,而不是之后。

0

我会说盐渍密码绝对是一个重要的好处,因为它们可以防止欺诈。但是,请使用a cryptographically secure slow hashing algorithm, such as bcrypt, scrypt or pbkdf2 - 不要腌制MD5。

但是,你可以有你的蛋糕,吃它,为什么不有另一张表包含以前的密码已被用于欺诈尝试?这些将被散列,但不会被腌制,并且不会存储任何帐户关联。

如果使用这些密码中的一个的用户证明是非欺诈性的,那么在您调查后,您可以通知他们将其密码更改为其他内容。

下面是我的想法:在决定将帐户用于欺诈之后,将新密码添加到欺诈性密码列表中。

  1. 帐户被标记为欺诈。
  2. 当该用户下次尝试登录时,它们的哈希值,盐渍密码与存储在其帐户记录中的哈希值,盐值相匹配,从其用户输入中获取的未重定义哈希值密码将存储在欺诈密码列表中。

由于欺诈密码列表可以减少直立的用户的帐户的安全性,因为它们都存储在这里无盐,你应该做的“好”的用户在登录时更改自己的密码,如果它在欺诈匹配任何密码列表。

+0

如果数据库暴露出来,难道这只是提供完整的已使用密码列表,破坏了篡改用户表的目的吗? – MLarsen 2012-03-19 16:40:56

+0

您只会存储以前用于欺诈的帐户的密码,而这可能是您本来会被停用的?如果非欺诈用户使用了其中一个密码,则可以在通过调查后通知他们将其密码更改为其他内容。 – SilverlightFox 2012-03-19 18:15:32

+0

如果有一个您决定禁止使用的密码的帐户,您将如何获取一个无盐密码,以便在不存储原始密码的情况下输入您的无欺诈“密码”密码列表(这会很糟糕)? – SecurityMatt 2012-03-20 17:03:10