HTTPS全称为Hyper Text Transfer Protocol over Secure Socket Layer或者Hypertext Transfer Protocol Secure,被译为超文本传输安全协议。HTTPS是以安全为目标的HTTP通道,即HTTP下加入SSL层。HTTPS的安全集成是SSL。其中,HTTP协议时通过明文形式传输数据的。目前,大部分网站为了安全,都是要HTTPS协议。
TLS(Transport Layer Security,传输层安全性协议)是SSL(Secure Sockets Layer,安全套接层)的继承者,目的是为了互联网通信提供安全及数据完整性保障。所以,对于捕获到HTTPS服务器传输的数据包,使用的协议为TLS协议。TLS流和HTTP流一样,如果响应的数据较多时,数据将被TCP分片传输。如果要想查看完整的会话,则必须跟踪流。在菜单栏中,依次选择“分析”|“追踪流”|TLS流命令,将弹出追踪TLS流对话框。
提示:如果用户要导出TLS流,则需要对捕获到的TLS包解密后才可以操作;否则,追踪到的TLS流对话框为空白。
wireshark中提供了一个HTTPS数据统计功能。用户可以通过查看HTTPS统计信息来查看各种数据包的情况。
菜单如下:
如果网站服务器使用的是HTTPS协议的话,则使用Wireshark捕获到的包都是加密的包。如果响应分析传输的内容,则需要进行解密。其中,解密后的内容为HTTP和HTTP2协议。
如果没有解密,则所有的数据包都是TLS协议。Wireshark中支持通过导入服务器证书和日志文件两种方式来解密HTTPS数据。
两种解密方式配置:
对于普通用户来说,如果要拿到服务器证书,显然不是一件很容易的事。此时,使用日志文件的方式相对来说就比较简单了。Chrome、Firefox、Edege浏览器都支持使用日记文件的方式记录用来加密TLS数据包对称会话的密钥,然后再Wireshark中指定该日记文件,就可以快速地解密HTTPS数据了。
日记文件方式主要是通过在系统中配置一个环境变量SSLKEYLOGFILE来实现的。
当用户配置SSLKEYLOGFILE环境变量后,就表示告诉浏览器想知道其每次HTTPS会话的key记录。这样,浏览器将会在每次HTTPS会话结束后,将会话数据解密的key记录到keylog文件中,然后Wireshark通过访问keylog文件,使用里面的key就可以解密字节捕获到浏览器中产生的HTTPS会话数据流。
配置方式如下:
如果用户可以拿到服务器证书的话,则可以使用服务器证书方式解密HTTPS数据。