OpenSSH是最受欢迎的连接和管理远程服务器实用工具之一,近日团队宣布计划放弃对SHA-1认证方案的支持。OpenSSH在公告中引用了SHA-1散列算法中存在的安全问题,被业内认为是不安全的。该算法在2017年2月被谷歌密码学专家破解,可利用SHAttered技术将两个不同文件拥有相同的SHA-1文件签名。
不过当时创建一个SHA-1碰撞被认为需要非常昂贵的计算成本,因此谷歌专家认为SHA-1在实际生活中至少还需要等待半年的时间,直到成本进一步下降。随后在在2019年5月和2020年1月发布的研究报告中,详细介绍了一种更新的方法,将SHA-1选择-前缀碰撞攻击的成本分别降低到11万美元和5万美元以下。
对于像国家级别以及高端网络犯罪集团来说,让他们生成一个SSH认证密钥,从而让它们能够远程访问关键服务器而不被检测到,那么5万美元的代价是非常小的。OpenSSH开发者今天表示:“由于这个原因,我们将在不久的未来版本中默认禁用‘ssh-rsa’公钥签名算法。”
OpenSSH应用程序使用 "ssh-rsa "模式来生成SSH验证密钥。这些密钥中的一个存储在用户要登录的服务器上,另一个存储在用户的本地OpenSSH客户端中,这样用户就可以在每次登录时不需要输入密码就可以访问服务器,而是以本地验证密钥来代替登录。
在默认情况下,OpenSSH ssh-rsa模式通过使用SHA-1散列功能生成这些密钥,这意味着这些密钥容易受到SHAterred攻击,使威胁行为者能够生成重复的密钥。OpenSSH开发者今天表示:“遗憾的是,尽管存在更好的替代方案,但这种算法仍然被广泛使用,它是原始SSH RFCs规定的唯一剩下的公钥签名算法”。
OpenSSH团队现在要求服务器所有者检查他们的密钥是否已经用默认的ssh-rsa模式生成,并使用不同的模式生成新的密钥。OpenSSH团队表示,推荐的模式是rsa-sha2-256/512(自OpenSSH 7.2以来支持)、ssh-ed25519(自OpenSSH 6.5以来支持)或ecdsa-sha2-nistp256/384/521(自OpenSSH 5.7以来支持)。