SSL协议安全缺陷分析.docx

上传人:b****6 文档编号:6131857 上传时间:2023-01-04 格式:DOCX 页数:9 大小:72.24KB
下载 相关 举报
SSL协议安全缺陷分析.docx_第1页
第1页 / 共9页
SSL协议安全缺陷分析.docx_第2页
第2页 / 共9页
SSL协议安全缺陷分析.docx_第3页
第3页 / 共9页
SSL协议安全缺陷分析.docx_第4页
第4页 / 共9页
SSL协议安全缺陷分析.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

SSL协议安全缺陷分析.docx

《SSL协议安全缺陷分析.docx》由会员分享,可在线阅读,更多相关《SSL协议安全缺陷分析.docx(9页珍藏版)》请在冰豆网上搜索。

SSL协议安全缺陷分析.docx

SSL协议安全缺陷分析

SSL协议安全缺陷分析

D

mrminicationssecurity.However,SSLprotocolgtillhassomevulnerabilities.whichbrint

somedangerstoInternetcornrnunications.IntroducethecontentoftheSSL3.oprotocolanddiscusschieflyseveralsecurityvulnerabilitie:

andattackRontheprotocol.Accordingtothesevulnerabijities.alsopresentsomeimprovementsuggeclions,whichgivesomereferencesto

thcimplcmcntationoftheprotocol.

Key"ords:

SSL;recuritv;vulnerabilitv

0剖言

随着电子商务的广泛应用,在开放的网络上进行安至’口』靠的数据通信已经成为安夸交易的重要内容。

其中安全套接字层(SSL)协议是目前使刚最广泛的川于Web浏览器的安全协议。

该协议向基于TCP/IP的客户端,服务器应用程序提供了客户机和服务器的鉴别数据完整性以及机密件等安全措施,为网络上的客户机/服务器提供了一个实际的应用层的面向连接的安伞通信机制。

1996年,Netscape公司发布了SSL3.0,该版本增力c了对除了RSA算法以外的其他算法的支持和一些新的苤全特性,并且修改了前一个版本中存在的安全缺陷。

lSSL3.0结构SSL3.O是一种分层胁议,它是由记录层以及记录层上承载的不同消息类型组成,而记录层叉由某种可靠的传输协议TCP承载。

下面简要分析一下协议的结构1。

1.1记录协议

记录协议位于SSL协议的底层,用于定义传输数据的格式加密/解密压缩/解压缩MAC计算等操作。

记录由记录头和记录数据组成。

记录头包括的信息有:

记录失的长度记录数据的长度记录数据中是否有填充数据。

其中填充数据是在使用块加密算法时填充实际数据使其长度恰好是块的整数倍。

记录数据由三部分组成:

消息认证码实际数据和填充数据。

1.2握于协议

握手协议处于记录协议之上,它产生会话的压缩、MAC加密的计算参数。

当客户端发起SSL会话后,通过握手协议,双方协商随后通信中使用的协议版本密码算法,彼此互相鉴别验证,使用公开密钥密码技术协商产生共享密钥。

典型的握手过程如下:

(1)客户端发途第一条消息client.hello,其中包含了客户端所推荐的加密参数,包括它准备使用的加密算法。

此外,还包括一个在密钥产生过程中使用的随机值。

(2)服务器以三条消息进行响应:

首先发途选择加密与压缩算法的server-hello,这条消息包含一个从服务器过来的随机值。

然后,服务器发途certificate消息,其中包含服务器的公用密钥。

服务器可选地发送certifcate-re2quest消息,要求客户端的证书。

最后,服务器发送表示握手阶段不再有任何消息的server-hello-done。

(3)如果服务器要求客户端证T,客户端应发送一条

收稿日期:

20060322

作者简介:

李玮(1983-),男,安徽台肥人,硕士研究牛,研究方向为网络安全;侯整风,教授,研究方向为计算机刚络与信息安全。

第12期

李玮等:

SSI-协议安全缺陷分析certificate消息给服务器。

然后客户端发送一条client.key—exchange消息,其巾包含了一个随机产生的用服务器的RSA密钥加密的pre.master.secret。

如果客户端证书具有签名功能的话,客户端还应发送certificate—verify消息。

这条消息后面跟着一条指示客户端在此之后发送的所有消息都将使用刚刚商定的密码进行加密的change-ciper.spec消息。

finished消息包含了对整个连接过程的校验,这样服务器就能够判断要使用的加密算法是否是安全商定的。

(4)-旦服务器接受到了客户端的finished消息,它就会发送自己的change-cipher-cpec和fnished消息,于是连接就准备好进行应用数据的传输了。

