Web服务安全性的研究与分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web服务安全性的研究与分析
徐丽丽,袁景凌,苗连超
武汉理工大学计算机应用专业,武汉(430070)
Email: xulili1402043@
摘要:Web服务技术是建立在开放的Internet基础上的新的分布式计算模型。对于服务消费者来说,必须确保发布的基于Web服务的业务事务和处理是安全的、可靠的和可用的,因此Web服务要被广泛接受并取得成功,其安全性是一个很重要的因素。本文先是对Web 服务安全性的四个主要问题进行分析,然后列举并比较了三种Web服务安全性问题的解决方案,并对其中的XML加密技术进行了详细分析。
关键词:Web服务,SSL,XML加密,XML数字签名
中图分类号:TP309文献标识码:A
1. Web服务的意义和概念
1.1 为什么需要Web服务
近些年来,Internet的发展突飞猛进,电子商务水平也在逐渐的提高,越来越多的组织机构将其业务模式转向Internet,不仅仅是各种组织和商业实体发生了巨大的变化,人们的日常生活也变得丰富多彩。现在人们不仅可以通过Internet发布和共享各种信息而且还可以在Internet上提供和获得各种应用,例如网上购物、聊天、网络教育、电子商务、IP电话等等,伴随而来的是对网络提供服务能力的新要求。
Web服务主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口,通过借鉴和利用现有的Internet开发互联标准在现有的各种一个平台基础上构建一个通用的、与平台无关与语言无关的技术层规范,来实现不同平台应用的互联和操作,为进一步信息共享、推广和开发各类Internet应用提供了最佳手段,也为网格计算等技术注入了新的活力。Web服务使得电子交易成为可能,免除了人的参与,极大的提高了效率。因此现代社会需要Web服务,并且其已经变成是必不可少的,可以说Web服务标志着继PC、Internet之后的第三代计算机技术革命的到来。
1.2 Web服务的概念
Web服务技术是建立在开放的Internet基础上的新的分布式计算模型。目前开发的Web 服务所使用的是Internet上统一、开放的标准,包括:HTTP(超文本传输协议)、简单对象访问协议SOAP(Simple Object Access Protocal)、服务描述协议WSDL(Web Services Description Language)和服务发现/集成协议UDDI(Universal Description Discovery and Integration)等,它们共同的特点是简单、易于实现并且可以在任何支持这些标准的环境(Windows,Linux)中使用。Web服务协议层次如图1所示:[1]
(5)服务发布/发现:UDDI (4)服务描述:WSDL (3)XML消息:SOAP (2)传输协议:HTTP,SMTP (1)Internet
Management:管理界面
图1 Web服务协议层次图
然而,对于什么是Web服务目前还没有一个公认的确切定义。从表面上看,Web服务就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API,就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从技术开发和商业应用的角度考虑,Web服务有以下几种表述:
(1)Web服务是一组应用程序
W3C将Web服务定义为:Web服务是由URI标识的软件应用程序,其接口和绑定可以通过XML构件进行定义、描述和发现,Web服务通过基于Internet的协议与其他软件直接交互。
(2)Web服务是一组服务
Web服务是一个集自包含、自描述、模块化的应用,可以发布、定位,通过Web调用,可以执行从简单请求到复杂商务处理的任何功能。一旦部署以后,用户或者其他应用程序可以发现并调用它部署的服务。
(3)Web服务是一个服务平台
这里的Web服务是指架构Web服务的整体技术框架,Web服务就是一个集部署、发现、事务、安全、认证等基本功能为一体的服务平台,并具有一系列相关的技术标准,这些标准使其具有作为一个服务平台的完整性和优越性。
(4)Web服务将开辟一种崭新的商业模式
从商业应用的角度来看,任何一项先进的技术都离不开商业应用的催化。尽管不同的商业公司在战略上开展Web服务的出发点不尽相同,但都确立了软件变服务的商业模式,并着力于解决服务的智能化及个性化等问题。可以预见,随着Web服务机器系列技术逐步由构想走向实用,微软通过Web服务所描绘的未来数字生活中“软件变服务”的模式,无疑将给人类的未来生活带来全新的感受和前所未有的巨变。
根据Web服务的定义,我们可以看出:与其他分布式计算模型相比较,Web服务计算模型对最小体系架构的要求很低,Web服务使用普遍存在的网络协议(如HTTP)和数据格式(如XML)进行通信,支持这些通用的网络标准的任何系统都可以支持Web服务,使得Web服务的来源异常广泛。同时Web服务的强自治、松耦合、粗粒度、开放性与可集成的特点使得Web服务不仅屏蔽了编程语言的差距也消除了构件标准之间的竞争,在使用任何操作系统、编程语言和对象模型的平台上都得以实现。不仅屏蔽了编程语言之间的差距,也消除了构件标准之间的竞争。另一方面又可以确保Web服务在使用任何操作系统、编程语言和对象模型的平台上都得以实现。
1.3 Web服务的架构模型
Web服务是独立的、模块化的应用,能够通过Internet来描述、发布、定位以及调用。
与之相对应,Web服务架构模型是一个概念性框架,其中包括了三种角色:服务提供者、服务注册中心和服务请求者。相应角色之间的交互主要通过发布、查找和绑定三个操作完成。
这些角色和操作一起作用于两个Web服务构件实体:Web服务及其描述。在典型情况下,服务提供者可通过网络访问的软件模块,定义Web服务的服务描述,并把它发布到服务使用者或服务注册中心。服务使用者使用查找操作从本地或服务注册中心搜索服务描述,然后使用服务描述与服务提供者绑定,并调用相应的Web服务软件模块,同它交互。
2. Web服务安全性
然而,对于服务消费者来说,必须确保发布的基于Web服务的业务事务和处理是安全的、可靠的和可用的,试想在如今开放的互联网上,如果不能保障Web的安全,那么Web 服务的应用将会受到很大的限制,因此Web服务要被广泛接受并取得成功,其安全性是一个很重要的因素。
2.1 Web服务安全性的主要问题
目前保证Web服务安全性要解决的主要问题有:[2]
(1)数据的机密性
数据的机密性是指数据在传输过程中,确保重要的、私有的信息不会泄漏,即任何未经授权的第三方都不能获取数据。例如:通过信用卡网上购物,需要保证在浏览器和商家的Web服务器之间传输的用户数据不会被第三方所获取。
(2)数据的完整性
数据的完整性是指数据在传输的过程中不能被未经授权的第三方修改、破坏,要保证数据内容的真实性和可靠性,只能给有权利的用户进行操作。例如,在网上购买商品时,购买的数目、品种等信息不能被任何未经授权的第三方修改。
(3)身份的验证
身份的验证是指对通信双方身份的确认,不让冒名顶替者获取双方的数据。身份验证包括对用户身份的授权、管理和审查,即需要知道用户是谁,这些用户在系统中的权限等等。例如,当卖方收到订单要求购买货物时,一定要能验证该订单一定来自于那个客户而不是一个伪造的订单,不然就会损失惨重。
(4)不可抵赖性
交易的不可抵赖性是通过对历史记录的跟踪来实现,一旦买方下了订单付了钱,卖方也如期的交货,则该交易已经完整的实施,买卖双方对于该交易有不可抵赖性,从而确定和保护了买卖双方的的利益。例如:买方向卖方下了订单,卖方按照订单将货如期的交给买方,买方不能否认曾发送过此订单。
2.2 Web服务安全性问题的解决方案
(1)SSL(Secure Socket Layer)
SSL主要是用来解决Web浏览器和服务器之间数据传输的加密问题,对于一些敏感数据,如用户信用卡信息等建立一个安全的传输通道,用数字证书的方式提供了浏览器和服务器之间的透明认证。
SSL采用了RSA公开密钥加密算法在浏览器和服务器之间建立安全的通道,用于保护浏览器和服务器之间重要数据的传输。为应用层将数据通信提供安全的途径,位于可靠的传