HTTP是一种应用程序协议,可以在不影响HTTP应用程序(性能除外)的情况下关闭并重新打开底层TCP连接。
通过使用HTTP1.1,我们使用持久连接,但服务器或客户端仍然可以在任何时候关闭连接。
对于安全性,HTTP通过SSL/TLS使用TCP。
我的理解是,SSL的行为很像一个应用程序,至少这是TCP如何“查看”SSL。
我的问题是,如果基础TCP套接字在安全连接建立后的某一点关闭,这是否意味着SSL会话失效,各方应该重新开始ssl握手?
或者底层的TCP连接与TLS会话无关?http持久连接和ssl会话
谢谢!
@Eugene:在握手之后,由于已经交换了安全细节(算法等),所以SSL对等部分具有建立安全通道(加密/解密)所需的信息。这部分据我所知,似乎与底层无关TCP连接,它获得加密块并通过套接字传输它们。如何关闭tcp连接,使之前同意的SSL方(客户端/服务器)的安全细节无效?这部分我不明白。请您详细说明一下吗? – Cratylus
@ user384706从技术角度来看,SSL/TLS不关心连接,可以通过UDP使用(UDP使用TLS的修改,名为DTLS),命名管道,鸽子邮件等(我们曾经实现过它通过基于消息的通信信道)。但是,人们一致认为,为防止底层通道的某些攻击断开,SSL连接也会自动失效。一般来说,如果您同时实现通信的客户端和服务器端,并且您也控制SSL功能(例如使用我们的组件时),则不会强制您执行此操作。 –
@Eugene:那么认为TLS会议无效的最佳做法是?它不是由任何RFC强制规定的,也不是由TLS RFC暗示的,对吗? – Cratylus