SSL证书欺骗攻击也同样适用于SSL。为了获得HTTPS传输的明文数据,攻击者需要在浏览器与目标站点(中间人)之间建立连接,并在数据传输期间更换目标站点,向浏览器发送替换证书,然后解密传输中的数据。这里有一个简单图表:
[Browser]中间商[目标网站](中介攻击)
中间商攻击的最好环境是局域网,所有的计算机都需要通过一个固定的出口进入互联网。这样,攻击者只需在局域网上实施中间人攻击,即可成功截获各计算机与网关之间的数据传输。
下图为在我的测试环境中实现中间人攻击的SSL证书欺骗工具。此时你会发现受骗的机器,浏览器也会显示证书错误的安全提示:
请注意此提示,应该停止访问。攻击者可以在继续访问时解密所有加密数据。现在,我选择继续访问并查看伪造的SSL证书信息。
从这一点可以看出,在假证书中,签署人、签署人和生效日期与真证书相同(见下图)。攻击者可以在生成证书时写入与原始证书相同的信息,从而迷惑用户,但是无法混淆证书的认证机制。对一般用户而言,浏览器的警告信息需要清晰明了,如果出现问题,请勿继续访问。
第二,SSLStrip攻击;
SSLStrip攻击还需要设置攻击者为中间人,然后用HTTP替换HTTPS访问,然后再返回给浏览器。由于HTTP协议传输不加密数据,因此截取了用户访问的数据。例如,我们在访问hotmail.com时,会重定向httpS地址:https://login.live.com。SSLStrip将把与服务器而不是用户的通信改为http://login.live.com(注意,HTTP后面没有S)。此时,如果用户继续登录,攻击者就会截获用户的口令。这种攻击让普通用户感到迷惑,但却很容易防御:
在站点上,HTTPS服务的配置中增加了HTTP严格传输安全配置项;或者所有HTTP请求都被强制转换成HTTPS,使用URLREWRITE就可以获得相同的效果。
发送关键信息,如用户登录ID、口令,之前使用JavaScript加密。该方法不仅适用于SSLStrip,而且适用于SSL劫持攻击。使用HTTP协议传输时即使用户登录ID和密码也是安全的。shellnet支持此功能。
对于用户来说,当访问一个支持HTTPS的站点时,如果在浏览器地址栏中输入一个站点,就必须添加https://。多数用户通常对此并不注意。举例来说,我们在访问gmail时,通常会进入gmail.com。若输入https://gmail.com,则SSLStrip的攻击将被避免。当使用脚本跳转地址时,请注意此问题。必须在location.href之后添加URLhttps://
因为防御SSLStrip攻击是比较简单的,所以大部分网站已经进行了安全配置,但是也有一些网站没有注意到这个问题。
三是三次袭击。
软件厂商在软件设计过程中忽视了三类攻击,即安全性问题。例如,前一段时间手机浏览器做了一件尴尬的事。事实上,这种情况也很常见。错误、漏洞和程序中的设计缺陷会破坏某些安全模式。这样的话,软件供应商在软件设计阶段就应该充分考虑到安全问题,及时更新程序中的缺陷和安全漏洞;作为用户,应该及时更新应用或系统补丁,以减少安全威胁。
SSL劫持是目前最常见的攻击方式,但无论采用何种攻击方式,基本都是局域网中介人的攻击,十分实用,特别是在公共网络中。对SSL中间层的攻击,一般用户可能比较容易识别,但是我们的接入大部分都是HTTP网站,传输数据很清楚。这样的话,中间人攻击就很难察觉了。对一般用户,可采用下列方法来防止LAN中介的攻击:
MAC地址绑定必须在交换机上由公司的办公室网络执行。对于暂时没有考虑加强内部网络的小企业,可以采取以下办法。
连接到公用网络的计算机可以暂时在安全软件中打开ARP防火墙。或者使用VPN。
对于不喜欢安装安全软件的用户,可以使用stunnel配置代理,或者在SOCKS5中使用SSH。但这需要用户有单独的服务器。
GoAgent代理工具的使用。GoAgent与stunnel相似,都是通过ssl隧道对传输进行加密。GoAgent甚至在访问HTTP站点时,也能像stunnel一样加密传输,这保证了浏览网页和访问web邮箱的安全性。GoAgent使用GoogleAppEngine的服务器,因此它在国内的速度要慢一些。在这个例子中,可以使用新浪的AppEngine,也就是goagentsae作为搜索引擎中的关键字。
在公共网络中进行商业活动时,最好使用公司提供的VPN加密传输。
最终,我们来谈谈手机互联网。当前,公共WIFI的普及,使得移动互联网更加便利。所以,在数据传输过程中也要注意安全问题。虽然GoAgent也支持安卓和iOS的版本,但是如果我们想使用在线支付这样的功能,最好是使用官方的应用程序。现在,手机的安全保护没有电脑那么强大。如果不能保证加密数据的传输,最好不要用手机进行任何涉及隐私或商业机密的操作。