2010-09-24 121 views
3

我目前正在研究一个需要高级别安全性的Web应用程序,并且我一直在考虑密码处理。我应该使用带有足够大的salt的哈希密码,但使用不同的salt或不同的算法多次哈希密码会有好处吗?多重密码散列

我指的不是事实,你应该多次产生像Hash(Hash(Hash(salt + psw)))=pswhash您的密码哈希散列密码,而是我在考虑使用Hash(Hash(Hash(salt1 + psw)))=pswhash1Hash(Hash(Hash(salt2 + psw)))=pswhash2,然后在登录时比较两者。 使用此例程时,攻击者不仅必须找到一个可生成pswhash的密码,而且还必须能够正确生成两个哈希值的密码。这样,碰撞的可能性几乎为零,但攻击者可以使用第二个散列来确定第一个散列的密码是否正确。

关于应用程序的更多信息: 的应用主要是为我们的公司内部应用程序。 Alla连接使用https处理,所有用户名对于此应用程序都是唯一的(因为您不能选择您的用户名),并且所有密码对于此应用程序都是唯一的(随机生成的,您不能选择它们)。我们主要担心有人在我们能够做出反应之前未经授权访问系统。如果我们有时间回应“他们”可以找到确切密码的事实并不是什么大不了的事情。

+1

对程序员这个问题的答案对利弊良好的细节:http://programmers.stackexchange.com/questions/115406/is-it-more-secure-to-hash-a-password-multiple时间 – 2013-07-31 12:51:24

回答

0

您应该多次散列密码,足够多的时间占用很多秒。这使得访问数据库的黑客无法单独破解密码,因为所需的处理能力呈指数级增长。

See this question for related information

我想多盐散列基本上是老调重弹的另一种方式,而且是安全透过朦胧,而不是做,我只想坚持到老调重弹。

+0

我没有去重新哈希问题。我正在考虑碰撞风险(尽管很小),以及是否有比较多个哈希以避免碰撞的益处或风险。 – Lobo 2010-09-24 11:21:19

5

使用尝试和测试技术 - 例如,PBKDF2 - 而不是试图推出自己的。

+0

谢谢,但我不想创建自己的密码或KDF。我只是想知道我是否可以以多种方式从哈希/密码密码中受益,并进行双(或多)比较 – Lobo 2010-09-24 11:16:10

+1

@Lobo:我的观点是,使用已建立的技术(例如PBKDF2)会更简单并且(可能)比您提议的方法更安全。 – LukeH 2010-09-24 11:22:05