(计算机应用技术专业论文)一个简单的web服务安全通信模型及其应用研究.pdf_第1页
(计算机应用技术专业论文)一个简单的web服务安全通信模型及其应用研究.pdf_第2页
(计算机应用技术专业论文)一个简单的web服务安全通信模型及其应用研究.pdf_第3页
(计算机应用技术专业论文)一个简单的web服务安全通信模型及其应用研究.pdf_第4页
(计算机应用技术专业论文)一个简单的web服务安全通信模型及其应用研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机应用技术专业论文)一个简单的web服务安全通信模型及其应用研究.pdf.pdf 免费下载

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

文档简介

i 摘摘 要要 web服务技术随着internet的广泛应用得到迅速的发展,它是在继承现有的各种 系统框架和实现技术的基础上提出的一种解决不同平台、不同协议、不同开发语言 下的应用系统集成问题的技术。为了解决web服务通信的安全问题,提出了一个简 单的web服务安全通信模型。 客户端在所发送的soap消息中嵌入身份验证元素和抵御重传攻击元素,并进行 xml加密和xml数字签名处理。服务器端在对客户端消息进行身份验证、解密以及 完整性验证之后,对照所维护的抵御重传攻击数据记录,能够判断消息是否来自重 传攻击,并做相应的处理。 web服务安全通信模型利用已经比较成熟的xml安全技术完成身份验证、加密 和数字签名处理。而对于重传攻击,提出一种新的抵御方法。在客户端发送的soap 消息中嵌入抵御重传攻击元素,该元素有三个子元素:guid、id、maxid。其中, guid为全球唯一标识符(globally unique id),该值的全球唯一性保证了所有soap 消息的标识不重复;id为某个具体soap消息的标识符。guid和id的组合,能唯一 地标识一个soap消息。maxid是能应用到当前guid上的id号的最大值。 服务器端对所接收到的soap消息中的抵御重传攻击元素数据进行记录。对所到 达的每个guid号,为该guid值建立和维护一个数组,该数组大小即为相应的maxid 值,并在该数组中记录相应的id号的状态。服务器端根据这些数组来判断新到达的 soap消息是否来自重传攻击。 web服务安全通信模型能够满足安全通信的基本要求,并且能够较为高效地抵 御重传攻击。该安全通信模型在对安全要求较高的web服务应用中能达到较好的效 果。在抵御重传攻击方面,与传统的时间戳方式相比更易于实现。与传统的挑战响 应技术相比能大幅减少所需的网络通信数据量,具有较高的效率。是一种简单高效 的web服务安全通信模型。 关键词: 网络服务,安全,简单对象访问协议,可扩展标记语言,重传攻击 ii abstract the web service technology has progressed rapidly with the widespread of internet. it inherits existing system framework and implementation technologies and presents an application system integration technology on different platforms, protocols and programming languages. to solve the security issue of web service communication, a simple web service secure communication module is presented. the client inserts authentication element and anti-replay element in the soap messages it sends, and secures them with xml encryption and xml digital signature technology. the server performs authentication, decryption and signature verification on receiving the soap messages, and based on the anti-replay element in the message, the server can decide whether the message is from replay attack or not, and handles the message based on the result. the authentication, encryption and digital signature are handled nicely with matured xml security technologies. a new way of replay attack resistance is presented. the client inserts anti-replay element in the soap messages it sends, the element has three child elements, namely guid, id and maxid. the value of guid is globally unique, the combination of guid and id ensures that identifications for each soap message is unique. maxid is the maximum value of id that applies to current guid. the server records the anti-replay element data in the soap messages it receives, creates and maintains an array for every guid that it gets from the client. the capacity of the array is the corresponding maxid value, and status of corresponding id values are recorded in the arrays. the server can judge if an incoming soap message is from replay attack or not based on the values of these arrays. the web service secure communication model can satisfy the basic requirements of secure communication, and performs replay attack resistance efficiently. the module can be applied in the web service applications that requires higher security guarantee. as for the replay attack, the module is easier to implement when compared with traditional iii timestamp method. and it can greatly reduce the data exchange when compared with traditional challenge and response technology, thus get higher efficiency. its a web service secure communication module that is both simple and efficient. key words: web service,security,soap,xml,replay attack 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“”) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 1 1 绪论绪论 随着互联网和电子商务的快速发展,新技术不断出现。web服务技术由于其松 散耦合、平台无关、语言无关、设备无关等特性,在企业应用集成和电子商务、电 子政务等领域得到广泛应用,对基于web的应用程序设计、开发和部署带来了巨大 的影响。web服务信息的安全问题得到广泛的关注,也是web服务技术进一步发展 所必需解决的一个关键问题,本章对web服务的关键技术进行分析和阐述,并提出 课题的研究方向。 1.1 课题背景课题背景 目前广泛应用的internet存在着很多问题。比如应用系统各自独立、搭建在不同 的平台之上、实现技术多种多样等等。web服务的出现为解决这些问题提供了契机。 web服务是一种基于标准的应用集成方式, 将运行在通过intranet/internet连接的 分布式服务器上的应用集成在一起,使集成更加方便和安全,省去了人工连接的繁冗 环节。以开放标准为基础的web服务,由于其松散耦合、平台无关、语言无关、设 备无关等众多优点,得到广泛的应用。 本课题的课题背景是日本横河电气公司开发企业信息化系统rhombus2行销系 统,基于web服务技术的架构为系统提供了良好的跨平台性能6,为业务扩展和系 统升级带来极大的便利,也为系统实现在全球范围的广泛部署和应用提供了保证。 在实现复杂的业务逻辑的同时,系统中的敏感商务数据的安全也成为系统设计考虑 的一个重要问题。 web服务通信的安全保障是开展上层应用系统和业务流程的前提。现有的安全 传输方案如ssl/tls7, 8等能保证传输层的点到点的数据安全,但是由于web服务技 术的特点,ssl/tls不能很好地满足web服务环境特殊的安全性要求。 xml安全技术能保证被传输数据端到端的安全性9,可以弥补ssl/tls技术在 web服务环境中所存在的不足。 目前,针对web服务端对端的安全通信问题,微软联合ibm和verisign公司提出 2 web服务安全规范(ws-security) 10, 11,规范本身并没有提出新的加密算法或安全模 型,它只是提供了一层足够灵活的基础安全机制。基于这一机制,可以根据具体的 web服务应用环境,构筑更完善的安全模型,用户可自由地将web服务协议、应用 层协议与各种加密技术、安全模型结合起来, 以实现web服务环境下的消息安全。 xml数字签名只能确认消息的原始生成者12,并不能确认消息的唯一性,所以 单纯的xml数字签名并不能抵御重传攻击这一常见的网络攻击手段。 soap协议的良 好的扩展性,为解决这一问题提供了思路。 本课题研究的目的是掌握web服务安全技术,结合现有的编程技术在信息系统 中实现web服务消息的身份认证、加密、解密、数字签名以及签名验证简单等功能, 增强系统的安全性,并通过扩展手段,使系统能够高效抵御重传攻击。在这些基础 上, 课题提出了一个web服务安全通信模型, 该模型能为web服务提供消息完整性、 机密性保证、提供身份验证,并能有效抵御重传攻击,能为web服务提供较为完备 的安全保证。 1.2 国内外概况国内外概况 随着web服务的应用越来越广泛,在应用环境中对web服务安全保障的需求也 日益强烈。传统的网络安全技术已经不能较好地满足web服务安全性的要求。在这 一前提下,众多组织和公司积极进行web服务安全标准的制定,以及相应安全产品 的开发。 从安全解决方案的发展趋势可以看出,安全技术正从传输级别向消息级别转移。 消息级别的安全机制将不依赖于传输层来提供安全保障,将安全级别从点到点提高 到端到端,从而提供更加完善的安全保障。 1.2.1 传输级的安全技术传输级的安全技术 1994 年,netscape 公司提出了 ssl(secure socket layer)协议13-15,旨在达到在 开放网络上安全地传输信息的目的,这种协议在 web 上获得了广泛的应用。之后 ietf(the internet engineering task force)对 ssl 作了标准化,并将其称为 tls(transport layer security) 16。 3 ssl/tls 被广泛地用于为网络数据交换提供传输级别的安全保障,主要是用于 在开放网络(如 internet)上建立安全连接, 它是建立在可靠连接(如 tcp)之上的一个能 够防止窃听、篡改和消息伪造等安全问题的协议,提供了包括身份验证、数据完整 性和数据机密性等安全性功能。 虽然 ssl/tls 是创建安全通信的一种非常有效的方法,但是在新的网络应用环 境中,其缺点也日渐突出,比如: (1)使用 ssl/tls 只能对整个消息文档进行安全保护,而不能根据需要进行选 择性保护。 (2)ssl/tls 只能在进行数据传输的时候启用,不能提供数据的安全存储。 (3)ssl/tlss 提供的是只是点对点的安全机制,而不是端到端的安全机制,在 现在网络数据传输的框架下,点到点的安全机制已经不能够提供充分的安全保证, 如图 1.1 所示。 节点节点a节点节点c节点节点b 安全环境安全环境安全环境安全环境 图图 1.1 点到点的安全环境点到点的安全环境 1.2.2 消息级的安全技术消息级的安全技术 新的网络应用技术不断涌现,其中有相当一部分使用多跳(multi-hop)的拓扑结 构,这种结构的应用依赖于中介节点转发数据,甚至对数据进行一定的处理后进行 转发。在应用传统的传输层安全技术时,数据的安全性在中介节点得不到保障,所 以安全解决方案的发展有从传输级别向消息级别转移的趋势。消息级别的安全机制 将不依赖于传输层来提供安全保障,从而提供端到端的消息安全保障。对于日渐成 为网络数据交换标准的 xml 语言17,众多组织和公司积极着手相关安全标准的制 定,以及相应的产品实现。 2002年12月,万维网联盟w3c的加密工作组发表了xml文件的加密规范xml encryption(xml encryption syntax and processing)23,作为xml加密技术的推荐 标准。xml加密规范使加密xml文档中的一部分成为可能,这样既可以有效地保护 4 了信息的安全,又可以兼顾系统执行的效率。 2002年2月,ietf(internet engineering task force)和w3c共同组建的xml数字签 名工作组联合公布了xml数字签名规范(xml digital signature)27,作为xml数 字签名技术的推荐标准。该规范将xml数字签名解释为定义一种与xml语法兼容的 数字签名语法,描述数字签名本身和签名的生成与验证过程。 2002年4月, ibm、 微软和verisign公司联合发布web服务安全规范 (ws-security) 29-35。该规范实际上是对soap协议的扩展。规范本身并没有提出新的加密算法或安 全模型,它只是提供了一个实现web服务环境下消息安全框架。 针对 web 服务安全规范,微软公司推出相应的实现产品:web 服务增强类库 wse(web services enhancements)。 wse 实现了 web 服务安全规范的所有要求, 其 首要目标,是给分布式应用开发提供消息级的安全性。目前 wse 的最新版本是 3.0, 于 2005 年发布。 消息级的安全机制能保证传输过程中端对端的数据安全,使得数据获得更完善 的安全保障,如图 1.2 所示。 节点节点a节点节点c节点节点b 安全环境 图图 1.2 端到端的安全环境端到端的安全环境 1.3 相关技术相关技术 本课题的主要研究内容是 web 服务安全技术。掌握 xml 加密和 xml 数字签 名规范的主要内容,利用 c#编程语言来实现 web 服务的安全性是本课题的重点, 最后,通过对 web 服务消息的扩展,实现对重传攻击的高效抵御是本课题最大的难 点。 以下是本课题的主要相关技术: 5 1.3.1 微软微软.net 平台平台 .net 平台的首要目标是让软件成为服务36-38,但是其目标远远不限于此。除了 与 web 紧密结合以外,近年来软件业的技术趋势也在.net 平台中得到体现,包括: (1)分布式计算 .net 利用 http,xml,soap,wsdl 等开放的 internet 标准39-42,.net 平台 提供远程通信和 web 服务架构,平台简化了 c/s 结构和多层应用程序的开发。 (2)组件化开发 .net 平台提供了更为简单的组件开发和部署的途径,简化了不同软件组件的集 成,并支持分布式开发。 (3)企业服务 .net 平台继续支持 com 和组件服务,能极大节省构建大规模应用的时间和精 力。 (4)网络集成 .net 平台致力于在 web 平台中不同平台、设备、编程语言之间的交流和共享。 .net 平台的核心是.net 框架,.net 框架提供了开发和运行时的基础架构,是 创建、部署和运行 web 服务及其他应用程序的一个环境。.net 框架最重要的组件 是公共语言运行时 clr(common language runtime),clr 负责激活对象、执行安 全检查、在内存中表示对象、执行对象操作,并在对象生命期结束后进行内存空间 回收回收。在 clr 之上,是.net 框架的基础类库,提供基本的函数输入输出、字 符串操作、安全管理、网络通信、线程管理、文本管理、反射功能、组合功能以及 其他功能。 构建 microsoft.net 框架的目的就是使建立网络应用程序和网络服务更加 容易。 1.3.2 c#编程语言编程语言 c#是微软.net平台的首推语言43-45, 是从c语言和c+语言派生的一种简单的、 现代的、 面向对象的、 类型安全的程序设计语言, 它使开发人员能够在微软新的.net 平台上快速建立广泛的应用。c#语言构造的所有组件都可以转换为 web 服务,从 而实现跨语言、跨平台的因特网远程调用。 6 c#将快速应用开发与对底层平台所有功能的访问紧密结合在一起。它具有对应 用程序快速开发的能力,同时并没有牺牲 c 和 c+语言的强大的控制能力,其特点 如下: (1)简洁的语法:取消了许多 c+中复杂且易混淆的操作符,对冗余关键词和 伪关键词进行了整理,使语言简洁,容易理解。 (2)精心的面向对象设计:良好的面向对象特性如封装、继承、多态。取消了 全局函数和全局变量,取消了多继承。 (3)与 web 紧密结合:有了 web 服务框架,对程序员来说,web 服务就像 c#语言的本地对象。 (4)完整的安全性和错误处理机制:内存管理中的自动垃圾回收机制大大减轻 了程序员对内存管理的负担,也大大减少了出错的可能性。 (5)版本处理技术:内置了版本控制功能。函数重载必须被显式声明;支持接 口和接口继承。 (6)灵活性与兼容性:允许将类或者类的某些方法声明为非安全的,就能够使 用指针、结构、静态数组等;遵守.net 公用语言规范,从而保证了 c#组件与其他语 言组件的良好的兼容性。 1.3.3 可扩展标记语言可扩展标记语言( extensible markup language, xml ) 可扩展标记语言( extensible markup language, xml )是由 w3c(world wide web consortium)制定的一种基于标准通用标记语言 (standard generalized markup language,sgml)的标记语言,它提供了一种用文本格式描述数据的方法,主要目 的是使用元素、属性等选项来描述数据内容,各元素之间呈层次关系,属性是元素 要表达的信息的补充。各元素的层次关系就是 xml 文档包含的数据的内在关系。由 于 xml 是以文本形式描述的,所以适合于各种平台环境的数据交换。同样由于使用 文本来描述内容,使得 xml 可以越过不同平台的障碍进行正常的数据交换。 xml 语言的主要特点有: (1)xml 为通用的卷标语言,开发者能定义自己的标签集。 (2)文件具有自我描述能力,一份有效文件包含特定文件类别的所有规则。 (3)文件的有效性可被确认。根据文件类型定义(dtd)中所发现的规则,处 7 理器可验证文件是根据规则所开发的。 (4)xml 文件以纯文字撰写且拥有逻辑的树状结构,易读且条理清楚。 1.3.4 简单对象访问协议(简单对象访问协议(simple object access protocol, soap) soap 协议是 web 服务的通信协议,是一种基于 xml 的在分布式网络应用之 间交换结构化数据的简单消息机制,是 web 服务分布式计算的基础。 soap简单的理解,就是这样的一个开放协议: xml作为数据传送的格式并采用 http作为底层通讯协议,是把己经成熟的基于http协议的web技术与xml的可扩 展性和灵活性结合起来的一种技术。soap协议使用xml作为数据交换格式是因为 xml独立于编程语言,具有良好的可扩展性并且得到强大的工业支持。soap协议使 用http协议作为底层通信协议是因为几乎所有的网络系统都可以用这种协议来进 行通信。 soap协议为在分布式环境对结构化和类型化的xml信息提供一个简单且轻量 级的访问机制。soap 协议本身基于 xml,因此有利于实现异构程序和异构平台之 间的互操作性,从而使历史存在的应用能够为更广泛的用户提供服务。实现了不同 的系统之间能够用 “软件对软件” 的方式进行数据交换。 soap 的强大是因为它简单。 soap 是一种轻量级的,非常容易理解的技术,并且很容易实现。 soap协议包括如下四个部分: (1)soap封装(envelope)。 封装定义了一个描述消息中的内容是什么、是谁发送的、谁应当接受并处理它 以及如何处理它们的框架。它构造定义了一个整体的表示框架。 envelope是xml文 档的顶级元素, 信封中嵌套一个可选的soap报头 (soap header) 和一个强制的soap 消息体(soap body)。soap报头通常存放与soap请求相关的元数据,soap报头是 这个对象模型中的一个可选项,用来承载与应用关系不大而需底层环境平台处理的 元信息。soap消息体包含了服务调用所需的消息内容,是soap消息的必不可少的 部分。 (2)soap编码规则(encoding rules) soap编码规则用于表示应用程序需要使用的数据类型的实例。它定义了一个数 据的编序机制,用于交换应用程序定义的数据类型,通过这样一个编序机制来定义 8 应用程序中需要使用的数据类型,并可用于交换由这些应用程序定义的数据类型所 衍生的实例。 (3)soap rpc表示(rpc representation) soap rpc表示是远程过程调用和应答的协定, 它定义了一个用于表示远端过程 调用和响应的约定。 (4)soap绑定(binding), soap绑定使用底层协议交换信息,它定义了一个使用底层传输协议来完成在结 点间交换soap信封的约定。soap只是定义了消息,而消息的传输依靠底层的传输 协议,soap与传输层协议都能进行绑定。 soap提供了一种让客户端指定哪个中间处理节点必须处理头部项目的方法。由 于soap消息头部与soap消息的主体内容是互不相关的,所以可用它给消息添加信 息,而不会影响对消息报文的处理。例如,报头可用于为报文中包含的请求提供数 字签名。在这种情形下,身份验证/授权服务器可以处理独立于消息体的消息头部项 目,并可以剥离信息以验证签名。一旦通过验证,信封的其余部分将被传递给soap 服务器,它将对soap消息体进行处理。 虽然这四个部分都作为 soap 的一部分并作为一个整体定义的,但他们在功能 上是彼此独立的。信封和编码规则是被定义在不同的 xml 命名空间中,这样使得定 义更加简单。 1.3.5 web 服务增强类库(服务增强类库(web services enhancements, wse) 为了使 web 服务运行得更好,新一代的 web 服务规范被提出来。建议应该改 善对 web 服务的诸多重要方面如安全、可靠报文、发送附件对地区间的协调性。为 了支持这些提议的标准,微软公司发布了 web 服务增强类库(web service enhancements, wse ) 。 wse 是一个类库,用于实现高级 web 服务协议, 支持核心功能与操作系统的 集成,并增强了策略、信任和上下文令牌功能。它使得开发人员可以不需要深入了 解协议的具体内容就可以开发相应的 web 服务程序,大大简化了开发难度,使得 web 服务应用在企业级项目上成为可能, 让开发者在将安全引入到分布式应用系统 开发时能够不用过多考虑到协议的细节问题。wse 的首要目标,是给分布式应用开 9 发提供消息级的安全性。 wse 的主要特点如下: (1)安全性:具有用于对 soap 信息进行电子签名和加密的功能。支持 ws-security 规格; (2)路由功能:使用 ws-routing 规格,对 soap 信息进行中继,并负责 xml web 服务的路由; (3)加功能:可以向在 xml web 服务之间进行交换的 soap 信息中添加二进 制数据。该功能基于 ws-attachments 标准; (4)扩展架构:通过对处理 soap 信息的系统进行扩展,并与适当的安全基础 相配合,就能够定制加密和签名功能。 1.4 课题主要研究内容课题主要研究内容 本课题研究以日本横河电气公司 rhombus2 系统为出发点,在 windows 系统 下,以微软公司 visual studio.net 为开发环境,讨论如何利用 web 服务技术实现该 企业信息化系统, 并提出 web 服务安全通信模型, 提供 web 服务消息的身份认证, 以及数据完整性、数据机密性和不可抵赖性保障。 该课题的研究工作包括: (1)对 web 服务相关技术进行研究,并在 rhombus2 系统中应用 web 服务技 术实现系统功能。 (2)对 web 服务安全性进行研究和分析,学习和研究现有的安全技术,了解 最新的技术动态。 (3)提出可行的 web 服务安全通信模型,并进行具体的设计。 (4)对 web 服务安全通信模型进行分析,与现有类似技术和方案进行比较, 总结模型的优缺点。 10 2 相关技术分析相关技术分析 本章分析了一个安全的web服务所需要用到的理论基础。包括了web服务的基 本概念、传统的网络安全技术、soap安全技术、web服务安全规范以及传统的抵御 重传攻击技术。 2.1 web 服务技术服务技术 为了使分布式系统进行通信, 众多公司提出自己的通信技术。 这些技术的每一个 都能使不同语言、不同实现版本和不同地点运行的程序能够像在同一计算机上一样 进行通信。但是在这些传统的分布式应用中,通讯实体间必须约定特定的协议,采 用特定的数据交换格式才能达到信息交互的目的。系统只能局限于约定的环境,很 难实现应用间的互操作性。 web平台为基于http的通信提供了基础。只要是支持http的web服务器都可 以对请求作出响应。只要支持http和html的标准浏览器都可以对响应进行解释, 将结果呈现给最终用户,使之能获得理解。 然而在传统的web平台上提供的大部份信息服务其最终消费者都是人类用户, 这些信息通常以html来描述,并通过浏览器将最终效果呈现给人类用户。因为 html语言是用来向浏览器描述如何以人(非机器或程序)可以理解的方式进行页面 渲染的,其描述的是页面的布局方式。程序如果要获取返回结果中的有价值的信息 或数据,则必须对html进行解释和抽取。然而由于html的非结构化特点,这种解 释或抽取的过程是非常低效的。所以说,分布式系统之间交换数据格式的标准化成 为其发展的另外一个技术壁垒。 基于这些原因出现了 web 服务技术1,2,5,web 服务技术解决了分布式系统互 操作性有限的问题,从而提高了分布式计算的能力。 web服务是在继承现有的各种系统框架和实现技术的基础上提出的一种解决不 同平台、不同协议、不同开发语言下的应用系统集成问题的技术,是使应用程序可以 以与平台和编程语言无关的方式进行相互通信的一项技术,它是一种软件接口,描 11 述了一组可以在网络上通过标准化的 xml 消息传递访问的操作。 web服务是自包含的模块化应用程序,它可以通过网络进行描述、发布、定位 和调用。当网络指的是web的时候,意味着web服务把http作为传输协议。各种 平台的用户均可以向web服务器提出请求,然后收到响应。由于当前大部分平台都 支持http协议,这使得各平台的用户均可以与标准web服务器通信。web服务描 述了一些操作的接口,通过标准化的xml消息传递机制,可以通过网络访问这些操 作。 web服务计算模式的基础是服务提供者、服务注册中心和服务请求者这三个角 色之间的交互活动,这些交互活动包括三个基本操作:发布、发现和绑定,如图2.1 所示。 图图 2.1 web 服务基本角色及交互关系 web 服务基本角色及交互关系 web服务技术核心是soap、 wsdl和uddi, 是基于现有技术的一种整合。 soap 协议已经在第一章中进行了介绍,在此不再赘述。 (1)web 服务描述语言(web service description language, wsdl) wsdl 是由微软、ibm、ariba 三家公司于 2000 年 9 月联合推出的一个 web 服 务的描述标准,是一种描述 web 服务的 xml 文档格式。 wsdl 是一种 xml 应用,它将 web 服务描述定义为一组服务访问点,客户端 可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问。 wsdl 首先对访问的操作和访问时使用的请求/响应信息进行抽象描述,然后将其绑 12 定到具体的传输协议和消息格式上,以最终定义具体部署的服务访问点。相关的具 体的服务访问点通过组合就成为抽象的 web 服务。 (2)统一描述、发现和集成协议(universal description,discovery and integration,uddi) uddi 是由微软、ibm、ariba 于 2000 年 6 月推出的一个标准,它是一套基于 web 的信息与服务注册的标准。使用 uddi,企业能够注册自己所能提供的 web 服务以供别的企业和用户查询访问。uddi 利用 soap 消息机制来发布,编辑,浏览 以及查找注册信息。它采用 xml 格式来封装各种不同类型的数据,并且发送到注册 中心或者由注册中心来返回需要的数据。 2.2 网络安全性问题网络安全性问题 xml 的开放性使得在网络上传输 xml 消息承担很大的安全风险18-22。 web 服 务通信使用的并不是二进制的协议,而是普通的文本协议,这种以文本形式存在的 消息在网络上传输时,其安全性比二进制的协议更容易受到威胁。如何保证 web 服 务的安全性3,4,成为当前的研究热点。 表表2.1 网络通信安全四大标准网络通信安全四大标准 安全网络通信标准安全网络通信标准 安全服务安全服务 目标目标 数据的机密性 保密服务 保证只有预期的接收者阅读数据中 预期的部分,防止非法的信息存取和 信息在传输过程中被非法窃取 数据的完整性 完整性服务 防止未经授权的用户改变或者删除 信息,保持信息的完整、统一。数据 接收者能够检验数据并没有被修改 过 身份的确定性 源鉴别服务 数据接收者能够确定数据的来源 不可抵赖性 抗否认服务 活动完成者不能否认其执行过的操 作 安全性是一种防止不完全被信任的用户访问信息和其它计算资源的技术。一般 来说,安全的网络通信需要满足以下四个标准,它们分别对应于四个安全服务,它 13 们通常用来描述安全系统必须支持的属性。如表2.1所示。 另外,网络上常见的重传攻击也是安全系统必须面对的一个问题。 2.2.1 数据机密性数据机密性 数据机密性是指通讯双方之间传输的数据内容不被任何第三方获取,即使第三 方在网络上截取到通讯双方的信息,也完全不能理解这些信息,即通讯的内容对其 他第三方是完全保密的。 要实现网络通讯的数据机密性,有两种较为常用的方法。第一种方法是利用专 用网络或虚拟专用网络(vpn) 使通讯双方在安全的信道中实现机密性。这种方法实 现的成本较高,而且不适用于web服务这种地域广泛的、多平台的分布式应用;第 二种方法是使用数据加密,在不可信信道中传输经过加密处理的数据。这种方法可 以利用现有的网络,在现有的普通网络中传输敏感的信息。 2.2.2 数据完整性数据完整性 数据完整性是指要传送的信息在不安全信道传输时,发送者和接收者可以根据 需要检测传输的信息是否被篡改。数据完整性并不是指避免传输的信息被篡改,而 是指如果信息发生了被篡改的情况,通讯双方可以检测出这一篡改,从而根据相应 策略作出反应。 数据完整性通常通过散列算法检测。散列算法是一类不可逆的算法,其把可变 长度的数据作为输入,经过一系列转换之后,输出固定长度的数据,其中输出结果 称为摘要。散列算法是从输入到输出的一种单向映射,从输入数据得到输出数据之 后,并不能重新从输出数据经过转换而得到输入数据,而且不能得到关于输入数据 任何可以利用的信息。当输入数据发生微小的变化时,经过散列算法得到的输出数 据将会产生巨大的变化,即与原来的输出完全不同。 2.2.3 身份的确定性身份的确定性 身份的确定性是指通讯双方根据需要验证对方身份的真实性。 14 在现实世界的网络中,网络资源并不是无偿提供的,因此需要对访问者的身份 作出判别。例如网络上的数据库服务器、web 服务器、目录服务器上提供的资源是 根据需要提供给不同的用户访问的,不同的用户所能获得的资源种类不同。服务提 供者就必须制定一套策略来限制非法访问,同时允许合法访问。 2.2.4 不可否认性不可否认性 不可否认性是指消息的发送者不能对其发送过特定的消息这一事实行为进行否 认。 通常通过基于公开密钥基础设施(pki)的数字证书来实现不可否认性。也就是通 过非对称加密算法来实现。发送者利用私钥对发送消息的摘要进行加密,这一过程 称为数字签名。而在非对称加密算法中,要想从公钥计算出私钥是不可能的,除非 拥有特定信息。因此除发送者外的任何人不可能利用发送者的私钥进行数字签名。 因此只要利用发送者的公钥对签名验证成功,就可以说明发送者曾经发送过这条消 息。 2.2.5 重传攻击重传攻击 重传攻击是指恶意破坏者截取服务请求方的服务请求51-52,以请求方的身份, 不断向服务提供方发出服务请求,造成服务被反复调用,这会给服务器带来极大的 负担,甚至造成服务器瘫痪。 重传攻击的原理是利用服务器端无法识别消息的唯一性和时效性的缺陷。抵御 重传攻击的方法包括时间标签、序列号、挑战响应技术等。 2.3 soap 安全技术安全技术 安全性是个复杂的问题,由于 web 服务的技术特点,传统的网络安全技术已经 不能完全满足要求,需要开发针对 web 服务技术特点的安全技术,以满足新的安全 需求。 web 服务技术的核心是 soap 协议46-50,保证 web 服务的安全必须首先保证 15 soap 消息的安全。自从 soap 规范从 2001 年发布以来,soap 规范的安全机制一 直受到人们的广泛关注。 soap 一个很重要的设计目标就在于它的简单性, 尽可能的 利用已有的标准和协议来实现相应的功能,所以 soap 标准在制定规范时并没有过 多考虑 soap 的安全性要求,现有 soap 安全规范是基于 xml 安全标准的。 2.3.1 安全令牌安全令牌 网络通信遇到的最基本的问题可能是身份验证问题。在网络中表明身份的方法 有多种,比如用户名或 x.509 证书等。 在 soap 消息头中嵌入相应的安全令牌元素,可以进行身份验证。安全令牌代 表某种声称集合,比如名称、身份、键、组、特权、功能等。在同一个 soap 消息 头中甚至可以可以嵌入不同的安全令牌,消息的接收方可以根据实际情况来选择安 全令牌进行身份验证。 安全令牌可以分为两种:未签署的安全令牌和签署的安全令牌,所谓签署的安 全令牌是一个被特定授权机构宣称和加密签署的安全令牌,比如 x.509 证书。未签 署的安全令牌包括用户名令牌等。 2.3.2 xml 加密技术加密技术 加密就是利用技术手段把重要的数据变为乱码(加密)传送, 到达目的地后再用相 同或不同的手段还原(解密)。在已有网络资料传递的安全标准 ssl/tls 后,又要发 展 xml 加密技术的主要原因是由于 xml 加密技术具有 ssl/tls 所没有的特点 24-26,比如选择性加密、安全存储等。 xml加密技术的基础是xml加密规范(xml encryption syntax and processing)。 xml加密规范提供了一个标准的机制来以xml这种标准格式表示加密后的内容,使 用xml加密的元素的大致结构如下: 16 各元素的意义和用法如表 2.2 所示。 表表 2.2 xml 加密语法元素及意义加密语法元素及意义 元素名称元素名称 意义和用法意义和用法 encrypteddata xml 加密语法的核心元素, 描述了一个加密数据包含的所 有信息 encryptionmethod 使用 uri 唯一地标识所采用的加密算法,确保通信双方可 以在加密算法上保持一致 keyinfo 用于表达加密数据的密钥信息,是一个可选元素,具有很 大的灵活性,可以根据通信双方的约定,记录密钥名称 (keyname),密钥值(encryptedkey ),数字证书,甚至是获得 密钥的转换方法描述,从而确保密钥的安全性。 cipherdata 标记被加密的数据。 encryptionproperties 子元素可以用来描 述加密数据和密钥的附加信息,比如时间戳、加密序列号 等 xml加密规范详细描述了加密的步骤,如下: (1)选择一种加密算法。 (2)获取加密密钥,并使用keyinfo元素对其进行描述。如果使用的是非对称加 密算法则要构造encryptedkey元素,并在keyinfo元素中指明其url值。 (3)加密数据。如果加密类型为加密元素或者加密内容,则首先将其数据转换 为utf8编码方式,然后使用上述1、2步中的密钥加密数据。 (4)构造加密类型的xml元素结构。如果在第3步中要将加密的数据放入 encrypteddata的cipherdata中,则构造ciphervalue元素。其内容的编码方式为base64 码。如果将结果存放于其它地方,则需要构造cipherreference元素。 (5)处理encrypteddata元素。如果加密类型为元素加密,应该使用生成的 encrypteddata元素替换该元素。如果为元素内容加密,则将加密元素的子元素替换 为encrypteddata元素。 17 相应的解密过程如下: (1)读取xml文档,获得相应的信息,如加密算法及密钥信息等。如有必要, 需要通过外部数据源获得信息。 (2)根据keyinfo元素获得加密密钥信息。如果加密密钥被加密了,则定位到 encryptedkey元素,使用本地密钥库中的私钥解密。 (3)解密cipherdata元素中的数据。如果密文提供在ciphervalue元素中,读取 这个值,并将其从base64编码转换为字节类型,如果密文存放于其它地方,则通过 cipherreferece获得,从网络中或者文件中获得密文,然后进行同样的转换最后使用 前两步中得到得算法和密钥信息解密密文。 (4)根据加密的类型处理加密数据。将解密后的明文使用utf-8格式编码,根 据加密的类型即元素加密或内容加密将明文替换到相应的位置。 xml加密用xml格式来表示加密结果,提供了一个标准的处理模型。这种标准 的表示格式和处理模型支持互操作性,从而有助于加密文档的交换。尽管xml加密 处理了许多加密中的问题并且使它在web服务中的使用更为简便,但它也存在着一 些限制。如: (1)xml加密的语法和处理模型非常复杂,如果没有适当的实现工具来支持, 则应用程序发现使用xml加密很困难。 (2)xml加密没有为加密和解密提供标准的编程api或者web服务模型。这对 于那些跨平台的应用程序来说可能会产生可移植性的问题,因为应用程序的代码由 专用供应商的api决定。 (3)在将加密后的xml片断插入到另一个上下文中时,需要仔细地准备xml 文档,如果不存在适当的实现工具支持,则它可能会被应用程序丢失。并且当一个 上下文中生成的加密内容被放到另一个上下文中时可能会产生id冲突。 2.3.3 xml 数字签名技术数字签名技术 数字签名技术是在公钥加密技术基础上发展起来的一种重要的数据安全技术, 可以实现数据完整性、不可否认性和发送方的身份验证等功能。 xml数字签名技术的基础是由ietf和w3c联合开发的xml数字签名规范28, 是 在现有数字签名基础上的扩展。xml数字签名为数据xml文档提供以下保障: 18 (1)完整性:由于对数据进行签名,对数据的未授权篡改能够被检测出来。 (2)身份验证:保证数据来自签名者。 (3)不可抵赖性:保证签名者承认文档内容。 xml数字

温馨提示

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

评论

0/150

提交评论