一种信息验证方法与流程

文档序号:11156542阅读:436来源:国知局
一种信息验证方法与制造工艺

本发明属于信息安全技术领域,涉及一种信息验证技术。



背景技术:

随着移动通信和互联网技术的高速发展,个人身份的认证在银行、证券、商务、贸易、办公、教育等各个行业的应用需求越来越多,个人身份认证的安全问题也引起了广泛的重视。目前在互联网领域常用的有通过动态令牌、U盾、指纹等方式进行认证的技术。但是,这些技术一般需要用户随身携带认证的硬件产品,很不方便。短信验证相对简便且用户体验好,但每次验证都需要短信发送明文验证码给用户,除了验证成本高,而且有安全风险。

校验短信的原理是让用户感知到此为其某种行为,比如支付行为正在发生,给盗刷用户帐号的骗子提高门槛,因为骗子可能拿到了支付密码,却未必掌握了用户的手机。并且用户收到了莫名其妙的支付短信验证码,会对帐号可能被盗有所感知,进而提高了安全性。但是短信验证码作为安全的中流砥柱,又有其突出的弱点,即明文发送,在通信途中被拦截和转发从而失去了安全性,还有各类采用人工手段欺骗受害者泄漏验证码的骗局,针对的都是这个弱点。

除了明文外,短信验证采用的是单边验证的方式,也就是说发的人能确保接收的人就是这个手机号,收的人却验证不了到底是谁发的短信。这种情况非常容易引起手机木马的快速传播,市面上有各种修改显示号码的黑客软件,能发出显示成银行电信等服务号码的短信,内容就是各种官方口气的通知,诱使客户去点击链接。用户点进去后有一个APK下载下来提示安装,安装后手机就中了木马。木马的传播是非常迅速的,中了木马的手机,会悄悄地给通讯录里面的人发送钓鱼短信,还会智能地按照通讯录里面的记录称呼,给儿子的短信可能就是儿子的小名,给爱人的短信可能就是很少有人知道的爱称,短信的内容大多是什么我最近拍了些照片,点击链接就可以看到这类的。这就大大增强了钓鱼短信的可信度,促使更多人中招。中招的手机继续向通讯录发短信扩散木马,这样一传十,十传百,木马迅速就传播开了。

木马种植到手机里面之后,将隐藏起来。它会专门监视各个支付平台的短信验证码和银行的扣款通知短信,对短信验证码木马会自动转发到骗子控制的设备上,对于银行扣款的通知短信,木马悄悄删掉,从而用户根本感知不到支付行为的发生。骗子利用钓鱼网站收集过来的客户信息进行诈骗,验证中需要支付密码的,骗子就用木马转发来的短信验证码填写就可以了。这样一来,短信验证码在安全上的防护作用就被彻底地破坏了。

虽然近年来出现了语音验证,但需要每次给用户拨打电话播报语音验证码,用户需要记住验证码,不仅不方便,而且还存在成本高的问题。



技术实现要素:

本发明的目的在于提供一种信息验证方法,以大大提高验证的可靠性和安全性,同时大幅简化验证的流程,降低验证的成本。

为了达到上述目的,本发明的解决方案是:

一种信息验证方法,包括以下步骤:

(1)客户端向服务器发送用户注册信息,请求验证用户身份;

所述服务器用于验证用户身份,并在验证用户身份成功之后,根据所述用户注册信息,产生对应所述客户端的密钥容器文件;

(2)客户端在从服务器收到表示验证用户身份成功的消息之后,从服务器下载所述密钥容器文件或更新原密钥容器文件为所述密钥容器文件,所述密钥容器文件包含待匹配信息,以及非对称密钥的公私密钥对或者对称密钥,所述待匹配信息,以及非对称密钥的公私密钥对或者对称密钥与所述密钥容器文件绑定,以用于认证客户端;

(3)当客户端中实际信息与所述待匹配信息匹配成功后,在客户端的应用业务需要进行用户身份真实性认证的时候,客户端对服务器进行基于非对称密钥的双向认证或者基于对称密钥的单向认证。

