一种改善Web服务安全性的方法

文档序号:7704316阅读:149来源:国知局
专利名称:一种改善Web服务安全性的方法
技术领域
本发明涉及网络通讯技术和网络安全技术领域,具体涉及一种改善 Web服务安全性的方法。
背景技术
Web服务是一种跨平台、跨语言的互联网信息传递技术,可以使用 不同的开发技术实现Web服务的开发。在Web服务中传输的数据是以 XML格式存在的,大多数的应用程序都是在HTTP协议上使用SOAP (简 单对象访问协议,Simple Object Access protocol)协议数据包作为绑定来 调用Web服务的。HTTP是Web浏览器使用的协议,只要你能使用Web浏 览器上网浏览网页,那么调用的Web服务不管是在局域网内还是在地球 的另一端,都不会因为防火墙而出现调用上的问题。在互联网盛行的今 天,Web服务也作为不同计算机和不同平台进行信息传递的标准盛行起 来。
当前,Web月良务作为计算机之间进行通信的一种方法,已经应用到 各个领域。这些应用通常采用以客户/服务器模式来实现的。在客户/服 务器模式种,客户端通过调度程序或者代理类型的对象将请求发送到远 程服务器上的Web服务,Web服务在远程响应客户端的请求,并且最终 将数据返回给客户端。
Web服务并不追求一般的代码可移植性,而是为实现数据和系统的 互操作提供的一种可行的解决方案。Web服务使用基于XML的消息处理作为基本的数据通信方式,这样就消除了不同的组件模型、操作系统和
编程语言之间的差异。Web服务是为应用程序的使用而准备的,而不是为最终用户准备的。通过将一个系统作为一个Web服务,第三方可以将此系统功能整合到自己的客户应用程序中。这样就获得了 一种开发解决方案的新途行无须在系统中设计所需的功能,只需简单地访问合适的Web服务以执行所需的操作即可。
由于Web服务采用XML格式作为数据传递方式,当在互联网中使用时,数据安全性将大为降低。例如在短信应用系统中,为了方便第三方应用集成商使用短信应用,服务端提供一个发送短信的Web服务接口给集成商的客户端程序调用,通常客户端和服务端数据传递的流程图如图l所示。
客户端向Web服务端发起请求的步骤如下
1)、客户端根据用户名和用户密码生成如下XML格式请求数据包
< XML version="1.0" encoding="UTF-8" >〈Actionlnfo version="1.0"><AuthInfo>
<!一用户名-->
〈oginname〉用户名</loginname>〈!-md5加密后的串,md5(密码+时间戳)—><loginpass>9ba29aa50c786fa395a3afb981 </loginpass><!—时间戳—>
<timestamp>20090101225501 </timestamp></AuthInfo><SMSInfo>
<!—短信内容-->
〈ContenP短信内容〈/Content〉
<!--定时时间-->
<ScheduleDate>2008-12-2 17:38:16</ScheduleDate></SMSInfo>
〈RevMobile〉手机号码l,手机号码2 </RevMobile></ActionInfo>
5请求数据包中loginpass是采用用户密码明文+时间戳(timestamp)组成的字符串,之后再利用MD5加密算法生成密码MD5字符串,客户端利用生成的数据包向服务端发起发送请求;
2) 、服务端接收到请求数据包,根据用户从数据库中得到用户密码明文,再按照loginpass加密规则,生成MD5码与请求数据包中的loginpass节点的内容比较完成请求合法性校验,并进行相关处理返回客户端处理结果
3) 、客户端接收服务端的处理结果,完成请求。
此方案采用MD5加密的方式进行安全验证,因MD5为不可逆加密算法,可以确保用户密码不被破解;但由于Web服务传递的数据为XML格式,黑客们可以通过网络截包工具,截获到客户端向服务端发送的请求数据包,分析出服务端和客户端数据传递的格式,在不改变用户名、MD5密码串和时间戳信息的前提下修改其他信息向服务端发送,在用户密码
没有发生改变之前,服务端无法辨别此请求是否为非法请求,只能把它看成合法请求进行处理。

