Amazon KMS、ACM 和 Secrets Manager 现在支持 ML-KEM 后量子 TLS

作者: Alex Weibel |

亚马逊云科技很高兴地宣布,最新的 TLS 混合后量子密钥协议标准已部署到三项亚马逊云科技服务中。如今,Amazon Key Management Service (Amazon KMS)、Amazon Certificate Manager (ACM) 和 Amazon Secrets Manager 终端节点现在支持基于模块格子的密钥封装机制 (ML-KEM),用于分区中所有亚马逊云科技区域的非 FIPS 终端节点中的混合后量子密钥协议。aws 基于适用于 Rust 的亚马逊云科技开发工具包构建的 Amazon Secrets Manager Agent 现在还支持混合后量子密钥协议。这样,客户就可以使用支持后量子的端到端 TLS 将机密带入其应用程序。

之所以选择这三种服务,是因为它们是安全关键的亚马逊云科技服务,最迫切需要后量子机密性。这三项亚马逊云科技服务之前已经部署了对 ML-KEM 的前身 Crystals-Kyber 的支持。对 Crystals-Kyber 的支持将持续到 2025 年,但将在 2026 年取消对所有亚马逊云科技服务终端节点的支持,转而使用 ML-KEM。

我们向后量子密码学的迁移

亚马逊云科技致力于遵循我们的后量子密码学迁移计划。作为该承诺的一部分,也是亚马逊云科技后量子共担责任模式的一部分,亚马逊云科技计划在未来几年将对 ML-KEM 的支持部署到所有具有 HTTPS 终端节点的亚马逊云科技服务。连接到亚马逊云科技服务 HTTPS 终端节点时,亚马逊云科技客户必须更新其 TLS 客户端和软件开发工具包以提供 ML-KEM。这将防范未来的收获,解密量子计算进步带来的后期威胁。同时,当客户提供时,亚马逊云科技服务 HTTPS 终端节点将负责选择 ML-KEM。