所述待匹配信息为用户名和客户端硬件系统信息;所述密钥容器文件还包含密钥核心算法的二进制代码。

优选地,所述密钥容器文件通过以下方式形成:根据不同的CPU和编译器,对编译好的可执行软件的二进制代码进行二次变换或者部分信息替换,将密钥或者算法以二进制的形式与可执行软件的二进制代码以及二进制数据混淆得到。

优选地,所述密钥容器文件的逻辑进行加密后保存在动态链接库中,对应的加密密钥由用户或者后台管理。

优选地,只有指定的进程才可以访问所述密钥容器文件。

优选地,所述密钥容器文件在使用过程中,将相关的信息解密后放在内存或者缓存中使用,使用后用垃圾数据覆盖对应的使用区域,以达到快速和安全使用的要求。

所述步骤(1)中采用语音主叫号码或者语音主叫号码截位的方式验证用户身份;或者,所述步骤(1)中采用语音播报验证信息的方式验证用户身份;或者,所述步骤(1)中采用短信方式验证用户身份。

所述步骤(1)中采用语音主叫号码或语音主叫号码截位的方式验证用户身份时,所述步骤(1)包括:

(11)客户端向服务器发起语音主叫号码或语音主叫号码截位验证请求,提交用户注册信息;所述服务器用于根据所述用户注册信息,向客户端发送主叫号码,再由对应的主叫电话拨打所述用户注册信息中的电话号码;

(12)客户端接收服务器发来的主叫号码;如果客户端是带公网话音通信功能终端到步骤(13),否则到步骤(14);

(13)客户端检测服务器来电,如果在时间Tinterval内检测到来电号码与所述主叫号码一致,则截停客户端振铃,并将所述主叫号码发送给服务器,到步骤(15);如果在时间Tinterval内没有检测到来电,客户端向服务器发起查询,查询用户号码是否拨通,如果已拨通到步骤(14),如果没有拨通继续在下一个Tinterval时间内检测来电,当总检测时间大于n×Tinterval时,显示时间超时验证失败;其中,Tinterval和n为设定值;

(14)客户端显示对话框,要求用户输入完整的主叫号码或主叫号码的部分截位,客户端将主叫号码或主叫号码的部分截位发送给服务器,到步骤(15);

(15)若客户端发给服务器的主叫号码或主叫号码的部分截位与服务器发给客户端的主叫号码相符,则客户端收到服务器发来的用户身份验证成功的消息;如果不相符,则客户端收到服务器发来的用户身份验证失败的消息;若客户端所发出的主叫来电在一定时间内未被服务器收到,则客户端显示时间超时验证失败;所述一定时间为设定值。

优选地,所述电话号码为手机号码。

优选地,所述步骤(11)中拨打用户注册信息中的电话号码通过公众电话网络。

所述步骤(2)中通过互联网加密通道下载所述密钥容器文件或更新密钥系统的原密钥容器文件为所述密钥容器文件。

当客户端对服务器进行基于非对称密钥的双向认证时,所述步骤(3)包括:

(31)客户端向服务器发起上行验证请求a,生成所述上行验证请求a的数字签名对象发送给服务器;服务器用于使用自己的私钥生成所述上行验证请求a的数字签名和下行验证请求b的数字签名对象,回复客户端;

(32)客户端使用服务器的公钥对所述上行验签请求a的数字签名进行验签,通过到步骤(33),不通过到步骤(35);

(33)客户端根据自身的私钥,生成所述下行验证请求b的数字签名发送给服务器;服务器用于使用客户端的公钥对所述下行验签请求b的数字签名进行验签,通过则到步骤(34),不通过到步骤(36);

(34)客户端从服务器接收表示双向认证通过的校验结果;

(35)客户端对服务器的身份验证失败;

(36)客户端的身份验证失败。

优选地,所述数字签名对象为一串随机数;所述数字签名包括签名码和校验码。

一种信息验证方法,包括以下步骤:

(1)服务器从客户端接收用户注册信息,验证客户端的用户身份;

