最近,一批技术爱好者利用 eMudhra 泄露的证书私钥,给谷歌签发了约 10.6 万张 HTTPS 证书。目前 CT(证书透明度)日志里已有 10.7 万条相关提交记录,其中适用于 Google.com 域名的证书有 10.6 万条,占比约 99%。

这些证书能够通过 CA 公钥认证,但由于中间 CA 已经被吊销,浏览器在实际访问时会直接报错。只有在那些不检查吊销列表的环境中,它们才仍然可能被当作有效证书接受。
上周,印度公司 eMudhra 的证书私钥问题在安全圈里引发了不少关注。该公司签发的 8 张中间 CA 证书均使用弱密钥,其中 EM OV TLS CA – G3C 证书的私钥更是夸张到只有数字 4——也就是说,任何人都可以直接利用这个证书为其他域名签发子证书。
目前这些问题证书已经被主流浏览器和操作系统吊销,但如果某些设备不检查证书吊销状态,或者无法及时获取更新,那么被吊销的证书仍然会被本地信任,用它签发的子证书也依然可用。
爱好者们为谷歌域名签发 10.6 万张证书
要测试利用 eMudhra 泄露私钥给任意域名签发证书,首选目标自然就是 Google.com,就像国内用户检查网络连通性时习惯打开百度一样。于是 CT 证书透明度日志中,已经记录到爱好者们为谷歌主域名 Google.com 签发了多达 10.6 万张证书。
目前 CT 日志里相关签发记录总共达到 10.7 万条,其中 99% 都以谷歌域名作为测试对象。这些证书虽然能够通过 CA 公钥认证,但由于中间证书已经被浏览器吊销,实际访问时会被阻断,除非设备本身不检查吊销记录。
为什么自己签发的证书也能被 CT 记录到
原因在于证书签发和 CT 日志登记本来就是两套不同流程。正常情况下,CA 核验域名控制权之后,才会用中间 CA 私钥签发证书;而持有泄露私钥的人可以在本地制作证书,把任意域名写入 DNS 名称字段,再用这把私钥完成签名。
RFC 9162 规定,任何人都可以向 CT 日志提交证书并附上证书链供日志检查。CT 日志只负责记录和公开证书,供外界审查 CA 的签发情况,并不会替 CA 去审核域名控制权。所以只要爱好者在签发证书时主动向 CT 日志提交,这些记录就能被查询到。
类似这样的证书私钥泄露与 CT 日志案例,在云栈社区里也常常能看到安全方向的开发者复盘和讨论。
|