一个小时后,防火墙使TCP连接超时。
沿着该连接从服务器发送消息会导致防火墙发出[RST,ACK]。
只要是原始连接的一部分,从客户端发送的消息就会被简单地丢弃。
如果从客户端建立了新的连接,则它将顺利通过防火墙。
这是正常现象-路由器,防火墙,VPN,NAT等都超时连接,并且要求您重新连接新的握手或执行TLS恢复。但是,有什么方法可以继续使用TLS会话而不“恢复”它吗?我之所以这样说,是因为TLS会话永远不会结束,而只是底层的TCP。
由于TLS会话独立于TCP,因此我们不必仅由于某些中间设备阻止我们而恢复已经处于活动状态的TLS会话。我们可以在同一套接字上执行任何类型的“ TCP简历”吗?
答案 0 :(得分:1)
这在TLS中称为“会话恢复”。
引用最新标准(https://tools.ietf.org/html/rfc8446):
尽管TLS PSK可以带外建立,但PSK也可以是 在先前的连接中建立,然后用于建立新的连接 连接(使用PSK进行“会话恢复”或“恢复”)。一旦 握手已完成,服务器可以向客户端发送PSK 对应于从初始名称中派生的唯一密钥的身份 握手(请参阅第4.6.1节)。然后客户端可以使用该PSK 未来握手中的身份以协商相关联的使用 PSK。如果服务器接受PSK,则服务器的安全上下文 新连接以加密方式绑定到原始连接 从初始握手中获得的密钥用于引导 加密状态,而不是完整的握手。在TLS 1.2和 下面,此功能由“会话ID”和“会话 票证” [RFC5077]。这两种机制在TLS 1.3中都已废弃。
有关详细信息,请参见RFC的2.2和4.6.1节。
在TCP级别上不能恢复,因为新的TCP连接将需要从新的本地端口开始(否则,任何流量仍将被防火墙状态跟踪捕获)。