如何应对伪造的 SSL 证书?
在互联网中,仍存在一个巨大的加密后门,可怕的是大部分人却并不知道。我所指的是传统的数字证书管理系统,它完全是基于信任的,但同时它又是十分脆弱的,其信任认证曾被多次打破。
数十亿的互联网用户为了确保个人数据的机密性和完整性,盲目地依赖于全球的数百个证书颁发机构。
在这篇文章中,我将解释以下问题:
- 当前数字证书管理系统中的结构性漏洞
- 证书颁发机构为什么失去了人们的信任?
- 证书透明度是如何弥补 SSL 证书系统中存在的问题的?
- 如何发现所有指向你域名的数字证书(合法或伪造)?
首先,你需要了解证书颁发机构及其作用:
证书颁发机构及其作用
证书颁发机构(CA)是一个受信任的第三方组织,负责发布和管理 SSL/TLS 证书。
全球有数百个受信任的证书颁发机构,他们中任何一个都有权利为你的域名颁发有效的 SSL 证书,尽管你可能已经从某个证书颁发机构购买了一个。
对,这就是 CA 系统中最大的漏洞。
SSL 的信任链破裂
去年,谷歌发现赛门铁克(证书颁发机构之一)在 Google 不知情下为 Google 域名颁发了有效期一天的预签证书。
这样的事情已经不是第一次发生了,证书颁发机构的权利被滥用或者是错误地被用于发布伪造的数字证书,这样的举动使数百万互联网用户的隐私处于危险之中。
2011年3月,一名黑客入侵了 Comodo 公司(一个著名的证书颁发机构),偷走了七个 Web 域共9个数字证书,包括:mail.google.com、addons.mozilla.org 和 login.yahoo.com 等。在同一年,荷兰的证书颁发机构 DigiNotar 同样遭到了黑客入侵,颁发了大量的伪造证书。
由于信任链的破裂,数百万的用户遭到了中间人攻击。
此外,爱德华·斯诺登泄露的文件透露:美国国家安全局截取和破解了大量 HTTPS 加密的 Web 会话,这也表明,某些所谓受信任的证书颁发机构可能受到了政府的控制或者得到了政府的授权。
如果政府要求某些这样的证书颁发机构颁发一些著名网站的伪造 SSL 证书,例如 Facebook、Google 或 Yahoo,那该如何是好?
这并不是一个推测,而是实实在在发生过的。政府机构和一些政府所资助的黑客通过滥用受信任的证书颁发机构来获取伪造的一些知名网站的数字证书,并将其用于监视用户。
涉及到政府的一些案例
1) 2011年,DigiNotar 证书颁发机构颁发的伪造数字证书被用于攻击约300000个伊朗用户的 Gmail 账户。
2) 2013年末,谷歌发现法国政府伪造了其域名的数字证书,并将其用于实施中间人攻击。
3) 2014年,谷歌证实了又一事件:印度国家信息中心使用了其域名的未授权数字证书。
到了这你就能明白,那些所谓的证书颁发机构给予 HTTPS 加密网站的安全性有多么脆弱了吧。
你仍然盲目地信任证书颁发机构吗?
DigiNotar 公司和 Comodo 公司的事件为我们敲响了警钟,也结束了这盲目信任证书颁发机构的时代。
问题:你如何去检查是否有指向你域名的伪造证书被发行给他人,甚至是被攻击者所利用?
答案:证书透明度项目,它的目标是提供一个开放的审计和监控系统,可以让任何域名所有者或者证书颁发机构确定证书是否被错误签发或者被恶意使用,从而提高 HTTPS 网站的安全性。
在2013年,谷歌发起了一个针对全行业的倡议,名为证书透明度,这是一个开源项目,用于记录,审计和监控证书颁发机构所颁发的数字证书。
什么是证书透明度系统?
证书透明度项目包括三部分:
- 证书日志
- 证书监视
- 证书审计
证书透明度项目要求证书颁发机构公开地宣布其颁发的每一个数字证书(将其记录到证书日志中)。证书日志提供给用户一个查找某个给定域名颁发的所有数字证书的途径。
值得注意的是,证书透明度模型并没有替代传统的以证书颁发机构为基础的鉴定验证程序,它只是提供给你一个途径,让你可以确保你的证书是独一无二的。
证书日志有3个优点:
- 仅允许附加:证书记录只能被添加,而不能被删除,修改,或者追溯地将数据插入日志。
- 加密可靠:证书日志使用知名的 “Merkle Tree Hashes” 加密机制来防止被篡改。
- 公开审计:任何人都可以查询日志,或者验证颁发的数字证书是否已经被合理地记录在了日志之中。
在证书透明度项目中,每个数字证书都包含一个证书时间戳,它可以证明数字证书在被颁发之前已经被记录到了日志之中。
谷歌,DigiCert、赛门铁克和一些证书颁发机构目前管理着这些公开日志。
虽然证书透明度不能阻止证书颁发机构颁发伪造的数字证书,但是它可以让我们更容易地发现它们。
证书透明度将让人们可以快速地识别出被错误地或者恶意地颁发的数字证书,以此来缓解可能会出现的安全问题,例如中间人攻击。
今年早些时候,证书透明度系统和监控服务帮助 facebook 安全团队提前检测到了多个 fb.com 子域的伪造证书。
在另一篇文章中,我详细介绍了 facebook 所提供的证书透明度监控服务,它可以自动而快捷地发现 SSL 证书的问题。
Facebook 已经向 The Hacker News (THN) 证实,在未来几个月会把试验性的证书透明度监控服务免费提供给更多的社区。
证书透明度搜索工具
听起来很有趣?
Comodo 已经推出了一款证书透明度搜索工具,它可以列出给定域名所有颁发的证书。或者,你也可以去试试谷歌的证书透明度查询工具,它可以在目前公开的证书透明度日志中查询任意一个给定的域名的所有颁发证书。
如果你发现有指向你域名的伪造证书,请立即报告给相应的证书颁发机构解决。
本文来自云栖社区合作伙伴“Linux中国”
原文发布时间为:2013-04-02.