2017-03-27 95 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