Rsa

沒有上下文資訊的數字簽名是否可以保護您免受簽名消息重放攻擊?

  • August 15, 2022

考慮這種情況:

  • A 使用 A 的私鑰向 B 簽名消息。然後 A 用 B 的公鑰加密簽名的消息。A 將明文和加密消息都發送給 B,以便 B 進行驗證。
  • B 收到來自 A 的消息。B 使用 B 的私鑰解密簽名消息,並驗證明文消息確實來自 A。
  • 然後 B 用 C 的公鑰加密 A 的簽名消息並將其發送給 C。

在這種情況下,C 無法檢測到是 B 向他們發送了消息。他們會(錯誤地)認為是 A 發送了正確的消息(除非簽名簽名中有其他上下文資訊,如時間戳或序列號)?

數字簽名證明簽名的消息(僅此而已!)來自密鑰的所有者。所以你是對的,C 無法知道原始接收者是誰。這可以通過在簽名消息中包含預期的收件人來解決,例如

簽名(skA,“收件人:B;內容:…”)

不確定這是否是重複的,但你是對的。簽名再加密的情況很容易解決,只需在消息中包含某種辨識資訊,然後簽名再加密即可。在加密然後簽名的情況下,這不是必需的。看看這些$$ 1 $$ $$ 2 $$.

引用自:https://crypto.stackexchange.com/questions/101479