Encryption

如何計算加鹽密碼中所需的加密?

  • February 9, 2017

考慮是否使用 16 位鹽,並將其統一應用於非常大的密碼文件(200,000 個條目)。攻擊者想查看某個密碼條目是否使用了某個特定密碼(例如“bubba”)。必須計算多少次加密,必須進行多少次比較(生成的雜湊值與儲存的雜湊值)?

假設攻擊者擁有儲存的雜湊值,他不知道哪個鹽用於任何個人密碼雜湊。換句話說,他們可以看到/etc/passwd(因此他們知道 200,000 個使用者名),並且只能訪問儲存在/etc/shadow.

在您的情況下,您說鹽只有 16 位熵,這非常弱。

要查看是否使用了“一個特定密碼”,攻擊者必須針對必須測試的每個“特定密碼”嘗試 65,536 種可能的 Salt 組合。使用者數量無關緊要,因為我們現在已經確定需要暴力破解(弱)鹽,並且只嘗試一個特定的密碼。

另一方面,使用正確實現的現代密碼雜湊,其中使用了足夠強(例如 72 位熵)的鹽,如果攻擊者未能獲得鹽,那麼他將沒有實用的方法來暴力破解雜湊。

65536 (16^2)。文件中的使用者數量無關緊要。

鹽的預期目的是防止破解者同時訪問多個帳戶。例如,假設兩個使用者具有相同的密碼“Password123”。如果散列是未加鹽的,那麼兩個散列將是相同的。這意味著一旦破解者破解了第一個使用者的密碼,他就不需要花費任何額外的精力來破解第二個使用者的密碼。如果使用鹽,那麼相同的密碼將產生兩個不同的雜湊值。這意味著破解者必須花費與第一個使用者相同的努力(過於簡單化)來破解第二個使用者的密碼。

將鹽與散列儲存在單獨的數據儲存中確實增加了安全系統的整體穩健性,但它不會增加針對鹽旨在保護的威脅模型的安全性。權衡系統的潛在安全優勢與單獨儲存鹽增加系統的複雜性。

引用自:https://crypto.stackexchange.com/questions/43725