Key-Derivation
用於文件身份驗證的具有固定鹽的派生密鑰的安全含義
上下文:我需要為一組文件計算 MAC,只是為了將來的完整性和身份驗證驗證。
這是步驟的概念順序:
- 使用具有 10k 次迭代和固定鹽的 PBKDF2(帶有 sha512)從使用者輸入密碼中派生一個 64 字節的密鑰。
- 然後,使用此派生密鑰使用 HMAC+BLAKE2b(512) 計算 MAC,並儲存輸出以供將來可能的驗證。
使用 PBKDF2 代替 HKDF,因為我無法確保輸入將具有足夠的熵。
密鑰派生步驟發生一次(在應用程序初始化時),然後多次用於計算任意數量文件的 MAC。生成隨機 IV 是不可能的,因為我不希望(盡可能)為每個文件生成派生密鑰。重複文件的 MAC 摘要重複不是問題。
問題:為此,將鹽作為固定字節字元串是否存在一些安全隱患?
答:正如@SEJPM 指出的那樣,MAC 算法的一般安全模型假設密鑰將被重用於計算任意數量的 MAC,因此該方案應該是安全的。
為此,將鹽作為固定字節字元串是否存在一些安全隱患?
這裡的密鑰重用很好,因為 MAC 的標準模型允許攻擊者請求任意(多項式有界)數量的經過身份驗證的消息,但仍然無法偽造新的 MAC。
作為獎勵,您可能需要考慮使用 Blake2 的內置 MAC 模式,因為它降低了程式碼複雜性並提高了速度,同時提供了相當的安全級別(感謝 Richie 此處)