2025 年 5 月,红帽企业 Linux 10(RHEL)附带了迈向后量子密码学(PQC)的第一步,以防止量子计算机的攻击,这将使针对现有经典加密算法(如 RSA 和椭圆曲线)的攻击变得可行。加密相关量子计算机(CRQC)的存在尚不为人所知,但这并不意味着风险为零。例如,“先获取,稍后解密”攻击现在不需要量子计算机,只需要在存储的加密数据失去价值之前可用,并且根据传输的数据,可能要几十年后才会发生这种情况。
为了为量子未来做好准备,RHEL 10.1 改进了对此类“先获取,后解密”攻击的防御,并为其软件包引入了后量子签名。
下一节将介绍传输层安全性(TLS)中 PQC 的更改,随后的小节将阐述 RHEL 默认加密策略的变动。您是否知道 RHEL 是第一个使用混合后量子密钥签署软件包的主要 Linux 发行版?
第三部分介绍了这些更改的详细信息,最后为用户和第三方软件供应商提供了建议的后续步骤。
TLS 中的后量子加密
TLS 可以在两个地方使用后量子加密技术:密钥交换,其可防范“先获取,稍后解密”攻击;以及签名,可阻止利用量子计算机的中间人攻击。随着 RHEL 10.1 的发布,使用 OpenSSL、GnuTLS、NSS 或 Go 编程语言的应用默认启用对后量子密钥交换的支持。
OpenSSL、GnuTLS 和 NSS 加密库还支持采用基于模块格的数字签名算法(ML-DSA,一种 NIST 标准的 PQC 算法)的签名和 TLS 证书。请注意,目前没有公共证书颁发机构(CA)提供后量子加密技术,但私有 CA 或自签名证书现在可利用 ML-DSA 创建。
在 RHEL 10.0 中,由于标准和实施的快速发展,此功能作为技术预览版发布。现在,这种情况正在发生变化:TLS 中采用基于模块格的密钥封装机制(ML-KEM)和 ML-DSA 的后量子加密技术已在 Go、OpenSSL、GnuTLS 和 NSS 中普遍可用,并获得全面支持。
在 RHEL 10.1 的准备阶段,红帽开发人员对 PQC 密钥交换和 PQC 证书进行了产品范围的测试。这有助于确定多个问题,软件包维护人员在上游开源项目和下游 RHEL 中修复了这些问题。我们建议您立即开始在 TLS 部署中测试混合 PQC 密钥交换,并制定双经典/PQC TLS 证书服务器的计划(请参阅“创建后量子 TLS 证书”)。
PQC by DEFAULT 政策
RHEL 上的加密设置通过系统范围的加密策略进行管理,其中 DEFAULT 是标准策略。在 RHEL 10.1 中,此策略已更改为默认启用并首选后量子加密技术。这意味着,进出 RHEL 10.1 或更高版本的 TLS 和 SSH 连接将自动使用可用的后量子密钥交换。这两种协议使用广泛,可能占加密数据传输的大部分,从而显著提高了安全态势。
如果使用 sudo update-crypto-policies --set DEFAULT:PQ 启用了系统范围的加密策略模块“PQ”,则 RHEL 9.7 上基于 OpenSSL 或 NSS 的应用也可以在 TLS 中使用 PQC。
要验证系统使用的策略,请运行 update-crypto-policies --show。
具有后量子签名的软件包更新
最后,红帽开发人员一直在努力为我们的软件分发路径引入针对基于量子计算机的攻击的保护措施。这一点很重要,因为通过这些路径进行软件包更新将是红帽在后量子过渡中提供未来改进的方式。
红帽企业 Linux 10 使用 OpenPGP 的 Sequoia-PGP 实施来验证软件包签名。在 OpenPGP 中使用 PQC 的规范正处于最后阶段,红帽为该规范在 Sequoia-PGP 中的实施提供了资金支持,该实施现已作为预发行版提供。一些操作环境面临在短时间内进行 PQC 软件签名的监管要求,因此经过全面测试,RHEL 10.1 现在包含此实施。
在同一项目中,sq-cryptoki 和 sq 工具获得了通过 PKCS#11 访问后量子密钥的支持。这样可实现与硬件安全模块的集成。红帽对其签名基础架构进行了现代化改造,创建了一个混合使用 ML-DSA-87 和 Ed448 的后量子签名密钥,并且已开始使用此密钥签署其 RPM 软件包。RHEL 是第一个也是目前唯一实现这一里程碑的主要 Linux 发行版。
第一个后量子签名软件包是 ipmitool-1.8.19-10.el10_1,位于 RHBA-2025:23156 中:
# dnf download ipmitool
ipmitool-1.8.19-10.el10_1.aarch64.rpm
# rpm -Kv ipmitool-1.8.19-10.el10_1.aarch64.rpm | head -3
ipmitool-1.8.19-10.el10_1.aarch64.rpm:
Header V6 ML-DSA-87+Ed448/SHA512 Signature, key ID 05707a62: OK
Header V4 RSA/SHA256 Signature, key ID fd431d51: OK请注意,我们的 RSA 密钥仍然签署此软件包。理解 RPM 6 标头格式和 OpenPGP v6 签名的系统将验证 RSA 和 PQC 签名。较旧的系统将仅验证经典的 RSA 签名。
结论
红帽在后量子转型中迈出了重要一步,让我们的客户为即将到来的风险和监管要求做好准备。采用混合 ML-KEM 密钥交换的 TLS 已不再处于技术预览阶段,但目前可以缓解“先获取,后解密”攻击。RHEL 的核心加密库 OpenSSL、GnuTLS 和 NSS 现已普遍支持 ML-DSA 证书和签名。
与最近的行业推动(例如《欧洲网络弹性法案》)一致,标准配置已更改为在 TLS 和 SSH 中启用并首选后量子算法。未来还会有更多协议跟进。我们鼓励所有用户推出 PQC 密钥交换,并使用其 TLS 服务器测试经典/PQC TLS 双证书设置。您可能还想了解如何让您的企业组织为迎接量子未来做好准备。
最后,RHEL 是第一个在其软件包中添加混合后量子签名的主要发行版。我的同事 Jakub Jelen 为我们的合作伙伴记录了如何使用后量子密钥签署 RPM 软件包。RPM 签名现在可以通过 PKCS#11 3.2 与硬件安全模块集成,我们的支持和工程团队可以帮助您开始使用。
自 1.24 起,Go 目前仅支持 ML-KEM。预计未来版本中会支持 ML-DSA。
关于作者
Clemens Lang has been part of the Red Hat Crypto Team since January 2022. Prior to his work at Red Hat, he took care of open source packaging, over-the-air updates and security of infotainment systems at BMW. Clemens has also contributed to the MacPorts project since Google Summer of Code 2011.