Java SSLSockets和重复攻击

Java SSLSockets和重复攻击,java,sockets,ssl,tcp,Java,Sockets,Ssl,Tcp,我目前正在为一个学校项目开发一个Java服务器平台。我正在使用SSL TCP套接字进行通信,我正在开发客户端和服务器之间的JSon协议 我的问题是协议中的消息是否应包含唯一id,或者是否使用SSL TCP套接字足以避免重复攻击。我相信您指的是,这可能取决于协议的实现 如果你收到同一条信息两次,你会如何处理 想象一下鲍勃给你发了一条合法有效的信息。您以有效、合法的响应进行响应。SSL在整个对话过程中保护通道,因此任何人都无法窃听网络流量并查看原始请求和/或响应 现在想象一下,我已经破坏了Bob的网

我目前正在为一个学校项目开发一个Java服务器平台。我正在使用SSL TCP套接字进行通信,我正在开发客户端和服务器之间的JSon协议


我的问题是协议中的消息是否应包含唯一id,或者是否使用SSL TCP套接字足以避免重复攻击。

我相信您指的是,这可能取决于协议的实现

如果你收到同一条信息两次,你会如何处理

想象一下鲍勃给你发了一条合法有效的信息。您以有效、合法的响应进行响应。SSL在整个对话过程中保护通道,因此任何人都无法窃听网络流量并查看原始请求和/或响应

现在想象一下,我已经破坏了Bob的网络,得到了一份加密流量的副本。如果我重新发送加密邮件,会发生什么?很有可能,SSL在以后能够保护我,因为SSL会话将不再有效

但是,如果我在SSL会话过期之前立即重新发送消息会怎么样?那你会敏感吗

或者,你的协议中是否有一部分发布了我可以获得的令牌(可能是通过肩部冲浪或感染鲍勃的电脑)?我能不能再使用那个代币,可能是从别的地方来的,假装我是鲍勃?那么你的曝光量是多少

您只需浏览特定案例中的场景,并检查它发生的风险以及保护它的努力


通常,SSL保护通道(传输中的数据),但您必须将协议设计为最终安全。在协议中包含一个随机令牌(并确保它存在)是一种防止一系列不同攻击的简单方法,包括重放攻击(想想令牌)。

否。SSL不受重放攻击的影响。

“如果SSL受损,您是否应该采取更多措施来保护通信安全?”?这是一个需求问题。你的偏执和保密程度如何?此外,“重放攻击”是比“重复”更常见的术语,你可以通过谷歌搜索来了解更多。(另外,“添加一个唯一的ID”在不知道你打算用它做什么的情况下也没有多大意义!)这几乎不是一个答案,大部分是问题,但最后的断言是不正确的。您不必针对SSL上的重播设计协议。仅仅因为您的传输不易受重播攻击,并不意味着您的协议不易受重播攻击。这完全取决于您的消息可以被注入或重播到哪里。