Hash

密碼雜湊的鹽可以公開嗎?

  • November 27, 2020

據我了解,密碼雜湊中的鹽用於防止明文→雜湊值(彩虹表)的預計算。

我從不同的執行緒中知道沒有必要對鹽保密(即,它不需要加密),但我想知道公開它是否會成為問題。

這個問題的背景是以下想法:

對於密碼身份驗證,使用了像 bcrypt 或 scrypt 這樣的強散列函式。每個使用者都有自己的隨機且獨特的鹽。但是,為了最小化伺服器上的負載,雜湊是在客戶端計算的。為此,必須存在允許未經身份驗證的使用者檢索任何註冊使用者的鹽的功能。

通常的答案是鹽可以公開。如果這是一個問題,那麼鹽就不會被稱為“鹽”而是“鑰匙”。

在某些協議中,未經身份驗證的鹽獲取是常態,不被視為問題。例如,使用SRP,一個密碼認證的密鑰交換,其中任何加鹽和散列必鬚髮生在客戶端。

有人認為,如果攻擊者可以提前知道鹽,那麼他就可以進行預計算。這僅在特定情況下對攻擊者來說是一種收益,在這種情況下,攻擊者必須能夠在很短的時間範圍內(例如,一秒鐘)破解密碼,但有幾週的時間來準備他的密碼- 第二次嘗試,針對特定目標使用者。這是一個很少適用的邊緣場景。

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