Key-Derivation

Pepper 和密鑰派生/拉伸

  • November 10, 2017

我理解添加但不儲存秘密並迭代一組可能的秘密值以進行驗證的胡椒概念。

但是,當涉及到關鍵拉伸算法的使用時,胡椒粉是否也有用?

密鑰拉伸用於通過增加驗證時間來使(可能)弱秘密更健壯地抵抗暴力攻擊。辣椒法也有同樣的目的。結合這些技術有意義嗎?遵循重要的安全原則,保持簡單,我希望例如使用 PDKDF2 和更高的迭代值拉伸密碼比結合胡椒和 PDKDF2 更好。這個假設是正確的還是我錯過了一個重要方面?謝謝。

胡椒類似於鹽,但它是保密的。因此,雖然鹽儲存在數據庫中,但胡椒卻保存在其他地方,例如驗證密碼雜湊的程式碼中。

辣椒可以在任何有鹽的地方使用——主要是 PBKDF:基於密碼的密鑰派生函式。這對 KBKDF 來說意義不大:基於密鑰的密鑰派生功能,因為 KBKDF 的輸入秘密已經是密鑰,您希望它保持原樣的安全。

胡椒不是真正的方法,它只是鹽的添加物。仍然需要鹽,因為胡椒通常是靜態的。這意味著相同的密碼片語將生成相同的密碼雜湊或對稱密鑰。

辣椒不會增加工作因子/迭代次數(很多),但它確實使攻擊者無法在辣椒未知的情況下執行計算。基本上,辣椒充當執行計算所需的密鑰。

使用迭代計數來延長密碼是保護密碼的一種方式。這是使 PBKDF 更安全的兩種不同方法;它們不直接相互影響。

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