(计算机应用技术专业论文)web+services+soap消息安全研究.pdf_第1页
(计算机应用技术专业论文)web+services+soap消息安全研究.pdf_第2页
(计算机应用技术专业论文)web+services+soap消息安全研究.pdf_第3页
(计算机应用技术专业论文)web+services+soap消息安全研究.pdf_第4页
(计算机应用技术专业论文)web+services+soap消息安全研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机应用技术专业论文)web+services+soap消息安全研究.pdf.pdf 免费下载

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

文档简介

摘要 w e bs e r vjc e ss o a p 消息安全研究 摘要 本文研究的是w e bs e v i c e s 的s o a p 消息安全。首先介绍了w e b s e v i c e s 相关概念及s o a p 协议在整个w e bs e r i v c e s 结构里的重要作用。 然后分析了w e bs e r v i c e s 消息所面临的日益突出的问题及其安全性要 求。接着重点介绍了w e bs e r v i c e s 相关的安全技术及深入分析如何基于 w s s e c u r i t y 规范扩充s o a p 消息的安全性。 在这些技术的基础上,设计了一个基于w s s e c u r i t y 规范的s o a p 消息安全框架,并使用a x i s 2 和r a m p a r t 结合传输层安全技术s s l 对框 架做了一个参考实现,该框架可以实现w e bs e v i c e s 通信中s o a p 消息 的机密性、完整性、不可抵赖性,以及用户的认证和授权,保证s o a p 的消息级及传输层安全。 此s o a p 安全框架拥有良好的扩充性和互通性,可很好地和其他安 全技术集成,可以将其作为w e bs e r v i c e s 应用部署的基础框架。 关键词:w e bs e r v i c e s ,简单对象访问协议, w s s e c u d t y 规范, r a m p a r t ,a x i s 2 a b s t r a c t s e c u r i t ys t u d yo fw e bs e r i v c e ss o a p a b s t r a c t i nt h i sp a p e rw es t u d yt h es e c u r i t yo fw e bs e r v i c e s f i r s t l y ,w e i n t r o d u c et h ec o n c e p ta n dp r i n c i p l eo fw e bs e r v i c e sa n ds o a pp r o t o c o l 。 s o a p p l a y sa l li m p o r t a n tr o l ei nt h ew e bs e r v i c e sa r c h i t e c t u r e ,h o w e v e r , i t a l s of a c e sm a n ys e r i o u ss e c u r i t yp r o b l e m s t h e nw ea n a l y z es o m ei m p o r t a n t t e c h n o l o g i e s o fw e bs e r v i c e sa n dh o wt ou s et h e s et e c h n o l o g i e st o s a f e g u a r dt h es o a pm e s s a g e s s e c o n d l y , b a s e do nt h e s et e c h n o l o g i e s ,e s p e c i a l l yt h ew s s e c u r i t y , w e d e s i g nas o a pm e s s a g e ss e c u r i t yf r a m e w o r k t h e nw ea n di m p l e m e n t t h ef r a m e w o r kw i t ha x i s 2a n dr a m p a r t ,m o r e o v e r , w eu s et h es s lt oe n s u r e t h et r a n s p o r tl a y e rs e c u r i t yo fs o a p t h i sf r a m e w o r kc a i lb eu s e dt o a c h i e v et h e s o a p s e c u r i t yo b j e c t i v e s l i k e c o n f i d e n t i a l i t y , 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 n ,a u t h o r i z a t i o na n ds oo n ,e n s u r i n gt h es o a p m e s s a g e sb o t ho nt h em e s s a g el e v e la n dt r a n s p o r tl a y e r w i t hg o o ds c a l a b i l i t ya n di n t e r o p e r a b i l i t y , t h i sf r a m e w o r kc a ni n t e g r a t e m a n yo t h e rt e c h n o l o g i e sa n db eu s e da st h eb a s i so fw e bs e r v i c e ss e c u r i t y k e yw o r d s :w e bs e r v i c e s ,s o a p ,w s s e c u r i t y ,r a m p a r t ,a x i s 2 i i i 北京化工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文 不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意 识到本声明的法律结果由本人承担。 作者签名:悄日期:型:丝 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论文的 规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京化 工大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分 内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。 保密论文注释:本学位论文属于保密范围,在上年解密后适用本 授权书。非保密论文注释:本学位论文不属于保密范围,适用本授权书。 作者签名:篁蠡! 导师签名艘 日期: ! z :兰:= ! : 日期:一 第一章绪论 1 1 课题的研究背景 第一章绪论 随着w e bs e r v i c e s 由技术概念到实践应用的不断发展,种种迹象表明w e b s e r v i c e s 将是未来应用架构的一个极为重要的模式。用w e bs e r v i c e s 来实现分布式系 统的最大好处在于能够在一个分布式的计算环境中动态地描述、发布、发现和调用, 可以轻易实现互操作性,只要把商务逻辑“暴露”出来,成为w e b h 艮务就可以让任何 指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用何种 开发语言。这种独特的优势可以大大减少花在异构系统集成上的时间和成本,便于企 业即时寻找商业合作伙伴,为客户提供新的服务,并将各种应用集成形成新的解决方 案,以快速适应业务变化并减少所需的开销,从而更好地在企业内部或不同的企业之 间实现分布式的应用。因此,基于w e bs e r v i c e s 的应用架构己经成为企业信息集成和 应用整合的首选方案【l 】。 然而,如此复杂的环境下也催生了众多新的安全问题,传统的安全解决方案难以 满足其安全需求。而w e bs e r v i c e s 的消息安全要求保证通信中的数据安全,抵抗窃听、 篡改、假冒、重放、业务否认等安全攻击,确保数据的机密性、完整性、可用性、消 息源认证性和不可抵赖性【2 】。w e bs e r v i c e s 是利用x m l 来传递消息的,而x m l 消息传递的 行业标准协议是s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) ,服务的调用者通过在如h t t p 等传输协议上绑定s o a p 消息来请求服务。而s o a p 在制定时并没有过多考虑安全性要 求,未指定任何安全性机制,当w e bs e r v i c e s 日益成为主流时,安全问题便成为厄待 解决的关键问题。因此,研究w e bs e r v i c e s 的消息安全意义重大【2 捌。 1 2 课题主要研究内容 本文将研究w e bs e r v i c e s 的架构及其安全问题,集中关注安全问题比较突出的w e b s e r v i c e ss o a p 消息安全: 1 深入探讨w e bs e r v i c e s 的消息处理机制,及其相关安全规范、技术,如x m l 、s o a p 、 w s s e c u r i t y 等。 2 对基于x l d l 的安全标准技术及s o a p 消息结构进行了深入研究,总结了如何将基于 w s s e c u r i t y 规范的安全标记应用到s o a p 消息安全扩展中。 3 利用各标准组织开发的规范、技术设计一个基于w s - s e c u r i t y 规范的s o a p 消息安全 框架,用于实现消息安全的五个要求:机密性,完整性,身份验证,授权,不可 抵赖性,可用作w 曲s e r v i c e s 应用部署的基础安全框架。 4 最后以a p a c h e 开发的最流行的s o a p 引擎a x i s 2 为例,利用a x i s 2 的安全模块r a m p a r t 北京化工大学硕上学位论文 开发服务端和客户端的安全代码,并结合传输层安全技术s s l ,为w e bs e r v i c e s 应 用添加一个w s - s e c u r i t y 安全层,通过对s o a p 消息的安全处理,实现w e bs e r v i c e s 的消息安全。 1 3 论文结构 本论文首先在分析w e bs e r v i c e s 体系结构及其安全现状,着重分析其s o a p 消 息安全问题。接着详细介绍及分析w e bs e r v i c e s 的相关安全规范及技术,如s o a p 消息结构,w s - s e c u r i t y 规范,x m l 加密,x m l 解密等。然后将设计一个基于 w s s e c u r i t y 规范的s o a p 消息安全框架,并基于a x i s 2 和r a m p a r t ,结合s s l 实现 安全框架。最后,对课题研究做了总结并对进一步工作进行展望。 2 第二章w e bs e r v i c e s 简介与消息安全问题分析 第二章w e bs e r v i c e s 简介与消息安全问题分析 2 1w e bs e r v i c e s 的概念 w e bs e r v i c e s 是为了实现“基于w e b 无缝集成”的目标而提出的新概念,希望 通过w e bs e r v i c e s 能够实现异构系统之间可以以“软件一软件对话”的方式相互调 用,打破软件应用之间格格不入的状态。w e bs e r v i c e s 是一种新的w e b 应用程序分 支,它们是自包含、自描述,模块化的应用,可以在网络中被描述、发布、查找以 及通过w e b 调用。通过一个应用程序,它向外界暴露一个能够通过w e b 进行调用的 a p i ,这就是说,能够用编程的方法通过w e b 调用来实现某个功能的应用程序【4 】。 2 2w e bs e r v i c e s 的体系结构 w e bs e r v i c e s 体系结构是一种面向服务的体系架构,是服务提供者、服务注册中 心和服务请求者三种角色之间的交互,交互涉及发布、查找和绑定操作。服务提供者 定义w e bs e r v i c e s 的服务描述并把它发布到服务请求者或服务注册中心,服务请求者 使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供 者进行绑定并调用w e bs e r v i c e s 服务实现与之交互。 w e bs e r v i c e s 发布、定位以及通过w e b 调用所需的一些额外的标准: s o a p :s i m p l eo b j e c ta c c e s sp r o t o c o l即简单对象访问协议。 w s d l :w e bs e r v i c ed e s c r i p t i o nl a n g u a g e ,一个描述性的接口和协议绑定语 j 一 口o u d d i :u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r y ,a n di n t e g r a t i o n ,即通用描述、 发现与集成,一种注册机制,用于查找w e bs e r v i c e s 描述。 图2 1 给出的模型主要包含三方面的内容:角色、操作和组件。w e bs e r v i c e s 体 系结构基于三种角色( 服务提供者、服务注册中心和服务请求者) 之间的交互,而交 互涉及发布、查找和绑定三种操作。这些角色和操作一起作用于w e b h 艮务组件( w e b 服 务软件模块及服务描述) 。发布操作使用w s d l 和u d d i 技术,查找操作使用s o a p 和u d d i 技术,而绑定操作使用s o a p 和w s d l 技术【5 1 。 北京化工大学硕士学位论文 图2 - 1w e bs e r v i c e s 体系结构 f i g 2 - 1w e bs e r v i c e sa r c h i t e c t u r e 服务提供者持有一个提供网络访问功能的服务软件模块( 即w e b 服务的一个实 现) ,为服务软件模块定义服务描述,并且把服务描述发布到服务注册中心。服务请 求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务 提供者进行绑定并调用w e b 服务实现或同它交互。 2 3w e bs e r v i c e s 消息安全问题分析 2 3 1w e bs e r v i c e s 消息的安全性要求 w e bs e r v i c e s 技术是构建在网络上的,将无法避免地遭受到各种安全性考验。应 用程序通过智能的消息交换进行集成,因此总是存在着消息被窃听、丢失或修改的风 险。由于被交换信息的关键性,必须确保底层消息传递体系结构的安全可靠。总的说 来,消息通信存在如下五个重要的安全要求: ( 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 ) 身份验证( a u t h e n t i c a t i o n ) :对信息或数据的发送者的进行标示,保证信 息被经过标示的发送者所传送。因此,要通过公共密钥体系和数字签名来确定发送者 身份。通过身份验证后,再决定对特定实体进行授权。 ( 4 ) 授权( a u t h o r i z a t i o n ) :授权取决于身份验证,保证通过了身份验证的用 4 第二章w e bs e r v i c e s 简介与消息安全问题分析 户具有访问特定资源的权限。它是确定允许用户做什么的过程,可将不同的权限给予 不同类型的用户。对用户进行身份验证后,就可以授权用户根据所分配的权限执行操 作,这样可以防止未经授权访问资源或破坏数据。 ( 5 ) 不可抵赖性( n o n - r e p u d i a t i o n ,也称不可抵赖性) :通过数字签名公钥密 制,在信息的传输过程中为参与实体提供可靠的标识,保证信息的发送者不能抵赖或 否认对信息的发送,当然信息发送前需要对发送者进行安全认证。这是一种确保客户 发送的数据能安全到达服务器的服务,它生成并存储数据传输的证据。接收者需证明 接收到发送者的信息,由于传输证明可以从第三方获得,所以发送者和接收者都不能 否认数据传输。 应用的安全要求提供机密性、完整性、身份认证、授权以及不可抵赖性,这几个 安全服务是相互联系的,缺少其一则存在安全漏洞【5 】。 2 3 2w e bs e r v i c e ss o a p 消息在传输层的安全问题 w e bs e r v i c e s 是利用x m l 来传递消息的,而x m l 消息传递的行业标准协议是 s o a p 。s o a p 是w e bs e v r c i e s 中进行数据传递与通信的桥梁,服务的调用者通过在 如h t r p 等传输协议上绑定s o a p 消息来请求服务。s o a p 的主要设计目标是简单 性和可扩展性,本身并未指定任何安全机制,仅依靠传输层的安全措施已经不能满 足安全需求,原因如下【6 ,7 】 ( 1 ) s s l t l s ( 安全套接字层传输层安全性) 不能保证端到端传输的安全性, s s l t l s 能保证点到点传输的安全性。但是,s o a p 消息在传输过程中可能经过中 介体,如果中介体对传输信息进行任意修改,就破坏了信息完整性【引。 ( 2 ) 即使在传输层中保证了端对端的安全要求,但如果传输的消息是原文,也 极易受到黑客攻击。如果在应用程序中进行安全加密处理,又需要用户对加密算法 有详细的了解,造成用户的额外负担。因此,需要在s o a p 中进行适当的安全扩展, 使应用程序不用考虑过多的加密算法细节,以保证中间件独立性。 ( 3 ) s o a p 消息在传输时可以与不同的应用层协议进行捆绑( 如h t r p 、s m t p ) 。 如果所有的通信连接是安全的,中介体也是值得信赖的,但是安全信息需要经过两 个传输层协议( 如前一段是经过h 1 v r p 协议传输,在下一个阶段可能需要通过s m t p 协议进行传输) ,两者之间的转换是烦琐的、易出错的。因此,应该在s o a p 中加 入扩展信息,以保证传输的独立性【9 】。 ( 4 ) 即使传输层可以保证安全传输,但是不能保证信息驻留时也是安全的。如 果消息保存后继续向前传输,驻留信息的安全十分重要。因此,也可以采用在s o a p 中加入扩展信息,以保证驻留信息的安全性。 可见,单纯依靠传输层技术不能满足s o a p 消息的安全性要求【l o 】。 第三章w e bs e r v i c e ss o a p 安全的关键技术 第三章w e bs e r v i c e ss o a p 安全的关键技术 业界为w e bs e r v i c e s 消息安全制定了一系列的标准和协议来支撑,这里详细地 介绍和分析其中几个重要的标准和技术: 3 1 简单对象访问协议s o a p 3 1 1s o a p 简介 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 ) 即简单对象访问协议。它是w e bs e r v i c e s 交换数据使用的一个开放标准,是一个基于x m l 的在松散或分布式环境中实现信息交 换的简单、轻量级协议。其主要目的是实现不同系统之间的互操作性,克服平台和防 火墙的限制,使通信各方在互联网上实现畅通无阻的信息交流。 将服务访问机制延f * n w e b 上是w e bs e r v i c e s 技术的关键。h t t p 和x m l 都缺乏远 程调用服务资源的能力,因此需要新的访问协议来完成w e b 上服务的远程调用,s o a p 正是这样的一种协议【l 。 s o a p 使用x m l 消息调用远程方法,为在一个松散的、分布的环境中使用x m l 来 对等地交换结构化的和类型化的信息提供了一个简单机制。它定义了服务请求者和服 务提供者之间的消息传输规范,用x m l 来格式化消息,用底层传输协议( 如h 下r p 、 s m t p 等) 来承载消息【1 2 】。 3 1 2s o a p 消息结构 s o a p 消息是基于x m l 的,其核一c , , x m l 元素如下【1 3 】: 图3 1s o a p 消息结构 f i g 3 - 1t h es t r u c t u r eo fs o a pm e s s a g e 7 北京化工大学硕士学位论文 下面简要介绍这些元素: 1 信封( e n v e l o p e ) :e n v e l o p e 是表示该消息的x m l 文档的根元素。该元素可以包 含命名空间申明和额外的属性。如果出现额外属性( 并非是s o a p 规范预定义的 属性) ,则必须使用命名空间修饰。信封内可以包含额外的子元素,这些子元素 如果出现,必须有命名空间修饰并且必须跟在b o d y 元素之后,也就是说 e n v e l o p e 的直接子元素h e a d e r 和b o d y 必须排列在最前面。 2 消息头( h e a d e r ) :可选的并且可扩展的 元素,用于描述元数据 ( m e t a - d a t a ) ,比如安全性、事务处理和会话状态信息。h e a d e r 元素应当被 编码为s o a p 消息的第一直接子元素。h e a d e r 的所有直接子元素都被称为h e a d e r 条目。h e a d e r 条目的编码规则包括:一个h e a d e r 条目由一个完整修饰的元素名 来标识,所谓完整修饰的元素名是由一个命名空间u r i 和局部名来组成。s o a p h e a d e r 元素的所有直接子元素都必须是完整修饰的。不允许任何不带命名空间 修饰的h e a d e r 条目存在。s o a pm u s t u n d e r s t a n d 属性和s o a pa c t o r 属性可以用 于指明如何处理条目和由谁来处理条目。在s o a ph e a d e r 中,s o a ph e a d e r 属性 的设置是为了让s o a p 消息的接收者了解应该如何处理该消息。一个生成s o a p 消 息的s o a p 应用程序应该仅使用s o a ph e a d e r 元素的直接子元素的s o a ph e a d e r 属 性。而对于那些并非作为s o a ph e a d e r 元素的直接子元素出现的s o a ph e a d e r 属 性,s o a p 消息的接受者必须忽略。 3 主体( b o d y ) :b o d y 为该消息的最终接收者所想要得到的那些强制信息提供了 一个容器,必须在s o a p 消息中出现,同时必须是s o a pe n v e l o p e :元;素的一个直 接子元素。如果该消息中包含h e a d e r 元素,贝j j b o d y 元素必须直接跟随h e a d e r 。 若h e a d e r 不出现,则b o d y 将必须作为e n v e l o p e 的第一个直接子元素。b o d y 里可 以包含一系列的b o d y 条目,这些条目都应当是b o d y :元素的直接子元素。b o d y 的所有直接子元素必须有命名空间修饰。s o a p 定义了s o a pf a u l t 元素,它用 来指示调用错误的信息。 4 s o a pf a u l t :s o a pf a u l t 元素是用于在s o a p 消息中传输错误及状态信息。如果 s o a p 消息需要包含s o a pf a u l t 元素的话,它必须作为一个b o d y 条目出现,同时 在b o d y 元素内它必须不出现多于一次( 至多出现一次) 。 下面给出一个s o a p 消息的例子,其e n v e l o p e 包含一个h e a d e r :元素和一个b o d y 元素,h e a d e r 元素有两个h e a d e r 条目,他们的命名空间修饰都是u n i b 2 b ,两个h e a d e r 条目各有一个子元素,i i i j b o d y 元素有一个b o d y 条目,该条目包含两个子元素。例子如 下: 8 第三章w e bs e r v i c e ss o a p 安全的关键技术 7 6 e 4 # 1 2 a - 9 8 j a # v 5 g o 1 2 2 9 0 0 t v s e t 0 0 2 1 2 2 9 o o 3 1 3s o a p 消息框架 s o a p 规范的核心部分就是消息处理框架。s o a p 消息处理框架定义了一整套x m l 元素,用以“封装”任意x m l 消息以便在系统之间传输。主要包括三个内容:( 1 ) s o a p 信封定义了s o a p 消息整体的框架,如消息中的内容、发送者、接收者及这些处理 操作是可选的还是必须的。( 2 ) s o a p 绑定定义了如何在节点间交换s o a p 信封以 及如何与底层传输协议绑定。( 3 ) s o a p 编码规则定义了数据的编码机制,通过 编码机制来定义应用程序中需要使用的数据类型的序列化机制。 这种消息处理框架基于x m l 且具有以下特性l h 】: 1 ) 可扩展: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 的h e a d e r 进行安全扩展。 9 北京化工大学硕士学位论文 2 ) 可通过多种底层网络协议使用:s o a p 可在任何传输协议( 诸如t c p 、h t t p 、 s m t p ) 上使用。然而,为了保持互操作性,需要定义一些标准协议绑定以 便草拟用于每种环境的规则。s o a p 规范提供了一种用于定义任意协议绑定 的灵活框架,并且由于h t t p 的使用极为广泛,它现已为h t t p 提供了一种 显式绑定。下图为一个典型的基于h t t p 的s o a p 请求响应消息的调用模 式及消息结构示例【l5 】: s o a p h t i pr e q u e s t 琶妒。| “8 鼍。埠1 够喝8 繁 m e s s a 事 裼 驴一“”“镄 ! ;: r , 毵 i l 一 j : 荔 1 s o l 一j j pan缓l厂园 i 掣 ; 爹毫 争霉一i ;c l i e n t j : m e s s a 孕 i 一+ 幺 鋈 j 。 蓖 露 :寥i h 1 n pr e q u e s tm e s a e e 参 li 1 。一v 。 要 雾,笺 萝 lj , 遂 耘。 :, 。+ l辱 r , 1 柚i 懈 a 礤l i f 卜 0 , 貔磊:。荔 h n 伊柚n 懈 m 函l a 礤一 貔;j ;如二荔蕴 图3 2 典型绑定h t i y 的s o a p 消息调用模式 f i 9 3 - 2s o a pm e s s a g e sb m d m gh t t p p o s t s t o c l 斑u o t eh t 髓1 1 h o s t :w 矾s to c k q u o te s e r v e r c 0 1 1 c o n te n t - t y p e :te x t x a d :c h a r s e t = 。试f _ 8 。 c o n te n t l e n g t h :n r i n n s o a p a c t i o n :。h t t p :e x a m p l e o e g 2 0 0 i 0 6 q u o t e s 。 m :g e t l a s tt r a d e p r i c e e n v :e n c o d i n g s t y l e = 。h t t p :t l 刚w 3 o r g 2 0 01 1 0 6 t s o a p - e n c o d i n 9 4 x m l n s :m = 。h t t p :e x a m p l e o e g 2 0 0i 0 6 q u o te s ” d i s “ :g e t l a s tt r a d e p r i c e 图3 - 3 绑定h t t p 的s o a p 请求消息示例 f i g 3 - 3s a m p l es o a pm e s s a g ee m b e d d e di na nh t t pr e q u e s t 1 0 第三章w e bs e r v i c e ss o a p 安全的关键技术 。h t t f 1 12 0 0 o k 冀 c o n te n t - t y p e :te x t x 搬l :c h a x s e t = 。u t f 一8 。 : c o n te n t 。l e n g t h :1 2 d n 1 2 ,j 3 4 5 : ! ,i 。e n v :e n v e l o p e 毫 图3 4 绑定h r r p 的s o a p 响应消息示例 f i g 3 - 4s a m p l es o a pm e s s a g ee m b e d d e di na nh t t pr e s p o n s e 3 ) 独立于编程模型:s o a p 可使用任何编程模型,并且不依赖于r p c 。大多数 开发人员立刻将s o a p 与对分布式对象进行的r p c 调用等效起来,但实际 上,基本的s o a p 模型更接近于传统的消息处理系统。s o a p 定义了一种模 型以便处理个别的单向消息。你可以将多条消息组合成一条整体的消息交 换。s o a p 允许使用任何数量的消息交换模式( m e p ) 。 3 2w s s e c u r i t y 规范 3 2 1w s s e c u r i t y 规范简介 w s - - s e c u r i t y ( w e b 服务安全规范,w e bs e r v i c e ss e c u r i t y ) 是由m m 、m i c r o s o f t 等公司联合开发的w e b 服务安全消息规范,为w e b 服务提供了一种保障服务安全 性的语言,是w e b 服务安全层的安全消息的实施标准。 w s s e c u r i t y 规范实际上是对s o a p 协议的扩展,它通过消息完整性、消息机密 性和单独消息认证这3 个方面完成使应用程序或组件能构建安全的s o a p 消息交换 的目标。也就是在w e bs e r v i c e s 环境下,如何利用x m le n c r y p t i o n 和x m ls i g n a t u r e 来对s o a p 消息进行加密和签名,确保消息的机密性和完整性。w s s e c u r i t y 还提供 了将安全令牌和消息关联起来的通用机制【l6 】。 此规范并没有提出新的加密算法或安全模型,它只是提出了一套可以用于构建 一系列安全协议的灵活机制,不刻意去描述显示确定的安全协议。基于规范,可以 根据系统的要求,自由地将各种协议、加密技术、安全模型结合起来,以实现w e b s e r v i c e s 环境下消息的完整性、保密性和消息的认证。需要说明的是,w e bs e r v i c e s 安全问题并不仅仅是一个w s s e c u r i t y 规范就能解决的,例如安全上下文的建立、 北京化工大学硕士学位论文 信任关系的建立等也都有相应的规范w s s c c u r e c o n v e r s a t i o n 、w s t r u s t ,但重要的 是,w s - s e c u r i t y 是这些高层规范的基础。 3 2 2w s s e c u r i t y 安全元素 w s s e c u r i t y 定义的元素都包含在 报头块中,其中提供了向s o a p 消 息头中附加安全相关信息的机制,下面简介 的几个重要子元素: 1 u s e m a m e t o k e n 元素 是用于表示用户名和密码。该元素的应用句法如下: u s e r n a m e t o k e n 发送基本的认证信息,u s e r n a m e 则指定认证方用户名, p a s s w o r d 是可选元素,用于提供密码信息,只有在使用安全的传输时才用该元素。 2 b i n a r y s e c u r i t y t o k e n 元素 定义了二进制编码的安全性令牌。该元素用e n c o d i n g t y p e 属 性指定安全令牌如何被编码,用v a u l e t y p e 属性指定安全性令牌类型。 3 s e c u r i t y t o k e n r e f e r e n c e 元素 此元素用于对安全令牌的引用。因为某些情况下,传送的安全令牌驻留在其他 地方,需要接受的应用程序将它找出来, s e c u r i t y t o k c n r e f c r e n c e 元素就提供了一 种引用安全性令牌的机制。该元素句法如下: 其中,r e f e r e n c e 元素用于标识定位安全性令牌的u r i 位置,而u r i 属性则指定在 何处查找安全性令牌的u r i 。 4 d s :k e y l n f o 和d s :s i g n a t u r e 元素 这两个元素来自x m l 签名规范,它们分别用于携带密钥信息和用于嵌入符合 x m l 签名规范的x m l 数字签名。 5 x e n c :r e f e r e n c el i s t 、x e n e :e n c r y p t e dk e y 和x e n e :e n c r y p t e d d a t a 这几个元素为x m l 加密规范定义的,它们分别用于在s e c u r i t y 报头块中指向 在s o a pe n v e l o p e 中的加密部分、用于携带加密过的密钥以及用于嵌入加密过的数 据。 w s s e c u r i t y 通过上述等元素描述了对s o a p 消息的扩展,提供了将x m l 签名、 1 2 第三章w e bs e r v i c e ss o a p 安全的关键技术 x m l 加密及安全令牌和s o a p 消息联系起来的通用机制,并且基于扩展性考虑, 没有指定安全令牌的类型。因此,尽管w s s e c u r i t y 本身并不保证安全,也不提供 一个完整的安全方案,但它通过与其它x m l 协议的协作而提供了消息层的完整性、 机密性、用户验证等安全性机制。 3 2 3w s s e c u r i t y 应用示例 以上是一个典型的使用w s s e c u r i t y 协议来保证s o a p 消息安全的例子。从 中可以看出w s s e c u r i t y 协议主要对s o a p 消息的h e a d 部分做了扩展加入了 1 3 北京化工大学硕士学位论文 w s s e :s e c u r i t y 元素。其中针对安全的三个方面a u t h e n t i c a t i o n ,i n t e g r i t y , c o n f i d e n t i a l i t y 分别定义了s e c u r i t yt o k e n ,x m ls i g n a t u r e 以及x m le n c r y p t i o nr e f e r e n c el i s t 三个 子元素。而在s o a p 包中的需要加密的业务内容( 通常会加密整个s o a pb o d y ) 被经过 x m l e n c r y p t i o n 处理过的元素( e n c r y p t e d d a t a ) 所替代。 3 3x m l 签名 3 3 1x m l s i g n a t u r e 简介 煳ls i g n a t u r e 规范是将数字签名和x m l 组合而成的产物。x m l 签名技术以其非常 简单的形式,提供了将数字s i g n a t u r e 应用到) ( m l 文档及其他互联网资源的机制,并同 时解决了将签名编码为x m l 的问题。在数字签名中使用x m l 的目的在于提供完整的消息 身份验证、签名人身份验证以及任何类型数据的不可抵赖性,无论该数据是处于包含 数字签名的x m l 文档之中还是处于其它位置【1 7 1 。 x m ls i g n a t u r e 包括以下的功能: 1 x m ls i g n a t u r e 可以对任何能够以u r i 形式( u n i f o r mr e s o u r c ei d e n t i f i e r ) 定位的资源做签名。既包括与签名同在一个x m l 文件中的元素,也包括其他x m l 文 件中的元素,甚至可以是非x m l 形式的资源( 比如一个图形文件) ,只要能被u r i 定 位到的资源都可以应用x m ls i g n a t u r e 这也代表了x m l 签名的对象可以是动态的 变化。 2 x m ls i g n a t u r e 可以对x m l 文件中的任一元素做签名,也可以对整个文件做 签名。 3 x m ls i g n a t u r e 既可以用非对称密钥做签名( d i g i t a ls i g n a t u r e ) ,也可以 用对称密钥做签名( h m a c ) 。 3 3 2x m l s i g n a t u r e 结构 x m l s i g n a t u r e 的结构如下所示: ( ( t r a n s f o r m s ) ? 1 4 第三章w e bs e r v i c e ss o a p 安全的关键技术 ( d i g e s t m e t h o d ) ( d i g e s t v a l u e ) ) + ( k e y i n f o ) ? ( o b j e c t ) 木 ( x ) ? 代表x 出现o 1 次( x ) + 代表x 出现l - n 次( x ) 木代表x 出现o - n 次 下面对s i g n a t u r e 中出现的主要元素做简要介绍【1 8 】: s i g n e d i n f o 表示最终要被签名的对象,签名主要包括两个过程,先对要签名的对 象做摘要,然后加密摘要( d s a 不是加密摘要而是将摘要和密钥混合,效果类似) 。 x m ls i g n a t u r e 签名的对象并不仅仅是你引用的对象,而是包含了一些其他元素,比 如c a n o n i c a l i z a t i o n m e t h o d ,s i g n a t u r e m e t h o d 元素,它是对整个s i g n e d i n f o 元素做 的签名。 c a n o n i c a l i z a t i o n m e t h o d 代表了将x m l 元素标准化的方法,在x m l 的签名中与通常 的签名有一个不同的地方在于x m l 元素的特殊性,比如同样一份x m l 文件在w i n d o w s 下 的表示方法和l i n u x 下就会有所不同,因为同样一个换行符号在不同的操作系统代表 的字符是不同的,但你不可能因为这个就认为这份x m l 文件被修改了;一个x m l 元素的 两个属性的位置调换了,也不代表这份x m l 文件的完整性被破坏,所以在x m l 元素被签 名前需要做一个标准化的处理。该元素就是指定其处理方法。 s i g n a t u r e m e t h o d 指定了用于签名的方法,其中包括了摘要所用的方法以及是使 用非对称密钥还是对称密钥加密( 或混合) 。 r e f e r e n c e 表示真正想要签名的对象,通过u r i 定位到要签名的对象( 一个x m l 元素 或其他) ,如果没有指定u r i 就表示要签名的整个x m l 文件。 d i g e s t m e t h o d 指定了对引用对象做摘要的方法,如s h a l 。 d i g e s t v a l u e 里面存放做完摘要后的结果,这样当后面对做s i g n e d i 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 元素标准化( c a n o n i c a l i z a t i o n m e t 后签名( s i g n a

温馨提示

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

评论

0/150

提交评论