wireshark解密SSL报文

  1. 概述
    在SSL/TLS通信调试的过程中,用wireshark捕获的SSL/TLS通信的应用层报文是密文(见图1,协议类型只能解析到TCP),无法直接进行分析,此时我们需要掌握如何通过wireshark解密SSL/TLS报文、利用wireshark网络协议解析器,分析通信过程中的问题。
    wireshark解密SSL报文_第1张图片

    				图1.通讯过程中SSL加密报文
    
  2. 前置要求
     基本知识

  • 网络跟踪: Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。通信过程中通过捕获网络封包后的分析来跟踪需要的网络信息。
  • TCP/ IP和SSL/ TLS协议:TLS与SSL在传输层对网络连接进行加密。
  • 证书和公钥和私钥的使用:SSL通信过程中必备元素。
  • Wireshark的网络协议解析器:捕包过程中针对固定的协议的自动解析功能
     支持SSL解密的Wireshark版本:截图所用wireshark版本为Version 1.12.0
     密钥格式为RSA格式
  1. 设置步骤
    有私钥,wireshark即可自动在抓包过程中解开SSL通信报文,设置步骤:
  2. 打开wireshark,捕包。
  3. 选择Edit>Preferences
    wireshark解密SSL报文_第2张图片

图2.偏好设置
wireshark解密SSL报文_第3张图片

  1. 选择Preferences里的Protocols

图3.选择协议
在这里插入图片描述

  1. 下滚选择SSL(协议)

图3.选择协议SSL
5. 在RSA keys list中,提供,,,
是服务器的IP地址
是服务器监听的端口
是ssl(小写,大写不被识别)
是私钥放置的位置
wireshark解密SSL报文_第4张图片

图4.编辑RSA key列表

wireshark解密SSL报文_第5张图片

图4.添加RSA key列表信息

6.设置完成后选择OK即可解密SSL应用报文

wireshark解密SSL报文_第6张图片

图5.ssl解密捕包信息
从图5中我们可以清晰的看到服务器与终端的SSL通信过程,握手->交换证书->协商密钥->应用数据传输。
4. 问题定位
wireshark解密SSL报文_第7张图片

					图6.服务器端证书错误的通信捕包

wireshark解密SSL报文_第8张图片

					图7.通信错误的SSL层信息解析

wireshark解密SSL报文_第9张图片

						图8.客户端证书错误的通信捕包

 调试过程中经常遇到的就是证书错误。图6和图7显示了,通信过程中客户端向服务器回复了bad certificate的包然后中断通信。此时应检查服务器端的包的格式是否符合要求,是否为过期证书或自签名证书等不合法的证书。图8显示客户端证书错误,此时应查证客户端的系统时间,证书合法性等问题。	

你可能感兴趣的:(ssl,wireshark)