安全套接字层(SSL)协议,是对计算机之间整个会话进行加密的协议,它能提供Internet上通信的保密性。该协议允许客户∕服务器应用程序在通信时,能够阻止窃听、报文伪造等安全攻击。

  下面,我们将从通信量分析、主动攻击、重放攻击、密码组回滚攻击以及中间人攻击这五种常见的安全攻击入手,初步分析SSL的抵御攻击能力。

1.通信量分析

  如果常规的攻击失败,密码破译专家会转向使用更复杂的攻击。通信量分析是另外一种被动攻击,但它经常是恶意攻击,因此值得一提。通信量分析的目标在于,通过检查包中未加密的域及属性,以获得受保护会话的机密信息。例如,通过检查未加密的源和目标的IP地址(甚至TCP端口号),或者检查网络通信流,一个通信量分析专家可以确定通信各方的通信内容,使用的服务类型,有时甚至还可以获得有关商业或个儿关系的信息。实际上,用户大都认为通信量分析的威胁相对来说是无害的,因此SSL不会试图阻止这种攻击。忽略通信量分析看来是一种可行的设计方案。

  然而在SSL体系结构中,通信量分析仍会造成一些巧妙的威胁。Bennet Yee已经指出,检查密文的长度会暴露出有关SSL或被SSL加密的网站通信中用到的URL请求的信息【Yee96】。当一个Web浏览器通过加密传输(如SSL)连接到一台Web服务器时,包含有URL信息的GET请求会以加密方式进行传输。严格来说,浏览器要下载哪一个页面,这种信息是保密的——显然,具有URL方面的知识,对于一个想下载整个网站的人来说,这已经足够了——而且,通信量分析可以获得Web服务器的身份信息,请求的URL长度,以及从Web服务器所返回的html数据的长度。这个漏洞往往使得窃听者能够发现用户访问了哪些Web页面。

  上述弱点之所以出现,是因为密文长度暴露了明文的长度。SSL在块加密模式中支持随机填充,而在流加密模式中却不支持。我们相信,对于所有的加密模式,SSL将会在最小程度上支持任意长度填充的使用,而且会仔细地考虑它在特定应用程序中的需求。

2.主动攻击

  SSL能抵御主动攻击以安全地保护机密数据,这一点非常重要。当然,所使用的加密算法应该在被选择明文∕被选择密文攻击下是安全的,但这对于加密算法来说还不够。IETF的IPSEC工作组的最近研究表明,即使所使用的密码强度足够,在记录层上精明的主动攻击仍能打破系统的保密性。SSL 3.0的记录层能抵御这些强有力的攻击:更进一步,为何这些攻击会被阻止,值得我们讨论。