(2)服务器验证用户身份成功后,根据客户端的用户注册信息,产生对应所述客户端的密钥容器文件;

客户端用于在从服务器收到表示验证用户身份成功的消息之后,从服务器下载所述密钥容器文件或更新原密钥容器文件为所述密钥容器文件,并在与所述密钥容器文件匹配成功后,向服务器发起基于非对称密钥的双向认证或者基于对称密钥的单向认证;所述密钥容器文件包含待匹配信息,以及非对称密钥的公私密钥对或者对称密钥,所述待匹配信息,以及非对称密钥的公私密钥对或者对称密钥与所述密钥容器绑定,以用于认证客户端;

(3)当客户端中实际信息与所述待匹配信息匹配成功后,在客户端的应用业务需要进行用户身份真实性认证的时候,服务器对客户端进行基于非对称密钥的双向认证或者基于对称密钥的单向认证。

所述待匹配信息为用户名和客户端硬件系统信息;所述密钥容器文件还包含密钥核心算法的二进制代码。

优选地,所述密钥容器文件通过以下方式形成:根据不同的CPU和编译器,对编译好的可执行软件的二进制代码进行二次变换或者部分信息替换,将密钥或者算法以二进制的形式与可执行软件的二进制代码以及二进制数据混淆得到。

优选地,所述密钥容器文件的逻辑进行加密后保存在动态链接库中,对应的加密密钥由用户或者后台管理。

优选地,只有指定的进程才可以访问所述密钥容器文件。

优选地,所述密钥容器文件在使用过程中,将相关的信息解密后放在内存或者缓存中使用,使用后用垃圾数据覆盖对应的使用区域,以达到快速和安全使用的要求。

所述步骤(1)中基于语音播报验证信息的方式验证客户端的用户身份;或者,所述步骤(1)中基于短信方式验证客户端的用户身份;或者,所述步骤(1)中基于语音主叫号码或者语音主叫号码截位的方式验证客户端的用户身份,所述步骤(1)包括以下步骤:

(11)服务器接收来自客户端的语音主叫号码或语音主叫号码截位的验证请求和用户注册信息;

(12)服务器先将主叫号码发送给客户端,再由对应的主叫电话拨打用户注册信息中的电话号码;

所述客户端带公网话音通信功能时,用于检测来电,并且:如果在时间Tinterval内检测到来电号码与所述主叫号码一致,则截停客户端振铃,并将所述主叫号码发送给服务器;如果在时间Tinterval内没有检测到来电,向服务器发起查询,查询用户号码是否拨通,如果已拨通,则显示对话框,要求用户输入完整主叫号码或主叫号码的部分截位,将所述主叫号码或主叫号码的部分截位发送给服务器;如果没有拨通继续在下一个Tinterval时间内检测来电,当总检测时间大于n×Tinterval时,则显示时间超时验证失败;

其中,Tinterval和n为设定值;

如果客户端不是带公网话音通信功能的终端,则客户端用于显示对话框,要求用户输入完整的主叫号码或主叫号码的部分截位,将所述主叫号码或主叫号码的部分截位发送给服务器;

(13)服务器将客户端发来的主叫号码或主叫号码的部分截位与实际拨出的主叫号码比较,如果相符,则回复客户端,用户身份验证成功;如果不相符,则回复客户端,用户身份验证失败;在一定时间内没有收到客户端发来的主叫来电,则客户端用于显示时间超时验证失败;所述一定时间为设定值。

优选地,所述电话号码为手机号码。

优选地,所述步骤(12)中通过公众电话网络拨打用户注册信息中的电话号码。

当服务器对客户端进行基于非对称密钥的双向认证时,所述步骤(3)包括:

(31)服务器从客户端接收上行验证请求a的数字签名对象,使用自己的私钥生成所述上行验证请求a的数字签名和下行验证请求b的数字签名对象,回复客户端;

所述客户端用于用服务器的公钥对所述上行验签请求a的数字签名进行验签,并且:在通过时,根据客户端的私钥,生成所述下行验证请求b的数字签名发送给服务器;

