一种安全认证方法、系统及设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种安全认证方法、系统及设备。
背景技术
在网络访问的应用场景中,针对访问请求的进行安全认证是避免非法访问的主要手段。如果系统未接入安全认证与鉴权会导致安全风险的存在。
然而,在现有技术的应用场景中,WEB安全认证的接入方案通常需要接入系统进行代码的修改。在这种安全认证接入方案下,开发、测试与发布会导致止血周期加长。
进一步的,由于安全认证的接入方案需要接入系统进行代码的修改,那么,如果系统系统无法修改代码,就会导致无法接入。例如,系统属于采购的闭源系统、直接使用反向代理服务器实现的资源服务。这就大大增加了系统的安全风险。
发明内容
有鉴于此,本说明书实施例提供了一种安全认证方法、系统及设备,用于解决现有技术中系统接入安全认证时存在的问题。
本说明书实施例采用下述技术方案:
本说明书实施例提供一种安全认证方法,所述方法包括,在网关层构建接入到服务系统的认证模块,使用所述认证模块对针对所述服务系统的第一访问请求鉴权,当鉴权通过时将所述第一访问请求放行到所述服务系统执行,其中,对所述第一访问请求鉴权的流程包括:
针对访问方进行登录认证;
当登录认证成功时生成针对所述访问方的认证令牌,所述认证令牌包括访问方的身份识别ID以及登录所使用的认证方式;
发送所述认证令牌到所述访问方;
接收来自所述访问方的所述第一访问请求,所述第一访问请求包含所述认证令牌;
从所述认证令牌中解析出所述身份识别ID与所述认证方式;
对解析出的所述身份识别ID与所述认证方式进行校验,根据校验结果对所述第一访问请求鉴权。
在本说明书一实施例中,所述认证令牌内置在请求上下文中。
在本说明书一实施例中,所述认证令牌经过加密和/或编码。
在本说明书一实施例中,所述认证令牌经过数字签名。
在本说明书一实施例中,所述方法还包括:
验证所述认证令牌的数字签名和/或时间戳是否有效。
在本说明书一实施例中,针对所述访问方进行登录认证,其中:
接收来自所述访问方的第二访问请求,所述第二访问请求不包含认证令牌;
针对所述第二访问请求进行鉴权;
当针对所述第二访问请求鉴权失败时,发起所述登录认证或令所述访问方发起所述登录认证。
在本说明书一实施例中,针对所述第二访问请求进行鉴权,其中,针对所述第二访问请求进行白名单验证。
在本说明书一实施例中,发送所述认证令牌到所述访问方,其中:
将所述认证令牌内置进请求上下文;
将所述请求上下文返回所述访问方跳转,令所述访问方结合所述请求上下文以及所述第二访问请求发起所述第一访问请求。
本说明书实施例还提出了一种安全认证系统,所述系统被构建在网关层,其包含访问请求接入接口并接入到服务系统,用于对针对所述服务系统的第一访问请求鉴权,当鉴权通过时将所述第一访问请求放行到所述服务系统执行,其中,所述系统包括:
认证令牌生成模块,其用于针对访问方进行登录认证,当登录认证成功时生成针对所述访问方的认证令牌,所述认证令牌包括访问方的身份识别ID以及登录所使用的认证方式;
认证令牌发送模块,其用于发送所述认证令牌到所述访问方;
访问请求接收模块,其用于接收来自所述访问方的所述第一访问请求,所述第一访问请求包含认证令牌,所述认证令牌包括访问方的身份识别ID以及当前登陆所使用的认证方式;
认证令牌解析模块,其用于从所述认证令牌中解析出所述身份识别ID与所述认证方式;
认证模块,其用于对解析出的所述身份识别ID与所述认证方式进行校验,根据校验结果对所述第一访问请求鉴权。
本说明书实施例还提出了一种用于在访问方设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本说明书实施例所述系统所述的方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:根据本说明书实施例的方法,在网关层构建认证模块,基于认证令牌实现安全认证,从而无需修改系统代码就可以在保障业务系统的访问请求经过了多因素的认证逻辑的前提下实现业务系统到服务系统的对接;相较于现有技术,本说明书实施例的方法执行简单,可大大降低认证系统接入成本,提高认证系统接入效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例中认证模块运行逻辑架构示意图;
图2、图4、图5以及图6为本说明书实施例中应用程序的运行方法的流程图;
图3为本说明书实施例中应用程序的运行方法的部分流程图;
图7以及图8为本说明书实施例中系统的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
WEB安全认证的接入方案通常需要接入系统进行代码的修改。这就会导致:
(1)开发、测试与发布会导致止血周期加长;
(2)如果系统系统无法修改代码,就会导致无法接入,例如,系统属于采购的闭源系统、直接使用反向代理服务器实现的资源服务。
针对上述问题,在本说明书实施例中,提出了一种新的安全认证解决方案。在本说明书实施例中,在网关层构建接入到服务系统的认证模块,使用该认证模块对针对服务系统的第一访问请求鉴权,当鉴权通过时将第一访问请求放行到所述服务系统执行。这样,就可以直接在网关层保障业务系统的访问请求进行鉴权验证,而不再需要业务系统对服务系统的系统代码进行修改接入这样的麻烦操作。
进一步的,为了确保认证模块可以实现多因素的认证逻辑,在本说明书一实施例中,基于认证令牌进行安全认证,该认证令牌包括访问方的身份识别ID以及当前登陆所使用的认证方式。即,在发起访问请求时发送认证令牌,认证模块对访问请求进行安全认证时,对认证令牌的访问方的身份识别ID以及当前登陆所使用的认证方式进行校验。这样,就可以直接在网关层保障业务系统的访问请求经过了多因素的认证逻辑,而不再需要业务对系统代码进行修改接入这样的麻烦操作。
进一步的,为了确保认证安全,在本说明书实施例中,认证令牌并不是由访问请求的发起方自行生成的,而是由进行安全认证的认证网关生成的。具体的,由认证网关对访问请求的发起方进行登录认证,当登录认证成功时生成针对访问方的认证令牌。
根据本说明书实施例的方法,在网关层构建认证模块,基于认证令牌实现安全认证,从而无需修改系统代码就可以在保障业务系统的访问请求经过了多因素的认证逻辑的前提下实现业务系统到服务系统的对接;相较于现有技术,本说明书实施例的方法执行简单,可大大降低认证系统接入成本,提高认证系统接入效率。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
在本说明书一实施例中,提出了一种安全认证方法,如图1所示,在网关层构建接入到服务系统100的认证模块101,使用认证模块101对针对服务系统的第一访问请求鉴权(来自访问方,业务系统102),当鉴权通过时将第一访问请求放行到服务系统100执行。
具体的,认证模块101对业务系统102进行登录认证;当登录认证成功时生成针对业务系统102的认证令牌,该认证令牌包括访问方的身份识别ID以及当前登陆所使用的认证方式;认证模块101发送认证令牌到业务系统102;认证模块101接收来自业务系统102的第一访问请求,该第一访问请求包含认证令牌;认证模块101从认证令牌中解析出身份识别ID与认证方式;认证模块101对解析出的身份识别ID与认证方式进行校验,根据校验结果对访问请求鉴权;当鉴权通过时,认证模块101将第一访问请求放行到服务系统100执行。
具体的,在本说明书一实施例中,如图2所示,认证模块的鉴权流程包括:
S101,针对访问方进行登录认证;
S102,当登录认证成功时生成针对访问方的认证令牌,该认证令牌包括访问方的身份识别ID以及当前登陆所使用的认证方式;
S103,发送认证令牌到访问方。
S110,接收来自访问方的访问请求,该访问请求包含认证令牌;
S120,从认证令牌中解析出身份识别ID与认证方式;
S130,对解析出的身份识别ID与认证方式进行校验,根据校验结果对访问请求鉴权。
进一步的,在本说明书一实施例中,认证令牌内置在访问请求的请求上下文中。
进一步的,为了确保数据安全,在本说明书一实施例中,认证令牌经过数字签名。
进一步的,为了确保数据安全,在本说明书一实施例中,认证令牌经过加密和/或编码。
进一步的,在本说明书一实施例中,在对访问请求鉴权的过程中,判断时间戳是否超时。
进一步的,在本说明书一实施例中,在对访问请求鉴权的过程中,判断数字签名是否有效。
进一步的,在本说明书一实施例中,在对访问请求鉴权的过程中,判断认证方式是否满足系统的安全要求。
具体的,在本说明书一实施例中,网络请求入口为认证网关,其会对访问请求(认证令牌)发起认证鉴权,并执行访问控制策略。
进一步的,在本说明书一实施例中,访问请求先经过统一认证网关,然后经过网关认证和鉴权通过的系统,再转给应用方。由于所有应用收到的请求是先经过了认证网关,因此,应用只要接入了认证网关就行,只涉及到网络的修改,不需修改应用内部逻辑。
进一步的,在本说明书一实施例中,访问请求在认证网关经历认证以及鉴权。具体的,在本说明书一实施例中,认证和鉴权是两个概念。首先要经过认证,认证的目的是回答你是谁的问题。认证方式的区分是辅助我判断是否信任你这次告诉我你是谁的这个结果。但是,在某些应用场景中,简单的认证方式不足以让我相信你告诉我的结果。因此,认证之后是鉴权。鉴权的目的是要回答你是否可以操作的问题。
进一步的,在本说明书一实施例中,认证令牌还包括设备属性(设备ID)。设备ID也是为了辅助认证判定的。如果我发现你这台设备不安全或者这台设备的使用方不属于你告诉我的这个身份,那么可能会选择不信任这次认证的结果。
进一步的,在本说明书一实施例中,认证网关向访问控制引擎(Access ControlEngine,ACE,其用于执行访问控制策略,返回控制决策)发起鉴权咨询,ACE执行对访问请求的认证鉴权,判定认证令牌的真实性与达标情况。
进一步的,在本说明书一实施例中,在对访问请求鉴权的过程中,进行白名单判定,判断访问请求是否命中白名单。具体的,在本说明书一实施例中,在对访问请求鉴权的过程中,认证网关进行白名单判定,当访问请求没有命中白名单时,向ACE系统发起鉴权咨询。
具体的,在一应用场景中,如图3所示:
S210,访问方向认证网关发送访问请求;
S220,认证网关接收访问请求;
S221,认证网关向ACE系统发起鉴权咨询;
S230,ACE系统判定认证令牌的真实性与达标情况,向认证网关返回鉴权结果。
进一步的,在本说明书一实施例中,如果鉴权成功,认证网关将访问请求放行到对应的应用系统。
进一步的,在本说明书一实施例中,由认证网关从认证令牌中解析出身份识别ID与认证方式,在向ACE系统发起鉴权咨询时,向ACE系统发送解析出的身份识别ID与认证方式。
进一步的,在本说明书一实施例中,由ACE系统从认证令牌中解析出身份识别ID与认证方式,认证网关向ACE系统发送认证令牌或完整的访问请求。
进一步的,在本说明书一实施例中,认证令牌包括但不限于访问方的身份识别ID以及当前登陆所使用的认证方式,可以根据具体的认证场景需求,配置认证令牌所包含的数据类型。
进一步的,在本说明书一实施例中,使用单点登录系统(Single Sign On,SSO,SSO是在多个应用系统中,访问方只需要登录一次就可以访问所有相互信任的应用系统)实现针对访问方的登录认证以及认证令牌的生成。
进一步的,在本说明书一实施例中,SSO系统生成认证令牌后,将认证令牌返回给认证网关,由认证网关发送认证令牌给访问方。
具体的,在本说明书一实施例中,在一应用场景中,如图4所示:
S310,SSO系统针对访问方进行登录认证;
S320,当登录请求认证成功时,SSO系统针对访问方生成认证令牌;
S330,SSO系统将生成的认证令牌发送认证网关,认证网关将认证令牌返回给访问方;
S340,访问方向认证网关发送访问请求,该访问请求包括SSO系统发送给访问方的认证令牌;
S350,认证网关接收访问请求;
S360,认证网关向ACE系统发起鉴权咨询;
S370,ACE系统鉴权,向认证网关返回鉴权结果。
进一步的,在本说明书一实施例中,如图5所示,方法包括:
S410,接收来自访问方的访问请求,该访问请求不包含认证令牌;
S420,针对不包含认证令牌的访问请求进行鉴权;
S430,当鉴权失败时,发起登录认证或令访问方发起登录认证;
S440,当登录认证成功时生成针对访问方的认证令牌;
S450,发送认证令牌到访问方;
S460,接收包含认证令牌的访问请求;
S470,根据认证令牌对访问请求鉴权。
即,在本说明书一实施例中,访问方发起不包含认证令牌的访问请求后,当被返回的是认证令牌,则再次发起包含认证令牌的访问请求。
具体的,在本说明书一实施例中,如图6所示:
S500,认证网关接收来自访问方的访问请求,该访问请求不包括认证令牌;
S501,认证网关执行白名单判定;
当白名单判定通过时,执行步骤S591,放行访问请求;
当白名单判定不通过时,执行步骤S502,认证网关向ACE系统发起鉴权咨询,ACE系统鉴权,向认证网关返回鉴权结果;
当鉴权成功时,执行步骤S591,认证网关放行访问请求;
当鉴权失败时,S510,认证网关向SSO系统发起登录认证,SSO系统针对访问方进行登录认证;
当登录请求认证成功时,S520,SSO系统针对访问方生成认证令牌;
当登录请求认证失败时,SSO系统向认证网关返回登录认证失败,S592,认证网关拦截访问方的访问请求和/或向访问方返回无法访问提示;
S530,将生成的认证令牌发送给访问方;
S540,访问方向认证网关发送访问请求,该访问请求包括SSO系统发送给访问方的认证令牌;
S550,认证网关接收访问请求;
S560,认证网关向ACE系统发起鉴权咨询,ACE系统鉴权,向认证网关返回鉴权结果;
当鉴权成功时,执行步骤S591,认证网关放行访问请求;
当鉴权失败时,S592,认证网关拦截访问方的访问请求和/或向访问方返回无法访问提示。
进一步的,在本说明书一实施例中,在发送认证令牌到访问方时,并不是仅仅发送认证令牌。具体的,在生成认证令牌后,将认证令牌内置进请求上下文;将内置有认证令牌的请求上下文返回访问方跳转,令访问方结合请求上下文以及最初发送的、鉴权失败的访问请求发起新的访问请求。即,当访问方发送访问请求后,如果被返回内置有认证令牌的请求上下文,则重新发起访问请求,重新发起的访问请求与之前发起的访问请求内容一致,不同的是,重新发起的访问请求的请求上下文内置有认证令牌。
具体的,在本说明书一实施例中,SSO系统在登陆认证成功后会在请求上下文中设置经过数字签名的认证令牌。然后将内置有认证令牌的请求上下文通过认证网关发送给访问方。
进一步的,基于本说明书实施例的方法,本说明书实施例还提出了一种安全认证系统。如图7所示,系统602被构建在网关层,其包含访问请求接入接口(业务系统601接入)并接入到服务系统600,用于对针对服务系统600的第一访问请求鉴权,当鉴权通过时将第一访问请求放行到服务系统600执行,其中,系统602包括
认证令牌生成模块640,其用于针对访问方进行登录认证,当登录认证成功时生成针对访问方的认证令牌,认证令牌包括访问方的身份识别ID以及当前登陆所使用的认证方式;
认证令牌发送模块641,发送认证令牌到访问方;
访问请求接收模块610,其用于接收来自访问方的第一访问请求,第一访问请求包含认证令牌;
认证令牌解析模块620,其用于从认证令牌中解析出身份识别ID与认证方式;
认证模块630,其用于对解析出的身份识别ID与认证方式进行校验,根据校验结果对第一访问请求鉴权。
进一步的,在本说明书一实施例中,在一应用场景中,访问请求接收模块610接收来自访问方的第二访问请求,第二访问请求不包含认证令牌;认证模块630对第二访问请求鉴权;当第二访问请求鉴权失败时,令牌生成模块640针对访问方进行登录认证,当登录认证成功时生成针对访问方的认证令牌,发送认证令牌到访问方;访问请求接收模块610接收第一访问请求,第一访问请求包含认证令牌;认证令牌解析模块620从认证令牌中解析出身份识别ID与认证方式;认证模块630对解析出的身份识别ID与认证方式进行校验,根据校验结果对第一访问请求鉴权。
进一步的,在本说明书一实施例中,如图7所示,系统包括认证网关701、SSO系统702以及ACE系统703。
在一应用场景中,认证网关701首先接收来自访问方700的访问请求,该访问请求不包括认证令牌;之后认证网关701执行白名单判定;当白名单判定通过时,认证网关701放行访问请求;当白名单判定不通过时,认证网关701向ACE系统703发起鉴权咨询;ACE系统703鉴权,向认证网关701返回鉴权结果;当鉴权成功时,认证网关701放行访问请求;当鉴权失败时,认证网关701向SSO系统702发起登录认证;SSO系统702针对访问方700进行登录认证;当登录请求认证成功时,SSO系统702针对访问方700生成认证令牌;SSO系统702将生成的认证令牌配置到请求上下文,并将请求上下文发送给访问方700;访问方700向认证网关701发送请求上下文内置有认证令牌的访问请求;认证网关701接收访问请求,向ACE系统703发起鉴权咨询;ACE系统703鉴权,向认证网关701返回鉴权结果。
进一步的,基于本发明的方法,本发明还提出了一种用于在访问方设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本发明所述的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由访问方对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。