配置混合后量子 TLS - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

配置混合后量子 TLS

在此过程中,为 Amazon 通用运行时 HTTP 客户端添加 Maven 依赖关系。然后配置一个优先使用后量子 TLS 的 HTTP 客户端。然后,创建一个使用 HTTP Amazon KMS 客户端的客户端。

要查看演示混合后量子 TLS 与 Amazon KMS结合使用的配置过程以及具体使用方法的完整工作示例,请参阅 aws-kms-pq-tls-example 存储库。

注意

C Amazon ommon Runtime HTTP 客户端已作为预览版提供,已于 2023 年 2 月正式上市。在正式发行版中,tlsCipherPreference 类和 tlsCipherPreference() 方法参数已替换为 postQuantumTlsEnabled() 方法参数替。如果您在预览期间使用此示例,则需要更新您的代码。

  1. 将 Amazon 通用运行时客户端添加到你的 Maven 依赖项中。我们建议您使用最新可用版本。

    例如,此语句将 Amazon 通用运行时客户端2.30.22的版本添加到您的 Maven 依赖项中。

    <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>aws-crt-client</artifactId> <version>2.30.22</version> </dependency>
  2. 要启用混合后量子密码套件,请将其添加到您的项目中并对其 Amazon SDK for Java 2.x 进行初始化。然后按照以下示例所示,在您的 HTTP 客户端上启用混合后量子密码套件。

    此代码使用postQuantumTlsEnabled()方法参数配置Amazon 常用运行时 HTTP 客户端,该客户端首选推荐的混合后量子密码套件 ECDH with。ML-KEM然后,它使用配置的 HTTP 客户端来构建 Amazon KMS 异步客户端的实例KmsAsyncClient。此代码完成后,KmsAsyncClient 实例上的所有 Amazon KMS API 请求都将使用混合后量子 TLS。

    // Configure HTTP client SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder() .postQuantumTlsEnabled(true) .build(); // Create the Amazon KMS async client KmsAsyncClient kmsAsync = KmsAsyncClient.builder() .httpClient(awsCrtHttpClient) .build();
  3. 使用混合后量子 TLS 测试您的 Amazon KMS 通话。

    当您在配置的 Amazon KMS 客户端上调用 Amazon KMS API 操作时,您的呼叫将使用混合后量子 TLS 传输到 Amazon KMS 端点。要测试您的配置,请调用 Amazon KMS API,例如ListKeys

    ListKeysReponse keys = kmsAsync.listKeys().get();

测试您的混合后量子 TLS 配置

考虑在调用的应用程序上使用混合密码套件运行以下测试。 Amazon KMS

  • 运行负载测试和基准测试。混合密码套件的执行方式与传统密钥交换算法有所不同。您可能需要调整连接超时,以便增加握手时间。如果您在 Amazon Lambda 函数内部运行,请延长执行超时设置。

  • 请尝试从不同位置进行连接。根据您的请求采用的网络路径,您可能会发现中间主机、代理或带有深度数据包检查 (DPI) 功能的防火墙阻止了请求。这可能是由于在 TLS 握手ClientHello部分使用了新的密码套件,或者是较大的密钥交换消息所致。如果您在解决这些问题时遇到麻烦,请与安全团队或 IT 管理员一起,更新相关配置并取消阻止新的 TLS 密码套件。