

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ハイブリッドポスト量子 TLS を設定する
<a name="pqtls-how-to"></a>

この手順では、 AWS 共通ランタイム HTTP クライアントの Maven 依存関係を追加します。次に、ポスト量子 TLS を優先する HTTP クライアントを設定します。次に、HTTP AWS KMS クライアントを使用する クライアントを作成します。

 AWS KMSでのハイブリッドポスト量子 TLS の設定と使用の完全な実例については、[https://github.com/aws-samples/aws-kms-pq-tls-example](https://github.com/aws-samples/aws-kms-pq-tls-example) リポジトリを参照してください。

**注記**  
プレビュー版として利用可能な AWS 共通ランタイム HTTP クライアントは、2023 年 2 月に一般公開されました。このリリースでは、`tlsCipherPreference` クラスと `tlsCipherPreference()` メソッドパラメータが、`postQuantumTlsEnabled()` メソッドパラメータに置き換えられました。プレビュー中にこの例を使用していた場合は、コードを更新する必要があります。

1.  AWS 共通ランタイムクライアントを Maven の依存関係に追加します。利用可能な最新バージョンを使用することをお勧めします。

   たとえば、このステートメント`2.30.22`は AWS 、共通ランタイムクライアントのバージョンを Maven の依存関係に追加します。

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

1. ハイブリッドポスト量子暗号スイートを有効にするには、プロジェクト AWS SDK for Java 2.x に を追加して初期化します。続いて、次の例に示すように、HTTP クライアントでハイブリッドポスト量子暗号スイートを有効にします。

   このコードでは、`postQuantumTlsEnabled()` メソッドパラメータを使用して、推奨されるハイブリッドポスト量子暗号スイートである ECDH with ML-KEM を優先する [AWS 共通ランタイム HTTP クライアント](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html)を設定します。次に、設定された HTTP クライアントを使用して、 AWS KMS 非同期クライアントのインスタンス を構築します[https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/kms/KmsAsyncClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/kms/KmsAsyncClient.html)。このコードが完了すると、`KmsAsyncClient` インスタンス上のすべての [AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) リクエストは、ハイブリッドポスト量子 TLS を使用します。

   ```
   // Configure HTTP client
   SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder()
             .postQuantumTlsEnabled(true)
             .build();
   
   // Create the AWS KMS async client
   KmsAsyncClient kmsAsync = KmsAsyncClient.builder()
            .httpClient(awsCrtHttpClient)
            .build();
   ```

1. ハイブリッドポスト量子 TLS で AWS KMS 呼び出しをテストします。

   設定された AWS KMS クライアントで AWS KMS API オペレーションを呼び出すと、ハイブリッドポスト量子 TLS を使用して呼び出しが AWS KMS エンドポイントに送信されます。設定をテストするには、 などの AWS KMS API を呼び出します`[ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)`。

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

## ハイブリッドポスト量子 TLS 設定をテストする
<a name="pqtls-testing"></a>

が呼び出すアプリケーションで、ハイブリッド暗号スイートを使用して次のテストを実行することを検討してください AWS KMS。
+ アプリケーションによって行われた AWS KMS API コールの CloudTrail ログエントリ`tlsDetails`のセクションを表示します。`keyExchange` フィールドには、 などのハイブリッドアルゴリズムについて言及する必要があります`X25519MLKEM768`。例については、[ポスト量子 TLS 接続を介した標準対称暗号化キーによる復号](ct-decrypt.md#ct-decrypt-default-pqtls)を参照してください。
+ ハイブリッドポスト量子 TLS を使用してベンチマークを実行します。ハイブリッドキー交換では、TLS ハンドシェイクの一部のメッセージのサイズと処理時間が長くなりますが、ほとんどの場合、全体的なパフォーマンスへの影響は認識できません。
+ 別の場所からの接続を試します。リクエストが受け取るネットワークパスによっては、ディープパケットインスペクション (DPI) を使用するレガシー中間ホスト、プロキシ、またはファイアウォールがリクエストをブロックしていることがわかる場合があります。これは、TLS ハンドシェイクの [ClientHello](https://datatracker.ietf.org/doc/html/rfc8446#section-4.1.2) パートで新しいキー交換グループを使用すること、またはより大きなキー交換メッセージによって発生する可能性があります。これらの問題を解決できない場合は、セキュリティチームまたは IT 管理者と協力して関連する設定を更新し、新しい TLS キー交換グループのブロックを解除してください。