Passwords

關於加鹽密碼

  • July 31, 2017

在大多數應用程序中,所有密碼都是獨立加鹽的。在安全性(例如攻擊複雜性)方面,以下不同方法的後果是什麼:

  1. 所有密碼都用相同的鹽加鹽。
  2. 該應用程序不使用加鹽,但最終使用者通過附加一個(真正隨機的)加鹽來選擇他們的密碼。我們假設這些使用者能夠記住這個更長的密碼,並且攻擊者可以訪問使用者的身份和相關密碼中使用的鹽。

我知道第二個是不切實際的,但我很好奇。

所有密碼都用相同的鹽加鹽。

重複/重複使用的密碼將出現,因為生成的密碼雜湊是相同的。破解密碼數據庫將變得更加容易,因為可以使用專門的彩虹表一次破解所有密碼,或者與數據庫中的所有密碼進行簡單比較。

攻擊者還可以使用相同的鹽設置一個網站,並希望使用者重複他們的密碼;在這種情況下,即使使用者名不同,也會出現重複項。

鹽還有一個優勢:使用彩虹表或字典攻擊同時破解多個數據庫仍然受到挫敗(除非鹽被重用,例如當"007"用作鹽時,其他實現也這樣做)。

該應用程序不使用加鹽,但最終使用者通過附加(隨機)加鹽來選擇他們的密碼。我們假設這些使用者能夠記住他們,並且攻擊者可以訪問使用者的身份和相關密碼中使用的鹽。

這取決於鹽的質量;但鑑於使用者應該記住他們,他們不妨使用更長的、唯一的密碼。因為他們會忘記那個鹽,特別是如果它被指定為例如十六進制。

可以使用唯一的(對 a 的雜湊)使用者名作為鹽,但這意味著如果使用者名被使用,則必須刷新密碼;可能會出現同一使用者重複密碼的情況。您應該在這種鹽中添加一個靜態“胡椒” - 一種秘密常量鹽,以使其對於您的特定數據庫是唯一的。

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