如果我发送带私钥的邮件,该怎么办? 我的信息是“今天是7人聚会”
Devil使用签名
复制了我的加密文本几天之后,恶魔将信息发送给我发送的同一个人。
邮件没有更改,我的朋友在7时仍然收到了同一个聚会消息,并且是通过我的私钥进行数字签名。
我该怎么做才能防止这种情况发生?
答案 0 :(得分:2)
重播攻击通常是通过添加一条不属于邮件的额外信息来阻止的。这是一个常见的解决方案:
通过添加时间戳,您可以约束您需要多长时间跟踪您之前见过的内容。"
另一种通用方法是使所有消息都是幂等的。这意味着多次应用相同的消息不成问题。像git这样的系统具有这种品质。构建幂等系统有点棘手,并不容易实现所有问题,但在可能的情况下是一个强大的解决方案。制作幂等的一个例子就是说"此时,X的值为Y。"您可以重复应用该消息而不会导致任何问题(因为它以完全相同的方式更新相同的记录,或者因为您忽略了比您拥有的最新值更早的所有时间点)。
解决重播攻击问题恰好也解决了其他几个问题,这很好。消息传递系统面临一个基本问题,即不能保证只传递一次消息。您最多可以保证一次,或者至少保证一次,但绝不能保证一次。 (研究Two Generals' Problem以便通过这种方式进行思考。有争议的是,你实际上可以承诺至少一次"因为系统可能永远不会连接,但我们通常忽略那个角落的情况)。幂等系统是非常好的,因为它们高度容忍"至少一次"的解决方案。