乐于分享
好东西不私藏

从用户暴露信息,看现代 Web/App 加密跨层协同发展历程

从用户暴露信息,看现代 Web/App 加密跨层协同发展历程

如果只把 HTTPS 理解成“给 HTTP 加一把锁”,那么后面的 DoH、DoT、DoQ、SVCB/HTTPS RR、TLS 1.3、ECH、QUIC、HTTP/3,就很容易变成一串难记的协议名。

现代 Web/App 加密本质上是一种跨层协同机制。如果分开来看,常常会让人云里雾里:服务发现层决定“怎么连”,安全加密层决定“哪些内容和握手元数据仍然可见”,传输层决定“连接如何承载、复用和迁移”,应用层则继续承载具体的业务语义。

理解这一问题的关键,并不是记住越来越多的协议名,而是看清楚:那些原本默认可见的信息,是如何一层一层变成“按需可见”“最小可见”甚至“不可见”的。这个变化过程,正是现代 Web/App 加密演进的主线。

过去,网络侧能看到 URL、Host、Header、Cookie、DNS 查询、SNI、证书信息、目的 IP、端口、包长和时序。现在,正文内容早已被 HTTPS/TLS 保护,DNS 查询可以被 DoH/DoT/DoQ 保护,SNI 和 ClientHello 敏感字段开始由 ECH 保护,传输本身也从 TCP/TLS 走向 QUIC/TLS 1.3。

这不是某一个协议的胜利,而是现代 Web/App 加密体系的重组。

1. 先从问题本质看:一次访问到底暴露了什么

一次用户访问并不是从 HTTP 请求开始的。

它通常至少经历这些步骤:

  1. 1. 先知道目标域名应该连到哪里。
  2. 2. 再决定使用什么连接参数和协议能力。
  3. 3. 再建立安全握手,确认服务端身份并协商密钥。
  4. 4. 再选择 TCP/TLS 或 QUIC 这样的传输承载。
  5. 5. 最后才发送 HTTP 请求和响应。

所以,加密要解决的问题也不是单一的“正文是否明文”。

更完整的问题是:

暴露面
过去的典型可见内容
新机制试图解决什么
应用内容
URL 路径、Header、Cookie、Body
HTTPS/TLS 保护正文内容
握手元数据
SNI、ALPN、部分 ClientHello 字段
TLS 1.3、ECH 减少握手可见性
服务发现
明文 DNS 查询、服务参数探测
DoH/DoT/DoQ、SVCB/HTTPS RR
传输行为
TCP 连接、端口、时序、丢包影响
QUIC 改变连接形态和移动性
剩余侧信道
IP、端口、包长、时间序列、指纹
不能完全消除,只能降低单点解释力

这张表带来的判断很直接:HTTPS 只解决了其中一部分暴露面。

它解决的是 HTTP 内容的保密性、完整性和服务端身份认证。它没有天然隐藏 DNS 查询,没有天然隐藏 SNI,也不会让目的 IP、端口和流量行为消失。

因此,后续协议演进不是“HTTPS 不够好”,而是“HTTPS 解决完内容以后,剩下的元数据开始变成主要矛盾”。

2. 应用层:HTTP 语义没消失,只是承载方式变了

应用层要回答的是:业务到底在表达什么?

无论是 HTTP/1.1、HTTP/2 还是 HTTP/3,核心语义仍然是 HTTP:请求方法、Header、状态码、Body、缓存语义、Cookie、API 调用。这些东西是 Web 和 App 业务真正关心的内容。

变化在于承载方式。

HTTP/1.1 主要运行在 TCP 上。它简单、兼容性强,但并发效率有限,浏览器往往需要多个连接来加载资源。

HTTP/2 引入二进制分帧、Stream、多路复用和 HPACK Header 压缩。它让多个请求可以共享同一条连接,提升加密 Web 的加载效率。但 HTTP/2 通常仍跑在 TLS over TCP 上,TCP 层丢包仍可能影响同一连接中的多个 Stream。

