Rsa
沒有上下文資訊的數字簽名是否可以保護您免受簽名消息重放攻擊?
考慮這種情況:
- 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 $$.