验证方法及装置与流程

文档序号:14304981阅读:115来源:国知局
验证方法及装置与流程

本发明涉及信息技术领域,尤其涉及一种离线验证方法及装置。



背景技术:

为了保证信息安全和财产安全,设备在执行某一些操作时,可能需要进行验证。通常验证都是依赖验证服务器的。但是若一旦验证服务器出现故障,例如被黑客攻击、超负荷运行的问题,容易导致验证延时大、验证不安全或无法验证的问题,进而导致基于验证的业务操作或应用操作无法进行的问题。



技术实现要素:

有鉴于此,本发明实施例期望提供的验证方法及装置,至少部分解决验证服务器异常或符合过大导致的验证时延大或无法验证的问题。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例第一方面提供一种验证方法,用于验证插件或客户端,包括:

自行生成验证码;

显示验证码;

获取基于所述验证码显示形成的用户输入;

基于所述用户输入生成验证结果;

基于所述验证结果,向业务服务器发送服务请求。

基于上述方案,所述方法还包括:

向验证服务器请求验证码;

所述自行生成验证码,包括:

当所述验证服务器返回异常信息或在预定时间内未收到所述验证服务器返回的验证码时,自行生成验证码。

基于上述方案,所述基于所述验证结果,向业务服务器发送服务请求,包括:

对所述验证结果进行签名处理,生成验证签名信息;

向业务服务器发送包括所述验证签名信息的服务请求;其中,所述验证签名信息用于在满足第一预设条件时,触发所述业务服务器响应所述服务请求。

基于上述方案,所述对所述验证结果进行签名处理,生成验证签名信息,包括:

当所述验证结果表示验证通过时,对所述验证结果进行签名处理,获得所述验证签名信息。

基于上述方案,所述对所述验证结果进行签名处理,生成验证签名信息,包括:

获取当前时间的第一时间信息;

对所述验证结果和所述第一时间信息进行签名处理,获得所述验证签名信息;其中,所述第一时间信息用于所述业务服务器基于第一时间信息确定是否响应所述服务请求。

基于上述方案,所述对所述验证结果进行签名处理,生成验证签名信息,包括:

获取生成所述服务请求的应用的第一应用签名信息;

对所述验证结果和所述应用签名信息进行签名处理,获得所述验证签名信息;所述应用签名信息用于所述业务服务器防止非法应用调用所述。

基于上述方案,所述对所述验证结果进行签名处理,生成验证签名信息,包括:

获取设备标识信息;

对所述验证结果和所述设备标识信息进行签名处理,获得所述验证签名信息;其中,所述设备标识信息用于所述业务服务器当前服务请求是否来自合法等设备。

本发明实施例第二方面提供一种验证方法,包括:

接收基于验证插件或客户端基于验证结果发送的服务请求;其中,所述验证结果为基于所述验证插件或客户端自行生成的验证码形成的;

当所述服务请求满足第二预设条件时,响应所述服务请求。

基于上述方案,所述接收基于验证插件或客户端基于验证结果发送的服务请求,包括:

接收包括验证签名信息的服务请求;其中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果生成的;

所述方法还包括:

利用验证公钥对所述验证签名信息进行处理,获得第一验证摘要;

利用验证私钥对所述验证签名信息进行处理,获得生成所述验证签名信息的原始信息;其中,所述原始信息至少包括所述验证结果;

对所述原始信息进行签名处理,获得第二验证摘要;

比对所述第一验证摘要和所述第二验证摘要;

所述当所述服务请求满足第二预设条件时,响应所述服务请求,包括:

当所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

基于上述方案,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一时间信息生成的;

所述原始信息包括所述第一时间信息;

所述方法还包括:

获取当前时间的第二时间信息;

比对第一时间信息和第二时间信息;

所述当所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求,包括:

当所述第一时间信息和第二时间信息对应的时间差在预设范围内,且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

基于上述方案,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一应用签名信息生成的;

所述对所述原始信息进行签名处理,获得第二验证摘要,包括:

对所述原始信息中的验证结果及合法应用的第二应用签名信息进行签名处理,获得所述第二验证摘要。

基于上述方案,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及设备标识信息生成的;

所述原始信息还包括设备标识信息;

所述方法还包括:

根据所述设备标识信息验证设备合法性;

所述当所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求,包括:

当所述设备合法且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

本发明实施例第三方面提供一种验证装置,位于验证插件或客户端中,包括:

生成单元,用于自行生成验证码;

显示单元,用于显示验证码;

获取单元,用于获取基于所述验证码显示形成的用户输入;

验证单元,用于基于所述用户输入生成验证结果;

发送单元,用于基于所述验证结果,向业务服务器发送服务请求。

基于上述方案,所述发送单元,还用于向验证服务器请求验证码;

所述生成单元,具体用于当所述验证服务器返回异常信息或在预定时间内未收到所述验证服务器返回的验证码时,自行生成验证码。

基于上述方案,所述装置还包括:

签名单元,用于对所述验证结果进行签名处理,生成验证签名信息;

所述发送单元,具体用于向业务服务器发送包括所述验证签名信息的服务请求;其中,所述验证签名信息用于在满足第一预设条件时,触发所述业务服务器响应所述服务请求。

基于上述方案,所述签名单元,具体用于当所述验证结果表示验证通过时,对所述验证结果进行签名处理,获得所述验证签名信息。

基于上述方案,所述签名单元,具体用于获取当前时间的第一时间信息;对所述验证结果和所述第一时间信息进行签名处理,获得所述验证签名信息;其中,所述第一时间信息用于所述业务服务器基于第一时间信息确定是否响应所述服务请求。

基于上述方案,所述签名单元,具体用于获取生成所述服务请求的应用的第一应用签名信息;对所述验证结果和所述应用签名信息进行签名处理,获得所述验证签名信息;所述应用签名信息用于所述业务服务器防止非法应用调用所述。

基于上述方案,所述签名单元,还用于获取设备标识信息;对所述验证结果和所述设备标识信息进行签名处理,获得所述验证签名信息;其中,所述设备标识信息用于所述业务服务器当前服务请求是否来自合法等设备。

本发明实施例第四方面提供一种验证装置,包括:

接收单元,用于接收包括验证签名信息的服务请求;其中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果生成的;

响应单元,用于当所述服务请求满足第二预设条件时,响应所述服务请求。

基于上述方案,所述接收单元,具体用于接收包括验证签名信息的服务请求;其中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果生成的;

所述装置还包括:

第一获得单元,用于利用验证公钥对所述验证签名信息进行处理,获得第一验证摘要;

第二获得单元,用于利用验证私钥对所述验证签名信息进行处理,获得生成所述验证签名信息的原始信息;其中,所述原始信息至少包括所述验证结果;

第三获得单元,用于对所述原始信息进行签名处理,获得第二验证摘要;

比对单元,用于比对所述第一验证摘要和所述第二验证摘要;

所述响应单元,用于当所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

基于上述方案,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一时间信息生成的;

所述原始信息包括所述第一时间信息;

所述比对单元,还用于获取当前时间的第二时间信息;

比对第一时间信息和第二时间信息;

所述响应单元,具体用于当所述第一时间信息和第二时间信息对应的时间差在预设范围内,且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

基于上述方案,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一应用签名信息生成的;

所述第三获得单元,用于对所述原始信息中的验证信息及合法应用的第二签名信息进行签名处理,获得第二验证摘要。

基于上述方案,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及设备标识信息生成的;

所述原始信息还包括设备标识信息;

所述装置还包括:

验证单元,用于根据所述设备标识信息验证设备合法性;

所述响应单元,还用于当所述设备合法且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

本发明实施例提供的验证方法及装置,能够自行生成验证进行验证,获得验证结果;基于验证结果向服务器发送服务请求,这样的话,即便验证服务器异常,验证也可以照常进行,就可以减少因为验证服务器不能及时返回验证码等验证信息导致的验证时延大或无法验证的问题,提高了验证效率和降低无法验证的概率。

