本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用与 AWS Transfer Family的混合后量子密钥交换
AWS Transfer Family 支持 Secure Shell (SSH) 协议的混合后量子密钥建立选项。之所以需要建立后量子密钥,是因为已经有可能记录网络流量并将其保存以备将来由量子计算机解密,这被称为攻击。store-now-harvest-later
当你连接到 Transfer Family 时,你可以使用此选项,将文件安全地传入和传出亚马逊简单存储服务 (Amazon S3) 存储或亚马逊弹性文件系统 (亚马逊EFS)。后量子混合密钥建立SSH引入了后量子密钥建立机制,该机制与经典的密钥交换算法结合使用。SSH使用传统密码套件创建的密钥可以免受当前技术的暴力攻击。但是,在未来大规模量子计算出现之后,预计传统加密依然无法保证安全。
如果您的组织需要使 Transfer Family 连接传输的数据保持长期机密性,在目前没有大规模后量子计算机的情况下,可考虑改用后量子密码技术。
为了保护当今加密的数据免受未来潜在的攻击, AWS 正在与密码学界一起开发抗量子算法或后量子算法。我们在 Transfer Family 中实施了混合后量子密钥交换密码套件,通过将传统加密算法与后量子算法相结合。
这些混合密码套件可以在大多数 AWS 区域中用于您的生产工作负载。不过,由于混合密码套件的性能特征及带宽要求与传统密钥交换机制的性能特征及带宽要求有所不同,我们建议您针对您的 Transfer Family 连接开展测试。
在后量子密码学
目录
关于后量子混合密钥交换 SSH
Transfer Family 支持后量子混合密钥交换密码套件,后者同时使用经典的 El liptic Curve Diffie-Hellman
客户端和服务器仍然进行ECDH密钥交换。此外,服务器将后量子共享密钥封装到客户端的后量子公钥中,该KEM公钥在客户端的密钥交换消息中公布。SSH该策略将经典密钥交换的高度保证与拟议的后量子密钥交换的安全性相结合,以帮助确保在无法破解ECDH或后量子共享密钥的情况下握手受到保护。
后量子混合密钥创建如何在 Transfer Family 中运行
AWS 最近宣布支持在SFTP文件传输中进行后量子密钥交换。 AWS Transfer Family Transfer Family 使用SFTP和其他协议安全地将 business-to-business文件传输扩展到 AWS 存储服务。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?
AWS 致力于支持标准化、可互操作的算法。Kyber是后量子密码学项目选择的第一个标准化NIST后量子
作为该承诺的一部分, AWS 已向后量子密码学提交了一份提案草案,该IETF草案将Kyber与NIST经批准的曲线(例如P256)相结合。SSH为了帮助增强客户的安全性,在该 AWS 草案中SFTP并SSH遵循了后量子密钥交换。我们计划支持 future 对其进行更新,直到我们的提案被采纳IETF并成为标准。
随着草案向标准化方向发展或Kyber算法获得NIST批准,新的密钥交换方法(在章节中列出后量子混合密钥创建如何在 Transfer Family 中运行)可能会发生变化。
注意
目前,后量子算法支持后量子混合密钥交换 AWS KMS (参见使用混合后量子和 AWS KMS)AWS Certificate Manager、端点中的TLS后量子混合密钥TLS交换。 AWS Secrets Manager API
后量子混合SSH密钥交换和加密要求 (140) FIPS
对于需要FIPS合规的客户,Transfer FIPS Family使用经过 AWS FIPS 140认证SSH的开源加密库-LC提供经批准的加密技术。 AWSNIST根据SP 800-56Cr
在 Transfer Family 中测试后量子混合密钥交换
本节介绍测试后量子混合密钥交换所需步骤。
-
按照上述规范草案中的指导,使用支持后量子混合密钥交换的SFTP客户端(例如设置支持后量子混合密钥交换的SFTP客户端)。
-
通过 Transfer Family 服务器传输文件。
在您的SFTP终端上启用后量子混合密钥交换
您可以在 Transfer Family 中创建新的SFTP服务器端点时选择SSH策略,也可以在现有SFTP端点中编辑加密算法选项来选择策略。以下快照显示了您在 AWS Management Console 何处更新SSH策略的示例。
支持后量子密钥交换的SSH策略名称是 TransferSecurityPolicy-PQ-Experimental-2023-04和-PQ---Exp SSH erimental- 2023-04。TransferSecurityPolicy SSH FIPS有关 Transfer Family 政策的更多详情,请参阅 的安全策略 AWS 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 READMEs-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话。