在不通过时,表示服务器身份验证失败;

(32)服务器在从客户端收到所述下行验证请求b的数字签名时,用客户端的公钥对所述下行验证请求b的数字签名进行验签;

如果通过,则向客户端发送表示双向认证通过的校验结果;

如果不通过,则向客户端发送表示客户端身份验证失败的校验结果。

优选地,所述数字签名对象为一串随机数;所述数字签名包括签名码和校验码。

由于采用上述方案,本发明的有益效果是:本发明信息验证方法通过仅在注册阶段使用语音或短信验证,而在客户端与服务器之间使用基于非对称密钥的双向认证或基于对称密钥的单向认证,在大大提高验证可靠性和安全性的同时,大幅简化验证的流程,降低了验证的成本。其中对密钥容器文件的使用,进一步大幅提高了验证的可靠性和安全性以及流程的简洁性,同样促进了降低验证成本。

附图说明

图1为本发明实施例中各个阶段的示意图;

图2为本发明实施例中第三阶段即基于非对称密钥的双向认证阶段的示意图;

图3为本发明实施例的整体流程图;

图4为该实施例中语音主叫号码截位验证方式的流程图。

具体实施方式

以下结合附图所示实施例对本发明作进一步的说明。

本发明提出了一种信息验证方法,该方法包括以下步骤:

(1)客户端向服务器发送用户注册信息,请求验证用户身份;

上述服务器用于验证用户身份,并在验证用户身份成功之后,根据用户注册信息,产生对应客户端的密钥容器文件。

(2)客户端在从服务器收到表示验证用户身份成功的消息之后,从服务器下载上述密钥容器文件或更新原密钥容器文件为上述密钥容器文件。该密钥容器文件包含待匹配信息,以及非对称密钥的公私密钥对或者对称密钥,上述待匹配信息,以及非对称密钥的公私密钥对或者对称密钥与密钥容器文件绑定,以用于认证客户端。

(3)当客户端中实际信息与上述待匹配信息匹配成功后,在客户端的应用业务需要进行用户身份真实性认证的时候,客户端对服务器进行基于非对称密钥的双向认证或者基于对称密钥的单向认证。

图1所示为该信息验证方法各个阶段的示意图,上述各步骤对应图1中各阶段。图2为第三阶段为基于非对称密钥的双向认证阶段时此阶段的示意图。

本实施例中,上述待匹配信息为用户名和客户端硬件系统信息。上述密钥容器文件还包含密钥核心算法的二进制代码。本实施例中,密钥容器文件通过以下方式形成:根据不同的CPU和编译器,对编译好的可执行软件的二进制代码进行二次变换或者部分信息替换,将密钥或者算法以二进制的形式与可执行软件的二进制代码以及二进制数据混淆得到。

该密钥容器文件的逻辑进行加密后保存在动态链接库中,对应的加密密钥由用户或者后台管理;此外,只有指定的进程才可以访问密钥容器文件。该密钥容器文件在使用过程中,将相关的信息解密后放在内存或者缓存中使用,使用后用垃圾数据覆盖对应的使用区域,以达到快速和安全使用的要求。

上述步骤(1)中可采用语音主叫号码或者语音主叫号码截位的方式、语音播报验证信息的方式或短信方式验证用户身份。

当采用语音主叫号码或者语音主叫号码截位的方式验证用户身份时,上述步骤(1)具体包括以下步骤:

(11)客户端向服务器发起语音主叫号码或语音主叫号码截位方式的验证请求,提交用户注册信息;该服务器用于根据上述用户注册信息,向客户端发送主叫号码,再由对应的主叫电话拨打该用户注册信息中的电话号码。

(12)客户端接收服务器发来的主叫号码;如果客户端是带公网话音通信功能终端到步骤(13),否则到步骤(14)。

