cnBeta.COM - 中文业界资讯站 ( ) • 2024-04-16 15:09

知名 SSH 客户端 PuTTY 日前被发现一枚高危安全漏洞,该漏洞广泛影响 PuTTY 各个版本,包括:0.68、0.69、0.70、0.71、0.72、0.73、0.74、0.75、0.76、0.77、0.78、0.79、0.80 版。是不是发现漏了一个版本?是的 PuTTY 0.67 版是不受影响的,目前该漏洞计划是在 0.81 版中修复,该版本尚未发布。

根据说明 PuTTY 从 0.68~0.80 版中使用 NIST P521 椭圆曲线算法 (ECDSA) 私钥生成签名的代码存在严重漏洞,当 PuTTY 使用密钥向 SSH 服务器验证身份时就会生成签名。

坏消息是这个安全漏洞会泄露用户使用的私钥,当攻击者拿到几十条签名消息和公钥后就可以用来恢复私钥然后伪造签名,接着攻击者就可以登录服务器进行各种操作了。

作为安全建议 PuTTY 建议用户从服务器中删除旧公钥文件 authorized_keys,其他 SSH 服务器中的等效密钥也应该删除,这样密钥的签名文件就不具备任何作用,再生成一对新密钥替换即可。

好消息是目前经过检查唯一受影响的密钥类型为 521 位 ECDSA,也就是说用户如果使用的是其他类型的密钥那么是不受影响的,包括 ED25519 等也都不受影响。

如何检查密钥类型:Windows PuTTYgen 生成器中可以看到密钥指纹的提示框,包括 ecdsa-sha2-nistp521 等,或者加载到 Windows Pageant 中的描述为 NIST p521,也就是看到提示或描述中带有 p521 那就是受影响的密钥类型。

为了彻底解决这个漏洞,PuTTY 0.80 版计划完全放弃用于生成密钥的旧系统,同时将所有 DSA 和 ECDSA 密钥类型切换到 RFC 6979 标准。

技术细节:https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html