HTTPS协议实现对应用层数据的加密,实现传输过程数据的机密性、完整性。众所周知,在SSL1.2版本之后,TLS协议广泛应用在HTTPS的应用场景中。
为了深入学习TLS协议细节,我们可以自行搭建TLS明文分析实验环境。本文将分享内容包括:通过导出本地浏览器的TLS加密密钥,并添加至wireshark工具中,实现wireshark对HTTPS数据的透明解析,以便于我们深入理解TLS的握手步骤,应用层数据传输等详细内容。
一、 TLS密文抓包
为了对比TLS明文分析效果,先通过Wireshark工具,抓取TLS密文数据包。
1、开启wireshark开始抓包
双击选中抓包的网卡,此处选择“以太网”。
2、访问自行搭建的https协议网站的页面(此处,我们自行搭建了一个可接受短信验证码的网站)。
3、在登录页面选择短信登录
在登录页面中,输入自己注册的手机号,并通过短信验证码进行登录。如下图所示。
4、分析
关闭浏览器页面,停止wireshark抓包。点击“wireshark”上方红框按钮,停止抓包。
过滤出TLS数据(HTTPS),在过滤框中输入“tls”。可以看出,所有应用层数据已进行加密。
二、 TLS明文环境搭建和明文数据分析
5、导出浏览器TLS密钥
在系统属性下的环境变量处,增加名为“SSLKEYLOGFILE”的环境变量,指定导出路径和文件名称,该文件无需手工建立,当打开浏览器,系统会自行建立。
6、使用TLS密钥解密wireshark数据。
配置tls协议。点击wireshark“编辑”-->“首选项”-->“协议”-->“TLS”-->“(Pre)-Master-Secret log filename”,在此处,将上一步上的变量值填入即可(或找开浏览器,在该路径下生成log文件,然后点击“Browse”手工找到也可)。
wireshark中已解密tls应用层数据。
7、跟踪TLS流
在目标网站地址的tls数据包上,点击右键,选择跟踪TLS流。
在跟踪流框中,即可看到该流的上下文相关的数据包。在下方查找框中,输入关键字,此处从网页上得知sms(短信)关键字,然后点击“查找下一个”。在命中的数据上下文中,寻找关键字,如下图的红框中,可看到此次填入的手机号和短信验证码。
三、 结语
通过自行搭建TLS明文分析环境,有助于深入理解、学习TLS协议原理,以及实际的协议通信细节。
文章作者严波:深信服安全服务认证专家,产业教育中心资深讲师,网络安全等级保护体系专家,网络安全高级咨询顾问,中国网络空间安全协会会员,中国计算机学会会员,持有CISAW、CISP、CCNP等行业证书;负责过省级重大网络安全项目的策划、设计、建设,具备丰富的网络安全体系建设和安全服务的实战经验。