当前位置:首页 > 行业动态 > 正文

https通信过程数据包

HTTPS通信通过TLS握手协商密钥,数据包含加密载荷及TCP/IP头,确保传输安全

HTTPS通信过程数据包解析

TCP三次握手(建立传输通道)

阶段 协议层 数据包类型 内容示例 说明
第1次握手 TCP SYN包 源端口: 随机(如50000)
目标端口: 443
序列号: 0
客户端发起连接请求,携带初始序列号,请求建立TCP连接。
第2次握手 TCP SYN+ACK包 源端口: 443
目标端口: 50000
序列号: 0
确认号: 客户端序列号+1
服务器响应客户端,确认客户端序列号,并携带自己的初始序列号。
第3次握手 TCP ACK包 源端口: 50000
目标端口: 443
确认号: 服务器序列号+1
客户端确认服务器序列号,完成双向连接建立。

SSL/TLS握手(建立安全通道)

阶段 协议层 数据包类型 内容示例 说明
ClientHello TLS Handshake协议包 支持的TLS版本(如TLS 1.2/1.3)
支持的加密算法列表
随机数(Client Random)
客户端发起握手,告知服务器支持的协议和加密套件。
ServerHello TLS Handshake协议包 选定的TLS版本
选定的加密算法(如ECDHE-RSA)
服务器随机数(Server Random)
服务器响应,确认协议参数并生成会话ID。
服务器证书传输 TLS Handshake协议包 (包含公钥、证书链、签名) 服务器发送数字证书,用于客户端验证身份和获取公钥。
密钥交换 TLS Handshake协议包 临时公钥(用于ECDHE)
加密材料(如签名)
服务器生成临时公钥,客户端用其计算共享密钥。
客户端密钥交换 TLS Handshake协议包 预主密钥(Pre-Master Secret)
加密签名(用服务器公钥加密)
客户端生成预主密钥,通过服务器公钥加密后发送。
完成握手 TLS Finished包 校验值(基于握手内容计算的MAC) 双方确认握手成功,生成会话密钥(对称密钥)。

应用层数据传输

阶段 协议层 数据包类型 内容示例 说明
客户端请求 HTTPS HTTP请求包 GET /index.html HTTP/1.1
Host: example.com
加密数据块
客户端发送加密的HTTP请求,数据经会话密钥(如AES)加密。
服务器响应 HTTPS HTTP响应包 HTTP/1.1 200 OK
加密数据块(HTML内容)
服务器返回加密的HTTP响应,数据同样用会话密钥加密。

TCP连接关闭

阶段 协议层 数据包类型 内容示例 说明
客户端FIN包 TCP FIN+ACK包 序列号: 当前传输序列号
FIN标志: 1
客户端主动关闭连接,发送FIN报文。
服务器FIN+ACK包 TCP FIN+ACK包 确认号: 客户端FIN序列号+1
FIN标志: 1
服务器确认关闭请求,并发送自身FIN报文。
客户端ACK包 TCP ACK包 确认号: 服务器FIN序列号+1 客户端确认服务器关闭请求,连接正式终止。

相关问题与解答

问题1:HTTPS和HTTP的主要区别是什么?

解答

https通信过程数据包  第1张

  • 传输安全:HTTPS通过TLS/SSL对数据加密,防止中间人窃听;HTTP是明文传输。
  • 端口号:HTTPS默认使用443端口,HTTP使用80端口。
  • 证书验证:HTTPS需要服务器提供有效数字证书,客户端验证其合法性;HTTP无此步骤。
  • 性能开销:HTTPS因加密/解密操作会增加CPU消耗,但现代硬件已能高效处理。

问题2:为什么TLS握手需要两次随机数(Client Random和Server Random)?

解答

  • 防止重放攻击:两次随机数结合其他参数(如时间戳)生成唯一的会话密钥,确保每次通信的密钥不同。
  • 增强安全性:随机数参与密钥计算,增加攻击者猜测或破解密钥的难度。
  • 兼容性:部分算法(如DH密钥交换)依赖双方
0