我使用Wireshark
来监控某些网站的包,但发现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
第二个如下:
我只是为什么Certificate
和Server Hello Done
在另一个包中感到困惑。谁要求服务器这样做?出于什么原因?
在多次刷新页面后,我得到了第三个:
握手中只有3个包裹?错过了很多进程,是因为信息是缓存的?那么预主密钥怎么样?
感谢您的回答!
答案 0 :(得分:0)
TLS是TCP上的协议,即通过流传输协议。对于传输,数据流被分成数据包,因此可能发生ServerHelloDone包含在一个数据包中或另一个数据包中或甚至分成两个数据包。由于大小在第二个示例中可见但在第一个示例中不可见,因此不知道为什么差异确切,但可能是由握手中包含的证书大小引起的。
至于第三个例子:这是一个简单的TLS会话重用,即它继续较旧的会话,因此不需要发送服务器证书或类似的。