提高数字证书透明度 识破伪造SSL证书

在当今的互联网中,站长们会通过安装SSL证书(服务器证书)来认证网站身份和进行流量加密,避免“钓鱼”网站和信息泄露的危害。SSL证书是由数字证书管理机构(简称CA)签发的,CA是一个受信任的第三方组织,负责发布和管理 SSL证书。

全球有数百个受信任的CA,他们中的任何一个都有权利为你的网站域名颁发有效的SSL证书。但大部分人却不知道,百密一疏,部分CA系统可能存在漏洞,并导致一些伪造的SSL证书流入网络,威胁互联网的安全。

近年来的SSL证书伪造事件

去年,谷歌发现赛门铁克在 Google 不知情下为 Google 域名颁发了有效期一天的预签证书。这样的事情已经不是第一次发生了,部分CA的权利被滥用或者是错误地被用于发布伪造的数字证书,这样的举动使数百万互联网用户的隐私处于危险之中。

2011年3月,一名黑客入侵了Comodo公司,偷走了七个Web域共9个数字证书,包括:mail.google.com、addons.mozilla.org和login.yahoo.com 等。在同一年,荷兰的CA机构DigiNotar同样遭到了黑客入侵,颁发了大量的伪造证书。由于这些伪造证书,数百万用户遭到了中间人攻击。例如斯诺登泄露的文件中透露:美国国家安全局就利用一些CA颁发的伪造SSL证书,截取和破解了大量HTTPS加密网络会话。

提高SSL证书的透明度

DigiNotar、Comodo、赛门铁克等公司的事件为我们敲响了警钟,也结束了人们盲目信任CA的时代。那么,你如何发现是否有指向你域名的伪造SSL证书被发行给他人,甚至是被攻击者所利用呢?

一个有效的方法就是CA要及时公开所签发证书的数据,也就是提高证书的透明度,让我们可以通过比对数据及时确定证书的真伪。于是在2013年,谷歌发起了这一名为证书透明度(Certificate Transparency,简称CT)的项目。这一项目的目标是提供一个开放的审计和监控系统,可以让任何域名所有者或者CA确定证书是否被错误签发或者被恶意使用,从而提高 HTTPS 网站的安全性。

注:加入证书透明度项目的SSL证书将获得浏览器额外的信息佐证,可查看Certificate information(透明度信息)

CT项目要求CA公开其颁发的每一个数字证书的数据,并将其记录到证书日志中。值得注意的是,证书透明度项目并没有替代传统的以CA为基础的鉴定验证程序,它只是提供给你一个查询途径,让你可以确保你的证书是独一无二的。

证书透明度将让人们可以快速地识别出被错误或者恶意颁发的数字证书,以此来缓解可能会出现的安全问题,例如中间人攻击。今年早些时候,证书透明度系统和监控服务帮助facebook安全团队提前检测到了多个fb.com子域的伪造证书。

注:未公开透明度信息的SSL证书浏览器信息

注:已公开透明度信息的SSL证书浏览器信息

证书透明度项目在中国

据悉,目前已有数家中国地区的CA正在筹备参与到证书透明度项目中,其中就有我国规模最大的数字证书管理机构中国金融融认证中心(CFCA)。CFCA SSL证书是目前唯一在中国境内自建全球服务器证书根证书系统并通过WebTrust国际安全审计认证,且得到所有主流操作系统信任,在PC端、手机端均可应用的国产证书。为了加入证书透明度项目,进一步提高SSL证书的安全性,CFCA在2016年伊始开始对其证书颁发系统进行改造、升级,以适应项目对证书系统的各项要求。

注:CFCA EV SSL证书示例

在正式加入证书透明度计划后,CFCA颁发的所有EV证书将升级为EV CT证书。也就是这些证书的数据都将实时记录到CT项目的证书日志中,任何人都可以通过在线工具查询该日志,或者验证颁发的证书是否已经被合理地记录在日志之中。每个证书还会包含一个证书时间戳,它可以证明证书在被颁发之前已经被记录到了日志之中。随着CT项目在我国的不断推进,国产SSL证书将逐步达到国际最高的安全水准。

注:本文部分内容引自freebuf