当前位置: 代码迷 >> 综合 >> HTTP/2 协议(Wireshark 抓取浏览器加密的 HTTP2)
  详细解决方案

HTTP/2 协议(Wireshark 抓取浏览器加密的 HTTP2)

热度:68   发布时间:2023-12-29 21:11:48.0

文章目录

  • HTTP/2 协议介绍
      • 1.HTTP/1.1 发明以来发生的变化
      • 2.HTTP/1.1 的高延迟问题
      • 3.高延迟 VS 高带宽
      • 4.HTTP/2 特性
      • 5.HTTP/2的应用情况
      • 6.HTTP/2 主要特性
      • 7.Chrome 浏览器检测 HTTP/2 插件
      • 8.TLS1.2 的加密算法
      • 9.Wireshark 如何解密 TLS 消息?
      • 10.HTTP/2 是不是必须基于 TLS/SSL 协议?

HTTP/2 协议介绍

1.HTTP/1.1 发明以来发生的变化

  • 从几 KB 大小的消息,到几 MB 大小的消息
  • 每个页面小于 10 个资源,到每页面 100 多个资源
  • 从文本为主的内容,到富媒体(如图片、声音、视频)为主的内容
  • 对页面内容实时性要求的应用越来越多

2.HTTP/1.1 的高延迟问题

  • 高延迟带来页面加载速度的降低
  • 随着带宽的增加,延迟并没有显著下降
  • 并发连接有限
  • 同一连接同时只能在完成一个 HTTP 事务(请求/响应)才能处理下一个事务

3.高延迟 VS 高带宽

  • 単连接上的串行请求
  • 无状态导致的高传输量(低网络效率)

在这里插入图片描述

在这里插入图片描述

  • HTTP/1.1 不支持服务器推送消息

4.HTTP/2 特性

  • SPDY(2012-2016)
  • HTTP2(RFC7540,2015.5)
  • 在应用层上修改,基于并充分挖掘 TCP 协议性能
  • 客户端向 server 发送 request 这种基本模型不会变
  • 老的 scheme 不会变,没有 http2://
  • 使用 http/1.x 的客户端和服务器可以无缝的通过代理方式转接到 http/2 上
  • 不识别 http/2 的代理服务器可以将请求降级到 http/1.x

5.HTTP/2的应用情况

  • 截止 2015.5.17 号,互联网上使用 HTTP/2协议的站点已经达到 37.2%
  • 快速推广的原因:未改变 HTTP/1.1 的语义,基于 TCP,仅在应用层变动

6.HTTP/2 主要特性

  • 传输数据量的大幅减少:以二进制方式传输,标头压缩
  • 多路复用及相关功能:消息优先级
  • 服务器消息推送:并行推送

7.Chrome 浏览器检测 HTTP/2 插件

  • HTTP/2 and SPDY indicator
    在这里插入图片描述

8.TLS1.2 的加密算法

  • 常见加密套件。
    在这里插入图片描述

  • 对称加密算法:AES_128_GCM:每次建立连接后,加密密钥都不一样。

  • 密钥生成算法 ECDHE:客户端与服务器通过交换部分信息,各自独立生成最终一致的密钥。

9.Wireshark 如何解密 TLS 消息?

  • 原理:获得 TLS 握手阶段生成的密钥,通过 Chrome 浏览器 DEBUG 日志中的握手生成密钥
  • 步骤:1.配置 Chrome 输出 DEBUG 日志,配置环境变量 SSLKEYLOGFILE,在 Wireshark 中配置解析 DEBUG 日志,编辑->首选项->Protocols->TLS/SSL

步骤1:打开环境变量
在这里插入图片描述

步骤2:新建用户变量 SSLKEYLOGFILE,路径如 C:\www\chrome\mytestssl.txt:
在这里插入图片描述

步骤3:打开 Wireshark 中的 编辑->首选项->Protocols->TLS->(Pre)-Master-Secret log filename 浏览选择上述生成的文件:
在这里插入图片描述

步骤4:以抓取浏览器访问 sina.com.cn 首页为例,抓取到的报文如下:
在这里插入图片描述

10.HTTP/2 是不是必须基于 TLS/SSL 协议?

  • IETF 标准不要求必须基于 TLS/SSL 协议。
  • 浏览器要求必须基于 TLS/SSL 协议。
  • TLSALPN(Application Layer Protocol Negotiation) 扩展作协商,只认 HTTP/1.x 的代理服务器不会干扰 HTTP/2
  • schema:http://https:// 默认基于 80443 端口。
  • h2:基于 TLS 协议运行的 HTTP/2 被称为 h2
  • h2c:直接在 TCP 协议之上运行的 HTTP/2 被称为 h2c

扫码关注爱因诗贤
在这里插入图片描述

  相关解决方案