【漏洞分析】微软“超级”漏洞CVE-2020-0601

  • 内容
  • 相关

漏洞分析

CVE-2020-0601漏洞原理在于Windows 10增加了对参数ECC密钥的支持,但在crypt32.dll中验证签名时,并不检查底层参数即生成元P是否一致。具体来讲,官方私钥为m,对应的公钥为Q=mP,利用私钥对其认可的文件进行签名。用户利用官方的公钥对该签名进行验证,若验证通过,则此文件是可信赖的。而由于Windows 10支持自定义生成元,因此恶意攻击者定义生成元P’=Q=mP,令伪造的私钥为e(素数域中单位元),则此伪造私钥所对应的公钥Q’=eP’=P’=Q。简单来讲,当生成元是P时,(mP, m)是一对合法的公私钥,当生成元是mP时,(mP, e)也是一对合法的公私钥。而签名的安全性在于给定生成元时,通过公钥无法获得对应的私钥。但由于crypt32.dll不检查对应的生成元,通过这种方式就可以绕过ECDLP困难问题获得一个可以通过验证的私钥e,与官方的私钥具有同等的能力,即,利用e对文件进行的签名可以被官方的公钥验证成功,使得用户认为该文件是被官方信赖的。

该漏洞可以使攻击者为恶意可执行文件签发可以通过验证的签名,导致用户信息泄露或系统被破坏,使用户权益受损。

漏洞复现

以下动图展示了通过伪造的证书劫持github.com的过程:


2.gif


受影响版本
此漏洞只影响Windows 10、Windows Server 2016/2019的相关版本,具体受影响版本请参考《【严重漏洞】Windows CryptoAPI加密证书欺骗严重漏洞(CVE-2020-0601)

修复方案

目前软件微软已经发布了漏洞相应的补丁,建议受影响用户尽快安装,以有效缓解所有Windows 10和Windows Server 2016/2019系统上的漏洞。如果短时间对企业范围进行自动化的修补难以实现,建议系统所有者优先考虑对关键服务进行修补。

本文标签:

版权声明:若无特殊注明,本文皆为《T0ex4》原创,转载请保留文章出处。

本文链接:【漏洞分析】微软“超级”漏洞CVE-2020-0601 - https://www.k1q.cn/post-76.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注