




已阅读5页,还剩62页未读, 继续免费阅读
(计算机软件与理论专业论文)xml+web+services的安全性研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着互联网和电子商务的迅速发展,w e b 已经成为成熟的网络平台。在w e b 平台上提供的信息服务也多不胜数。w e b 平台因其开放性和跨平台等特性受到普 遍欢迎。然而现时为止,在w e b 平台上提供的信息服务大部份其最终消费者都是 用户( 人) 。用户向w e b 服务器发出请求,然后收到w e b 服务器的响应,由标准 浏览器根据返回的h t m l 进行结果的描述,最终使用户感知。在这种情况下,w e b 服务器返回的结果不利于机器的处理。w e bs e r v i c e s 的出现利用了w e b 这个开 放平台,使服务器返回便于机器或程序处理的结果。在w e bs e r v i c e s 环境中, 请求消息和响应消息都是基于x m l 的。因x m l 自身的特性,便于机器处理,从而 使传统的w e b 服务器实现了对机器或程序提供服务的能力。 同时x m l 的开放性又使得在网络上传输x m l 消息要承担安全风险。因此w e b s 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 bs e r v i c e s 环境安全性的问题。 首先概要介绍了x m l 的安全性规范( 或草案) ,例如x m l 加密和x m l 签名,认识 了它们的安全框架、语法和进行操作的规则。x m l 安全性规范是普适的,可以应 用于x m l 的各种情景中。为了更好地满足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 规范,此规范为w e bs e r v i c e s 中的s o a p 消息添加了安全性扩展,提供了表示安全性令牌的方法。接着对用于 网络应用中传递安全信息( 认证与授权) 的安全声明标记语言s a m l 进行了分析, 利用其安全声明实现多个w e bs e r v i c e s 的联合认证。在文章的最后,利用在w e b s e r v i c e s 环境下开发的一个简单服务,说明了如何利用现有的各种安全技术、 密码操作、安全规范以及x m l 解析工具来保证w e bs e r v i c e s 通信的安全性,使 w e bs e r v i c e s 通信满足数据机密性、数据完整性、身份认证以及不可否认性等 的安全要求。 关键字:x m l ;w e bs e r v i c e s :安全性 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fi n t e r n e ta n de c o m m e r c e ,w e bh a db e e na m a t u r en e tp l a t f o r m t h en u m b e ro fi n f o r m a t i o ns e r v i c e sp r o v i d e db a s e do nw e b p l a t f o r m h a db e e n v e r yl a r g e w e bp l a t f o r mi su b i q u i t o u s l yp o p u l a r b e c a u s ei ti so p e n s t a n d a r da n di si n d e p e n d e n to fa p p l i c a t i o np l a t f o r m h o w e v e r , t h ee n dc o n s u m e ro f a l m o s ta l li n f o r m a t i o ns e r v i c e sp r o v i d e do nw e b p l a t f o r m i sh u m a n b e i n g t h ep e r s o n p o s t si t sr e q u e s tt o t h ew e bs e r v e r ,a n dt h e nr e c e i v e st h er e s p o n s ef r o mt h ew e b s e r v e r t h es t a n d a r db r o w s e ru s e st h er e s p o n s eo fh t m lt od e s c r i b et h er e s u l t ,s o p e o p l ec a l lf e e li t a tt h ee n d i nt h i ss c e n eo f c o m m u n i c a t i o n ,t h er e s u l tr e t u r n e df r o m w e bs e r v e ri su n f r i e n d l yf o rt h ec o m p u t e rt op r o c e s s t h ee m e r g e n c eo f w e bs e r v i c e s h a st a k e nt h ea d v a n t a g eo fw 曲a st h eo p e np l a t f o r m a n dt h er e s u l tr e a m e df r o m w e bs e r v i c e s i sc o n v e n i e n tf o rt h e c o m p u t e r o r p r o g r a m t o p r o c e s s i n t h e e n v i r o n m e n to f w e b s e r v i c e s ,t h er e q u e s tm e s s a g ea n dr e s p o n s em e s s a g e a r ea l lb a s e d o nx m l b e c a u s eo fi t sc h a r a c t e r i s t i co fx m l ,t h em a s s a g ei ss u i t a b l ef o rt h e c o m p u t e rp r o c e s s i n g t h et r a d i t i o n a lw e b s e r v e rt h e nh a st h ec a p a b i l i t yo f p r o v i d i n g s e r v i c e sf o rt h ec o m p u t e ra n d p r o g r a m a tt h es a l n et i m e ,t r a n s p o r t a t i o no fx m l m e s s a g e si nt h eo p e nn e t w o r k sw i l l f a c et h es e c u r i t yp r o b l e mb e c a u s ex m li sa no p e ns t a n d a r d s os e c u r i t yo fw e b s e r v i c e sh a sb e c o m eav e r yi m p o r t a n ti s s u ea b o u tt h ed e v e l o p i n go fw e bs e r v i c e s p r o v i d i n gs e c u r es e r v i c e sa n di n s u r i n g t h ei n t e r o p e r a b i l i t yi sa ne s s e n t i a la i mf o rw e b s e r v i c e ss e c u r i t y t h i st h e s i s i sb a s e do na b o v ea i mt o a n a l y z e a n d i m p l e m e n t as e c u r e e n v i r o n m e n tf o rw e bs e r v i c e sa p p l i c a t i o n a tf i r s t t h et h e s i sg i v e sab r i e f i n t r o d u c t i o n a b o u tt h es e c u r i t ys p e c i f i c a t i o n so rd r a f t so fx m ll a n g u a g e ,f o re x a m p l e ,x m l e n c r y p t i o ns p e c i f i c a t i o na n dx m l s i g n a t u r es p e c i f i c a t i o na n da n a l y z e s t h e i rs e c u r i t y f r a m e w o r k s ,s y n t a x e sa n dp r o c e s s i n gr u l e s t h e s ex m l s e c u r i t ys p e c i f i c a t i o n sa r e s u i t a b l ef o ra l lx m l a p p l i c a t i o ns c e n e s i no r d e rt o f u l f i l lt h er e q u i r e m e n to fw e b s e r v i c e sb i t t e r l y ,t h et h e s i sa l s oi n t r o d u c et h ew s s e c u r i t ys p e c i f i c a t i o nw h i c hw a s d e s i g n e df o rw e bs e r v i c e s t h i ss p e c i f i c a t i o ne x t e n d st h e s o a pm e s s a g e si nw e b t t s e r v i c e sf o ra d d i n gs e c u r i t yi n f o r m a t i o na n da l s op r o v i d e st h em e t h o dt op r e s e n tt h e s e c u r i t yt o k e n s t h et h e s i sa l s oa n a l y z e st h es e c u r i t ya s s e r t i o nm a r k u pl a n g u a g e ( s a m e ) w h i c h i su s e df o rt r a n s f e m n gs e c u r i t yi n f o r m a t i o n si nn e t w o r k sa p p l i c a t i o n s u c ha sa 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 n di m p l e m e n t st h ef e d e r a la u t h e n t i c a t i o n a m o n gs e v e r a lw e bs e r v i c e su s i n gs a m la s s e r t i o n a tt h ee n do ft h i st h e s i s ,t h e a u t h o rd e v e l o p sas i m p l ew e bs e r v i c e si n s t a n c ef o re x p l a i n i n ga l lt h et h e o r i e sa b o u t s e c u r ew e bs e r v i c e s b yu t i l i z i n gt h e e x i s t i n gs e c u r i t yt e c h n o l o g i e s ,c r y p t o g r a p h y o p e r a t i o n s ,s e c u r i t ys p e c i f i c a t i o n sa n dx m lp a r s e r ,t h i sw e bs e r v i c e se x a m p l ec a n e n s u r es e c u r ec o m m u n i c a t i o na n df u l f i l lt h e r e q u i r e m e n t o fd a t a i n t e g i t y ,d a t a c o n f i d e n t i a l i t y ,a u t h e n t i c a t i o na n dn o n - r e p u d i a t i o n i ns e c u r ew e bs e r v i c e s k e y w o r d s :x m l ;w e bs e r v i c e s ;s e c u r i t y 第一章绪论 第一章绪论 1 1x m lw e bs e r v ic e s 概述 w e bs e r v i c e s 是建立可互操作的( i n t e r o p e r a b l e ) 分布式应用程序的新平 台。这种新发展起来的平台是近期电子商务应用、在线服务和应用集成研究领域 的一个热点。互操作性是指在分布式应用环境下,各应用实体之间实现的跨平台、 跨语言的通讯以及信息的透明传递。简单地说,w e bs e r v i c e s 就是通过w e b 提 供的服务。在传统的分布性应用中,通讯实体间必须约定特定的协议,采用特定 的数据交换格式,而达到信息交互的目的。在这种通讯环境下,系统只能局限于 约定的环境,很难实现应用间的互操作性或必须花费很大的成本才能实现这种互 操作。过去多年来w e b 的发展为实现分布式应用的互操作性提供了一种很好的方 法。w e b 是基于h t t p 协议和h t m l 语言的。各种平台的用户均可以向w e b 服务器 提出请求,然后收到响应返回给用户。各种平台均支持h t t p 协议,使得各平台 的用户均可以与标准w e b 服务器通讯。正是这种具有跨平台特性的应用,才使得 w e b 的发展如此迅速和广泛“1 。 w e b 应用的发展使各种应用之间共享一个平台,以进行各方的通讯。只要支 持h t t p 的w e b 服务器,不管其基于哪一种平台,都可以对请求作出晌应。只要 支持h t t p 和h t m l 的标准浏览器,不管是哪一个厂家的浏览器,都可以对响应进 行解释,使最终用户能获得并理解响应。然而w e b 服务器对用户返回的结果,不 管是预先存贮的静态的h t m l 页面,还是利用服务器端技术动态生成的h t m l 页面, 其内容都是不利于机器或程序理解的信息。因为h t m l 语言是用来向浏览器描述 如何以人( 非机器或程序) 可以理解的方式进行页面渲染的。其描述的是页面的 布局方式,例如文本的大小和样式,图片的位置和大小等等。这种返回结果是非 结构化的,程序如果要利用返回结果中的有价值的信息或数据,则必须对h t m l 进行解释或抽取。然而由于h t m l 的特点,这种解释或抽取的过程不能达到自动 化。x m l 的出现正好解决了这个问题。 可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ,x m l ) 是标准通用标记语 言( s t a n d a r dg e n e r i cm a r k u pl a n g u a g e ,s g m l ) 的一个子集。它将s g m l 的丰富 广东1 :业大学工学硕士学位论文 功能与h t m l 的易用性结合到w e b 的应用中,以一种开放的、自我描述方式定义 了数据结构。在描述数据内容的同时能突出对结构的描述,从而体现出数据之间 的关系。这样所组织的数据对于应用程序和用户都是友好的、可操作的。x m l 是 以文本形式来描述的一种文件格式。由于x m l 是以文本形式描述的,所以适合于 各种平台环境的数据交换。同样由于使用文本来描述内容,可以越过不同平台的 障碍进行正常的数据交换。1 。 x m l 是结构化的文档,其中包含元素与元素内的属性。各元素之间呈层次关 系,属性是元素要表达的信息的补充。各元素的层次关系就是x m l 文档包含的数 据的内在关系。正因为这种层次关系,x m l 文档可以较容易被解析。可以构造标 准的x m l 解析器获取x m l 文档中所包含的数据和信息。给x m l 附加d t d ( d o c u m e n t t y p ed e f i n i t i o n ) 文档类型定义或x m ls c h e m a ( x m l 模式) 可以使x m l 增添自 描述性和可扩展性。自描述性表现在x m l 文档通常包含一个文档类型声明,不仅 人能读懂x m l 文档,计算机也能处理。x m l 文档被看作是文档的数据库化和数据 的文档化。可扩展性允许开发者创建他们自己的文档类型定义,有效地创建可被 用于多种应用的”可扩展的”标记集。 正是x m l 具有这些特点,使x m lw e bs e r v i c e s 的提出成为可能。当请求者 向w e b 服务器提出请求后,返回的结果将不再是h t m l ,而是根据请求生成的x m l 。 可以把返回x m l 结果的行为看成是w e b 服务器根据用户的要求提供的一种服务。 返回的x m l 即是对请求者有用的数据或信息。可以从x m l 中提取这些数据或信息, 以供程序进一步利用,或者将x m l 通过x s l 转化为其他表现形式的数据,例如 h t m l 或p d f 等。 引入w e bs e r v i c e s 之后,传统的w e b 服务器的消费者不再局限于标准浏览 器,各种程序、终端、对象都可以向w e b 服务器提出请求,收到其所需的结果。 这个过程就像是在远程调用一个由w e b 服务器提供的服务。由此而命名这种新的 分布性应用为w e bs e r v i c e s 。w e b 服务器的消费都不再是普通用户( 人) 或浏览 器,而是任何程序或对象。而由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 bs e r v i c e s ,企 业可以把各种各样的应用加以封装,部署到i n t e r n e t 上,通过i n t e r n e t 下的动 态发现和集成,实现跨平台和操作系统的无缝互操作。 第一章绪论 w e bs e r v i c e s 是自包含的模块化应用程序,它可以通过网络进行描述、发 布、定位和调用。当网络指的是w e b 的时候,意味着w e bs e r v i c e s 把h t t p 作为 传输层和基于x m l 的消息层的传输协议。w e bs e r v i c e s 中的“s e r v i c e s ”指的 是面向服务的体系结构( s e r v i c e o r i e n t e da r c h i t e c t u r e ,s o a ) 。s o a 是分布 式信息处理技术中的一项重要技术。在s o a 中,应用程序可以通过网络调用其他 应用程序的功能。同时,功能发布在网络上,因为网络提供了发现和绑定的能 力8 1 。w e bs e r v i c e s 使用基于x m l 的消息处理作为基本的数据通讯方式,其计 算模式的基础是服务提供者、服务注册中心和服务请求者这三个角色之间的交互 活动,这些交互活动包括三个基本操作:发布、发现和绑定,如图1 - 1 所示: 服务注册中心 服务请求者 ,u d d l 而黔 图卜lw e bs e r v i c e s 环境中的角色及互动 f i g u r el 一1r o l e sa n di n t e r a c t i v i t i e si nw e bs e r v i c e se n v i r o n m e n t w e bs e r v i c e s 使用动态绑定的方式,这说明使用w e bs e r v i c e s 的应用程序 可以动态设计,并在运行时将客户绑定到服务器上。服务提供者使用w s d l ( w e b s e r v i c e sd e s c r i p t i o nl a n g u a g e ) 描述w e bs e r v i c e s 的接口;服务请求者使用 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 ) 来调用w e bs e r v i c e s 对象提供的接口; u d d i ( u n i v e r s a ld e s c r i p ti o n 。d is c o v e r ya n di n t e g r a ti o ns e r v i c e ) 提供了 w e bs e r v i c e s 的发布、发现和集成机制。所有这些消息或协议都用u n i c o d e 进 行编码,最后使用h t t p 协议在网络上传输。从而实现了跨平台通信,消除了使 用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够 广东工业大学工学硕士学位论文 作为单个计算网络协同运行。正如x m l 将改变数据交换的格式,w e bs e r v i c e s 将改变网络计算的模式。 1 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 的安全性规范, 目前尚无普遍认可的标准。服务请求者和服务提供者,或服务提供者之间通信使 用的并不是二进制的协议,而是普通的文本协议。这种以文本形式存在的消息或 协议,在网络上传输时,其安全性比二进制的协议更容易受到威胁。如何保证通 信过程中的数据机密性( d a t a c o n f i d e n t i a l i t y ) 、数据完整性( d a t ai n t e g r i t y ) 、 身份认证( a u t h e n t i c a t i o n ) 以及不可否认性( n o n r e p u d i a t i o n ) ,就成为保 证w e bs e r v i c e s 安全性要解决的主要问题。 1 2 1 数据机密性 数据机密性是指通讯双方之间传输的数据内容不被任何第三方获取。也即 是说,任何第三方如果在网络上截取到通讯双方的信息,也完全不能理解这些信 息,即通讯的内容对其他第三方是完全保密的4 1 。要实现网络通讯的数据机密性, 有两种较为常用的方法。第一种方法是利用专用网络或虚拟专用网络( v p n ) 。1 , 使通讯双方在安全的信道中实现机密性。这种方法实现的成本较高,而且不适用 于w e bs e r v i c e s 这种地域广泛的、多平台的分布式应用。第二种方法是使用数 据加密,在不可信信道中传输经过加密处理的数据。这种方法可以利用现有的网 络,在现有的普通网络中传输敏感的信息。对于w e bs e r v i c e s 环境来说,可以 利用加密的方法在i n t e r n e t 中传输w e bs e r v i c e s 的一系列请求和响应,同时保 证数据的机密性。加密的方法特别适用于这种在开放网络环境中多到多的通讯。 保证数据机密性的加密方法通常是通过对称加密算法实现的。例如d e s ( 数据加 密标准) 和a e s ( 高级加密标准) 等算法,通过这些对称加密算法对x m l 进行加 密处理。 4 第一章绪论 1 2 2 数据完整- 陛 数据完整性是指要传送的信息在不安全信道传输时,发送者和接收者可以 根据需要检测传输的信息有没有被篡改。“”。完整性并不是指为了避免传输的信 息不被篡改,而是指如果信息发生了被篡改的情况,通讯双方可以检测出这一篡 改,从而根据相应策略作出反应。因为在不可信信道中,不可能完全保证信息在 发送地传往目的地的过程中没有被篡改过,所以必须通过检测以判断信息有否被 篡改这一事实。数据完整性通常通过散列算法检测。散列算法是一类不可逆的算 法,其把可变长度的数据作为输入,经过一系列转换之后,输出固定长度的数据, 其中输出结果称为摘要。散列算法是从输入到输出的一种单向映射,从输入数据 得到输出数据之后,并不能重新从输出数据经过转换而得到输入数据,而且不能 得到关于输入数据任何可以利用的信息。当输入数据发生微小的变化时,经过散 列算法得到的输出数据将会产生巨大的变化,即与原来的输出完全不同,不可辨 别。保证数据完整性的散列算法通常包括s h a ( 安全散列算法) 。 1 2 3 身份认证 身份认证是指通讯双方可以根据需要验证对方身份的真实性“1 。在现实世界 的网络中,网络资源并不是无偿提供的,因此需要对访问者的身份作出判别。例 如网络上的数据库服务器、w e b 服务器、目录服务器上提供的资源是根据需要给 不同的用户访问的,不同的用户所能获得的资源种类也不同。服务提供者就必须 制定一套策略来限制非法访问者,同时允许合法访问者的访问。在传统的应用中, 身份认证主要是指对“人”或“操作者”的认证,其通常的方法包括口令( p a s s w o r d ) 认证、发布一次性口令的硬件设备。3 、i p 地址认证、基于公开密钥基础设施( p k i ) 的数字证书认证以及与数字证书相应的智能卡( s m a r tc a r d ) 认证。 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 bs e r v i c e s 必须实现对其消费者( 程序或 机器等) 的认证。在w e bs e r v i c e s 分布式应用中,还存在多级调用的情况,安 全认证信息还要实现传递,从而实现用传统身份认证方法认证之后的安全信息的 广东工业大学工学硕士学位论文 多级传递。s a i l ( 安全声明标记语言) 为达到这个目的而设计的语言,它是一种 为交换安全信息而设计的基于x m l 的框架性语言,提供了一种标准的格式对身份 证明进行x m l 编码,因此具备了跨平台的交互能力。通讯方之间的认证与授权信 息可以通过s a m l 进行传递“1 。 1 2 4 不可否认性 不可否认性是指消息的发送者不能对其发送过特定的消息这一行为进行否 认,即不能声明其没有发送过特定的消息“1 。在网络应用中,实现不可否认性有 许多现实作用。电子商务、电子政务等应用都要求保证不可否认性。电子商务网 站的消费者不能否认其曾经确认过的订单请求,同时网站的服务者也不能否认曾 经确认订单响应。在w e bs e r v i c e s 环境中,要实现不可否认性,通常通过基于 公开密钥基础设旅( p k i ) 的数字证书来实现。也就是通过非对称加密算法来实 现。发送者利用私钥对发送消息的摘要进行加密,这一过程称为数字签名。而在 非对称加密算法中,要想从公钥计算出私钥是不可能的,除非拥有特定信息。因 此除发送者外的任何人不可能利用发送者的私钥进行数字签名。因此只要利用发 送者的公钥对签名验证成功,就可以说明发送者曾经发送过这条消息。在w e b s e r v i c e s 环境中,通常对x m l 消息进行数字签名,以保证x m l 消息发送行为的 不可否认性。 1 3 国内外研究 国外对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 安全性模型的目标是以一种与平台和语言无关的方式进 行安全互操作,支持、集成和统一目前流行技术的安全性模型、机制和技术。安 全性模型主要包括两个层次:端到端( e n d t o - e n d ) 的安全性模型和消息安全性 模型。端到端安全性是指服务请求者和服务提供者之间( g 括若干中介转发点) 的安全性要求。现时流行的安全套接字( s s l ) 技术能保证通信过程中传输层的 点到点安全,要保证端到端安全,还须结合其他技术。消息安全性是指在网络上 传输的消息或使用的协议关联上安全性令牌,从而接收者可以对这些消息进行验 6 第一章绪论 证。安全性令牌是一组由安全性令牌服务用密码的方式签发的相关声明,可以是 符合x 5 0 9 标准的证书或k e r b e r o s 的票据等。这种模型支持安全性令牌服务使 用公开密钥基础设施( p k i ) 来签发安全性令牌,但由于现时的p k i 属于集中式 授权工作方式,要适应w e bs e r v i c e s 这种分布式的平台,还须作相应改进。 1 4 论文安排 总的来说,解决w e bs e r v i c e s 的安全问题有两种思路和方向:一种方向是 继续利用现有普遍使用的用于认证、数据完整性和数据机密性的安全技术,通过 有机结合这些技术,为w e bs e r v i c e s 的安全提供保障。另一种方向则是对w e b s e r v i c e s 所使用的协议进行相应扩展,为这些协议添加安全性内容,为w e b s 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 的安全性问题进行研究,对x m l 加密( x m le n c r y p t i o n ) 、x m l 数字签名( x m ld i g i t a ls i g n a t u r e ) 、s o a p 安 全性扩展、w s s e c u r i t y 以及s a m l 进行分析,根据现实和将来的商业应用环境 以及w e bs e r v i c e s 可能受到的潜在攻击,提出一个适合于w e bs e r v i c e s 这种分 布式应用特点的与平台无关的可互操作的安全性模型,并予以示例实现。 第二章x m l 安全 x m l 日益成为在i n t e r n e t 上交换数据的有价值形式,从而实现互操作性。 因此要保证w e bs e r v i c e s 的安全性,必须先保证x m l 的安全性。在w e bs e r v i c e s 中,服务的请求和响应主要是利用x m l 消息。为了更好适应w e bs e r v i c e s 这种 环境,为x m l 消息制定了一个特有的协议。这种基于x 札的协议称为s o a p ( s i m p l e o b j e c ta c c e s sp r o t o c 0 1 ) 协议。s o a p 是用于数据交换的轻量级的以x m l 为基 础的协议。它促进了由远程过程调用和响应产生的数据传送。它设计成用于分布 式和远程应用程序中,并且它是w e bs e r v i c e s 的主要组件。因为s o a p 是基于 x m l 的,所以用于x m l 安全的规范和方法也能用于s o a p 。 目前,加密整个x m l 文档、测试其完整性和确认其发送方的可靠性是一个 简单的过程。使用公开密钥基础设施和数字证书等技术就可以达到目的”1 。但是, 由于w e bs e r v i c e s 这种新型分布式应用的特点,越来越有必要对文档的某些部 分也使用这些功能,以便以任意顺序加密和认证以及涉及不同用户或发起方。因 为w e bs e r v i c e s 的s o a p 消息可能必须经过多方传输,但在发送方到接收方的整 个过程中要保证端到端的安全性。如果将整条x m l 消息或s o a p 消息进行加密的 话,那么中转方将不能获得对其中转行为有帮助的信息,其必须在中转之前对消 息进行解密,获得下一目的地的信息才能继续发送。在这一过程中,就有可能泄 漏了消息的某些重要信息。因此在w e bs e r v i c e s 环境中,不能对整条消息进行 加密,只能根据需要对某些元素或属性进行加密。1 。另外w e bs e r v i c e s 环境中 的多个通讯方对某一条具体的消息可能有不同的权限,也就是说,不同人对于同 一条消息的不同部分可获得的权限都不同。例如,在电子交易中,销售人员和技 术人员看到的同一条消息可能不同。销售人员看到的是关于交易金额等信息的部 份,其他部分对于销售人员是不可见的。同样,技术人员看到的只是技术实现的 部分。而管理者可能可以看到整条消息的各个部分。这种现实情况要求必须对 x m l 消息或s o a p 消息实现更细粒度的安全性。x m l 加密与x m l 签名正是为了适应 此要求而提出的。s o a p 提供了包含消息及其处理信息的信封。由于这个信封内 容很机密,所以安全性就是必须解决的问题。x m l 加密对此问题提供了无缝的解 第二章x 虬安全 决方案。1 。 2 1 x m l 加密概述 x m l 加密为需要结构化数据安全交换的应用程序提供了一种端到端安全 性。x m l 本身是对数据进行结构化最流行的技术,因此基于x m l 的加密成为处 理数据互换应用程序中安全性的复杂需求的方法“。 x m l 加密使在存储状态和传输状态下的x m l 消息保持机密性,这意味着任何 未授权的一方不能访问处于存储状态和传输状态下的x m l 消息内容。利用传统的 加密方法对整个x m l 文档进行加密与对其他任何文档进行加密没有不同,但却不 符合实际的需求。x m l 加密的出现适应了在电子商务以及其他应用中提出的下列 要求:对x m l 文档的部分内容进行可选择的加密、对x m l 文档的不同部分进行多 重加密以及对x m l 文档的持续性存储。x m l 加密提供了一个标准的机制来以x m l 这种标准格式表示加密后的内容,使标准的、具有x m l 处理工具的应用能处理这 种加密内容,并在跨越机构边界以及多方参与的环境中达到机密性的要求。在 w e bs e r v i c e s 的环境中,要达到这种对机密性的要求,必须使用x m l 加密“。 2 1 1x m l 加密框架和加密语法 x m l 加密的本质是用x m l 封装加密的数据。其基本框架可以表示如下“: e n c r y p t e d d a t ai d ? t y p e ? m i m e t y p e ? e n c o d i n g ? ) ? ? ? ? ? ? ? ? 9 广东工业大学工学硕士学位论文 ? ? x m l 加密的主体为 元素,在以上表示中,“? ”号代表出 现0 次或1 次,“术”号代表出现0 次或多次,空元素标记代表此元素必须为空。 元素包含i d 、t y p e 、m i m e t y p e 、e n c o d i n g 等可选属性。其 中i d 指明x m l 加密的标识符,t y p e 指明x m l 加密的类型( 如p d f 类型) , m i m e t y p e 指明x m l 加密的m i m e ( m u l t i p u r p o s ei n t e r n e tm a i le x t e n s i o n s ) 类 型( 如i m a g e g i f 、i m a g e j p e g 等) ,e n c o d i n g 指明x m l 加密的编码类型( 如 b a s e6 4 编码) 。 元素以下的子元素包含x m l 加密所需的其他信息: 可选子元素,指明加密所使用的方法。通常指 中得到的密文 所使用的加密算法。当没有指定 元素时,即假设加密解密的 双方知道加密算法。 指明加密所用的密钥的信息。其前缀d s :( 名称空间: h t t p :w w w w 3 o r g 2 0 0 0 0 9 x m l d s i g # ) 是从x i l 签名处借用过来的。 一个必须的元素,指明加密后的数据,即密文。其必须包括加密后数据的 b a s e6 4 编码( 用 标记) ,或包括加密后数据的引用( 用 标记) 。 一个可选的元素,指明生成 元素的额外信息,例如时间戳 或加密硬件的序列号。 在x m l 加密中,还可以表示加密后的密钥。这时用 元素表 示。 元素可以单独出现在x m l 文档中,也可以作为 元素的子元素出现。 下面显示了一条简单的经过x m l 加密后的x m l 文档: l o 第二章x m l 安全 b o o k 1 2 3 9 6 8 7 4 5 9 8 1 2 a 2 3 8 4 5 c 5 6 4 5 8 7 v is a 1 2 1 0 2 0 0 4 2 1 2x m l 加密规则 在x m l 加密规则与x 扎解密规则中,整个活动包含三个角色“: 应用程序( a p p l i c a t i o n ) :应用程序提供加密所需要的数据和参数,并提 出x m l 加密执行的请求。 加密器( e n c r y p t o r ) :加密器是用于加密数据的实际执行机构。 解密器( d e c r y p t o r ) :解密器是用于解密数据的实际执行机构。 删l 加密的规则可以表示如下“”“: ( 1 ) 选择加密数据所使用的算法和参数。 广东工业大学工学硕士学位论文 x m l 加密所使用的加密算法包括在电子商务中比较常用的对称密钥算法: t r i p l e d e s 算法和a e s 算法。在x m l 加密中只显式地支持这两种加密算法。 各种加密算法的表示如下: t r i p l e d e s ( 内部支持) 名称空f 司:h t t p :w w w w 3 o r g 2 0 0 i 0 4 x m l e n c # t r i p l e d e s c b c a e s 一1 2 8 ( 内部支持) 名称空间:h t t p :w 唧w 3 o r g 2 0 0 i 0 4 x m l e n c # a e s l 2 8 一c b c a e s 一2 5 6 ( 内部支持) 名称空间:h t t p :w 硼w 3 o r g 2 0 0 i 0 4 x m l e n c # a e s 2 5 6 一c b c a e s 一1 9 2 ( 可选) 名称空间:h t t p :w w w w 3 o r g 2 0 0 i 0 4 x m l e n c # a e s l 9 2 一c b c ( 2 ) 获取和表示加密密钥。 如果密钥被指定,例如通过名称、u r i 或包含于子元素中,则构造 元素以及相应的子元素( , , 等) :如果密钥本身被加密,则根据加密此密钥的过程递 归地构造 元素,然后此 元素可作为 的子元素或单独出现在任何地方,只要根据前述方法能被识别。 ( 3 ) 执行加密。 如果加密的数据是元素或元素的内容,则必须先对其进行串行化,转化为 u t f - 8 编码。串行化的步骤可以由应用程序或加密器完成,只要保证在执行加密 前进行串行化。串行化后,加密器使用( 1 ) 和( 2 ) 中得知的加密算法和加密密 钥对数据进行加密。 ( 4 ) 构造 结构( 或 ) 。 如果密文保存在此x m l 文档的 元素中,则将密文进行b a s e6 4 编码,然后将结果插入 元素中。如果密文保存在此x m l 文档的外 部,则在 元素中插入密文的引用。 ( 5 ) 处理 结构。 如果加密的数据是元素或元素的内容,则加密器必须向应用程序返回 元素,加密器替换原来的元素或元素的内容,以 元素取而代之。如果加密的数据不是元素或元素的内容,则加 第二章x 帆安全 密器总是只返回 元素以供应用程序利用。 2 1 3x m l 解密规则 x m l 解密是x m l 加密的逆过程,x m l 解密的规则可以表示如下“: ( 1 ) 处理x m l 元素以确定加密所使用的算法、参数和使用到的 元素。 如果解密器事先已经和加密器预约了相关的信息,则可以省略此步骤。如 果解密器事先不知道这些信息,则可以在 元素结构中找到这些 信息。 ( 2 ) 根据 元素定位密钥。 例如根据 中的名称从本地密钥存储库中检索该密钥。如果密 钥被加密,即密钥包含在 结构中,则获得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论