一种短信验证系统及验证方法

文档序号:7819045阅读:445来源:国知局
一种短信验证系统及验证方法
【专利摘要】本发明涉及信息安全领域,特别是一种短信验证系统及验证方法。包括服务器和客户端,服务器至少包括信息认证模块和应用服务系统,其中,信息认证模块包括动态验证码生成模块和用户验证模块,其特征是:信息认证模块还包括验证码运算模块,应用服务系统还包括用户预留码及运算规则设置模块。有益效果是:提供一种短信验证系统及验证方法,即使短信验证码被非法获取也不会影响用户的安全性。客户端用户采用人工计算时记忆简单,运算速度快,破解难度大;可以在服务器端由用户自行设置运算规则;采用函数计算时可以利用客户端软件程序实现;可以制造通用客户端计算硬件装置;加密计算服务可以来自第三方服务机构。
【专利说明】一种短信验证系统及验证方法

【技术领域】
[0001]本发明涉及信息安全领域,特别是一种短信验证系统及验证方法。
[0002]

【背景技术】
[0003]短信验证是基于手机的一种根认证,目前用于网络购物、网上银行、手机银行、手机绑定等安全性要求高的系统,由系统后台对用户事先绑定的手机号码发送短信验证码,用户收到短信验证码后用该验证码进行相应的验证操作,从而实现用户身份认证。
[0004]但如果用户SM卡被复制或手机丢失,运营商发送的短信验证码也会发送到手机上,从而造成用户财产损失。另外,即使手机没有丢失,如果手机被植入木马,木马可以把该手机收到的短信原封不动地转发给第三方手机,这样验证码也就泄露给了第三方,同样会造成用户财产损失。
[0005]


【发明内容】

