Synth Daily

让网络更快更安全:全新上线Merkle Tree证书

随着量子计算的兴起,当前互联网的加密标准面临被破解的风险。为应对这一挑战,业界正在向后量子 (Post-Quantum, PQ) 密码学过渡。然而,PQ 证书因其签名和公钥体积过大,会显著降低网络性能,阻碍了其广泛应用。为此,Cloudflare 提出了“Merkle 树证书 (MTCs)”方案,通过批量处理和离线验证,大幅减少了实时握手所需的数据量。该方案旨在实现向后量子安全的平滑过渡,既保障安全,又不牺牲性能,并将与 Chrome 合作进行实验性部署。

量子计算的威胁与挑战

量子计算机的出现对互联网安全构成了双重威胁。首先是 “先收集,后解密” 的攻击,即攻击者现在收集加密流量,待未来量子计算机问世后再进行破解。尽管 Cloudflare 已有约 50% 的流量能够抵御此类攻击,但第二个威胁依然存在:攻击者可以利用量子计算机破解服务器的 TLS 证书,从而冒充服务器。

虽然我们已经拥有了可用于量子安全认证的 PQ 算法,但它们的普及面临一个核心障碍:体积过大

  • ML-DSA-44 (一种 PQ 算法) 的签名长达 2,420 字节,而当前主流的 ECDSA-P256 签名仅为 64 字节。
  • 其公钥为 1,312 字节,而 ECDSA 的公钥仅为 64 字节。
  • 一个典型的 TLS 握手包含多个签名和公钥,使用 PQ 算法会导致每个连接增加数十 KB 的开销,足以对性能产生明显影响。

直接用 PQ 证书进行替换是行不通的:在量子计算机真正到来之前,它们不会带来任何安全优势,反而会降低性能。但坐等时机无异于玩火,因为技术迁移所需的时间总是超出预期。

我们必须找到一种方法,让后量子证书的成本足够低,以便今天就能为所有人默认部署。

现状:为何今天的证书体系不堪重负?

为了理解问题的复杂性,我们需要了解当前的 Web 公钥基础设施 (WebPKI) 是如何运作的。

当浏览器连接网站时,服务器会提供一个由证书颁发机构 (CA) 签名的证书,以证明其身份。浏览器预先信任数百个 CA,通过验证证书签名来建立信任链。然而,随着时间推移,这个系统为了增强安全性,变得越来越臃肿。

一个典型的 TLS 握手通常包含 5 个签名和 2 个公钥,其构成如下:

  1. 服务器握手签名:确认服务器身份。
  2. CA 对服务器证书的签名:证明服务器证书的合法性。
  3. 中间 CA 证书签名:由于 CA 密钥轮换,信任链常常会延长。
  4. 证书透明度 (CT) 签名 (x2):为防止证书被错误颁发,主流浏览器要求证书必须被记录在至少两个公开的日志中。服务器在握手时需提供来自这些日志的签名证明。

这种“哪里需要补哪里”的策略在传统加密算法下是可行的,因为它们的签名很小。但对于体积庞大的 PQ 算法,这种累加方式将导致性能灾难。

解决方案:Merkle 树证书 (MTCs)

MTCs 是一种重新设计的下一代 WebPKI 方案,其核心思想是通过巧妙的结构设计,大幅减少 TLS 握手中需要传输的签名数量。

其关键特性包括:

  • 批量处理与离线验证:CA 不再为每个证书单独签名,而是将一批证书组织成一个 Merkle 树。CA 只需对树的根节点(treehead)进行一次签名。
  • 高效的包含证明:服务器向客户端提供的证书中不再包含完整的签名,而是一个轻量的 “包含证明”,用以证明该证书确实属于被 CA 签名的那个批次。
  • 带外分发:签过名的树根节点(称为 landmarks)可以通过带外方式(out-of-band)分发给浏览器并离线验证。客户端只需持有最新的 landmarks,就能验证该批次下的任何证书。

通过这种方式,理想情况下的 TLS 握手仅需 1 个服务器签名、1 个公钥和 1 个 Merkle 树包含证明,即使使用后量子算法,数据量也极小。

此外,MTCs 将证书透明度作为其原生特性,每个 CA 同时运行自己的证书日志,从根本上简化了验证流程。

实验计划:与 Chrome 合作进行部署

为了验证 MTCs 的可行性,Cloudflare 计划与 Chrome 安全团队合作进行一次实验性部署。实验旨在回答以下关键问题:

  • 兼容性问题:协议的变更是否会触发网络中某些中间设备或软件的未知错误?
  • 实际性能影响:我们预期 MTCs 能减少握手延迟。实验将验证是否能测量到显著的性能提升。
  • 客户端更新率:MTCs 的性能优势依赖于客户端及时获取最新的 landmarks。我们需要了解客户端的更新频率,以优化协议参数,减少需要回退到较大证书的场景。

为了安全地进行实验,我们将采用自举信任 (Bootstrapping Trust) 的方式。Cloudflare 将运行一个“模拟”的 MTC 颁发机构,但我们发出的每一个 MTC 都会对应一个由现有可信 CA 签发的传统证书。Chrome 的基础设施在接收 MTC 更新时,会交叉验证其对应的传统证书,确保一切合法可信。

结论与展望

我们正处在通往完全后量子安全互联网的半途。后量子证书是其中最艰难的一步,因为简单的替换方案会带来无法接受的性能损失。MTCs 通过从根本上重构证书验证方式,解决了这一难题,能够在不牺牲性能的前提下保障安全。

我们计划于明年初开始为部分免费客户推出 MTCs 实验。对于参与 Chrome 实验的用户,其安全性将得到充分保障。我们期待通过这次实验,为构建一个更快、更安全的互联网铺平道路。