网络通讯与安全
本栏目责任编辑:冯蕾
基于SOAP协议的WebService安全机制研究
王
勇
(北京工业大学计算机学院北京100000)
摘要:随着WebService在分布式应用中的不断推广,其安全性能受到了越来越多的重视。传统的WebService以文本的方式传送
SOAP包,而且SOAP协议将安全定性为传输问题,这制约了其进一步的发展,为了解决这些问题,本文对WebService安全问题进行分析,通过将PKI技术与WebService技术的结合,形成了可信的WebService解决方案。
关键词:WebService;soap;xml中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)04-10950-02
AccordingtotheSOAPProtocaloftheWebServiceIntegrationSafeMechanismResearch
WANGYong
(BeijingUniversityofTechnology,CollegeofComputerSciengeandTechnology,Beijing100000,China)
Abstract:WiththeextendingofWebServiceintheapplicationofdistributingmodel,weattachmoreandmoreimportancetothesafetyperformanceofWebService.ThetraditionalWebServicetransmitsSOAPpackagesbytext.Moreover,theSOAPagreementdefinedthesafetyperformanceastransmittingissue,whichrestrictsitsfurtherdevelopment.Inordertosolvetheseproblems,thispaperanalysesthesafetyproblemsonWebServiceandformsthecrediblesolutionstotheWebServicebycombingPKItechnologyandWebServicetechnology.
Keywords:WebService;soap;xml
1WebService及相关技术
1.1WebService概述
WebService作为当前在计算机网络应用领域最热门的技术,已经有了许多成功的应用。但到底是什么是WebService呢?从表面上看,WebService就是一个应用程序,他向外界暴露出一个能够通过Web进行调用的API,这就是说,你能够用编程的方法同过Web调用来实现某个功能的应用程序。从深层次看,WebService是一种新的Web应用程序分支,它们是自包含,自描述,模块化的应用,可以在网络(通常为Web)中被描述,发布,查找以及通过Web来调用。
WebService是基于网络的,分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这么规范使得WebService能与
其他兼容的组件进行互操作,它可以使用标准的互联网协议,像
Soap(SimpleObjectAccessProtocal)是在分散或分布式环境中交换信息的简单协议,它基于XML协议,soap以xml形式提供了
一个简单且轻量的用于在分散或分布环境交换结构化和类型信息的机制,其本身并没有定义任何应用程序语义,如编程模型或特定语义的实现,而是通过提供一个有标准组件的包模型和在模块中编码数据的机制定义了一个简单的表示应用程序语义的机制,使其能够用于从信息传递到RPC的各种系统。
(3)UDDI
统一表述,发现和集成协议,是一套基于Web的,分布式的。为WebService提供信息
注册中心的实现标准,同时包含一组使企业能将自身提供的
HTTP和XML,将功能体现在互联网和企业内部网上,WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性,你可以用你喜欢的任何语言,在你喜欢的任何平台上写WebService.
1.2WebService的技术支持
WebService平台需要一套协议来实现分布式应用程序的创
建。任何平台都有它的数据
表示方法和类型系统。要实现互操作性,WebService平台必须提供一套标准的类型系统,用于沟通不同平台,编程语言和组件模型中的不同类型系统。目前这些协议有:
Webservice注册使得别的企业能够发现的访问协议。
(4)WSDL
WebService描述语言,是一套基于XML的语法,用于将WebService描述为能够进行
消息交换的Services访问点的集合。WebService面向服务的架构(SOA)如图
(1)XMl
可扩展标记语言XML(extensibleMarkupLanguage)是一门新兴的面向Internet应用的
标记语言,它是WWW联合会(W3C)于1998年2月制定的一种通用语言规范。作为一种可用来制定具体应用语言的元语言,
XML既具有强大的表述能力,又具有适合网络应用的简洁性;作为对SGML语言标准的一种改良,XML具有适于异构应用间数据
共享,可以进行数据检索和提供多种语种支持等优点。
WebService系统结构是基于ServicesProvider(服务提供者),ServicesRequestor(服务请求者),ServicesRegistry(服务注册中心)3个角色和Public(发布),Find(发现),Bind(绑定)3个动作构建的,服务提供者利用WSDL描述自己的WebService,并将服务发布到UDDI;服务请求者利用SOAP消息向服务提供着发送使用服务的请求;服务注册中心的作用是通过在UDDI中查找满足服务请求
者要求的服务。
(2)SOAP
收稿日期:2006-12-28
作者简介:王勇,北京工业大学计算机学院2004级硕士研究生,研究方向:信息系统与信息安全。
950
电脑知识与技术
本栏目责任编辑:冯蕾
网络通讯与安全
所谓非对称加密,它使用不同的密钥进行加密和解密操作。这与对称密钥密码形成对比,后者使用相同的密钥进行加密和解密操作。非对称密码中,一个密钥用于加密,但该密钥对于解密是完全无用的。同样,仅仅有一个密钥可用于解密,并且该密钥对于加密也是无用的。最常用的非对称密钥加密算是RSA算法,它是由Rivest,Shamir和Adleman提出的。尽管还有其他一些非对称加密方案,但是RSA算法是当前XML安全标准中规定的唯一一种这样的加密方案。
2WebService安全机制
2.1WebService中存在的安全问题
WebService的基础是soap(简单对象访问协议),soap协议的2个主要设计目标是简单性和可扩展性,因此,soap协议在制定时
并没有过多考虑安全性,而是尽可能地利用现有的标准和协议来实现相应的安全功能,利用现有的SSl和HTTPS协议,就可以很容易的获得连接过程中的安全。然而这种安全实现方法有两个方面的不足,一是它只能保证数据传输的安全,而不是数据本身的安全,数据一旦到达某地,那么就可以被任何人查看。而在Web
Service中,一份数据可能到达很多地方,而这份数据却不该被所
有的接收者查看。二是它提供的是要么全有要么全无的保护,你不能选择哪部分数据要保护,而这种选择也是在WebService中所常要用到的。所以单一的传输解决方案或者普通的防火墙是无法确保服务安全的,一个完整的WebService安全解决方案应该通过利用WebService模型核心组件的可扩展性,建立一整套的安全规范,这些规范建立在一些基础技术如soap,wsdl,xml数字签名(xmlDigitalSignature),xml加密(xmlEncryption)和SSL/TCL的基础之上。
所以,WebService仍然要解决以下的安全问题:
RSA的工作原理:首先随机生成一个公钥和私钥对,然后使用生成的公钥通过RSA算法加密数据;最后用生成的私钥解密被
加密的数据。
2.2.2XML签名
XML签名的语法和处理规范是由W3C和IETF联合制定的。自2002年2月以来,他一直是正式的W3C推荐规范,并得到了广泛的应用。XML数字签名可以提供完整性,并可用于进行发证
人验证,一个数字签名的消息包含验证消息来源和消息内容的信息,因而数字签名能够非常有效地用于SOAP消息认证。
(1)数据的机密性。如何保证传送信息不被未经许可的第三方
看到;
(2)数据的完整性。如何保证收到的信息没有被篡改过;(3)身份认证。如何鉴别通信双方的身份;
(4)授权和访问控制。如何保证用户的操作没有超越它的权
限。
SOAP消息有一个由SOAP标题和SOAP体最后组成的信封。当用于一个RPC调用时,消息中的真实信息就存在于SOAP体内。数字签名特别利用了存在于SOAP标题内的SOAP消息扩展;发送方通过获得密钥对来做准备;被签名的内容储存在SOAP体之内;发送方的私有密钥被用来签名SOAP体;最后,签名被放在SOAP标题中。当处理SOAP消息时,发送方处理SOAP标题并在兑现SOAP请求之前验证签名。
数字签名可以对我们制定的内容提供完整性检查。如果原始内容的某个字节已经被修改,那么签名验证将失败。下面是它的工作原理:
2.2解决方案
WebService的基础是soap,而soap的基础是xml,W3C在XML-SignatureSyntaxandProcessing和XMLEncryptionSyntaxandProcessing中分别定义了数字签名,加密等如何在XML中表
示。
2.2.1XMl加密
XML加密不同于其他传统方法,它可以根据不同要求对电子
文档的不同部分进行加密,而传统方法只能加密文件的全部内容。XML加密有三种方法:加密整个XMl文件;加密XML文件中的元素;加密XML文件中元素的内容。
XMl加密分为对称加密和非对称加密。所谓对称加密是一种
使用相同的密钥来进行加密和解密的加密算法。对称密码包括分组密码和流密码。分组密码加密固定分组长度的明文,分组长度与具体的对称密码以及密钥长度有关。流密码利用密钥推导函数来产生一个密钥流,然后在明文的每一字节和密钥流的每一字节之间进行异或操作来生成密文。
解密、在加密,即3DES通常被称为3DESEDE,意思是加密、
执行DES算法三次。3DES算法的密钥空间大小为2168基本可以认为这种密码是安全的。明文分组输入到密码算法中,使用DES算法对明文进行加密,密钥为,92比特3DES密钥的前64比特(开头的8字节)。然后使用,92比特的3DES密钥的中间64比特密钥对密文进行解密。最后,使用,92比特的3DES密钥的最后64比特对分组进行加密,整个加密过程结束。
数字签名的工作方式
验证数字签名的过程
3结论
随着WebService的应用日益广泛,应用程序拓扑发展到支持防火墙,负载平衡和消息传递中心之类的中介并且人们对服务的安全理解更加深刻,对WebService增加安全性规范的需要就变得更加明显了,本文对目前WebService安全方面存在的问题进行了分析,通过扩展和利用现有的安全性技术和规范提出了安全模型,使用户更加快速地开发安全的,客户操作的WebService.。
(下转第958页)
951
网络通讯与安全
包含了邮件发送过程中的各类行为要素,如:时间、频度、发送IP、服务器特征等。
本栏目责任编辑:冯蕾
同一IP或网段单位时间发来的同一主题的邮件数量;同一IP或网段单位时间发来的同一发件人的邮件数量;同一IP或网段单位时间发来的相同大小的邮件数量等;(2)可变陌生访问(VariableStrangeVisitingLimit,VSVL):是一种控制垃圾邮件发送的技术,但不是一种单纯的发送端控制技术,而是一个需要邮件发送到接收处理各个环节共同参与的体系,该体系通过设定发信限额规则、限额设定规则、限额调整规则,做到自动拒收、处理、反馈垃圾邮件;(3)重复模式检测技术(RepeatPatternDetect,RPT):通过检测发件人发送行为的大量重复过程,来对垃圾邮件做出最初判断;(4)域名解析与反解析技术:即通过TCP/IP协议与域名服务器通信,根据域名获得服务器地址或根据IP地址获得域名。
图2垃圾邮件行为模式识别模型示意图
4.2垃圾邮件行为分类及防范策略
通过对发送垃圾邮件行为的统计分析,垃圾邮件行为主要可分为四类:1)滥发邮件行为。贪婪,数量巨大是垃圾邮件的最本质特征,为此垃圾邮件发送者进行联机查询或投递邮件,通过各种方式投递邮件。因此,发送主机会有异常变动等行为。2)匿名邮件行为。垃圾邮件发送者刻意隐匿发送人、收件人、发件主机或邮件路由等信息。3)非法邮件行为。发送者利用其它邮件服务器的漏洞,借用OpenRelay或Open-Proxy来发送垃圾邮件。4)伪造邮件行为。刻意伪造邮件头干扰信息,使发件人、收件人、发件主机或邮件路由等信息不属实。
针对这四种发送垃圾邮件行为,特提出四种相应防范策略:深入追踪邮件原始发送数据,取得TCP连(1)防范滥发邮件行为。
接建立时所需的IP地址及SMTP连接建立的域名,以此来统计在一特定时间段内发送的邮件数量,做出是否垃圾邮件的判断。(2)防范匿名邮件行为。深入追踪邮件原始发送数据,一旦发现发件人声明的邮件传输记录信息不真实,而是以匿名方式投递或是发件人的邮件传输信息具有异常变化,就会将其判断为具有匿名行为的垃圾邮件。深入追踪邮件原始发送数(3)防范非法邮件行为。据,检查其原始发送地址,如果发现其发送地址不固定或改变频率高,则说明它在利用其它的邮件服务器进行转发,符合常见垃圾邮件发送行为,从而把它归为垃圾邮件。(4)防范伪造邮件行为。通过深入追踪邮件原始发送数据,如果发现发送人声明域名与实际来源IP不符合,发件人伪造成无反向解析域名记录的主机,发件人以答复邮件格式伪造电子邮件,发件人的邮件传输值多处变化、信息不一等,就会将其判断为具有伪造行为的垃圾邮件。
图3
邮件处理流程图
5存在的问题及以后的研究方向
作者通过对垃圾邮件处理的一些探索,提出了基于行为模式识别的反垃圾邮件新机制。在此技术的研究上,还存在一些问题:
(1)本文着重是在原理方法上的分析,行为识别模型也是简要设计,因此今后的研究重点应该是如何把方法模型付诸于实际运用;
(2)在行为识别的层次上,从浅层的识别到深层的追踪还要很好的结合,即如何把浅层的发送时间、频率、IP等行为与深层的邮件通讯行为追踪相结合。
参考文献:
4.3邮件处理流程
行为模式识别技术以插件形式布置与服务器,利用现有资源,无需更新。如图3所示,当有新邮件到达时,根据其IP传输信息、邮件头信息等,逐层提取,逐渐验证,逐次识SMIP会话信息、别,由符合上述行为的特征来断定垃圾邮件,从而做到了最大限度的低漏判误判率,适合大规模邮件服务器。
在部署服务器的同时,主要用到四种技术来处理垃圾邮件。(1)频率技术:同一IP或网段单位时间发来的邮件数量;
[1]谢希仁.计算机网络(第四版)[M].电子工业出版社,2003
(6):292.
[2]反垃圾邮件技术概述[EB/OL].ChinaUnix技术沙龙,http://www.chinaunix.net.
[3]HenryHo-ShingHsieh,HenryKer-ChangChang,JinCherngLin.TheMechanismofInterceptiveE-mailDetectionSystem,[J]2000.
[4]潘文锋.基于内容的垃圾邮件过滤研究[D].中国科学院研究生院硕士学位论文,2004(7).
[5]2005年第三次中国反垃圾邮件状况调查报告[C].中国互联网协会反垃圾邮件中心,2005(11).
[6]叶豪,反垃圾邮件概述[C].中国反垃圾邮件技术研讨会,2004(10).
[7]VapnikV,DruckerH,Wu.D,SupportVectporMachinesforSpamCategorization[J],IETransactionsonNeuralNetwork,1999(10).
[8]中国反垃圾邮件联盟信息.http://www.anti-spam.com.[3]陈荦祺,陈克菲.高性能可信的WebService研究[J].计算机工程,2006年第10期.
[4]朱一群,张全海,李建华.基于XML安全的电子公文系统研究与设计[J].计算机工程,2006年第9期.
[5]曾昭毅,张南平,钟珞.WebService安全机制研究[J].武汉理工大学学报,2004年11期.
(上接第951页)
参考文献:
[1]马忠贵,叶斌,曾广平,涂序彦.基于SOAP的软件人通信模型研究[J].计算机工程,2006年第9期.
[2]金丽娜,将兴浩,李建华.基于属性证书的WebServices访问控制模型[J].计算机工程,2006年第9期.
958
电脑知识与技术