附图说明

图1为本发明实施例提供的第一种验证方法的流程示意图;

图2为本发明实施例提供的第二种验证方法的流程示意图;

图3为本发明实施例提供的第一种验证装置的结构示意图;

图4为本发明实施例提供的第二种验证装置的结构示意图;

图5为本发明实施例提供的以一种验证插件的结构示意图;

图6为本发明实施例提供的第三种验证方法的流程示意图。

具体实施方式

以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。

如图1所示,本实施例提供一种验证方法,用于验证插件或客户端,包括:

步骤s110:自行生成验证码;

步骤s120:显示验证码;

步骤s130:获取基于所述验证码显示形成的用户输入;

步骤s140:基于所述用户输入生成验证结果;

步骤s150:基于所述验证结果,向业务服务器发送服务请求。

本实施例中所述验证方法的执行主体可为运行在客户端中的验证插件或客户端自身的操作系统。

在本实施例中验证插件或客户端,将自行生成验证码,并显示验证码;用户看到显示验证码之后,按照与验证码同时或不同时显示的验证提示,输入验证信息,形成所述用户输入。验证插件或客户端将比对用户输入和验证码,从而获得所述验证结果。所述验证结果为真,即表示用户输入与生成的验证码一致,可认为验证结果表示验证通过,否则验证不通过。在步骤s150中将基于验证结果,向业务服务器发送服务请求。例如,当验证通过时,向业务服务器发送服务请求,验证不通过时,不向业务服务器发送服务请求。所述步骤s150还可包括将所述验证结果携带在所述服务请求中发送给业务服务器,方便业务服务器根据验证结果响应所述服务请求。所述验证结果可以以明文的形式或密文的形式携带在所述服务请求中发送给业务服务器。例如,所述验证结果签名处理之后,携带在所述服务请求中发送给业务服务器。

这里的服务请求可包括登录某一个应用、网站或账号的登录请求、请求执行支付的支付请求、请求授予查看的查看等各种服务请求。业务服务器在接收到所述服务请求之后,通过对验证签名信息的处理,可认为是否验证通过,若验证通过则会响应所述服务请求。

这样的话,客户端就不用与验证服务器进行交互来进行验证,业务服务器也不用从验证服务器获取验证是否通过的信息。这样的话,就不会产生验证服务器自身出现宕机等异常或超负荷运行时导致的无法验证、验证延时大的问题,进而进一步导致的服务请求的响应时延大的问题。

在本实施例中,所述方法还包括:

向验证服务器请求验证码;

所述步骤s110可包括:

当所述验证服务器返回异常信息或在预定时间内未收到所述验证服务器返回的验证码时,自行生成验证码。

在本实施例中验证插件或客户端,在进行验证之前,会首先向验证服务器发送请求,以请求验证码。若当前验证服务器异常,可能会向验证插件或客户端恢复异常信息,若验证服务器当前负荷大,可能就会长时间不会响应验证插件或客户端,则此时验证验证插件或客户端将自行生成验证码,而不继续等待验证服务器返回验证码,以提高验证失效,减少验证时延,确保验证顺利进行。

在一些实施例中,所述步骤s150可包括:

步骤s151:对所述验证结果进行签名处理,生成验证签名信息;

步骤s152:向业务服务器发送包括所述验证签名信息的服务请求;其中,所述验证签名信息用于在满足第一预设条件时,触发所述业务服务器响应所述服务请求。

在本实施例中会对所述验证进行签名处理,生成验证签名信息。该验证签名信息会随着服务请求一同发给业务服务器。这样的话,客户端就不用与验证服务器进行交互来进行验证,业务服务器也不用从验证服务器获取验证是否通过的信息。这样的话,就不会产生验证服务器自身出现宕机等异常或超负荷运行时导致的无法验证、验证延时大的问题,进而进一步导致的服务请求的响应时延大的问题。

在一些实施例中,

所述步骤s151可包括:

当所述验证结果表示验证通过时,对所述验证结果进行签名处理,获得所述验证签名信息。

