今天我们宣布一些将改进通过SSH访问Git数据安全性的变更。
变更了什么?
我们正在为访问Git数据的SSH端点添加一种新型的抗量子安全SSH密钥交换算法,该算法交替被称为 sntrup761x25519-sha512 和 sntrup761x25519-sha512@openssh.com。 此变更仅影响SSH访问,完全不影响HTTPS访问。 它也不影响位于美国区域的GitHub Enterprise Cloud with data residency。
我们为何进行这些变更?
这些变更将通过确保您的数据免受未来量子计算机执行的解密攻击,来保持您的数据现在和未来的安全。
当您建立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标准的算法),我们将及时向您通报我们的产品更新。