Authentication
在 MAC 比較之前使用隨機密鑰執行 HMAC
在 Laravel(一個 PHP 框架)中,我可以看到他們在比較之前使用隨機密鑰在最終 HMAC 上計算 HMAC。這個額外的 HMAC 計算當然是使用這個隨機密鑰對計算的 MAC 和接收的 MAC 值執行的。
這是否只是提供一種執行“恆定時間”比較的方法?或者它是否將其他安全屬性添加到 MAC 計算中。我認為是前者,但我想確定一下。這是執行 MAC 比較的已知技術嗎?
添加這個雙 HMAC的送出只說它改進了“有效 MAC 檢測”,但它同時添加了恆定時間比較,因此很可能原因確實是防禦定時攻擊:
改進有效 MAC 檢測
對加密 MAC 實施恆定時間字元串比較以及雙重 HMAC 驗證。
雙 HMAC 是一種已知的避免側通道攻擊的技術,並且已被推薦作為恆定時間比較的更可靠(和“更簡單”)的替代方案。我不知道有人推薦兩者,這是毫無意義的(它們可以防止相同的攻擊)並且成本甚至超過 HMAC 的兩倍——與恆定時間比較相比,這是它的主要缺點。另一方面,它不應該受到傷害,所以也許是出於謹慎考慮。