(13)客户端检测服务器来电,如果在时间Tinterval内检测到来电号码与上述主叫号码一致,则截停客户端振铃,并将该主叫号码发送给服务器,到步骤(15);如果在时间Tinterval内没有检测到来电,客户端向服务器发起查询,查询用户的电话号码是否拨通,如果已拨通到步骤(14),如果没有拨通继续在下一个Tinterval时间内检测来电,当总检测时间大于n×Tinterval时,显示时间超时认证失败;其中,Tinterval和n为设定值。

(14)客户端显示对话框,要求用户输入完整的主叫号码或主叫号码的部分截位,客户端将完整的主叫号码或主叫号码的部分截位发送给服务器,到步骤(15)。

(15)若客户端发给服务器的主叫号码或主叫号码的部分截位与服务器发给客户端的主叫号码相符,则客户端收到服务器发来的用户身份验证成功的消息;如果不相符,则客户端收到服务器发来的用户身份验证失败的消息;若客户端所发出的主叫号码或主叫号码的部分截位在一定时间内未被服务器收到,则客户端显示时间超时验证失败;该一定时间为设定值。

上述用户注册信息包括客户端用户的电话号码,如手机号码;上述步骤(11)中通过公众电话网络拨打用户注册信息中的电话号码。

上述步骤(2)中通过互联网加密通道下载上述密钥容器文件或更新密钥系统的原密钥容器文件为上述密钥容器文件。

本实施例中,当基于非对称密钥进行双向认证时,上述步骤(3)具体包括以下步骤:

(31)客户端向服务器发起上行验证请求a,生成该上行验证请求a的数字签名对象发送给服务器;服务器用于使用自己的私钥生成该上行验证请求a的数字签名和下行验证请求b的数字签名对象,回复客户端;

(32)客户端使用服务器的公钥对上行验签请求a的数字签名进行验签,通过到步骤(33),不通过到步骤(35);

(33)客户端根据自身的私钥,生成上述下行验证请求b的数字签名发送给服务器;服务器用于使用客户端的公钥对该下行验签请求b的数字签名进行验签,通过则到步骤(34),不通过到步骤(36);

(34)客户端从服务器收到表示双向认证通过的校验结果;

(35)客户端对服务器的身份验证失败;

(36)客户端的身份验证失败。

上述过程中,两种数字签名对象均可以为一串随机数;两种数字签名均可以包括签名码和校验码。

本发明还提出了一种信息验证方法,包括以下步骤:

(1)服务器从客户端接收用户注册信息,验证客户端的用户身份。

(2)服务器验证用户身份成功后,根据客户端的用户注册信息,产生对应该客户端的密钥容器文件。其中,客户端用于在从服务器收到表示验证用户身份成功的消息之后,从服务器下载上述密钥容器文件或更新原密钥容器文件为上述密钥容器文件,并在与上述密钥容器文件匹配成功后,向服务器发起基于非对称密钥的双向认证或基于对称密钥的单向认证。该密钥容器文件包含待匹配信息,以及非对称密钥的公私密钥对或者对称密钥,所述待匹配信息,以及非对称密钥的公私密钥对或者对称密钥与所述密钥容器绑定,以用于认证客户端。

(3)当客户端中实际信息与所述待匹配信息匹配成功后,在客户端的应用业务需要进行用户身份真实性认证的时候,服务器对客户端进行基于非对称密钥的双向认证或基于对称密钥的单向认证。

本实施例中,上述待匹配信息为用户名和客户端硬件系统信息;该密钥容器文件还包含密钥核心算法的二进制代码。本实施例中,该密钥容器文件通过以下方式形成:根据不同的CPU和编译器,对编译好的可执行软件的二进制代码进行二次变换或者部分信息替换,将密钥或者算法以二进制的形式与可执行软件的二进制代码以及二进制数据混淆得到。

该密钥容器文件的逻辑进行加密后保存在动态链接库中,对应的加密密钥由用户或者后台管理;只有指定的进程才可以访问密钥容器。密钥容器文件在使用过程中,将相关的信息解密后放在内存或者缓存中使用,使用后用垃圾数据覆盖对应的使用区域,以达到快速和安全使用的要求。

