Hash
破解雜湊:有 vs 不知道鹽
讓我們假設以下情況:
攻擊者從一個網站( )中提取了 1000 個密碼雜湊,
vuln.com
以及他們所有的使用者名和雜湊算法(假設bcrypt
阻止他們破解所有雜湊的唯一資訊是失去的密碼和鹽。假設鹽都是加密隨機的。如果攻擊者也擁有所有的鹽,會發生什麼變化?
在不知道鹽的情況下破解雜湊有什麼區別?
使用鹽的意義不在於它是秘密的。事實上,它通常與散列密碼一起儲存。使用鹽的重點是每個條目都不同。這有幾個主要好處:
- 使用相同密碼的兩個使用者不會有相同的雜湊值。因此,攻擊者無法看到哪些使用者共享一個(可能是弱密碼)。
- 在字典攻擊中,攻擊者不能使用預先計算的 bcrypt 雜湊表。相反,他們必須重新計算每個鹽的每個雜湊值。特別是,使用鹽可以很好地防禦使用彩虹表的攻擊。
wallenborn 正確地描述了鹽的實際用途及其實現。如果鹽或類似值是保密的,它有時被稱為胡椒。
足夠長且隨機生成的辣椒對密碼破解有很大影響。即使是像123這樣的簡單密碼也是安全的。
唯一的問題是以一種始終可用於密碼散列並且仍然保密的方式來實現辣椒。