在《HTTPS那些事(二)SSL证书》我描述了使用SSL证书时一些需要注意的安全问题,在这一篇文章里面我再演示一下针对HTTPS攻击的一些实例,通过这些实例能更安全的使用HTTPS。知己知彼百战不殆。
先说一下我的测试环境,WIFI局域网,两台计算机,其中一台是Windows 7用于发起攻击。另一台测试机用于测试攻击,配置为Windows XP SP3,IE8,Chrome 17。
在开始之前,再回顾一下SSL证书验证失败的三点原因:
- SSL证书不是由受信任的CA机构颁发的
- 证书过期
- 访问的网站域名与证书绑定的域名不一致
一、SSL劫持攻击
SSL劫持也就是SSL证书欺骗攻击,攻击者为了获得HTTPS传输的明文数据,需要先将自己接入到浏览器与目标网站之间(中间人),在传输数据的过程中,替换目标网站发给浏览器的证书,之后解密传输中的数据,简单的图示如下:
[浏览器] <======> [目标网站] (正常情况)
[浏览器] <======> 中间人 <======> [目标网站] (中间人攻击)
中间人攻击最好的环境是在局域网中,局域网中所有的计算机需要通过一个固定的出口(网关)来接入互联网,因此攻击者只需要在局域网中实施一次中间人攻击就可以顺利的截获所有计算机与网关之间传输的数据。
下图就是在我的测试环境中实施一次中间人攻击之后进行的SSL证书欺骗工具,可以看到此时被欺骗的机器,浏览器已经给出证书错误的安全提示:
看到这样的提示,正常情况应该停止访问,如果继续访问,所有加密传输的数据都可以被攻击者解密。在这里我选择继续访问来看一下伪造的SSL证书信息。
这里可以看到,假证书中“颁发给”,“颁发者”,“有效日期”与真证书一样(见下图),攻击者可以在生成证书的时候给假证书写入与原始证书一样的信息来迷惑用户,但是迷惑不了证书的验证机制。对于普通用户来说,一定要看清浏览器的警告信息,如果有问题,就不要再继续访问。
二、SSLStrip攻击
SSLStrip攻击也需要将攻击者设置为中间人,之后将HTTPS访问替换为HTTP返回给浏览器,由于HTTP协议传输的数据是未加密的,从而截获用户访问的数据。举个例子,当我们访问hotmail.com的时候会重定向到一个https://login.live.com的一个HTTPS的地址上,SSLStrip会代替用户与服务器通信,并将这个地址改为http://login.live.com(注意这个地址在http后面没有s)返回给浏览器,此时如果用户继续登录的话,攻击者就会截取到用户的密码。这种攻击非常对普通用户非常具有迷惑性,但是防御却非常的简单:
- 对于网站来说,在配置HTTPS服务的时候加上“HTTP Strict Transport Security”配置项;或者是在代码中将所有HTTP的请求强制转移到HTTPS上,使用URL REWRITE也可以达到同样的效果。
- 对于关键的信息,例如用户登录网站的ID和密码,在发送之前先用JavaScript进行一次加密处理,这种方法不但是对SSLStrip有效,对SSL劫持攻击也有效,甚至是即便使用HTTP协议来传输用户登录的ID和密码都是安全的。这个功能果壳网就支持。
- 对于用户来说,在访问那些支持HTTPS的网站的时候,在浏览器的地址栏输入URL时强制的加上“https://”,大多数用户平时不注意这点,比如访问gmail,我们一般就输入“gmail.com”,如果是输入“https://gmail.com”就可以避免SSLStrip的攻击。对于使用脚本实现地址跳转也需要注意这个问题,location.href之后的URL,一定要强制加上“https://”。
由于防御SSLStrip攻击比较简单,大多数的网站都已经做好了安全方面的配置,但也有少数的网站仍然没有重视这个问题。
三、第三类攻击
所谓第三类攻击,完全就是软件厂商在软件的设计过程中忽略的了安全的问题,比如说前段时间某个手机浏览器就干了这么一件糗事。实际上这也是一种普遍存在的情况,程序的bug、漏洞,设计缺陷,都会打破一些安全模型。对于这种情况,软件厂商在软件设计阶段要充分考虑安全的问题,并且及时更新程序中的缺陷与安全漏洞;作为用户要及时的更新应用程序或者系统补丁,从而减少安全威胁。
目前最为常见的手段仍然是SSL劫持攻击,但无论是什么攻击手段,基础的利用都是局域网的中间人攻击,这种攻击手段非常的实用,尤其是在公共网络中。针对SSL的中间人攻击对普通用户来说或许还好识别一些,但是我们大多数情况访问的都是HTTP网站,传输的数据都是明文的,在这种情况下中间人攻击是不容易被发现的。对于普通用户,可以用以下的办法来防御局域网中间人攻击:
- 公司办公网络一定要在交换机上进行MAC地址绑定,对于一些规模不大,暂时不考虑加固内网的公司可以采取下面我说的方法。
- 临时接入公共网络的计算机,可以临时开启安全软件内的ARP防火墙。或者是使用VPN。
- 对于一些不喜欢安装安全软件的用户,可以使用stunnel配置代理或者是使用SSH转SOCKS 5代理。但是这需要用户有独立的服务器。
- 使用GoAgent代理工具,GoAgent与stunnel类似,都是一种使用ssl tunnel对传输进行加密的工具。即便是访问HTTP网站,GoAgent也可以像stunnel那样对传输进行加密,可以保证浏览网页,访问WEB邮箱的安全。GoAgent使用的是Google App Engine服务器,因此访问国内网站的速度会比较慢,对于这种情况可以使用Sina App Engine,具体配置方法可以在搜索引擎中用“goagent sae”作为关键字进行搜索。
- 在公共网络如果要进行商务办公,最好是用公司提供的VPN来对传输进行加密。
最后再说说手机上网,目前公共WIFI越来越普及,手机上网也越来越方便,因此也需要重视数据传输过程中的安全问题。虽然GoAgent也有支持Android和iOS的版本,但如果要使用在线支付之类的功能,最好是利用官方出的应用来进行操作。针对手机的安全防护目前还没有计算机那么强大,因此在没有办法保证传输加密数据之前,最好不要用手机来做什么涉及到隐私或者是商业保密的工作。
相关推荐
3. **XSS攻击实例**: - 3.7 "attackapi.pdf"可能介绍了攻击者如何利用API接口进行XSS攻击,这通常涉及未验证的用户输入和错误的数据处理。 - 6.4 "利用flash进行xss攻击剖析.pdf"可能讨论了Flash技术在XSS攻击中...
本书《SQL注入攻击与防御》旨在解决这一紧迫问题,其内容主要包含以下几个方面: 1. SQL注入的介绍:本书首先介绍了SQL注入攻击的基本概念和原理,包括攻击的流程和可能的攻击效果。理解这些基础知识点,有助于读者...
"OSPF 路由项欺骗攻击防御实验" OSPF(Open Shortest Path First,开放最短路径优先)是一种链路状态路由协议,广泛应用于网络路由中。然而,OSPF 路由项欺骗攻击可能会导致网络路由表的错误更新,从而影响网络通信...
本文还讨论了对抗攻击与防御方法在不同领域的应用实例,如计算机视觉、自然语言处理等领域。最后,本文基于对抗攻击与防御方法的分析和总结,展望了对抗攻击与防御领域未来的研究方向。 本文对面向深度学习模型的...
【网络安全】:网络攻击与防御的实例分析 一、SQL 注入详解 SQL 注入是一种常见的网络安全威胁,它发生在Web应用程序未能充分验证用户输入数据的情况下。攻击者通过在输入字段中插入恶意SQL代码,使服务器执行非...
所以,将社会工程学攻击实例化将是一个不错的选择,议题从多个国内外的实际攻击案例,来分析和制作基本的社会工程学攻击实例模型。试图使每一个安全从业人员能够轻松套用攻击测试的流程实例,针对企业组织进行有效...
### Web安全之XSS攻击及防御 #### 一、XSS基本原理 ##### 1.1 什么是XSS 跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的Web应用程序安全漏洞,其形成原因主要是由于Web应用程序对用户输入的数据过滤不...
"基于Linux的堆栈溢出攻击和防御研究" 本文主要介绍了基于Linux的堆栈溢出攻击的基本原理和防御方法。堆栈溢出攻击是一种常见的安全问题,它可以导致程序的崩溃或恶意代码的执行。Linux操作系统的堆栈结构使得其...
SQL 注入攻击防御指南 如何发现并防御自动 SQL 注入攻击 研究员开发新的技术来防御 SQL 注入攻击 如何斩断 SQL 注入式攻击的疯狂魔掌? Fuzzing tool 帮助 Oracle DBA 删除 SQL 注入错误 Web 安全...
缓冲区溢出攻击是一种常见的网络安全漏洞攻击手段,其原理、过程、防御技术是网络攻防领域的重要内容。以下详细介绍了缓冲区溢出攻击及防御技术的知识点。 缓冲区溢出概述: 缓冲区是一块连续的计算机内存区域,...
#### 三、SQL攻击实例分析 假设一个登录页面使用了以下SQL查询: ```sql SELECT * FROM users WHERE username = '$username' AND password = '$password' ``` 如果攻击者提交如下恶意输入:“admin' OR '1'='1”...
SQL注入攻击与防御,从原理开始介绍,以实例讲述几个主流的方法
### WLAN拒绝服务攻击与防御研究知识点详述 #### 一、引言 随着信息技术的快速发展,无线局域网(WLAN)因其便捷性和灵活性而受到广泛欢迎。然而,这也带来了网络安全方面的新挑战,特别是拒绝服务(Denial of ...
2. **改进训练数据集**:通过引入更多样化的数据来增强模型的鲁棒性,特别是包含对抗性攻击实例的数据,帮助模型学会识别和抵御此类攻击。 3. **引入认证机制**:为模型的输出引入第三方认证流程,例如由医学专家、...
《安全技术经典译丛》中的《SQL注入攻击与防御》一书,是针对网络安全领域中的一个重要议题——SQL注入,进行深入探讨的专业著作。该书由清华大学出版社出版,旨在帮助读者理解这种常见且危害极大的网络攻击手段,...
本文主要探讨了一个XSS三重URL编码绕过的实例,揭示了在某些情况下,简单的防御措施可能不足以阻止攻击。 首先,我们要理解XSS的基本概念。XSS攻击通常发生在Web应用程序未能正确过滤或转义用户输入的情况下。当...