2010-09-24 160 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