View a markdown version of this page

启用混合后量子 TLS - AWS 软件开发工具包和工具

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

启用混合后量子 TLS

AWS SDK 和工具的加密功能和配置因语言和运行时而异。 AWS SDK 或工具目前通过三种方式提供 PQ TLS 支持:

默认启用 PQ TLS 的 SDK

注意

自6月起Nov-2025,适用于macOS和Windows的 AWS SDK及其底层CRT库使用TLS的系统库,因此这些平台上的PQ TLS功能通常由系统级支持决定。

AWS 适用于 Go 的 SDK

Go AWS 开发工具包使用 Golang 自己的标准库提供的 TLS 实现。从 v1.24 开始,Golang 支持并首选 PQ TLS,因此 AWS SDK for Go 用户只需将 Golang 升级到 v1.24 即可启用 PQ TLS。

AWS 适用于 JavaScript (浏览器)的 SDK

JavaScript (浏览器)的 AWS SDK 使用浏览器的 TLS 堆栈,因此,如果浏览器运行时支持并喜欢 PQ TLS,SDK 将协商 PQ TLS。Firefox 在 v132.0 中启动了对 PQ TLS 的支持。Chrome 宣布在 v131 中支持 PQ TLS。Edge 支持在 v120 中选择加入 PQ TLS(适用于台式机)和 140(适用于安卓)。

AWS 适用于 SDK Node.js

从 Node.js v22.20 (LTS) 和 v24.9.0 开始, Node.js 静态链接和捆绑了 OpenSSL 3.5。这意味着,PQ TLS 在默认情况下处于启用状态,并且是这些版本和后续版本的首选。

AWS 适用于 Kotlin 的 SDK

自 v1.5.78 起,Kotlin SDK 支持并首选 Linux 上的 PQ TLS。由于 Kotlin 的 AWS SDK CRT-based 客户端依赖于 macOS 和 Windows 上的 TLS 系统库,因此对 PQ TLS 的支持将取决于这些底层系统库。

AWS 适用于 Rust 的 SDK

Rust AWS 开发工具包为每个服务客户端分发不同的软件包(在 Rust 生态系统中称为 “箱子”)。这些都是在一个统一的 GitHub 存储库中管理的,但是每个服务客户端都遵循自己的版本和发布节奏。合并后的软件开发工具包在 8/29 /25 发布了 PQ TLS 首选项,因此在该日期之后发布的任何单个服务客户端版本都将默认支持并首选 PQ TLS。

通过导航到相关的 crates.io 版本 URL(例如,在这里)并查找 29-之后发布的第一个版本,您可以确定支持特定服务客户端 AWS 服务抵扣金的 PQ TLS 的最低版本。Aug-25默认情况下,29-之后发布的任何服务客户端版本都Aug-25将启用并首选 PQ TLS。

Opt-in PQ TLS 支持

AWS SDK for C++

默认情况下,C++ 开发工具包使用平台原生客户端,如 libcurl 和. WinHttp Libcurl 通常依赖系统 OpenSSL 来实现 TLS,因此只有当系统 OpenSSL 为 ≥ v3.5 时,PQ TLS 才在默认情况下启用。你可以在 C++ SDK v1.11.673 或更高版本中覆盖这个默认值,并选择加入默认支持和启用 PQ TLS AwsCrtHttpClient 的。

关于构建 Opt-In PQ TLS 的注意事项您可以使用此脚本获取 SDK 的 CRT 依赖关系。此处和此处描述了从源代码构建 SDK,但请注意,您可能需要一些额外的 CMake 标志:

-DUSE_CRT_HTTP_CLIENT=ON \ -DUSE_TLS_V1_2=OFF \ -DUSE_TLS_V1_3=ON \ -DUSE_OPENSSL=OFF \

AWS 适用于 Java 的 SDK

从 v2 开始, AWS 适用于 Java 的软件开发工具包提供了可配置为执行 PQ TLS 的 AWS 通用运行时 (AWS CRT) HTTP 客户端。从 v2.35.11 开始,无论在何处使用 PQ TLS,都会默认 AwsCrtHttpClient 启用和首选 PQ TLS。

JDK27 支持并首选 PQ TLS,因此 AWS 适用于 Java V1 或 V2 的 SDK 默认客户端在该版本(或更高版本)上运行的开箱即用支持 PQ TLS。甲骨文在《支持 JDK 版本》的《Post-Quantum 密码学》中概述了他们将 PQ TLS 反向移植到早期 JDK 版本的预期时间表。 Long-Term

