为什么 TLS 需要明确的心跳协议?
信息安全
tls
2021-08-17 13:26:52
3个回答
心跳有两个目的:进行一些链接级别的活动(避免被热心的防火墙关闭)并确保对等点仍然活着。如果您想同时使用空片段,那么您需要在客户端和服务器之间进行一些约定,以便当您发送一个空片段时,对等方会以一个空片段进行响应。如果没有正确完成,这可能会导致无限循环。
此外,当使用空片段作为 BEAST 攻击的对策时,一些广泛部署的实现似乎遇到了问题。这就是我们进行“1/n-1 拆分”而不是“0/n”拆分的原因。
因此,心跳扩展主要是这种类似 ping 的约定的形式化,具有自己的初始协商和格式,因此不会出现互操作性问题。
基于 TLS 的实现的主要好处是相同的 SSL 记录处理代码可用于 TLS 和 DTLS。否则,您的 SSL 记录处理代码需要了解底层传输机制。
另一个用途是用于多流可靠传输协议,您可以在该协议上使用 TLS。RFC 中的示例是 SCTP。在这种情况下,有一些用处。
它在 TCP 上的实际使用几乎为零。
TCP 已经有保活(如果存在这个要求,每个 TCP 连接都必须防范“热心防火墙”),所以在 SSL 中重新保活是没有用的。
其它你可能感兴趣的问题