https(ssl)协议以及wireshark抓包分析与解密

7 篇文章 0 订阅
7 篇文章 0 订阅

根据之前一篇安全协议的分析中分析了ssl协议,先回顾下ssl协议的内容然后用wireshark来抓包看具体流量包内容。

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

 

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)。



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

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


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

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


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

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

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

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

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


  • 23
    点赞
  • 172
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 使用Wireshark可以抓取并分析HTTP和HTTPS协议的网络数据包。为了抓取和分析HTTPS协议的网络数据包,您需要安装WiresharkSSL/TLS协议分析插件,这样就可以看到HTTPS协议的完整内容,并使用Wireshark的过滤器来分析HTTPS协议的数据包。 ### 回答2: Wireshark是一款开源的网络抓包工具,可以用于抓取网络数据包并进行分析。它支持抓取各种网络协议的数据包,并提供了简单易用的界面和丰富的功能,可以帮助我们深入了解网络通信过程。 首先,我们需要在Wireshark中配置HTTPS抓包的环境。HTTPS是一种加密的HTTP协议,通过SSL或TLS进行数据加密传输,保障通信的安全性。因此,要抓取HTTPS包,我们需要获取网站的SSL证书,并将其导入Wireshark。 在Wireshark中,我们可以选择“Edit”->“Preferences”菜单打开配置对话框。然后,在“Protocols”下拉菜单中选择“SSL”,点击“Browse”按钮,导入我们获取到的SSL证书。之后,Wireshark就能够解密HTTPS数据包,并将其显示为明文。 接下来,我们可以开始抓取HTTPS数据包。在Wireshark主界面的“Capture”菜单中,选择需要监控的网络接口,并设置过滤器,可以使用“ssl”或者“tcp.port == 443”过滤HTTPS流量。点击“Start”按钮开始抓取数据包。 当数据包被抓取后,我们可以在Wireshark的主界面上看到抓到的数据包列表。我们可以根据需要选择其中的一个数据包进行分析。在Wireshark主界面的数据包列表中,双击一个HTTPS数据包,可以展开该数据包的详细信息。 在数据包详细信息中,我们可以查看各个字段的值,如源IP地址、目的IP地址、源端口、目的端口等。对于HTTPS数据包,我们还可以查看SSL相关的信息,如SSL版本、加密套件、证书等。 通过分析数据包,我们可以了解HTTPS通信的具体过程,检查数据包的源和目的,以及数据包的长度、类型等信息。如果发现异常情况,我们可以根据数据包的详细信息进一步分析和排查问题。 总之,Wireshark是一款功能强大的网络抓包工具,通过配置和使用它,我们可以方便地抓取和分析HTTPS数据包,帮助我们深入了解网络通信过程,从而更好地进行网络故障排查和安全分析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值