2017-03-27 105 views
0

我使用Wireshark來監控某些網站的軟件包,但發現TLS 1.2有這麼多的通信模式。TLS 1.2中的不同通信模式

第一個是一個通用的一個:

Client: Client Hello 
Server: Server Hello, Certificate, Server Hello Done 
Client: Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message 
Server: Change Cipher Spec, Encrypted Handshake Message 

第二個是如下:

Wireshark1

我只是對爲什麼CertificateServer Hello Done在另一個包困惑。誰需要服務器來做到這一點?爲什麼?

乘清爽頁面後,我拿到了第三個:

Wireshark2

只有3包握手?很多程序錯過了,是因爲信息被緩存了嗎?那麼預主密鑰怎麼樣?

感謝您的回答!

+0

只是爲了避免誤解:「軟件包」由Wireshark解析器創建。這並不一定意味着它們已被服務器以三個包發送。 – Robert

+0

數據包。這個詞是包,而不是包。第二個由發送者或路由器以某種方式分裂,第三個是由於會話恢復而縮短的握手。這裏沒有什麼可擔心的。 – EJP

回答

0

TLS是TCP上的協議,即通過流式傳輸協議。對於傳輸而言,數據流會被拆分爲數據包,因此可能發生ServerHelloDone包含在一個數據包中或另一個數據包中,甚至可能分裂爲兩個數據包。由於大小在第二個示例中可見,但在第一個示例中不可見,因此不清楚差異的原因,但可能由握手中包含的證書大小引起。

至於第三個例子:這很簡單,TLS會話重用,即它繼續舊會話,因此不需要發送服務器證書或類似的。

+0

感謝您的回答!你們很棒! – yomao