HTTP/3 则把 HTTP 语义映射到 QUIC 上。RFC 9114 对 HTTP/3 的定义本质上就是:HTTP 语义不重写,但底层传输换成 QUIC。GET、POST、Header、状态码没有变,变的是它们不再依赖传统 TCP/TLS 连接。

所以,应用层的关键不是“HTTP/3 是一个全新的业务协议”,而是:

HTTP/3 保留 HTTP 语义,但把业务语义放到了更适合现代加密和移动网络的 QUIC 传输上。

对用户的影响是体验层面的:弱网、丢包、网络切换、移动场景下,连接建立和请求并发有机会更稳。对网络分析的影响是观察方式变化:过去围绕 TCP/TLS 的统计口径,不能直接套到 QUIC/HTTP/3 上。

3. 安全加密层:TLS 不只是加密正文,也开始保护握手元数据

安全加密层要回答的是:谁能看见什么,谁能篡改什么,客户端如何确认服务端身份。

HTTPS 的本质可以简化成:

HTTPS = HTTP over TLS

TLS(Transport Layer Security,传输层安全协议)提供三个基础能力:

  • • 保密性:旁路观察者看不到 HTTP 正文内容。
  • • 完整性:中间人不能悄悄篡改数据。
  • • 认证:客户端通过证书体系确认服务端身份。

早期 HTTPS 已经能保护 URL 路径、Header、Cookie、Body 等应用内容。但 TLS 握手本身还有元数据问题。最典型的是 SNI(Server Name Indication,服务器名称指示)。

为什么需要 SNI?

因为大量站点共用同一个 IP。客户端连接服务端时,需要告诉服务端自己想访问哪个域名,服务端才能返回正确证书。问题是,传统 TLS ClientHello 中的 SNI 是明文的。也就是说,即使 HTTP 正文加密了,旁路观察者仍可能知道用户访问的是哪个域名。

TLS 1.3 先把安全底座升级了一轮。RFC 8446 定义 TLS 1.3,它减少旧算法,简化握手,强化前向安全,并加密更多握手消息。它不是只为了安全,也是为了降低连接建立成本,成为 QUIC 的密码学基础。

但 TLS 1.3 仍没有完全解决 ClientHello 暴露问题。于是 ECH(Encrypted ClientHello,加密客户端问候)出现。

ECH 的思路不是只加密 SNI,而是把真正敏感的 ClientHelloInner 加密起来,外层保留一个可路由的 ClientHelloOuter。这样,网络侧不再轻易看到真实 SNI,以及部分可用于指纹识别的握手字段。RFC 9849 已经把 TLS ECH 标准化;RFC 9848 则定义如何通过 DNS SVCB/HTTPS RR 引导 ECH 配置。

这里要避免一个误判:ECH 不等于匿名网络。

即使 ECH 生效,目的 IP、端口、包长、时序、QUIC/TLS 指纹、CDN/ASN 等信息仍可能存在。它降低的是域名和握手元数据的直接可见性,不是让访问行为完全消失。

4. 传输层:QUIC 不是“UDP 版 TCP”,而是把传输和加密重新打包

传输层要回答的是:连接如何建立、数据如何可靠传递、丢包如何处理、网络切换时连接是否还能维持。

传统 HTTPS over TCP/TLS 可以粗略写成:

HTTP -> TLS -> TCP -> IP

HTTP/3 over QUIC 则更接近:

HTTP/3 -> QUIC + TLS 1.3 -> UDP -> IP

QUIC 基于 UDP,通常使用 UDP/443。它不是简单把 TCP 功能复制到 UDP 上,而是在用户态实现了可靠传输、多路复用、拥塞控制、连接迁移,并把 TLS 1.3 集成进连接建立过程。RFC 9000 对 QUIC 的定位就是基于 UDP 的多路复用安全传输。

几个关键词很重要:

