2012-02-25 40 views
16

防僞標記接受salt值。是否有關於選擇的鹽的任何安全問題,如如何爲ValidateAntiForgeryToken選擇鹽值

  • 最小長度要求
  • 字母數字和其它字符(如口令的)的
  • 加密的強
  • 混合

另外,客戶可以看到鹽的價值嗎?查看源代碼,它似乎將salt值添加到cookie。

回答

39

反XSRF標記已經包含嵌入信息,可以將其唯一標識爲特定(用戶,應用程序)對。 'Salt'參數是爲了區分特定的反XSRF令牌所針對的動作。這並不意味着保密。隨意與世界分享。我希望我們爲它選擇了一個不同的名稱,因爲鹽這個詞有誤導性。把它看作補充數據。 :)

我們已經利用在幕後正確的密碼鹽。欲瞭解更多信息,請參閱我的回覆runtime loading of ValidateAntiForgeryToken Salt value

TL;博士:不要與鹽財產打擾。無論如何,我們正在考慮將其從未來版本中移除。

0

一般:你的鹽應該是安全的隨機的,獨特的值比128位的情況下(例如,的/ dev/urandom的)。這應該以純文本形式存儲在單獨的表中,以便在驗證散列時使用它。它不應該被客戶看到。

總的想法是,你散列用戶密碼和鹽一起,並存儲該值。例如:

SHA512(password || salt) 

其中password是用戶密碼,salt是隨機生成的獨特價值和||是串聯。

然後,當用戶返回您重複此過程中提供的密碼,並與存儲的散列來驗證用戶的身份進行比較。如果你做一個快速的谷歌搜索,你會發現更多關於鹽及其用途的信息。

編輯:這是關於MVC防僞標記(參見利維的回答)不正確的,有這個blog的讀取。假裝鹽是一個唯一的表單名稱或表單ID(並且它沒有標記或以鹽開始)

+0

我想知道的是鹽值是否被髮送到當我使用AntiForgeryToken客戶端。儘管源代碼似乎預先添加了salt,但我的有限的黑客技能無法恢復。如果它能被收回,鹽會說出一些愚蠢的話,那將是相當尷尬的。 – 2012-02-25 13:50:13

+0

那麼,如果鹽是可恢復的,將同樣戰勝自身的目的.. 如果你是擔心,不挑了一些愚蠢的:P – Kurt 2012-02-25 14:00:58

+1

@Prowla - 他談論鹽爲MVC防僞標記,不密碼鹽。這不是需要非常複雜的東西。足以阻止簡單的攻擊。因此,幾乎所有的鹽都可以被接受。由於僞造請求的使用方式,攻擊窗口非常小。 – 2012-02-25 18:00:51