OpenSSH,最流行的连接和管理远程服务器的工具,今天宣布计划放弃对其SHA-1身份验证方案的支持。
该算法在2017年2月的一次实际攻击中被破解,当时谷歌密码学家披露了Shatted,这项技术可以让两个不同的文件看起来像是拥有相同的SHA-1文件签名。
当时,制造SHA-1碰撞被认为是计算昂贵的,谷歌专家认为SHA-1仍然可以在实践中使用至少五年,直到成本下降。
然而,随后在2019年5月和2020年1月发布的研究详细介绍了一种更新的方法,将SHA-1选择前缀冲突攻击的成本分别降低到11万美元和5万美元以下。
对于民族国家和高端网络犯罪集团等高级威胁参与者来说,如果他们可以生成SSH身份验证密钥,授予他们对关键服务器的远程且未被检测到的访问权限,50,000美元只是一个很小的代价。
OpenSSH开发人员今天表示,出于这个原因,我们将在不久的将来版本中默认禁用公钥签名算法。
OpenSSH应用程序使用";ssh-rsa";模式生成SSH身份验证密钥。其中一个密钥存储在用户想要登录的服务器上,另一个存储在用户的本地OpenSSH客户端中,允许用户访问服务器,而不必在每次登录时输入密码,而是提供本地身份验证密钥。
默认情况下,OpenSSH ssh-rsa模式使用SHA-1散列函数生成这些密钥,这意味着这些密钥容易受到SHAterred攻击,从而允许威胁行为者生成重复的密钥。
OpenSSH DEVS今天表示,不幸的是,尽管存在更好的替代方案,但该算法仍然被广泛使用,这是最初的SSH RFC指定的唯一剩余的公钥签名算法。
OpenSSH团队现在要求服务器所有者检查他们的密钥是否是使用默认的ssh-rsa模式生成的,然后使用不同的模式生成新的密钥。
OpenSSH团队说,推荐的模式是rsa-sha2-256/512(OpenSSH 7.2以后支持)、ssh-ed25519(OpenSSH 6.5以后支持)或ecdsa-sha2-nistp256/384/521(OpenSSH 5.7以后支持)。
这是最近公告中最精彩的部分。对于OpenSSH中不推荐使用基于ssh-rsa SHA-1的密钥的所有嵌入式系统和设备,请默哀一分钟(&;s)。pic.twitter.com/zf5VewugC6。
-胡里奥(@juliocesarfort)2020年5月27日。
OpenSSH项目将在未来(目前未指定)版本中默认禁用ssh-rsa模式,然而,在此之前,他们还计划在默认情况下启用UpdateHostKeys功能,以允许服务器所有者轻松、自动地从旧的ssh-rsa模式迁移到更好的身份验证算法。
依赖OpenSSH管理远程系统的服务器所有者可以在OpenSSH8.3更改日志中找到有关如何测试他们的服务器是否有弱的基于SHA-1的密钥的更多详细信息。
在以前的版本8.2中,OpenSSH团队还添加了对基于FIDO/U2F的硬件安全密钥的支持,该密钥还可以用来以更安全的方式登录到远程服务器。