使用与 Amazon Transfer Family的混合后量子密钥交换 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用与 Amazon Transfer Family的混合后量子密钥交换

Amazon Transfer Family 支持 Secure Shell (SSH) 协议的混合后量子密钥建立选项。之所以需要建立后量子密钥,是因为已经有可能记录网络流量并将其保存以备将来由量子计算机解密,这被称为攻击。store-now-harvest-later

当你连接到 Transfer Family 时,你可以使用此选项,将文件安全地传入和传出亚马逊简单存储服务 (Amazon S3) 存储或亚马逊弹性文件系统 (亚马逊EFS)。后量子混合密钥建立SSH引入了后量子密钥建立机制,该机制与经典的密钥交换算法结合使用。SSH使用传统密码套件创建的密钥可以免受当前技术的暴力攻击。但是,在未来大规模量子计算出现之后,预计传统加密依然无法保证安全。

如果您的组织需要使 Transfer Family 连接传输的数据保持长期机密性,在目前没有大规模后量子计算机的情况下,可考虑改用后量子密码技术。

为了保护当今加密的数据免受未来潜在的攻击, Amazon 正在与密码学界一起开发抗量子算法或后量子算法。我们在 Transfer Family 中实施了混合后量子密钥交换密码套件,通过将传统加密算法与后量子算法相结合。

这些混合密码套件可以在大多数 Amazon 区域中用于您的生产工作负载。不过,由于混合密码套件的性能特征及带宽要求与传统密钥交换机制的性能特征及带宽要求有所不同,我们建议您针对您的 Transfer Family 连接开展测试。

后量子密码学安全博客文章中了解后量子密码的更多信息。

关于后量子混合密钥交换 SSH

Transfer Family 支持后量子混合密钥交换密码套件,后者同时使用经典的 El liptic Curve Diffie-Hellman () 密钥交换算法和 Kyber。ECDH CRYSTALSKyber 是一种后量子公钥加密和密钥建立算法,美国国家标准与技术研究所 (NIST) 已将其指定为其第一个标准的后量子密钥协议算法。

客户端和服务器仍然进行ECDH密钥交换。此外,服务器将后量子共享密钥封装到客户端的后量子公钥中,该KEM公钥在客户端的密钥交换消息中公布。SSH该策略将经典密钥交换的高度保证与拟议的后量子密钥交换的安全性相结合,以帮助确保在无法破解ECDH或后量子共享密钥的情况下握手受到保护。

后量子混合密钥创建如何在 Transfer Family 中运行

Amazon 最近宣布支持在SFTP文件传输中进行后量子密钥交换。 Amazon Transfer Family Transfer Family 使用SFTP和其他协议安全地将 business-to-business文件传输扩展到 Amazon 存储服务。SFTP是运行的文件传输协议 (FTP) 的更安全版本SSH。Transfer Family的后量子密钥交换支持提高了数据传输SFTP的安全门槛。

Transfer Family中的后量子混合密钥交换SFTP支持包括将后量子算法Kyber-512、Kyber-768和Kyber-1024与ECDH超过P256、P384、P521或Curve25519曲线相结合。后量子混合SSH密钥交换草案中规定了以下相应的SSH密钥交换方法。

  • ecdh-nistp256-kyber-512r3-sha256-d00@openquantumsafe.org

  • ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org

  • ecdh-nistp521-kyber-1024r3-sha512-d00@openquantumsafe.org

  • x25519-kyber-512r3-sha256-d00@amazon.com

注意

随着草案向标准化发展,或者当Kyber算法获得NIST批准时,这些新的密钥交换方法可能会发生变化。

为什么选择 Kyber?

Amazon 致力于支持标准化、可互操作的算法。Kyber是后量子密码学项目选择的第一个标准化NIST后量子加密算法。一些标准机构已经在将Kyber整合到协议中。 Amazon 已在某些 Amazon API端点TLS中支持 Kyber。

作为该承诺的一部分, Amazon 已向后量子密码学提交了一份提案草案,该IETF草案将Kyber与NIST经批准的曲线(例如P256)相结合。SSH为了帮助增强客户的安全性,在该 Amazon 草案中SFTP并SSH遵循了后量子密钥交换。我们计划支持 future 对其进行更新,直到我们的提案被采纳IETF并成为标准。

随着草案向标准化方向发展或Kyber算法获得NIST批准,新的密钥交换方法(在章节中列出后量子混合密钥创建如何在 Transfer Family 中运行)可能会发生变化。

注意

目前,后量子算法支持后量子混合密钥交换 Amazon KMS (参见使用混合后量子和 Amazon KMS)Amazon Certificate Manager、端点中的TLS后量子混合密钥TLS交换。 Amazon Secrets Manager API

