瑜伽常识 /MANUAL
九博体育官网PATTY SSH客户端缺陷允许恢复加密私钥
九博体育官网PATTY SSH客户端缺陷允许恢复加密私钥PuTTY 是一种流行的开源终端仿真器、串行控制台和网络文件传输应用程序,支持 SSH(安全外壳)、Telnet、SCP(安全复制协议)和 SFTP(SSH 文件传输协议)。
系统管理员和开发人员主要使用该软件从基于 Windows 的客户端通过 SSH 远程访问和管理服务器和其他网络设备。
具体来说,由于 PuTYY 使用确定性方式来生成这些数字九博体育官网,以弥补特定 Windows 版本上缺乏强大的加密随机数生成器,因此存在偏差。
PuTTY 技术的工作原理是生成 SHA-512 散列,然后对它进行 mod q 缩减,其中 q 是 DSA 系统中使用的组的阶数。对于整数 DSA(PuTTY 技术最初是为此开发的),q 约为 160 位;对于椭圆曲线 DSA(后来出现),它的位数与曲线模数大致相同,因此 NIST 曲线 之外的所有情况下,通过减少 512 位数字 mod q 引入的偏差可以忽略不计。但在 P521 的情况下,其中 q 有 521 位(即超过 512 位),减少 512 位数字 mod q 所带来的偏差可以忽略不计。q 没有影响——得到的 k 值的前 9 位始终为零。
恢复私钥的主要影响是它允许未经授权地访问 SSH 服务器或以开发人员身份签署提交,甚至可能对受影响的软件项目进行供应链攻击。
使用用户的私钥创建数字签名,并通过服务器上相应的公钥进行验证,保证用户的身份和通信的安全。攻击者需要 58 个签名才能计算目标的私钥,他们可以通过从他们控制或受到损害的 SSH 服务器登录或从签名的 Git 提交中收集签名来获取私钥。
从 SSH 服务器收集签名意味着服务器本身已经受到威胁,因此威胁分子可以广泛访问操作系统。然而,从公共提交中获取签名的方法对于攻击者来说更为实用。
在某些情况下,无需提前损害服务器即可利用此漏洞。其中一种情况是使用 SSH 密钥来签署 Git 提交,常见的设置包括在本地使用 Pageant(PuTTY 的 ssh 代理)并将代理转发到开发主机。
在这里,将 Git 配置为使用 OpenSSH 使用 Pageant 提供的 SSH 密钥对 Git 提交进行签名,然后由 Pageant 生成签名,使其容易被私钥恢复。
开发人员在 PuTTY 0.81 版本中修复了该漏洞,该版本放弃了之前的 k 代方法,并针对所有 DSA 和 ECDSA 密钥切换到 RFC 6979 技术。
然而,值得注意的是,使用该工具的易受攻击版本生成的任何 P521 私钥都应被视为不安全,并应替换为新的安全密钥。