GitHub强化平台Git协议安全性,变更支持的密钥和签章算法

GitHub团队进一步提高平台安全性,决定更改Git协议,在用户拉取和推送Git资料的时候,提供额外的保护,这些更改包括取消所有DSA密钥支持、删除旧的SSH算法、关闭未加密的Git协议,以及添加要求RSA密钥等。大部分用户不会受到影响,只有使用SSH或git://连接的用户,需要进行相对应的措施。

之所以GitHub要更改SSH支持的密钥以及删除未加密的Git协议,官方提到,公钥加密技术依赖安全算法和足够强健的密钥,来确保修户的资料安全,而较少位元的意思,通常代表较容易遭到暴力破解,而且较旧的算法也存在已知的攻击漏洞,考虑到现代运算能力和攻击的变化,在2001年被视为安全的技术,在2021年已经不再安全。

这些变更包括删除旧的密钥类型,官方解释,DSA密钥只有80位元安全等级,低于一般标准128位元,而且现在也只有不到0.3%的GitHub请求使用DSA,因此拒绝DSA密钥能在对极少用户产生影响的情况下,提高安全性,之后GitHub还会取消对DSA主机密钥的支持。

同时,GitHub还要弃用不安全的签章算法,虽然RSA密钥比DSA强大,但是较旧的Git客户端,可能会将RSA密钥和过时的SHA-1签章算法一起使用,官方强调,不少SSH客户端包括OpenSSH 7.2和更新的版本,都已支持SHA-2签章RSA,这是更安全的配置,但是因为SHA-1签章算法很脆弱,因此他们决定不再允许新的RSA客户端使用SHA-1签章,而必须使用SHA-2。

GitHub还要移除SSH服务的部分算法,像是hmac-sha1消息鉴别码和所有CBC加密也都会被删除,特别是与不少攻击相关联的CBC加密,而官方也表示,根据他们统计资料,现在几乎所有客户端都使用更安全的加密和MAC算法,因此删除这些不安全的算法,对用户影响不大。

ECDSA和Ed25519是以椭圆曲线加密为基础的新标准,提供适度的大小和计算复杂度,GitHub在过去并没有提供这些作为主机密钥,但是他们承诺将会开始提供ECDSA和Ed25519作为选项。而在Git协议方面,未加密的git://没有提供完整性或是身份验证,所以容易遭到篡改,官方表示,已经很少用户使用该协议,特别这些协议并无法用来推送程序代码,因此GitHub现在停用对该协议的支持。

这些更改会从9月14日开始,一直到2022年3月15日,开发者可以使用OpenSSH 7.2以上版本,使用更新到libssh2 1.9.0的libgit2与其他工具,并且准备接受新的主机密钥,以避免受到影响。当用户的Git远程操作使用https://开头,则不会受到任何影响。