防僞標記接受salt值。是否有關於選擇的鹽的任何安全問題,如如何爲ValidateAntiForgeryToken選擇鹽值
- 最小長度要求 字母數字和其它字符(如口令的)的
- 加密的強
- 混合
另外,客戶可以看到鹽的價值嗎?查看源代碼,它似乎將salt值添加到cookie。
防僞標記接受salt值。是否有關於選擇的鹽的任何安全問題,如如何爲ValidateAntiForgeryToken選擇鹽值
另外,客戶可以看到鹽的價值嗎?查看源代碼,它似乎將salt值添加到cookie。
反XSRF標記已經包含嵌入信息,可以將其唯一標識爲特定(用戶,應用程序)對。 'Salt'參數是爲了區分特定的反XSRF令牌所針對的動作。這並不意味着保密。隨意與世界分享。我希望我們爲它選擇了一個不同的名稱,因爲鹽這個詞有誤導性。把它看作補充數據。 :)
我們已經利用在幕後正確的密碼鹽。欲瞭解更多信息,請參閱我的回覆runtime loading of ValidateAntiForgeryToken Salt value。
TL;博士:不要與鹽財產打擾。無論如何,我們正在考慮將其從未來版本中移除。
一般:你的鹽應該是安全的隨機的,獨特的值比128位的情況下(例如,的/ dev/urandom的)。這應該以純文本形式存儲在單獨的表中,以便在驗證散列時使用它。它不應該被客戶看到。
總的想法是,你散列用戶密碼和鹽一起,並存儲該值。例如:
SHA512(password || salt)
其中password
是用戶密碼,salt
是隨機生成的獨特價值和||
是串聯。
然後,當用戶返回您重複此過程中提供的密碼,並與存儲的散列來驗證用戶的身份進行比較。如果你做一個快速的谷歌搜索,你會發現更多關於鹽及其用途的信息。
編輯:這是關於MVC防僞標記(參見利維的回答)不正確的,有這個blog的讀取。假裝鹽是一個唯一的表單名稱或表單ID(並且它沒有標記或以鹽開始)
我想知道的是鹽值是否被髮送到當我使用AntiForgeryToken客戶端。儘管源代碼似乎預先添加了salt,但我的有限的黑客技能無法恢復。如果它能被收回,鹽會說出一些愚蠢的話,那將是相當尷尬的。 – 2012-02-25 13:50:13
那麼,如果鹽是可恢復的,將同樣戰勝自身的目的.. 如果你是擔心,不挑了一些愚蠢的:P – Kurt 2012-02-25 14:00:58
@Prowla - 他談論鹽爲MVC防僞標記,不密碼鹽。這不是需要非常複雜的東西。足以阻止簡單的攻擊。因此,幾乎所有的鹽都可以被接受。由於僞造請求的使用方式,攻擊窗口非常小。 – 2012-02-25 18:00:51