发明内容
本发明要解决的技术问题是提供一种改善Web服务安全性的方法,克服现有技术基于XML的Web服务的服务端容易遭受黑客恶意攻击的缺陷。
本发明为解决上述技术问题所采用的技术方案为一种改善Web服务安全性的方法,Web服务的客户端与服务端使用传输XML格式消息的传输协议进行通讯,包括步骤
Al、客户端生成XML格式的请求数据包,所述请求数据包包含使用散列算法对用户密码或者用户密码以及所述请求数据包中的时间戳进行加密产生的第 一报文摘要,并发送给服务端;A2、服务端在数据库中查找与所述请求数据包中的用户名关联的用户密码,使用所述散列算法对存储的用户密码或者存储的用户密码以及所述请求数据包中的时间戳进行加密,产生第二报文摘要;
A3、服务端将第一报文摘要与第二报文摘要进行比对,如果两者相同,则在内存中生成并保存一个会话标识,以存储的用户密码为密钥使用对称加密算法对所述会话标识进行加密,并发送给客户端;
A4、客户端以用户密码为密钥使用所述对称加密算法对所述会话标识进行解密,得到所述会话标识的明文,并^f吏用所述会话标识的明文向服务端发送会话请求;
A5、服务端收到所述会话请求后,首先判断内存中是否存在与所述会话请求中的所述会话标识的明文相同的会话标识,如果存在,则处理所述会话请求,清除所述会话标识,并返回处理结果。
所述的改善Web服务安全性的方法,其中所述XML格式消息设为SOAP协议消息。
所述的改善Web服务安全性的方法,其中所述传输协议设为HTTP、SMTP、 TCP或者Jabber协议。
所述的改善Web服务安全性的方法,其中所述散列算法设为MD5散列算法。
所述的改善Web服务安全性的方法,其中所述对称加密算法设为AES算法。
所述的改善Web服务安全性的方法,其中所述步骤A3包括步骤为所述会话标识预设失效时间,超过预设失效时间则删除所述会话标识。
本发明的有益效果本发明改善Web服务安全性的方法采用了加密会话ID的方式进'行Web服务的强化安全验证,对已经完成会话的会话ID和超过预设失效时间的会话ID进行及时清除,使黑客利用截获会话ID的方式对Web服务服务端进行攻击的可能性大大降低,并且会话ID的生成和处理都在计算机内存中完成,这同样减小了会话ID外泄的可能性,本发明大大提高了 Web服务的安全性。