我们对混合后量子密钥协议算法进行协商的承诺是由亚马逊云科技 Libcrypto (亚马逊云科技-LC)、我们在整个亚马逊云科技中使用的经过 FIPS-140-3 验证的开源加密库,以及我们在亚马逊云科技服务 HTTPS 终端节点上使用的开源 TLS 实现的 s2n-tls 实现的。亚马逊云科技-LC 已获得 NIST 颁发的多个 FIPS 证书(#4631、#4759 和 #4816),并且是第一个在 FIPS 140-3 验证中包含 ML-KEM 的开源加密模块。

混合后量子 ML-KEM 对 TLS 性能的影响

从仅限椭圆曲线 Diffie-Hellman (ECDH) 的密钥协议迁移到 ECDH+ML-KEM 混合密钥协议必然要求 TLS 握手发送更多数据并执行更多的加密操作。在 TLS 握手期间,从传统密钥协议切换到混合后量子密钥协议将额外传输大约 1600 字节,并且需要大约 80—150 微秒的计算时间才能执行 ML-KEM 加密操作。这是一次性的 TLS 连接启动成本,将在 TLS 连接的生命周期内分摊到通过该连接发送的 HTTP 请求中。

亚马逊云科技正在努力为 TLS 提供向混合后量子密钥协议的平稳迁移。这项工作包括对示例工作负载进行基准测试,以帮助客户了解与 ML-KEM 启用混合后量子密钥协议的影响。

使用适用于 Java 的亚马逊云科技开发工具包 v2,亚马逊云科技测量了单个线程在亚马逊弹性计算云计算 (Amazon EC2) C6in.Metal 客户端和公有 Amazon KMS 终端节点之间串行发出的每秒 Amazon KMS GenerateDataKey 请求的数量。客户端和服务器都在 us-west-2 区域。与 Amazon KMS 的传统 TLS 连接协商 P256 椭圆曲线以达成密钥协议,混合后量子 TLS 连接与 ML-KEM-768 协商了混合密钥协议 X25519 椭圆曲线。您自己的性能特征可能会有所不同,并将取决于您的环境,包括您的实例类型、工作负载配置文件、并行度和使用的线程数量以及您的网络位置和容量。HTTP 请求事务速率是在启用和禁用 TLS 连接重用的情况下衡量的。

图 1 显示了禁用 TLS 1.3 连接重用时每秒以不同百分位数发出的请求数。它表明,在最坏的情况下,当 TLS 握手的成本永不分摊并且每个 HTTP 请求都必须执行完整的 TLS 握手时,启用混合后量子 TLS 会使每秒交易量(TPS)平均减少约 2.3%,从 108.7 TPS 降至 106.2 TPS。

图 1:AWS KMS 在不重用 TLS 连接的情况下每秒生成数据密钥请求

图 1:Amazon KMS 在不重用 TLS 连接的情况下每秒生成数据密钥请求

图 2 显示了启用 TLS 连接重用时每秒以不同百分位数发出的请求数。重复使用 TLS 连接并将多个 HTTP 请求的 TLS 握手费用分摊是适用于 Java 的亚马逊云科技开发工具包 v2 中的默认设置。我们表明,在使用默认的 SDK 设置时启用混合后量子 TLS 会使 TPS 速率几乎保持不变,平均仅下降 0.05%,从 216.1 TPS 降至 216.0 TPS。

图 2:使用 TLS 连接重用 AWS KMS 每秒生成数据密钥请求

图 2:使用 TLS 连接重用 Amazon KMS 每秒生成数据密钥请求

我们的结果表明,在 SDK 中使用典型配置设置时,启用混合后量子 TLS 对性能的影响可以忽略不计。我们的测量结果表明,为默认情况示例工作负载启用混合后量子 TLS 仅将最大 TPS 速率降低了 0.05%。我们的结果还显示,覆盖 SDK 的默认值强制执行对每个请求执行新的 TLS 握手的最坏情况只会使最大 TPS 速率降低了 2.3%。

下表显示了我们测量的基准数据。每个基准测试针对不同的 TLS 密钥协议设置和 TLS 连接重用设置进行了 500 次一秒的 TPS 测量。适用于 Java 的亚马逊云科技开发工具包 v2 所使用的 v2.30.22 测量值。通过切换 postquantumTLSeNabled() 配置,TLS 密钥协议在经典后量子和混合后量子之间切换。通过在每个 HTTP 请求中注入 Connection: close HTTP 标头来切换 TLS 连接重用。此标头强制在每个 HTTP 请求后关闭 TLS 连接,并要求为每个 HTTP 请求创建一个新的 TLS 连接。

TLS 密钥协议 重用 TLS 连接 HTTP 请求总数 平均值 (TPS) p01 (TPS) p10 (TPS) p25 (TPS) p50 (TPS) p75 (TPS) p90 (TPS) p99 (TPS)
古典音乐 (P256) 没有 54,367 108.7 78 86 96 102 129 137 145
混合后量子 (X25519MLKEM768) 没有 53,106 106.2 76 85 93 100 126 134 141
古典音乐 (P256) 是的 108,052 216.1 181 194 200 216 233 240 245
混合后量子 (X25519MLKEM768) 是的 107,994 216 177 194 200 216 233 239 245

取消对后量子标准草案的支持

支持 ML-KEM 的前身 Crystals-Kyber 的亚马逊云科技服务终端节点将在 2025 年之前继续支持 Crystals-Kyber。在客户迁移到 ML-KEM 标准之后,我们将逐步停止对预标准 Crystals-Kyber 实施的支持。使用支持 Crystals-Kyber 的亚马逊云科技开发工具包的先前版本的 Java 版亚马逊云科技开发工具包的客户应升级到支持 ML-KEM 的最新软件开发工具包版本。使用现已发布的适用于 Java 的亚马逊云科技开发工具包 v2 版本的客户无需更改代码,即可从 Crystals-KYBER 升级到 ML-KEM。

当 Crystals-Kyber 从亚马逊云科技服务 HTTPS 终端节点中移除 Crystals-Kyber 后,如果客户在 2026 年之前未升级其亚马逊云科技 Java SDK v2 客户端,则客户将优雅地退回传统的密钥协议。

如何使用混合后量子密钥协议

如果使用适用于 Rust 的亚马逊云科技开发工具包,则可以通过将 rustls 包添加到您的箱子中并启用功能标志来启用混合后量子密钥协议。prefer-post-quantum 有关更多信息,请参阅 rustls 文档。

如果使用适用于 Java 2.x 的亚马逊云科技开发工具包,则可以在构建亚马逊云科技通用运行时 HTTP 客户端 .postQuantumTlsEnabled(true) 时通过调用来启用混合后量子密钥协议。

第 1 步:将亚马逊云科技通用运行时 HTTP 客户端添加到您的 Java 依赖项中。

将亚马逊云科技通用运行时 HTTP 客户端添加到您的 Maven 依赖项中。我们建议使用最新的可用版本。使用 2.30.22 或更高版本启用 ML-KEM。

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>aws-crt-client</artifactId>
    <version>2.30.22<version>
</dependency>

第 2 步:在 Java SDK 客户端配置中启用后量子 TLS

配置亚马逊云科技服务客户端时,使用配置有后量子 TLS 的 AwscrtaSynchTTPClient。

// Configure an亚马逊云科技Common Runtime HTTP client with Post-Quantum TLS enabled
SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder()
          .postQuantumTlsEnabled(true)
          .build();

// Create an亚马逊云科技service client that uses the亚马逊云科技Common Runtime client
KmsAsyncClient kmsAsync = KmsAsyncClient.builder()
         .httpClient(awsCrtHttpClient)
         .build();

// Make a request over a TLS connection that uses post-quantum key agreement
ListKeysReponse keys = kmsAsync.listKeys().get();

有关后量子 TLS 设置的端到端示例,请参阅 KMS PQ TLS 示例应用程序。

可以尝试的事情

以下是有关如何使用这个支持后量子的客户端的一些想法:

  • 运行负载测试和基准测试。AwscrtaSynchttpClient 针对性能进行了大量优化,并在基于 Linux 的环境中使用亚马逊云科技 Libcrypto。如果你还没有使用 awscrtaSynchttpClient,请立即试用,看看与默认 SDK HTTP 客户端相比的性能优势。使用 AWScrtaSynchTTPClient 后,启用后量子 TLS 支持。看看与使用不带后量子 TLS 的默认 SDK HTTP 客户端相比,使用带有后量子 TLS 的 AWscrtaSynchTTPClient 是否具有整体性能提升。
  • 尝试从不同的网络位置进行连接。根据您的请求所采用的网络路径,您可能会发现中间主机、代理或带有深度数据包检查 (DPI) 的防火墙阻止了该请求。如果是这种情况,您可能需要与安全团队或 IT 管理员合作,更新网络中的防火墙以解除对这些新的 TLS 算法的封锁。我们希望听取您的意见,了解您的基础设施如何与这种新的 TLS 流量变体进行交互。

结论

对基于 ML-KEM 的混合密钥协议的支持已部署到三个安全关键型亚马逊云科技服务终端节点。启用 TLS 连接重用后,启用混合后量子 TLS 对性能的影响可能可以忽略不计。我们的测量结果显示,调用 Amazon KMS GenerateDataKey 时,每秒最大交易量仅下降了 0.05%。

从版本开始 2.30.22,适用于 Java 的亚马逊云科技开发工具包 v2 现在支持在基于 Linux 的平台上使用亚马逊云科技 Common Runtime HTTP 客户端时基于 ML-KEM 的混合密钥协议。立即尝试在 Java SDK 客户端配置中启用 TLS 的后量子密钥协议。

作为我们后量子密码学迁移计划的一部分,亚马逊云科技计划在未来几年向每个亚马逊云科技服务 HTTPS 终端节点部署对基于 ML-KEM 的混合后量子密钥协议的支持。亚马逊云科技客户将负责更新其 TLS 客户端和软件开发工具包,以帮助确保在连接到亚马逊云科技服务 HTTPS 终端节点时提供 ML-KEM 密钥协议。这将防范未来的收获,解密量子计算进步带来的后期威胁。

有关我们的后量子密码学迁移的更多信息、博客文章和定期更新,请继续观看亚马逊云科技后量子密码学页面。要了解有关亚马逊云科技后量子加密的更多信息,请联系后量子密码学团队。

如果你对这篇文章有反馈,请在下面的评论部分提交评论。如果您对这篇文章有疑问,请在亚马逊云科技安全、身份与合规性 re: Post 上开一个新话题或联系 Amazon Support。

其他资源:

  • 亚马逊云科技后量子密码学
  • 亚马逊云科技后量子密码学迁移计划
  • 后量子密码迁移期间的客户合规性和安全性
  • 亚马逊云科技-LC FIPS 3.0:第一个在 FIPS 140-3 验证中包含 ML-KEM 的加密库
  • 数据密集型后量子 TLS 1.3 对现实世界连接的最后字节时间的影响
  • 亚马逊云科技研讨会:在亚马逊云科技上使用后量子密码学
  • NIST FIPS 203,基于模块格子的密钥封装机制标准 (ML-KEM)

如果你对这篇文章有反馈,请在下面的评论部分提交评论。

作者

Alex Weibel

Alex 是亚马逊云科技密码学的高级软件开发工程师。他是亚马逊 TLS 库 s2n-tls、亚马逊 Corretto 加密提供商 (ACCP) 和亚马逊云科技 Libcrypto (亚马逊云科技-LC) 的撰稿人。此前,Alex 曾为 Amazon S3 和 Elastic Load Balancing 处理 TLS 终止和 HTTP 请求代理,为客户开发新功能。Alex 拥有德克萨斯大学奥斯汀分校计算机科学理学学士学位。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。