1.3警示消息警示土要用于报告各种类型的错误。

大多数警示斥于报告握手中出现的问题,但是也有一些指示在对记录试图进行解密或认证时发送的错误。

1.4ChangeCipherSpec消息change.cipher.spec表示记录加密及认证的改变。

一旦握手茼定J-组新的密钥,就发送change-cipher-spec采指示此刻捋启刷新的密钥。

2SSL3.0安全缺陷和改进

2.1通信业务流分析攻击

SSL协议提供了通信消息的机密性和完整性,在选择恰当的密码算法的基础上,所有在习络中传输的消息都被加密,并且使用MAC对消息的完整性进行保护。

因此,对通信信道的窃听是不能获得机密信息的。

于是攻击者就口J甫巨采用另一种被动攻击手段——通信业务流分析2。

通信业务流分析目的通过分析IP包未经加密的字段和未受保护的属性,恢复受保护会话的机密信息。

如通过检验未经加密的IP源和目的地址或观祭网络的流量状况,可确定会话双方的身份正在使用何种服务甚至猜测IL[J,商务或个人关系的信息。

在用户使用HTTP协议进行www浏览的时候,攻击者使用通信业务流的分析方法,对浏览器和www服务器之间的SSL通信进行攻击,可以发现非常有效的攻击方法。

通过检查密文信息的长度等综合的业务流分析,可以得到双方的IP地址端口号URL请求的长度Web页面的长度等。

结合现在高效的Web搜索引擎技术,以上信息使攻击省发现用户调用的Web页面。

这种攻击的关键是得到密文的长度,而由小在SSL中,无论是分组密码算法还是流密码算法,密文的长度都足近似准确的。

SSL协议对这种攻击的脆弱是由于其所处的网络协议的层次决定的。

要想从根本上防f卜.这种攻击必须从网络层甚至数据链路层着手,分层解决。

用户也应该注意在通信过程rf1,尽量避免机密信息的暴露。

2。

2ChangeCipherSpec消息的丢弃攻击

在SSL3.0协议rf1,一个小的漏洞是在finished消息rf1没有对change.cipher.spec消息的认证3。

这一缺陷将会导致一种潜在的攻击方法:

丢弃change—cipher一spec消息攻击。

在正常的情况下,双方的通信流程如下:

C—S:

change.cipher.spec

C—S:

finished:

{a}k

S—÷C:

change-cipher-spec

s_c:

finished:

{a}k

C—S:

{111}k

其中{3}指对数据进行加密保护:

m代表密钥交换完成后传输的数据,a代表消息认证码,是蚶所有握手消息进行MAC计算的结果。

在接受到change-cipher.spec消息之前,当前的cipher—suite-般不加密和不作MAC保护,而此时待决的cipher.suiteLL『包含了茼定的加密算法等参数。

通信艾体在接受到change-cipher-spec浦息之后,就把待决的cipher—suite复制成当前的cipher—sulte,记录层开始对通信数据进行加密和完整性保护。

假设一种特殊情形:

茼定的ciphersuiteH蚶消息进行认证,不作加密保护。

在这种情形下攻击者就可以发起中间人攻击。

双方的通信流程如下:

C{M:

change—cipher一spec

C÷M:

finished:

{a}k

M—}S:

finished:

a

S—M:

change.cipher.spec

S÷M:

finished:

{a}k

M—}C:

finished:

a

C-*M:

{lll}k

M—}S:

m

攻击者M截取并删除了change—cipher-spec消息捌么通信双方捋不再更新当前的cipher-suite,也就不再难发途的数据作MAC认证了。

由于商定的ciphersuite彳使用加密,则很容易从{111)t得到数据mo这样,协议对遁信数据失去了认证能力,攻击者在通信双方不知道的情饬下获得了对数据进行任意窜改的能力。

如果通信双方蔺定的cipher—suite使用加密,该攻击就不容易实现了。

但是,如果系统使用的是弱的密码算法,例如当密钥长度为40此特的DES算法时,那么在现有的计算能力下进行密钥的穷举攻击还是能够成功的。

避觅上进攻击的方法是捋chanoe一cipher一spec加入到finished消息的消息认证计算中。

该安全缺陷也可j≥在协议实现中使用某种手段避免而不需要修改协议的妻本框架。

强调在通信实体发送finished消息之前必然接受到change-cipher一spec消息,否则必然引起协议的致命错误。

但是胰用这种方法改进协议的安全缺陷需要依莉协议实现者的谨慎。

2.3密钏交换算法欺骗攻击