本发明包括如下附图
图1为现有技术Web服务客户端和服务端数据传递流程图;图2为本发明Web服务客户端和服务端数据传递流程图。
具体实施例方式
下面根据附图和实施例对本发明作进一步详细说明如图2所示,本发明Web服务客户端向服务端发起请求的步骤如下1)客户端向服务端发起获取会话ID请求,发送的请求数据包格式如下
< XML version-" 1.0" encoding="UTF-8" ><ActionInfo version=" 1.0"><AuthInfo>
<!一用户名-->
<loginname>ffl户名</loginname>
<!—md5加密后的串,md5(密码+时间戳)—>
<loginpass>9ba29aa50c786fa395a3afb981</loginpass>
<!—时间戳—>
<timestamp>20090101225501 </timestamp>々AuthInfo>
8</ActionInfo>
请求数据包中logi叩ass是利用用户密码明文+时间戳(timestamp )组成的字符串使用MD5加密算法生成的密码MD5字符串,客户端利用生成的数据包向服务端发起发送请求;
2)服务端判断用户名和密码是否正确,用户信息不合法,返回给客户端失败信息;用户信息合法,服务端利用用户信息和当前时间戳在内存中生成一个32位的会话ID,保存到内存会话ID管理对象中,并利用用户的密码为密钥用AES算法对会话ID进行加密,返回加密会话ID给客户端。
3 ) 客户端获取到服务端返回的加密会话ID,利用自己的用户密码对会话ID进行解密得到会话ID的明文。
4) 客户端利用会话ID明文发起会话请求,并等待服务端响应,请求包纟各式如下
< XML version="1.0" encoding="UTF-8" ><ActionInfo version-" 1.0">
<SessionID>D41 D8CD98F00B204E9800998ECF8427E</SessionID><SMSInfo>
<!—短信内容—>
〈Content〉短信内容々ContenP"
<!—定时时间—>
<ScheduleDate>2008-12-2 17:38:16</ScheduleDate></SMSInfo>
〈RevMobilO手机号码l,手机号码2 </RevMobile></ActionInfo>
5) 服务端接收到会话请求先判定会话ID在会话ID管理对象中是否存在,如果存在服务端判定该会话ID合法,处理此会话请求,并清除此会话ID,返回请求处理结果,否则拒绝此会话请求。
6) 客户端得到服务端会话请求结果,完成整个会话请求。如果黑客通过截获客户端发送的获取会话ID请求XML信息,并模拟发送截获的XML信息给服务端,得到加密的会话ID,但由于无法破解XML信息中的用户MD5密码,所以无法解密会话ID,也就没有办法发起会话请求;如果黑客通过截获客户端发送服务端的会话请求XML信息,服务端对响应完成的会话,会自动清除会话ID,并由于会话ID管理对象会对超过预设失效时间的会话ID进行删除处理,因此可以防止黑客截获会话ID,利用无效会话ID进行非法会话请求。
本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效结构变化,均包含于本发明的权利范围之内。
权利要求
1、一种改善Web服务安全性的方法,Web服务的客户端与服务端使用传输XML格式消息的传输协议进行通讯,其特征在于,包括步骤A1、客户端生成XML格式的请求数据包,所述请求数据包包含使用散列算法对用户密码或者用户密码以及所述请求数据包中的时间戳进行加密产生的第一报文摘要,并发送给服务端;A2、服务端在数据库中查找与所述请求数据包中的用户名关联的用户密码,使用所述散列算法对存储的用户密码或者存储的用户密码以及所述请求数据包中的时间戳进行加密,产生第二报文摘要;A3、服务端将第一报文摘要与第二报文摘要进行比对,如果两者相同,则在内存中生成并保存一个会话标识,以存储的用户密码为密钥使用对称加密算法对所述会话标识进行加密,并发送给客户端;A4、客户端以用户密码为密钥使用所述对称加密算法对所述会话标识进行解密,得到所述会话标识的明文,并使用所述会话标识的明文向服务端发送会话请求;A5、服务端收到所述会话请求后,首先判断内存中是否存在与所述会话请求中的所述会话标识的明文相同的会话标识,如果存在,则处理所述会话请求,清除所述会话标识,并返回处理结果。
2、 根据权利要求1所述的改善Web服务安全性的方法,其特征在 于所述XML格式消息设为SOAP协议消息。
3、 根据权利要求2所述的改善Web服务安全性的方法,其特征在 于所述传输协议设为HTTP、 SMTP、 TCP或者Jabber协议。
4、 根据权利要求3所述的改善Web服务安全性的方法,其特征在 于所述散列算法设为MD5散列算法。
5、 根据权利要求4所述的改善Web服务安全性的方法,其特征在 于所述对称加密算法设为AES算法。
6、 根据权利要求5所述的改善Web服务安全性的方法,其特征在 于,所述步骤A3包括步骤为所述会话标识预设失效时间,超过预设 失效时间则删除所述会话标识。
全文摘要
本发明公开了一种改善Web服务安全性的方法客户端生成请求数据包,请求数据包包含使用散列算法对用户密码加密产生的第一报文摘要,并发送给服务端;服务端使用散列算法对存储的用户密码进行加密,产生第二报文摘要;服务端比对第一报文摘要与第二报文摘要,如果相同,生成并保存会话标识,以存储的用户密码为密钥使用对称加密算法加密会话标识,并发送给客户端;客户端以用户密码为密钥使用对称加密算法解密会话标识,得到会话标识的明文,并使用会话标识的明文向服务端发送会话请求;服务端收到会话请求后,首先判断内存中是否存在与会话请求中的会话标识的明文相同的会话标识,如果存在则处理会话请求,清除会话标识,并返回处理结果。
文档编号H04L29/06GK101640682SQ20091010765
公开日2010年2月3日 申请日期2009年6月4日 优先权日2009年6月4日
发明者刘国炯, 张代军 申请人:深圳市汇海科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1