• HTTPS报文分析(Wireshark)


    概述

    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:一般不填写。
  • 相关阅读:
    Linux Polkit权限提升漏洞(CVE-2021-4034)
    ORACLE XXX序列 goes below MINVALUE 无法实例化的处理办法
    【计算机网络——1.4接入网和物理媒体】
    深度学习之生成唐诗案例(Pytorch版)
    【智慧排水】排水管网水位怎么监测
    Oracle和MySQL查询所有的表信息和字段信息
    Python大数据之PySpark(七)SparkCore案例
    技术总结: PPT绘图
    Spring MVC数据绑定和响应——简单数据绑定(四)自定义类型转换器
    flutter Unable to load asset: assets/images/888.png
  • 原文地址:https://blog.csdn.net/tianzhonghaoqing/article/details/126459940