所述验证结果表示验证通过,即所述验证结果为真,若验证结果为假,显然验证结果不通过。在本实施例中为了减少业务服务器的负荷,仅在验证结果为真的情况下,对验证结果进行签名处理,获得验证签名信息。当所述验证结果表示验证不通过,即所述验证结果为假时,再次自行生成验证码进行下一次验证。

在步骤s151中生成验证签名信息时,不局限于对验证结果进行签名处理,还可以将其他信息与验证结果一同进行签名处理,以下提供几种可选方式。

可选方式一:

所述步骤s151可包括:

获取当前时间的第一时间信息;

对所述验证结果和所述第一时间信息进行签名处理,获得所述验证签名信息;其中,所述第一时间信息用于所述业务服务器基于第一时间信息确定是否响应所述服务请求。

所述第一时间信息可为时间戳或时刻点等表示当前时间的信息。这样的话,业务服务器接收到所述服务请求之后,可以通过信息处理,获得第一时间信息;业务服务器根据所述第一时间信息,发现该验证签名信息的形成是在很早以前,则可能攻击者获取了之前验证插件或客户端的服务请求发送的,则不响应该服务请求,从而达到防御攻击或因网络混乱导致服务请求的重复响应。

在具体实现时,所述步骤s151可为当所述验证结果表示验证通过时,获取当前时间的第一时间信息,避免验证不通过时的无效处理操作。

可选方式二:

所述步骤s151可包括:

获取生成所述服务请求的应用的第一应用签名信息;

对所述验证结果和所述应用签名信息进行签名处理,获得所述验证签名信息;所述应用签名信息用于所述业务服务器防止非法应用调用所述验证插件或客户端的对应功能形成的非法服务请求。

这样的话,防止一些并未授权获得使用该验证插件或客户端该功能的应用,或者一些非法应用恶意调用该验证插件或客户端的该功能导致的问题,提升验证安全性。

当然,所述步骤s151可为,当验证结果为真时,才获取所述第一应用签名信息,同时对所述验证结果及所述应用签名信息进行签名处理,获得验证签名信息。

可选方式三:

所述步骤s151可包括:

当所述验证结果表示验证通过时,获取设备标识信息;

对所述验证结果和所述设备标识信息进行签名处理,获得所述验证签名信息;其中,所述设备标识信息用于所述业务服务器当前服务请求是否来自合法等设备。

例如,所述合法设备可包括真实的设备,有时候所述验证插件可能被安装在虚拟机上,或者授权使用的设备,例如,有些业务仅有付费用户才能时候,这个时候就可以通过所述设备标识信息来识别付费用户。所述用户标识信息可为国际设备标识等标识信息,以免一些非法者利用虚拟机等非法设备盗用服务。

当然本方式中所述步骤s151可同样为在确定出验证结果为真时,再执行获取设备标识信息的步骤。

在具体的应用过程中,所述步骤s151可包括:当验证结果通过时,获取第一时间信息、应用签名信息和设备标识信息;在对这些信息进行签名处理,获得所述验证签名信息,方便业务服务器分别根据验证签名信息进行上述处理,确保验证的安全性和可靠性。

为了提升验证的安全性,还会对所述验证结果进行加密,当然当所述第一时间信息、应用签名信息及所述设备标识信息中的一个或多个与所述验证结果一同进行签名处理时,还可以对这些信息进行加密处理,降低这些信息在传输过程中被窃取获得的概率,提升信息安全性。

如图2所示,本实施例提供一种验证方法,包括:

步骤s210:接收基于验证插件或客户端基于验证结果发送的服务请求;其中,所述验证结果为基于所述验证插件或客户端自行生成的验证码形成的;

步骤s220:当所述服务请求满足第二预设条件时,响应所述服务请求。

本实施例所述验证方法可为应用于业务服务器中方法,业务服务器将从客户端或验证插件直接接收包括验证签名信息的服务请求。

本实施例中所述服务请求是基于验证结果发送的,而该验证结果是基于验证插件或客户端自行生成的验证码形成的,这样具有验证时延小及服务请求响应及时的特点。

