没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记155(2006)583-603www.elsevier.com/locate/entcsWeb服务安全与传统协议E. Kleiner和A.W. 罗斯科1号英国牛津大学计算实验室摘要XML和Web服务安全规范定义了将安全令牌合并到SOAP消息中的元素。我们提出了一种方法,用于将这些消息映射到Dolev-Yao风格的抽象语法,特别是Casper符号。 我们表明,这种翻译保留aws和攻击。因此,我们为所有方法提供了一种方法,特别是Casper和FDR,这些方法是在过去十年中由理论界开发的,用于分析WS-Security协议的加密协议。最后,我们演示了如何使用这种技术来证明属性和发现攻击后,建议微软WS-SecureConversation协议。保留字:Web服务,SOAP,XML,WS-security协议,Dolev-Yao,Casper,FDR1介绍Web Services是一种基于XML的体系结构,它的发展是为了使分布式组件之间的耦合更加松散。在过去的几年里,随着Web服务体系结构的普及和重要性的增长,越来越多的标准已经被定义用于扩展功能和处理不同的关注点。由于其日益增长的重要性和使用,Web服务需要严格的安全性。实现安全性的一种常见方法是依赖于安全传输层,通常是SSL,如[7]中所研究和分析的除此1 {Eldar.Kleiner,Bill.Roscoe}@ comlab.ox.ac.uk1571-0661 © 2006由Elsevier B. V.出版,CC BY-NC-ND许可下开放获取。doi:10.1016/j.entcs.2005.11.074584E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583这种技术只在安全通道中提供安全性(而不是在文件或数据库中),它不符合中间体可以在其途中操纵消息的WS体系结构。一旦使用了安全传输层,中间体就无法控制消息。一个更合适的方法是使用WS-Security规范[4],通过使用XML签名[10]和XML加密[11]规范,处理和定义安全SOAP消息的标准和方法[9],而不依赖于安全传输层。在这方面,它创造了一个新的领域的密码协议的设计和实现。在[14]中,我们声称在Dolev-Yao [12]模型中,SOAP消息的语法对协议的安全性有相对较小的影响,因此,协议的抽象视图(假定它封装了所有安全元素)提供了一个准确的模型。我们提出了一个从SOAP消息到Casper [ 20 ]输入的映射函数φ(详见全文[ 15 ]的附录I)3,这样,如果WS-Security协议包含消息m1,m2.,然后,(i) 如果在φ(m1),φ(m2),..上发现攻击,φ(m,n),则可以在m1,m2,.,m n.(ii) 如果m1,m2,... ,mn则它也存在于φ(m1),φ(m2),...,φ(m n)我们演示了如何使用φ的性质(1),我们可以使用Casper [20]和FDR细化检查器[22]来发现Oasis在[19]中提出的对WSS协议的两种攻击。本文证明了φ的性质(2),并证实了我们的最后一个主张。然后,我们将演示如何使用此属性以及[8]的数据独立性和内部化技术来提供Web服务安全协议的一般证明以及查找漏洞。我们所做的贡献是正式的WS-Security proto-task的传统加密协议的翻译,确保保留的密码和攻击。因此,我们为所有方法提供了一种方法,特别是Casper和FDR,这些方法是在过去十年中由理论界开发的,用于分析用于分析WS-Security的加密协议。我们还证明了(引理4.2),在传统模型中添加任何演绎规则以封装入侵者的附加能力的情况下,φ继续满足性质(2)。最后,2我们展示了一个SOAP可以提供帮助的案例,但实际上这只是增加了翻译的忠实性。3在全文中,φ的定义比原始论文中的定义更详细,它旨在支持任何WSS协议。E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583585我们创建了一个框架,在这个框架中,可以证明添加了用于操作XML元素的规则不会减损φ的属性(2)的正确性(例如,参见第5节)。据我们所知,我们的工作是第一个证明WS-Security协议和传统安全协议之间关系的工作。我们的论文结构如下。在第2节中,我们简要介绍了传统安全协议的CSP模型。在第3节中,我们指出如何扩展传统模型来封装WS-Security协议。第四节证明了φ在第5节中,我们展示了如何使用我们的技术生成WS-Security 协 议 正 确 性 的 一 般 证 明 , 特 别 是 我 们 证 明 了 基 于 WS-SecureConversation [2]规范的Microsoft协议的一些属性,然后我们揭示了一些允许入侵者进行不同类型攻击的方法。最后,我们总结并给出了我们计划在这方面的未来工作的轮廓本文是[15]的一个概述,其中许多细节在这里省略了,可以找到。2CSP中传统安全协议的建模在本节中,我们将描述如何使用CSP对安全协议进行建模,以及该模型如何允许我们对其进行推理2.1消息数据类型数据类型Message表示不同代理之间交换的消息。它基于一个称为Atom的原子集合,其中集合Key(包含所有加密密钥),Nonce,Text和Password 被 定 义 为 原 子 集 合 的 子 集 ( Key_Atom , Nonce_Atom 和Password_Atom)。此外,我们将HashFn定义为包含所有可用密码散列函数的集合。数据类型Message由Atom中的原子值的排序、引用、加密和散列组成,定义如下:留言内容:加密。钥匙消息|哈什。HashFn。消息|参考。关键|平方留言反馈|汤姆原子在本文中,我们将使用写{m}k的Casper符号来表示ENCRYPT. k. m。586E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583我们使用g(|M|)对于H ASH.g.m,R(K)用于建模对密钥K的引用,并且最终将简化Sq。第1章.,mn to m1,.,m n.例如,我们将表示构造ENCRYPT. k。(Sq. a,na)由{a,na}k。2.2值得信赖的代理商参与协议的每个代理都被建模为CSP进程(代理也可以被内部化在入侵者演绎集中[8],但现在我们假设所有诚实的代理都被实现为CSP进程)。我们使用以下事件定义过程PA表示代理人A• send.A.B.M -表示代理A向代理B发送消息M。• receive.A.B.M-表示代理B显然从A.此外,我们定义了以下事件,以描述我们要分析的协议的规范。有关如何使用这些事件来表达安全协议属性的更多细节,请参见[20• claimSecret.A.B.M表示A认为消息M是只与代理B共享的秘密。• 运行AB。{M1,.,Mn}表示A认为他开始了与B的协议的新运行,其中{M1,.,Mn}表示该运行的一些细节• 完成. A.B. {M1,. ,Mn}表示A认为他刚刚完成了与B的协议运行,其中{M1,.,Mn}表示该运行的一些细节。有关将协议描述转换为CSP表示的更多信息,请参见[25]。2.3对入侵者进行建模并将网络整合在一起基于Dolev-Yao模型[12],我们允许入侵者在攻击一组T可信代理时具有以下能力:(i)偷听通过网络传播的所有消息,(ii)拦截消息,(iii)根据他所知道的仅受密码学限制的消息伪造消息,以及(iv)表现得像T之外的任何代理人一样。我们首先定义允许入侵者构造新消息的规则。定义基于关系► 其特征在于推理规则,入侵者可以通过该推理规则推断新消息。如果消息M可以从消息B的集合中推导出来,则我们说BM。E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583587构件B∈M<$B<$M测序B{M1,.,M n}不含M1,.,M n分裂B.,M,.. . ⟩ ⇒B ►M加密B<$M<$B<$ATOMK<$K∈Key<$B<${M}K解密B<${M}K<$B<$ATOMK−1<$B <$M散列BMg∈HashFn <$Bg(|M|)引用B<$K<$K∈Key <$B<$R(K)非正式地说,入侵者在知道消息和密钥时可以形成加密他可以破译一个他知道密钥的逆的加密,创建一个他知道的密钥的引用,散列他知道的每一个消息,并且可以分解和形成序列。由于通过Dolev-Yao模型,入侵者应该能够偷听、拦截和阻止每个消息,因此入侵者过程也对通信介质进行建模。代表入侵者的进程由X参数化,它覆盖消息的子集,并代表入侵者已经了解的所有事实。在这个模型中,入侵者通过发送通道获取诚实代理或服务器发送的每一条消息。然后,他可以通过适当的接收通道将其传递给代理,除非他决定阻止它或伪造新消息。Intruder(X)=^QM∈Mess agesendd?一个?B!B!M→Intruder(X{M})QQM∈Message,X<$Mreceive?一个?B!B!M→Intruder(X)QQM∈Mess age,X<$Mleak. M→Intruder(X)588E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583入侵者的初始状态是入侵者(IIK),其中IIK是入侵者初始知识。完整的系统是4:SYST EM=^(|||A∈HonestP A)恶意入侵者(IIK)2.4方案要求协议的要求由跟踪规范封装。保密如前所述,当代理A执行事件claimSecret. A. B.这意味着我们相信,在协议运行的这一点上,S e c s 集合中的值是秘密的,只与代理B共享。它表示入侵者不可能拥有Secs的值,即入侵者应该不能执行leak.M,其中M∈Secs。认证我们首先介绍终点和跑步事件(更多细节见[25]5完成事件由诚实代理在完成协议运行时执行,运行事件应在最后一个发送事件之前执行。我们将使用以下定义[21],这是一种更常见的身份验证形式:如果A认为他已经完成了协议的运行,显然是与B一起完成的,那么B之前已经运行了协议,显然是与A一起运行的,并且两个代理都同意他们扮演的角色,并且都同意值变量v1,...,vn,并且在B的游程和A的游程之间存在一一关系。以下说明对应于该定义6:Ag元素Ag元素Set(tr)=^A∈Agent;B∈Honest;Ms∈约束集·tr↓完成。A.B.Ms≤tr ↓运行。B.A.M s[4]为清晰起见,对该模型进行了抽象。在Casper生成的模型中,每个事实都被建模为与整个事实空间并行的过程这项技术大大减少FDR需要探索的状态空间(更多细节见[25]注意[25]将这些事件称为Running和Commit6二元运算符↓(tr↓ e)表示事件e在跟踪trE. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)5835893创建WSS协议为了分析Web服务安全协议,我们必须扩展第2节中描述的模型。我们稍后将使用新的扩展WSS模型来证明φ的性质(2)。WSS模型类似于第2节中的模型。基本上有分歧。首先,我们需要用封装SOAP消息的新数据类型替换Message其次,必须向入侵者的推理集添加一组新的推理3.1Envelope数据类型Envelope数据类型表示代理发送和接收的SOAP消息。与Message数据类型类似,Envelope将基于Atom集合,其中Key是Atom,Nonce是Atom,Agent 是 Atom , TimeStamp 是 Atom , Password 是 Atom , 并 且 基 于HashFn,该集合包含所有加密哈希函数。此外,我们定义HeaderApp为所有适用的SOAP头的集合,BodyApp为Body元素的适用子元素的集合,Id为所有唯一id的集合,Element包含所有有效的SOAP元素。下面是信封定义中的一些示例条款。信封的完整定义在全文中给出。包络::=<信封. 美德.先知-愿>。EnvelopeContent. 信封>信封内容::=报头|身体|标题,正文标题|加密数据头加密数据头报头::=<标头美德.先知-愿>。标题内容。标题>HeaderAtom::=安全|HeaderApp|EncryptedData标题内容::=平方HeaderAtom安全::=<安全美德.先知-愿>。安全令牌。安全>SecurityToken::=UsernameToken|BinarySecurityToken|590E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583签名|参考资料列表|EncryptedKey|安全令牌::=EncryptedData|SecurityTokenReference平方安全令牌E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583591Envelope数据类型几乎详尽地说明了SOAP消息。然而,我们做了一些抽象,以使它更简洁,更清晰:细节可以在全文中找到。3.2入侵者WSS模型中入侵者下面是一个添加的扣除(称为WS*)的一些例子,它为入侵者提供了操纵SOAP的基于XML的元素的能力(完整的集合请WSCryptedKey1加密密钥。美德.先知-愿>。.R(K1). ,<密码D在a>。{K 2}K1. ,平方元素- 是的加密B{K2}K1BR(K1)完整的WSS系统类似于第2节中介绍的系统:SYSTEMWSS=^(|||A∈HonestP A)入侵者(IIKWSS)我们注意到,我们建立WSS的完整CSP模型的原因主要是允许抽象分析,而不是直接用FDR检查它。4φ的性质(2)的证明我们现在可以给出函数φ:Envelope→Message的形式定义。我们的目标是使用[17]的结果。因此,φ的设计尽可能接近那里定义的重命名变换的想法请注意,由于Envelope数据类型定义使用Message数据类型定义,因此φ可能适用于Message。在这种情况下,根据φ的定义(见全文),φ的行为就像相同的函数,即返回其输入。φ在SY STEMWSS事件中定义如下:592E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583一φ(发送A. B. Envelope)=^φ(receive.A.B.E_n_v_e_o_p_e)=( c_aim_e_c_e_a_e_p_e_c_p_cB.Envelope )A.B.E_n(v_e_ope)=(f_i_p(f_i_d. A. B. Envelope)=^并通过以下方式超过迹线:send.A.B.φ(信封)receive.A.B.φ(Envelope)claimSecret.A.B. φ(Envelope)running.A.B.φ(Envelope)完成. A.B. φ(信封)φ(tr)=^(e)|e←中文将φ应用于可信代理过程(φ(PA))|因为在CSP中,重命名的进程f(P)是行为类似于P的进程,除了P中的每个事件e都被重命名为f(e)。最后,我们将φ应用于整个系统:φ(SYST EMwss)=^(|||A∈Honestφ(P A))INTRUDER(φ(IIKwss))4.1容错重命名转换在[17]中,Hui和Lowe证明了,如果将SYSTEM变换为SYSTEMJ,通过以下方式:2019 -05 -2501 :01:02(|||f(P))nT RUDER(IIK J)A∈诚实其中IIK(i) <$B∈P(Message); M∈Message·B<$IIK<$M<$f(B)<$IIKJ<$f(M)(ii) f(IIK)非正式地说,如果入侵者能够在原始SYSTEM中推导出一个消息,他必须能够在相应的SYSTEMJ中推导出等价的消息f(M),在这种情况下,我们说函数f满足分布性质。其次,入侵者在原始SYSTEM中的所有初始知识的相应消息这个结果的证明并不依赖于信息的结构数据类型或入侵者的演绎集。换句话说,无论代理交换的消息类型如E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583593何,无论入侵者有什么扣除,结果都是有效的。由于这个事实,我们可以将这个结果应用于WSS模型。因此,为了证明φ的性质(2),594E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583证明:(i) <$B∈P(Envelope); E ∈Envelope·B<$IIKwss<$E <$φ(B)<$IIKwss<$φ(E)(ii) φ(IIKwss)φ(IIKwss)第二个条件显然已经满足。还需要证明的是,φ满足分布性质,我们在入侵者的演绎集上通过结构归纳法证明了这一点。4.2证明φ满足分布性质为了证明分布性质,我们需要从[17]中得到以下引理:引理4.1BEBBJB jEBEB {E} E jBE J.我们首先证明φ满足从原系统中得到的所有演绎的分布性质引理4.2对于从传统系统中得到的每个入侵者φ满足分布性质。证据如果对于每个M, MJ∈Message和传统系统的每个演绎规则,B<$M <$B <$MJ,则根据归纳假设,B<$IIKwss<$φ(M)=M,并且根据原始演绎规则<$B <$IIKwss<$MJ=φ(MJ)<$B <$IIKwss<$φ(MJ)Q我们通过证明φ满足WSS模型中加入的扣除项的分布性质来下面是一个例子,其余的条款可以在完整的文件中找到WSCryptedKey1如果SE= EncryptedKey>。.R(K1). ,<密码数据>. {K 2}K1. ,平方元素- 是的加密密钥>和B<$SE,则通过归纳假设,φ(B)<$IIKwss<$φ(SE)={K2}φ(. R(K1). ,EN C),φ(,R(K1). ) ={K2}K1,R(K)=E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583595φ({K2}K1),φ(R(K))<$φ(B)<$IIKws<$φ({K2}K1)<$φ(B)<$IIKws<$φ(R(K))4.3协议认证属性我们现在证明φ的性质(2)对于一致性也是有效的。在[17]中,证明了如果满足以下条件E∈Envelope·Es;E∈Envelope·Es然后EsJ<$f(Es)/=f(EsJ)<$Agreementf(AgreementSet)(f(tr))不幸的是,当应用于KeyInfo,EncryptedData时,φ不是单射的。和EncryptedKey,如果我们在数据类型Envelope上使用通常的等式。此外,SecurityTokenReference通常可以被它所指向的元素替换,并创建两个不同的SOAP消息,其中它们的φ转换是相同的。由于这些原因,看起来φ不满足后一个条件。然而,可以证明,映射到φ上相同映象的所有等价类消息,就其安全性而言,是完全等价的,特别是它们中的任何一个所携带的认证性质都是由它们所有携带的。所以我们可以假设这个性质成立。请参阅全文了解更多详情。4.4分支我们已经证明了在WSS模型下φ在保密性和认证方面都是安全的。如果通过添加更多的演绎规则来扩展WSS模型,那么证明也可以扩展(参见第5节)。由于φ将信封s转换为消息s,因此我们因此,WSS协议经φ变换后,可以在传统模型中进行分析,而不必担心产生错误的正确性证明。我们想强调的是,虽然这个证明是基于理论的CSP,它是有效的任何工具,无论其基础理论。因此,任何已建立的分析安全协议的工具都可以使用φ来分析WSS协议。φ这一事实允许非专业用户在几分钟内分析复杂的WSS协议。我们已经在各种WSS协议上测试了我们的自动化版本的φ,收到了令人满意的结果。我们将在596E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583使用Casper和FDR或(根据适应性)其他可用工具分析WSS协议。作为引理4.2的结果,在分析经φ变换的WSS协议时,可以使用在传统协议模型中所做的入侵者能力的任何扩展。我们在4.3节中看到,如果有两个语义等价但语法不同的WSS协议,那么φ将把它们转换为相同的传统协议。由于φ的这一特点,我们认为φ可以用来使WSS的语义更清晰。5证明基于WS-SecureConversation的协议在前面的部分中,我们介绍了分析WS-Security协议的方法。我们还实现了φ,以便与Casper和FDR一起成为分析WS-Security协议的工具。然而,我们创建的框架可以用于扩展φ来封装本地协议设计者定义的元素和新的Web服务规范在本节中,我们给出了一个扩展φ的例子,以分析来自WSE [23]的基于WS-SecureConversation的协议(参见全文中完整的SOAP消息描述)。我们演示了如何使用我们在第3节中提出的模型证明扩展,并使用Casper和FDR提供了该协议正确性的一般证明5.1背景Web服务安全规范定义了安全令牌,为这些令牌封装的声明提供保密性,身份验证,完整性和其他安全属性。但是,必须对每个SOAP消息重复根据安全策略验证这些令牌的过程。这在性能方面显然是有问题的,例如,在每个消息中可能使用EncryptedKeyWS-SecureConversation[2]解决了这个问题。它建立在WS-Security和WS-Trust [3]的基础上,允许请求者和Web服务建立一个相互验证的安全上下文,该上下文可以被双方用作会话密钥或用于派生新密钥。WS-Trust定义了三种不同的建立安全上下文的方法。在以下每个过程的最后,创建SecurityContextToken元素(SCT),并将新的安全上下文与之关联。(i) 安全上下文令牌由安全令牌服务创建E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583597( STS ) - 上 下 文 发 起 者 向 安 全 令 牌 服 务 ( STS ) 发 送RequestSecurityToken(REQ)请求,如果策略允许并且满足请求者RSTR包含已验证的SecurityTokenspeci-生成一个新的SCT和一个指向要分配给SCT的“秘密”的验证令牌。STS以类似的方式(通过RSTR)将新创建的安全令牌分发给其他方(ii) 安全上下文由其中一个代理创建,并通过消息传播-如果实体受到其他方的信任,则它可以创建SCT并向其他方发送签名的未经请求的RSTR。同样,RSTR包含指定新SCT的安全令牌和指向“秘密”的安全令牌(iii) 协商创建的安全上下文- WS-Trust定义了在需要时协商或交换SCT内容(例如共享秘密)的消息序列的方式。在建立安全上下文之前,通过各方相互发送挑战来完成协商。WS-Trust定义了各种各样的挑战,例如一方可能指定一个事实,并期望另一方签名返回。在安全上下文建立之后,各方可以使用WS-Security的共享秘密来对消息进行签名和加密。但是,WS-SecureConversation规范建议将派生密钥用于这些目的。在这种情况下,DerivedKeyToken可以用于指示在给定消息内使用哪个派生5.2WS-SecureConversation建模在本节中,我们将展示如何为φ创建必要的扩展,以分析WSE为了简洁起见,我们没有在这里展示处理令牌集合和协商的完整扩展,尽管这样的扩展可以实现和证明。下面只给出了其中的两个扩张,其余的,以及扩张保持φ安全的证明,可以在全文中找到5.2.1RequestSecurityTokenRequestSecurityToken元素(Token)在WS-Trust规范中定义,并由WS-SecureConversation规范用于请求安全上下文令牌(SCT)7。context属性是可选的URI7由于RequestSecurityToken可用于请求任何安全令牌,因此在WS-SecureConversation上下文中使用时,它应包含一个TokenType元素,指示598E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583为请求指定上下文。与此请求相关的所有后续RSTR元素都必须携带此属性。φ(RequestSecurityToken Context =“Con“. /RequestSecurityToken)= φ(φBaseφ. φ/底座φ),φ(底座支撑φ)/支撑熵/熵,当LifeTime是RequestSecurityToken元素的子元素时,由于响应者的决定,它被抽象掉5.2.2熵Entropy元素允许请求者和响应者指定在创建键时使用• 如果BinarySecret是Entropy的孩子,φ(φ熵)K/熵(熵)= Kφ(熵)其中K = K(BinarySecret密钥). BinarySecret(BinarySecret)是BinarySecret中的一个抽象秘密。• 如果EncryptedKey是Entropy的子项,则φ(Entropy). ** 加密/加密密钥(EncryptedKey)/熵φ(EncryptedKey. 加密/加密密钥(ENC)最后,如果φ得到Entropy元素和上下文名称作为参数,那么φ创建一个上下文,稍后可以由相关的RSTR使用以下方法提取:φ(Entropy. 熵/熵(φ(φ熵)../Entropy5.3分析协议我们将φ应用于WSS协议(参见全文的附录III)并获得:这是SCT申请E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583599味精1.A→B:UMI 1,匿名,B,ts1,{sha1(ts1),sha1(SecurityToken-b8.,{K 1}PK(B))、sha1(B)、sha1(UMI 1)、sha1(匿名),sha1(B)}p-sha1(pass(A),NA+ts1),sha1(密码(A),NA,ts1),NA,ts1,{K1}PK(B)味精2.B→A:RSTR,UMI2,UMI1,anonymous,ts2,{sha1(RSTR),sha1(UMI2),sha1(UMI1),sha1(anonymous),(sha1(ts2),sha1(uuid 1,t味精3.A→B:UMI3,匿名,B,ts3,(uuid 1,{sha1(UMI3),sha1(anonymous),sha1(B),sha1(ts3),sha1(body1)}p-sha1(K1,K2),{body1}p-sha1(K1,K2)味精4.B→A:UMI4,UMI3,A,ts4,(uuid 1,sha1(UMI3),sha1(anonymous),sha1(ts4),sha1(body2)}p-sha1(K1,K2),{body2}p-sha1(K1,K2)在应用一些简化变换[17]以使其更清晰之后,我们获得以下方案:MSG1。A→B: UMI 1,{UMI 1,B,{K1}PK(B))}p-sha1(pass(A),NA),sha1(密码(A),NA)),NA,{K1}PK(B)MSG2. B→A:{UMI 1,UMI 2,{K2}K1}SK(B),uuid 1,{K2}K1MSG3. A→B: {UMI3,B,body1}p-sha1(K1,K2),{body1}p-sha1(K1,K2)MSG4. B→A:{UMI 3,UMI 4,body 2}p-sha1(K1,K2),{body2}p-sha1(K1,K2)我们分析了这个协议,使用数据独立技术的模-使用以下Casper规范对方案进行有限次运行:Secret(A,body1, [B])Secret(A,pass(A),[B])秘密(B,body2, [A])协议(A,B,[body1,K1])600E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583这些指定代理A此外,它们指定主体1和客户端(A)熵正确地认证到服务器(B)。 我们在FDR上检查了该协议的数据独立模型,没有发现任何攻击。由于φ是安全的,通过数据无关的性质,E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583601因此,我们已经证明,对于任意大的实现中的任意多个运行,该协议满足这些规范。然而,当分析具有以下Casper认证规范的协议时,发现了攻击。协议(B,A,[正文2,K2])这说明,如果A认为他已经成功地与B完成了协议的运行,那么B之前显然已经与A运行了协议,并且B是发送K2和body2的人。FDR发现了以下攻击MSG1α 。A→IB: UMI1 , {UMI1 , B , {K1}PK ( B ) ) }p-sha1 ( passs(Alice),NA),sha1(password(Alice),NA)),NA,{K1}PK(B)味精1β。I →B: UMI 1,{UMI 1,B,{K 1}PK(B))}p-sha 1(通过(I),NA),sha1(password(I),NA)),NA,{K1}PK(B)味精2β。B →I:{UMI1,UMI2,{K2}K1}SK(B),uuid 1,{K2}K1味精2α。 IB→ A:{UMI1,UMI2,{K2}K1}SK(B),uuid 1,{K2}K1味精3α。 A →IB:{UMI3,B,body1}p-sha1(K1,K2),{body1}p-sha1(K1,K2)味精3β。I →B:{UMI3,B,body1}p-sha1(K1,K2),{body1}p-sha1(K1,K2)味精4β。B →I:{UMI 3,UMI 4,body 2}p-sha1(K1,K2),{body2}p-sha1(K1,K2)味精4α。 IB→ A:{UMI 3,UMI 4,body 2}p-sha1(K1,K2),{body2}p-sha1(K1,K2)在协议运行结束时,A认为她已经使用数据项body2和K2与B完成了协议运行,其中显然B只有当消息3和4在时间戳过期之前发送时(ts2J,ts3,ts 4),这种攻击才可能在原始协议上进行所讨论的协议通过签署WS-解决[1]要素。问题是,后一种规范允许将端点标识为“匿名”,而不是为它们提供有意义的URI。由于这是客户端(A)在此协议中通过WS-Addressing识别的方式,因此第二条消息没有正确绑定到她。可以通过将客户端的身份包含在消息2的签名中来尽管如此,即使客户端的正确身份不是602E. Kleiner,A.W.Roscoe/Electronic Notes in Theoretical Computer Science 155(2006)583罗斯福一致性(A,B,[NA,UMI 1])这说明,如果B认为他已经成功地与A完成了协议的WS- Trust部分的运行,那么A之前显然已经与B一起运行了协议,并且A是发送NA和UMI 1的人。入侵者可以截取服务和诚实代理之间协议有效运行的MSG 1。然后,入侵者可以在时间戳过期之前向服务重新发送大量消息,使服务分配大量的安全上下文。使用这种方法,入侵者完成了拒绝服务攻击,迫使服务分配他的所有资源,而不能为其他代理服务。应该指出的是,WSE平台有一个“检测重放”机制,它可以防止来自同一客户端的两个重复消息。我们能够进行这种攻击,因为这种机制被设置为默认值。我们认为,解决这个问题的办法应该是一个正确的认证,阳离子的NA和UMI1,而不是在风格的检测重放机制的机制。(i) 不小心使用此协议会使其容易受到DOS攻击。一个没有经验的用户可能不知道检测重放机制的含义,不去管它,使他的实现容易受到攻击。(ii) 在具有两个服务器(B)的实施方案的情况下,如果客户端(A)将MSG 1发送到服务器中的一个,那么应通知另一服务器且拒绝同一客户端的任何连接尝试(iii) 检测重放机制的使用表明,每个有效的代理只能与服务进行一次会话。可能的情况是,实现者希望他的服务与同一个客户端打开多个会话。如果身份验证是正确的,这将不会是一个问题。(iv) WSE框架中的检测重放机制仅适用于UsernameToken,并将在下一版本中扩展到电子票证。此外,WSE还可以配置自定义重放检测机制。一个正确的协议将适用于任何类型的认证,而不需要定制的检测重放机制。仔细检查就会发现,协议的WS-SecureConversation部分(最后两条WS-SecureConversation被设计为在安全上下文建立后可以交换无限消息。在这种情况下,可以实施相同类型的攻击,并且检测重放机制不能阻止它。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功