本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在此过程中,为 AWS 通用运行时 HTTP 客户端添加 Maven 依赖关系。然后配置一个优先使用后量子 TLS 的 HTTP 客户端。然后,创建一个使用 HTTP AWS KMS 客户端的客户端。
要查看配置和使用混合后量子 TLS 的完整工作示例 AWS KMS,请参阅 aws-kms-pq-tls-example
注意
C AWS ommon Runtime HTTP 客户端已作为预览版提供,已于 2023 年 2 月正式上市。在正式发行版中,tlsCipherPreference
类和 tlsCipherPreference()
方法参数已替换为 postQuantumTlsEnabled()
方法参数替。如果您在预览期间使用此示例,则需要更新您的代码。
-
将 AWS 通用运行时客户端添加到你的 Maven 依赖项中。我们建议您使用最新可用版本。
例如,此语句将 AWS 通用运行时客户端
2.30.22
的版本添加到您的 Maven 依赖项中。<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>aws-crt-client</artifactId> <version>2.30.22</version> </dependency>
-
要启用混合后量子密码套件,请将其添加到您的项目中并对其 AWS SDK for Java 2.x 进行初始化。然后按照以下示例所示,在您的 HTTP 客户端上启用混合后量子密码套件。
此代码使用 m
postQuantumTlsEnabled()
ethod 参数配置AWS 常用运行时 HTTP 客户端,该客户端更喜欢推荐的混合后量子密码套件 ECDH ML-KEM。 然后,它使用配置的 HTTP 客户端来构建 AWS KMS 异步客户端的实例KmsAsyncClient
。此代码完成后, KmsAsyncClient
实例上的所有 AWS KMS API 请求都将使用混合后量子 TLS。// Configure HTTP client SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder() .postQuantumTlsEnabled(true) .build(); // Create the AWS KMS async client KmsAsyncClient kmsAsync = KmsAsyncClient.builder() .httpClient(awsCrtHttpClient) .build();
-
使用混合后量子 TLS 测试您的 AWS KMS 通话。
当您在配置的 AWS KMS 客户端上调用 AWS KMS API 操作时,您的呼叫将使用混合后量子 TLS 传输到 AWS KMS 端点。要测试您的配置,请调用 AWS KMS API,例如
ListKeys
。ListKeysReponse keys = kmsAsync.listKeys().get();
测试您的混合后量子 TLS 配置
考虑在调用的应用程序上使用混合密码套件运行以下测试。 AWS KMS
-
运行负载测试和基准测试。混合密码套件的执行方式与传统密钥交换算法有所不同。您可能需要调整连接超时,以便增加握手时间。如果您在 AWS Lambda 函数内部运行,请延长执行超时设置。
-
请尝试从不同位置进行连接。根据您的请求采用的网络路径,您可能会发现中间主机、代理或带有深度数据包检查 (DPI) 功能的防火墙阻止了请求。这可能是由于在 TLS 握手ClientHello
部分使用了新的密码套件,或者是较大的密钥交换消息所致。如果您在解决这些问题时遇到麻烦,请与安全团队或 IT 管理员一起,更新相关配置并取消阻止新的 TLS 密码套件。