依赖系统 OpenSSL 的 SDK

有几个 AWS SDK 和工具依赖于系统的 TLS libcrypto/libssl 库。最常用的系统库是 OpenSSL。OpenSSL 在 3.5 版中启用了 PQ TLS 支持,因此为 PQ TLS 配置这些 SDK 和工具的最简单方法是在至少安装了 OpenSSL 3.5 的操作系统发行版上使用它。

你还可以将 Docker 容器配置为使用 OpenSSL 3.5 在任何支持 Docker 的系统上启用 PQ TLS。有关为 Python 进行此设置的示例,请参阅 Python 中的 Post-quantum TLS。

AWS CLI

从 v2.34.54 开始,适用于 Linux 的 AWS CLI 安装程序捆绑了 OpenSSL 3.5.6,因此该版本和后续版本在 Linux 上默认启用并首选 PQ TLS。 AWS Linux 上的 CLI 用户可以通过升级到 CL AWS I v2.34.54 或更高版本来启用 PQ TLS。

对于 macOS,请通过 Homebrew 安装 AWS CLI 并确保您的 Homebrew-vended OpenSSL 已升级到 3.5+ 版本。你可以使用 “brew install openssl @3 .6” 来完成此操作,然后使用 “brew list | grep openssl” 进行验证。

有关验证安装的分步说明,请参阅 github 存储库和随附的博客文章。

AWS 适用于 PHP 的 SDK

AWS 适用于 PHP 的 SDK 依赖于系统 libssl/libcrypto。要使用 PQ TLS,请在至少安装了 OpenSSL 3.5 的操作系统发行版上使用此 SDK。

AWS 适用于 Python 的 SDK(Boto3)

AWS 适用于 Python 的 SDK (Boto3) 依赖于您安装的 TLS Python 所链接的 OpenSSL 库。行为因平台而异:

Windows and macOS (python.org installer)

适用于 Windows (.exe) 和 macOS (.pk g) 的官方 python.org 安装程序捆绑了自己的 OpenSSL 库。从 Python 3.14.6 开始,捆绑的 OpenSSL 3.5.7 默认支持并首选 PQ TLS。无需额外配置。

macOS (Homebrew)

由于 Homebrew 的 p ython @3 .14 链接到 Homebrew 的 openssl @3 共享库,因此从 Homebrew OpenSSL 3.5+ 开始,默认情况下支持和首选 PQ TLS。您可以使用以下方法验证您的 OpenSSL 版本:

python3.14 -c "import ssl; print(ssl.OPENSSL_VERSION)"

如果你的版本低于 3.5,请使用 brew upgrade openssl @3 进行升级。

Linux

在 Linux 上,Python 会动态链接到系统的共享 libssl。安装 OpenSSL 3.5+ 是必要的,但还不够,因为系统的加密策略还必须在其默认 TLS 配置中包括后量子组。

对于 Amazon Linux 2023(AL2023.12 或更高版本),通过以下方式启用 PQ TLS:

sudo update-crypto-policies --set DEFAULT:PQ

有关更多信息,请参阅在 AL2023 上启用 Post-Quantum 加密 (PQC)。

对于其他 Linux 发行版,请查阅您的发行版中有关配置默认 TLS 组的文档。

您可以通过检查 TLS 握手中的 X25519MLKEM768 密钥交换来验证 PQ TLS 是否正常运行。

AWS 适用于 Ruby 的 SDK

AWS 适用于 Ruby 的 SDK 依赖于系统 libssl/libcrypto。要使用 PQ TLS,请在至少安装了 OpenSSL 3.5 的操作系统发行版上使用此 SDK。

AWS 适用于 .NET 的 SDK

在 Linux 上,.NET 的 AWS SDK 依赖于系统 libssl/libcrypto。要使用 PQ TLS,请在至少安装了 OpenSSL 3.5 的操作系统发行版上使用此 SDK。在 Windows 和 macOS 上,PQ TLS 从 .NET 10 和 Windows 11 开始可用。在 macOS 上,可以通过选择加入 Apple 来启用 TLS 1.3 支持(PQ TLS 的 Network.framework 先决条件),如下所述。https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/libraries#tls-13-for-macos-client假设最低.NET 版本为 10,则应启用 PQ TLS。

AWS 不打算支持 PQ TLS 的 SDK 和工具

目前没有计划支持以下语言 SDK 和工具:

  • AWS SAP 软件开发工具包

  • AWS Swift 开发工具包

  • AWS 适用于 Windows 的工具 PowerShell