本发明中,步骤(1)中基于语音主叫号码或者语音主叫号码截位的方式、基于语音播报验证信息的方式或基于短信方式验证客户端的用户身份。

当上述步骤(1)中基于语音主叫号码或语音主叫号码截位的方式验证客户端的用户身份,步骤(1)包括以下具体步骤:

(11)服务器接收来自客户端的语音主叫号码或语音主叫号码截位方式的验证请求和用户注册信息。

(12)服务器先将主叫号码发送给客户端,再由对应的主叫电话拨打用户注册信息中的电话号码。

在该客户端带公网话音通信功能时,其用于检测来电,并且:如果在时间Tinterval内检测到来电号码与上述主叫号码一致,则截停客户端振铃,并将该主叫号码发送给服务器;如果在时间Tinterval内没有检测到来电,向服务器发起查询,查询用户号码是否拨通,如果已拨通,则显示对话框,要求用户输入完整的主叫号码或主叫号码的部分截位,将主叫号码或主叫号码的部分截位发送给服务器;如果没有拨通则继续在下一个Tinterval时间内检测来电,当总检测时间大于n×Tinterval时,显示时间超时验证失败;其中,Tinterval和n为设定值。

如果客户端不是带公网话音通信功能的终端,则客户端用于显示对话框,要求用户输入完整的主叫号码或主叫号码的部分截位,将该主叫号码或主叫号码的部分截位发送给服务器。

(13)服务器将客户端发来的主叫号码或主叫号码的部分截位与实际拨出的主叫号码比较,如果相符,则回复客户端,用户身份验证成功;如果不相符则回复客户端,用户身份验证失败;在一定时间内没有收到客户端发来的主叫号码或主叫号码的部分截位,则客户端用于显示时间超时验证失败;该一定时间为设定值。

上述用户注册信息包括客户端用户的电话号码,如手机号码;步骤(12)中通过公众电话网络拨打用户注册信息中的电话号码。

本实施例中,当基于非对称密钥进行双向认证时,上述步骤(3)具体包括以下步骤:

(31)服务器从客户端接收上行验证请求a的数字签名对象,使用自己的私钥生成该上行验证请求a的数字签名和下行验证请求b的数字签名对象,回复客户端。

该客户端用于用服务器的公钥对上述上行验签请求a的数字签名进行验签,并且:在通过时,根据客户端的私钥,生成下行验证请求b的数字签名发送给服务器;而在不通过时,则显示服务器身份验证失败。

(32)服务器在从客户端收到下行验证请求b的数字签名时,用客户端的公钥对该下行验证请求b的数字签名进行验签;如果通过,则向客户端发送表示双向认证通过的校验结果;如果不通过,则向客户端发送表示客户端身份验证失败的校验结果。

上述过程中,数字签名对象可以为一串随机数;数字签名可以包括签名码和校验码。

当在由服务器和客户端组成的系统中,通过具体的计算机程序来实现上述信息验证方法时,基于上述信息验证方法的核心技术思路,考虑到实际运行中的情况,可以以以下具体的步骤实施,图3所示为其流程图:

(1)客户端自检,通过客户端的身份验证应用程序检查非对称密钥系统的密钥容器文件,包括:

(11)密钥容器文件是否存在;

(12)密钥容器文件内容循环冗余校验或散列变换校验是否正确;

(13)读取客户端硬件系统信息和密钥容器文件的系统信息与密钥容器文件内保存的硬件信息和密钥容器文件的系统信息比较是否匹配;

(14)需要进行身份验证的用户名与密钥容器文件内保存的用户名是否匹配;

检查(11)的目的是确认客户端是否下载密钥容器文件;

检查(12)的目的是检验密钥容器文件是否损坏或被篡改,如果检查通过可以确认密钥容器文件完整可用;

检查(13)的目的是检验密钥容器文件是否被非法拷贝,如果检查通过可以确认密钥容器文件是从合法渠道下载的,而不是非法拷贝复制;

检查(14)的目的是确认密钥容器文件内是否存在该用户名。

