cover_image

OpenSSH 默认使用后量子密码学

Kurt Pan XPTY
2025年08月13日 16:59

原文:https://www.openssh.com/pq.html

译者:Kurt Pan

OpenSSH 支持多种被认为可抵御量子计算机攻击的密码学密钥协商算法。建议所有 SSH 连接都使用这些算法。

OpenSSH 自版本 9.0(2022年)起默认提供后量子密钥协商算法(KexAlgorithms),最初通过 sntrup761x25519-sha512 算法实现。最近,在 OpenSSH 9.9 中,我们添加了第二个后量子密钥协商算法 mlkem768x25519-sha256,并将其作为 OpenSSH 10.0 中的默认方案。

为了鼓励迁移到这些更强大的算法,当选择非后量子密钥协商方案时,OpenSSH 10.1 将向用户发出警告,并显示以下消息:

** WARNING: connection is not using a post-quantum kex exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html

默认情况下会显示此警告,但可以通过 ssh_config(5) 中的 WarnWeakCrypto 选项禁用。

背景

量子计算机(QC)是一种能够利用编码为量子态的信息进行计算的设备。这种设备可以快速解决现有"经典"计算机无法处理的特定问题。

许多密码学算法所依赖的数学原理属于量子计算机能够有效解决的问题范畴。这意味着一台足够强大的量子计算机(又称"密码学相关"量子计算机)将能够破解这些算法。受影响最大的是用于密钥协商和数字签名的密码学技术,这两者在 SSH 中都发挥着重要作用。

幸运的是,具有足够能力破解密码学的量子计算机尚未发明。根据该领域的进展速度,密码学相关量子计算机的出现时间预估为5到20年后,许多观察者预计它们将在2030年代中期出现。

SSH 连接的整体隐私性完全依赖于密码学密钥协商。如果攻击者能够破解密钥协商,他们就能解密并查看整个会话。攻击者无需实时执行此攻击;他们可以现在收集加密的 SSH 会话,然后在获得量子计算机访问权限后再解密。这被称为"先存储,后解密"攻击(也称为"先收集,后解密")。

OpenSSH 支持后量子密码学来保护用户流量免受此类攻击。

常见问题

  • 我收到了来自 ssh 的警告,并被引导至此页面。我该怎么办?

如上所述,OpenSSH 10.1 开始在连接使用对量子计算机不安全的密码学时警告用户。如果你收到了这样的警告,这意味着连接的服务器没有提供正在为 SSH 协议标准化的两种后量子密钥协商算法:mlkem768x25519-sha256 和 sntrup761x25519-sha512

  • https://datatracker.ietf.org/doc/draft-ietf-sshm-mlkem-hybrid-kex/
  • https://datatracker.ietf.org/doc/draft-josefsson-ntruprime-ssh/

理想的解决方案是更新服务器以使用支持至少其中一种算法的 SSH 实现。OpenSSH 9.0 及更高版本支持 sntrup761x25519-sha512,9.9 版及更高版本支持 mlkem768x25519-sha256。如果你的服务器已运行其中一个版本,请检查 KexAlgorithms 选项是否已禁用它们的使用。

如果你无法更新服务器和/或愿意接受继续使用量子不安全密码技术的风险,那么可以通过 ssh_config(5) 中的 WarnWeakCrypto 选项禁用该警告。我们建议有选择地执行此操作,例如:

Match host unsafe.example.com
    WarnWeakCrypto no
  • 量子计算机还不存在,为什么要这么费劲呢?

因为上述提到的"先存储,后解密"攻击。除非使用后量子密钥协商,否则今天发送的流量存在被解密的风险。

  • 那签名算法呢?你说它们也有风险

是的,大多数当前使用的签名算法(包括 RSA 和 ECDSA)都可以被量子计算机破解。然而,在这种情况下,现有流量不会面临风险(即不存在类似的"先存储,后解密"攻击)。对于签名算法而言,唯一紧迫的任务是确保所有经典签名密钥在密码学相关量子计算机成为现实之前就已退役。OpenSSH 未来将添加对后量子签名算法的支持。

  • 我不相信我们能造出量子计算机。这简直是浪费时间

有些人认为,将现有的量子计算机扩展到能够解决密码学问题的程度在实践上几乎是不可逾越的。这是有可能的。然而,目前看来,密码学相关量子计算机面临的大多数障碍都是工程挑战,而非底层物理问题。

如果我们对量子计算机实用性的判断正确,那么我们将保护大量的用户数据。如果我们的判断错误,那么我们所做的只不过是转向具有更强大数学基础的密码学算法。

  • 这些后量子算法是新的。我们确定它们没有问题吗?

我们对此也保持警惕。尽管后量子密钥协商算法在过去几年中受到了密码学界的大量合作关注,但仍有可能发现新的攻击方法。

为了防范这种情况发生,我们选择了具有良好安全边际的后量子算法。这意味着,即使这些算法最终比预期的要弱,它们仍足够强大,足以满足应用需求。

此外,OpenSSH 实现的所有后量子算法都是将后量子算法与经典算法相结合的"混合算法"。例如,mlkem768x25519-sha256 将 ML-KEM(一种后量子密钥协商方案)与 ECDH/x25519(一种经典密钥协商算法,曾是 OpenSSH 的首选默认算法)相结合。这确保了组合后的混合算法不会比之前的最佳经典算法更差,即使后量子算法被未来的密码分析完全破解。