跳转到内容
搜索文档

PQC 支持

最后更新 查看 MarkdownAgent 设置

以下各节按软件类别汇总 Cloudflare 已部署的后量子算法的第三方软件支持。欢迎贡献以保持列表最新。

跟踪两类算法:

浏览器

浏览器按底层渲染引擎和 TLS 栈分组。共享引擎的浏览器通常具有相同的后量子支持,但衍生浏览器可能落后于上游引擎或按策略禁用后量子功能。在假设衍生浏览器支持之前,请验证您关心的特定浏览器版本。Cloudflare Radar 的浏览器支持检查是确认给定浏览器是否与 Cloudflare 协商后量子密钥协商的快捷方式。

基于 Chromium(BoringSSL)

Brave

  • 密钥协商: ✅ Brave 1.73.86+(Chromium 131)中默认启用
  • 签名: 尚未支持
  • 参考: Brave

Chrome

Chrome 不计划在公共 Chrome Root Store 中添加标准 X.509 后量子证书。相反,Chrome 正在 IETF PLANTS 工作组中开发 MTC,目前处于可行性研究阶段,与 Cloudflare 合作。

Edge

  • 密钥协商: ✅ Edge 131+ 中默认启用
  • 签名: 尚未支持
  • 参考: Edge

Opera

  • 密钥协商: ✅ Opera 116+(Chromium 131)中默认启用
  • 签名: 尚未支持
  • 参考: Opera

基于 Gecko(Firefox / NSS)

Firefox

  • 密钥协商: ✅ Firefox 132+(桌面版)、145+(Android)中默认启用
  • 签名: 尚未支持
  • 参考: Firefox

对于 QUIC/HTTP3,Firefox 135+(桌面版)。

Tor Browser

  • 密钥协商: ✅ Tor Browser 15.0+ 中默认启用
  • 签名: 尚未支持
  • 参考: Tor Browser

基于 Firefox ESR 并附加加固。

基于 WebKit(Safari)

Safari

  • 密钥协商: ✅ Safari 26+ 中默认启用
  • 签名: 尚未支持
  • 参考: Safari

在 iOS 26、macOS Tahoe 26 和其他 Apple 操作系统中系统级启用。

本节分为基础原生库(用 C/C++ 编写)和构建在其上的语言绑定及更高级库。

原生库

AWS-LC

ML-KEM-512/768/1024 和混合算法 X25519MLKEM768SecP256r1MLKEM768SecP384r1MLKEM1024;ML-DSA-44/65/87。

BoringSSL

ML-DSA-44/65/87。

Botan C++

  • 密钥协商: ✅ 自 3.7.0 起 TLS 中默认启用
  • 签名: ✅ 3.6.0+
  • 参考: Botan

ML-DSA-44/65/87。

GnuTLS

  • 密钥协商: ✅ 3.8.9+ 编译时使用 leancrypto 1.2.0+(或 3.8.8–3.8.9 使用 liboqs 0.11.0+)
  • 签名: ✅ 3.8.10+ — 可在 TLS 握手中使用
  • 参考: GnuTLS

自 3.8.8+ 起混合算法 X25519MLKEM768SecP256r1MLKEM768;3.8.9+ 添加 SecP384r1MLKEM1024。ML-DSA-44/65/87。

OpenSSL

  • 密钥协商: ✅ 3.5.0+ 中默认启用
  • 签名: ✅ 3.5.0+
  • 参考: OpenSSL

3.5.0+ 中混合算法 X25519MLKEM768;3.6.0+ 添加 SecP256r1MLKEM768curveSM2MLKEM768。ML-DSA-44/65/87。

Open Quantum Safe

  • 密钥协商: ✅ liboqs 0.10.0+、oqs-provider 0.7.0+
  • 签名: ✅ liboqs 0.14.0+、oqs-provider 0.9.0+
  • 参考: Open Quantum Safe

参考实现,不建议用于生产环境。

s2n-tls

  • 密钥协商:
  • 签名: 尚未支持
  • 参考: s2n-tls

AWS 基于 AWS-LC 构建的开源 TLS 实现。

语言绑定和更高级库

aws-lc-rs (Rust)

  • 密钥协商:
  • 签名: 🚧 在 unstable 功能后面
  • 参考: aws-lc-rs

围绕 AWS-LC 的 Rust 绑定;是 rustls-post-quantum ML-DSA 支持的基础。ML-KEM 通过 aws-lc-rs::kem;ML-DSA-44/65/87 通过 unstable::signature

CIRCL (Cloudflare)

纯 Go 密码原语库。ML-KEM-512/768/1024 和 ML-DSA-44/65/87。

Go

  • 密钥协商: ✅ Go 1.24+ 中默认启用
  • 签名: 🚧 Go 1.26 中内部实现;公共 crypto/mldsa 提议用于 Go 1.27
  • 参考: Go

Cloudflare 的 Go 分支 也通过 CIRCL 支持密钥协商。

Java (OpenJDK)

  • 密钥协商: ✅ Java 27+ 中默认启用(JEP 527
  • 签名: 🚧 Java 24+ 提供 ML-DSA API(JEP 497),但尚未集成到 javax.net.ssl TLS 中
  • 参考: OpenJDK

Node.js

使用捆绑的 OpenSSL 3.5。ML-DSA-44/65/87。

RustCrypto (Rust)

纯 Rust crate,独立于 AWS-LC。ML-DSA-44/65/87。

rustls (Rust)

  • 密钥协商: ✅ 自 rustls 0.23.27 起默认启用
  • 签名: 🚧 不稳定
  • 参考: rustls

基于 rustls-post-quantum 构建的 TLS 库。

rustls-post-quantum (Rust)

  • 密钥协商:X25519MLKEM768
  • 签名: 🚧 不稳定 ML-DSA 支持(在 aws-lc-rs-unstable 功能后面)
  • 参考: rustls-post-quantum

rustls 提供后量子算法的扩展 crate,底层使用 aws-lc-rs

Zig

  • 密钥协商: ✅ Zig 0.14.0+(客户端)
  • 签名: 尚未支持
  • 参考: Zig

服务器

Caddy

  • 密钥协商: ✅ Caddy 2.10.0+ 中默认启用
  • 签名: 等待 Go crypto/mldsa
  • 参考: Caddy

NGINX

  • 密钥协商: ✅ 使用 OpenSSL 3.5+ 编译时默认启用(说明
  • 签名: ✅ 使用 OpenSSL 3.5+ 编译时
  • 参考: NGINX

rpxy

  • 密钥协商: ✅ 0.9.4+ 中默认启用
  • 签名: 等待 Rust PQ 签名支持
  • 参考: rpxy

Traefik

  • 密钥协商: ✅ 3.4.2+、2.11.26+ 中默认启用(提交);3.5.0-rc.1+ 中可通过 curvePreferences 配置
  • 签名: 等待 Go crypto/mldsa
  • 参考: Traefik

这篇文档对您有帮助吗?