如果以上检查(11)-(14)任何一项不通过则到步骤(2);如果(11)-(14)都通过了,则到步骤(5)。

(2)客户端中没有密钥容器文件,或者密钥容器文件遭到破坏,或者有新的用户名加入密钥容器文件,则客户端向验证服务器重新发起:短信、电话语音播报验或电话号码截位等验证方式,验证用户身份的真实性,如果验证失败到步骤(9),如果验证通过则:

(21)如果步骤(1)中检查(11)-(13)任何一项不通过,到步骤(3);

(22)如果步骤(11)中检查(11)-(13)通过,只有检查(14)不通过,到步骤(4);

(3)客户端中没有密钥容器文件,或者密钥容器文件遭到破坏,需要重新申请密钥容器文件。验证客户端将用户注册信息和用户终端硬件信息通过互联网加密通道发送给验证服务器,验证服务器记录用户注册信息,并分配非对称密钥系统标识和公、私钥对,生成与用户注册名和用户终端硬件信息绑定的非对称密钥系统的密钥容器文件,发送给客户端。客户端接收密钥容器文件,并保存于本地存储系统,再向密钥容器文件内加入当前文件存储的系统信息,用于步骤(1)中的密钥容器文件检查,到步骤(9)。

(4)客户端中有密钥容器文件,且密钥容器文件完好,只是需要增加新的用户名。验证客户端将用户注册信息通过互联网加密通道发送给验证服务器,验证服务器记录用户注册信息。客户端将新用户注册名加入密钥容器文件,到步骤(9)。

(5)需要进行验证的客户端发起非对称密钥上行验证请求a(从客户端到服务器),客户端生成该上行验证请求a的数字签名对象(可以是一串随机数)发送给验证服务器,验证服务器使用自己的私钥生成该上行验证请求a的数字签名(签名码和校验码)和下行验证请求b(从服务器到客户端)的数字签名对象(可以是一串随机数),回复验证客户端,验证客户端使用验证服务器公钥对验签请求a的数字签名进行验签,通过到步骤(6),不通过到步骤(8)。

(6)验证客户端收到下行验证请求b的签名对象,响应该非对称密钥验证该下行验证请求b,客户端使用验证服务器提供的下行验证请求b的数字签名对象,以及客户端的私钥,生成该下行验证请求b的数字签名(签名码和校验码)发送给验证服务器,验证服务器使用验证客户端公钥对该下行验签请求b的数字签名进行验签,通过到步骤(7),不通过到步骤(9)。

(7)双向认证通过,将校验结果回复验证客户端。

(8)验证服务器身份验证失败。

(9)验证客户端身份验证失败。

在程序运行过程中,步骤(9)之后进入步骤(1),进行新的循环。步骤(3)和步骤(4)旨在在密钥容器文件不完好或者虽完好但是需要增加新的用户名的情况下,为下一次循环做好准备。

本发明中的密钥容器文件绑定的硬件信息可以是MAC地址,手机SIM卡的IMSI号,手机的IMEI号等,密钥容器文件绑定的文件系统信息可以是文件创建时间戳等。

当采用电话号码验证方式,即前述的语音号码截位的方式时,上述步骤(2)具体包括如下步骤:

(2.1)客户端验证软件向验证服务器发起电话号码截位验证请求,提交用户注册信息。

(2.2)验证服务器通过公众电话网络拨打用户注册信息中的电话号码,并在拨打客户端号码前,先把主叫号码发送给客户端验证软件,如果客户端是带公网话音通信功能终端到步骤(2.3),否则到步骤(2.4)。

(2.3)客户端验证软件检测来电,如果在时间Tinterval内检测到来电号码与服务器主叫号码一致,则将主叫号码发送给验证服务器,到步骤(2.5);如果在时间Tinterval内没有检测到,客户端验证软件向服务器查询用户号码是否拨通,如果已拨通到步骤(2.4),如果没有拨通继续在下一个Tinterval时间内检测来电,当总检测时间大于n×Tinterval时,到步骤(2.8);

