在1月14日的补丁星期二活动中,微软修复了存在于所有受支持windows系统的严重高危安全漏洞。此漏洞由美国国家安全局(nsa)发现并披露给了microsoft , 漏洞编号为cve-2020-0601。
在最新公告中,微软承认cve-2020-0601带来的高危影响,并表示windows cryptoapi(crypt32.dll)中用于验证椭圆曲线密码学(ecc)证书的方式中存在一个欺骗漏洞。黑客利用该漏洞可以签署任意恶意可执行文件,将其伪装成为受信任的合法来源。微软表示:“成功利用此漏洞还可以使攻击者进行中间人攻击并解密机密信息。用户与受影响软件的连接。”
ecc椭圆曲线加密(elliptic curve cryptography)是一种建立公开密钥加密的算法,基于椭圆曲线数学,于1985年由neal koblitz和victor miller分别独立提出的。ecc的主要优势在于某些情况下比其他方法使用更小的密钥(如rsa加密算法)来提供相当或更高等级的安全。
ecc椭圆曲线加密原理在于:设g为曲线上一点,d为一个整数令点q = d.g,若给定d和g,很容易求出q,若给定g和q ,很难求出d。 其中q为公钥,d为私钥。
cve-2020-0601漏洞原理在于 win10 增加了对带参数ecc密钥的支持,但在 crypt32.dll 中做签名验证时,只检查匹配的公钥 q,而没有检查生成元 g。 公钥 q = dg,d 是私钥。由于 win10 支持自定义生成元 g’,攻击者可以提供 g’ = q,d’ = e(单位元),使得 公钥q = dg = d’g’。 这两对(q, g)-(q, g’)中 公钥q 相同,g 与 g’ 不同,由于验证缺陷,只检测 公钥q。 从而,攻击者用自己的私钥 d’ 签名,会被验证通过,认为是官方私钥d 做出的签名。
影响版本
microsoft windows 10 version 1607 for 32-bit systems
microsoft windows 10 version 1607 for x64-based systems
microsoft windows 10 version 1709 for arm64-based systems
microsoft windows 10 version 1803 for 32-bit systems
microsoft windows 10 version 1803 for arm64-based systems
microsoft windows 10 version 1803 for x64-based systems
microsoft windows 10 version 1809 for 32-bit systems
microsoft windows 10 version 1809 for arm64-based systems
microsoft windows 10 version 1809 for x64-based systems
microsoft windows 10 version 1903 for 32-bit systems
microsoft windows 10 version 1903 for arm64-based systems
microsoft windows 10 version 1903 for x64-based systems
microsoft windows 10 version 1909 for 32-bit systems
microsoft windows 10 version 1909 for arm64-based systems
microsoft windows 10 version 1909 for x64-based systems
microsoft windows 10 for 32-bit systems
microsoft windows 10 for x64-based systems
microsoft windows 10 version 1709 for 32-bit systems
microsoft windows 10 version 1709 for x64-based systems
microsoft windows server 1803
microsoft windows server 1903
microsoft windows server 1909
microsoft windows server 2016
microsoft windows server 2019
安全建议
建议尽快安装2020年1月发布的补丁更新,以有效缓解windows 10和windows server 2016/2019系统上的此漏洞。
试用申请