OpenSSH 是最受欢迎的连接和管理远程服务器实用工具之一,近日团队宣布计划放弃对 SHA-1 认证方案的支持。OpenSSH 在公告中引用了 SHA-1 散列算法中存在的安全问题,被业内认为是不安全的。该算法在 2017 年 2 月被谷歌密码学专家破解,可利用 SHAttered 技术将两个不同文件拥有相同的 SHA-1 文件签名。

出于安全方面考虑 OpenSSH宣布放弃对SHA-1认证方案的支持-风君雪科技博客

  不过当时创建一个 SHA-1 碰撞被认为需要非常昂贵的计算成本,因此谷歌专家认为 SHA-1 在实际生活中至少还需要等待半年的时间,直到成本进一步下降。随后在在 2019 年 5 月和 2020 年 1 月发布的研究报告中,详细介绍了一种更新的方法,将 SHA-1 选择-前缀碰撞攻击的成本分别降低到 11 万美元和 5 万美元以下。

  对于像国家级别以及高端网络犯罪集团来说,让他们生成一个 SSH 认证密钥,从而让它们能够远程访问关键服务器而不被检测到,那么 5 万美元的代价是非常小的。OpenSSH 开发者今天表示:“由于这个原因,我们将在不久的未来版本中默认禁用‘ssh-rsa’公钥签名算法。”

出于安全方面考虑 OpenSSH宣布放弃对SHA-1认证方案的支持-风君雪科技博客

  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 以来支持)。