Wireshark抓包图解HTTPS连接过程

概述

图1.1是通过Wireshark抓到的HTTPS(TLS1.2)连接过程的数据包

数据包中的client端ip地址是192.168.1.51,是一部iOS手机;server端ip地址是54.213.131.0,是AWS的某台服务器。

数据包主要分为三部分:

红色标记部分:TCP三次握手

绿色标记部分:TLS1.2握手交换密钥并确定加密方式

蓝色标记部分:HTTPS正式通信

Wireshark的抓包展示栏从左至右分别是: 消息ID(no.),消息时间戳(time),消息请求端ip地址(source),消息目标端ip地址(destination), 使用协议(protocol),消息长度(length),消息描述(info),下面会对数据包进行逐条解释

Wireshark抓包图解HTTPS连接过程_第1张图片
图1.1

一、TCP握手消息

no.89 client向server发起的TCP连接请求的第一次握手,发送一个SYN包,Seq=0,TCP连接有两个基本要素:ip和port,443是HTTPS的端口号

no.91 server向client回复的TCP第二次握手,发送一个SYN包和ACK包,Seq=0, Ack=no.89的Seq+1, 所以Ack=0+1

no.92 client向server端发起的TCP第三次握手,发送一个ACK包,Ack=no.91的Seq+1,所以Ack=0+1

以上三个消息就完成了HTTPS中的TCP握手阶段,由此可以看出HTTPS是基于TCP的连接成功的。

二、TLS1.2/SSL握手消息

HTTPS = HTTP + SSL,如果是HTTP协议,则没有SSL握手过程,直接进入第三步

no.93 client向server发起Hello消息,这里面主要包含五种信息(图2.1):

    1. client的TLS版本

    2. client支持的加密方式(图2.2)

    3. client支持的压缩方式

    4. 会话ID

    5. 客户端随机数Random1


Wireshark抓包图解HTTPS连接过程_第2张图片
图2.1
Wireshark抓包图解HTTPS连接过程_第3张图片
图2.2

no.98 server向client回复一个Ack表示no.93的包已经收到,这个是基于TCP的确认收到。

no.99 server向client发送Hello消息, 这里面主要包含五种信息(图2.3)

    1. 采用TLS的版本

    2. 在no.93中client支持的加密方法列表选取的加密方式

    3. 在no.93中client支持的压缩方式列表选取的压缩方式

    4. 服务器的随机数Random2

    5. 会话ID

Wireshark抓包图解HTTPS连接过程_第4张图片
图2.3

no.102 server向client发出三个包(见图2.4):

    1.Certificate 服务器的公钥

    2.Server Key Exchange Server端计算加密的参数,如果是DH加密则需要这一步(见图2.5)

    3.Server Hello Done 握手结束事件


Wireshark抓包图解HTTPS连接过程_第5张图片
图2.4


Wireshark抓包图解HTTPS连接过程_第6张图片
图2.5

no.103-105 对TCP包的ACK

no.106 client向server发出三个包(见图2.6):

    1. Client Key Exchange   客户端验证no.102的公钥的合法性后,生成一个随机数Random3,通过公钥对Random3进行非对称加密发送给server端,server端通过私钥进行解密;至此client和server都存在Random1,2,3 三个变量,通过同一种加密算法计算出相同的加密密钥。

    2. Change Cipher Spec  client通知server进入对称加密模式

    3. Encrypted Handshake Message client将之前握手消息通过计算出的密钥加密发给server, 如果server能解析出来则说明密钥一致; 这是client第一条加密消息

Wireshark抓包图解HTTPS连接过程_第7张图片
图2.6

no.109 server向client发送两个包(见图2.7)

    1. Change Cipher Spec server通知client进入对称加密模式

    2. Encrypted Handshake Message server将之前握手消息通过计算出的密钥加密发给client, 如果client能解析出来则说明密钥一致; 这是server第一条加密消息


Wireshark抓包图解HTTPS连接过程_第8张图片
图2.8



直到no.109消息,整体HTTPS的连接过程已经结束,剩下为正式通信数据

最后,附上整个的HTTPS连接过程的时序图(图3.1)


Wireshark抓包图解HTTPS连接过程_第9张图片
图3.1

你可能感兴趣的:(Wireshark抓包图解HTTPS连接过程)