《基于SOAP信息通信加密传输机制研究学士学位论文1.doc》由会员分享,可在线阅读,更多相关《基于SOAP信息通信加密传输机制研究学士学位论文1.doc(61页珍藏版)》请在三一办公上搜索。
1、摘 要论文在研究基于SOAP信息通信加密传输机制的基础上,充分研究了XML加密组件、XML签名组件和访问控制组件。论文主要通过把XML加密组件在Python中集成实现,提高了Web服务通信的安全性。本文首先对Web服务及其关键技术SOAP、WSDL、UDDI、XML和WS-Security规范等进行了研究。然后,结合二进制安全令牌对XML签名组件进行了研究,该组件为消息提供了完整性,由于安全令牌传输的数字证书代表了用户的身份,签名组件同时还能提供身份验证和不可否认性。结合WS-Security规范设计实现了XML加密组件,该组件满足了SOAP消息的机密性。此外,为了适应Web服务动态性和开放性
2、的要求,论文结合更加灵活的基于角色的访问控制模型,对基于角色授权的访问控制组件进行了研究,该组件能够为服务提供授权,它通过以角色为中介,实现了用户权限与资源访问的映射,降低了授权管理的复杂度。最后,通过Python软件,结合RSA算法对XML加密传输进行了设计、实现以及测试,最后通过对经过安全处理后的消息进行分析,验证了论文所设计的安全组件的安全性和可行性。关键词:Web服务;XML签名;XML加密;基于角色的访问控制AbstractWith the research of a mechanism for SOAP-based communication encrypted transport
3、,XML Encryption component,XML Signature component and access control component are designed and implemented in this thesis.The security for Web Services communications is improved by integrating and implementing these separate security components by Python. Firstly,These theories are studied,includi
4、ng Web Services,SOAP,WSDL,UDDI,XML and WS-security standard in this thesis.Secondly,XML Signature component is designed and implemented combined with binary security token.The component provide integrity,and also authentication,non-repudiation,because the users identity is included in digital certif
5、ications of security token;Combined with WS-Security standard,XML Encryption component is designed which ensures the confidentiality of the SOAP messages;To meet the dynamic and open nature of Web Services,a role-based access control component is designed and implemented combined with the more flexi
6、ble role-based access control model.The component provides authorization for services and realizeds the mapping of users permission and resources,so the complexity of authorized management is reduced,by making role as intermediaries.Thirdly,Through the Python software, combined with RSA algorithm on
7、 the XML encryption transmission was designed, implemented and tested, and finally through the analysis of the security after processing the message, verify the safety and feasibility of the design of the security component. Keywords:Web Services,XML Signature,XML Encryption,Role-Based Access Contro
8、l 目 录1 绪论1 1.1 研究背景及意义1 1.2 国内外研究现状2 1.3 本文结构42 Web服务及安全传输机制特性分析6 2.1 Web服务概述6 2.1.1 Web服务的概念及特征6 2.1.2 Web服务协议栈8 2.2 SOAP协议分析9 2.3 WS-Security规范11 2.4 XML技术13 2.5 XML签名以及XML加密技术14 2.6 WSDL技术14 2.7 UDDI技术15 2.8 本章小结153 基于SOAP信息传输加密机制分析研究16 3.1 密码学理论16 3.1.1 对称密码体制16 3.1.2 公开密码体制17 3.2 密码学技术18 3.2.1
9、完整性技术18 3.2.2 数字签名技术19 3.2.3 数字证书技术19 3.3 本章小结204 基于SOAP信息通信加密传输机制的详细设计21 4.1 基于SOAP的Web服务的安全性分析21 4.1.1 传统的安全传输机制的不足21 4.1.2 基于SOAP的Web服务的安全需求22 4.2 信息通信加密传输机制的设计22 4.2.1 基于SOAP的Web服务的安全性挑战22 4.2.2 基于SOAP信息通信加密传输机制研究的总体架构23 4.3 通信处理25 4.4 安全机制的分析26 4.5 本章小结275 SOAP信息通信加密组件的设计与实现28 5.1 XML加密组件的设计28
10、5.1.1 XML加密的基本结构28 5.1.2 XML加密组件的设计29 5.1.3 系统实现环境Python的简介31 5.2 加密组件在Python上的实现31 5.2.1 安全机制的验证系统32 5.2.2 相关程序的代码32 5.2.3 基于SOAP的加密传输的测试与结果分析36 5.2.4 使用Wireshark软件进行抓包测试37 5.3 本章小结40结论41致谢43参考文献44附录A 英文原文46附录B 中文翻译531 绪论1.1 研究背景及意义随着Internet的出现和发展,越来越多的企业开始利用互联网来进行商业活动。但是,仅有网络是远远不够的,当今孤立的系统、应用程序和W
11、eb站点随处可见,彼此之间要进行交流面临着很大的困难。如何轻松实现企业不同系统之间的集成和交互,一直业内的一个热点问题。传统EAI(企业应用集成)即利用中间件、应用程序接口和定制代码实现EAI,是一项艰巨的工作,但它的不灵活性和高昂的费用阻碍了它的发展。最近几年来,一种新兴技术Web服务(Web Services)在成为业界、学术界研究的重点,这一技术正在加速推动着Intemet的发展,并逐渐成长为下一代Web应用的基石1。与传统的EAI相比,Web服务具有简单、互操作性好、灵活、动态性好和成本低等优势,它的出现使上述问题可以得到很好的解决。随着Web服务技术的飞速发展,新规范的陆续出现以及原
12、有规范的不断完善,Web服务在电子商务、企业应用集成(EAI)、B2B应用及电子政务等多个领域正发挥着越来越重要的作用。由于上述原因及应用的推动,具有松散藕合、基于国际标准、与平台和语言无关、跨越Internet、使用已有网络通讯协议等特性的Web服务技术应运而生。Web服务的主要目标就是在现有的各种异构平台的基础上构筑一个通用的与平台无关,与语言无关的技术层,各种不同平台之上的应用依靠这个技术层实施彼此的连接和集成。这将无疑极大地促进各种商务系统,企业系统的集成,降低成本,提高效益,从而为动态电子商务等Web服务的应用的发展奠定了坚实的基础。Web服务的主要目标就是在目前现有的各种不同平台的
13、基础上构建一个通用的、与平台无关、语言无关的技术层,各种不同平台上的应用依靠这个技术层来实施彼此间的交互和集成,以便为用户提供各种各样的服务2。但是,随着Web服务技术应用的深入,出现了很多新的挑战与问题,尤其是Web服务的安全问题。Web服务的安全性问题普遍存在着,但是首先要解决的是Web服务的通信安全问题。Web服务使用SOAP作为它的消息传输协议,其最大的特点就是简单方便,及时可用。它尽可能利用已有的标准和协议来实现相应的功能,但是其在设计之初并没有过多地考虑其所存在的安全性问题。因此Web服务在途经网络来进行信息交换时不可避免地存在信息丢失、被窃听、被篡改等安全风险。SOAP消息的安全
14、极大程度上影响着Web服务的安全。现在普遍使用的SSL/TLS以及HTTPS是点到点的安全技术,它们在保护Web信息安全方面已经十分成熟,但是运用在Web服务上时只能为传输过程提供消息完整性和机密性,却无法保障Web服务有中介参与时端到端的安全。要保证Web服务的通信安全,需要一种端到端的消息级安全解决方案。另外,对Web服务实施访问控制也是必须的。Web服务是一种部署在Web上的对象、组件,它在为用户提供服务的同时,极有可能会受到一些未授权用户的非法访问,因此可以通过访问控制技术来防止对任何资源的非授权访问。目前Web服务的访问控制技术已经成为一个研究热点。传统的面向数据对象的访问控制技术,
15、很难满足Web服务的动态性、开放性的要求。Web服务需要的是一种更加灵活有效的访问控制机制。1.2 国内外研究现状Web服务的安全性问题涉及的议题虽然相当广泛,但是首先要解决的基本问题是Web服务通信安全问题,即基于XML的SOAP消息的安全性问题。Web服务的通信安全首先要保证通信中传输的数据的安全,抵抗窃听、篡改、假冒、重放、业务否认等安全攻击,确保数据的机密性、完整性、可用性、消息源认证性和不可否认性。其中,机密性是指消息接收者能够识别消息内容,而入侵者无法识别消息内容;完整性是指消息接收者能够验证传输过程中消息没有被篡改;可用性是指消息接收者能够正确获取所需的消息内容;消息源认证性是指
16、消息接收者能够确认消息的确来源于消息发送者,且入侵者不可能伪装成消息发送者发送同样的消息;不可否认性是指消息发送者无法否认他已经发送过的消息,消息接收者也无法否认他已经接收到的消息。这些功能自身并不提供完全的安全解决方案,但WS-Security规范能用来和其他Web服务协议一起来满足多种类型的应用安全性的需要。Web服务要被广大用户所接受,其安全问题的解决刻不容缓。Web服务的安全需求与信息安全一样,主要包括机密性、身份验证、授权、完整性和不可否认性。针对以上Web服务的安全需求,国内外一些标准化组织、公司和社会团体都一直在进行相关的研究,致力于解决Web服务的安全问题。XML签名规范(XM
17、L Digital Signature)3是第一个官方推荐的XML安全标准,它是由W3C(World Wide Web Consortium)和IETF(Internet Engineering Task Force)共同开发的,是许多Web服务安全技术的构件。XML签名不但解释了如何签名XML文档的一部分,还解释了如何将任何数据的数字签名表示为XML格式。XML加密规范(XML Encryption)4是由W3C提出的一个规范,它不仅提供了加密XML文档的一部分的方法,而且还提供了加密任何数据和用XML表示加密数据的方法。XML签名和XML加密共同构成了Web服务安全的基础。W3C的另一个工
18、作组还制定了XML密钥管理规范XKMS(XML Key Management Specification) 5,用于让用户获取加密密钥信息(例如机密密钥,证书等),并允许用户进行密钥管理,例如密钥的注册和撤消等等。XKMS是给PKI(公钥基础设施)提供接口的Web服务,简化了实现PKI的必要步骤。安全断言标记语言SAML(Security Assertion Markup Language) 6是由OASIS (Organization for the Advancement of Structured Information Standards)开发的一个复杂规范,是基于XML(扩展标记语言
19、)的,用于在多个信任合作者之间传输认证和授权信息的安全访问控制框架体系和协议。作为XML的一种描述语言,SAML关注的重点并不局限于信息的描述,而是侧重于如何用SAML实现信息的安全共享,在多个信任合作者之间交换安全信息。SAML还提供了单点登录的机制。XML访问控制标识语言XACML是(XML Access Control Markup Language) 7是OASIS组织提出的另一个安全规范,是一种通用的访问策略定义语言。它提供了一种策略语言,允许管理员定义访问控制需求,以便获得所需的应用资源。XACML还包括一种访问决策语言用于描述运行时对资源的请求。由IBM和Microsoft以及V
20、eriSign等公司共同提出的WS-Security8规范主要描述如何向SOAP消息附加签名和加密报头以及如何向消息附加安全令牌。WS-Security将所有安全信息保存在SOAP消息报头中,从而为Web服务安全性提供了端到端的解决方案。但是WS-Security只是一种构件,并不提供完整的安全性解决方案,它必须与其它Web服务扩展和更高级的特定于应用程序的协议联合使用,以适应多种安全性模型和加密技术9。全球领先的应用基础结构软件公司BEA的WebLogic Web Service可以支持Web服务的数字签名和加密10。它的应用服务器是开发和部署可靠Web服务的领先平台,提供了一个基于标准的安
21、全框架,可以支持面向连接的点到点的安全,以及Web服务操作的授权和认证。IBM的WebSphere应用服务器提供了传输层的安全,同时支持WS-Security规范11。微软的WSE(Web Services Enhancements)可以支持WS-Addressing、WS-Sercurity、WS-Trust、WS-SecureConversation、WS-Policy、WS-Policy Assertions和WS-Sercurity Policy等Web服务安全技术。它还提供了一个完整的基于角色的授权模型,用来保护对服务的访问12。Sun的Java系统应用服务器平台13可以支持XML数
22、字签名、XML数字加密和WS-Sercurity技术。国内对于Web服务的安全性的研究相对较少,投入的力度也不是很大,研究的成果主要是在安全标准的应用方面,也有取得了一些阶段性的成果。比如说,金蝶在2004年开发出Web服务来知识XML数字签名、XML数字加密以及WS-Security技术14。另外,2004年东方通15遵循Web服务协议栈,并且支持了Web服务的标准安全性规范WS-Security和SAML等等,通过对安全标记的使用,实现了SOAP信息在传输过程中的机密性、完整性以及不可否认性。Web服务对国内研究人员来说是一个相对来说崭新的课题,有很多尚待探知的方面需要
23、我们来进行研究与探求。1.3 本文结构本论文的主要章节结构如下:第一章对本论文的研究背景、意义以及国内外的研究现状进行了介绍。第二章对Web服务的相关概念以及主要特征进行了初步的分析与研究,并详细研究以及探讨了Web服务的多项关键技术,包括SOAP、WSDL、UDDI、XML。另外,对Web服务的各种安全规范进行了深入的探讨与研究,其中主要包括的是WS-Security安全规范。第三章对SOAP信息传输的加密机制以及加密理论进行了研究以及讨论。另外研究了与SOAP信息加密有关的多项密码学技术,包括完整性技术、数字签名技术以及数字证书技术。第四章研究并且分析了传统的SOAP信息通信加密传输机制所
24、存在的缺陷:传统的SOAP信息通信加密传输机制使用的主要是SSL/TLS技术,是属于点到点的安全技术,不能保证SOAP信息传输的过程中,如果有中介参与的情况下,端到端的整体的安全性。另外,针对我们对当前的SOAP信息传输主要体现出来的安全需求:机密性、完整性、身份验证、不可否认性以及授权,论文将XML签名组件、XML加密组件和访问控制组件结合在一起进行了使用,从而形成了一套比较成熟的SOAP信息通信加密传输机制。第五章通过组件技术,论文主要针对了SOAP通信的机密性,对XML加密组件进行了具体的设计与研究,结合WS-Security安全规范实现的XML加密组件提供了数据的机密性。 2 Web服
25、务及安全传输机制特性分析2.1 Web服务概述2.1.1 Web服务的概念及特征IBM将Web服务定义为“Web服务是自包含的模块化应用程序,它可以通过网络进行描述、发布、定位和调用” 16。W3C对Web Services的定义是:Web Services是URI(Uniform Resource Identifier)标识的一个软件应用,它的接口和绑定可以通过XML文档定义、描述和发现;它使用基于XML的消息通过互联网协议与其他软件之间直接交互17。Web服务建立在XML标准之上,并且是可以使用任何编程语言、协议或平台开发的,一种通过Internet标准模式传递的软件组件。通俗的讲,Web
26、服务就是为一些实际功能提供接口,让它们可以被Web上的其它程序来访问的一种技术。这里的功能可以使执行一个数学运算,从数据库中获取的数据或者是其他的难度更好的任务。Web服务采用面向服务的体系结构,包括服务提供者、服务请求者和服务注册中心三种角色,以及相关的三种运行关系:注册、发现和调用服务。也有可能存在不包含服务注册中心角色的两层模型。图2.1表示了Web服务的体系结构:服务注册中心发现服务 注册服务服务提供者服务请求者 调用服务 图2.1 Web服务的体系结构Web服务提供者就是Web服务的所有者,他将自己的服务发布在Internet上,供其他用户和服务使用,是提供服务访问的平台。Web服务
27、请求者也就是Web服务使用者,他进行发现并调用服务提供者提供的服务。Web服务注册中心是一个可搜索的服务注册中心,服务提供者在此发布他们的服务描述。服务请求者通过它来查找需要的服务并获取服务的绑定信息。Web服务注册中心实质上充当着管理者的角色,它的作用是把一个Web服务请求者与合适的Web服务提供者联系在一起。服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。Web服务的一个比较经典的运行的过程是,Web服务的提供者把他的Web服务发布到服务注册中心的一个主目录上,当服务请求者使用该Web服务时,他首先需要到服务注册中心提供的主目录上,寻找该服务并且获取如何使
28、用此Web服务的相关的内容,然后通过这些相关的内容来调用服务提供者所提供的Web服务。Web服务实际上是一种远程过程调用RPC(Remote Procedure Call)机制,这种远程过程调用机制是通过交换基于XML的文档来执行的18。这是因为,以XML格式表示的消息易于阅读和理解,并且XML文档具有跨平台和松散耦合的结构特点19。Web服务是一种部署在Web上的对象/组件,它具有以下五大特征20:(1)完好的封装性:Web服务既然是一种部署在Web上的对象,自然就具备了对象的良好的封装性。对于使用者而言,他能且仅能看到该对象提供的功能列表。(2)松散耦合:这一特征也是源于对象/组件技术,当
29、一个Web服务的实现发生变更的时候,调用者是不会感到这一点的。对于调用者来说,只要Web服务的调用接口不变,Web服务实现的任何变更对他们来说都是透明的,甚至当Web服务的实现平台从J2EE迁移到.NET或者反向迁移时,用户都可以对此一无所知。对于松散耦合而言,尤其是在Internet环境下的Web服务而言,需要有一种Internet环境的消息交换协议。而XML/SOAP正是目前最为适合的消息交换协议。(3)使用协约的规范性: 这一特征从对象而来,但相比一般对象,其界面规范更加规范化和易于被机器理解。首先,作为Web服务,对象界面所提供的功能应当使用标准
30、的描述语言来描述(比如WSDL);其次,由标准描述语言描述的服务界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册库里面。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被延伸到Web服务的聚合、跨Web服务的事务、工作流等,而这些又都需要服务质量(QoS)的保障。安全机制对于松散耦合的对象环境十分重要,因此需要对诸如授权认证、数据完整性(比如签名机制)、消息源认证以及事务的不可否认性等运用规范的方法进行描述、传输和交换。最后,所有层次上的处理都应当是可管理的,因此需要对管理协约运用同样的机制。(4)使
31、用标准协议规范:作为Web服务,其所有公共的协约完全需要使用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范,以便由任意方进行实现。一般而言,绝大多数规范将最终由W3C或OASIS作为最终版本的发布方和维护方。(5)高度可集成能力:由于Web服务采取简单的、易理解的标准Web协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,因此,无论是CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)、DCOM(Distributed Component Object Model,分布
32、式组件对象模型)还是EJB(Enterprise JavaBeans,企业版JavaBeans),都可以通过这一种标准的协议进行互操作,实现了在当前环境下最高的可集成性。2.1.2 Web服务协议栈为了完成在松散耦合环境下的对对象进行的访问,以及在基本对象访问之上的事务、工作流、安全机制等等,要实现一个完整的Web服务体系的总体架构需要有一系列的协议规范体系来进行支撑。这一系列的开放标准协议(比如XML、SOAP、WSDL、UDDI等)相互依赖并且相互影响着,就像一个堆栈那样共同协作完成任务,他们在一起被统称为是“Web Services Stack(Web服务协议栈)”,图2.2展示了当前投
33、入并且使用的Web服务协议栈。Web服务协议栈的最底层是网络传输层,它也是协议栈的基础。Internet上可以访问的Web服务使用已普遍部署的网络协议,如HTTP、SMTP、FTP和MQ(Message Queuing)等。其中HTTP凭借其普遍性,成为Internet环境下Web服务使用的标准网络协议。第二层基于XML的消息层(XML-Based Messaging)主要体现怎么去调用Web服务。现在运用比较广泛的主要有两种,一种是XML-RPC(XML-Remote Procedure Call),另一种是SOAP(Simple Object Access Protocol)。相比之下SO
34、AP比XML-RPC有一定的优势:SOAP在处理复杂数据(如数组等)时要比XML-RPC更容易一些;XML-RPC没有标准化错误代码。第三层服务描述层(Service Description)主要是对Web服务的描述,向客户端说明服务提供了什么样的接口可供调用,怎么样去调用和到哪里去调用。这一层中的主要协议是WSDL(Web Servies Description Language)。另外,服务发现集成协议UDDI以及Web 服务流程语言WSFL(Web Services Flow Language)都是目前开发的Web服务的相关标准协议。⣸
35、42; WSFL Service Discovery StaticUDDIService PublicationDirectUDDIService DescriptionWSDL SOAPXML-Based Messaging HTTP,FTP,MQ,Email,etcInternet SecurityManagementQuality of ServiceService Flow图2.2 Web服务协议栈2.2 SOAP协议分析近几年来,网上电子商务交易发展迅猛,其中B2B以及B2C的电子商务模型发展首当其冲,引领着整个行业的发展。使用XML对商务信息进行描述使得B2B/B2C应用在数据层上
36、获得了开发以及集成的能力,然而,这从网络传输的层面来看,其仅仅完成了实际应用领域的最低层次的开发集成:数据层集成。而在模块层,SOAP的出现使得该层能够以一种开放、集约、统一的方式进行集成和信息的交互。SOAP(Simple Object Access Protocol)即简单对象访问协议提供了一种在分散或者分布式的环境中交换信息的简单且轻量的机制。因为它是一个基于XML(Extensible Markup Language)标准的协议,可以用来在不同的系统不同的语言之间进行通信。在Web服务中,SOAP充当在服务使用者和服务请求者之间交换信息时消息交换协议的角色,是Web服务的核心。SOAP
37、规范主要由下列元素组成:(1)SOAP信封规范:它定义了一个SOAP消息表示框架。SOAP消息通常包括一个SOAP信封,带有0个或多个附件。SOAP信封包含可选的报头(Header元素)和必须的报体(Body元素)。其中,报头是一种用来向SOAP消息添加额外特性的通用机制,SOAP定义了一些属性来指出谁应该处理某个特性及这个特性是可选的还是必须要处理的;报体包含发送给最终目标节点的信息。图2.3显示带附件的SOAP消息的结构。(2)SOAP编码规则:定义了一组数据编码规则,它是由编程语言、数据库和应用程序所需的半结构化数据表示的一组通用数据类型。SOAP编码支持简单类型值和
38、复合类型的值。(3)SOAP PRC约定:定义了一个用于表示远端过程调用和响应的约定。在SOAP PRC请求和响应中,方法调用被串行化为SOAP编码规则定义的、基于XML的数据类型。(4)SOAP绑定:定义了一个使用底层传输协议来完成在节点间交换SOAP信封的约定。 SOAP消息头Header项SOAP信封(主MIME部分)Header项附件 SOAP主体Body项附件Body项 图2.3带附件的SOAP消息的结构SOAP的主要设计目标是简明性和可扩展性。简明性主要表现在整个SOAP规范定义的消息结构非常简单,除了这个基本消息结构外,SOAP没有定义额外的表述结构标准,没有定义自己的编码格式和
39、传输协议。可扩展性则主要表现在SOAP可以使用任意的模式定义方式来定义内部传输内容的结构(编码方式一般使用XML Schema),可以与任意的网络传输协议联合使用完成传输。SOAP提供复合的单向消息交换框架,以便在SOAP节点之间传输XML。这些SOAP节点表示SOAP消息路径的实体,执行消息路由或处理功能。在SOAP消息中,SOAP节点可以是SOAP发送方、SOAP接收方或者是SOAP中间方,三种其中的任何一种。在SOAP消息交换模型中,SOAP消息经由发送方,途经0或多个中间方,最终传递到其所指的目标位置。SOAP消息交换模型如图2.4所示:SOAP中间方SOAP接收方SOAP发送方 图2
40、.4 基本的SOAP消息交换模型2.3 WS-Security规范WS-Security规范是有IBM、Microsoft和Versign三大公司共同提出的,目前WS-Security规范已经成为了保护Web服务安全以及应用进程操作安全的标准。WS-Security规范定义了如何利用XML签名、XML加密以及安全令牌来对SOAP消息进行签名和加密,并且提供了将安全令牌和SOAP消息进行紧密联系的体系。WS-Security规范的主要作用就是保护SOAP消息的传输安全,实际上其是对SOAP协议的扩展,它解释了如何将安全信息包含在SOAP消息的报头中。WS-Security规范并没有提供出新的签名
41、/加密算法或是安全模型,而是在利用现有安全规范的基础上提供了一个可以进行扩展操作的框架,应用程序开发人员可以根据实际情况将各种不同的加密解密技术以及相关的协议标准结合起来,以实现Web服务的完整性、保密性和访问的控制WS-Security规范在SOAP中引入现有的签名和加密标准,根据这些标准,它定义了一系列的SOAP消息头(Header Block)来包含数字签名、加密信息和安全令牌等安全信息。下面是一个典型的SOAP消息的报头: MIIEZzCCA9CgAwIBAgIQEmtJZcO. . .在上面的结构中,Security报头块是由WS-Security定义的。它除了封装安全令牌外,还提供
42、有关在SOAP消息中使用XML签名和XML加密的信息。每个SOAP消息可以包含有多个Security报头块,每个报头块都可以通过S:actor属性来指定哪个SOAP节点将对其进行处理。S:mustUnderstand属性设置为1时说明,强制接收方处理Security报头记录项。如果接收方不能处理安全信息,处理将失败。WS-Security主要提供了三种机制:安全令牌传输、消息完整性和消息机密性。(1)安全令牌传输在SOAP消息头中,WS-Security定义了安全元素(Security Element)来传递各种安全令牌。消息的接收者通过发送者的安全令牌来验证用户的身份。安全元素包含三种子类型
43、的元素,它们分别是UsernameToken,BinarySecurityToken和SecurityTokenReference。(2)消息的完整性WS-Security采用了W3C的XML签名标准对SOAP消息进行数字签名,保证SOAP消息在经过中间节点时不被篡改。WS-Security并没有彻底改造已有的标准,而是简单的利用它们,并就如何在SOAP消息中使用这些规范提出了一些具体细节。WS-Security允许对SOAP消息其中的一部分进行数字签名,允许为相同的消息创建多个签名,这样数据经过的不同机构或个人就可以独立地对同一个XML文档的不同部分进行添加、删除或修改,并只对自己的处理结果
44、签名,而且所有签名之间完全不会相互影响,从而能够更好地分工协作,权责更明晰,效益也更显著,从而扩大签名的作用范围。WS-Security提供了对多种签名算法和签名格式的支持。(3)消息的机密性WS-Security使用W3C的XML加密规范对SOAP消息进行加密,保证SOAP消息在传递过程中即使被监听,监听者也无法提取出有效信息。WS-Security允许对SOAP消息进行选择性的加密(可以部分加密或是全部加密),这样就可以只对敏感信息加密,减少以往因对整个消息加密所导致的性能损失。WS-Security也支持多种加密算法和加密格式。以上的三种WS-Security机制既可以单独使用,也可以组
45、合起来使用,以实现不同要求的Web安全服务。总的来说,WS-Security是一个可操作性强的、自由度高的、扩展性高的安全规范。论文所设计的信息通信加密传输机制就是基于WS-Security规范的,通过WS-Security规范的使用,使得应用程序能够形成安全稳定的SOAP消息交换机制,保证了SOAP消息的机密性,完整性和不可否认性,并且能够实现支持端到端的消息级别的安全性,而不仅仅是传输级别的安全性。2.4 XML技术XML即Extensible Markup Language,可扩展标记语言的简写,他是所有Web服务标准的基石,是W3C认可的元标记语言,这些标记将文档分为许多组件,并对这些组件加以标记,其定义了和特定领域有关的、语义的、结构化的标记语言的句法语言。和HTML一样,XML同样基于标准通用标记语言SGML(Standard Generalized Markup Language),但是与HTML不同的是,XML是一种能定义其他语言的语言。XML最初的设计目的是弥补HTML的不足,以其灵活多变以及扩展性强的特点来方便网络信息的发布,而后来由于网络需求的发展,其逐渐