ARP缓存中毒、
好学IT学院:IT信息技术分享交流平台
标签:安全  来源:IT专家网  作者:valen  发布时间:2010-06-14  ★★★加入收藏〗〖手机版
解析中间人攻击之四:SSL欺骗
摘要:前面的文章中,我们已经探讨了ARP缓存中毒

内容提示:前面的文章中,我们已经探讨了ARP缓存中毒DNS欺骗以及会话劫持这四种中间人攻击形式。在本文中,我们将研究SSL欺骗,这也是最厉害的中间人攻击方式,因为SSL欺骗可以通过利用人们信赖的服务来发动攻击。首先我们先讨论SSL连接的理论及其安全性问题,然后看看SSL连接如何被利用来发动攻击,最后与大家分享关于SSL欺骗的检测以及防御技巧。

SSL和HTTPS

安全套接字层(SSL)或者传输层安全(TLS)旨在通过加密方式为网络通信提供安全保障,这种协议通常与其他协议结合使用以确保协议提供服务的安全部署,例如包括SMTPS、IMAPS和最常见的HTTPS,最终目的在于在不安全网络创建安全通道。

在本文中,我们将重点探讨通过HTTP(即HTTPS)对SSL的攻击,因为这是SSL最常用的形式。可能你还没有意识到,你每天都在使用HTTPS。大多数主流电子邮件服务和网上银行程序都是依靠HTTPS来确保用户浏览器和服务器之间的安全通信。如果没有HTTPS技术,任何人使用数据包嗅探器都能窃取用户网络中的用户名、密码和其他隐藏信息。

使用HTTPS技术是为了确保服务器、客户和可信任第三方之间数据通信的安全。例如,假设一个用户试图连接到Gmail电子邮箱账户,这就涉及到几个不同的步骤,如图1所示。

图1: HTTPS通信过程
  图1显示的过程并不是特别详细,只是描述了下列几个基本过程:

1. 客户端浏览器使用HTTP连接到端口80的http://mail.google.com
  2. 服务器试用HTTP代码302重定向客户端HTTPS版本的这个网站
  3. 客户端连接到端口443的网站https://mail.google.com
  4. 服务器向客户端提供包含其电子签名的证书,该证书用于验证网址
  5. 客户端获取该证书,并根据信任证书颁发机构列表来验证该证书
  6. 加密通信建立

如果证书验证过程失败的话,则意味着无法验证网址的真实度。这样的话,用户将会看到页面显示证书验证错误,或者他们也可以选择冒着危险继续访问网站,因为他们访问的网站可能是欺诈网站。

HTTPS被攻破

这个过程一直被认为是非常安全的,直到几年前,某攻击者成功对这种通信过程进行劫持,这个过程并不涉及攻击SSL本身,而是对非加密通信和加密通信间的“网桥”的攻击。

知名安全研究人员Moxie Marlinspike推测,在大多数情况下,SSL从未直接遭遇威胁问题。SSL连接通常是通过HTTPS发起的,因为用户通过HTTP302响应代码被定位到HTTPS或者他们点击连接将其定位到一个HTTPS站点,例如登录按钮。这就是说,如果攻击者攻击从非安全连接到安全连接的通信,即从HTTP到HTTPS,则实际上攻击的是这个“网桥”,SSL连接还未发生时的中间人攻击。为了有效说明这个概念,Moxie开发了SSLstrip工具,也就是我们下面将要使用的工具。

这个过程非常简单,与我们前面文章所提到的攻击有所类似,如图2所示。

图2:劫持HTTPS通信
  图2中描述的过程如下:

1. 客户端与web服务器间的流量被拦截

2. 当遇到HTTPS URS时,sslstrip使用HTTP链接替换它,并保存了这种变化的映射

3. 攻击机模拟客户端向服务器提供证书

4. 从安全网站收到流量提供给客户端

这个过程进展很顺利,服务器认为其仍然在接收SSL流量,服务器无法辨别任何改变。用户可以感觉到唯一不同的是,浏览器中不会标记HTTPS,所以某些用户还是能够看出不对劲。