您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 第五章Web服务安全
第五章Web服务安全目录5.1Web服务5.2网络服务安全隐患5.3SSL/TLS5.4S-HTTP5.5Web服务安全规范协议族5.1Web服务万维网(WorldWideWeb,,或简称Web)是欧洲粒子实验室最先开发的一个分布式超媒体信息查询系统,目前它是Internet上最为先进、交互性能最好、应用最为广泛的信息检索工具,万维网包括各种各样的信息,如文本、声音、图像、视频等。万维网采用“超文本”技术,使得用户以通用而简单的办法就可获得Internet上的各种信息。随着万维网的迅猛发展,万维网已变成一个巨大的全球化的信息仓库,现在人们不仅可以通过网络发布和共享各种信息,而且还可以在网络上提供和获得各种应用,例如网上购物、聊天、网络教育、电子商务等。但是伴随而来的是用户对网络提供服务能力的新要求,其中更方便的跨平台的信息交互就是众多要求之一,而Web服务的提出可以有效地解决这一问题。由于在分布式系统中,基于Web的数据交互在Internet上传输时可能会遭受窃取、伪装、恶意欺骗、篡改等安全威胁,因而如何有效地防御各种安全威胁、保证机密数据的安全性就成为一个需要解决的实际问题。Web服务(WebServices)主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口,通过借鉴和利用现有的Internet开发互连标准在各种平台基础上构建一个通用的、与平台无关的、与语言无关的技术层规范,来实现不同平台应用的互连和操作,为进一步信息共享、推广和开发各类Internet应用提供最佳手段,也为网格计算等技术注入新的活力。然而,Web服务目前还没有一个公认的确切定义。从表面上看,Web服务就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的应用程序编程接口(API),就是说,用户能够用编程的方法通过Web调用来实现某个功能的应用程序。大致上,Web服务有以下两种表述。5.1.1Web服务的定义和基本结构1.Web服务是一组应用程序W3C将Web服务定义为:Web服务是由统一资源指示符(URI)标识的软件应用程序,其接口和绑定可以通过可扩展标记语言(XML)进行定义、描述和发现,Web服务通过基于Internet的协议与其他软件直接交互。2.Web服务是一组服务Web服务是一个集自包含、自描述、模块化于一体的应用,可以发布、定位,通过Web调用,可以执行从简单请求到复杂商务处理的任何功能。一旦部署,用户或者其他应用程序就可以发现并调用它部署的服务。其中,自包含意味着一个服务不应该依赖其他服务而存在,服务和服务之间是松散耦合的;自描述指服务本身提供描述自身的详细信息,如通信所需的数据类型、消息结构、传输协议等;模块化揭示了Web服务的内部实现仍然是基于对象和组件的。因此,Web服务具有完好的封装性、松散耦合,使用标准协议规范,高度可集成能力、可跨越防火墙等特征,因而具有广阔的应用前景。它为B2B通信和系统整合提供了巨大的可能性,但因缺乏一个有效的安全解决方案,使得Web服务不能方便地应用于企业业务。而Web服务的基本架构由三个角色和三个基本操作构成。三个角色分别为服务提供者(ServiceProvider)、服务请求者(ServiceRequest)和服务注册中心(ServiceRegistry),三个基本操作分别为发布(Publish)、查找(Find)和绑定(Bind)。这些角色和操作一起作用于Web服务构件:Web服务软件模块及其描述。服务提供者定义Web服务的服务描述并把它发布给服务请求者或服务注册中心。服务请求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定,并调用Web服务实现或与它交互。服务提供者和服务请求者是逻辑结构,因而服务可以表现两种特性。这些操作和提供这些操作的组件以及它们之间的交互,如图5.1所示。其中,各角色的功能描述如下:(1)服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管访问服务的平台。服务提供者用WSDL描述Web服务的接口。(2)服务请求者。从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户界面的程序(例如,另外一个Web服务)来控制它。服务请求者使用SOAP来调用Web服务对象提供的接口。图5.1Web服务组件交互(3)服务注册中心。这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。在静态绑定开发或动态绑定执行期间,服务请求者查找服务并获得服务的绑定信息(在服务描述中)。对于静态绑定的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。同样,服务请求者可以从服务注册中心以外的其他来源得到服务描述,例如本地文件、FTP站点、Web站点、广告和服务发现(AdvertisementandDiscoveryofServices,ADS)或发现Web服务(DiscoveryofWebServices,DWS)。三个基本操作说明如下:(1)发布。为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。发布服务描述的位置可以根据应用程序的要求而变化。(2)查找。在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉查找操作:在设计时为了程序开发而检索服务的接口描述及在运行时为了调用而检索服务的绑定和位置描述。(3)绑定。因为最终目的是为了绑定服务,所以在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、联系和调用服务,从而在运行时调用或启动与服务的交互。Web服务使用动态绑定方式,这说明使用Web服务的应用程序可以是动态设计,并在运行时将客户绑定到指定服务器上。由图5.1可以看出,Web服务构件包括服务和服务描述两类:(1)服务。在这里,Web服务是一个由服务描述来描述的接口,服务描述的实现就是该服务。服务是一个软件模块,它部署在由服务提供者提供的可以通过网络访问的平台上。服务存在的原因就是要被服务请求者调用或者与服务请求者交互。当服务的实现中利用到其他的Web服务时,它也可以作为请求者。(2)服务描述。服务描述包含服务的接口和实现的细节,其中包括服务的数据类型、操作、绑定信息和网络位置等。服务描述可以发布给服务请求者或服务注册中心。要以一种可互操作的方式执行发布、发现和绑定这三个操作,必须有一个包含每层标准的Web服务协议栈。其中最重要的三个协议分别是简单对象访问协议(SimpleObjectAccessProtocol,SOAP)、Web服务描述语言(WebServicesDescriptionLanguage,WSDL)和统一描述、发现和集成(UniversalDiscovery,DescriptionandIntegration,UDDI)其中具体的Web服务协议栈,见表5.1。5.1.2Web服务相关技术Management管理界面五、服务发布/发现:UDDI四、服务描述:WSDL三、XML消息:SOAP二、传输协议:HTTP、SMTP一、Internet:IPv4、IPv6表5.1Web服务协议栈注:HTTP为HyperTextTransferProtocol,超文本传输协议SMTP为SimpleMailTransferProtocol,简单邮件传输协议其中,第一、二层是已经定义好的并且广泛使用的传输层和网络层的标准,如IP、HTTP、SMTP等。而第三、四、五层这三层是目前开发的Web服务的相关标准协议,包括SOAP、WDSL和UDDI。表5.1中左侧部分是各个协议层的公用机制,这些机制一般由外部的正交机制来完成。1.XMLXML是由W3C于1998年2月发布的一种标准。与HTML(HypertextMarkupLanguage,超文本置标语言)一样,XML基于SGML(StandardGeneralizedMarkupLanguage,标准通用置标语言),是一种显示数据的置标语言,它能使数据通过网络无障碍地进行传输,并显示在用户的浏览器上。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。但XML克服了HTML的很多局限。与HTML相比,XML具有以下明显的特点:(1)使用有意义的标记(Tag)。HTML给浏览器读取,不能传达数据的语义,但XML具有语义。(2)数据的语义与显示方式分开。HTML是决定数据显示方式的语言,XML是描述数据内容的语言,本身并不决定数据该如何显示,数据的显示由XSL(ExtensibleStylesheetLanguage,可扩展样式表语言)决定。(3)可自定义的标记。HTML标记由少数权威团体制定,种类有限且不能随意添加。XML可由用户按需要增加标记,如数学置标语言(MATHML)、财经置标语言(FPML)、电子商务置标语言(EBXML)等。(4)严格的语法控制。HTML语法规则比较多元化,具有较大灵活性。其文件结构比较松散,不能很容易地转换为其他类型格式,比较难用程序来做大量而有效的处理,数据再利用的潜力大为降低。XML对语法有严格的要求,所有的XML文件都必须经过严格的“验证”过程才算完成,文件格式容易转换。XML最大的优势在于对各种数据的管理。任何系统都可以通过XML的解析器来读取XML数据,因此它的数据可以通行各处,而不用担心系统不支持的问题。数据的检索。Internet上主要的数据检索方式有分类检索和全文检索。数据检索效率低,或找不到。XML将语义标记作为搜索索引,在文件中截取关键部分,所有标记内的数据都可视为一个元素,而每个元素都可以作为数据的索引。数据的显示。XML将数据保存的格式与数据显示的方式分开,使得XML文件可以轻易地更换数据显示的方式。仅需改变XSL的设置,用户就可以将同一数据制作成HTML、PDF、WML(WirelessMarkupLanguage)、HDML(Hand-HeldDeviceMarkupLanguage)等不同格式,供不同的硬件显示。数据的交换。XML语法简单,可以被所有的机器解读,又可以在各种平台上使用,使得XML有潜力成为一个通行通用的置标语言。在XML1.0标准中,文档类型声明是通过DTD(DocumentTypeDefinition,文档类型定义)来描述的。DTD是一系列对元素类型、属性实体和注释的定义,它说明哪些在文档里是合法的,并且在什么位置才合法,一个XML文档可以在其中指定符合某个特定的DTD。DTD的一个缺点是采用的语法不直观,另外一个缺点是不能够让用户规定不同元素的类型。XML需要一种更具表达能力的解决方案,而不仅仅是DTD。在这种需求下,W3C推出了XMLSchema。Schema对DTD功能做了很多的改进和增强,使得它最终必定会终结DTD,作为XML的一个标准出现。与DTD相比,XMLSchema相对于DTD的明显好处是,XMLSchema文档本身也是XML文档,而不像DTD一样使用自成一体的语法。这就方便了用户和开发者,因为可以使用相同的工具来处理XMLSchema和其他XML信息,而不必专门为XMLSchema使用特殊工具。XMLSchema简单易懂,懂得XML语法、规则的人都可以立刻理解它。总之,XMLSchema具有一致性、扩展性、规范性、互换性等诸多优点。2.简单对象访问协议(SOAP)由于跨平台的应用程序在数据共享方面能力有限,因此人们努力建立有关数据格式和数据交换方面的标准,来实现不同系统间的自由通信和共享数据,而SOAP就是实现这个目标的核心协议之一。SOAP是XMLWeb服务的通信协议,是描述XML如何调用的一种规范,SOAP兼容多种底层接口,例如HTTP和SMTP。SOAP的功能主要是帮助请求者调用Web服务操
本文标题:第五章Web服务安全
链接地址:https://www.777doc.com/doc-2083456 .html