HTTPS真的就是安全的象征吗?HTTPS检查工具带来的

在很多人印象中,HTTPS就是安全的象征,而为了对这些“安全”的流量进行检查,很多安全产品,包括杀毒软件和防火墙都具备HTTPS检查的功能,通过这样的功能排除其中的安全威胁。然而近日US-CERT却发布了一则预警,TA17-075A,对部分HTTPS检查产品发出安全预警,提到部分SSL/TLS拦截软件未能执行有效验证,或者未能充分传递验证状态,这可能被第三方发动中间人攻击。

US-CERT为什么要发出这个预警呢?让我们来捋一捋最近发生的一些事情。

US-CERT专家发文称SSL检查有风险

首先是2015年初的时候,SuperfishPrivDog这两款SSL检查工具因为没能正确验证SSL引起了US-CERT专家的重视。专家称因为没能正确验证SSL,导致用户系统容易被攻击者进行HTTPS嗅探。

接连几个SSL检查工具被曝存在相似问题后,US-CERT专家Will Dormann决定深入探究这个问题,发表了《SSL检查的风险》一文,其中指出了一些问题:

1. 许多人并不了解SSL和TSL的功能;

2. SSL检查产品比他想象的流行得多;

3. 许多有SSL检查能力的应用都存在一些漏洞,可给用户带来风险;

4. 即便SSL检查做得跟浏览器一样安全,也会给用户带来一定风险。

下面我们一一来讲。

背景知识

SSL和TLS的目的主要有两个:一是认证与客户端通信的服务器,二是加密客户端与服务器之间发送的数据。有些人可能认为SSL和TLS能够实现端到端加密,这种观点是不对的。SSL和TLS只有在点到点的情况下才能实现安全认证和加密。我们先来看个例子,在本例中的点到点通信也可以被认为是端到端的通信:

HTTPS真的就是安全的象征吗?HTTPS检查工具带来的

客户端能够验证安全通信,但只能和其通信的下一个点进行验证。在上面的例子当中,客户端直接和目标系统建立SSL/TLS连接。客户端软件通过系统上的大量根证书来验证它连接的系统。至于这个系统是不是用户预期的目标系统就是需要另作讨论的话题了。

当用户在浏览器当中加载受HTTPS保护的网站时,浏览器实际上只会验证两件事:网站是否提供了证书;证书是不是浏览器信任的根证书CA机构颁发的。实际上我们是在相信每个根CA机构都已尽全力来验证你要连接的服务器的身份。但是实际上有时候根CA机构会被骗。我们还相信每个根CA机构都能够保护自己的系统。但是实际上有时候根CA会被盗用。

有关这些问题的更多细节,请参阅Moxie Marlinspike的博客文章《SSL与真实的未来》。

我们上面提到的Superfish和Privdog有什么问题呢?它们会安装一个新的受信根证书。

请注意这里使用术语“可信”。 我们不是在讨论PGP和GPG应用程序使用的信任网络的任何内容,在PGP中的“可信”是指使用个别密钥的信任级别。 而“受信任的根CA证书”只是可以由客户端软件使用而不产生警告。 它与用户对某事物的“信任”毫无关系。简单来说,有了这个证书,客户端软件就不会发出安全警告提示你证书有问题。

这两个工具都会安装受信的根CA证书,不过好消息是他们的证书都明确写明是来源于Superfish和Privdog。如果有软件要把证书冒充成是由“VeriSign”等大机构发布的,写成“VeriSign.”我们也无法防范。

假定有这样一个场景,有人通过HTTPS访问一家网站(因为要给出诸如用户名和密码这样的敏感信息),装了PrivDog或者Superfish。如果浏览器不对证书合法性作警告,最多也就意味着与用户通讯的系统,获得了受信root CA机构的证书,SuperFish和Privdog就是其中之一。

如果有人想要验证某个证书是否由“真正”的证书机构发布的,比如说想要查看证书发行机构的指纹,所需的步骤在每个浏览器当中也各有不同。有些浏览器,比如微软的IE,如果要查看证书还得先接受该证书,因此即便是安全专家可能也很难判断是不是他想要连接的主机。

Superfish和Privdog这种主机层面的软件仅仅是SSL检查产品的一部分。Dormann发现,许多网络层面的应用和设备也能进行SSL检查。安全网关、防火墙、数据丢失防护(DLP)产品和其他许多应用似乎都加入了SSL检查的大军。当然了,网络管理员要检查受SSL/TLS保护的浏览可能有多种多样的原因,但是很多人可能都没有注意到,那些软件的SSL检查能力还不如浏览器,会带来什么样的安全隐患不言而喻。我们来看看这个图:

HTTPS真的就是安全的象征吗?HTTPS检查工具带来的

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d3a7b75265201fecddcca3b9e65e2ead.html