动态口令认证系统和方法

文档序号:82018阅读:451来源:国知局
专利名称:动态口令认证系统和方法
技术领域
本发明涉及以鉴别(Authentication)、授权(Authorization)和管理(Administration)为核心的AAA领域,尤其涉及一种适用于网络的动态口令认证系统和方法。
背景技术
随着网络技术的发展和互联网的普及,人们基于互联网或网络的活动越来越多,网络用户的身份识别变得越来越来重要。目前大部分应用系统设置口令的方式基本上是采用静态口令,即如果用户不取改变,则口令不会有任何变化,这种口令在互联网中的传输过程中,容易受到重传攻击。长期使用会引起窃取、截取、猜测等安全隐患。为解决上述的安全问题,出现了有别于上述静态口令认证的其他三种口令认证方式,即硬件令牌认证、传输前按既定算法加密的动态口令认证和软件令牌认证。
(1)硬件令牌认证方式,即用户想登录某计算机应用系统时必须使硬件令牌或智能卡结合用户设定的静态口令生成当前的登录口令。使用这种认证方式,用户必须随身携带相应的硬件令牌或智能卡,安全性虽然增强,但也造成使用不方便、成本高,分发管理麻烦等诸多问题。
(2)传输前按既定算法加密的动态口令,参见申请号为CN01108417.0的专利申请。用户登录前由服务器生成一个随机数传给用户,用户将口令由客户端计算机完成与随机数经过约定的杂凑函数加密后输入,再传输给服务器,服务器再解密核对,以达到防止传输过程中泄露口令的目的。但由于用户还是先在客户端输入口令再由客户端计算机按约定的杂凑函数加密,容易被带有木马等计算机病毒的客户端记录下口令本身后破解,且用户不能根据重要程度来设定杂凑函数的复杂度。
(3)软件令牌,参见申请(专利)号为CN03114476.4的申请。采用本方法虽然很好地解决了方法(1)和方法(2)产生的问题,但本方法中的软件令牌只能在特定安装了该软件的客户端登录,用户不能随时随地使用自己的帐号,对用户使用的即时性造成了很大的障碍。并且用户不能根据自己的需要设置口令的复杂度,影响了用户使用的灵活性。

