今天,我们宣布一些改进通过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曲线的经典椭圆曲线Diffie-Hellman算法,提供针对量子计算机的安全性。尽管这些后量子算法较新,因此接受测试较少,但将它们与经典算法结合确保安全性不会弱于经典算法提供的水平。
这些变更正在向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的算法,我们将向您更新我们的产品。