sslv3poodle攻击分析与防范
目录
一、引言
随着社会的日益发展,人们所要求的生活水准在不断地提高,同时伴随着计算机科学技术与网络的不断深入,互联网的普及,让人们感受到网络的快捷与方便,人民的日常生活已离不开计算机与网络。
根据GOOGLE 2014年10月14号的报道,发布了对SSLv3 POODLE这个漏洞做的简要的分析报告。根据GOOGLE的分析报告,以及版本中存在的漏洞,利用这个漏洞,黑客的攻击方法(类似中间劫持到数据加密的两端可以使用SSL3.0),将能够成功地得到传输数据,允许黑客监视数据的网络传输,被盗的用户的敏感信息,在网络账户和银行账户。同时,由于SSLv3使用弱加密算法,攻击者可以成功打破了信息加密的SSL连接,例如,获得用户的Cookie数据,攻击手段被称为POODLE漏洞。
本课题主要是对SSLV3 POODLE攻击进行一个分析以及对于这种攻击应该采取何种有效的措施,使得人们规避风险,更安全的在网络中享受生活。
二、SSLV3协议分析
(一)SSL协议概述
1)对服务器和用户进行分别验证,然后把得到的数据发送到客户的机器和服务器中;
2)加密数据以防止数据中途被窃取;
3)不要改变数据的整体,使得数据在传输过程中不被破坏。
(二)SSL主要应用
*景先生毕设|www.jxszl.com +Q: ^351916072*
1、WEB服务
SSL协议提供了数据的安全性,保证了数据的加密,创建了更具有安全性的网络社会,所以被广泛应用于web服务,比如Tomcat 5.x、Nginx、IIS、Apache 2.x以及IBM HTTP SERVER 6.0等
2、VPN
SSL VPN是HTTPS(安全HTTP、安全HTTP,即支持HTTP协议SSL)基于VPN技术,传输层和应用层之间的工作。充分利用SSL协议SSL VPN提供基于证书的认证,以添加密码,提高检测数据信息完整性机制,可以应用层安全之间的通信,用户将能够安全地远程访问公司内部网络。
因为任何安装电脑浏览器的机器都是可以使用SSL VPN的,所以被广泛的应用在互联网中。
到目前为止,SSL VPN是最简单和安全的解决方案公司远程用户访问敏感数据。与复杂的SSL VPN相比,IPSec可以实现远程连接通过一个简单和容易的方法。任何机器,安装一个浏览器可以使用SSL VPN,因为SSL是嵌入到浏览器,它不需要安装客户端软件传统VPN IPSec为每个客户端。这是对于大量的机器(包括国内机器,机器和客户,等等),连接到该公司的机密信息。人们普遍认为它将成为新一代的安全的远程访问。
(三)工作流程
用户认证阶段:在这个前面,服务器首先通过了客户的认证,客户会收到一个问题,这个问题是经过服务器认证的,客户会对于这么问题进行签字并且公开他的秘钥,之后会向服务器进行一些相关验证。
SSL协议提供的安全通道有以下三个特性:
机密性:SSL协议使用密钥加密通信的数据。
可靠性:会验证客户和服务器,客户的验证是可选的。
完整性:SSL协议一定会对发送的数据进行全方面的检查。
从SSL 协议提供的服务与它的运行内容很容易得出结论,SSL协议运行的秘诀是商家会对所有消费者个人信息进行保守秘密,这就会对商家有好处然而对我们消费者确实没有什么好处。在电子商务刚刚起步的那一会儿,因为当时从事电商的大多数企业的信用程度是值得信赖的,所以一些问题还没有全部的暴露在公众的眼睛下。伴随着电子商务发展的脚步,有许多中小型公司也会加入其中,这样的话,如果有些人利用电子支付,那么单一的支付的问题就会日益严重。
(四)SSL的体系结构
SSL协议的体系结构,有两层协议,它记录了SSL协议层(SSL Record Protocol Layer)和SSL握手协议层(SSL HandShake Protocol Layer),分别是底层的协议和顶层的协议,见图1
图 1 SSL协议示图,阴影部分是SSL协议
SSL协议层记录是为高层提供基本的安全服务协议。HTTP协议SSL协议而专门设计的记录,超文本传输协议HTTP可以运行在SSL。记录各种高层协议,包的具体实现压缩解压缩,加密和解密、计算和验证的MAC和其他安全相关的操作。
1、 SSLv3.0协议基础分析
在协议的握手阶段,谈判的数据包括:
文本/密文分组长度:16字节长。
初始化向量IV:根据SSLv3.0协议算法生成的定义,要求更高的随机性,相同的文本/密文分组长度(16字节)。
对称密钥关键:即SSLv3.0协议中定义的主键(主秘密),数据加密。
加密模式:有各种各样的常见的加密模式,这个漏洞的本质是SSLv3.0协议推荐CBC加密模型可能泄露信息。
包装和分组数据
之前和之后的加密和解密加密的,每个数据包长度是128位,或16字节。
加密数据的数据包处理过程:
(1)计算出MAC(验证码信息,消息身份验证代码)序列,20个字节的长度。
(2)MAC序列连接到纯文本(明文),和明文的长度是16字节填充。
填充方法是:如果原始明文长度不是16字节的倍数,随后添加零,一个或多个填充字节,加一个字节,其值填充的长度;如果原始明文的长度是16字节的整数倍,在以下额外15字节填充序列,加上填充长度,其价值是15。
(3)16字节的明文分为一组,称为明文,使用符号P1,P2Pn表示。
初始化向量IV是第一次使用,P0首次使用。
加密数据的加密,因为数据长度是16字节的整数倍数,所以它直接按照16字节数据包的长度,每个包称为分组密码,使用符号C1,C2Cn表示。
初始化向量IV是第一次使用,然后C0首次使用。
在CBC模式中,每个级别的块(明文块,即明文块块),之前一个密文块密码块XOR之后然后加密。在这种方法中,每个密文块取决于所有平坦块在它面前。同时,为了确保每个消息的独特性,加密和解密的过程中需要使用初始化向量IV。
原文链接:http://www.jxszl.com/jsj/wljs/48757.html