[0006]本发明的目的是提供一种短信验证系统及验证方法,即使短信验证码被非法获取也不会影响用户的安全性。
[0007]本发明的技术方案是:
一种短信验证系统,包括服务器和客户端,服务器至少包括信息认证模块和应用服务系统,其中,信息认证模块包括动态验证码生成模块和用户验证模块,其特征是:信息认证模块还包括验证码运算模块,应用服务系统还包括用户预留码及运算规则设置模块;其中:
验证码运算模块,用于将验证码和预留码依照运算规则进行计算;
用户预留码及运算规则设置模块,用于用户设置预留码及设置运算规则。
[0008]所述的一种短信验证系统,其特征是:验证码形式加预留码。如验证码是ga2kky,预留码是223614,形式加为ga2kky223614。
[0009]所述的一种短信验证系统,其特征是:验证码是数字,预留码是数字,运算规则是:验证码的全部或部分加预留码的算数值。如验证码是123456,预留码是223614,算数加数值为123456+223614=347070。如验证码是123456,预留码是22,算数加数值为123456+22=123478。如验证码是123456,预留码是22,算数加验证码的前两位即12,12(3456)+22=34 (3456),即343456,括号里的数字不参与计算。
[0010]所述的一种短信验证系统,其特征是:验证码是数字,预留码是数字,运算规则是:验证码的各位字加预留码的各位字,逢大于10取个位数。如验证码是123456,预留码是 223614,结果为 1+2,2+2,3+3,4+6,5+1,6+4,即 3,4,6,10,6,10,逢 10 取 O 后得到346060。又如:如验证码是 123456,预留码是 223615,结果为 1+2,2+2,3+3,4+6,5+1,6+5,即3,4,6,10,6,11,逢10取0,逢11取1,得至Ij 346061。如验证码是123456,预留码是22,结果为1+2,2+2,3+0, 4+0, 5+0, 6+0,即3,4,3,4,5,6,得至Ij 343456。预留码的字可以从验证码的任何一位字开始加。
[0011]所述的一种短信验证系统,其特征是:预留码为至少一个I位数字,验证码是数字,运算规则是:预留码算数加验证码的任一位数字,如大于10则取个位数字。如验证码是123456,预留码是4,运算规则是加在验证码的正数(正序,从左到右)第一位即1,1+4=5,则结果为523456。如验证码是123456,预留码是9,运算规则是加在验证码的正数最后一位即6,6+9=15,逢15取5,则结果为123455。如验证码是123456,预留码是4,运算规则是加在验证码的正数最后一位即6,6+4=10,逢10取0,则结果为123450。如验证码是123456,预留码是6,运算规则是加在验证码的倒数第二位即5,6+5=11,逢11取1,则结果为123416。如验证码是123456,一个预留码是6,另一个预留码是4,运算规则是预留码6加在验证码的倒数第二位即5,6+5=11,逢11取1,另一个预留码4加在验证码的正数第二位即2,4+2=6,则结果为163416。预留码可以是负值,即减法。
[0012]所述的一种短信验证系统,其特征是:用户预留码及运算规则设置模块提供编程窗口,运算规则由用户自行编程。
[0013]所述的一种短信验证系统,其特征是:用户预留码及运算规则设置模块提供算法公式选择,运算规则是自定义公式。
[0014]所述的一种短信验证系统,其特征是:设置有通用计算硬件装置,由用户自定义算法。
[0015]一种短信验证方法,其特征在于:包括如下步骤:
(1)用户向服务器发起操作请求,动态验证码生成模块生成验证码并提供给验证码运算模块,同时,生成的验证码以短信发送至用户预留号码;
(2)用户将短信收到的验证码和预留码依照运算规则进行计算并将结果提交服务器,由服务器暂存为码2 ;
(3)服务器端的验证码运算模块根据步骤(I)生成的验证码和用户的预留码依照运算规则进行计算获得码I ;
(4)服务器端的用户验证模块将码2和码I比较,如果一致则认证成功,如果不一致则认证失败。
[0016]所述的一种短信验证方法,其特征在于:预留码或运算规则设置包括如下步骤:
(1)用户登录服务器并认证成功;
(2)进入应用服务系统的用户预留码及运算规则设置模块进行设置操作。
[0017]本发明的有益效果是:提供一种短信验证系统及验证方法,即使短信验证码被非法获取也不会影响用户的安全性。客户端用户采用人工计算时记忆简单,运算速度快,破解难度大;可以在服务器端由用户自行设置运算规则;采用函数计算时可以利用客户端软件程序实现;可以制造通用客户端计算硬件装置;加密计算服务可以来自第三方服务机构。
[0018]

【专利附图】

【附图说明】
[0019]图1为本发明系统配置图。
[0020]图2为本发明流程图(手机短信方式)。
[0021]图3为本发明用户预留码及运算规则设置流程图(手机短信方式)。
[0022]图4为本发明服务器端提供的用户自定义编程窗口。
[0023]图5为本发明服务器端基于函数y=F(n,t, x)的用户自定义验证码运算流程图。
[0024]图6为本发明客户端基于函数y=F(n,t, x)的用户自定义验证码运算流程图。
[0025]图7为图6实施方案制成的硬件装置。
[0026]图8提供运算规则D的应用服务系统用户预留码及运算规则设置模块的设置窗□。
[0027]

