分享

SSL协议的安全性分析

 心之所指 2005-12-21
1)防止版本重放攻击    当正在执行SSL3.0的通信方执行SSL2.0时,版本重放攻击发生。SSL3.0使用了非随机的KKC#1分组类型2的消息填充,这有助于使用SSL3.0的服务器检测出版本重放攻击。


2)检测对握手协议的攻击  攻击者可能试图改变握手协议中的消息,使通信双方选择不同于通常使用的加密算法。这种攻击容易被发现,因为攻击者必须修改一个或多个握手消息。一旦这种情况发生,客户和服务器将计算出不同的handshake message hashes,这就导致双方不接收彼此发送的finished消息。


3)会话的恢复   当通过恢复一个会话建立一个连接时,将产生新的这个连接使用的MAC secret,加密keys,Ivs。攻击者不可能在不打破安全的hash操作的情况下通过已知的以前的连接的MAC secret或加密keys来获得或破坏master secret。所以如果这个会话的master secret是安全的,并且hash操作也是安全的,那么这个连接是安全的且独立于以前的连接。但仍建议一个session ID的生存周期最长位24小时,因为获得了master secret的攻击者可能在session ID改变之前假冒受攻击的一方。


4)监听和中间人攻击    SSL协议使用一个经通信双方协商的加密算法和密钥。对安全级别不同的应用,都可找到不同强度的加密算法用于通信数据加密。SSL的密钥管理也处理得比较好:在每次连接时通过hash函数生成一个短期使用的会话密钥,除了不同次连接的密钥外,在一次连接的两个传输方向上它都单独的密钥。因此,尽管SSL给监听者通过了许多明文,但由于其较好的密钥保护,以及频繁更换密钥,因此,对于“监听”和“中间人”攻击而言,其安全性是可靠的。


5)流量数据分析攻击    这种攻击的核心是通过检查数据包的未加密字段或未保护的包的属性来试图进行攻击。例如,通过检查IP包中未加密的IP源地址和目标地址,或检测网路流量,攻击者可知道谁正在参与交互通信,他们在使用何种服务,有时候甚至能得到或推测出一些商业或个人之间的关系。
用户在通常情况下认为这种流量分析是相对无害的,SSL协议也未尝试阻止这种攻击。但是有一些特殊情况,可能会给攻击者提供较大的成功概率。


6)截获再拼接攻击    这种攻击方式的大致过程是:首先,从一些包含敏感数据的包中“切下”一段密文中,被拼接的这段密文是经过仔细选择的,使得接收端非常有可能泄漏出经过解密的明文。SSL3.0基本上已经阻止了这种攻击。首先,它对不同的上下文使用了独立的“会话标识符”,这就阻止了“截取再拼接”攻击在不同次连接之间截获和拼接;其次,SSL3.0对所有的加密包使用了较强的认证,在这种防卫之下,“截获再拼接”攻击已基本不易成功。


7)短包攻击    短包攻击的基本过程是假设现在的通信是用DES加密数据,并用TCP传送,那么当传送最后一个报文时,可能明文就只有一个字节,而其后就是填充数据。这时,当攻击者截到报文以后,就可用已知的明密文对的另外一个加密块去置换这个报文。然后,它可以通过TCP校验和是否有效,知道自己截得是否正确。即使不正确,也只不过是使接受方的TCP协议认为其出错而丢包,用户不会知道;但如果正确,则可通过接受方发回的ACK获知。尽管SSL在这点上看起来能被攻击的可能性很小,比如用SSL传送WEB页,URL请求,但如果客户经常收发一个字节长度的报文,如TELNET,那么,就需要对这种攻击做较强的防护了。


8)报文重放攻击    报文重放攻击是一种比较容易被阻止的攻击,如上所述,SSL在MAC数据中含进序列号阻止了重放攻击。同时,这种机制也阻止了“延迟”,“重排序”,“删除数据”等攻击方式。
虽然SSL在安全性方面已经做得相当完善,但在实际的应用中,仍存在着许多安全漏洞。已经出现的对SSL3.0成功的攻击是流量分析攻击,这种攻击基于密文长度能够揭示明文长度。另外,在密钥管理方面,SSL也存在一些问题:客户机和服务器在相互发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能;SSL3.0为了兼容以前的版本,可能会降低安全性;所有的会话密钥中都将生成master key,握手协议的安全完全依赖于对mastr key的保护,因此通信中钥尽可能地减少使用master key。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多