Hmac
HMAC-MD5 或截斷的 HMAC-SHA512
我正在創建一個需要對 QR 碼的有效負載進行消息身份驗證的應用程序。由於糾錯 (H) QR 碼的最大長度(368 位)和有效載荷的原始大小(128 位),我必須限制 MAC 的大小。
這給我留下了幾個選擇。我基本上可以使用任何 HMAC 變體,並剪切輸出以適合 QR 碼有效負載(我用 HMAC-SHA512 嘗試過),或者我可以使用 HMAC-MD5 的潛在弱實現,它非常適合。
我的問題是:哪個提議的解決方案更安全?
來自RFC 6151:
新的協議設計不應使用 HMAC-MD5。
雖然 HMAC-MD5 目前沒有損壞,但這並不意味著您應該使用它。現在是 2022 年,還有很多更好的選擇。
我想你在這裡問的任何人都會推薦截斷的 HMAC-SHA-256、截斷的 HMAC-SHA-512 或鍵控的 BLAKE2/BLAKE3,它們不需要被截斷。這些提供了更高的安全邊際,沒有人會質疑你的協議。