首先描遗一下SSL3.O中server.key.exchange消息的数据结构4。

计算机技术与发展第16卷

struct{

select{KeyExchangeAlorithm}{

casediffie-hellman:

ServerDHParamsparams;

Signaturesigned-params;

caAersa:

ServerRSAParamsparams;

Signaturesigned~params;

}ServerKeyExchange;

structi*

opaqueRSA_modulus:

opaqueRSAexponent:

}ServerRSAParams;

struct{

opaqueDH_p;

opaqueDH.g;

opaqueDH_Ys;

}ServerDHParams;

enum{rsa,diffie_hellman}

KeyExchangeAlgorithm;

服务器使用server.key.exchange消息来发送用服务器私钥签名的临时公开参数,客户端使用这些公开参数和服务器交换密钥,获得共享的pre-maste:

r-secret。

协议规定可以使用多种密钥交换算法,例如RSA算法和DiffieHellman算法。

由:

]:

服务器对公开参数的签名内容没有包含KeyExchangeAlgorithm蜮,因此给攻击者提供__r可乘之机3。

攻击者使用cipher.sⅢte回转攻击使服务器使用临时DH密钥交换,而客户端使用临时RSA密铜交换。

这样,服务器的DH素数模p和生成因子g被客户端理解为临时RSA的模p和指数go客户端使用伪造的参数加密pre.master.secret。

攻击者截获用RSA加密的值kgmodp,因为p是素数,所以容易恢复出premastersecret的PKCS编码k。

这样pre-master-secret就泄露给攻击者了。

以后所有的握手消息都可以被伪造,包括finished消息。

此后,攻击者可以在SSL连接上解密传输过程中所有机密应用数据利伪造任何数据。

下面描述J,这种攻击的通信流:

client_hello:

C-M:

SSLRSA_

MS:

SSL.DHE.RSA_

server-hello:

S-*M:

SSL~DHERSA_

MC:

SSL-RSA_

server-key-exchange:

SM:

{p,g,y}ks,diffie_hellrnan

MC:

{pgg,y}ks,rsa

client-key-exchange:

CM:

kgniodp

M->S:

旷modp

其中客户端的pre-master-secret倩是k,而服务器端通过计算gxymodp得到pre-master—secret,这里x是攻击者M选择的。

该安全缺陷也可以通过协议实现者的特殊处理加』≥避免。

协议实现者需要在客户端接受到server-key-ex:

change消息时检查公开参数域的长度,这样就能够区分序使用的密钥交换算法从而避觅这种攻击。

2.4密钥交换巾的重放攻击

密钥交换算法中在server-key-exchange消息中绑定了公开参数和服务器和客户端的随机值的签名,但是在匿名的密钥交换算法中没有绑定签名3。

随机值用来阻止在新握手过程中重放前一次的serverkeyexchange消息。

下面描逋了Signature消息的数据结构4。

select(SignatureAJgorithm)

{caseanonymous:

st

ruct{};casersa:

digitally.signedst

ruct{opaquemd5

hash16;opaqucsha.

hash20:

);

casedsa:

digjtally.signcdstruct{

opaquesha—hash20;

}

}Signature;

md5.hash=MD5fclient.random+server.random+Server2

Paramsl:

如果攻击者知道服务器使用了匿名的密钥交换,则攻击者能够重放服务器的server—key-exchange。

客户端在匿名的密钥交换中容易被欺骗。

为避免这种攻击,服务器应选择对公开参数和随机值的签名算法。

2.5密码分析方法攻击

在加密应川数据时,数据长度可以很大,如传输多嫦体信息。

在SSL协议中,基于同一密钥传输大量数据是不安伞的,它提供大量的南文信息和其他附加信息,攻击者可以利用筹分分析方法和线性分析方法破解密码,获得密钥5。

改进的出发点是定义加密的粒度,即同一密钥能加密的最大长度的明文数捌,当长度超过粒度时,密钥必须更新,粒度大小应在握手中协商。

下面是对client-hellc消息的扩展:

structf

ProtocaIVersioncLient—versaon:

Randomrandom:

SessionIDsession.id:

CipherSuitecipher—sulte;

CompressionMethodcompression_method;

Uint8key_refresh;

}client_hello;(T转第229Di)

第12期游强华等:

基于Struts框架的Web系统的角色权限验证

2两种方法的比较

(1)两种方法都实现了用户角色权限的验证,保证了系统儒息的安全性。

(2)第一种方法没有将模式和视图分开,随着系统能增大,将会导致系统更新的复杂化,以及系统的町扩展性较差。

(3)第一种方法将逻辑和视图分开。

