Protocol-Design
我可以使用 HMAC 進行重放攻擊保護嗎?
我正在考慮一個小型設備通過無線通道從另一個設備接收消息/命令的系統。我擔心重放攻擊。消息將被加密。有哪些經過嚴格審查的方案可以防止這些攻擊?我不太喜歡時間戳(如本 Q&A中所述),因為我真的不想讓時鐘保持同步。我目前正在考慮使用 HMAC,但想確保我在做正確的事情。
關於這個主題的一篇古老但優秀的論文是 Tuomas Aura 的Strategies against Replay Attacks。
“散列完整資訊”方法的最簡單版本是將前一條消息的 MAC 包含在下一條消息中(您也可以將其用作隨機數)。然後將最新的 MAC 與會話密鑰一起儲存並檢查新消息。這將強制在每個會話中對消息進行序列化。(假設這是您在編寫“使用 HMAC”時所想的。)