所述第二预设条件可包括所述验证结果为真时,响应所述服务请求。例如,所述验证结果可以明文或明文携带在所述服务请求中,这样的话,所述业务服务器就可以查看所述验证结果,并根据验证结果,确定是否响应业务服务。

在一些实施例中,所述步骤s210:接收包括验证签名信息的服务请求;其中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果生成的;

所述步骤s220包括:

步骤s221:利用验证公钥对所述验证签名信息进行处理,获得第一验证摘要;

步骤s222:利用验证私钥对所述验证签名信息进行处理,获得生成所述验证签名信息的原始信息;

步骤s223:对所述原始信息进行签名处理,获得第二验证摘要;

步骤s224:比对所述第一验证摘要和所述第二验证摘要;

步骤s225:当所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

在接收到验证签名信息之后,利用验证公钥对验证签名信息进行处理,从而获得验证结果对应的第一验证摘要。

与此同时,业务服务器还会利用验证私钥对所述验证信息进行处理,获得原始信息,这里的原始信息至少博阿凯所述验证结果。在利用哈希函数等处理,对所述原始信息进行信息处理,将得到第二验证摘要。

业务服务器将比对所述第一验证摘要和第二验证摘要,当比对发现这两个摘要一致时,可认为验证结果没有被篡改,故安全性和可靠性得到了保证。在具体的实现过程中,所述验证签名信息是基于表示验证通过的验证结果生成的,或业务服务器获取到所述验证结果,确定验证结果为真的情况下,才响应所述服务请求。

在一些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一时间信息生成的;

所述原始信息包括所述第一时间信息;

所述方法还包括:

获取当前时间的第二时间信息;

比对第一时间信息和第二时间信息;

所述步骤s225可包括:

当所述第一时间信息和第二时间信息对应的时间差在预设范围内,且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

通常一旦验证签名信息生成,就会立马发送给业务服务器,业务服务器接收到服务请求之后,将会获得一个时间信息。这两个时间信息的时间差应该较小,否则若当前获得的验证签名信息是很久之前就形成的,该验证服务信息被非法者窃取了之后重新使用,可能会导致服务的不安全或服务的重复响应的问题。故在本实施例中所述第一时间信息和第二时间信息都可为时间戳,比对两个时间差,发现两个时间戳对应的时刻点在预设范围内,例如所述时间差可为1分钟、120秒等时间范围时,可认为不存在安全问题,在结合两个验证摘要是否一致,确定是否响应所述服务请求。

在一些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一应用签名信息生成的;所述步骤s225可包括:对所述原始信息中的验证结果及合法应用的第二应用签名信息进行签名处理,获得所述第二验证摘要。由于所述第一验证摘要是基于第一应用签名信息形成的,而第二验证摘要是利用第二验证签名信息替代了第一应用签名信息签名生成的,若验证签名信息未被篡改等非法处理,则第一应用签名信息和第二应用签名信息应该一直,则不会影响两个验证摘要的比对,从而可以防止非法应用的恶意攻击。

在另一些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一应用签名信息生成的;所述原始信息还包括第一应用签名信息;所述方法还包括:将所述第一应用签名信息与合法应用的第二签名信息进行比对;所述步骤s225可包括:当所述第一应用签名信息和第二应用签名信息比对一致且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

在本实施例中还会确定所述第一应用签名信息是有验证插件或客户端提供的,所述第二应用签名信息为存储在业务服务器中的。所述业务服务器中存储有其可提供服务的合法应用的应用签名信息,该应用签名信息称之为第二应用签名信息。若所述第一应用签名信息可为第二应用签名信息中的一个,则确认是合法应用发起的服务请求,从而再次提高了验证的安全性和可靠性。

在一些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及设备标识信息生成的;所述原始信息还包括设备标识信息;

所述方法还包括:

根据所述设备标识信息验证设备合法性;

所述步骤s225可包括:

当所述设备合法且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

