打开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)

如下图所示:




Wireshark SMTP wireshark smtp怎么看服务器地址_SSL


3.3 分析过程

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

3.3.1 tcp的三次握手


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark抓取https_02


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


Wireshark SMTP wireshark smtp怎么看服务器地址_Wireshark SMTP_03


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


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark https_04


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


Wireshark SMTP wireshark smtp怎么看服务器地址_SSL_05


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

序号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交互流程,如下图所示


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark抓取https_06


第一阶段

1.client hello


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark抓取https_07


tcp响应


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark抓取https_08


2.服务端


Wireshark SMTP wireshark smtp怎么看服务器地址_Wireshark SMTP_09


3.Change Cipher Spec


Wireshark SMTP wireshark smtp怎么看服务器地址_SSL_10


客户端tcp响应


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark https_11


4.Encrypted Handshake Message


Wireshark SMTP wireshark smtp怎么看服务器地址_SSL_12


客户端发送请求


Wireshark SMTP wireshark smtp怎么看服务器地址_SSL_13


5.传送数据


Wireshark SMTP wireshark smtp怎么看服务器地址_SSL_14


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


Wireshark SMTP wireshark smtp怎么看服务器地址_SSL_15


3.3.3 4次挥手


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark https_16


1.第一次挥手


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark https_17


2.第二次挥手


Wireshark SMTP wireshark smtp怎么看服务器地址_SSL_18


  1. 第三次挥手


Wireshark SMTP wireshark smtp怎么看服务器地址_wireshark https_19


4.第四次挥手


Wireshark SMTP wireshark smtp怎么看服务器地址_Wireshark SMTP_20


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