一种防止Web服务被非法调用的方法

文档序号:7553221阅读:387来源:国知局
专利名称:一种防止Web 服务被非法调用的方法
技术领域
本发明涉及一种防止Web service被非法调用的方法,属于信息技术领域,特别涉及信息系统间的安全集成。
背景技术
制造执行系统主要是对生产车间的生产运作过程进行管理,是一套软件系统,制造执行系统的计划、物料等信息来源于ERP系统(企业资源计划系统);制造执行系统的BOM(物料清单)数据来源于PDM系统(产品数据管理系统),同时制造执行系统的计划执行情况还需反馈到企业的CRM系统(客户关系管理系统),制造执行系统在生产过程中的作用相当于信息集成中心系统,需要同周边系统进行大量的信息集成,而进行信息集成的关键技术在于Web service技术。Web service(Web服务)是一个平台独立的,松稱合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,Web service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制,但Web service只是提供了符合标准的信息集成通道,对于Web service调用的安全性没有进行规范,因此,对于任何程序都可以通过Web service服务访问数据,显然对于把生产过程数据视为生命的企业是不可接受的,在信息集成时必须考虑Web service调用的安全性。

发明内容
本发明目的在于可克服现有技术中对Web service调用安全考虑不足,提供一种防止Web service被非法调用的方法,以提升调用的安全性。按照本发明提供的技术方案,所述防止Web service被非法调用的方法是:Webservice使用者若使 用Web service提供者提供的服务,Web service使用者必须提供调用令牌,Web service提供者经验证后才能提供服务。具体的,所述调用令牌是Web service提供者验证合法调用的唯一凭证,调用令牌的特征是动态的,以防止令牌的泄露,所述调用令牌生成方法如下:
设Web service调用者和Web service提供者的共享密钥为keysha,e,调用时的系统时间为Time^hy—,时间的精度为秒级,设Timeisys-为调用时系统时间的秒数,设置调用的最大时延为15秒,对调用时间的秒位进行调整,调整公式为:
Timecall_second =[Time
call-second
/15] X 15,其中[]表示取整;
用Timeeall_s_d代替Timeeall_systeni_s_d,形成调用时间信息Timeeall,之后利用对称加密算法对Timeeall进行加密,最终形成调用令牌Tokenrallt5所述验证的方法如下:
使用Web service提供者的令牌验证模块对调用者的调用合法性进行验证,首先取得被调用时的系统时间,设为TimeInv()ke_syst ,时间的精度为秒级,设TimeInv()ke_syst _se_d为调用时系统时间的秒数,设置调用的最大时延为15秒,对调用时间的秒位进行调整,调整公式为:
T ImeInvoke-Second = [Τ ΠΙΘ Invoke-second/15] X 15,其中[]表示取整;
用 TimeInv()ke_se_d 代替 TimeInv()ke_systeni_se_d,形成调用时间信息 TimeInv()ke,之后利用与调用令牌相同的对称加密算法对TimeInTOkf;1进行加密,最终形成验证令牌Tokenlnvtjkei ;
在进行验证时,只需比较验证令牌Tokenlnv-与调用令牌Tokencall是否相等,相等则通过验证。Web service使用者与Web service提供者的交互过程包括以下步骤:
(1)Webservice使用者依据调用时间按照调用令牌生成方法生成调用令牌,为Webservice服务的访问提供令牌;
(2)选择Webservice提供者中的具体方法,并依据方法的方法名、参数名、参数类型对调用信息进行封装,封装为XML格式的信息文;
(3)以keyshaM为密钥,采用对称加密算法,对在步骤(2)中形成的XML格式的信息文进行加密处理;
(4)通过Webservice实际调用Web service提供者,并将使用keyshara加密后的信息文传递给Web service提供者的统一调用接口方法;
(5)Web service接收到调用请求后,首先生成验证令牌,与传递过来的调用令牌进行对比,若调用令牌不等于验证令牌,则转到记录异常调用处理过程;
(6)若调用令牌等于验证令牌,其利用keysh_,依据对称加密算法对调用消息进行解
析;
(7)依据调用信息中的方法名、参数名、参数类型、参数值进行内部执行模块中的实际方法的调用;
(8)将实际方法的调用结果进行XML格式的信息封装,并利用keysh_,采用对称加密算法对信息进行加密处理;
(9)ffebservice使用者接收到消息后,利用keyshaM对返回的调用结果进行解密分析,至此整个Web service调用过程结束。本发明不依赖于第三方服务,其优点在于:(I)方法简单易用低成本;(2)具有较高的安全性。本方法的令牌是动态令牌,随时间的变迁,令牌也是不同的,这样即使拦截了网络数据包中的令牌,依然不能调用Web service提供者,避免了令牌的盗用。


