Let's Encrypt的后量子未来
Let's Encrypt致力于构建后量子安全的Web公钥基础设施(Web PKI)。我们计划采用的路径是Merkle Tree Certificates(MTCs)——一种全新方法,在不牺牲TLS已有的速度和可靠性的前提下,为网络增加后量子认证能力。
本文介绍我们的计划,以及为什么我们相信MTCs是通往后量子未来的关键。
日益紧迫的问题
在过去几年中,关于后量子密码学的讨论主要集中在加密领域。理由很简单:攻击者今天记录加密流量,未来一旦量子计算机能破解底层数学,就可能解密这些数据。而认证——TLS中用于证明服务器真实身份的部分——紧迫性相对较低。量子计算机需要在实时环境中伪造签名,而不是事后回放,因此认证威胁取决于是否存在密码学相关量子计算机(CRQC)。
但这种"安心"正在被逐步削弱。在美国,NSA的CNSA 2.0套件自2022年起就以2030至2035年为时间表,要求国家安全系统转向后量子算法。NIST的过渡指南草案计划在2030年后淘汰RSA-2048和P-256,2035年后彻底禁用。欧盟的路线图将高风险系统的目标定在2030年底,大规模迁移在2035年。这些指令并不直接约束公共Web PKI,但为依赖的厂商、库和标准组织设定了十年末这一时间线,他们已经在朝这个方向努力。
今年,时间线进一步缩短。Google宣布将在2029年之前完成服务迁移,原因是CRQC可能到来的时间预估正变得更紧迫。Cloudflare紧随其后做出了同样的承诺。此外,Go 1.27将NIST标准化的后量子签名方案ML-DSA加入了标准库,这标志着后量子签名正在成为实用基础设施。
后量子认证不再是Web PKI生态系统可以推迟的问题。长期密钥(根证书颁发机构、代码签名密钥、身份系统)是特别有价值的目标,而新技术的广泛采用需要数年时间,因此工作必须尽早启动。
Web PKI的特殊挑战
Web PKI是部署后量子签名最具挑战性的场景之一——原因在于尺寸。
ML-DSA-44(NIST标准化方案中较小的一个)的签名长度约为2,420字节。而目前Web PKI使用的算法小得多:RSA-2048签名为256字节,ECDSA-P256签名为64字节。公钥也更大:ML-DSA-44为1,312字节,RSA-2048为256字节,ECDSA-P256为64字节。如今一个典型的Web PKI握手中包含五个签名和两个公钥。将其全部替换为ML-DSA将使单次TLS握手轻松超过10 KB。Cloudflare的研究表明,在这个规模下,相当一部分TLS连接会在真实网络中失败,其余连接也会变慢。
更大的握手会影响每一次TLS连接,而不仅仅是那些会失败的连接。这意味着带宽受限、连接变慢、用户体验下降——换来的却是对一个尚未成真的威胁的安全防护。默认开启这样做的代价太高,而默认设置才是推动网络安全规模化的关键。
Merkle Tree Certificates(MTCs)
过去一年中,一种名为Merkle Tree Certificates(MTCs)的不同设计逐渐崭露头角,我们相信它是后量子Web PKI的一条有力路径。
与逐张签发并单独签名证书的方式不同,MTC证书颁发机构(CA)批量签发证书,用单个签名覆盖整个批次。浏览器通过TLS握手之外的独立渠道获取这些批次签名(称为"地标"landmarks)的最新状态。
在常见情况下,MTC握手中的整个认证路径仅包含一个签名、一个公钥和一个包含性证明。这比今天的Web PKI握还小——即使MTC使用的后量子算法更大。另一种情况是"独立"形式,当客户端的地标信息过时时,使用稍大的握手作为回退。
MTCs的优势不仅限于尺寸优化。由于每张证书都是已发布的Merkle树的一部分,透明性成为签发本身的固有属性。今天的证书透明性(Certificate Transparency)系统是事后附加的:CA签发证书,然后单独记录日志,再在TLS握手中附带额外签名来证明日志记录。而使用MTCs,证书不可能存在于Merkle树之外——证书透明性内建于签发流程中。
这并非我们的全新领域。Let's Encrypt自2019年以来一直运营证书透明性日志。这些日志是仅追加的Merkle树——与MTCs构建于相同的核心数据结构之上——我们已经在大规模生产环境中运行多年。
Cloudflare和Chrome已经在真实互联网流量中对MTCs进行可行性实验。IETF的PLANTS工作组正在推进标准化工作。Chrome已宣布MTCs是其在公共网络上增加后量子证书的首选路径。
我们的计划
我们计划支持Merkle Tree Certificates作为后量子Web PKI的前进路径。目标是在2026年底推出签发MTCs的预发布环境(staging),2027年推出生产级环境。
这不是一个小工程。在Let's Encrypt的规模下签发MTCs需要在整条技术栈上进行重大改造:签发基础设施、用户获取证书所用的ACME协议、撤销和运维工具,以及MTCs所承载的透明性日志基础设施。我们一直在参与IETF PLANTS和ACME工作组的工作,跟随标准逐步成形。
在推进MTC工作的同时,我们也在跟踪X.509中ML-DSA签名的标准(RFC 9881)和TLS中的ML-DSA标准(draft-ietf-tls-mldsa),以及生态系统中依赖的工作(例如Go标准库中的ML-DSA支持)。Web PKI向后量子安全的过渡需要所有这些组件落地到浏览器、库和ACME客户端——无论最终交付的证书是MTCs还是ML-DSA签名的X.509。
如果你是Let's Encrypt用户,这意味着什么
今天一切照旧。你现有的Let's Encrypt证书将继续按照以往的方式签发和续期。当Let's Encrypt推出后量子证书时,它们将一如既往:免费、自动化、任何拥有ACME客户端的人都可以使用。
这个过渡需要时间。标准仍在完善中,根证书计划仍在制定要求,大量的工程工作需要在更广泛的生态系统中落地(浏览器、库、ACME客户端),然后这一切才能规模化运作。我们将随着工作的推进和时间表的明确,持续向社区通报进展。
如果你维护着一个ACME客户端或运行着基于ACME的证书流水线,现在就是开始关注PLANTS工作组工作和mtcs@chromium.org邮件列表讨论的好时机。即将到来的部分变更需要客户端侧的支持,当签发端准备就绪时,已经准备好的客户端将使整个生态系统受益。
关于更广泛的后量子过渡
对于更广泛的互联网社区:后量子加密是更紧迫的问题,因为任何不包含后量子密钥交换的TLS连接,其流量都可能被记录并在未来解密。如果你运营服务器,请确保它们支持混合后量子密钥交换(X25519MLKEM768)。主流浏览器和操作系统已经支持,在服务器端开启它是今年收益最高的举措之一。
结语
自2013年以来,我们一直秉持"安全应该免费、自动、对所有人开放"的原则,为公共网络构建基础设施。量子过渡是底层安全工作方式的一次代际变革。