

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

# でのハイブリッドポスト量子 TLS の使用 AWS KMS
<a name="pqtls"></a>

AWS Key Management Service (AWS KMS) は、Transport Layer Security (TLS) ネットワーク暗号化プロトコルのハイブリッドポスト量子キー交換オプションをサポートしています。この TLS オプションは、 AWS KMS API エンドポイントに接続するときに使用できます。これらのオプションのハイブリッドポスト量子キー交換機能は、現在使用している TLS 暗号化と同等以上に安全であり、セキュリティ上のさらなる長期的な利点をもたらす可能性があります。ただし、現在使用されている従来のキー交換プロトコルと比較して、レイテンシーとスループットに影響します。

 AWS Key Management Service (AWS KMS) に送信するデータは、Transport Layer Security (TLS) 接続によって提供される暗号化によって転送中に保護されます。 AWS KMS が TLS セッションでサポートしている従来の暗号スイートにより、現在のテクノロジーではキー交換メカニズムに対するブルートフォース攻撃は実行不可能です。しかし、大規模な量子コンピューティングが将来実用的になると、TLS 鍵交換メカニズムで使用される従来の暗号スイートは、これらの攻撃の影響を受けやすくなります。TLS 接続を介して渡されるデータの長期的な機密性に依存するアプリケーションを開発している場合は、大規模な量子コンピュータが使用できるようになる前に、ポスト量子暗号に移行する計画を検討する必要があります。 AWS は、この未来に備えており、準備も万全にしておく必要があります。

現在暗号化されているデータを将来の潜在的な攻撃から保護するために、 AWS は量子耐性アルゴリズムまたは*ポスト量子*アルゴリズムの開発に暗号コミュニティに参加しています。クラシック要素とポスト量子要素を組み合わせた*ハイブリッド*ポスト量子キー交換暗号スイート AWS KMS を に実装しました。これにより、TLS 接続がクラシック暗号スイートと同等以上に強力になります。

