内容导读:导航目录:1、什么是TLS中间人攻击?如何防范这类攻击2、路由器被ssl中间人攻击怎么办3、tls是否具有防重放攻击机制,如何解决经过tls传输的数据的有效性检测?4、常见的几种SSL/TLS漏洞及攻击方式什么是...……
导航目录:
- 1、什么是 TLS 中间人攻击?如何防范这类攻击
- 2、路由器被ssl中间人攻击怎么办
- 3、tls是否具有防重放攻击机制,如何解决经过tls传输的数据的有效性检测?
- 4、常见的几种SSL/TLS漏洞及攻击方式
什么是 TLS 中间人攻击?如何防范这类攻击
然后入侵者把这台计算机模拟一台或两台原始计算机,使中间人能够与原始计算机建立活动连接并允许其读取或篡改传递的信息,然而两个原始计算机用户却认为他们是在互相通信,因而这种攻击方式并不很容易被发现。所以中间人攻击很早就成为了黑客常用的一种古老的攻击手段,并且一直到今天还具有极大的扩展空间。 在 *** 安全方面 ,MITM攻击的使用是很广泛的,曾经猖獗一时的 *** B会话劫持、DNS欺骗等技术都是典型的MITM攻击手段。如今,在黑客技术越来越多的运用于以获取经济利益为目标的情况下时,MITM攻击成为对网银、网游、网上交易等最有威胁并且更具破坏性的一种攻击方式。 1、信息篡改 当主机A、和机B通信时,都由主机C来为其转发,而A、B之间并没有真正意思上的直接通信,他们之间的信息传递同C作为中介来完成,但是A、B却不会意识到,而以为它们之间是在直接通信。这样攻击主机在中间成为了一个转发器,C可以不仅窃听A、B的通信还可以对信息进行篡改再传给对方,C便可以将恶意信息传递给A、B以达到自己的目的。 2、信息窃取 当A、B通信时,C不主动去为其转发,只是把他们的传输的数据备份,以获取用户 *** 的活动,包括账户、密码等敏感信息,这是被动攻击也是非常难被发现的。 实施中间人攻击时,攻击者常考虑的方式是ARP欺骗或DNS欺骗等,将会话双方的通讯流暗中改变,而这种改变对于会话双方来说是完全透明的。以常见的DNS欺骗为例,目标将其DNS请求发送到攻击者这里,然后攻击者伪造DNS响应,将正确的IP地址替换为其他IP,之后你就登陆了这个攻击者指定的IP,而攻击者早就在这个IP中安排好了一个伪造的网站如某银行网站,从而骗取用户输入他们想得到的信息,如银行账号及密码等,这可以看作一种 *** 钓鱼攻击的一种方式。
路由器被ssl中间人攻击怎么办
解析最厉害的中间人攻击方式之SSL欺骗
导言
在本文中,我们将研究SSL欺骗,这也是最厉害的中间人攻击方式,因为SSL欺骗可以通过利用人们信赖的服务来发动攻击。首先我们先讨论SSL连接的理论及其安全性问题,然后看看SSL连接如何被利用来发动攻击,最后与大家分享关于SSL欺骗的检测以及防御技巧。
SSL和HTTPS
安 *** 接字层(SSL)或者传输层安全(TLS)旨在通过加密方式为 *** 通信提供安全保障,这种协议通常与其他协议结合使用以确保协议提供服务的安全部署,例如包括 *** TPS、IMAPS和最常见的HTTPS,最终目的在于在不安全 *** 创建安全通道。
在本文中,我们将重点探讨通过HTTP(即HTTPS)对SSL的攻击,因为这是SSL最常用的形式。可能你还没有意识到,你每天都在使用HTTPS。大多数主流电子邮件服务和网上银行程序都是依靠HTTPS来确保用户浏览器和服务器之间的安全通信。如果没有HTTPS技术,任何人使用数据包嗅探器都能窃取用户 *** 中的用户名、密码和其他隐藏信息。
使用HTTPS技术是为了确保服务器、客户和可信任第三方之间数据通信的安全。例如,假设一个用户试图连接到Gmail电子邮箱账户,这就涉及到几个不同的步骤,如图1所示。
图1: HTTPS通信过程
图1显示的过程并不是特别详细,只是描述了下列几个基本过程:
1. 客户端浏览器使用HTTP连接到端口80的
2. 服务器试用HTTP代码302重定向客户端HTTPS版本的这个网站
3. 客户端连接到端口443的网站
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,所以某些用户还是能够看出不对劲。
使用SSLStrip
实现这个过程是使用SSLstrip工具。这个工具只能在Linux运行,大家也可以下载运行Backtrack 4。
安装好SSLstrip后,有几个必须做的事情。首先,你使用的Linux系统必须被配置为IP转发,实现这个配置,需要输入命令echo "1" /proc/sys/net/ipv4/ip_forward,如下图所示。
图3:启用IP转发
完成上述操作后,我们必须强制将所有被拦截的HTTP流量路由到SSLstrip将会监听的端口,这通过修改iptables防火墙配置来实现,使用命令iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 如下图所示。
图4:配置IPTables来正确路由HTTP流量
当然,你需要使用你选择的随机端口来替换,当完成这些配置后,我们就可以运行sslstrip,并将其配置为监听由命令sslstrip -l 指定的端口了。
图5:使用sslstrip
这个过程的最后步骤就是配置ARP欺骗来拦截目标主机的流量,在前面的文章中我们使用的是windows中的Cain和Abel来实现,但是在这篇文章中,我们将使用arpspoof工具,该工具是内置在Backtrack 4,使用命令arpspoof -i -t 。
图6:配置ARP欺骗
使用这个命令会将为目标客户端的IP地址执行这些行动的 *** 接口替换为,而将目标使用的网关路由器的IP地址替换为
完成上述操作后,你就可以主动劫持任何建立的SSL连接。你可以使用数据包器从流量来收集密码、个人身份信息、信用卡号码等。
如何抵御SSL劫持攻击
如上所述,这种方式的SSL劫持根本无法从服务器端检测出来,因为在服务器开来,这只是与客户端的正常通信,它无法辨识是从 *** 来与客户端通信。不过我们还是可以从客户端的角度来检测和抵御这种类型的攻击。
使用HTTPS确保安全连接- 当你执行上诉描述的攻击时,攻击破坏了连接的安全性,这种安全性在浏览器中有所反映。这意味着如果你登录网上银行时,发现只是标准的HTTP连接,那么很有可能正受到攻击。不管你使用何种浏览器,你都要确保你知道如何识别安全连接与不安全连接。
将网上银行保存为主页-攻击者拦截家庭 *** 比拦截工作 *** 的可能性更低,这并不是因为家庭电脑更加安全(实际上,家庭电脑更加不安全),而是因为家庭 *** 中往往只有一两台电脑,除非家庭成员发动内部攻击。在公司 *** 中,你无法知晓 *** 情况或者分公司 *** 情况,所以潜在攻击源更多。会话劫持更大的目标之一就是网上银行,但是其他任何个人信息都有可能被劫持。
确保内部机器的安全 - 这种类型的攻击大多数都是从 *** 内部发动攻击的,如果你的 *** 设备很安全,那么那些被感染主机被利用发动会话劫持攻击的可能性就很小。
总结
这种类型的中间人攻击形式是最致命的攻击形式,因为这种攻击将我们认为安全的连接变成完全不安全的连接。我们每天访问的网站都不一定安全,如果这些 *** 连接是不安全的,将会使重要个人信息落入他人之手。因此,我们必须具备识别安全连接和不安全连接的能力。
tls是否具有防重放攻击机制,如何解决经过tls传输的数据的有效性检测?
tls具有防重放攻击机制。
加密,时间戳,每个包要有包序号,每次同向加1,收到重复序号认为是攻击,可以抵御重放攻击。此外借助于HTTPS/TLS其自身机制,保证了消息完整性,并且可以抵御重放攻击。由于加密,对方也无法看到明文内容。
2. 客户端生成一串随机数R1,发给服务器,服务器判断此R1是否重复,之后根据算法(R1+R2)生成密钥。更好是结合验签机制。
3. https 会被中间人攻击,Fiddler 能用替换证书的方式截获并还原明文。非对称加密(例如RSA)是个好办法,不过得防止别人。
延展阅读:
安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。
该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。
常见的几种SSL/TLS漏洞及攻击方式
SSL/TLS漏洞目前还是比较普遍的,首先关闭协议:SSL2、SSL3(比较老的SSL协议)配置完成ATS安全标准就可以避免以下的攻击了,最新的服务器环境都不会有一下问题,当然这种漏洞都是自己部署证书没有配置好导致的。
Export 加密算法
Export是一种老旧的弱加密算法,是被美国法律标示为可出口的加密算法,其限制对称加密更大强度位数为40位,限制密钥交换强度为更大512位。这是一个现今被强制丢弃的算法。
Downgrade(降级攻击)
降级攻击是一种对计算机系统或者通信协议的攻击,在降级攻击中,攻击者故意使系统放弃新式、安全性高的工作方式,反而使用为向下兼容而准备的老式、安全性差的工作方式,降级攻击常被用于中间人攻击,讲加密的通信协议安全性大幅削弱,得以进行原本不可能做到的攻击。 在现代的回退防御中,使用单独的信号套件来指示自愿降级行为,需要理解该信号并支持更高协议版本的服务器来终止协商,该套件是TLS_FALLBACK_SCSV(0x5600)
MITM(中间人攻击)
MITM(Man-in-the-MiddleAttack) ,是指攻击者与通讯的两端分别创建独立的联系,并交换其所有收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个对话都被攻击者完全控制,在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。一个中间人攻击能成功的前提条件是攻击者能够将自己伪装成每个参与会话的终端,并且不被其他终端识破。
BEAST(野兽攻击)
BEAST(CVE-2011-3389) BEAST是一种明文攻击,通过从SSL/TLS加密的会话中获取受害者的COOKIE值(通过进行一次会话劫持攻击),进而篡改一个加密算法的 CBC(密码块链)的模式以实现攻击目录,其主要针对TLS1.0和更早版本的协议中的对称加密算法CBC模式。
RC4 加密算法
由于早期的BEAST野兽攻击而采用的加密算法,RC4算法能减轻野兽攻击的危害,后来随着客户端版本升级,有了客户端缓解方案(Chrome 和 Firefox 提供了缓解方案),野兽攻击就不是什么大问题了。同样这是一个现今被强制丢弃的算法。
CRIME(罪恶攻击)
CRIME(CVE-2012-4929),全称Compression Ratio Info-leak Made Easy,这是一种因SSL压缩造成的安全隐患,通过它可窃取启用数据压缩特性的HTTPS或SPDY协议传输的私密Web Cookie。在成功读取身份验证Cookie后,攻击者可以实行会话劫持和发动进一步攻击。
SSL 压缩在下述版本是默认关闭的: nginx 1.1.6及更高/1.0.9及更高(如果使用了 OpenSSL 1.0.0及更高), nginx 1.3.2及更高/1.2.2及更高(如果使用较旧版本的 OpenSSL)。
如果你使用一个早期版本的 nginx 或 OpenSSL,而且你的发行版没有向后移植该选项,那么你需要重新编译没有一个 ZLIB 支持的 OpenSSL。这会禁止 OpenSSL 使用 DEFLATE 压缩方式。如果你禁用了这个,你仍然可以使用常规的 HTML DEFLATE 压缩。
Heartbleed(心血漏洞)
Heartbleed(CVE-2014-0160) 是一个于2014年4月公布的 OpenSSL 加密库的漏洞,它是一个被广泛使用的传输层安全(TLS)协议的实现。无论是服务器端还是客户端在 TLS 中使用了有缺陷的 OpenSSL,都可以被利用该缺陷。由于它是因 DTLS 心跳扩展(RFC 6520)中的输入验证不正确(缺少了边界检查)而导致的,所以该漏洞根据“心跳”而命名。这个漏洞是一种缓存区超读漏洞,它可以读取到本不应该读取的数据。如果使用带缺陷的Openssl版本,无论是服务器还是客户端,都可能因此受到攻击。
POODLE漏洞(卷毛狗攻击)
2014年10月14号由Google发现的POODLE漏洞,全称是Padding Oracle On Downloaded Legacy Encryption vulnerability,又被称为“贵宾犬攻击”(CVE-2014-3566),POODLE漏洞只对CBC模式的明文进行了身份验证,但是没有对填充字节进行完整性验证,攻击者窃取采用SSL3.0版加密通信过程中的内容,对填充字节修改并且利用预置填充来恢复加密内容,以达到攻击目的。
TLS POODLE(TLS卷毛狗攻击)
TLS POODLE(CVE-2014-8730) 该漏洞的原理和POODLE漏洞的原理一致,但不是SSL3协议。由于TLS填充是SSLv3的一个子集,因此可以重新使用针对TLS的POODLE攻击。TLS对于它的填充格式是非常严格的,但是一些TLS实现在解密之后不执行填充结构的检查。即使使用TLS也不会容易受到POODLE攻击的影响。
CCS
CCS(CVE-2014-0224) 全称openssl MITM CCS injection attack,Openssl 0.9.8za之前的版本、1.0.0m之前的以及1.0.1h之前的openssl没有适当的限制ChangeCipherSpec信息的处理,这允许中间人攻击者在通信之间使用0长度的主密钥。
FREAK
FREAK(CVE-2015-0204) 客户端会在一个全安全强度的RSA握手过程中接受使用弱安全强度的出口RSA密钥,其中关键在于客户端并没有允许协商任何出口级别的RSA密码套件。
Logjam
Logjam(CVE-2015-4000) 使用 Diffie-Hellman 密钥交换协议的 TLS 连接很容易受到攻击,尤其是DH密钥中的公钥强度小于1024bits。中间人攻击者可将有漏洞的 TLS 连接降级至使用 512 字节导出级加密。这种攻击会影响支持 DHE_EXPORT 密码的所有服务器。这个攻击可通过为两组弱 Diffie-Hellman 参数预先计算 512 字节质数完成,特别是 Apache 的 httpd 版本 2.1.5 到 2.4.7,以及 OpenSSL 的所有版本。
DROWN(溺水攻击/溺亡攻击)
2016年3月发现的针对TLS的新漏洞攻击——DROWN(Decrypting RSA with Obsolete and Weakened eNcryption,CVE-2016-0800),也即利用过时的、弱化的一种RSA加密算法来解密破解TLS协议中被该算法加密的会话密钥。 具体说来,DROWN漏洞可以利用过时的SSLv2协议来解密与之共享相同RSA私钥的TLS协议所保护的流量。 DROWN攻击依赖于SSLv2协议的设计缺陷以及知名的Bleichenbacher攻击。
通常检查以下两点服务器的配置
服务器允许SSL2连接,需要将其关闭。
私钥同时用于允许SSL2连接的其他服务器。例如,Web服务器和邮件服务器上使用相同的私钥和证书,如果邮件服务器支持SSL2,即使web服务器不支持SSL2,攻击者可以利用邮件服务器来破坏与web服务器的TLS连接。
Openssl Padding Oracle
Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t到openssl 1.0.2h之前没有考虑某些填充检查期间的内存分配,这允许远程攻击者通过针对AES CBC会话的padding-oracle攻击来获取敏感的明文信息。
强制丢弃的算法
aNULL 包含了非验证的 Diffie-Hellman 密钥交换,这会受到中间人(MITM)攻击
eNULL 包含了无加密的算法(明文)
EXPORT 是老旧的弱加密算法,是被美国法律标示为可出口的
RC4 包含的加密算法使用了已弃用的 ARCFOUR 算法
DES 包含的加密算法使用了弃用的数据加密标准(DES)
SSLv2 包含了定义在旧版本 SSL 标准中的所有算法,现已弃用
MD5 包含了使用已弃用的 MD5 作为哈希算法的所有算法