发生了什么变化?
我们正在为访问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的算法,我们将向您更新我们的产品。