本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用混合后量子密钥交换 Amazon Transfer Family
Amazon Transfer Family 支持安全外壳 (SSH) 协议的混合后量子密钥建立选项。之所以需要建立后量子密钥,是因为已经有可能记录网络流量并将其保存以备将来由量子计算机解密,这被称为攻击。store-now-harvest-later
当您连接至 Transfer Family,您可使用此选项,将在 Amazon Simple Storage Service (Amazon S3) 存储或 Amazon Elastic File System (Amazon EFS) 内外安全传输文件。SSH 中的后量子混合密钥创建引入了后量子密钥建立机制,该机制与经典的密钥交换算法结合使用。通过传统密码套件创建的 SSH 密钥可以免受当前技术的暴力攻击。但是,在未来大规模量子计算出现之后,预计传统加密依然无法保证安全。
如果您的组织需要使 Transfer Family 连接传输的数据保持长期机密性,在目前没有大规模后量子计算机的情况下,可考虑改用后量子密码技术。
为了保护当今加密的数据免受未来潜在的攻击, Amazon 正在与密码学界一起开发抗量子算法或后量子算法。我们在 Transfer Family 中实施了混合后量子密钥交换密码套件,通过将传统加密算法与后量子算法相结合。
这些混合密码套件可以在大多数 区域中用于您的生产工作负载。不过,由于混合密码套件的性能特征及带宽要求与传统密钥交换机制的性能特征及带宽要求有所不同,我们建议您针对 API 调用开展测试。
在后量子密码学
目录
关于 TLS 中的混合后量子密钥交换
Transfer Family 支持后量子混合密钥交换密码套件,后者同时使用经典的Elliptic Curve Diffie-Hellman (ECDH)
客户端和服务器仍进行 ECDH 密钥交换。此外,服务器将后量子共享密钥封装至客户端后量子 KEM 公钥,该公钥参见客户端的 SSH 密钥交换消息。该策略将经典密钥交换的高度保证与拟议的后量子密钥交换的安全性相结合,以帮助确保只要 ECDH 或后量子共享机密无法破解,握手就会受到保护。
后量子混合密钥创建如何在 Transfer Family 中运行
Amazon 最近宣布支持在 SFTP 文件传输中进行后量子密钥交换。 Amazon Transfer Family Transfer Family 使用 SFTP 和其他协议安全地将 business-to-business 文件传输扩展到 Amazon 存储服务。SFTP 是 SSH 运行的文件传输协议 (FTP) 的更安全的版本。Transfer Family 的后量子密钥交换支持提高了 SFTP 传输数据的安全门槛。
Transfer Family 中对后量子混合密钥交换 SFTP 的支持包括:将后量子算法 Kyber-512、Kyber-768 和 Kyber-1024 与超过 P256、P384、P521 或 Curve25519 曲线的 ECDH 相结合。后量子混合 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
注意
随着草稿向标准化发展,或者当 NIST 批准 Kyber 算法时,这些新的密钥交换方法可能会发生变化。
为什么选择 Kyber?
Amazon 致力于支持标准化、可互操作的算法。Kyber 是 NIST 后量子密码学项目
作为该承诺的一部分, Amazon 已向IETF提交了一份后量子密码学提案草案,该草案将Kyber与NIST批准的曲线(例如用于SSH的P256)相结合。为了帮助增强客户的安全性,在 SFTP 和 SSH 中 Amazon 实施后量子密钥交换遵循了该草案。在我们的提案被 IETF 采纳并成为标准之前,我们计划支持未来更新。
随着草稿向标准化发展,或者当 NIST 批准 Kyber 算法时,这些新的密钥交换方法可能会发生变化。
注意
后量子算法支持在 TLS 中用于后量子混合密钥交换 Amazon KMS (参见将混合后量子 TLS 与 Amazon KMS)和 Amazon Secrets Manager API 端点交换。Amazon Certificate Manager
后量子混合 SSH 密钥交换和加密要求 (FIPS 140)
对于需要符合 FIPS 标准的客户,Transfer Family 使用 FIPS 140 认证的开源加密库-LC 在 SSH 中提供 Amazon FIPS 认可的加密。 Amazon根据NIST的SP 800-56Cr2(第2节),Transfer Family中 TransferSecurityPolicy-pq-ssh-Fips-Experimental-2023-04中支持的后量子混合密钥交换方法已获得FIPS的批准。
在 Transfer Family 中测试后量子混合密钥交换
本节介绍测试后量子混合密钥交换所需步骤。
-
遵循上述规范草案中的指导,使用支持后量子混合密钥交换的 SFTP 客户端 (例如 设置支持后量子混合密钥交换的 SFTP 客户端)。
-
通过 Transfer Family 服务器传输文件。
在 SFTP 端点启用后量子混合密钥交换
当您在 Transfer Family 创建 SFTP 服务器端点时,您可选择 SSH 策略,或在现有 SFTP 端点编辑加密算法选项。以下快照显示了您更新 SSH 策略的 Amazon Web Services Management Console 示例。
支持后量子密钥交换的 SSH 策略名称是-pq-ssh-experimental-2023-04 和 TransferSecurityPolicy-pq-ssh-fips-Experimental-2023-04。TransferSecurityPolicy有关 Transfer Family 政策的更多详情,请参阅 Amazon Transfer Family 服务器的安全策略。
设置支持后量子混合密钥交换的 SFTP 客户端
在 SFTP Transfer Family 端点中选择正确的后量子 SSH 策略后,你可以在 Transfer Family 中尝试后量子 SFTP。遵循上述规范草案中的指导,使用支持后量子混合密钥交换的 SFTP 客户端 (例如 )。
OQS OpenSSH 是 OpenSSH 的开源分支,通过使用liboqs
在 SSH 中添加量子安全加密技术。liboqs
是实现抗量子加密算法的开源 C 库。OQS OpenSSH 和liboqs
是开放量子安全 (OQS) 项目的一部分。
要通过 OQS OpenSSH 在 Transfer Family 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
在下面的命令中,将 region 替换为您自己的信息。
-
将
username_private_key_PEM_file
更换为 SFTP 用户隐私秘钥 PEM 编码文件。 -
将
username
替换为该实例的用户名称。 -
将
server-id
替换为 Transfer Family 服务器 ID -
将
region-id
替换为您的 Transfer Family 服务器所在的实际区域
确认 SFTP 中的后量子混合密钥交换
要确认 SFTP 至 Transfer Family 的 SSH 连接期间是否使用了后量子混合密钥交换,请查看客户端输出。或者您可以使用数据包捕获程序。如果您使用 Open Quantum Safe OpenSSH 客户端,则应输出类似于以下内容(为简洁起见,省略不相关的信息):
$./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 会话的客户端协商。