后量子混合SSH密钥交换和加密要求 (140) FIPS

对于需要FIPS合规的客户,Transfer FIPS Family使用经过 Amazon FIPS 140认证SSH的开源加密库-LC提供经批准的加密技术。 AmazonNIST根据SP 800-56Cr 2(第2节),Transfer Family中 TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04中支持的后量子混合密钥交换方法已获得批准。FIPS德国联邦信息安全办公室 (BSI) 和法国国家信息系统安全局 () 也推荐了这种后量子混合密ANSSI钥交换方法。

在 Transfer Family 中测试后量子混合密钥交换

本节介绍测试后量子混合密钥交换所需步骤。

  1. 在您的SFTP终端上启用后量子混合密钥交换.

  2. 按照上述规范草案中的指导,使用支持后量子混合密钥交换的SFTP客户端(例如设置支持后量子混合密钥交换的SFTP客户端)。

  3. 通过 Transfer Family 服务器传输文件。

  4. 确认后量子混合密钥交换 SFTP.

在您的SFTP终端上启用后量子混合密钥交换

您可以在 Transfer Family 中创建新的SFTP服务器端点时选择SSH策略,也可以在现有SFTP端点中编辑加密算法选项来选择策略。以下快照显示了您在 Amazon Web Services Management Console 何处更新SSH策略的示例。

显示为加密算法选项选定的后量子策略。

支持后量子密钥交换的SSH策略名称是 TransferSecurityPolicy-PQ-Experimental-2023-04和-PQ---Exp SSH erimental- 2023-04。TransferSecurityPolicy SSH FIPS有关 Transfer Family 政策的更多详情,请参阅 的安全策略 Amazon Transfer Family

设置支持后量子混合密钥交换的SFTP客户端

在 Transfer Family 端点中选择了正确的后量子SSH策略后,你可以在 Transfer Family SFTP 中尝试后量子策略。SFTP您可以按照上述规范草案中的指导使用支持后量子混合密钥交换的SFTP客户端(例如 Ope OQSn SSH)。

OQSOp SSH en 是 Open 的开源分支SSH,它通过使用将量子安全密码学添加到其中。SSH liboqs liboqs是一个实现抗量子加密算法的开源 C 库。OQSOpen SSH liboqs 是 Open Quantum Safe (OQS) 项目的一部分。

要在 Transfer Fam SFTP ily with Ope OQS n 中测试后量子混合密钥交换SSH,你需要SSH按照项目中的说明构建 OQS Ope READMEn。构建 OQS Open 后SSH,您可以使用后量子混合密钥交换方法运行示例SFTP客户端以连接到您的SFTP终端节点(例如s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com),如以下命令所示。

./sftp -S ./ssh -v -o \ KexAlgorithms=ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org \ -i username_private_key_PEM_file \ username@server-id.server.transfer.region-id.amazonaws.com

在上一个命令中,将以下项目替换为您自己的信息:

  • Replace(替换) username_private_key_PEM_file 使用SFTP用户的私钥PEM编码文件

  • Replace(替换) username 用SFTP用户名

  • Replace(替换) server-id 使用 Transfer Family 服务器 ID

  • Replace(替换) region-id 与你的 Transfer Family 服务器所在的实际区域相同

确认后量子混合密钥交换 SFTP

要确认在与 Transfer Family 的SSH连接期间是否使用了后量子混合密钥交换,请检查客户端输出。SFTP或者您可以使用数据包捕获程序。如果您使用 Open Quantum Safe Open SSH 客户端,则输出应类似于以下内容(为了简洁起见,省略了不相关的信息):

$./sftp -S ./ssh -v -o KexAlgorithms=ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org -i username_private_key_PEM_file username@s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com OpenSSH_8.9-2022-01_p1, Open Quantum Safe 2022-08, OpenSSL 3.0.2 15 Mar 2022 debug1: Reading configuration data /home/lab/openssh/oqs-test/tmp/ssh_config debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling debug1: Connecting to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com [xx.yy.zz..12] port 22. debug1: Connection established. [...] debug1: Local version string SSH-2.0-OpenSSH_8.9-2022-01_ 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 /home/lab/.ssh/known_hosts2: No such file or directory [...] debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: algorithm: ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org debug1: kex: host key algorithm: ssh-ed25519 debug1: kex: server->client cipher: aes192-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none debug1: kex: client->server cipher: aes192-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:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649 [...] 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 AWS.Tranfer.PQ.SFTP.test-endpoint.aws.com ([xx.yy.zz..12]:22) using "publickey".s debug1: channel 0: new [client-session] [...] Connected to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com. sftp>

输出显示,使用后量子混合ecdh-nistp384-kyber-768r3-sha384-d00@openquantumsafe.org方法进行了客户端协商,并成功建立了会SFTP话。