在HTTPS系列之密码学基础--证书及签名 中对证书以及签名进行了介绍。本为基于此介绍https的建立过程。

Wireshark

过滤器

捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。显示过滤器(DisplayFilters):用于在捕捉结果中进行详细查找

捕捉过滤器在抓抱前进行设置,决定抓取怎样的数据;显示过滤器用于过滤抓包数据,方便stream的追踪和排查。

捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。

语法
捕捉过滤器

wireshark监测端口号 wireshark 端口号_wireshark 端口号过滤

捕捉IP为10.4.1.12或者源IP位于网络10.6.0.0/16,目的IP的TCP端口号在200至10000之间,并且目的IP位于网络 10.0.0.0/8内的所有封包。

wireshark监测端口号 wireshark 端口号_wireshark https_02

显示过滤器
协议过滤

wireshark监测端口号 wireshark 端口号_wireshark 端口号过滤_03

过滤http2协议: http2

wireshark监测端口号 wireshark 端口号_https端口号_04

内容过滤

wireshark监测端口号 wireshark 端口号_wireshark 端口号过滤_05

过滤get请求:tcp[20:3]==47:45:54(16进制形式,tcp头部一般是20字节,所以这个是对payload的前三个字节进行过滤)

wireshark监测端口号 wireshark 端口号_https端口号_06

分析一次https连接

还是这篇文章https://www.bilibili.com/read/cv7495834

wireshark监测端口号 wireshark 端口号_客户端_07

通过wireshark分析其中的一次https连接,过滤规则是 ip.addr==27.115.124.159

wireshark监测端口号 wireshark 端口号_https端口号_08

三次握手

(1)客户端发起SYN请求 seq = 0 (2)服务器端进行确认 Ack=1 向客户端发起连接请求 seq = 0 (3)客户端进行确认Ack = 1 经典的三次握手

Client Hello

(4)客户端发送client hello

wireshark监测端口号 wireshark 端口号_wireshark 端口号过滤_09

(5)服务器端进行确认ACK

Server Hello

(6)服务器端发送Server Hello,生成一个随机数

wireshark监测端口号 wireshark 端口号_wireshark https_10

(7)客户端进行确认Ack = 1411 Seq = 518 (8)服务器端进行确认 (9)客户端进行确认

Server Certificates

(10)服务器端发送证书Certificate (11)客户端进行确认

Server Hello Done

(12)服务器密钥交换 Server Key Exchange Server Hello Done

(13)客户端进行确认

ClientKey Exchange Message

(14)客户端进行密钥交换 Change Ciper Spec

wireshark监测端口号 wireshark 端口号_wireshark 端口号过滤_11

CiperSpec Exchage

(15)服务器端给出session ticket (16)客户端进行确认

wireshark监测端口号 wireshark 端口号_wireshark 端口号过滤_12

http请求

(17)http get请求GET /so/zz.gif?url=https%3A%2F%2Fwww.bilibili.com%2Fread%2Fcv7495834&sid=e6352779c080ceddc1bc4c6bbe047b69&token=e46338552974779vcc0/8d0aceerd/dm HTTP/1.1\r\n (18)服务器端进行响应 200 (19)客户端进行确认

断开链接

(20)服务器端 Close Notify (21)客户端进行确认 (22)服务器发起FIN请求 冰对客户端进行确认 (23)客户端进行确认 (24)释放连接

https的连接建立过程可参见下图:

wireshark监测端口号 wireshark 端口号_wireshark https_13