发明内容有鉴于此,本发明的目的在于提供一种适用于网络的动态口令认证的系统和方法,使用该系统和方法可以让用户自己根据需要来设定生成动态口令的规律,不需要硬件令牌或软件令牌,又防止木马等计算机病毒破解口令。
为了实现上述发明目的,本发明提供一种适用于网络的动态口令认证系统,该系统包括一个网络登录服务器和一个动态口令验证服务器,其中网络登录服务器至少包括口令设置模块,用于获得用户根据口令设置模块约定的动态口令参数设定的动态口令表达式。
动态口令验证服务器依动态口令表达式生成当前的动态口令与用户输入的登录信息进行比较认证。
所述动态口令参数包括字符、命令运算符和约定的随时间或登录次数而改变当前值的预定函数。
所述动态口令表达式是由口令设置模块约定的动态口令生成方法对应的部分或全部动态口令参数组成。
所述网络登录服务器进一步包括登录模块,用于获取用户输入的登录信息,并将用户输入的登录信息发送给动态口令验证服务器。
动态口令参数值生成模块,用于生成动态口令参数中预定函数的当前值,并发送给动态口令验证服务器。
显示模块,用于向用户显示信息。
所述动态口令验证服务器进一步包括动态口令存储数据库,用于保存用户的帐号和对应的动态口令表达式。
动态口令生成模块,用于根据预定函数的当前值和动态口令表达式生成当前登录的动态口令。
动态口令验证模块,用于比较用户输入的登录信息与动态口令生成模块发送的生成的当前登录的动态口令,如果一致则通过认证。
所述登录信息包括用户设定的帐号和用户输入的登录口令。
一种适用于网络的动态口令认证方法,该方法包括a.获取用户的登录信息;b.生成当前的动态口令;c.将用户输入的登录信息与当前登录的动态口令进行比较,如果一致则通过认证。
在所述步骤a之前,包括当用户设定动态口令表达式时,检测用户设定动态口令表达式是否符合动态口令生成方法;若不符合动态口令的生成方法,则返回错误;若符合动态口令的生成方法,则将用户设定动态口令表达式进行存储。
在所述步骤a之前,包括生成动态口令参数中预定函数的当前值;向用户显示预定函数的当前值。
所述步骤b包括生成动态口令参数中预定函数的当前值;获取用户登录信息对应的动态口令表达式;用预定函数的当前值替换动态口令表达式中的预定函数;根据动态口令的生成方法生成当前的动态口令。
从以上技术方案可以看到,本发明提供的系统和方法具有以下有益效果有效地防止用户口令被窃取、截取、猜测或被木马等计算机病毒记录而泄露,提高了用户使用的安全性,又节省成本经济方便,便于用户记忆和灵活使用,且所使用的动态口令不易被破解并可经常更换。
图1是本发明的动态口令认证系统的架构图;图2是本发明在网络服务器注册的时序图;图3是本发明的用户使用动态口令登录网络服务器的时序图。
具体实施方式为了使本发明的特征和优点更加清楚明白,下面参照附图结合具体实施例对本发明作进一步详细地描述。
参见图1,图1是根据本发明所实现动态口令认证系统的架构图,包括一个网络登录服务器和一个动态口令验证服务器。
网络登录服务器包括口令设置模块、登录模块、动态口令参数值生成模块和显示模块。口令设置模块,用于获取用户根据口令设置模块约定的动态口令参数设定的动态口令表达式,并将动态口令运算式发送给动态口令验证服务器进行存储。登录模块,用于获取用户输入的帐号和登录口令,并将用户输入的户输入的帐号和登录口令发送给动态口令验证服务器。动态口令参数值生成模块,用于生成口令设置模块设定随当前登录次数及随时间而动态改变的年、月、日、小时、分钟等预定函数的当前值,并发送给动态口令验证服务器,并同时显示给用户。显示模块,用于向用户显示由动态口令参数值生成模块生成的动态口令参数中预定函数的当前值。用户登录时,根据预定函数的当前值在头脑中将动态口令信息转化成当前登录的口令,并输入到登录模块。
动态口令验证服务器包括动态口令存储数据库、动态口令生成模块和动态口令验证模块。动态口令存储数据库,用于保存用户的帐号和由口令设置模块获取的对应的动态口令运算式。动态口令生成模块,根据网络登录服务器发送的动态口令参数中预定函数的当前值和动态口令存储数据库发送的动态运算式生成当前登录的动态口令,并将生成的动态口令发送给动态口令验证模块。动态口令验证模块,用于比较用户输入的登录口令与当前登录的动态口令,如果一致则通过认证。
动态口令表达式是由用户按口令设置模块约定的动态口令生成方法选择部分或全部动态口令参数组成。动态口令生成方法可以是算术运算、逻辑运算和自定义的命令运算。动态口令参数包括字符、命令运算符和口令设置模块约定的随时间和登录次数而改变当前值的预定函数。
动态口令运算式是由用户首次使用网络服务器注册时设定,在网络服务器上进行注册的时序图参见图2。用户首先注册帐号并根据口令设置模块约定的动态口令生成方法和动态口令参数设定动态口令运算式,口令设置模块进行合法性检查,如果不符合动态口令生成方法,则返回错误给用户;如果符合动态口令生成方法,则提示用户注册成功,将注册成功后的用户帐号和对应的动态口令运算式存储到动态口令验证服务器下的动态口令存储数据库。
以下是为了对上述动态口令运算式、网络服务器进行注册过程、动态口令的生成方法进行详细说明的需要,而仅仅列举了这些示例,但是本发明并不局限于这些示例。
网络登录服务器的口令设置模块提供的动态口令参数包括26个大写字母、26个小写字母、特殊字符(如“#”号、“¥”号)和0-9的阿拉伯数字等字符以及命令运算符和预定函数。命令运算符包括特殊命令符,运算符和逻辑符。其中特殊命令符为服务商自行约定得一些命令用特定的符号表示,例如用“”表示将引号内的字符标为一个字符串,用“&”表示表示将前后内容顺序并接起来等;运算符包括“+”“-”“*”“/”等一般的数学运算符;逻辑符包括“and”“or”“not”等;预定函数是由口令设置模块约定并会随时间和登录次数而改变当前值,包括按数据特性排列优先级的函数,生成当前时间的函数,生成当前登录次数的函数等。。例如随登录的次数及时间而动态改变的年(用year表示)、月(用month表示)、日(用date表示)、小时(用hour表示)、分钟(用minute表示)和登录次数(用N表示)等函数。用户可以根据自己的需要选择其中部分或全部参数来设置不同的动态口令运算式。
当前登录的动态口令的生成方法包括动态口令验证服务器接收到口令设置模块获得的用户设定的动态口令运算式后,动态口令验证服务器将这些参数动态口令的表达式存储在动态口令数据库,之后在每次用户登录的时候,该动动态口令数据库将存储的动态口令运算式提供给动态口令验证模块。其中,预定函数的当前值可以从动态口令参数值生成模块获得。
下面详细说明(1)特殊命令引用,即使用引号成对引号(用“”表示)表示将引号内的字符标为一个字符串;连接,即使用连接号(用&表示)表示将前后内容顺序并接起来;算术运算(加(用+表示)减(用-表示)乘(用*表示)除(用/表示)),将算术运算符前后内容进行相应的算术运算。
(2)优先级为运算符乘除——运算符加减——引号/连接号的顺序从左到右进行运算。并将运算结果取整。
(3)动态口令的生成方法是根据动态口令参数值生成模块的预定函数year、month、day、hour、minute、N等具体的当前值进行替换后,按用户设置的动态口令运算式进行运算,生成当前登录口令。例如,用户设置的动态口令运算式是“abc1#”&minute*2,服务器生成的用户登录时预定函数的当前值为2005年11月12日14时25分第5次登录。即,year=2005;month=11;day=12;hour=14、minute=25;N=5。则,当前登录口令为abc1#50。
当服务器获取到用户设置的动态口令运算式时,先检测用户所设置的动态口令信息中的内容是否不符合口令设置模块的约定,如果有不符则报错。例如用户设置的动态口令信息是“AQ”+1.8*date,服务器检测到有小数,则进行报错。接着,服务器逐个读取运算式的字符,并按运算符将口令分段。当服务器读取到&时,表示将&前后内容顺序并接起来。如果整个字符串中的第一个字符或最后一个字符是&,或连续两个及以上&相连时,服务器报错。当读取到成对引号(用“”表示)时,将引号内的字符标为一个字符串,引号内用户可以设置任意字符。当服务器读取到前引号(用“表示)时认为字符串开始,当服务器读取到后引号(用”表示)时认为字符串结束,如果读取到不成对引号,则服务器报错。在算术运算符号的前和后必须是随登录的次数及时间而动态改变的动态因子year、month、date、hour、minute或正整数数字,如果不是则服务器报错。例如用户设置的动态口令是“Ab1#”&1/year+N+hour*month-date*12、“A”&year+5或“Abc1”是符合口令设置模块所约定的内容。当用户设置的动态口令信息符合口令设置模块所约定的内容,则口令设置模块会将用户设置的帐号和动态口令运算式发送给动态口令验证服务器下的动态口令存储数据库进行存储。
动态口令生成模块按口令设置模块的约定进行生成当前登录口令。动态口令存储数据库存储的用户设定的动态口令运算式发送给动态口令生成模块;动态口令参数值生成模块根据系统标准时间和记录发送给动态口令生成模块;动态口令生成模块根据以上信息和生成方法即能生成当前登录的口令。
例如动态口令存储数据库存储的用户设定的动态口令运算式分别是“abc123#”、“abc1#”&minute*2、year+hour&“A3”&day、N/2+55&year时,动态口令参数值生成模块生成的参数当前值是2005年11月12日14时25分第5次登录时,动态口令生成模块生成的当前登录口令分别是“abc123#”、“abc1#”&25*2、2005+14&“A3”&25、25/2+55&2005。即,abc123#、abc1#50、2019A312、572005。
动态口令参数值生成模块生成的参数当前值是2006年01月23日18时19分第9次登录时,动态口令生成模块生成的当前登录口令分别是“abc123#”、“abc1#”&19*2、2006+18&“A3”&23、9/2+55&2006。即,abc123#、abc1#38、2024A323、592006。
加入逻辑运算和逻辑运算符等类似的方法,实现的方法和上述方法类似,不再赘述。
从以上所述可以看出随着登录时间和登录次数的不同,每次的登录口令也随之改变。
下面描述在这种系统架构下,用户使用动态口令登录网络服务器的流程。
参见图3,图3是根据本发明的用户使用动态口令登录网络服务器的相关时序图。用户登录时,向网络登录服务器发起登录请求,访问网络服务器的登录平台的WEB端页面。根据在登录服务器的WEB端页面上由显示模块显示的动态口令参数的当前值和用户设置的动态口令运算式,用户在头脑中将动态口令运算式转换成当前实际口令,在登录页面的登录口令输入处输入口令。动态口令验证服务器根据获取到的用户在网络登录服务器中输入的帐号,在动态口令存储数据库中查找用户设定的动态口令运算式,发送给动态口令生成模块,动态口令生成模块根据网络登录服务器发送的动态口令参数的当前值及用户设定的动态口令运算式,生成当次登录的动态口令,发送给动态口令验证模块,动态口令验证模块根据用户在登录模块输入的登录口令与动态口令生成模块发送的生成结果进行比较,若一致则判定用户是否具有登录资格,并将判定结果返回给用户。
从以上所述可以看到,本发明提供了一种适用于网络的动态口令认证的系统和方法,使用该系统和方法可以让用户自己根据需要来设定生成动态口令的规律,不需要硬件令牌或软件令牌,又防止木马等计算机病毒破解口令。有效地防止用户口令被窃取、截取、猜测或被木马等计算机病毒记录而泄露,提高了用户使用的安全性,又节省成本经济方便,便于用户记忆和灵活使用,且所使用的动态口令不易被破解并可经常更换。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种适用于网络的动态口令认证系统,该系统包括一个网络登录服务器和一个动态口令验证服务器,其特征在于,网络登录服务器至少包括口令设置模块,用于获得用户根据口令设置模块约定的动态口令参数设定的动态口令表达式;动态口令验证服务器依动态口令表达式生成当前的动态口令与用户输入的登录信息进行比较认证。
2.根据权利要求
1所述的系统,其特征在于,所述动态口令参数包括字符、命令运算符和约定的随时间或登录次数而改变当前值的预定函数。
3.根据权利要求
1所述的系统,其特征在于,所述动态口令表达式是由口令设置模块约定的动态口令生成方法对应的部分或全部动态口令参数组成。
4.根据权利要求
1所述的系统,其特征在于,所述网络登录服务器进一步包括登录模块,用于获取用户输入的登录信息,并将用户输入的登录信息发送给动态口令验证服务器;动态口令参数值生成模块,用于生成动态口令参数中预定函数的当前值,并发送给动态口令验证服务器;和显示模块,用于向用户显示信息。
5.根据权利要求
1或4所述的系统,其特征在于,所述动态口令验证服务器进一步包括动态口令存储数据库,用于保存用户的帐号和对应的动态口令表达式;动态口令生成模块,用于根据预定函数的当前值和动态口令表达式生成当前登录的动态口令;和动态口令验证模块,用于比较用户输入的登录信息与动态口令生成模块发送的生成的当前登录的动态口令,如果一致则通过认证。
6.根据权利要求
1或4所述的系统,其特征在于,所述登录信息包括用户设定的帐号和用户输入的登录口令。
7.一种适用于网络的动态口令认证方法,其特征在于,该方法包括a.获取用户的登录信息;b.生成当前的动态口令;c.将用户输入的登录信息与当前登录的动态口令进行比较,如果一致则通过认证。
8.根据权利要求
7所述的方法,其特征在于,在所述步骤a之前,包括当用户设定动态口令表达式时,检测用户设定动态口令表达式是否符合动态口令生成方法;若不符合动态口令的生成方法,则返回错误;若符合动态口令的生成方法,则将用户设定动态口令表达式进行存储。
9.根据权利要求
7或8所述的方法,其特征在于,在所述步骤a之前,包括生成动态口令参数中预定函数的当前值;向用户显示预定函数的当前值。
10.根据权利要求
7或8所述的方法,其特征在于,所述步骤b包括生成动态口令参数中预定函数的当前值;获取用户登录信息对应的动态口令表达式;用预定函数的当前值替换动态口令表达式中的预定函数;根据动态口令的生成方法生成当前的动态口令。
专利摘要
本发明公开一种适用于网络的动态口令认证系统,该系统包括一个网络登录服务器和一个动态口令验证服务器,网络登录服务器至少包括口令设置模块,用于获取用户根据口令设置模块约定的动态口令参数设定的动态口令表达式;动态口令验证服务器依动态口令表达式生成当前的动态口令与用户输入的登录信息进行比较认证。本发明还公开一种适用于网络的动态口令认证方法,该方法包括a.获取用户的登录信息;b.生成当前的动态口令;c.将用户输入的登录信息与当前登录的动态口令进行比较,如果一致则通过认证。该系统和方法可以有效地防止用户口令被窃取、截取、猜测或被木马等计算机病毒记录而泄露,提高了用户使用的安全性。
文档编号H04L9/32GK1992592SQ200510121528
公开日2007年7月4日 申请日期2005年12月30日
发明者黄佳祥 申请人:腾讯科技(深圳)有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1