我在一行中有一個字段,用於哈希和鹽析。每行的鹽是不同的。我決定在每一行中散列/添加幾個字段。在多個字段中使用相同的鹽
對於同一行中的這些新字段,如果我爲每個字段生成一個新鹽,那麼是否會使用相同的鹽使數據更容易受到彩虹攻擊?我的邏輯是在同一行中只有幾個字段會使用相同的鹽,並且會使鍵/鹽管理變得更容易。
我在一行中有一個字段,用於哈希和鹽析。每行的鹽是不同的。我決定在每一行中散列/添加幾個字段。在多個字段中使用相同的鹽
對於同一行中的這些新字段,如果我爲每個字段生成一個新鹽,那麼是否會使用相同的鹽使數據更容易受到彩虹攻擊?我的邏輯是在同一行中只有幾個字段會使用相同的鹽,並且會使鍵/鹽管理變得更容易。
是的,但是使用多種鹽的數據真的很重要嗎?如果你每行使用一個鹽,這應該是足夠的。欲瞭解更多與鹽有關的信息,請參閱這篇文章:http://php-security.org/2010/05/26/mops-submission-10-how-to-manage-a-php-applications-users-and-passwords/
不,如果有人有一個足夠大的彩虹桌打破你的鹽,那麼你通過使用太小的鹽來搞砸了。您添加到鹽中的每個字節都會使彩虹表指數規模變大。添加一個鹽到你的散列不會使預先計算的攻擊不可能,只是更困難。
重複使用鹽會使您的系統更容易受到攻擊。攻擊者可以創建一個帳戶,然後使用SQL注入將他的含鹽散列從數據庫中提取出來。然後他可以使用John The Ripper蠻力(因爲他知道他自己的密碼)鹽。如果salt存儲在數據庫中,那麼他可以使用SQL注入來獲取鹽和散列值,並使用John分解未知密碼的散列值。如果密碼是字典單詞,則需要不到一個小時的時間才能中斷。
+1給Rook的評論。 我在這裏發表了博文 - http://www.pivotalsecurity.com/blog/tips/password-hash-salt-should-it-be-random/ – gauravphoenix 2010-07-07 19:04:29