Web服务数据通信安全研究与实现.docx
- 文档编号:12013265
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:60
- 大小:760.90KB
Web服务数据通信安全研究与实现.docx
《Web服务数据通信安全研究与实现.docx》由会员分享,可在线阅读,更多相关《Web服务数据通信安全研究与实现.docx(60页珍藏版)》请在冰豆网上搜索。
Web服务数据通信安全研究与实现
Web服务数据通信安全研究与实现
摘要
随着互联网的飞速发展,信息的分享、获取和发布进入了一个新时代。
Web服务解决了传统网络应用程序的分布式对象、中间件技术的相互独立性和紧耦合性,其诸多优点使得不同分布式集成架构的系统可以方便的相互沟通,因而其发展和应用的潜力巨大,但人们在享受Web服务的便利同时,也面临着安全问题。
本文在Web服务安全规范的基础上构建了一种Web服务安全模型,主要工作包括:
1)分析Web服务的技术基础,在充分研究了Web服务安全威胁及Web服务安全技术的基础上,提出了一种比较完整的、基于消息层的Web服务安全解决方案;
2)运用多层架构,将各个复杂的功能抽象成特定的模块,实现了业务和逻辑的相互分离,增强了代码的重用性;
3)详细描述.NET环境下实现Web服务安全的方法,通过监听和对比加密前后的消息,探讨传输的安全性与效率;
关键词:
Web服务;Web服务安全;XML签名;XML加密
WebServiceDataCommunicationSecurityResearchandImplementation
ABSTRACT
WiththerapiddevelopmentoftheInternet,informationsharing,informationaccessandinformationreleaseenteredanewera.Webservicessolvedtheproblemsofmutualindependenceandthetightly-coupledofmiddlewareanddistributed-objectinthewebenvironmentofthetraditionalwebapplications.Sincetherearelotsofmeritsinwebservices,itcanmakethesystemswhichhavedifferentdistributedintegratedframeworkcommunicatewitheachotherconveniently.So,therearegreatpotentialforthedevelopmentandapplicationofwebservices.However,whenweareenjoyingtheconvenienceofwebservices,thesecurityproblemsarestandingout.
BasedontheWebServicesSecuritySpecification,thispaperbuiltawebservicesecuritymodel.Themajorworksasfollows:
1.Byanalyzingthetechnicalfoundationofwebservices,reserchingonthethreatandtherelatedtechnologyofwebservices,afairlycomplete,systemmessagelayerbasedwebservicessecuritysolutionispresented.
2.Usingthe.NETmulti-storeystructure,abstractingthevariousfunctionsofthesystemintospecificmodules,separatingthebusinesslogicandbusinesslogic,enhancingthereusabilityofthecode.
3.Thispaperdescribedthe.NETwebservicesenvironmenttoachievesecurityapproachindetail,andgavesomecodesoftherealizationofSOAPmessagesignaturesandencryption.
Keywords:
WebServices;WebServicesSecurity;XMLsignature;XMLencryption
目录
1概述1
1.1课题背景1
1.1.1WEB服务及其发展1
1.1.2现有安全机制保障WEB服务安全的不足2
1.2本文的组织结构2
2Web服务及安全性分析4
2.1WEB服务的体系结构4
2.1.1WEB服务体系结构及其角色4
2.1.2WEB服务体系结构中的操作5
2.1.3WEB服务的构件6
2.2WEB服务的关键技术6
2.2.1WEB服务协议栈6
2.2.2XML技术8
2.2.3SOAP协议规范9
2.3WEB服务的安全问题分析14
2.3.1WEB服务安全需求分析14
2.3.2WEB服务面临的主要威胁与对策16
3信息安全基础19
3.1数据加密19
3.2加密原理20
3.2.1加密方法及算法20
3.2.2加密过程21
3.3密钥管理22
3.4数字签名23
4Web服务安全模型设计24
4.1WEB服务安全模型的提出24
4..2安全模型系统的组成25
4.3模型处理流程26
4.4SOAP消息安全处理过程27
4.4.1SOAP消息安全处理模块设计27
4.4.2身份认证处理29
4.4.6基于SAML的跨域单点登录30
5Web服务数据通信安全的实现31
5.1软件平台简介31
5.2设计过程31
5.2.1高招志愿采集系统的基本框架31
5.2.2高招志愿采集系统的开发模型32
5.3高招志愿采集系统安全需求与功能模块34
5.4WEB服务设计及实现35
5.4.1WEB服务设计35
5.4.2WEB服务部署37
5.5安全功能设计及实现37
5.5.1证书的生成38
5.5.2客户端SOAP数字签名与服务器端验证38
5.5.3客户端SOAP加密与服务器端解密40
5.5.4SOAP消息监听41
6总结45
参考文献46
致谢47
附录部分源程序代码48
附件1开题报告
附件2英文翻译原文及译文
1概述
目前,被业界称为计算机IT技术第三次革命的WebService技术已经成为创建可互操作的分布式应用程序的新平台,得到了广泛的应用。
与传统的组件技术不同,WebService可以把不同平台开发的不同类型的功能块集成在一起,提供相互之间的互操作。
所以,WebService被普遍认为是下一代分布式系统开发的模型,然而WebService要得到广泛的应用,其安全性是一个重要因素。
在开放的网络上,如果不保证WebService的安全,WebService的应用将受到很大的限制。
人们关注的安全问题主要包括:
一致性,机密性,身份鉴别和验证,授权和访问限制。
1.1课题背景
1.1.1Web服务及其发展
Web服务通常被定义为是自我遏制、自我描述的标准组件能通过Web实现出版、查找和调用。
他们不仅能通过互联网完成离散性的商务功能,还能为多种形式的程序、数据和中间件之间的通信建立标准方法。
Web服务不是真正的转换技术。
虽然可以说他们有革新潜力,但适用就是发展。
较以往,Web服务将会更加具有广泛的协同性、可控性和共享性。
过去,平台与应用之间相互依从。
而现在,Web服务已经与两者相脱离,不管是在什么样的平台之下,都能使应用软件存在于自己的平台上,并能互相操作。
大多数测试Web服务或将他们做成产品的企业还是将他们的Web服务框架置于防火墙后面来执行,并作为一种低成本的专利集成技术而成为企业的择优选择。
比如,一个需要给银行客户提供信息的网站,网站有不同的产品,客户就可以通过Web服务和底层系统来获得信息。
Web服务在后端集成上的作用很大。
公司将使用Web服务来将内部独立的应用程序和运行团体相链接,或者将多频道的前端服务,如Web、手机和声音与一整套共享的后端服务相链接。
Web服务的另一阻碍将是确保组织者和网络的可靠性。
企业需要给开放网络建立一个强大和可靠的异步信息标准。
其中之一就是集中起来,将商业元素进行可靠控制。
1.1.2现有安全机制保障Web服务安全的不足
WebService的安全性研究主要集中在两个方面:
一是通过扩展XML来实现WebService的安全,如XMLSignature,XMLEncryption,SAML,XACML,XRML和XKMS;另一个方面是通过制定WebService安全协议来实现WebService的安全。
如WS-Security,WS-SecureConversation,WS-Trust,WS-Policy和WS-SecurityPolicy。
XMLSignature和XMLEncryption是比较成熟的W3C推荐规范,定义了数字签名和加密的XML编码格式,需要和其他的规范协作,其安全性依赖于其他的安全技术,如TLS/SSL和IPSec等。
因此,我们认为利用现有的PKI/PMI技术,在不改变WebService现有协议的前提下,也能达到保证WebService安全性的目的。
近年来,随着Internet的迅速发展及控制自动化技术的不断提高,企业的信息化程度也越来越被企业重视。
企业充分利用计算机、互联网等现代信息技术,将企业的生产、经营及管理流程在线实现,并使企业真正可以在线获得完整及时的信息,使企业内外的信息能更好地共享和集成,不断提高生产、经营、管理、决策、服务的效率和水平,进而提高企业经济效益和企业竞争力。
然而,目前在工业控制领域的生产部门中,OPC规范已经被确定为工业标准,已得到过程控制设备制造商和工业控制软件开发商的支持。
现有OPC标准虽然实现了OPCServer与现场设备的直接通信,但缺乏对OPCServer的统一管理,使得OPCServer间的直接通信还没有得到很好的解决,大多高层应用程序不提供与OPCCOMServer进行通信的OPCCOM接口,使OPCServer与上层无法顺畅的连接和通信;另外,许多应用程序是基于非微软平台的,不能有COM进行通信,因此它在不同平台之间和远距离系统的数据交换问题商还未得到很好的解决。
另外,由于数据加密的各方面问题,Web服务传输的信息容易被拦截和浏览,导致Web服务的安全性不足。
综上所述,随着Web数据库的应用越来越广泛,其服务的安全性成为现今互联网所关注,因此如何才能保证和加强数据库的安全性已成为目前必须要解决的问题。
1.2本文的组织结构
本文共分为五个章节,内容安排如下:
第一章绪论,阐述了论文的选题背景,分析了当前Web服务数据通信安全的状况,阐述了本文的主要工作。
第二章Web服务及其安全性分析,如题所示,这一章重点在于介绍Web服务及安全性的一些基本的知识,其中包括Web服务的体系结构、关键技术、特点等概念,从而能够更深入的对Web服务数据通信安全进行研究。
第三章信息安全基础。
主要介绍了数据加密原理以及算法过程,另外简单的讲述了数字认证技术。
第四章在XML及Web服务安全技术的基础上,提出了一个实现Web服务安全的模型,通过介绍各组成模块的功能及消息的处理流程,说明了保证Web服务安全性的核心是保证传输层SOAP消息的安全。
第五章Web服务及其安全功能实现,说明模型的可行性,通过对数据SOAP消息的侦听,验证了模型能够保证消息的完整性、机密性。
2Web服务及安全性分析
Web服务不同于传统的Web应用,Web应用基于用户与Web的交互,Web服务着重于软件与软件的交互。
Web服务是一种新兴的分布式计算技术,它以现有Internet技术为支撑,其主要目标就是在现有的各种异构平台的基础上构筑一个通用的与平台无关,与语言无关的技术层,各种不同平台之上的应用依靠这个技术层实施彼此的连接和集成。
这将无疑极大地促进各种商务系统、企业应用系统的集成,降低成本,从而为电子商务的发展奠定坚实的基础。
本章将从Web服务体系结构、Web服务关键技术、Web服务的特点及面临的安全挑战等几个方面,对Web服务作一个比较全面的介绍。
2.1Web服务的体系结构
2.1.1Web服务体系结构及其角色
Web服务是描述一些操作(利用标准化的XML消息传递机制可以通过网络访问这些操作)的接口。
Web服务是用标准的、规范的XML概念描述的,称为Web服务的服务描述。
这一描述囊括了与服务交互需要的全部细节,包括消息格式(详细描述操作)、传输协议和位置。
该接口隐藏了实现服务的细节,允许独立于实现服务基于的硬件或软件平台和编写服务所用的编程语言使用服务。
这允许并支持基于Web服务的应用程序成为松散祸合、面向组件和跨技术实现。
Web服务履行一项特定的任务或一组任务。
Web服务可以单独或同其它Web服务一起用于实现复杂的聚集或商业交易。
Web服务体系结构基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互。
交互涉及发布、查找和绑定操作。
这些角色和操作一起作用于Web服务构件:
Web服务软件模块及其描述。
在典型情况下,服务提供者托管可通过网络访问的软件模块(Web服务的一个实现)。
服务提供者定义Web服务的服务描述并把它发布到服务请求者或服务注册中心。
服务请求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用Web服务实现或同它交互。
服务提供者和服务请求者角色是逻辑结构,因而服务可以表现两种特性。
这些操作、提供这些操作的组件及它们之间的交互[1],如图2.1所示。
图2.1Web服务角色、操作和构件
其中,各角色的功能描述如下:
(1)服务提供者(ServiceProvider,SP)
从企业的角度看,这是服务的所有者。
从体系结构的角度看,这是托管访问服务的平台。
服务提供者用WSDL描述Web服务的接口。
(2)服务请求者(ServiceRequestor)
从企业的角度看,这是要求满足特定功能的企业。
从体系结构的角度看,这是寻找并调用服务,或启动与服务交互的应用程序。
服务请求者角色可以由浏览器来担当,由人或无用户界面的程序(例如,另外一个Web服务)来控制它。
服务请求者使用SOAP来调用Web服务对象提供的接口。
(3)服务注册中心(ServiceRegistry)
这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。
在静态绑定开发或动态绑定执行期间,服务请求者查找服务并获得服务的绑定信息(在服务描述中)。
对于静态绑定的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。
同样,服务请求者可以从服务注册中心以外的其它来源得到服务描述。
2.1.2Web服务体系结构中的操作
对于利用Web服务的应用程序,必须发生以下三个行为:
发布服务描述、查询或查找服务描述以及根据服务描述绑定或调用服务。
这些行为可以单次或反复出现。
这些操作具体为:
(1)发布(Publish)
为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。
发布服务描述的位置可以根据应用程序的要求而变化。
(2)查找(Find)
在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要求的服务类型。
对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到查找操作:
在设计时为了程序开发而检索服务的接口描述,而在运行时为了调用而检索服务的绑定和位置描述。
(3)绑定(Bind)
最后需要调用服务。
在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、联系和调用服务,从而在运行时调用或启动与服务的交互。
Web服务使用动态绑定方式,这说明使用Web服务的应用程序可以是动态设计,并在运行时将客户绑定到指定服务器上。
2.1.3Web服务的构件
Web服务构件包括服务和服务描述两类。
(1)服务(Service)
在这里,Web服务是一个由服务描述来描述的接口,服务描述的实现就是该服务。
服务是一个软件模块,它部署在由服务提供者提供的可以通过网络访问的平台上。
服务存在就是要被服务请求者调用或者同服务请求者交互。
当服务的实现中利用到其它的Web服务时,它也可以作为请求者。
(2)服务描述(ServiceDecryption)
服务描述包含服务的接口和实现的细节。
其中包括服务的数据类型、操作、绑定信息和网络位置。
还可能包括可以方便服务请求者发现和利用的分类及其它元数据。
服务描述可以发布给服务请求者或服务注册中心。
Web服务体系结构解释了如何实例化元素和如何以一种可以互操作的方式实现这些操作[1]。
2.2Web服务的关键技术
2.2.1Web服务协议栈
Web服务协议栈的基础是网络层。
Web服务要被服务请求者调用,就必须是可以通过网络访问的。
Internet上可以公用的Web服务使用普遍部署的网络协议。
HTTP凭借其普遍性,成为了Internet可用的Web服务真正的标准网络协议。
Web服务还可以支持其它Internet协议,包括SMTP(SimpleMailTransferProtocol,简单邮件传输协议)和FTP(FileTransferProtocol,文件传输协议)等。
图2.2web服务概念性协议栈
第二层是基于XML的消息传递,它表示使用XML作为消息传递协议的基础。
Web服务选择SOAP作为XML消息传递协议。
服务描述层实际上是描述文档的一个协议栈。
首先,WSDL是基于XML的服务描述的真正标准。
这是支持可互操作的Web服务所需的最小标准服务描述。
WSDL定义了服务交互的接口和结构。
要指定业务环境、服务质量和服务之间的关系,我们还需要另外的描述。
WSDL文档可以由其它服务描述文档来补充,从而描述Web服务的这些更高级的方面。
例如,描述业务环境除了使用WSDL文档,还要使用UDDI数据结构。
Web服务流程语言(WebServicesFlowLanguageWSFL)文档中则描述了服务组成和流程。
因为Web服务被定义为可以通过SOAP从网络进行访问,并由服务描述表示,所以该协议栈中的前三层需要提供或使用Web服务。
最简单的协议栈将包括网络层的HTTP,XML消息传递层的SOAP协议以及服务描述层的WSDL。
所有企业间或公用Web服务都应该支持这种可互操作的基础协议栈。
Web服务,特别是企业内部或专用Web服务,能够支持其它的网络协议和分布式计算技术。
从Web服务协议栈可以看出,Web服务涉及到XML技术、SOAP协议规范、UDDI规范、WSDL规范等关键技术,下面逐一简要介绍XML技术、SOAP协议规范[2]。
2.2.2XML技术
XML是一种显示数据的标记语言,它能使数据通过网络无障碍地进行传输,并显示在用户的浏览器上。
XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。
它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。
但XML克服了HTML的很多局限。
与HTML相比,XML具有明显的特点:
(1)使用有意义的标记(TAG).HTML给浏览器读取,不能传达数据的语义,但XML具有语义。
(2)数据的语义与显示方式分开。
HTML是决定数据显示方式的语言,XML是描述数据内容的语言,本身并不决定数据该如何显示,数据的显示由XSL(ExtensibleStylesheetLanguage)决定。
(3)可自定义的标记。
HTML标记由少数权威团体制定,种类有限且不能随意添加。
XML可由用户按需要增加标记。
如数学标记语言MATHML、财经标记语言FPML,电子商务标记语言EBXML等。
(4)严格的语法控制。
HTML语法规则比较多元化,具有较大灵活性。
文件结构比较松散,不能很容易的转换为其他类型格式,比较难用程序来做大量而有效的处理,数据再利用的潜力大为降低。
XML对语法有严格的要求,所有XML的文件都必须经过严格的“验证”过程才算完成,文件格式容易转换[3]。
XML最大的优势在于对各种数据的管理。
任何系统都可以通过XML的解析器来读取XML数据,因此它的数据可以通行各处,而不用担心系统不支持的问题。
(1)数据的检索。
Internet上主要的数据检索方式有分类检索和全文检索。
检索效率低,或找不到。
XML在语义标记作为搜索索引,在文件中截取关键部分,所有标记内的数据都可视为一个元素,而每一个元素都可以作为数据的索引。
(2)数据的显示。
XML将数据保存的格式与数据显示的方式分开,使得XML文件可以轻易地更换数据显示的方式,仅需改变XSL的设置,用户就可以将同一数据制作成HTML,PDF,WML(WirelessMarkupLanguage),HDML(Hand-HeldDeviceMarkupLanguage)等不同格式,供不同的硬件显示。
(3)数据的交换。
XML语法简单,可以被所有的机器解读,又可以在各种平台上使用,使得XML有潜力成为一个通行四海皆准的标记语[4]。
2.2.3SOAP协议规范
SOAP(SimpleObjectAccessProtocol,简单对象访问协议)是基于XML的通讯协议,主要用于计算机之间的通信。
使用SOAP,两个系统不需要运行于相同的平台上,也不需要用同一种语言编写就可以相互通信,提高了Internet上的互操作性。
在SOAP规范中,SOAP被定义成非集中式环境和分布式环境下端对端之间交换结构化和类型化数据的轻量级协议。
这种环境通常是指Internet上的互操作性,但是它也并不局限于Internet,也可以用于局域网(LAN)内的通信。
它通过提供一个模块化的包模型以及消息编码的方式定义了交换消息的简单机制。
通过支持SOAP,Web网站和应用程序就能够对外提供可以通过编程接口获取的Web服务,而不需要人的交互或参与。
通过这种方式,任何一个应用都可以集成其它的软件构件、应用、过程。
例如一个应用服务提供商就可以利用SOAP来构造一个客户认证、支付、计算等服务,并且向其它客户进行服务的提供和销售。
通过标准传输协议,SOAP能利用Internet现有的开放体系结构,并且能够被任何支持最基本的Internet标准的系统所接受。
可以看到,基础结构要求支持一个虽然简单但是功能强大的遵从SOAP的XMLWeb服务,因为它基本不向现有的Internet基础结构中添加新的内容,然而却有助于访问SOAP构造的服务。
1)SOAP模型
SOAP是由UserLand,IBM,Microsoft,DevelopMentor等公司共同起草,并由W3C公布推荐的一种分布式处理协议,其结构模型如图2.3所示。
图2.3SOAP模型
在SOAP模型中,能够处理SOAP消息的处理机被称为SOAP节点,每个SOAP节点都驻留一个实现了SOAP协议的处理器,SOAP发送节点上的用户SOAP应用程序生成需要传递的数据单元集,每个数据单元被称为SOAPBlock,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web 服务 数据通信 安全 研究 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)