概念
作用
QUIC Stream
多个 Stream 在同一连接中并发传输,减少 TCP 层队头阻塞影响
Connection ID
连接不再只依赖 IP、端口五元组
Connection Migration
从 Wi-Fi 切到蜂窝网络时,连接更容易延续
UDP/443
大量 Web 流量开始从 TCP/443 之外扩展到 UDP/443
TLS 1.3 集成
加密握手成为 QUIC 连接的一部分

这对用户的影响很实际:移动网络、弱网和高丢包环境下,连接体验可能改善。

这对安全分析和网络运维的影响更大:UDP/443 不能再被粗暴地视为边缘流量。它已经承载大量正常 Web/App 通信。只看 TCP/443,会漏掉一部分现代加密流量结构。

5. 服务发现层:DNS 不只是查 IP,也开始发布连接参数

服务发现层要回答的是:在真正连接服务器之前,客户端应该知道哪些信息?

传统 DNS 主要解决:

域名 -> IP 地址

也就是 A/AAAA 记录告诉客户端某个域名对应哪个 IPv4/IPv6 地址。

但现代 Web/App 连接需要的不止 IP。客户端还可能需要知道:

  • • 是否支持 HTTP/2 或 HTTP/3。
  • • 是否有替代服务端点。
  • • 端口和地址提示是什么。
  • • 是否存在 ECH 配置。
  • • 应该怎样更快、更少探测地建立连接。

这就是 SVCB/HTTPS RR 的价值。RFC 9460 定义了 SVCB 和 HTTPS 资源记录,让 DNS 可以携带服务绑定和连接参数。对 HTTP 场景来说,HTTPS RR 可以提前告诉客户端一些服务能力和参数,减少连接探测,也为 ECHConfig 的分发提供通道。

但服务发现本身也有隐私问题。

如果 DNS 仍是明文,那么用户还没建立 HTTPS 连接,访问意图就可能先通过 DNS 查询暴露。因此出现了:

  • • DoT(DNS over TLS):把 DNS 跑在 TLS 上,常见专用端口是 853。
  • • DoH(DNS over HTTPS):把 DNS 查询封装成 HTTPS 交换,和 Web HTTPS 更接近。
  • • DoQ(DNS over QUIC):把 DNS 跑在 QUIC 上,利用 QUIC 的加密和低延迟特性。

服务发现层和安全加密层之间的关系,正是这套体系里最容易被忽略的一环:

ECH 要保护 ClientHello,但客户端连接前必须先拿到 ECHConfig;而 ECHConfig 的重要分发路径,正是 DNS SVCB/HTTPS RR。

所以 DNS 不再只是“查 IP 的前置步骤”。它开始变成现代加密连接的参数发布层。

6. 把四层串起来:一次现代连接如何发生

用一条简化路径看,现代 Web/App 连接大致可以这样理解:

服务发现层:
域名查询 -> DoH/DoT/DoQ 保护 DNS 查询 -> HTTPS RR/SVCB 返回服务参数和 ECHConfig

安全加密层:
客户端构造 TLS ClientHello -> ECH 保护敏感 ClientHelloInner -> 证书体系认证服务端

传输层:
如果走 HTTP/2,多数是 TLS over TCP
如果走 HTTP/3,则是 QUIC + TLS 1.3 over UDP

应用层:
HTTP 语义继续承载请求、响应、Header、Body 和业务 API

这条路径说明一个事实:协议之间不是平行列表,而是前后依赖。

SVCB/HTTPS RR 帮客户端提前知道怎么连;ECH 依赖这些服务发现信息来加密握手元数据;QUIC 依赖 TLS 1.3 做安全基础;HTTP/3 依赖 QUIC 承载 HTTP 语义;DoH/DoT/DoQ 又保护了最前面的 DNS 查询。

如果把它们拆开背,就会觉得复杂。

如果从“默认可见的信息如何逐层减少”来看,它们其实在回答同一个问题:一次连接中还有哪些信息没有必要暴露给旁路观察者?

7. 这带来的认知变化:别再只看“加密率”,要看“加密结构”

