CVE-2020-0601漏洞
该漏洞是微软在2020年推出的第一批漏洞修复补丁中炒的最热闹的一个,新年将至,写一篇漏洞分析来凑个热闹,复现就算了,有缘人自会找到复现手段。
本篇简要讲述 CVE-2020-0601
漏洞的成因·
证书验证
我们先以
SSL协议
为例,来形容一下如何进行证书验证,以及该漏洞是在哪里产生:
例: 双十一来了,小明(m)
在某电商(x)
网站上购买了一本书,这时就调用了SSL协议
进行通讯,建立SSL协议的步骤总结为下图:
步骤①:
- 由小明和电商互相介绍自己,这里被称为
打招呼
。 - 这时,小明 和 电商 协商好以后的步骤里将使用到的特定密码算法。在本漏洞中,该算法为
ECC 加密算法
- 这一步没有利用密码工具。
步骤②:
- 电商 向 小明 验证自己的身份,电商 发送包含自己的
公钥
的 证书。该证书由权威的第三方证书机构(CA
)颁发。 - 小明使用
CA
的公开验证密钥 验!证! 证书中对PK的签名。
这里是触发漏洞的地方, 记住这里
步骤③:
- 由 小明 生成一个随机的密钥
MS
,该密钥用于生成对双方传输的信息进行对称加密的K1与K2。 MS
由小明获得的公钥
进行加密并交给 电商。- 电商 通过手中的
私钥
解密获得MS
。 - 这时双方都获得了用于进行加密通讯的密钥。
注意:
- 在SSL会话过程中,只有
电商
一方被要求提供证书,小明
可能根本没有公钥(或证书)。这和我们平时去小卖部买东西一样,销售方 需要提供销售许可, 而 你,只需要付钱就可以了。 - 该漏洞的触发点在于第三方权威机构(Windows)在
步骤②
验证证书时产生的逻辑漏洞,使得攻击者可以通过 伪造证书 将自身伪装成电商
, 与小明
进行通讯。从而达到骗财骗色骗信息的目的。 - 通过及时更新微软补丁包可以有效防止上述情况的发生。
第三方机构证书(CA证书)
这里我们讲一下CA证书都包含什么信息,以及为什么攻击者可以通过
CVE-2020-0601
漏洞伪造CA证书。
- CA证书中包含很多信息,我们列举出即将用到的一些重要信息:
- Subject : Microsoft
- Valid Between : 1992 - 2099
- Public Key : 0x123456789A...
- Algorithm : Elliptic Curve/RSA/...
- 该漏洞仅适用于
Algorithm(算法)
为 Elliptic Curve 的证书, 也就是我们上面提到的ECC 加密算法
。 - 当算法为 RSA 时,证书中
Algorithm
的部分提供的是一串代表RSA算法的OID数据串。而当算法为 ECC 时,证书则会提供更多数据(见下)。