(计算机软件与理论专业论文)soap安全性模型的设计与实现.pdf_第1页
(计算机软件与理论专业论文)soap安全性模型的设计与实现.pdf_第2页
(计算机软件与理论专业论文)soap安全性模型的设计与实现.pdf_第3页
(计算机软件与理论专业论文)soap安全性模型的设计与实现.pdf_第4页
(计算机软件与理论专业论文)soap安全性模型的设计与实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机软件与理论专业论文)soap安全性模型的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

s o a p 安全牲模型携设诤与实现 i 蜒 摘要 w e b 协议和x 阮标准上,掇供了一个系统纯,霄扩震纯静会数应 随着w e b 服务在蛾子商务簿领域的不断发展,其安全性也越来越 照示其熏磐性。s o a p 作为w e b 服务通信协议的基础,在实现w e b 服务安全性的 王程孛扮演羞及莛重要熬是色。s o a p 我设计思想是透过现有豹摭准和协议来建 立一个简单的可扩展的应用框架。本文也试图遵循这个思想,使用现有的岌全技 本来设诗帮实瑗一令s o a p 安全谯模型。 , 我们首先定义了s o a p 安全性的5 项安全性需求:机密性、完整性、不可否 认性、身份验证和授权,然后具体分柝了现有的传输层安全技术( 如陡火墙、 s s l t l s 和腿t p 身份验证) 和应用层安全技术( x m l 加密釉x m l 数字签名) 所能 摊供的安全保证及其不足,最后提出了结台传输朦和应用层安全技术的s o a p 安 全性模型,并针对s o a p 安全性要求分折了该模型的安全性。 在模型的实现中主要讨论了应用层安全性的实现。我们从企业应用现状出 发,使臻e j a 缓转援本稳造魏l 安全缝搏,遴一步扩震x m l 安全技零,形成了颏 的x m l 安全处理模型。通过对s o a p 引擎对s o a p 消息的处理机制的分析,我们定 义了一系羁与x m l 安全毪穗关的h a n d l e r ,透过辩s o a p 琴| 擎申h a n d l e r 链的配 鼹,使得x m l 安全组件和s o a p 能无缝的结合在一起。最飚在实现模型中介绍了 如何配鬻传输屡的安全穗。 最后,本文对s o a p 安全性模型进行了总结,提出了其缺陷与不足,揩媳了 谯日后工作中亟待解决的问题。程对未来的展望中本文还介绍了工业界的两个规 燕草案,褪镶隧豢w e b 暇务安全髅趣范静不颧接爨与宠善,w e b 羧务必将获提更 加广泛的应用。 关键字: w e b 服务,安全套接字层,x m l 加密,帆数字签名,e j b 组件, s o a p 孳 擎 第l 页 s o a p 安全性模型的设计与实现 a b s t r a c t w e bs e r v i c e ,b a s e do nw e bp r o t o c o la n dx m ls t a n d a r d ,p r o v i d e das y s t e m a t i c a n de x t e n s i b l ef r a m e w o r kf o re n t e r p r i s ea p p l i c a t i o n s w i t ht h ed e v e l o p m e n to fw e b s e r v i c ei nt h ea r e ao f e - b u s i n e s s ,i t ss e c u r i t yi sb e c o m i n gm o r ea n dm o r ei m p o r t a n t s o a p , t h eb a s i so fw e bs e r v i c et t a n s p o r tp r o t o c o l ,p l a y sa l li m p o r t a n tr o l e i nt h e i m p l e m e n t a t i o no f w e bs e r v i c es e c u r i t y i n s p i r e db ys o a p d e s i g nt h o u g h t , w e 耐e d t ou t i l i z ea v a i l a b l es e c u r i t yt e c h n o l o g i e st od e s i g nas o a p s e c u r i t ym o d e l a n dt h e n i m p l e m e n t i t f i r s tw ed e f i n et h ef i v e s e c u r i t yr e q u i r e m e n t so fs o a p ;t h e ya r ec o n f i d e n t , i n t e g r i t y , n o n - r e p u d i a t i o n ,a u t h e n t i c a t i o na n da u t h o r i z a t i o n a f t e rt h ei n t r o d u c t i o n so f t r a n s p o r ts e c u r i t yt e c h n o l o g ya n da p p l i c a t i o ns e c u r i t yt e c h n o l o g y ,w et h o r o u g h l y a n a l y z e dt h es e c u r i t yg u a r a n t e e st h e yc a np r o v i d ea n dt h e i rd e f e c t s w ec o n s t r u c t e da s o a p s e c u r i t ym o d e lb yc o m b i n i n gt h e s et e c h n o l o g i e s ,a n df u r t h e r , w ed i s c u s s e di t s s e c u r i t yc a p a b i l i t i e sa c c o r d i n g t ot h es e c u r i t yr e q u i r e m e n t s i nt h i st h e s i sw ef o c u s e dm o r eo nt h ei m p l e m e n t a t i o no f a p p l i c a t i o n s e c o r i t y w e i m p l e m e n t e d a l lx m l s e c u r i t yc o m p o n e n t w i t he j b w i t l lt h i sw ee x t e n d e dt h ex m l p r o c e s st e c h n o l o g ya n df o r m e dan e wx m l p r o c e s sm o d e l t om a k es o a pe n g i n e s u p p o r ta p p l i c a t i o ns e c u r i t y , w ea n a l y z e dt h em e c h a n i s mo fs o a p e n g i n e ,a n dd e s i g n as e r i e so fh a n d l e r sr e l a t e dw i t hx m l s e c u r i t y b yc a r e f u lc o n f i g u r a t i o no fh a n d l e r c h a i n ,w eb o u n dt h ec o m p o n e n ta n ds o a p e n g i n et o g e t h e rs e a m l e s s l y f i n a l l yw e i n t r o d u c e dh o wt oc o n f i g u r e t r a n s p o r ts e c u r i t y i nt h ef i n a l c h a p t e r , w es u m m a r i z e dt h es e c u r i t ym o d e la n di t ss h o r t c o m i n g s a l s ow e p r o p o s e ds o m ep r o b l e m st ob ea n a l y z e da n ds o l v e di nf u r t h e rw o r k w ea l s o i n t r o d u c e dt w ow e bs e r v i c e s e c u r i t ys p e c i f i c a t i o nd r a f ti ni n d u s t r y , w h i c hr e p r e s e n t t h ef u t u r eo fw e bs e r v i c es e c u r i t y w eb e l i e v ew i t ht h ei m p r o v e m e n to f w e bs e r v i c e s e c u r i t y , w e bs e r v i c ew i l lb e c o m em o r e a p p l i c a b l ei ni n d u s t r y k e y w o r d s :w e bs e r v i c e ,s e c u r es o c k e tl a y e r ,x m l e n c r y p t i o n ,x m ls i g n a t u r e , e j b c o m p o n e n t ,s o a pe n g i n e 第2 页 s o a p 安全性模型的设计与实现 第一章导论 s o a p ( 简单对象访问协议) 以x m l 形式提供了一个简单、轻量的用于在 分散或分布环境中交换结构化和类型化信息的机制。从底层开始,s o a p 的设计 目标就是使之成为一种非常简单的协议,能够以各种不同的方式满足各种不同的 需求,因而,s o a p 具有简单、轻便,并在业界获得广泛支持等优点。正因为这 样,s o a p 在电子商务领域开始得到越来越广泛的应用。 随着w e b 服务在电子商务等领域的不断发展,其安全性也越来越显示其重要 性。其实自从s o a p 规范从2 0 0 0 年发布以来,s o a p 规范的机密性,认证和授 权等安全机制就一直受到了人们的广泛关注。这三个方面对于任何的b 2 b 和 b 2 c 来说都是很重要的,但s o a p 标准在制定规范时并没有过多考虑s o a p 的 安全性要求,于是s o a p 在面对目前网络中存在的主要威胁是就显得束手无策。 s o a p 一个很重要的设计目标在于它的简单性,它尽可能的利用已有的标准 和协议来实现相应的功能,而不是另起炉灶,重新定义一个崭新的协议。s o a p 采用了两个已经被广泛使用的协议:h t t p 和x m l 。在h t t p 和x m l 这两个协 议上都发展了比较成熟的安全技术,如s s l 、h t t p s 、x m l 加解密和x m l 数 字签名技术等。s s l 和h t t p s 是基于传输层的安全技术,而x m la n 解密和 x m l 数字签名是基于应用层的安全技术,他们各有其优势和不足。 基于s o a p 的设计思想,我们希望能通过现有的安全技术的结合来最大限度 的保障s o a p 安全性,但是现有的安全技术的结合究竟能够使s o a p 达到何种 程度的安全性呢? 在本文中我们将使用现有的安全技术来建立s o a p 的安全性模型,根据w e b 服务的5 项安全性需求进一步讨论安全性模型所能提供的安全性保证,最后我们 将使用现有的w e b 服务器和s o a p 引擎实现这一模型。 第5 页 s o a p 安全性模型的设计与实现 第二章s o a p 概述 2 1s o a p 简介 近年来,电子商务发展迅猛,尤其是b 2 b 的电子商务模型发展前景广阔。 使用x m l 来描述商务信息使得各种b 2 b 应用在数据层上获得了开放集成的能 力。然而从技术的角度来看,这仅仅完成了应用领域中最低层次的集成:数据层 集成。在模块层,应用层仍然停留在一个不利于集成的阶段。s o a p 规范正是使 模块层能够以一种开放、自说明、统一的方式进行集成和交互。 另一方面,s o a p 的出现与w e b 服务的发展紧密相关:w e b 服务是封装成单 个实体并发布到网络上以供其它程序使用的功能集合。它是用于创建开放分布式 系统的构件。在w e b 服务中,所有主要供应商都支持s o a p 这一新标准协议, 这样就避免了在c o r b a 、d c o m 和其它协议之间转换的麻烦。s o a p 的引入使 得任何语言都可以用来编写w e b 服务,开发者无需更改他们的开发环境就可生 产和使用w e b 服务。正是s o a p 的引入,使w e b 服务得以满足互操作性,普遍 性和低进入屏障。 2 2s o a p 规范【1 】 2 2 1 规范组成 s o a p 规范主要由三部分组成: 1 s o a p 信封( e n v e l o p e ) 它构造定义了一个整体的s o a p 消息表示框架, 可用于表示消息中的内容是什么,是谁发送的谁应当接受并处理它以 及这些处理操作是可选的还是必须的等。 2 s o a p 编码规贝l j ( e n c o d i n gr u l e s ) 它定义了一个数据的编码机制,通过这 样一个编码机制来定义应用程序中需要使用的数据类型,并可用于交换由 这些应用程序定义的数据类型所衍生的实例。 3 s o a p r p c 表示( r p cr e p r e s e n t a t i o n ) 定义了一个用于表示远端过程调用 和响应的约定,例如,如何使用h t t p 或s m t p 协议与s o a p 绑定,如 何传输过程调用,在具体传输协议的哪个部分传输过程响应,如我们可以 第6 页 s o a p 安全性模型的设计与实现 在h t t p 的响应的时候传递过程响应。 这三部分在功能上是彼此独立的。特别的,信封和编码规则是被定义在不同 的x m l 命名域( n a m e s p a c e ) 中,这样有利于通过模块化获得定义和实现的简 明性。 2 2 2s o a p 信封 s o a p 消息的主体部分是 t e x t x m l ”形式的m i m e 类型,并且包含一个s o a p 信封。该信封是一个x m l 文档。信封包含了s o a p 消息头部( 可选) 和s o a p 消息体( 必须) 。信封中的消息体部分总是用于最终接收的消息,而头部项目可 以确定执行中间处理的目标节点。附件、二进制数字及其他项目可以附加到消息 体上。 s o a p 提供了一种让客户端指定哪个中间处理节点必须处理头部项目的方 法。由于s o a p 消息头部与s o a p 消息的主体内容是互不相关的,所以可用它 们给消息添加信息,而不会影响对消息报文的处理。例如,报头可用于为报文 中包含的请求提供数字签名。在这种情形下,身份验证授权服务器可以处理独 立于消息体的消息头部项目,并可以剥离信息以验证签名。一旦通过验证,信 封的其余部分将被传递给s o a p 服务器,它将对s o a p 消息体进行处理。 2 2 3s o a p 编码规则 s o a p 规范中还定义了数据编码规则,称为基准编码或“s e c t i o n5 ( 第5 节) ” 编码,它是出自s o a p 规范中描述数据编码规则的那一节内容。s o a p 编码可 以简短地描述成简单值或者复合值的集合。简单值可以是简单类型,如整型、浮 点型和字符型,或者是x m l 架构规范第2 部中定义的内置类型,包括各种数据 类型,如字节型数组和枚举。复合值包括结构、数组和x m l 架构制定组定义的 复杂类型。最后,s o a p 数据编码指定了对象序列化规则,即通过网络排列和分 散数据流的机制。这些基准编码在任何情况下都不是强制性的,这样客户端和 服务器可以自由地使用不同的数据编码规范,只要它们符合格式就行。但是这样 做的话,就会毁灭s o a p 在网络上提供标准化服务所起的推动作用。 2 2 4s o a pr p c s o a p 消息本质上是一种从发送方到接收方的单向传输,但是s o a p 经常组 第7 页 s o a p 安全性模型的设计与实现 合到实现请求响应机制中。其实设计s o a p 目的之一就是利用x m l 的扩展性 和灵活性来封装和交换r p c 调用。要让r p c 使用s o a p ,必须遵循几条规则。 首先,请求和响应消息必须被编码成结构类型。对一个操作的每一个输入参数, 都必须有一个同名元素( 或输入结构的成员) 作为参数。对每一个输出参数,都 必须有一个名称匹配的元素( 或输出结构的成员) 。只带有报文部分的s o a p 请 求与响应信封如下所示: s o a p 请求: d e f 叫s o a p - e n v :b o d y s o a p 响应: 2 2 5 0 咖:g e t l a s t t r a d e p r i c e r e s p o n s e 通过s o a p 传送目标对象的u r l 、方法名、方法s i g n a t u r e ( n - j 选) 、方法的参 数、头数据( 可选) ,以进行方法调用。r p c 方法调用和响应都包含在s o a p b o d y 元素中。方法调用和响应结构可以按照规则编码,或者用e n c o d i n g s t y l e 属性指 定编码方式。在r p c 响应中不应同时包含返回结果和错误。在r p c 编码中可 能会有与方法请求有关但不是正规的方法s i g n a t u r e 的附加信息如果这样,它 必须作为s o a p 头部的子元素。 最后,为了进行r p c ,需要一种低级协议如h t t p 。尽管s o a p1 0 规范强 制要求使用h t t p 作为传输协议,但s o a p1 1 规范允许使用f t p 、s m t p 、甚 至是原始的t c p i p 套接字。 第8 页 s o a p 安全性模型的设计与实现 一 第三章s o a p 安全性模型 3 1s o a p 安全性要求瞳1 电子商务依赖于交易伙伴在网络,通常是i n t e m e t 上的信息交换,因此信息 被监听、篡改和丢失的风险是不可避免的。在信息交换的过程中,为了保证信息 的安全,要求信息交换具有机密性、完整性、不可否认性、身份验证和授权。 1 ) 机密性( c o n f i d e n t i a l i t y ) 保证没有经过授权的用户、实体或进程无法窃取信 息。在一个开放的网络环境里,维护信息机密是全面推广应用的重要保障。 2 ) 完整性( i n t e g r i t y ) 保证信息在传送的过程中不会被偶然或故意破坏,保持 信息的完整、统一。特别是指没有经过授权的用户不能改变信息内容。 3 ) 不可否认性( n o n r e p u d i a t i o n ) 保证信息的发送者不能抵赖或否认对信息的 发送,要在信息的传输过程中为参与的实体提供可靠的标志。 4 ) 身份验证( a u t h e n t i c a t i o n ) 将对企业应用和数据的访问限制在那些能提供合 适身份证明的实体。未能提供身份证明的实体将被拒绝访问企业的资源。 5 ) 授权( a u t h o r i z a t i o n ) 就是用来确定一个用户能够做什么的过程,将不同的 权限分配给不同类型的用户。 s o a p 作为未来企业应用之间的信息交互的重要手段,同样也需要达到这五 点安全性要求。 3 2 安全技术概述 s o a p 是基于现有的传输协议和x m l 标准的信息交互协议。所以我们可以 从保证传输层安全性和x m l 安全性这两个方面来分析现有的s o a p 相关技术。 3 2 1 传输层安全技术 3 2 1 1 防火墙嘲 防火墙( f i r e w a l l ) 安全保障技术主要是为了保护与互联网相连的企业内部 网络或单独节点。它具有简单实用的特点,并且透明度高,可以在不修改原有网 络应用系统的情况下达到一定的安全要求。防火墙一方面通过检查、分析、过滤 第9 丽 s o a p 安全性模型的设计与实现 从内部网流出的i p 包,尽可能地对外部网络屏蔽被保护网络或节点的信息、结 构,另方面对内屏蔽外部某些危险地址,实现对内部网络的保护。 防火墙般实施两个基本设计方针之一: 拒绝访问一切未予特许的服务 允许访问一切未被特别拒绝的服务 第一种方针比较保守,遵循“我们所不知道的都会伤害我们”的观点,因此 能够提供较高的安全性,但是这样,能够穿过防火墙为我们所用的服务,无论在 数量上还是类型上都会受到很大的限制。第二种则较灵活,虽然可以提供较多的 服务,但是所存在的风险也比第一种大。而且当受保护网络的规模越来越大时, 对它进行完全监控就会变得越来越难。 防火墙能够提高主机整体的安全性,因而给站点带来众多的好处。 防火墙通过过滤天生不安全的服务来降低子网上主系统所冒的风险可以大 大提高网络安全性,并有助于实施更加复杂化的安全策略。w e b 安全体系架构中 防火墙是至关重要的一个部分,它能强制执行边界处理规则,有效隔离内部网络 和外部网络,保证内部网络安全。如图1 中,防火墙检验进来的s o a p 消息并 只允许来自“被授权”请求者的那些消息穿过防火墙。 图l 在上例中防火墙充当了验证者的角色,决定对象是否能进入防火墙,防火 墙还可以作为身份证书的签发者。防火墙可以提供先进的基于策略的规则,这些 规则可以根据客户端的原始位置或标识,对不同的客户端提供不同的限制( 签发 不同的授权证书) 。当不同的客户端访问相同w e b 服务上的不同功能时,这种技 术很有用。 3 2 1 2s s l r i l s 4 由于i n t e m e t 和i n t r a n e t 体系结构的原因,总有某些人能够读取并替换用户发 第1 0 页 s o a p 安全性模型的设计与实现 出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。因此 n e t s c a p e 公司提出了s s l 协议,旨在达到在开放网络( i n t e m e t ) 上安全保密地传输 信息的目的,这种协议在w e b 上获得了广泛的应用。之后i e t f ( w w w i e t f o r g ) 对s s l 作了标准化,即r f c 2 2 4 6 ,并将其称为t l s ( t r a n s p o r tl a y e rs e c u r i t y ) , 从技术上讲,t l s l 0 与s s l 3 0 的差别非常微小。 s s l 和实际的t l s ( 传输层安全性) 一起被用于为s o a p 应用程序提供传输 级别的安全性,主要是用于在非托管网络( 例如i n t e m e t ) 上建立安全连接。 s s l t l s 提供了几个安全性功能,包括身份验证、数据完整性和数据机密性。 图2s s l 握手协议 s s l 的核心协议是s s l 握手协议,通过s s l 握手协议发送方和接收方首先进 行了相互验证,并协商了在之后的数据传输过程中的安全参数。在数据传输过程 中,s s l 先对发送方的消息进行加密,然后将其传送到接收方。接收方接收到消 息后,s s l 将对其进行解密并使用m a c ( m e s s a g ea u t h e n t i c a t i o nc o d e ) 来验证 消息是否来自正确的发送者。通过加密数据,可以防止消息在传送过程中被读取。 发送方和接收方可能具有证书,这些证书用作身份验证过程的一部分,在连接加 密的顶层提供身份验证功能。 第n 页 s o a p 安全性模型的设计与实现 虽然s s l 是创建安全通信的一种非常有效的方法,但是在客户端和服务器端 之间验证和传送数据的时候都需要加密解密大量数据,开销相当大,尤其是在有 大负载的情况下,使用s s l 应当考虑其性能成本。 3 2 1 3h t t p 身份验证嘲 多数情况下,w e b 服务器的资源并不是对所有的用户都开放,需要进行访问 控制。最简单的办法就是给每个用户一个用户名和口令,然后由服务器鉴别。目 前w e b 服务器对用户有如下的认证方式。 1 h t t p 基本认证 它可以为w e b 服务器上树状结构文件中指定的分支提供基于口令的保护措 施,也可以将其授权为某i p 地址范围内的用户访问。目前,多数测览器和w e b 服务器都支持h t t p 基本认证方式。认证信息中的用户名和口令经过b a s e 6 4 编码 后放在h t t p 头部中递交给w e b 服务器,但是口令和用户名是以明文的方式传输, 很容易被截获,任何获得用户名和口令的人都可以访问这些受保护的资源。所以 基础认证是一种功能很弱的方式,不适合需要较强认证机制的t c p i p 应用。通 常会结合使用s s l 来提高其安全性。 2 h t t p 摘要认证 针对基础认证的弱点,h t t p 1 1 提出了改进的用户认证和授权方案,称为摘 要认证。与基础认证类似,摘要认证也是校验双方都知道的一个密码,但是密码 的传输不是明文传输,而是加密后传输。w e b 服务器用一个随机当前值询问浏览 器,浏览器给w e b 服务器一个返回值,这个数值是包含用户名、口令、当前状态 以及用户请求资源h a s h 值;服务器收到用户返回的h a s h 值后,就检查该摘要值 的有效性来判定用户的合法性。用户和服务器可以协商所选择的以s h 值的算法, 缺省的为m d 5 。摘要认证的优点在于口令为密文传输,而且在服务器上也是以密 文的方式存储,避免被有访问服务器权限的人窃取。 3 基于证书的认证 为了使用户对服务器进行认证,可以在传输层使用公钥证书。用户端证书也 可以用于服务器对用户的鉴别,不过目前证书认证方式不普及。w e b 服务器使用 站点证书,个人用户使用个人证书的认证系统主要依靠普及的公钥系统基础设 施,不仅包括授权给合法用户,还包括回收和废除授权。实际上这样广泛的公钥 第1 2 页 s o a p 安全性模型的设计与实现 基础设施不存在,目前只有在小范围或专用组织中使用基于证书的认证方式。 目前,在一些b 2 c 的环境下,因为客户身份验证需要有c a 中心签发的证书, 客户端身份验证还不普遍。在这种情况下考虑到客户端的易用性,可以采用s s l 服务器端认证和h t t p 基本身份认证得方法,通过s s l 协议来发送t t t t p 基本身份 验证消息,由于客户发送的身份验证消息受到s s l 协议的加密保护,可以保证其 安全性。 3 2 1 4 传输层安全性存在的问题 保护连接的安全性是w e b 服务安全性中最基本的一种方法,能够提供很高的 安全性,但是仅采用这种方法也有不少缺陷。 1 s o a p 不仅能工作在h t t p 协议上,也能够工作在s m t p 和f t p 等协议上。这样 就有可能存在这么一个场景,安全信息需要经过两个运输层协议,比如在前 一阶段经过h t t p 协议传输,在下一个阶段通过s m t p 协议传输,两者之间的 转换是烦琐的,并容易出错。 2 使用s s l 协议可以很好的对发方和接收方进行身份验证,但是s s l 协议采用 m a c 来对发送方进行消息身份验证,由于发送方和接收方都拥有计算m a c 的密钥,所以无法保证恶意接收者未修改数据,也就无法满足不可否认性的 要求。 3 保护连接安全性最主要的缺陷在于它只提供了点到点之间的安全性,在各个 节点上信息都是可读取的,并且可能驻留在该节点。对于在一个业务流程中 需要有多个参与者,而x m l 文档需要经过这些参与者的情况,单单保护连 接的安全性是达不到安全要求的。 下面的例子说明了这个问题( 见图3 ) ,如果客户( c u s t o m ) 想向书店( b o o k s t o r e ) 购买一本书,并通过书店向银行( b a n k ) 转发付款请求,在这个过程中, 如果单单保护连接安全性,在书店转发客户的付款请求时,客户的帐号信息( 信 用卡帐号和密码) 就会泄露给书店,而且无法保证安全要求的不可否认性。显然 这个并不是我们所想要的结果。 第1 3 页 s o a p 安全性模型的设计与实现 3 2 2x m l 安全技术 图3 的帐号信息 3 2 2 1x m l 数字签名( x m l d i g i t a ls i g n a t u r e ) 嘲 x m l 数字签名可以应用于任意的数字对象。在签名过程中,数字对象被进行 摘要,其结果连同一些其他信息存放在一个元素中,随后这个元素被用密码学的 方法进行签名。沮,数字签名可以通过如下的s i g n a t u r e 元素来表示。 在这里“? ”表示出现0 次或者1 次,“+ ”表示出现一次以上,“”表示出 现0 次以上,空元素标志表示该元素必须为空。 l 2 3 ( c a n o n i c a l i z a t i o n m e t h o d ) 4 ( s i g n a t u r e m e t h o d l 5 ( 6 ( t r a n s f o r m s ) ? 7 ( d i g e s t m e t h o d ) 8 ( d i g e s t v a l u e ) 9 ) + 10 i1 ( s i g n a t u r e v a l u e ) 1 2 ( k e y l n f o ) ? 13 ( o b j e c t ) + 14 第1 4 页 s o a p 安全性模型的设计与实现 2 s i g n l n f o 元素是实际上被签名的数字信息。s i g n e d l n f o 的核心验证由两个部 分组成:验证对s i g n l n f o 的签名和验证s i g h e d l n f o 中每个r e f e r e n c e 的摘要。用 于计算s i g n a t u r e v a l u e 的算法同样也包括在s i g h e d l n f o 元素中,而s i g n a t u r e v a l u e 元素在s i g n e d i n f o 元素之外部。 3 c a n o n i c a l i z a t i o r k m e t h o d 元1 素表示在进行摘要之前用于对s i g n e d l n f o 素进行 规范化的算法。规范化用于处理可能存在在同一个数据元素中的不同数据流,例 如可能有两种不同的方式用于表示文本。规范化用于将不同的原始数据翻译为同 一种形式( 范式) ,两个文档具有同一范式,则认为两个文档在给定应用程序上 下文中是逻辑相等的。 4 s i g n a t u r e m e t h o d 用于将规范化后的s i g n e d l n f o 进行签名成为s i g n a t u r e v a l u e 的算法。它由报文摘要算法、密钥相关的算法和一些其他算法组成。计算签名的 算法名称同样也被签名,这样如果签名算法被篡改,也将导致验证的失败,这是 为了防止攻击者将算法被替换更弱的算法来进行攻击。为了提高可交互性,w 3 c 工作组指定了一系列必须实现的签名算法,而使用何种算法可由签名者来决定。 s i g n a t u r e m e t h o d 还允许用户自定义算法。 5 每个r e f e r e n c e 元素包含报文摘要算法和在指定数据对象上应用该算法的得 到的摘要。它同时还可包含用于产生进行摘要的输入数据。对一个数据对象签名 就是计算它的摘要,然后对它的摘要进行签名。在之后的验证过程中,只要验证 数字签名,并根据r e f e r e n c e 重新计算数据对象的摘要,检查该数据对象是否被 篡改。 r e f e r e n c e 中可选的u r i 属性指明被签名的数据对象,当在签名中只有一个 r e f e r e n c e 的情况下这个属性可以缺省,加上这个限制是为了保证所有的 r e f e r e n c e 和数据对象可以被唯一的对应。一个空的u r i 表示包含这个s i g n a t u r e 元素的整个x m l 文档将被签名。 6 t r a n s f o r m s 是可选的一组处理过程,应用于数据对象来获得其摘要内容。这 些操作可以是规范化( c a n o n i c a l i z a t i o n ) ,编解码( 包括压缩和解压) 、x s l t 和 x p a t h 。x p a t h 操作允许签名者忽略原始x m l 文档中的一部分,因此这些忽略的 部分可以进行修改而不影响签名的有效性,如果一个煳l 文档包含对自身的签 名,这个方法就相当有用。如果t r a n s f o r m s 元素没有出现,数据对象的内容就 第1 5 页 s o a p 安全性模型的设计与实现 直接进行摘要。 7 d i g e s t m e t h o d 是应用于经过变换操作的数据( 摘要内容) 以获得摘要 ( d i g e s t v a l u e ) 的算法。对摘要的签名将数据对象内容和签名者的私钥绑定在一 起。 1 2 k e y l n f o 元素指明用于验证签名的公钥,可以通过证书,公钥名或密钥交 换算法指定。因为签名者的公钥信息可以通过上下文获得,所以k e y l n f o 是可选 的。由于k e y l n f o 在s j g n e d i n f o 外部,当签名者需要将公钥信息和签名捆绑时, 可以简单的将k e y l n f o 元素加为签名的一部分。 3 2 2 2x m l 加密( x m l e n c r y p t i o n ) 7 1 x m l 加密可以对任意的数据进行加密,包括x m l 文档,x m l 元素和x m l 元素内容。数据加密的结果存放在e n c r y p t e d d a t a 元素中,e n c r y p t e d d a t a 元素在 子元素中包含或者通过u r i 指定了加密数据。 当加密一个x m l 元素或者元素内容时,e n c r y p t e d d a t a 元素将在完成加密后 的x m l 文档中取代相应的元素或元素内容。当加密整个x m l 文档时, e n e r y p t e d d a t a 将成为新的x m l 文档的根元素。e y e r y p t e d 元素可以通过如下的 结构表示: 在这里“? ”表示出现0 次或者1 次,“+ ”表示出现一次以上,“ 表示出现 0 次以上,空元素标志表示该元素必须为空。 1 2 ? 3 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? l0 l1 ? 第1 6 页 s o a p 安全性模型的设计与实现 一 1 2 ? 1 3 1 4 ? 15 1 e n c r y p t e d d a t a e l e m e m 是煳l 加密中的核心元素。它不仅含有加密的数据, 而且还可以用来替代被加密的元素,有时甚至是x m l 文档的根元素。 2 e n c r y p t i o n m e t h o d 为可选的元素,它描述了应用于被加密数据的加密算法。 只有在接收方知道加密算法的情况下,这个元素才能缺省,否则解密将失败。 e n c r y p t i o n m e t h o d 中允许的子元素由它的a i g r i t h e m 属性u r i 来确定,k e y s i z e 子元素总是被允许的。 3 d s :k e y l n f o 提供用来解密c i p h e r d a t a 的密钥,如果密钥能在上下文中决定, 就没有必要在传送的x m l 文档中显式的表示。 4 e n c r y p t e d k e y 元素用于向接收者传送加密密钥。它可以作为一个单独的x m l 文档,或者放在应用文档中,或者在e n c r y p t e d d a t a 中作为d s :k e y i n f o 的子元 素出现。密钥的值总是被加密传送到接受者。当e n c r y p l :e o k e y 被解密后,获得 的密钥可以直接应用到e n c r y p t i o n m e t h o d 指定的算法上。 7 d s :r e t r i e v a l m e t h o d 是d s :k e y l n f o 的子元素,可能出现多次。如果在d s :k e y z 中出现了多个d s :r e t r i e v e m e t h o d 实例,它指向的e n c r y p t e d k e y 必须包含同样的 密钥,可能是用不同的方式加密,或者是发送给不同的接收者。 1 0 c i p h e r d a t a 是一个必须存在的元素。它必须在c i p h e r v a l u e 元素中包含用 b a s e6 4 编码的加密字节序列,或者在c i p h e r r e f e r e n c e 中包含一个指向含有加 密字节序列的外部地址的参照。 1 2 】c i p h e r r e f e r e n e e 元素确定一个过程用来获得加密的字节序列。在获取加密 字节序列时,首先获取c i p h e r r e f e r e n c e 中u r i 属性确定的外部资源,如果 c i p h e r r e f e r e n c e 中还包含可选的t r a n s f o r m s 序列,则应用这些变换来获得想要 的加密数据。例如,加密数据存在于某一x m l 文档中,就可以才有x p a t h 和b a s e 6 4 解码来获得该数据。 l1 4 】在产生加密数据过程中的附加项存放在e x c r y p t i o n g p r o p e r t y 中( 例如时间 第1 7 页 s o a p 安全性模型的设计与实现 戳和序列号等) 。 3 2 2 3s o a p 安全性扩展婀 w e b 服务的框架分为3 个部分:通信协议( s o a p ) 、服务描述( w s d l ) 和 服务发现( u d d i ) 。s o a p 作为w e bs e r v i c e 的通信协议,s o a p ( s i m p l eo b j e c t a c c e s sp r o t o c 0 1 ) 简单对象访问协议是在分散或分布式的环境中交换信息的简单 的协议,是一个基于x m l 的协议。w e b 服务的安全性主要建立在s o a p 安全性 的基础之上。由于传输层的安全性不能完全达到安全性要求,w 3 c 工作组制订 了s o a p 安全性扩展,使用x m l 数字签名和x m l 加密这两项技术来保证s o a p 安全性。 s o a p 消息分为两个部分:s o a p 消息头部和消息体。消息头部通常存放同 s o a p 请求相关的原数据,而消息体包含着消息的基本内容。考虑到安全性,数 字签名和解密信息都是相关的原数据,应该存放在s o a p 消息头部中。被加密 的数据通常存放在消息体中,但是也有例外,通信双方之间的会话密钥仍然应存 放到消息头部中。 ? ? x e n c :e n e r y p t e d d a t ax m l n s :x e n c = ”h t t p :w w w w 3 o r g 2 0 0 0 1 0 x m l e n c ” 9 第1 8 页 s o a p 安全性模型的设计与买现 为了达到这个要求,w 3 c 工作组定义了新的头部入口,称为s e c t a g 。所有 s e c t a g 都定义在命名空间“h t t p :s c h e m a s x r n l s o a p o r g s o a p s e c u r i t y ”上,前缀为 s o a p s e c ,在s e c t a g 上定义了 s i 萨蛐和 来向s o a p 消息提供 有关的安全性数据。 3 2 2 4x m l 安全性的缺陷 基于x m l 安全性的缺陷在于x m l 数字签名不能保证发送方的身份和签名 文档的发送次数,同时使用x m l 安全性无法对发送方身份进行验证。这样就容 易受到恶意第三方采用诸如再现攻击和生曰攻击等技术的袭击,由于存在这样的 攻击方式,消息的不可否认性就无法得到满足。因为发送方可以声称受到了再现 攻击,从而抵赖他以前法送过的消息。 3 3s o a p 安全性模型 3 3 1s o a p 安全性模型 通过对s o a p 安全性要求和传输层安全性及x m l 安全性的分析,可以看出 传输层安全性和x m l 安全性分别满足了不同的安全性要求( 表1 ) ,但是单独使 用又无法完全满足s o a p 的安全性要求。于是可以根据他们的不同特点将其结 合起来,建立s o a p 安全性模型,充分利用传输层安全性和x m l 安全性所提供 的功能,互相合作,来满足s o a p 安全性的要求。 安全性要求 s s lx m l 加密l 数字签名防火墙 端对端的机密 机密性点对点的机密性 性 发送,接收方身份验 身份验证 证 使用m a c 的消息使用m a c 和数字签名的 数据完整性 身份验证身份验证 授权授权 不可否认性 表1对传输层安全性和x m l 安全性的分析 s o a p 安全性模型主要是结合了传输层安全性和x m l 安全性来达到s o a p 的安全性要求,如图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论