通过对Action的覆写,实际上实现了对JSP页面的定义,将单个的JSI页面映射称为一个权限,从而通过对应的权限实现了对柞应页面的访问。

这样提高了系统的可扩展性。

对于新堆的JSP页面只要新增对应的Action以及系统权限,即可伢证系统权限验证的完整性。

(4)第二种方法通过禁止对“3.jsp”页面的直接谑求,隐藏了系统的文件信息,即隐藏了系统的文件结构,无形中也提高了系统安全性。

3结论

在B/S结构中,系统的权限验证比as中更显重要,dS结构由于具有特定的客户端,因此用户的权限验证可以通过客户端实现或通过客户端+服务器检测实现,而BlS结构中,用户通过浏览器进行系统信息的访问,如果没有一个伞面的权艰验证,那么‘芎}法用户”很可能通过祛览器访问到BlS结构系统中非授权功能。

因此BlS结棰中用户角色的权限验证将是倮证系统信息安全性的-叶核心部分。

文rf1构建的基于Struts框架的Web系统从名方面对用户提交的请求进行验证,防止了用户提交不合汪的参数而获取非法信息的可能性,并隐藏丫系统的文件耀构,最大程度上保证了系统信息的安全性。

参考文献:

1张梓元,贾燕枫+Struts开发入门与项H实践M.北京:

人民邮电出版社,2005:

2-8.暴志Ⅲ,胡艳军,顾新建.基于Web的系统权限管理实现方法J.计算机工程,2006,32

(1):

169-170.张租平,干磊.基于多种模式的权限摔制技术研究J.计算机工程,2006,32{1):

177-178.剧杰.对Struts应用开发框架的研究和改进J.计算机d工程,2004,30(增甲j):

144-145.孙卫琴,基于MVC的JavaWeb设计与开发M.北京:

电子工业出版社,2004:

5-10.(上接第219iTi)程序的编写,有这方面编程经验者可参考/uc/GUI用户手nf)API部分。

3总结以卜l详细论述了S3C44BOX微处理器的GUl硬件设计及LCD模块的驱动机理,在,uc/GUI的基础上,着重介绍了GUI工作机理,详细论遗了基于ARM的GUl的移植万法。

其广_很多部分仅是提崩了概要的描述,实际工作rf1还有很多细节工作需要完善。

参考文献:

1王田苗,嵌入式系统设计与实例开发M北京:

清华大学出版社,2002:

123-126..Samsung公司.S3C44BOXdatesheetSamsung公刊技术资。

料M.韩国:

Samsung,2004Micrium公刊。

LtciGUIusermanual,Micrium公刊用户手册3M.s.1.:

Micrium,2002:

325-347.陈冰峰,姜卓,王剑钢基于ARM7S:

3C44BOX嵌入式系4统GUI设计J.仪器仪表用户,2004(4):

30-31.杜春雷ARM体系结构与编程M北京:

清华大学出版‘社,2001:

377-379.(I|‘接第226页)

这里添加了keyrefresh字段,表示加密的粒度为1kcy-”frcsh个字节。

协荷了加密的粒度之后,现在对原来雌密钥导出两数进行修改。

密钥分组的计算过程如下:

key—block=PRF(master—secret,¨keyexpansion,server—random+client—random+Seq-Num)其中Seq.Num取值依次为O.2崎-曲““,2~key-曲““,3>2keyrefresh。

协议实现中记录已传输的字节数,当传输的数据达到lkeyrefresh个宁节的时候,SSL连接两端重新计算密钥分组。

3结束语

通过l义寸SSL协议本身安全性的分析和几种针蚶SSL协议攻击手段的讨论,发现虽然上述攻击手段’口J‘以通过协议实现中进行特殊处理而避免,但是从安全协议设计的角度看,协议自身应当避免安全隐患,而不要依赖于协议实现者的谨慎。

参考文献:

1FrierA.KarltonP.KocherP.TheSSL3,OProtocolIBOL.NetscapeCommunicationsCorp.1996-11.http:

//scape.com/enqss13/ssl-toc.html

2戴英侠.SSL协议的安全缺辑与改进J.中国科学院研究生院学报,2000,17

(1):

86-92.WagnerD,SchneierB.AnalyseoftheSSL3.oProtocoIC3Proceedingsofthe2ndUsenixworkshoponelectroniccom2merce.s.1.:

USENIXPress.1996:

29-40.

4RescorlaESSL句TLSM崔凯详.北京:

中国电力出版社,2002,

5孙红林,传输层安全防议的安全性分析及改进J软件学报,2003,14(3):

518–52

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1