AWS Transfer Familyでハイブリッドポストクォンタムキー交換の使用 - AWS Transfer Family

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

AWS Transfer Familyでハイブリッドポストクォンタムキー交換の使用

Transfer Family は、Secure Shell (SSH) プロトコルのハイブリッドポスト量子キー確立オプションをサポートしています。ポストクォンタムキー確立が必要なのは、ネットワークトラフィックを記録し、将来クォンタムコンピューターによって復号できるように保存することがすでに可能であるためです。これは、「store-now-harvest-later」攻撃と呼ばれています。

Transfer Family に接続すると、Amazon Simple Storage Service (Amazon S3) ストレージまたは Amazon Elastic File System (Amazon EFS) との間で安全なファイル転送を行う場合にこのオプションを使用できます。SSH でのポストクォンタムハイブリッドキー確立には、従来のキー交換アルゴリズムと組み合わせて使用するポストクォンタムキー確立メカニズムが導入されています。従来の暗号スイートで作成された SSH 鍵は、現在の技術ではブルートフォース攻撃から安全です。ただし、future、大規模な量子コンピューティングが登場しても、従来の暗号化は安全性を維持できないと予想されます。

もし、組織がトランスファーファミリー接続でやり取りされるデータの長期的な機密性に依存しているのであれば、大規模な量子コンピュータが利用可能になる前に、ポスト量子暗号への移行計画を検討すべきです。

現在暗号化されているデータを潜在的な将来の攻撃から保護するために、 AWS は量子耐性アルゴリズムまたはポスト量子アルゴリズムの開発に暗号コミュニティに参加しています。Transfer Family にハイブリッドポストクォンタムキー交換暗号スイートを実装しました。

これらのハイブリッド暗号スイートは、ほとんどの AWS リージョンで本稼働ワークロードで使用できます。ただし、ハイブリッド暗号スイートのパフォーマンス特性と帯域幅要件は、古典的な鍵交換メカニズ ムとは異なるため、Transfer Family の接続でテストすることを推奨します。

ポスト量子暗号技術」の詳細については、ポスト量子暗号のセキュリティに関するブログ記事をご覧ください。

SSH におけるポスト量子ハイブリッドキー交換について

Transfer Family は、従来の楕円曲線 Diffie-Hellman (ECDH) キー交換アルゴリズムと ML-KEM の両方を使用するポスト量子ハイブリッドキー交換暗号スイートをサポートしています。ML-KEM は、米国国立標準技術研究所 (NIST) が最初の標準ポスト量子キー契約アルゴリズムとして指定したポスト量子パブリックキー暗号化およびキー確立アルゴリズムです。

クライアントとサーバーは依然として ECDH 鍵交換を行います。さらに、サーバーはポスト量子共有シークレットをクライアントのポストクォンタム KEM 公開鍵にカプセル化します。この公開鍵は、クライアントの SSH 鍵交換メッセージでアドバタイズされます。この戦略では、従来の鍵交換の高い保証と、提案されているポスト量子鍵交換のセキュリティを組み合わせて、ECDH またはポスト量子共有秘密が破られない限りハンドシェイクが確実に保護されるようにします。

TransferFamilyにおけるポスト量子ハイブリッド鍵確立の仕組み

AWS は最近、 での SFTP ファイル転送におけるポスト量子キー交換のサポートを発表しました AWS Transfer Family。Transfer Family は、business-to-businessファイル転送を安全にスケーリングします。 AWS SFTP は、SSH 上で動作するファイル転送プロトコル (FTP) のより安全なバージョンです。TransTransfer Family ilyのポスト量子キー交換サポートにより、SFTPを介したデータ転送のセキュリティレベルが引き上げられます。

Transfer Family でのポスト量子ハイブリッドキー交換 SFTP サポートには、ポスト量子アルゴリズム ML-KEM-768 および ML-KEM-1024 と、P256, P384または Curve25519 曲線を介した ECDH の組み合わせが含まれます。「ポスト・クォンタム・ハイブリッド SSH 鍵交換ドラフト」では、対応する SSH 鍵交換方法として以下のものが規定されています。

  • mlkem768nistp256-sha256

  • mlkem1024nistp384-sha384

  • mlkem768x25519-sha256

ML-KEM を使用する理由

AWS は、標準化された相互運用可能なアルゴリズムのサポートに取り組んでいます。ML-KEM は、NIST Post-Quantum Cryptography プロジェクトによって標準化および承認された唯一のポスト量子キー交換アルゴリズムです。標準ボディはすでに ML-KEM をプロトコルに統合しています。 AWS は、一部の AWS API エンドポイントで TLS の ML-KEM を既にサポートしています。

このコミットメントの一環として、 AWS は、ML-KEM と SSH 用の P256 のような NIST 承認曲線を組み合わせたポスト量子暗号化の提案案を IETF に送信しました。お客様のセキュリティを強化するために、SFTP と SSH でのポスト量子キー交換の AWS 実装はそのドラフトに従います。私たちの提案がIETFに採用され、標準になるまで、今後の更新をサポートする予定です。

新しいキー交換方法 (セクション に記載TransferFamilyにおけるポスト量子ハイブリッド鍵確立の仕組み) は、ドラフトが標準化に向けて進化するにつれて変更される可能性があります。

注記

ポスト量子アルゴリズムのサポートは現在、TLS でのポスト量子ハイブリッドキー交換 AWS KMS (「 でのハイブリッドポスト量子 TLS の使用」を参照 AWS KMS)AWS Certificate Manager、および AWS Secrets Manager API エンドポイントで利用できます。

ポスト量子ハイブリッド SSH 鍵交換と暗号要件(FIPS 140)

