ssl - TLS 1.2 中的不同通信模式

标签 ssl wireshark tls1.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

我只是对为什么 CertificateServer Hello Done 在另一个包中感到困惑。谁要求服务器这样做?什么原因?

多次刷新页面后,得到第三个:

Wireshark2

握手中只有3个包?漏掉了很多进程,是不是缓存了信息?那么预主 key 呢?

感谢您的回答!

最佳答案

TLS 是基于 TCP 的协议(protocol),即基于流式传输协议(protocol)。对于传输,数据流被拆分成数据包,因此 ServerHelloDone 可能包含在一个数据包或另一个数据包中,甚至拆分为两个数据包。由于大小在您的第二个示例中可见,但在第一个示例中不可见,因此不知道为什么会出现这种差异,但这可能是由握手中包含的证书大小引起的。

至于第三个示例:这是简单的 TLS session 重用,即它继续旧 session ,因此不需要发送服务器证书或类似内容。

关于ssl - TLS 1.2 中的不同通信模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43045303/

相关文章:

go - 如何确认来自 Go 客户端的 gRPC 流量是 TLS 加密的

python - 如何升级openssl版本并将其链接到python 3.6.5

c# - 将服务器/代码升级到 TLS 1.2,事件日志中出现重复错误

http - 处理虚拟主机 http 和 https 的区别

asp.net - HTTPS 内容处理附件

networking - 为什么我安装的Wireshark无法分析RTP协议(protocol)?

node.js - Heroku 上的 HTTPS + SSL - Node + Express

security - GLassfish SSL 配置页面级别

java - 尝试通过 java 驱动程序连接时,SSLHandshake 在 mongodb 服务器上失败