概述

HTTPS全称为Hyper Text Transfer Protocol over Secure Socket Layer或者Hypertext Transfer Protocol Secure,被译为超文本传输安全协议。HTTPS是以安全为目标的HTTP通道,即HTTP下加入SSL层。HTTPS的安全集成是SSL。其中,HTTP协议时通过明文形式传输数据的。目前,大部分网站为了安全,都是要HTTPS协议。
在这里插入图片描述

TLS流

TLS(Transport Layer Security,传输层安全性协议)是SSL(Secure Sockets Layer,安全套接层)的继承者,目的是为了互联网通信提供安全及数据完整性保障。所以,对于捕获到HTTPS服务器传输的数据包,使用的协议为TLS协议。TLS流和HTTP流一样,如果响应的数据较多时,数据将被TCP分片传输。如果要想查看完整的会话,则必须跟踪流。在菜单栏中,依次选择“分析”|“追踪流”|TLS流命令,将弹出追踪TLS流对话框。 在这里插入图片描述
在这里插入图片描述

提示:如果用户要导出TLS流,则需要对捕获到的TLS包解密后才可以操作;否则,追踪到的TLS流对话框为空白。

HTTPS统计分析

wireshark中提供了一个HTTPS数据统计功能。用户可以通过查看HTTPS统计信息来查看各种数据包的情况。
菜单如下:
在这里插入图片描述

解密HTTPS数据

如果网站服务器使用的是HTTPS协议的话,则使用Wireshark捕获到的包都是加密的包。如果响应分析传输的内容,则需要进行解密。其中,解密后的内容为HTTP和HTTP2协议。
如果没有解密,则所有的数据包都是TLS协议。Wireshark中支持通过导入服务器证书和日志文件两种方式来解密HTTPS数据。
在这里插入图片描述
两种解密方式配置:

  1. 方式1:如上图所示的对话框中单击RSA keys list对应的Edit按钮,即可配置通过服务器证书来解密HTTPS数据。
  2. 方式2:单击(Pre)-Master-Secret log filename文本框对应的browser按钮,指定日志文件存储路径,即可使用日志文件的方式来解密HTTPS数据。

使用日志文件方式解密

对于普通用户来说,如果要拿到服务器证书,显然不是一件很容易的事。此时,使用日志文件的方式相对来说就比较简单了。Chrome、Firefox、Edege浏览器都支持使用日记文件的方式记录用来加密TLS数据包对称会话的密钥,然后再Wireshark中指定该日记文件,就可以快速地解密HTTPS数据了。
日记文件方式主要是通过在系统中配置一个环境变量SSLKEYLOGFILE来实现的。
当用户配置SSLKEYLOGFILE环境变量后,就表示告诉浏览器想知道其每次HTTPS会话的key记录。这样,浏览器将会在每次HTTPS会话结束后,将会话数据解密的key记录到keylog文件中,然后Wireshark通过访问keylog文件,使用里面的key就可以解密字节捕获到浏览器中产生的HTTPS会话数据流。
配置方式如下:

  1. 系统配置SSLKEYLOGFILE变量
    SSLKEYLOGFILE变量值可以随意指定,本例中是F:\sslkeylog.log。 在这里插入图片描述
  2. Wireshark中指定日志文件路径
    在菜单栏中依次选择“编辑”|“首选项”|Protocols|TLS命令,打开TLS协议设置对话框,在其中指定日志文件的存储路径。
    在这里插入图片描述
  3. 之后通过Chrome等浏览器访问HTTPS网站,并用Wireshark捕获到的包即可成功解密。
    此时使用显示过滤器tls and http或者tls and http2即可过滤解密后的数据包。
    在这里插入图片描述
    从窗口中可以看到,成功显示过滤出了解密后的数据包。而且从状态栏上可以看到,出现了一个Decrypted TLS(被解密的TLS数据包)标签,表示解密成功。
  4. 我们可以通过追踪流来看到解密后的分组数据。
    在这里插入图片描述

使用服务器证书方式解密

如果用户可以拿到服务器证书的话,则可以使用服务器证书方式解密HTTPS数据。

  • 在菜单栏依次选择“编辑”|“首选项”|Protocols|TLS命令,打开TLS协议设置对话框。
    在这里插入图片描述
  • 单击RSA keys list对应的Edit按钮,将打开TLS解密对话框,如上图所示。
  • 该对话框中共包括5列,分别是IP address、Port、Protocol、Key File和Password。
    • IP address:服务器的IP地址。
    • Port:HTTPS监听的端口,一般为443。
    • Protocol:指定协议,一般为HTTP。
    • Key File:指定从服务器上获取到的RSA Key。这个RSA Key需要是一个解密后的PKCS#8PEM格式的(RSA)Key。
    • password:一般不填写。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