素材里的数据判断已经说明:公网 Web 明文 HTTP 不是主要流量形态,TLS 1.3 已经成为现代加密连接的重要底座,HTTP/3/QUIC 也不再是边缘试验流量。App 侧则更复杂,TLS 1.3、QUIC、加密 DNS、SDK/CDN 化会同时改变流量结构。

所以,后续做加密流量分析或安全识别,不应该只问:

HTTPS 占比是多少?

而应该问:

应该观察什么
为什么
HTTP/1.1、HTTP/2、HTTP/3 占比
判断应用层承载结构
TCP/443 与 UDP/443 占比
判断 QUIC 化程度
TLS 1.2 与 TLS 1.3 占比
判断安全底座迁移程度
Do53、DoT、DoH、DoQ 占比
判断 DNS 可见性变化
HTTPS RR/SVCB 支持情况
判断服务发现层是否开始发布现代连接参数
ECH 支持率和实际使用率
判断 SNI/ClientHello 可见性下降阶段
IP、ASN、CDN、包长、时序、指纹
判断剩余可见信号还能解释多少业务

这也是对用户和网络侧的共同影响。

对用户来说,隐私保护从“网页正文不被看见”扩展到“访问意图和握手元数据更少被直接看见”。

对网络分析、安全检测和运营系统来说,过去依赖明文 Host、URL、DNS、SNI 的方法会持续失效。后续更现实的路径不是寻找单个替代字段,而是做多源证据融合:协议版本、传输形态、目的网络、连接行为、包长时序、终端上下文和业务侧授权标签要一起看。

8. 最终判断

现代 Web/App 加密可以用一句话概括:

它不是一把锁,而是一套跨层协同系统;每一层都在把过去默认暴露的信息,改造成更少暴露、按需暴露、或只能通过更弱信号间接推断。

应用层保留 HTTP 业务语义;安全加密层从 TLS 走向 TLS 1.3 和 ECH;传输层从 TCP/TLS 走向 QUIC/TLS 1.3/UDP;服务发现层从明文 DNS 查 IP,走向加密 DNS、SVCB/HTTPS RR 和 ECHConfig 分发。

这套关系串起来以后,才能真正理解 HTTP 加密的下一阶段:主战场已经从内容保护,转向协议结构变化和元数据保护。

也正因为如此,未来最有解释力的指标不是单一“加密率”,而是“加密结构”:哪些层已经加密,哪些元数据仍可见,哪些识别信号已经从明文语义退化为行为推断。

参考资料

  • • RFC 8446, The Transport Layer Security (TLS) Protocol Version 1.3, August 2018: https://www.rfc-editor.org/rfc/rfc8446.html
  • • RFC 9000, QUIC: A UDP-Based Multiplexed and Secure Transport, May 2021: https://www.rfc-editor.org/rfc/rfc9000.html
  • • RFC 9114, HTTP/3, June 2022: https://www.rfc-editor.org/rfc/rfc9114.html
  • • RFC 9460, Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records), November 2023: https://www.rfc-editor.org/rfc/rfc9460.html
  • • RFC 9848, Bootstrapping TLS Encrypted ClientHello with DNS Service Bindings, March 2026: https://www.rfc-editor.org/rfc/rfc9848.html
  • • RFC 9849, TLS Encrypted Client Hello, March 2026: https://www.rfc-editor.org/rfc/rfc9849.html
  • • RFC 8484, DNS Queries over HTTPS (DoH), October 2018: https://www.rfc-editor.org/rfc/rfc8484.html
  • • RFC 9250, DNS over Dedicated QUIC Connections, May 2022: https://www.rfc-editor.org/rfc/rfc9250.html
  • • Google Transparency Report, HTTPS encryption on the web: https://transparencyreport.google.com/https/overview
  • • Cloudflare Radar 2024 / 2025 Year in Review: https://blog.cloudflare.com/
  • • PARROT: Portable Android Reproducible traffic Observation Tool, 2025: https://arxiv.org/abs/2509.09537
  • • Corrata, Living with ECH, May 2025: https://corrata.com/wp-content/uploads/2025/05/Living-with-ECH-May-25.pdf