【具体实施方式】
下面结合附图和实施例对本发明进一步说明。
[0028]图1为本发明系统配置图。系统包括客户端、服务器、短信通知系统,所述短信为广义的短信,包括手机短信、即时通讯短信、基于TCP/IP协议的弹出短信、网页短信等其它短信系统的短信。服务器包括信息认证模块和应用服务系统,应用服务系统如网银、购物网站、支付系统等,信息认证模块负责用户身份的认证,信息认证模块包括动态验证码生成模块、验证码运算模块、用户验证模块,动态验证码生成模块生成随机数字或字符,验证码运算模块用于将验证码和预留码依照运算规则进行计算得到码1,应用服务系统获取来自用户输入的信息并暂存为码2,用户验证模块通过比较码2和码I的一致性对用户身份进行认证。应用服务系统还包括用户预留码及运算规则设置模块,用于用户设置预留码及设置运算规则,设置数据提供给验证码运算模块。用户端包括客户端和移动终端即手机,客户端方式可以是浏览器形式,或手机客户端软件。
[0029]预留码可以是数字或字符,或数字字符混合。
[0030]运算规则:
A、验证码形式加预留码。
[0031]如验证码是ga2kky,预留码是223614,形式加为ga2kky223614。
[0032]B、验证码的全部或部分加(或减)预留码的算数值。
[0033]如验证码是123456,预留码是223614 (或-223614),算数加数值为347070(或-100158,结果取正数)。
[0034]如验证码是123456,预留码是22,算数加数值为123456+22=123478。
[0035]如验证码是123456,预留码是22,算数加验证码的前两位即12,12(3456)+22=34(3456),即343456,括号里的数字不参与计算。
[0036]如果验证码包含字符可以用约定代码计算。
[0037]C、验证码的各位字加预留码的各位字,逢大于10取个位数。
[0038]如验证码是123456,预留码是 223614,结果为 1+2,2+2,3+3,4+6,5+1,6+4,即3,4,6,10,6,10,逢 10 取 O 后得至Ij 346060。
[0039]又如:如验证码是123456,预留码是 223615,结果为 1+2,2+2,3+3,4+6,5+1,6+5,即 3,4,6,10,6,11,逢 10 取 0,逢 11 取 1,得至Ij 346061。
[0040]如验证码是123456,预留码是 22,结果为 1+2,2+2,3+0, 4+0, 5+0, 6+0,即3,4,3,4,5,6,得到343456。即预留码的字可以从验证码的任何一位字开始加。
[0041]D、预留码为至少一个I位数字,预留码算数加验证码的任一位数字,如大于10则取个位数字。
[0042]如验证码是123456,预留码是4,运算规则是加在验证码的正数(正序,从左到右)第一位即1,1+4=5,则结果为523456。
[0043]如验证码是123456,预留码是9,运算规则是加在验证码的正数最后一位即6,6+9=15,逢 15 取 5,则结果为 123455。
[0044]如验证码是123456,预留码是4,运算规则是加在验证码的正数最后一位即6,6+4=10,逢 10 取 0,则结果为 123450。
[0045]如验证码是123456,预留码是6,运算规则是加在验证码的倒数第二位即5,6+5=11,逢 11 取 1,则结果为 123416。
[0046]如验证码是123456,一个预留码是6,另一个预留码是4,运算规则是预留码6加在验证码的倒数第二位即5,6+5=11,逢11取1,另一个预留码4加在验证码的正数第二位即2,4+2=6,则结果为 163416。
[0047]预留码可以是负值,即减法。
[0048]这种运算规则的优势是用户记忆简单,运算速度快,且破解有一定的难度,如果验证码是6位数,选择加在某一位的概率是1/6,预留码的选择为广9,则猜对的概率是1/9,这样破解概率是1/6*1/9=1/54,一般验证码的有效时间是60秒,60秒破解54种方案采用人工输入几乎无法完成。如果增加验证码的位数,破解难度增加,但用户记忆和操作难度不会增加。如果预留码为2个I位数字,分别算数加验证码的任一位数字,如大于10则取个位数字,假设验证码是123456,则破解概率是1/54*1/54,即使机器破解也几乎无法完成,但对于用户记忆和操作难度增加不多。另外,服务器的用户验证模块可以设置60秒的数据输入次数,对于明显超过人工输入的数据输入速度进行屏蔽并安全报警,这样就杜绝了机器破解的可能性。
[0049]E、函数计算y=F(n, t, x),其中y是计算结果,F是函数方式,η是序列号,t为时间因子(系统时间),x是验证码。η序列号可以区别不同的用户,t时间因子可以缺省。采用函数计算客户端的用户人工一般无法完成,需借助计算机程序,图6提供了客户端基于函数y=F(n,t,x)的用户自定义验证码运算流程图,可以编制程序在用户客户端计算机中运行,或制造图7所示的硬件装置。
[0050]图2为本发明流程图(手机短信方式)。1、用户发起操作请求,如转账付款等;2、服务器端生成验证码并提供给验证码运算模块;3、验证码发送至短信网关;4、短信发送至预留手机号码;5、用户输入验证码和预留码的运算结果,即用户按自己设定的运算规则将手机收到的验证码和预留码进行计算获得运算结果;6、服务器端获取用户输入数据并暂存为码2 ;7、提取用户预留码及运算规则;8、服务器端通过验证码运算得到码I ;9、码2和码I比较,如果一致则认证成功,如果不一致则认证失败,并告知客户端。
[0051]图3为本发明用户预留码及运算规则设置流程图(手机短信方式)。1、用户登录;2、认证成功,这里的认证成功可以是原始短信认证,或数字证书认证(U盾),或其他方式的安全认证;3、运算规则设置或选择,运算规则可以由用户自行设置,或提供模板供用户选择;4、服务器端的运算规则设置或选择成功;5、预留码输入,用户可以通过浏览器或客户端软件将预留码上传;6、服务器端对预留码存储;7、服务器返回设置成功信息;8、服务器通过移动通讯系统发短信告知用户设置成功信息(可选)。设置预留码及运算规则也可以采用柜台设置形式,用户凭身份证明在柜台现场在服务器客户服务端由服务人员引导设置。考虑到用户的安全性,用户登录至用户预留码及运算规则设置模块时采用U盾认证,或柜台认证等安全级别高的认证方式。
[0052]图4为本发明服务器端提供的用户自定义编程窗口。用户自定义编程窗口包括代码区401,编程工具栏402,代码区401用于用户自定义编程,编程工具栏402提供用户编程工具,如各种运算函数。另外,加密计算服务也可以来自第三方服务机构。
[0053]图5为本发明服务器端基于函数y=F(n,t, x)的用户自定义验证码运算流程图。1、开始;2、初始化;3、x验证码获取,即获取动态验证码生成模块生成的验证码X ;4、验证码运算y=F(n, t, X),其中运算结果y即码I,码I即n、t、x参数由函数F计算的结果值,η值由用户自行设定且只有用户自己知道,t为时间因子(系统时间),t可以缺省,即t值可以不取(不参与计算)。X验证码可以是数字或字符,或数字和字符混合,字符可以用多进制进行函数运算。
[0054]图6为本发明客户端基于函数y=F(n,t, x)的用户自定义验证码运算流程图。1、开始;2、初始化;3、x验证码输入,即用户输入接收到的短信X值;4、验证码运算y=F(n, t, x),其中运算结果I即码2,码2即n、t、X参数由函数F计算的结果值,η值由用户自行设定且只有用户自己知道,η值和用户在服务器中定义的η值一致。本流程编制为软件后安装在用户的计算机中以便由接收到的验证码X自动计算出码2。
[0055]图7为图6实施方案制成的硬件装置。701外壳;702算法工具键盘,用于编辑程序算法;703数字字符键盘;704开关键;705显示部件;706输入键。用户对硬件装置设置输入的算法和对服务器设置的算法一致。做为一种实施方案,算法函数一样,用η值作为不同用户的标识区别,η值可以是硬件产品的序列号或和序列号对应的唯一编号,应用服务系统将用户的ID和η绑定。可以制造通用客户端计算硬件装置,由用户自定义算法。
[0056]图8提供运算规则D的应用服务系统用户预留码及运算规则设置模块的设置窗口。801为设置窗口,802为用户预留码设置输入栏,用户预留码可以填入802的任何位置,图中采用验证码的倒数第二位加6的设置方式,假设验证码是123456,5+6=11,逢11取I后结果为123416。预留码可以是负值,即减法。进一步,用户可以预留2个或2个以上的一位数预留码,2个或2个以上的一位数预留码可以填入用户预留码设置输入栏802的任何位置。
[0057]本发明编程语目可以是现有的任何语目方式,如VC++, C, Delphi, FORTRAN,Pascal,FOXPRO, Clipper, EXE ;WIN16:C,C++ (Visual, C++Builder, Borland), VisuaI BASIC ; WIN32:C, C++(Visual, Borland), FORTRAN(LAHEY, Visual),Java, VisualBASIC, VisualFoxpro, PowerBuilder, Delphi, JavaScript, VBScript installshield, VB.net, VC.net ; Linux: C, C++, Java !Microsoft XML Web services 平台;html 的方法,ASP.NET 方法;Mac OS X 操作系统;手机操作系统:Windows Mobile, Symbian, Android,1S,手机Mac OS X操作系统等。特别提出的是:android应用层开发可以依赖java,底层可以用c,jni调用。
[0058]编程架构上可以采用服务器、客户端编程,也可采用控件方式使用或调用脚本程序的方式或向服务器请求方式,或采用云计算方式编程,即SaaS模式。
[0059]传送方式基于TCP/UDP协议或其它任何网络传送方式,IPV4或IPV6。在网络传输过程中可以采用对称加密、非对称加密和Hash加密,如DES、SSL或SET等方式加密。
【权利要求】
1.一种短信验证系统,包括服务器和客户端,服务器至少包括信息认证模块和应用服务系统,其中,信息认证模块包括动态验证码生成模块和用户验证模块,其特征是:信息认证模块还包括验证码运算模块,应用服务系统还包括用户预留码及运算规则设置模块;其中: 验证码运算模块,用于将验证码和预留码依照运算规则进行计算; 用户预留码及运算规则设置模块,用于用户设置预留码及设置运算规则。
2.根据权利要求1所述的一种短信验证系统,其特征是:验证码形式加预留码。
3.根据权利要求1所述的一种短信验证系统,其特征是:验证码是数字,预留码是数字,运算规则是:验证码的全部或部分加预留码的算数值。
4.根据权利要求1所述的一种短信验证系统,其特征是:验证码是数字,预留码是数字,运算规则是:验证码的各位字加预留码的各位字,逢大于10取个位数。
5.根据权利要求1所述的一种短信验证系统,其特征是:预留码为至少一个1位数字,验证码是数字,运算规则是:预留码算数加验证码的任一位数字,如大于10则取个位数字。
6.根据权利要求1所述的一种短信验证系统,其特征是:用户预留码及运算规则设置模块提供编程窗口,运算规则由用户自行编程。
7.根据权利要求1所述的一种短信验证系统,其特征是:用户预留码及运算规则设置模块提供算法公式选择,运算规则是自定义公式。
8.根据权利要求1或2或3或4或5或6或7所述的一种短信验证系统,其特征是:设置有通用计算硬件装置,由用户自定义算法。
9.一种短信验证方法,其特征在于:包括如下步骤: (1)用户向服务器发起操作请求,动态验证码生成模块生成验证码并提供给验证码运算模块,同时,生成的验证码以短信发送至用户预留号码; (2)用户将短信收到的验证码和预留码依照运算规则进行计算并将结果提交服务器,由服务器暂存为码2 ; (3)服务器端的验证码运算模块根据步骤(1)生成的验证码和用户的预留码依照运算规则进行计算获得码1 ; (4)服务器端的用户验证模块将码2和码1比较,如果一致则认证成功,如果不一致则认证失败。
10.根据权利要求9所述的一种短信验证方法,其特征在于:预留码或运算规则设置包括如下步骤: (1)用户登录服务器并认证成功; (2)进入应用服务系统的用户预留码及运算规则设置模块进行设置操作。
【文档编号】H04W4/14GK104320767SQ201410627133
【公开日】2015年1月28日 申请日期:2014年11月10日 优先权日:2014年11月10日
【发明者】吴东辉 申请人:吴东辉
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1