在本实施例中通过所述设备标识信息的获取,可知设备的合法性,例如,通过设备是否合法的验证,可确定当前运行所述验证插件的设备或客户端是否是真实的设备而非虚拟机,是否是授权设备等,从而再次确保了验证的安全性和可靠性。

如图3所示,本实施例提供一种验证装置,位于验证插件或客户端中,包括:

生成单元110,用于自行生成验证码;

显示单元120,用于显示验证码;

获取单元130,用于获取基于所述验证码显示形成的用户输入;

发送单元140,用于基于所述验证结果,向业务服务器发送服务请求。

本实施例所述验证装置可对应于前述的验证插件,或对应于前述客户端具有离线验证功能处理模块。所述验证插件可安装在各种设备中,例如,手机、平板电脑或笔记本电脑或可穿戴式设备等各种电子设备。

所述生成单元110将自用自行生成验证码。这里的验证码可为文本验证码、也可以是图片验证码。于此同时,所述生成单元110还可生成验证提示信息,提示用户进行验证。

所述显示单元120可对应于各种能够控制显示屏进行显示的结构。所述显示屏可包括液晶显示屏、电子墨水显示屏、投影显示屏或有机发光二极管oled等显示结构,控制所述验证码的显示。方便用户比对输入。

所述获取单元130可对应于各种人机交互接口,获取各种用户输入。所述人机交互接口可包括键盘、触摸屏或语音输入接口等。

所述发送单元140对应于通信接口,这里的通信接口可为无线接口或有线接口,能够方便通信。

总之,本实施例提供了一种装置,能够不与验证服务器交互的情况下,也不能够进行验证,提升验证效率,减少耽误业务服务器对业务请求的响应现象。

在一些实施例中,所述发送单元140,还用于向验证服务器请求验证码;

所述生成单元110,具体用于当所述验证服务器返回异常信息或在预定时间内未收到所述验证服务器返回的验证码时,自行生成验证码。

在本实施例中所述装置,仅有在确定出验证服务器不能及时提供验证码的情况下,才自行生成验证码自行进行验证结果的生成。

所述装置还包括:

验证单元,用于基于所述用户输入生成验证结果;

签名单元,用于对所述验证结果进行签名处理,生成验证签名信息;

所述发送单元140,用于向业务服务器发送包括所述验证签名信息的服务请求;其中,所述验证签名信息用于在满足第一预设条件时,触发所述业务服务器响应所述服务请求。

所述验证单元及签名单元,可对应于处理器或处理电路。所述处理器可包括中央处理器、微处理器、数字信号处理器、可编程阵列或应用处理器等。所述处理电路可包括专用集成电路等。所述处理器或处理电路可通过预定代码的执行,实现上述操作。

在一些实施例中,所述签名单元,具体用于当所述验证结果表示验证通过时,对所述验证结果进行签名处理,获得所述验证签名信息。在本实施例中为了减少业务服务器的处理负荷,只有在验证结果为真时才进行验证签名信息的处理。在一些实施例中,所述生成单元110,用于当验证结果为假时,再次自行生成验证码,以进行下一次验证。

在一些实施例中,所述签名单元,具体用于获取当前时间的第一时间信息;对所述验证结果和所述第一时间信息进行签名处理,获得所述验证签名信息;其中,所述第一时间信息用于所述业务服务器基于第一时间信息确定是否响应所述服务请求。通过所述第一时间信息的签名处理,这样的话,所述业务服务器将获得第一时间信息,防止攻击者窃取验证插件或客户端已使用过的数据,进行再次服务请求,再次提升了安全性,也可以减少网络延迟导致的重复请求问题。

在有些实施例中,所述签名单元,具体用于获取生成所述服务请求的应用的第一应用签名信息;对所述验证结果和所述应用签名信息进行签名处理,获得所述验证签名信息;所述应用签名信息用于所述业务服务器防止非法应用调用所述。在本实施例中所述签名单元还通过第一应用签名信息的获取,结合第一应用签名信息生成验证签名信息,这样可以防止非法应用的恶意操作,再次提升了安全性。