これらのハイブリッド暗号スイートは、[ほとんどの AWS リージョン](#pqtls-regions)本稼働ワークロードで使用できます。ただし、ハイブリッド暗号スイートのパフォーマンス特性と帯域幅要件は従来のキー交換メカニズムとは異なるため、さまざまな条件下で [AWS KMS API コールでテスト](pqtls-how-to.md#pqtls-testing)することをお勧めします。

**フィードバック**

これまでと同様、皆様のフィードバックや私たちのオープンソースリポジトリへの参加はいつでも歓迎です。特に、この新しい種類の TLS トラフィックが皆様のインフラストラクチャとどのように相互作用するかをぜひお聞かせください。
+ このトピックに関するフィードバックを提供するには、このページの右下隅にある [**フィードバック**] リンクを使用してください。
+ これらのハイブリッド暗号スイートは、GitHub の [https://github.com/aws/s2n-tls](https://github.com/aws/s2n-tls) リポジトリのオープンソースで開発されています。暗号スイートのユーザビリティに関するフィードバックを提供したり、新しいテスト条件や結果を共有したりするには、s2n-tls リポジトリで[課題を作成](https://github.com/aws/s2n-tls/issues)してください。
+ [https://github.com/aws-samples/aws-kms-pq-tls-example](https://github.com/aws-samples/aws-kms-pq-tls-example) GitHub リポジトリ AWS KMS の でハイブリッドポスト量子 TLS を使用するためのコードサンプルを記述しています。ハイブリッド暗号スイートを使用する AWS KMS ように HTTP クライアントを設定する方法について質問したり、アイデアを共有したりするには、aws-kms-pq-tls-exampleリポジトリで[問題を作成します](https://github.com/aws-samples/aws-kms-pq-tls-example/issues)。

**サポート AWS リージョン**

のポスト量子 TLS AWS KMS は、 が AWS KMS サポート AWS リージョン するすべての で使用できます。

それぞれの AWS KMS エンドポイントのリストについては AWS リージョン、の[AWS Key Management Service 「エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/kms.html)」を参照してください*Amazon Web Services 全般のリファレンス*。FIPS エンドポイントの詳細については、「Amazon Web Services 全般のリファレンス」の「[FIPS エンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#FIPS-endpoints)」を参照してください。

## TLS におけるハイブリッドポスト量子キー交換について
<a name="PQTLS-concepts"></a>

AWS KMS は、ハイブリッドポスト量子キー交換暗号スイートをサポートしています。Linux システムで AWS SDK for Java 2.x および AWS Common Runtime を使用して、これらの暗号スイートを使用する HTTP クライアントを設定できます。次に、HTTP クライアントを使用して AWS KMS エンドポイントに接続するたびに、ハイブリッド暗号スイートが使用されます。

この HTTP クライアントは、TLS プロトコルのオープンソース実装である [https://github.com/aws/s2n-tls](https://github.com/aws/s2n-tls) を使用します。s2n-tls が使用するハイブリッド暗号スイートは、直接データ暗号化ではなく、キー交換専用に実装されています。キー交換中、クライアントとサーバーは、転送中にデータの暗号化と復号に使用するキーを計算します。

s2n-tls が使用しているアルゴリズムは、[Elliptic Curve Diffie-Hellman](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) (ECDH)、TLS で現在使用されている従来のキー交換アルゴリズム、[Module-Lattice-Based Key-Encapsulation Mechanism](https://csrc.nist.gov/pubs/fips/203/final) (ML-KEM) 、米国国立標準技術研究所 (NIST) が[最初の標準ポスト量子キー合意アルゴリズとして指定](https://csrc.nist.gov/pubs/fips/203/final)した公開キー暗号化およびキー確立アルゴリズムを組み合わせたハイブリッドです。このメカニズムは、各アルゴリズムを独立して使用してキーを生成します。次に、2つのキーを暗号的に組み合わせます。s2n-tls では、プリファレンスリストで ECDH と ML-KEM を最初に配置するポスト量子 TLS を優先して、[HTTP クライアントを設定](pqtls-how-to.md)できます。互換性を確保するために、従来のキー交換アルゴリズムがプリファレンスリストに含まれていますが、プリファレンスの順序では低くなっています。

## でのハイブリッドポスト量子 TLS の使用 AWS KMS
<a name="pqtls-details"></a>

への呼び出しには、ハイブリッドポスト量子 TLS を使用できます AWS KMS。HTTP クライアントのテスト環境を設定するときは、次の点に注意してください。

**転送時の暗号化**

s2n-tls のハイブリッド暗号スイートは、転送中の暗号化のみに使用されます。クライアントから AWS KMS エンドポイントへの移動中にデータを保護します。 AWS KMS は、これらの暗号スイートを使用してデータを暗号化しません AWS KMS keys。

代わりに、 AWS KMS が KMS キーでデータを暗号化する場合、256 ビットキーによる対称暗号化と、すでに量子耐性がある Galois Counter Mode (AES-GCM) アルゴリズムを使用します。理論上の将来、256 ビット AES-GCM キーで作成された暗号文に対する大規模な量子コンピューティング攻撃は、[キーの効果的なセキュリティを 128 ビットに低下させます](https://www.etsi.org/images/files/ETSIWhitePapers/QuantumSafeWhitepaper.pdf)。このセキュリティレベルは、 AWS KMS 暗号文に対するブルートフォース攻撃を実行不可能にするのに十分です。

**サポートされているシステム**

s2n-tls のハイブリッド暗号スイートの使用は、現在 Linux システムでのみサポートされています。加えて、これらの暗号スイートは、 AWS SDK for Java 2.xなどの AWS 共通ランタイムをサポートする SDK でのみサポートされます。例については、[ハイブリッドポスト量子 TLS を設定する](pqtls-how-to.md)を参照してください。

**AWS KMS エンドポイント**

AWS KMS は、[FIPS 140-3 検証済みエンドポイントを含むすべてのエンドポイントでハイブリッドポスト量子 TLS ](https://docs.aws.amazon.com/general/latest/gr/kms.html)をサポートします。

# ハイブリッドポスト量子 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 キー交換グループのブロックを解除してください。

## ポスト量子 TLS の詳細については、「」を参照してください。 AWS KMS
<a name="pqtls-see-also"></a>

でのハイブリッドポスト量子 TLS の使用の詳細については AWS KMS、次のリソースを参照してください。
+ ブログ投稿や研究論文へのリンクなど AWS、 での量子後暗号化の詳細については、[「Post-Quantum Cryptography](https://aws.amazon.com/security/post-quantum-cryptography/)」を参照してください。
+ s2n-tls の詳細については、「[新しいオープンソース TLS 実装である s2n-tls の導入](https://aws.amazon.com/blogs/security/introducing-s2n-a-new-open-source-tls-implementation/)」と「[s2n-tls の使用](https://github.com/aws/s2n-tls/tree/main/docs/usage-guide)」を参照してください。
+  AWS Common Runtime HTTP Client の詳細については、 *AWS SDK for Java 2.x デベロッパーガイド*[AWS の「CRT ベースの HTTP クライアントの設定](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html)」を参照してください。
+ 米国国立標準技術研究所 (NIST) のポスト量子暗号プロジェクトの詳細については、「[Post-Quantum Cryptography](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography)」(ポスト量子暗号化) を参照してください。
+ NIST ポスト量子暗号標準化については、「[Post-Quantum Cryptography Standardization](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization)」(ポスト量子暗号標準化) を参照してください。