这是第一个由美国国安局(NSA)所发现并主动提交给微软的安全漏洞。
CVE-2020-0601漏洞位于Window的加密组件CryptoAPI。 CryptoAPI是微软提供给开发人员的Windows安全服务应用程序接口,可用于加密的应用程序,实现数据加密、解密、签名及验证等功能。
由Crypt32.dll提供的Microsoft Windows CryptoAPI无法以正确验证ECC证书的信任链。攻击者可以利用该漏洞伪造受信任的根证书签发证书。ECC椭圆曲线加密(Elliptic curve cryptography)于1985年由Neal Koblitz和Victor Miller分别独立提出的公钥密码算法。
算法见
ANS X9.62, Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA).
签名
- 输入:
- 待签名的消息为M的杂凑值转化为域上整数记为e。
- 签名者用户A的私钥dA(A的密钥对包括其私钥dA和公钥PA=[dA]G= (xA,yA))
- 输出:
- 数字签名(r,s)
验签
- 输入:
- 待签名的消息为M的杂凑值转化为域上整数记为e。
- 签名者用户A的公钥PA(A的密钥对包括其私钥dA和公钥PA=[dA]G= (xA,yA))
- 数字签名(r,s)
- 输出:验证通过或失败。
、原理
验证流程5计算的点(x1; y1) 和签名步骤2计算的点( x1, y1 )相等。
计算流程 |
= |
= |
= |
= |
= |
= |