在一些实施例中,所述签名单元,还用于获取设备标识信息;对所述验证结果和所述设备标识信息进行签名处理,获得所述验证签名信息;其中,所述设备标识信息用于所述业务服务器当前服务请求是否来自合法等设备。在本实施例中所述验证签名信息是至少基于验证结果及设备标识信息获得,这样方便业务服务器确定是否合法设备发送的服务请求,以再次提升安全性。

如图4所示,本实施例还提供另一种一种验证装置,包括:

接收单元210,用于接收包括验证签名信息的服务请求;其中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果生成的;

响应单元220,用于当所述服务请求满足第二预设条件时,响应所述服务请求。

本实施例所述的验证装置可为应用于业务服务器中的装置。所述接收单元210可包括接收接口,能够接收所述服务请求,该服务请求是携带有验证签名信息的。

所述响应单元220可对应于处理器或处理电路。所述处理器和处理电路的结构可以参见前述实施例的对应部分,此处就不再重复了。

在有些实施例中,所述接收单元,具体用于接收包括验证签名信息的服务请求;其中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果生成的;所述装置还包括:第一获得单元,用于利用验证公钥对所述验证签名信息进行处理,获得第一验证摘要;第二获得单元,用于利用验证私钥对所述验证签名信息进行处理,获得生成所述验证签名信息的原始信息;其中,所述原始信息至少包括所述验证结果;第三获得单元,用于对所述原始信息进行签名处理,获得第二验证摘要;比对单元,用于比对所述第一验证摘要和所述第二验证摘要;所述响应单元220,用于当所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

第一获得单元、第二获得单元、第三获得单元、比对单元及响应单元220可对应于处理器或处理电路。所述处理器和处理电路的结构可以参见前述实施例的对应部分,此处就不再重复了。

在一些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一时间信息生成的;所述原始信息包括所述第一时间信息;所述比对单元,还用于获取当前时间的第二时间信息;比对第一时间信息和第二时间信息;所述响应单元220,具体用于当所述第一时间信息和第二时间信息对应的时间差在预设范围内,且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

在一些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一应用签名信息生成的;所述第三获得单元,用于对所述原始信息中的验证信息及合法应用的第二签名信息进行签名处理,获得第二验证摘要。采用这样的方式生成的第二验证摘要,可以对服务请求是否为合法应用发送的进行验证。

在有些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及第一应用签名信息生成的;所述原始信息还包括第一应用签名信息;所述比对单元,还用于将所述第一应用签名信息与合法应用的第二签名信息进行比对;所述响应单元220,具体用于当所述第一应用签名信息和第二应用签名信息对一致且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。

在一些实施例中,所述验证签名信息是基于自身生成的验证码进行验证的验证结果及设备标识信息生成的;所述原始信息还包括设备标识信息;所述装置还包括:验证单元,用于根据所述设备标识信息验证设备合法性;所述响应单元220,还用于当所述设备合法且所述第一验证摘要和所述第二验证摘要一致时,响应所述服务请求。这里的验证单元同样可对应于前述的处理器或处理电路。

以下结合上述任意实施例提供几个具体示例:

示例一:

本示例提供一种验证插件。该验证插件可安装客户端中使用。验证插件本地自行生成验证码、提供验证码的展示、收集用户输入以及验证用户输入,如果验证通过,则将验证结果进行数字签名处理,然后向业务服务器发送登录请求;业务服务器对验证结果的数字签名进行验证,确认验证结果的未被篡改,且验证结果来源于可靠的客户端请求。通过上述方案,实现了验证码的本地生成及验证,解决了现有技术中验证服务器因为黑客攻击或机器故障导致宕机的情况下业务无法正常运行的情况,同时业务服务器通过对移动客服端传输数据包括验证结果、时间戳、设备信息、应用签名信息的数字签名进行验证,保障了客户端传输数据的可靠性和完整性,防止被外部篡改的可能。

客户端侧的验证插件以软件开发工具包(softwaredevelopmentkit,sdk)的形式内嵌在应用中。本实施例提供的客户端可为移动客户端,也可以为固定客户端。