图1是本发明所涉及的系统体系结构。图2是Web service调用者与Web service提供者交互示意图。
具体实施例方式下面结合附图和实施例对本发明作进一步说明。本发明所涉及的系统体系结构如图1所不,系统分为Web service调用者和Webservice提供者两部分,其中Web service提供者提供同集成业务相关的服务,Web service调用者通过调用Web service提供者提供的服务获得相关的集成信息,这两者间的关系是调用与被调用的关系。
本发明限定Web service使用者若使用Web service提供者提供的服务,Webservice使用者必须提供调用令牌,Web service提供者经验证后才能提供服务。所述调用令牌是Web service提供者验证合法调用的唯一凭证,调用令牌的特征是动态的,以防止令牌的泄露。所述Web service调用者包括:调用令牌生成模块、调用信息封装模块、调用参数加密模块、消息解析模块和访问代理模块。其中,调用令牌生成模块用于生成访问Web service提供者的令牌,为防止被盗用,系统采用的是动态令牌,该令牌是Web service判断调用是否合法的关键。调用令牌生成方法如下:
设Web service调用者和Web service提供者的共享密钥为keysha,e,调用时的系统时间为Timec;all_sysW这里时间的精度为秒级,设Timec;all__m_s_d为调用时系统时间的秒数,考虑到调用的时延,这里设置最大时延为15秒,则对调用时间的秒位进行调整,调整公式为:
Timecall_second =[Time
call-second
/15] X15,其中[]为取整函数。用TimeLtmd代替Time,———,形成调用时间信息Timerall,之后利用通用的对称加密算法对Timeeall进行加密,即最终形成调用令牌Tokenrallt5调用信息封装模块,主要是根据调用Web service方法的参数信息,对所传参数进行XML格式化,调用信息包括:方法名、参数个数、参数名、参数类型、参数值、参数方向。其中参数名必须为字母开头;参数类型为整形、字符串、xml ;参数方向为In或Out, In代表传递参数给Web service服务提供者,Out代表返回参数给Web service调用者,经信息封装后形成XML格式的信息文。调用参数加密模块,主要是对信息封装模块中形成的XML格式的信息文进行加密处理,以防在Web service调用过程中出现信息泄露,在此以keysh_为密钥,采用通用的对称加密算法对信息文进行加密。消息解析模块,主要对Web service提供者返回的信息采用keyshme为密钥对返回的消息进行解密处理,Web service提供者返回的消息包括:调用令牌、返回信息。其中返回信息包括:返回参数个数、返回参数名、返回参数类型、返回参数值。 访问代理模块,主要提供访问Web service提供者的具体通信方法,该模块提供统一访问Web service提供者的接口,其中传入参数为2个,一个是调用令牌,另外一个是调用信息;返回参数为1个,为字符串类型,以供接收Web service提供者返回的信息文。所述Web service提供者包括:令牌验证模块、消息解析模块、内部执行调用模块、返回信息封装模块、返回信息加密模块、异常调用日志模块和Web service服务提供模块。其中,令牌验证模块,主要用于对调用者的调用合法性进行验证,其取得被调用时的系统时间,设为Timelnvsyst ,这里时间的精度为秒级,设TimeInv()ke_syst _se_d为调用时系统时间的秒数,考虑到调用的时延,这里设置最大时延为15秒,则对调用时间的秒位进行调整,调整公式为:
T ImeInvoke-Second = [Τ ime
Invoke-second
/15] X15,其中[]为取整函数。用 TimeInTOke_seemd 代替 TimeInv()ke_systeni_seemd,形成调用时间信息 TimeInTOke,之后利用通用的对称加密算法对TimeInTOkf;1进行加密,即最终形成验证令牌TokenInTOke。在进行验证时,只需比较验证令牌Tokenlnv-与调用令牌Tokeneall是否相等即可。
消息解析模块,其作用与Web service调用者的消息解析模块作用相同。内部执行调用模块,本方法的Webservice服务提供者,为避免系统集成信息的泄露,对外只提供一个统一的调用方法,即包括2个传入参数,I个返回参数,并且对参数都实行了动态令牌加密处理,其内部通过解析具体传递过来的信息文中包括的方法名,由本模块代理执行合适的方法。返回信息封装模块,内部执行调用模块具体执行完毕相应方法后,对于返回信息进行XML格式封装,具体包括:返回参数个数、返回参数名、返回参数类型、返回参数值。返回信息加密模块,由内部执行调用模块具体执行完毕相应方法后,对封装完的返回给调用者的信息,以Toker^11为密钥,采用通用的对称加密算法对返回信息加密。异常调用日志模块,主要记录对于Web service的非法调用信息,信息包括:调用者IP地址、调用时间、调用内容等信息,可用于Web service管理人员日后进行分析。Web service服务提供模块,是提供Web service服务的主体,其提供为完成特定集成任务的若干方法集合,是具体集成任务的实现者,其具体实现方式可以多种,可以基于.Net技术实现,也可以基于J2EE技术实现。下面结合图2对本发明的工作过程作进一步说明。本发明方法涉及Web service使用者与Web service提供者,两者之间依赖于令牌进行合法性验证,对于验证失败的调用,Web service提供者将拒绝提供服务。本方法的令牌是动态令牌,随时间的变迁,令牌也是不同的,这样即使拦截了网络数据包中的令牌,依然不能调用Web service提供者,避免了令牌的盗用。具体步骤如下:
(I)Web service使用者依据调用时间按照调用令牌生成方法生成调用令牌,为Webservice服务的访问提供令牌。(2)依据实际中需要进行信息集成的情况,选择Web service提供者中的具体方法,并依据方法的方法名、参数名、参数类型等信息对调用信息进行封装,封装为XML格式的信息文。(3)以keyshaM为密钥,采用通用对称加密算法,对在步骤(2)中形成的XML格式的信息文进行加密处理。(4)通过Web service实际调用Web service提供者,并将使用keyshara加密后的信息文传递给Web service提供者的统一调用接口方法。(5) Web service接收到调用请求后,首先生成验证令牌,对传递过来的调用令牌进行对比,若调用令牌不等于验证令牌,则其转移到记录异常调用处理过程。(6)若调用令牌等于验证令牌,其利用keyshaM,依据通用对称加密算法对调用消息进行解析。(7)依据调用信息中的方法名、参数名、参数类型、参数值等信息进行内部执行模块中的实际方法的调用。(8)将实际方法的调用结果进行XML格式的信息封装,并利用keysh_采用通用对称加密算法对信息进行加密处理。
(9)ffeb service使用者,接收到消息后,利用keyshme对返回的调用结果进行解密分析,至此整个Web service调用过程结束。
权利要求
1.一种防止Web service被非法调用的方法,其特征是:Web service使用者若使用Web service提供者提供的服务,Web service使用者必须提供调用令牌,Web service提供者经验证后才能提供服务。
2.如权利要求1所述的一种防止Webservice被非法调用的方法,其特征是,所述调用令牌是Web service提供者验证合法调用的唯一凭证,调用令牌的特征是动态的,以防止令牌的泄露,所述调用令牌生成方法如下: 设Web service调用者和Web service提供者的共享密钥为keysha,e,调用时的系统时间为Time^hy—,时间的精度为秒级,设Timeisys-为调用时系统时间的秒数,设置调用的最大时延为15秒,对调用时间的秒位进行调整,调整公式为: Timecall_second =[Time call-second/15] X 15,其中[]表示取整; 用Timeeall_s_d代替Timeeall_systeni_s_d,形成调用时间信息Timeeall,之后利用对称加密算法对Timeeall进行加密,最终形成调用令牌Tokenrallt5
3.如权利要求2所述的一种防止Webservice被非法调用的方法,其特征是,所述验证的方法如下: 使用Web service提供者的令牌验证模块对调用者的调用合法性进行验证,首先取得被调用时的系统时间,设为TimeInv()ke_syst ,时间的精度为秒级,设TimeInv()ke_syst _se_d为调用时系统时间的秒数,设置调用的最大时延为15秒,对调用时间的秒位进行调整,调整公式为: T ImeInvoke-Second = [Τ ΠΙΘ Invoke-second /15] X 15,其中[]表示取整;用 TimeInv()ke_se_d 代替 TimeInv()ke_systeni_se_d,形成调用时间信息 TimeInv()ke,之后利用与调用令牌相同的对称加密算法对TimeInTOkf;1进行加密,最终形成验证令牌Tokenlnvtjkei ; 在进行验证时,只需比较验证令牌Tokenlnv-与调用令牌Tokencall是否相等,相等则通过验证。
4.如权利要求3所述的一种防止Webservice被非法调用的方法,其特征是,Webservice使用者与Web service提供者的交互过程包括以下步骤: (1)Webservice使用者依据调用时间按照调用令牌生成方法生成调用令牌,为Webservice服务的访问提供令牌; (2)选择Webservice提供者中的具体方法,并依据方法的方法名、参数名、参数类型对调用信息进行封装,封装为XML格式的信息文; (3)以keyshaM为密钥,采用对称加密算法,对在步骤(2)中形成的XML格式的信息文进行加密处理; (4)通过Webservice实际调用Web service提供者,并将使用keyshara加密后的信息文传递给Web service提供者的统一调用接口方法; (5)Web service接收到调用请求后,首先生成验证令牌,与传递过来的调用令牌进行对比,若调用令牌不等于验证令牌,则转到记录异常调用处理过程; (6)若调用令牌等于验证令牌,其利用keysh_,依据对称加密算法对调用消息进行解析; (7)依据调用信息中的方法名、参数名、参数类型、参数值进行内部执行模块中的实际方法的调用;(8)将实际方法的调用结果进行XML格式的信息封装,并利用keysh_,采用对称加密算法对信息进行加密处理; (9)ffebservice使用者接收到消息后,利用keyshaM对返回的调用结果进行解密分析,至此整个Web serv ice调用过程结束。
全文摘要
本发明提出一种防止Webservice被非法调用的方法,Webservice使用者若使用Webservice提供者提供的服务,Webservice使用者必须提供调用令牌,Webservice提供者经验证后才能提供服务。所述调用令牌是Webservice提供者验证合法调用的唯一凭证,调用令牌的特征是动态的,以防止令牌的泄露。本发明不依赖于第三方服务,其优点在于(1)方法简单易用低成本;(2)具有较高的安全性。
文档编号H04L29/06GK103179111SQ20131007633
公开日2013年6月26日 申请日期2013年3月11日 优先权日2013年3月11日
发明者史海波, 于海斌, 潘福成, 里鹏, 胡国良, 段彬 申请人:无锡中科泛在信息技术研发中心有限公司, 中国科学院沈阳自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1