Salt
“非正常”雜湊方案的可行性?
我正在使用以下散列方案:
- 以域字元串開頭(所有使用者都相同),
- 允許每個使用者以定義自己的自定義替換規則的任何方式對其進行變異,
- 將使用者 ID 附加到上述突變的結果中,
- 允許使用者為 PBKDF2-HMAC-SHA256 選擇自己的“工作因子”,並使用上面的“鹽”來散列他們的秘密。
在最壞的情況下,如果替換方案是恆等映射,並且如果使用者 ID 為空,salt 將以相同的方式結束,並且該方案將遭受“salt clustering”的影響。如果使用者也沒有自定義他們的工作因素,這將是一個弱方案,允許對給定域的所有使用者進行彩虹表攻擊。
但是,讓我們假設所有三個元素都具有足夠的可變性:
- 替換方案任意複雜,
- 使用者 ID 存在,
- 工作因數是可變的
在這種情況下,給定域的結果雜湊數據庫的安全性如何與使用 CSPRNG 選擇鹽的迂腐案例相提並論,並使用固定的工作因子對秘密進行雜湊處理?他們有任何明顯的“陷阱”嗎?
編輯: “設置”旨在成為一次性成本,用於跨域,即替換方案將用於多個域。
**編輯 Redux:**從下面的討論中,它基本上歸結為這樣一個事實,只要輸入是確定性的,規則集也是如此——在大多數情況下,這將是一個簡單的替換——彩虹表的預計算,用於“智能”搜尋鹽上的空間是可能的。我會相應地改變我的設計。
輸入突變很可能會過多地減少搜尋空間,因為大多數人會輸入嚴重有損的突變。我更了解。99%的人都不知道。
即使是簡單的 {“at”->"@", “what”->"#"} 我認為是人們將要載入的東西,也是一個壞主意。