wireshark抓包分析 --https

水深无声 2022-05-22 09:25 692阅读 0赞

https://blog.csdn.net/u010726042/article/details/53408077

SSL协议栈位置介于TCP和应用层之间,分为SSL记录协议层和SSL握手协议层。其中SSL握手协议层又分为SSL握手协议、SSL密钥更改协议和SSL警告协议。SSL握手协议作用是在通信双方之间协商出密钥,SSL记录层的作用是定义如何对上层的协议进行封装。SSL记录协议将数据块进行拆分压缩,计算消息验证码,加密,封装记录头然后进行传输。

Center

SSL握手:

1、 初始化阶段。客户端创建随机数,发送ClientHello 将随机数连同自己支持的协议版本、加密算法和压缩算法发送给服务器。服务器回复ServerHello将自己生成的随机数连同选择的协议版本、加密算法和压缩算法给客户端。

2、 认证阶段。服务器发送ServerHello的同时可能将包含自己公钥的证书发送给客户端(Certificate),并请求客户端的证书(Certificate Request)。

3、 密钥协商阶段。客户端验证证书,如果收到Certificate Request则发送包含自己公钥的证书,同时对此前所有握手消息进行散列运算,并使用加密算法进行加密发送给服务器。同时,创建随机数pre-master-secret并使用服务器公钥进行加密发送。服务器收到这个ClientKeyExchange之后解密得到pre-master-secret。服务器和客户端利用1阶段的随机数,能够计算得出master-secret。

4、 握手终止。服务器和客户端分别通过ChangeCipherSpec消息告知伺候使用master-secret对连接进行加密和解密,并向对方发送终止消息(Finished)。

Center 1

HTTPS(Hypertext TransferProtocol over Secure Socket Layer,基于SSL的HTTP协议),端口443,需要向CA申请证书,通过SSL握手建立安全通道,利用协商密钥对数据进行对称加密通信。

使用wireshark过滤ssl流量,可以看到有几个明显的ssl会话建立包,例如client hello,server hello等;

Center 2

首先发送ClientHello 将随机数连同自己支持的协议版本、加密算法和压缩算法发送给服务器,流量包里也能看到客户端发送支持的加密算法

Center 3

Center 4

server hello包里能看到服务端选择的加密算法;

Center 5

服务器发送ServerHello的同时可能将包含自己公钥的证书发送给客户端(Certificate);

Center 6

客户端验证证书,如果收到Certificate Request则发送包含自己公钥的证书,同时对此前所有握手消息进行散列运算,并使用加密算法进行加密发送给服务器;

Center 7

wireshark抓到的https流量包经过了ssl加密,那么我们如何才能查看解密的数据呢?Firefox和Chrome浏览器都支持用日记文件的方式记录下用来加密TLS数据包对称会话秘钥的,可以通过配置sslkeyfile的链接,将wireshark的中ssl解密指向该文件即可。环境变量中新建用户变量SSLKEYLOGFILE=/sslkey.log文件,之后再wireshark中ssl配置中制定该文件位置即可,具体配置请参考:

配置解密ssl参考链接—http://www.2cto.com/article/201502/377678.html

Center 8

配置完成,重启浏览器之后,就会发现wireshark中多了一个Decrypted SSL data选项,点击即可查看解密明文信息;

Center 9

发表评论

表情:
评论列表 (有 0 条评论,692人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Wireshark

    Wireshark 也可以在各个平台都可以安装使用,不过它的功能侧重点和 Charles&Fiddler 有所不同,它主要用来抓取网络中的所有协议的数据报文,对于分析网络...

    相关 wireshark分析

    分析一下wireshark出现的一些常见提示: TCP Out\_of\_Order 一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单