在HTTPS系列之密码学基础--证书及签名 中对证书以及签名进行了介绍。本为基于此介绍https的建立过程。
wireshark过滤器捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。 显示过滤器(DisplayFilters):用于在捕捉结果中进行详细查找。
捕捉过滤器在抓抱前进行设置,决定抓取怎样的数据;显示过滤器用于过滤抓包数据,方便stream的追踪和排查。
捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。
语法捕捉过滤器捕捉IP为10.4.1.12或者源IP位于网络10.6.0.0/16,目的IP的tcp端口号在200至10000之间,并且目的IP位于网络 10.0.0.0/8内的所有封包。
显示过滤器协议过滤过滤http2协议: http2
内容过滤过滤get请求: tcp[20:3]==47:45:54(16进制形式,tcp头部一般是20字节,所以这个是对payload的前三个字节进行过滤)
分析一次https连接还是这篇文章https://www.bilibili.com/read/cv7495834
通过wireshark分析其中的一次https连接,过滤规则是 ip.addr==27.115.124.159
三次握手(1)客户端发起SYN请求 seq = 0 (2)服务器端进行确认 Ack=1 向客户端发起连接请求 seq = 0 (3)客户端进行确认Ack = 1 经典的三次握手
Client Hello(4)客户端发送client hello
(5)服务器端进行确认ACK
Server Hello(6)服务器端发送Server Hello,生成一个随机数
(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
CiperSpec Exchage(15)服务器端给出session ticket (16)客户端进行确认
http请求(17)http get请求GET /so/zz.gif?url=https://www.bilibili.com/read/cv7495834&sid=e6352779c080ceddc1bc4c6bbe047b69&token=e46338552974779vcc0/8d0aceerd/dm HTTP/1.1\r\n (18)服务器端进行响应 200 (19)客户端进行确认
断开链接(20)服务器端 Close Notify (21)客户端进行确认 (22)服务器发起FIN请求 冰对客户端进行确认 (23)客户端进行确认 (24)释放连接
https的连接建立过程可参见下图:
写在最后一次简单的https请求竟然有如此复杂的流程,而这一切对用户是透明的,向http设计者致敬。更对https的内容,欢迎关注我的微信公众号。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved