5GC基础自学系列 | Wireshark解密HTTPs,还原HTTP2
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5GC基础自学系列 | Wireshark解密HTTPs,还原HTTP2相关的知识,希望对你有一定的参考价值。
视频来源:51学通信《5G核心网基础、协议与信令流程》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,谢谢支持!
附上汇总贴:5G基础自学系列 | 汇总
主要内容
介绍通过Chrome浏览器、Wireshark还原HTTPs方法
介绍抓取HTTP2报文,并还原成明文
HTTPs解密的背景
HTTPs采用了非对称加密(公钥加密、私钥解密),wireshark抓包默认是无法解析的。如图:
遗憾的是,很多网站都启用了HTTPs加密。
在学习5GC时, 会用到HTTP 2协议, 很多网站也都支持HTTP 2, 但只支持启用了HTTPs的HTTP2。即使抓到了包, 也无法解析, 不利于我们的学习。
HTTPs解密方法
方法一:能获取到私钥, 导入到Wireshark中。
方法二:某些浏览器(如Google的Chrome)支持将TLS(HTTP本身不是一个协议,其加密依赖的是下层的TLS)会话中使用的密钥保存在外部文件中,供Wireshark解密使用。
实验环境:
- Wireshark 3.2.1
- Chome版本79.0.3945.130
- Win 10(win 7也可以)
下测试通过。
HTTPs解密步骤
步骤:
1)添加windows的环境变量:
变量名:SSLKEYLOGFILE
值:c:\\temp\\key.log(这个文件用来存放密钥)
2)设置Wireshark中的TLS参数:
编辑->首选项->Protocol->TLS,填写(pre)-master-secret log filename为c:/temp/key.log(与第1步文件名相同)
抓取HTTP2网站报文
上述步骤完成, Wireshark此时已经可以解密了。百度下找一些支持HTTP 2的网站来尝试抓包, 可以看到, 可以解析出明文的HTTP 2报文。
从图中可以看到, 先是TCP三次握手, 然后是Client和Server完成TLS的协商(互相发Hello),推送密钥。然后Chrome拿到密钥,写入到文件里,并解密。还原成明文。后面看到的HTTP 2都是明文了。
以上是关于5GC基础自学系列 | Wireshark解密HTTPs,还原HTTP2的主要内容,如果未能解决你的问题,请参考以下文章