TLS 1.2 中的不同通信模式
Different communicating patterns in TLS 1.2
我用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
第二个如下:
Wireshark1
我只是对为什么 Certificate
和 Server Hello Done
在另一个包中感到困惑。谁要求服务器这样做?什么原因?
多次刷新页面后,得到第三个:
Wireshark2
握手中只有3个包?漏掉了很多进程,是不是缓存了信息?那么预主密钥呢?
感谢您的回答!
TLS 是基于 TCP 的协议,即基于流式传输协议。对于传输,数据流被拆分成数据包,因此 ServerHelloDone 可能包含在一个数据包或另一个数据包中,甚至拆分为两个数据包。由于大小在您的第二个示例中可见,但在第一个示例中不可见,因此不知道为什么会出现这种差异,但这可能是由握手中包含的证书大小引起的。
至于第三个示例:这是简单的 TLS 会话重用,即它继续旧会话,因此不需要发送服务器证书或类似内容。
我用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
第二个如下:
Wireshark1
我只是对为什么 Certificate
和 Server Hello Done
在另一个包中感到困惑。谁要求服务器这样做?什么原因?
多次刷新页面后,得到第三个:
Wireshark2
握手中只有3个包?漏掉了很多进程,是不是缓存了信息?那么预主密钥呢?
感谢您的回答!
TLS 是基于 TCP 的协议,即基于流式传输协议。对于传输,数据流被拆分成数据包,因此 ServerHelloDone 可能包含在一个数据包或另一个数据包中,甚至拆分为两个数据包。由于大小在您的第二个示例中可见,但在第一个示例中不可见,因此不知道为什么会出现这种差异,但这可能是由握手中包含的证书大小引起的。
至于第三个示例:这是简单的 TLS 会话重用,即它继续旧会话,因此不需要发送服务器证书或类似内容。