今天,我们宣布了一些将改进通过SSH访问Git数据安全的变更。
变更内容
我们正在为访问Git数据的SSH端点添加一种新的后量子安全SSH密钥交换算法,该算法可交替称为 sntrup761x25519-sha512 或 sntrup761x25519-sha512@openssh.com。
此变更仅影响SSH访问,完全不影响HTTPS访问。 同时,它不影响位于美国地区的数据驻留版GitHub Enterprise Cloud。
为何进行这些变更?
这些变更旨在确保您的数据现在及未来都安全,能够抵御未来量子计算机可能执行的解密攻击。
当您建立SSH连接时,会使用密钥交换算法让双方协商出一个秘密。这个秘密随后用于生成加密密钥和完整性密钥。虽然现今的密钥交换算法是安全的,但业界正在引入能够抵御量子计算机密码分析攻击的新算法。
我们尚不确定未来是否能够制造出足够强大的量子计算机来破解传统的密钥交换算法。然而,攻击者可以现在保存加密的会话,如果未来建造出合适的量子计算机,便可对其进行解密。这被称为“先存储,后解密”攻击。
为了保护您使用SSH连接GitHub时的流量,我们正在推出一种混合型后量子密钥交换算法:sntrup761x25519-sha512(也称为旧名称 sntrup761x25519-sha512@openssh.com)。该算法通过将一种新的后量子安全算法 Streamlined NTRU Prime 与使用X25519曲线的经典椭圆曲线迪菲-赫尔曼算法相结合,提供了针对量子计算机的安全性。尽管这些后量子算法较新,因此接受的测试较少,但将它们与经典算法结合可以确保安全性不会弱于经典算法单独提供的水平。
这些变更将逐步推广到 github.com 和非美国居民数据区的GitHub Enterprise Cloud区域。只有FIPS批准的加密技术才可用于美国境内区域,而后量子算法尚未获得FIPS批准。
变更何时生效?
我们将在 2025年9月17日 为 GitHub.com 和具有数据驻留功能的GitHub Enterprise Cloud(美国区域除外)启用该新算法。
此算法也将包含在 GitHub Enterprise Server 3.19 中。
我该如何准备?
此变更仅影响通过SSH的Git客户端连接。如果您的Git远程仓库地址以 https:// 开头,则不会受到此变更的影响。
对于大多数用途,新的密钥交换算法不会导致任何明显变化。如果您的SSH客户端支持 sntrup761x25519-sha512@openssh.com 或 sntrup761x25519-sha512(例如,OpenSSH 9.0或更新版本),并且您的客户端偏好此算法,那么它将自动选择新算法。除非您修改了客户端的默认设置,否则无需更改配置。
如果您使用的是较旧的SSH客户端,您的客户端应回退到较旧的密钥交换算法。这意味着在您升级客户端之前,您将无法体验使用后量子算法的安全优势,但您的SSH体验应该会照常工作,因为SSH协议会自动选择双方都支持的算法。
如果您想测试您的OpenSSH版本是否支持此算法,可以运行以下命令:ssh -Q kex。这会列出所有支持的密钥交换算法,因此如果您看到 sntrup761x25519-sha512 或 sntrup761x25519-sha512@openssh.com,则表示支持。
要检查OpenSSH在连接到 github.com 时使用哪种密钥交换算法,请在Linux、macOS、Git Bash或其他类Unix环境中运行以下命令:
|
|
对于其他SSH实现,请参阅该实现的文档。
下一步计划
我们将密切关注安全领域的最新发展。随着我们使用的SSH库开始支持其他后量子算法(包括符合FIPS标准的算法),我们将向您通报我们的产品更新。