如图5所示,所述验证插件包括:

验证服务器异常识别模块,用于验证服务器的验证异常识别,具体可用于向验证服务器请求验证码,检测验证服务器的返回信息,若返回异常信息或在预定时间内未得到所述验证码,则认为出现了验证异常;

验证码生成模块,用于本地自行生成验证码;该验证生成模块相当于前述实施例中的生成单元110;

验证码展示模块,用于控制本地生成的验证码的显示;所述验证码展示模块相当于前述的显示单元120;

用户输入答案收集模块,用于采集用户基于验证码的显示的用户输入;所述用户输入答案收集模块相当于前述获取单元120的组成结构;

用户输入答案验证模块,用于对用户输入进行验证,形成验证结果;所述用户输入答案验证模块相当于前述的验证单元;

验证结果数字签名模块,用于对表示验证通过的验证结果进行签名处理,形成验证签名信息;所述验证结果数字签名模块,相当于前述的签名单元;

验证结果加密模块,用于对验证结果进行加密。

上述模块都在在由预定文件提供的代码实现,例如,可以由so文件来实现,并已经过混淆处理,防止被恶意破解。

示例二:

如图6所示,本示例提供一种验证方法包括:

步骤1:客户端或验证插件向验证码服务请求验证码。

步骤2:验证服务器因黑客攻击、机器故障等原因宕机或请求量过多致无法及时响应。

步骤3:验证服务器返回异常信息,所述异常信息可包括网络连接错误代码,例如连接超时、网络请求不可达等。所述异常代码可包括404等。

步骤4:验证插件本地自行生成验证码以及验证码在客户端的展示。

步骤5:获取用户输入的验证答案。

步骤6:验证插件对用户输入的验证答案进行验证,得到验证结果。

步骤7:如果验证结果为真表示验证通过,验证插件对验证结果、时间戳、设备指纹信息及应用签名信息进行数字签名,并向业务服务器发送验证请求。这里的设备指纹信息为前述设备标识信息的一种。该步骤具体可包括:验证结果数字签名模块首先获取当前的时间戳、设备指纹信息、应用签名信息。验证结果数字签名模块利用哈希函数生成验证结果、时间戳、设备指纹信息、应用签名信息的摘要,然后通过sdk内存储的安全私钥对摘要进行加密,生成包含有验证结果的数字签名。如果验证结果为假表示验证不通过,验证插件继续生成新的验证码。

步骤8:业务服务器对请求的数据进行验证,确认请求数据的可靠性和完整性。

步骤9:业务服务器返回最终验证结果。

验证结果为真的情况下,验证插件向业务服务器发送登录请求,具体流程如下:验证插件对验证结果进行加密处理,并将上述包含有验证结果的数字签名、已加密的验证结果、时间戳、设备指纹信息等发送给业务服务器。业务服务器对客户端请求的数据进行处理,其中业务服务器已安全存储用于数字签名验证的公钥、验证结果解密的私钥和应用签名信息,具体步骤:

业务服务器对客户端请求的数据进行解析,得到包含有验证结果的数字签名、时间戳、设备指纹信息以及已加密的验证结果等。

业务服务器通过本地存储的公钥对请求的包含有验证结果的数字签名进行解密,得到包含有验证结果的摘要。

业务服务器通过本地存储的私钥对已加密的验证结果进行解密,然后通过哈希函数生成验证结果、时间戳、设备指纹信息、本地存储的应用签名信息的摘要。

比较上述步骤分别获得两个摘要是否一致,如果一致说明客户端请求的数据未被篡改,且用户验证码输入答案正确。比对一致的情况下,比较时间戳与业务服务器获取的本地时间戳的差值是否超过120秒,如果超时则验证不通过。通过时间戳的比较,可以有效防止攻击者伪造客户端的数据重复发送登录请求。另一方面比对一致,说明发送登录请求的客户端的签名信息与业务服务器本地的应用签名信息是一致的,有效防止验证插件被恶意应用调用。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1