FIPS コンプライアンスを必要とするお客様向けに、Transfer Family は FIPS 140 認定のオープンソース暗号化ライブラリ AWS-LC を使用して SSH で AWS FIPS 認定の暗号化を提供します。Transfer Family の TransferSecurityPolicy-FIPS-2025-03 でサポートされているポスト量子ハイブリッドキー交換方法は、NIST の SP 800-56Cr2 (セクション 2) に従って FIPS が承認されています。ドイツ連邦情報セキュリティ局(BSI)とフランスの国家情報システムセキュリティ庁(ANSSI)も、このようなポスト量子ハイブリッドキー交換方法を推奨しています。

Transfer Family におけるポスト量子ハイブリッドキー交換のテスト

このセクションでは、ポスト量子ハイブリッドキー交換をテストする手順について説明します。

  1. SFTP エンドポイントでポスト量子ハイブリッドキー交換を有効にします。.

  2. 前述の仕様草案のガイダンスに従って、ポスト量子ハイブリッドキー交換をサポートする SFTP クライアント (ポスト量子ハイブリッドキー交換をサポートする SFTP クライアントをセットアップします。 など) を使用してください。

  3. Transfer Family サーバーを使用してファイルを転送します。

  4. SFTP でのポスト量子ハイブリッドキー交換の確認.

SFTP エンドポイントでポスト量子ハイブリッドキー交換を有効にします。

SSH ポリシーは、Transfer Family で新しい SFTP サーバーエンドポイントを作成するとき、または既存の SFTP エンドポイントの暗号化アルゴリズムオプションを編集するときに選択できます。次のスナップショットは、SSH ポリシー AWS Management Console を更新する の例を示しています。

暗号アルゴリズムオプションで選択されたポストクォンタムポリシーが表示されます。

ポスト量子キー交換をサポートする SSH ポリシー名は、TransferSecurityPolicy-2025-03 および TransferSecurityPolicy-FIPS-2025-03 です。Transfer Familyポリシーの詳細については、AWS Transfer Family サーバーのセキュリティポリシー を参照してください。

ポスト量子ハイブリッドキー交換をサポートする SFTP クライアントをセットアップします。

SFTP Transfer Family エンドポイントで正しいポストクォンタム SSH ポリシーを選択したら、Transfer Family でポストクォンタム SFTP を試すことができます。テストするローカルシステムに最新の OpenSSH クライアント (バージョン 9.9 など) をインストールします。

注記

クライアントが前述の ML-KEM アルゴリズムを 1 つ以上サポートしていることを確認します。OpenSSH のバージョンでサポートされているアルゴリズムを表示するには、 コマンド を実行しますssh -Q kex

次のコマンドに示すように、ポスト量子ハイブリッドキー交換メソッドを使用して、サンプル SFTP クライアントを実行して SFTP エンドポイント ( などs-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com) に接続できます。

sftp -v -o \ KexAlgorithms=mlkem768x25519-sha256 \ -i username_private_key_PEM_file \ username@server-id.server.transfer.region-id.amazonaws.com

先のコマンドで、以下の項目を自分の情報に置き換える:

  • ユーザー名_プライベートキー_PEM_ファイル」を SFTP ユーザーのプライベートキー PEM エンコードファイルに置き換えます。

  • username はインスタンスのユーザー名に置き換えます。

  • server-id」をTransfer Family サーバー ID に置き換えます

  • region-id」をトランスポート・ファミリ・サーバが存在する実際の地域に置き換えます

SFTP でのポスト量子ハイブリッドキー交換の確認

SFTP から Transfer Family への SSH 接続中にポスト量子ハイブリッドキー交換が使用されたことを確認するには、クライアント出力を確認します。オプションで、パケットキャプチャプログラムを使用できます。OpenSSH 9.9 クライアントを使用する場合、出力は次のようになります (簡潔にするために無関係な情報を省略)。

% sftp -o KexAlgorithms=mlkem768x25519-sha256 -v -o IdentitiesOnly=yes -i username_private_key_PEM_file username@s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com OpenSSH_9.9p2, OpenSSL 3.4.1 11 Feb 2025 debug1: Reading configuration data /Users/username/.ssh/config debug1: /Users/username/.ssh/config line 146: Applying options for * debug1: Reading configuration data /Users/username/.ssh/bastions-config debug1: Reading configuration data /opt/homebrew/etc/ssh/ssh_config debug1: Connecting to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com [xxx.yyy.zzz.nnn] port 22. debug1: Connection established. [...] debug1: Local version string SSH-2.0-OpenSSH_9.9 debug1: Remote protocol version 2.0, remote software version AWS_SFTP_1.1 debug1: compat_banner: no match: AWS_SFTP_1.1 debug1: Authenticating to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com:22 as 'username' debug1: load_hostkeys: fopen /Users/username/.ssh/known_hosts2: No such file or directory [...] debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: algorithm: mlkem768x25519-sha256 debug1: kex: host key algorithm: ssh-ed25519 debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: SSH2_MSG_KEX_ECDH_REPLY received debug1: Server host key: ssh-ed25519 SHA256:Ic1Ti0cdDmFdStj06rfU0cmmNccwAha/ASH2unr6zX0 [...] debug1: rekey out after 4294967296 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: rekey in after 4294967296 blocks [...] Authenticated to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com ([xxx.yyy.zzz.nnn]:22) using "publickey". debug1: channel 0: new session [client-session] (inactive timeout: 0) [...] Connected to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com. sftp>

この出力は、ポスト・クアンタム・ハイブリッド mlkem768x25519-sha256 メソッドを使用してクライアント・ネゴシエーションが行われ、SFTP セッションが正常に確立されたことを示しています。