SSL网络协议安全性分析

来源:互联网 发布:c语言管理系统 编辑:程序博客网 时间:2024/09/21 09:18
 
SSL网络协议安全性分析
2006-10-10 作者:joeytang 语言:中文
 
<SCRIPT type=text/javascript><!--google_ad_client = "pub-6037687019087707";google_ad_width = 250;google_ad_height = 250;google_ad_format = "250x250_as";google_ad_type = "text_image";google_ad_channel = "";//--></SCRIPT>
         Internet原先建立在可信的基础上,网际协议(IPv4)信任数据保的发送者,相信数据包的发送方是该包的真正发送者,相信包在传输过程中没有被改变。最重要的是IPv4相信在传送过程中没有他人看过数据包。
       电子商务对World Wide Web(WWW)交易提出了安全的要求。为保证电子商务的安全,Netscape19947月开发了安全套接字层协议(SSL)。它被WWW广泛接受并且已经成为事实上的Internet加密标准。1996IETF批准SSL为标准的Internet安全协议。SSL的目的是实现客户和服务器时间的认证和加密通信。SSL2.0版本于199412月发布,SSL3.0199511月发布。
SSL是目前电子商务中应用最为广泛的安全协议,其实现模式非常适合编程开发。由于SSL提供传输层的通信加密而与应用层协议独立无关,因此各种高层的应用层协议(HTTPFTPTELNETSOAPWDDX)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作,在此之后应用层协议所传送的所有数据都会被加密,从而保证通信的安全性。如前面所述,由于目前国内B2B市场还很少使用网上支付,因此安全性很高的SET协议几乎不太可能用到,而SSL由于其使用范围广(可结合大多数互联网通信协议),所需费用少(可以到网上免费下载基于各种操作系统平台、各种编程语言的工具包),实现方便(比如和IPSec相比较)、安全性高(经过多年实践检验),所以已成为一般网络数据安全通信的首选方案。下面对SSL的实现作简要介绍:
SSL协议包括SSL记录协议和SSL握手协议两部分,前者指定传输数据的具体格式。后者则负责在支持SSL的客户端和服务器端之间建立安全传输通道,并实现:在客户端验证服务器;允许客户端和服务器选择双方都支持的加密算法;在服务器端验证客户(可选);用公钥加密算法产生“共享安全信息”;建立加密SSL连接。
SSL协议同时使用对称密钥算法和公钥加密算法。前者在速度上比后者要快很多,但是后者可以实现更好的安全验证。一个SSL传输过程首先需要握手:用公钥加密算法使服务器端在客户端得到验证,以后就可以使双方用商议成功的对称密钥来更快速的加密、解密数据。其基本过程我就不做详细描述了。
也许很多人知道Socket,它是一个编程界面,并不提供任何安全措施,而SSL不但提供编程界面,而且向上提供一种安全的服务,SSL3.0现在已经应用到了服务器和浏览器上,SSL2.0则只能应用于服务器端。目前我们使用的版本为SSL 3.0,使用SSL可以建立一条点对点的安全信道用于实时的数据交互。
SSL协议是对计算机之间整个会话进行加密的协议,它能提供Internet上通信的保密性。该协议允许客户∕服务器应用程序在通信时,能够阻止窃听、报文伪造等安全攻击。下面我要从它抵御攻击的能力来分析它的安全性。
1防止版本重放攻击   
当正在执行SSL3.0的通信方执行SSL2.0时,版本重放攻击发生。SSL3.0使用了非随机的KKC1分组类型2的消息填充,这有助于使用SSL3.0的服务器检测出版本重放攻击。
2)检测对握手协议的攻击 
攻击者可能试图改变握手协议中的消息,使通信双方选择不同于通常使用的加密算法。这种攻击容易被发现,因为攻击者必须修改一个或多个握手消息。一旦这种情况发生,客户和服务器将计算出不同的handshake message hashes,这就导致双方不接收彼此发送的finished消息。
3)会话的恢复   
当通过恢复一个会话建立一个连接时,将产生新的这个连接使用的MAC secret,加密keysIvs。攻击者不可能在不打破安全的hash操作的情况下通过已知的以前的连接的MAC secret或加密keys来获得或破坏master secret。所以如果这个会话的master secret是安全的,并且hash操作也是安全的,那么这个连接是安全的且独立于以前的连接。但仍建议一个session ID的生存周期最长位24小时,因为获得了master secret的攻击者可能在session ID改变之前假冒受攻击的一方。
4)中间人攻击   
SSL 3.0中包含了对Diffie-Hellman密钥交换进行短暂加密的支持。Diffie-Hellman是一种公开密钥算法,它能有效地提供完善的保密功能,对于SSL来说是一个有益的补充。在SSL 3.0 Diffie-Hellman密钥交换系统中,服务器必须指定模数和原始根(这两个数均为素数),以及Diffie-Hellman的指数。为了防止服务器端产生的陷门,客户端应该对模数和原始根进行仔细的检查,看它们是否为固定公共列表上的可靠数值。在SSL 3.0中,通过对服务器端的Diffie-Hellman指数的鉴别,可以抵御众所周知的中间人(man-in-the-middle)攻击。(匿名客户不必拥有证书。)另外,在SSL 3.0中并不支持具有较高性能的Diffie-Hellman变量,如较小的指数变量(160bit)或椭圆曲线变量。
5)流量数据分析攻击   
这种攻击的核心是通过检查数据包的未加密字段或未保护的包的属性来试图进行攻击。例如,通过检查IP包中未加密的IP源地址和目标地址,或检测网路流量,攻击者可知道谁正在参与交互通信,他们在使用何种服务,有时候甚至能得到或推测出一些商业或个人之间的关系。用户在通常情况下认为这种流量分析是相对无害的,SSL协议也未尝试阻止这种攻击。但是有一些特殊情况,可能会给攻击者提供较大的成功概率。
6)主动攻击
SSL能抵御主动攻击以安全地保护机密数据,这一点非常重要。当然,所使用的加密算法应该在被选择明文∕被选择密文攻击下是安全的,但这对于加密算法来说还不够。IETFIPSEC工作组的最近研究表明,即使所使用的密码强度足够,在记录层上精明的主动攻击仍能打破系统的保密性。SSL 3.0的记录层能抵御这些强有力的攻击:更进一步,为何这些攻击会被阻止,值得我们讨论。
IPSEC中的一个重要的主动攻击是Bellovin的剪贴攻击。回想起来,要获得保密性,光对链接进行加密是不够的——接收端也必须防止敏感数据在无意中被泄露出来。剪贴攻击的攻击方式就是谋求接收端的信任,使之对敏感数据进行解密并将这些数据泄露给它们。
SSL 3.0能够阻止剪贴攻击。阻止这种攻击的一种局部性防御策略是为每一个不同的上下文使用独立的会话密钥,这样便能在不同的连接之间,以及连接的不同方向之间阻止剪贴操作。SSL已经为每个连接方向使用了独立的密钥。但是,这种机制无法阻止传输中一个方向上的剪贴操作。应用最广泛的防御策略是在所有加密包上使用强大的认证机制,以阻止敌方对密文数据的修改。SSL记录层确实采用了这种防御策略,因此剪贴操作被完全阻止住了。
  另一种主动攻击是短块攻击,它主要针对IPSEC。这种攻击适用于最后的报文块包含一个一字节长的明文并且报文块剩余部分由随机数填充的情况。在SSL上并没有明显的短块攻击。SSL记录层格式与以前的IPSEC格式相当类似,这种格式容易遭到攻击,因此可以想象,修改性攻击会对SSL产生威胁。但是,无论如何,由标准SSL加密的Web服务器基本上不会受到短块攻击的威胁,因为这些服务器不会经常对短块进行加密。(但要注意,由SSL加密的telnet客户端必须得到特殊的保护,以防止短块攻击,因为每一次按键在传送时都是一字节长的数据包。
7)报文重放攻击   
报文重放攻击是一种比较容易被阻止的攻击,如上所述,SSLMAC数据中含进序列号阻止了重放攻击。同时,这种机制也阻止了延迟重排序删除数据等攻击方式。
虽然SSL在安全性方面已经做得相当完善,但在实际的应用中,仍存在着许多安全漏洞。已经出现的对SSL3.0成功的攻击是流量分析攻击,这种攻击基于密文长度能够揭示明文长度。另外,在密钥管理方面,SSL也存在一些问题:客户机和服务器在相互发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能;SSL3.0为了兼容以前的版本,可能会降低安全性;所有的会话密钥中都将生成master key,握手协议的安全完全依赖于对master key的保护,因此通信中要尽可能地减少使用master key
以上是我根据一些的文献资料,自己学习总结的SSL网络协议针对几种攻击的安全性分析,当然攻击的种类远远不止这些。总的说来,SSL网络协议还是比较安全的,它也是国际上最早应用于电子商务的一种网络安全协议, 现在被许多网上商店和网上银行所使用。例如:SecurePay(由Anacom提供的实时信用卡交易服务,基于SSL协议);SecureTrans(一种提供实时信用卡交易处理和电子支票服务的系统,基于SSL协议);ByWay and BuyWayPS(信用卡安全交易系统,使用SSL协议)。该协议已成为事实上的工业标准,并被广泛应用于InternetIntranet的服务器产品和客户端产品中。如网景公司, 微软公司, IBM公司等领导Internet/Intranet网络产品的公司已在使用该协议。
原创粉丝点击