SSL是否内置了可以检测掉线连接的内容?

时间:2016-09-09 19:29:41

标签: ssl

考虑这种情况:

[wanting to write]       [sent token success] 
Application -------> SSL ----------->
                                     | *peer drops*
              [waiting to read]      | 
           ***blocked***<------------ 

换句话说,您的应用程序想要写一些东西,但SSL内部状态是WANT_READ。另一方面,对等连接已经丢失。

SSL可以通过对它自己进行一些保持活检来检测到这一点吗?在这种情况下你能做什么?

2 个答案:

答案 0 :(得分:0)

SSL通常会检测到底层传输层(即TCP)的连接问题。这意味着通过使用TCP keep alive,可以检测到对等方是否在没有正确连接的情况下消失。除此之外,在TLS级别还有heartbeat extension,但与TCP保持活跃相反,它并未得到普遍支持。

答案 1 :(得分:0)

如果SSL通过SSL close_notify消息检测到从SSL的角度未正确终止的连接,它会将其视为截断攻击,并会给您一条错误消息或异常,取决于您使用的API。

  

您的应用程序想要写一些东西,但SSL内部状态是WANT_READ。另一方面,对等连接已经丢失。

它要读取的内容是close_notify或错误消息或异常。无论如何,当它说WANT_READ时,你必须阅读。