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