作者简介:Scott Helme是一名安全研究人员和国际演说家。他还是securityheaders.io和report-uri.io的创始人,这些免费工具可帮助企业更好地部署安全机制。 Certificate Transparency和OCSP Must-Staple未能足够快地落实起来。 这篇文章最初发表在Scott Helme的个人博客上。 眼下我们在互联网上有个小问题,但我觉得这会逐渐成为更严重的问题:越来越多的网站在获得证书(部署HTTPS所需的至关重要的文件),但是一旦证书方面出了岔子,我们无法保护自己。 证书 随着越来越多的网站部署HTTPS,我们目前看到互联网证书迎来了一股热潮。除了HTTPS在安全和隐私方面明显具有优势外,还有好多原因促使你想要考虑改用这种安全的连接协议,我在文章《仍认为你不需要HTTPS?》(https://scotthelme.co.uk/still-think-you-dont-need-https/)中概述了这些原因。这种安全证书通常被称为“SSL证书”或“HTTPS证书”,更广泛的互联网用户正以我们之前在互联网发展史上从未见过的速度获得它们。我每天搜索前100万个网站,分析其安全性的方方面面,每6个月就发布一份报告。你可以在这里(https://scotthelme.co.uk/tag/crawl/)查看报告,不过眼下关注的主要结果是HTTPS的采用。 前100万个网站中使用HTTPS的百分比 我们不仅在继续部署HTTPS,部署的速度也在加快。这才是真正取得的进展。获得证书的过程逐渐变得越来越简单,现在归功于出色的Let's Encrypt,还能免费获得证书。简而言之,我们向证书管理机构(CA)发送证书签名请求(CSR),CA会质询我们,证明我们是该域的所有者。这常常通过设置DNS TXT记录或将质询码托管在我们域的随机路径上的某个地方来完成。一旦成功通过这个质询,CA会颁发证书,然后我们可以将它出示给访客的浏览器,在地址栏中获得绿色挂锁和“HTTPS”。 获得证书的过程 我写了几个教程帮助大家了解这个过程,包括如何入手、如何设置智能更新机制以及如何使用双证书。所以这很好。有什么问题吗? 问题在于,如果证书方面出了岔子,你就要遭殃了。 “我们已经被黑! 根本没人想听到这句话,但残酷的现实是,我们确实听到,而且司空见惯。一旦黑客能访问我们的服务器,就可以找许多目标下手,他们能访问的对象之一常常就是我们的私钥。我们用于HTTPS的证书是公共文档――我们将它们发送给连接到我们网站的任何人,但如果使用我们证书的其他人没有我们的私钥,就访问不了。浏览器与网站建立一条安全连接后,会检查服务器拥有它所要使用的那个证书的私钥,这就是为什么只有我们才能使用自己的证书,别人用不了。不过,要是攻击者得到了我们的私钥,情况不一样了。 服务器泄密后,我们的私钥落到攻击者的手里 鉴于攻击者已设法获得了我们的私钥,他们可以使用我们的证书证明他们就是我们。再说一遍:如果你的钥匙失窃,那意味着别人在互联网上可以证明他们就是你。这个问题很严重;在你认为“这永远不会发生在我身上”之前,应该记得Heartbleed。OpenSSL库中的这个小漏洞让攻击者得以窃取私钥,就算你根本没有做错什么,它照样到处肆虐。除此之外,私钥还会以无数的方式因意外或疏忽而泄露。一个简单的事实是,我们可能丢失私钥;若出现这种情况,我们需要有法子来阻止攻击者使用我们的证书。我们需要吊销证书。 吊销证书 万一中招,我们吊销证书,那样攻击者无法滥用证书。一旦证书被标记为“已吊销”,Web浏览器就知道不信任该证书,哪怕证书是有效的。所有者要求吊销证书后,客户不应该接受该证书。 请求吊销证书 一旦我们知道自己已中招,要联系CA,要求对方吊销我们的证书。我们要证明自己是该证书的所有者;一旦我们证明了这点,CA将把该证书标记为已吊销。由于证书已被吊销,我们需要一种方法将该吊销信息通知给可能需要该信息的任何客户。吊销后,访客的浏览器并不立即知道――当然,这是个问题。我们可以使用两种机制来提供该信息:证书吊销列表(CRL)或在线证书状态协议(OCSP)。 证书吊销列表 (责任编辑:本港台直播) |