設定混合後量子 TLS - AWS Key Management Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定混合後量子 TLS

在此程序中,為 AWS 通用執行期HTTP用戶端新增 Maven 相依性。接下來,設定偏好後量子 的HTTP用戶端TLS。然後,建立使用 AWS KMS 用戶端的HTTP用戶端。

若要查看設定和TLS搭配 使用混合後量子的完整工作範例 AWS KMS,請參閱 aws-kms-pq-tls-example 儲存庫。

注意

已作為預覽版提供的 AWS 通用執行期HTTP用戶端,已於 2023 年 2 月正式推出。在該版本中,tlsCipherPreference 類別和 tlsCipherPreference() 方法參數由 postQuantumTlsEnabled() 方法參數取代。如果您在預覽期間使用此範例,則需要更新程式碼。

  1. 將 AWS Common Runtime 用戶端新增至 Maven 相依性。我們建議使用最新的可用版本。

    例如,此陳述式會將 AWS Common Runtime 用戶端2.20.0的版本新增至您的 Maven 相依性。

    <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>aws-crt-client</artifactId> <version>2.20.0</version> </dependency>
  2. 若要啟用混合後量子密碼套件,請將 AWS SDK for Java 2.x 新增至您的專案並初始化。然後在HTTP用戶端上啟用混合後量子密碼套件,如下列範例所示。

    此程式碼使用 postQuantumTlsEnabled() 方法參數來設定AWS 常用執行期HTTP用戶端,該用戶端偏好建議的混合量子後密碼套件,ECDH並搭配 Kyber。然後,它會使用已設定的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();
  3. 使用混合後量子測試您的 AWS KMS 呼叫TLS。

    當您在已設定的 AWS KMS 用戶端上呼叫 AWS KMS API操作時,您的呼叫會使用混合後量子傳輸到 AWS KMS 端點TLS。若要測試您的組態,請呼叫 AWS KMS API,例如 ListKeys

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

測試混合後量子TLS組態

請考慮在呼叫 的應用程式中,使用混合密碼套件執行下列測試 AWS KMS。

  • 執行負載測試和基準測試。混合式密碼套件的執行方式不同於傳統的金鑰交換演算法。您可能需要調整連線逾時,以允許較長的交握時間。如果您在 AWS Lambda 函數內執行,請延長執行逾時設定。

  • 請嘗試從不同位置進行連線。根據您的請求採用的網路路徑,您可能會發現具有深度封包檢查 (DPI) 的中繼主機、代理或防火牆會封鎖請求。這可能是由於在交TLS握ClientHello部分使用新的密碼套件,或來自較大的金鑰交換訊息。如果您無法解決這些問題,請與您的安全團隊或 IT TLS 管理員合作,更新相關組態並解除封鎖新的密碼套件。