wireshark https_访问一次百度网页,你都经历了什么?https及tcp协议揭秘

打开https://www.baidu.com/ 网页一个简单的动作,都经历了什么?你想探究内部的原理吗?那我们一起去探索吧

1.准备工作

安装好wireshark。Wireshark(前称Ethereal)是一个网络报文分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

2.抓取报文

打开wireshark,并开启监听模式,打开浏览器,输入https://www.baidu.com/ ,等待返回后,关闭浏览器,最后停止wireshark监听,并保存文件。

3.分析报文

3.1 查看百度的地址,cmd命令行nslookup

C:甥敳獲dell>nslookup www.baidu.com

服务器: ns-pd.online.sh.cn

Address: 202.96.209.133

非权威应答:

名称: www.a.shifen.com

Addresses: 115.239.210.27

115.239.211.112

Aliases: www.baidu.com

复制代码

从上面可以知道,先访问的是DNS服务器,上篇文章<

你所忽略的DNS---DNS实战及深度解读请添加链接描述

已经详细描述了dns协议的交互过程。本节我们重点查看和百度网站的交互。

3.2 分析报文

从上面可以知道百度有两个IP地址,

115.239.210.27

115.239.211.112

从wireshark抓取的情况看,给我提供服务的是第一个ip地址

115.239.210.27

那么,我就可以根据ip地址在wireshark上进行分析了

(ip.src==172.16.86.71 and ip.dst_host==115.239.210.27) or (ip.src==115.239.210.27 and ip.dst_host==172.16.86.71)

如下图所示:

1a2dece02bf4e6b524518b7bc0499b04.png

3.3 分析过程

通过上面的报文我们可以看到本地机器(172.16.86.71)与百度先进行了tcp协议的交互,然后TLSv 1.2,然后tcp和TLSv 1.2交互。

3.3.1 tcp的三次握手

68adbf911f473a95a90af3dd2cbf032f.png

第一次握手报文,从客户端到服务器端

612337088f2e6134398347253254124c.png

第二次握手,从服务器端到客户端

de14039280354e9a0be2d4c3fe6a1d0e.png

第三次握手,从客户端到服务器端

2581ec0ccbc6c702993a74f6ec4c27e0.png

总结,从上面的分析,可以看出

序号123,124,125是一个握手过程

序号122,126,127是一个握手过程。

3.3.2 https

TLS概述:TLS和他的前身SSL,都是提供在计算机网络上安全通信的密码学协议,最常见就是用于HTTPS中,用来保护Web通信的。

发展史:网景公司开发了原始的SSL协议,SSL 1.0因为本身存在着严重的安全问题,所以从未被公开发布。只有SSL 2.0和SSL 3.0是被公开发布和使用的。后来为了对SSL进行标准化,推出了TLS,TLS 1.0就对应着SSL 3.0。TLS后来又有了1.1版本和1.2版本,1.3版本目前还在草案中。现在除了TLS 1.2和TLS 1.3草案之外,所有早期的协议都存在安全性问题,不建议使用。

https交互流程,如下图所示

ff6b9dcb27297b341bf25bdb4d5ef94a.png

第一阶段

1.client hello

e605a422ed63b0db657f42cc78bbefc7.png

tcp响应

b991f357142f063763614477a4cc71f5.png

2.服务端

96aa149d0d06f3f21ce573891344cc3b.png

3.Change Cipher Spec

364de9fe6747f3779717d6753e940f5a.png

客户端tcp响应

ce42ace873971976a25d7ea991ccc1dc.png

4.Encrypted Handshake Message

34ebde18a9a315a6a3b7bd69e04557d5.png

客户端发送请求

440474ee2bb90f0d231dc2ccb75a700c.png

5.传送数据

235ffe5999de305af0e3442f14f4cb91.png

6.关闭浏览器退出传送数据

e038a12d87a606094970b361a1cffae5.png

3.3.3 4次挥手

a61404aa5dc2d92339fa6e0d83130b2d.png

1.第一次挥手

97c74dfdccd18b66e92088033ac4e957.png

2.第二次挥手

35110727c333bebe5da96b436cc0f7e0.png
  1. 第三次挥手
a86cafdc3d99e6dbc4297dba90d506e0.png

4.第四次挥手

ea3d87ffe65a8dba388451fc4f0749b6.png

总结:第三次挥手和第四次挥手之间seq和ack倒置了。

参考资料

【1】https://segmentfault.com/a/1190000014740303?utm_source=tag-newest

【2】https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650123669&idx=1&sn=55743603e490373474be439cb35430ae&chksm=f36bb0b4c41c39a2cfb36d4e362b932a7dcee682a26b78570050ee5860a14be5e021155a7bfe&scene=27#wechat_redirect

【3】https://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247486411&idx=2&sn=18f4245ae36c37ccd8d261114f4a453b&chksm=fa49747acd3efd6cddee211efa6cb695a69776cc780aa41d64096958859307b9e5850edbf574&scene=27#wechat_redirect

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值