HTTP和HTTPS都是网络传输协议,而HTTPS在传输过程中可以通过TLS/SSL协议协商出一个有状态的连接以传输数据,客户端和服务器协商各种参数用于创建安全连接。那么传输过程中所有的应用层数据都会被进行加密,以免用户敏感信息被第三方获取。近些年来,有许多知名网站都已经全站支持HTTPS了,如百度、谷歌等。
那么问题来了,既然所有上层数据是在传输过程中是被加密的,那么在中间节点对HTTPS的流量进行抓包,有办法对其加密数据进行解密解码吗?当然也有解决办法,但前提是得有HTTPS服务器证书。
接下来介绍一下两种对HTTPS进行解码的方法及过程。当然,证书格式切记要转成.pem格式哟。
1. Wireshark
用Wireshark打开HTTPS数据包,第10和第11个包被TLS/SSL成功加密,仅仅显示‘Application Data’而不能看到HTTP的payload。
图:Wireshark HTTPS加密报文
图:Wireshark SSL解密内容
在Wireshark左上角菜单栏里点击‘编辑’,选择首选项。一旦进入首选项窗口,左边栏里在‘Protocol’下面找到‘SSL’。随后点击‘Edit’进行配置。
图:Wireshark SSL解密配置
此例中,172.22.34.133是Web服务器,端口为443(有时也为8443等其他端口,配置之前先确认TLS/SSL的端口),被加密协议为http,在‘Key File’一栏中加上.pem证书的路径。
图:Wireshark SSL解密配置
点击确定之后,Wireshark就会自动对HTTPS包进行解密。这时我们能看到原先第10与第11个加密过的数据包现在被成功解密解码,显示出HTTP的内容。
图:Wireshark HTTPS解密
2. NetSensor NPMD网络性能分析与诊断系统
如果小伙伴们的公司部署了神州灵云的网络性能分析与诊断系统,那么不光能对所监控的网络业务进行全方位的分析诊断,而且还能通过这个平台对HTTPS进行解密解码。
首先得把.pem证书名字修改成Server_IP-Port.pem。例如,此例中服务器IP为172.22.32.133,TLS/SSL端口为443,那么.pem文件名就得改成172.22.34.133-443.pem。然后把172.22.34.133-443.pem放到/opt/NetSensor/app/config/httpsPem/目录下。(系统及服务无需重启)
图:HTTPS解密证书
随后在HTTPS会话详单中选中一条详单记录,点击HTTPS解码按钮。
图:HTTPS会话详单
一旦HTTPS会话解码成功,系统就会自动跳出HTTPS解码详单窗口,这时可以查看解码之后的HTTP payload的详细内容。
图:HTTPS解码详单
以上就是通过wireshark和神州灵云的NPMD系统对HTTPS数据包进行解码的步骤详情,如果大家对HTTPS解码或者其他网络相关的有任何疑问,欢迎留言,一起学习进步。
领取专属 10元无门槛券
私享最新 技术干货