(2.4)客户端验证软件显示对话框,要求用户输入完整的主叫号码或主叫号码的部分截位,客户端验证软件将完整的主叫号码或主叫号码的部分截位发送给服务器,到步骤(2.5);

(2.5)服务器将客户端验证软件发来的主叫号码或主叫号码的部分截位与实际拨出的主叫号码比较,如果相符,到步骤(2.6);如果不相符到步骤(2.7);在一定时间内没有收到客户端验证软件发来的主叫号码或主叫号码的部分截位到步骤(2.8);该一定时间为设定值;

(2.6)回复客户端软件,用户身份验证成功。

(2.7)回复客户端软件,用户身份验证失败。

(2.8)时间超时验证失败。

图4所示为上述电话号码验证方式,即语音主叫号码截位的方式的流程图。

当采用短信验证码方式时,上述步骤(2)具体包括如下步骤:

(2.1)客户端向服务器发起短信验证码验证请求,提交用户注册信息,包括终端号码。

(2.2)服务器产生验证码,通过短信服务器或者短信通道向客户端发送短信验证码,如果客户端是带短信自动识别的终端到步骤(2.3),否则到步骤(2.4)。

(2.3)客户端检测短信中的短信验证码,如果在时间Tinterval内检测到短信发送号码与短信服务器或者短信通道服务器号码一致,则将获取的短信验证码发送给服务器,到步骤(2.5);如果在时间Tinterval内没有检测到,客户端向服务器查询用户号码对应的短信验证码是否发送,如果已发送则到步骤(2.4),如果没有发送则继续在下一个Tinterval时间内检测接收的短信,当总检测时间大于n×Tinterval时,到步骤(2.8);

(2.4)客户端显示对话框,要求用户输入完整短信验证码或者部分短信验证码截位,客户端验证软件将短信验证码或者短信验证码截位号码发送给服务器,到步骤(2.5);

(2.5)服务器将客户端发来的短信验证码或者短信验证码截位号码与实际发出的短信验证码比较,如果相符,到步骤(2.6);如果不相符到步骤(2.7);在一定时间内没有收到客户端验证软件发来的短信验证码到步骤(2.8);该一定时间为设定值;

(2.6)回复客户端软件,用户身份验证成功。

(2.7)回复客户端软件,用户身份验证失败。

(2.8)时间超时验证失败。

当采用电话语音播报验证信息的方式时,上述步骤(2)具体包括如下步骤:

(2.1)客户端向服务器发起电话语音播报验证请求,提交用户注册信息,包括终端号码。

(2.2)服务器产生验证码,通过语音服务器或者语音服务通道向终端拨打电话,在电话拨打通后,通过语音向用户播报语音验证信息,语音验证信息可以是一段验证码。

(2.3)客户端显示对话框,要求用户输入听到的完整语音验证码或者部分语音验证码截位,客户端验证软件将语音验证码或者语音验证码截位号码发送给服务器,到步骤(2.4);

(2.4)服务器将客户端发来的语音验证码或者语音验证码截位号码与实际播报的语音验证码比较,如果相符,到步骤(2.5);如果不相符到步骤(2.6);在一定时间内没有收到客户端验证软件发来的语音验证码到步骤(2.7);所述一定时间为设定值;

(2.5)回复客户端,用户身份验证成功。

(2.6)回复客户端,用户身份验证失败。

(2.7)时间超时验证失败。

本发明一种信息验证方法通过仅在注册阶段使用语音或短信验证,而在客户端与服务器之间使用基于非对称密钥的双向认证或基于对称密钥的单向认证,在大大提高验证可靠性和安全性的同时,大幅简化验证的流程,降低了验证的成本。其中对密钥容器文件的使用,进一步大幅提高了验证的可靠性和安全性以及流程的简洁性,同样促进了降低验证成本。

上述的对实施例的描述是为便于该技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对这些实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于这里的实施例,本领域技术人员根据本发明的揭示,不脱离本发明范畴所做出的改进和修改都应该在本发明的保护范围之内。

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