一种动态口令认证方法及其系统的制作方法

文档序号:7821822阅读:254来源:国知局
一种动态口令认证方法及其系统的制作方法
【专利摘要】本发明涉及信息安全领域,尤其涉及的动态口令的认证方法具体包括:客户端获取用户信息,同时将用户信息发送至服务器,服务器根据用户信息查找与用户信息唯一关联的密钥参数;服务器结合密钥参数和一算法重构机制将服务器中存储的第一算法进行重构生成第三算法;客户端结合用户信息,在服务器中根据密钥参数和算法重构机制重构第一算法生成的第二算法,以及挑战值生成第二动态口令,同时将第二动态口令发送至服务器;服务器结合第三算法,用户信息,以及挑战值生成第一动态口令;服务器比对第一动态口令和第二动态口令,完成动态口令的认证。有效地解决了客户端密钥文件安全存储问题,从而大大提高了本发明中认证系统的安全。
【专利说明】一种动态口令认证方法及其系统

【技术领域】
[0001]本发明涉及信息安全领域,尤其涉及一种基于算法重构机制的口令认证方法及系统。

【背景技术】
[0002]随着信息科技的发展,信息安全技术在各领域的应用更为广泛和深入。在信息安全领域,身份认证往往是信息系统使用的第一把钥匙,其安全性受到越来越多的重视。相应地,为了加强身份认证安全性的动态口令技术已经越来越多地应用于各个不同领域,尤其在网银、网游、电信运营商、电子政务、企业服务器等应用领域。另外,动态口令在企业应用也是当前的热点,越来越多的企业或实体采用动态口令保护其V?、服务器、网络设备等。
[0003]动态口令是根据专门的算法生成一个不可预测的随机数字组合,一个密码使用一次有效,目前被广泛运用在网银、网游、电信运营商、电子政务、企业等应用领域。动态口令是一种安全便捷的帐号防盗技术,可以有效保护交易和登录的认证安全,采用动态口令就无需定期修改密码,安全省心,从而在最基本的密码认证这一环节保证了系统的安全性。解决因口令欺诈而导致的重大损失,防止恶意入侵者或人为破坏,解决由口令泄密导致的入侵问题。
[0004]为了进一步保障交易过程中的安全,目前较为常用的是使用实体硬件作为动态口令的载体,其内置电池、芯片和显示屏,产生并显示动态密码,但是这种动态令牌有一定的体积和厚度,长时间携带会给用户带来不便;当然,也有体积和厚度较小的令牌形式,如卡片式令牌,这种令牌虽然携带方便,但按键手感普遍较差,用户输入也不方便,同时成本也比较高;另外,人们也尝试在智能手机上开发软件令牌产品,但是其安全性无法保证,这种软件令牌只能用于安全性要求不是很高的场所。
[0005]无论是实体硬件动态令牌还是软件动态令牌,都有一个共同的弱点,其所有令牌的算法都相同且公开的,只是通过密钥来实现不同用户的身份认证过程,一旦密钥被非法获得,不法分子即可任意获取动态密码,动态令牌将不再安全。


【发明内容】

[0006]本发明为了解决现有动态口令在传输的过程中安全性能不高的问题,提供了一种全新的动态口令认证方法及系统,以提高使用动态口令认证过程中的安全性,避免安全隐串乂⑶0
[0007]为了实现上述目的,本发明采用以下技术方案如下:
[0008]一种动态口令认证方法,包括以下步骤:
[0009]51客户端获取用户信息,同时将所述用户信息发送至服务器,所述服务器根据所述用户信息查找与所述用户信息唯一关联的密钥参数;
[0010]32所述服务器结合所述密钥参数和一算法重构机制将所述服务器中存储的第一算法进行重构生成第三算法;
[0011]33所述客户端结合用户信息,在所述服务器中根据所述密钥参数和所述算法重构机制重构所述第一算法生成的第二算法,以及挑战值生成第二动态口令,同时将所述第二动态口令发送至所述服务器;;
[0012]84所述服务器结合所述第三算法,用户信息,以及挑战值生成第一动态口令;
[0013]35所述服务器比对所述第一动态口令和所述第二动态口令,完成动态口令的认证。
[0014]根据上述技术方案,由于客户端获取的用户信息唯一性,且根据该用户信息生成密钥参数是唯一且不可预见的,这样就确保了根据密钥参数重构后的算法的唯一性,从而使得生成的动态口令复杂度大大提高;同时,由于算法的唯一性,即每个用户对应的算法都不相同,算法同样安全性能高,难以破译,即使不法分子破解了一个用户,也不会影响其他用户,进而提高了使用动态口令进行认证的过程中的安全性,避免了安全隐患。
[0015]优选地,在完成所述动态口令认证之前,至少包括以下步骤:
[0016]801所述客户端获取所述用户信息,同时将所述用户信息发送至所述服务器;
[0017]302所述服务器获取所述用户信息,且根据所述用户信息生成与所述用户信息唯一关联的密钥参数,同时将所述密钥参数进行存储;
[0018]803所述服务器结合所述密钥参数和所述算法重构机制将所述服务器内部存储的第一算法进行重构生成第二算法;
[0019]804所述服务器将所述第二算法发送至所述客户端进行存储。
[0020]在动态口令实现认证之前,需要对每个用户进行注册操作,即服务器中根据每个不同的用户信息将存储在服务器中的第一算法进行重构,随后将重构后的算法发送至客户端中进行存储,即在本发明中,客户端和服务器中都不存放密钥文件,而是存放于用户信息唯一关联的算法函数,通过这种方式即解决了客户端密钥安全存储的问题,大大提高了动态口令认证过程中的安全性能。且在本发明中,密钥文件只在服务器中运行,而不出现在客户端中,同时解决了传统的认证系统中密钥文件传输过程中存在的安全问题。
[0021]优选地,在步骤303中,所述服务器结合所述密钥参数和所述算法重构机制将所述服务器内部存储的第一算法进行重构生成第二算法,至少包括以下步骤:
[0022]根据所述密钥参数,确定所述第二算法的运算顺序;
[0023]根据所述密钥参数,确定所述第二算法的分组模块的数量,以及所述分组模块的运算顺序;
[0024]根据所述密钥参数,确定所述第二算法中的固定参数。
[0025]优选地,在步骤32中,所述服务器结合所述密钥参数和一算法重构机制将所述服务器中存储的第一算法进行重构生成第三算法,至少包括以下一个步骤:
[0026]根据所述密钥参数,确定所述第二算法的运算顺序;
[0027]根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序;
[0028]根据所述密钥参数,确定所述第二算法中的固定参数。
[0029]优选地,在所述步骤32中包括的步骤与在所述步骤303中包括的步骤一一对应。
[0030]由于事先生成的在服务器中生成密钥参数为不可预知的字符串,这就使得密钥参数字符串是不可预知的,从而每个根据密钥参数进行算法重构的运算顺序、分组模块(包括分组模块的运算顺序和分组模块的数量)、或者算法中的固定参数的不同,提高了算法的复杂度以及密钥的复杂度,进而提高了动态口令认证过程中安全性。
[0031〕 一种动态口令认证系统,包括客户端和服务器,其中,所述服务器中包括:
[0032]第一数据接收模块,用于获取所述用户信息,以及接收客户端发送的动态口令;
[0033]随机数生成模块,根据所述服务器获取的用户信息生成随机数,所述随机数设定为密钥参数;
[0034]第一存储模块,用于将所述密钥参数与所述用于信息关联,同时将所述密钥参数进行存储,且内部存储有第一算法以及算法重构机制;
[0035]算法重构模块,结合所述密钥参数和所述算法重构机制对所述第一算法进行重构;
[0036]第一数据发送模块,将所述重构后的第一算法送至所述客户端;
[0037]第一动态口令生成模块,结合所述重构后的第一算法,用户信息,挑战值生成动态口令;
[0038]比对模块,用于比对分别于所述客户端和所述服务器中生成的动态口令。
[0039]优选地,所述客户端中包括:
[0040]信息输入模块,用于获取所述用户信息;
[0041]第二数据接收模块,用于接收所述服务器发送的所述重构后的第一算法;
[0042]第二存储模块,用于存储接收到的所述重构后的第一算法;
[0043]第二动态口令生成模块,用于结合所述重构后的第一算法,用户信息,挑战值生成动态口令;
[0044]第二数据发送模块,用于发送所述用户信息至所述服务器,同时用于发送所述第二动态口令生成模块中生成的所述动态口令至所述服务器。
[0045]根据上述技术方案,由于客户端获取的用户信息唯一性,且根据该用户信息生成密钥参数是唯一且不可预见的,这样就确保了根据密钥参数重构的算法的唯一性,从而使得生成的动态口令复杂度大大提高;同时,由于算法的唯一性,即每个用户对应的算法都不相同,算法同样安全性能高,难以破译,即使不法分子破解了一个用户,也不会影响其他用户,进而提高了使用动态口令进行认证的过程中的安全性,避免了安全隐患。
[0046]且服务器中根据每个不同的用户信息将存储在服务器中的第一算法进行重构,随后将重构后的算法发送至客户端中进行存储,即在本发明中,客户端和服务器中都不存放密钥文件,而是存放于用户信息唯一关联的算法函数,通过这种方式即解决了客户端密钥安全存储的问题,大大提高了动态口令认证过程中的安全性能。且在本发明中,密钥文件只在服务器中运行,而不出现在客户端中,同时解决了传统的认证系统中密钥文件传输过程中存在的安全问题。
[0047]优选地,所述算法重构模块中至少包括:
[0048]运算顺序单元,用于根据所述密钥参数确定所述重构后的第一算法的运算顺序;
[0049]分组单元,用于根据所述密钥参数确定所述重构后的第一算法的分组数量以及分组的运算顺序;
[0050]固定参数确定单元,用于根据所述密钥参数确定所述重构后的第一算法中的固定参数。
[0051]本发明至少能够带来以下一种有益效果:
[0052]1.在本发明中,与传统的动态口令认证系统不同,本发明的客户端和服务器中都不存放密钥文件,而是存放与用户信息唯一对应的算法函数,其中,在服务器中存放重构之前的算法函数,客户端中存放重构之后的算法函数,有效地解决了客户端密钥文件安全存储问题,从而大大提高了本发明中认证系统的安全;
[0053]2.在本发明中,由于客户端获取的用户信息的唯一性,因而根据该用户信息生成密钥参数是唯一且不可预见的,这样就确保了根据密钥参数重构的算法的唯一性,即每个用户对应的算法都不相同,因而算法的安全性能高,难以破译,即使不法分子破解了一个用户,也不会影响其他用户,进而提高了使用动态口令进行认证的过程中的安全性,避免了安全隐患;与此同时,生成的动态口令复杂度同样得到了提高;
[0054]3.在本发明中,密钥文件只在服务器中运行,而不出现在客户端中,解决了传统的认证系统中密钥文件传输过程中存在的安全问题;
[0055]4.客户端中存储的重构后的算法体现了私钥的性质,具备防抵赖的特性。

【专利附图】

【附图说明】
[0056]下面结合附图和【具体实施方式】对本发明作进一步详细说明:
[0057]图1为本发明中动态口令认证方法流程示意图;
[0058]图2为本发明中用户注册过程流程示意图;
[0059]图3为本发明中用户注册过程结构框图;
[0060]图4为本发明中密钥参数的数据结构图;
[0061]图5为本发明中动态口令认证系统中服务器的结构示意图;
[0062]图6为本发明中动态口令认证系统中客户端的结构示意图。

【具体实施方式】
[0063]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0064]作为本发明的一个具体实施例,如图1所示,本发明提供了一种动态口令认证方法,具体包括以下步骤:
[0065]51客户端获取用户信息,同时将用户信息发送至服务器,服务器根据用户信息查找与用户信息唯一关联的密钥参数;
[0066]32服务器结合密钥参数和一算法重构机制将服务器中存储的第一算法进行重构生成第二算法;
[0067]83客户端结合用户信息,在服务器中根据密钥参数和算法重构机制重构第一算法生成的第二算法,以及挑战值生成第二动态口令,同时将第二动态口令发送至服务器;
[0068]84服务器结合第三算法,用户信息,以及挑战值生成第一动态口令;
[0069]85服务器比对第一动态口令和第二动态口令,完成动态口令的认证。
[0070]具体地,如图2和图3所示,在完成动态口令认证之前,用户在服务器中的注册过程,至少包括以下步骤:
[0071]801客户端获取用户信息,同时将用户信息发送至服务器;
[0072]802服务器获取用户信息,且根据用户信息生成与用户信息唯一关联的密钥参数,同时将密钥参数进行存储;
[0073]303服务器结合密钥参数和算法重构机制将服务器内部存储的第一算法进行重构生成第二算法;
[0074]804服务器将第二算法发送至客户端进行存储。
[0075]具体地,在步骤301和31中,用户信息包括用户名、密码、手机号等。用户通过客户端中的输入界面输入用户信息,随后客户端即将该用户信息发送至服务器。特别地,在本发明中,对用户信息的具体内容不作限定,只要其能唯一标识该用户,都包括在本发明的内容中。
[0076]在步骤302中,密钥参数是由设置于服务器内部的随机数生成器根据用户信息生成的随机数,密钥参数可以使用8(0-7)进制数进行表示。即当服务器接收到客户端发送过来的用户信息,即根据接收到用户信息,通过随机数生成随机数,即为密钥参数,随后再将生成的密钥参数与用户信息进行关联存储,以便在动态口令过程中根据用户输入的用户信息能够在服务器内部查找到与之关联的密钥参数,生成动态口令。可以看出,由于每个用户的用户信息具有唯一性,而随机数生成器根据用户信息生成的密钥参数又具备唯一且不可预见性,在使用的过程中即使密钥参数被盗用,非法分子也不能根据密钥参数的信息获取用户的信息,大大的提高了在口令认证过程中用户的安全性能。
[0077]在步骤303和步骤32中,上述第一算法,为一预先存储在服务器中的算法,包括目前应用较为广泛的加密算法,313等,在本发明中,为了进一步提高口令在认证过程中的安全性能,在动态口令的生成过程中,不再使用传统的加密算法,而是利用预先存储在服务器中的算法重构机制结合密钥参数对上述第一算法进行重构生成后续口令生成过程中需要使用的算法,在本发明中,具体表现为第二算法和第三算法。特别地,本发明对第一算法的具体内容不作限定,只要其是目前能够想到的,或者在可预见的未来能够想到的加密算法,都包括在本发明的内容中。
[0078]具体地,在步骤303和步骤32中至少包括以下一个步骤:
[0079]根据密钥参数,确定第二算法的运算顺序;
[0080]根据密钥参数,确定第二算法的分组数据块的结构,以及分组数据块的运算顺序;
[0081]根据密钥参数,确定第二算法中的固定参数。
[0082]且在步骤303和步骤32中包括的步骤——对应。
[0083]具体地,在本发明中,算法重构机制主要通过以下三种方式来实现:算法重构机制主要通过上述三种方式进行实现,分别是改变第一算法的运算顺序、分组数据块结构和顺序以及第一算法中包括的固定参数,且为了进一步保障重构后的算法的唯一性和不可预见性,在本发明中,算法重构机制结合随机生成模块生成的密钥参数对算法进行重构。具体地,假设密钥参数为8个字节,其中,第一位代表运算顺序,第二位代表分组数据块,第三位代表固定参数,如图4所示,将其带入算法重构机制,通过算法重构机制对第一算法进行重构生成一个与用户信息相关的新算法,由此可以看出,由于密钥参数的随机性,即其中包括的每个字节的参数都是随机的,因而将其带入算法重构机制对第一算法进行重构后的算法即具备了随机性,即每个用户对应的重构后的算法都不相同,因而算法的安全性能高,难以破译,即使不法分子破解了一个用户,也不会影响其他用户,进而提高了使用动态口令进行认证的过程中的安全性,避免了安全隐患。
[0084]进一步地,以通过改变运算顺序重构第一算法来说:假定某一算法的一般运算顺序依次包括讯),II,12,13四个主步骤,且每个步骤中分别包括相应的子步骤,如II中包括七041,^2, ^3, ^4五个子步骤,在本发明中,即可以通过密钥参数中的某一位代表运算顺序,以改变该算法的运算顺序,从而生成新的算法,具体地,如果密钥参数为01234567,其中,第一位代表运算顺序,若此时第一位代表的II中子步骤的运算顺序,则表示切为五个子步骤中的第一个运算步骤,同理,若第一位代表主步骤的运算顺序,则表示II为则说明在主步骤II为第一运算步骤;如果密钥参数为21304567,且第一位代表运算顺序,若此时第一位代表主步骤的运算顺序,则表示步骤12为主步骤中的第一运算步骤,同理,若此时第一位代表II中子步骤的运算顺序,则表示步骤丨2为五个子步骤中的第一个运算步骤。特别地,在本发明中,密钥参数采用八进制数表示,假若此时密钥参数中代表运算顺序的位数大于算法运算过程中的步骤数量,如,密钥参数为76543210,第一位7代表运算顺序,而此时算法的主步骤只有II,12,13,14四个步骤,算法在运行的过程中,找不到步骤17作为第一运算步骤,则此时自动跳过,直接按照原顺序进行运行。在本发明中,对上述的算法及密钥参数对算法运算顺序的改变都不作限定,只要运算顺序改变后算法的作用不变,能达到最初的目的,都包括在本发明的内容中。
[0085]进一步地,以通过改变分组数据块的结构和运算顺序重构第一算法来说:其中,改变分组数据块的结构包括分组数据块的数量也包括数据块内部的结构的变化。例如:可以根据密钥参数中某一位字节代表分组模块的内部结构的改变,另一位代表重新分组过后的分组模块的运算顺序带入第一算法的运算从而生成新的算法。以313杂凑算法为例,313的一般运算顺序依次是:填充、分组、迭代、压缩,假若用户信息砠的长度为24化。则算法在运算的过程中首先对信息进行填充,填充后的数据III’的长度为512611的整数倍,随后对填充后的数据按照512化丨进行分组,即分组后的每组数据为5126 1七=8(0)8⑴…。具体地,在本发明中,假若分组后的数据块8⑹=[00, 01,02,03……],密钥参数为01234567,且第一位代表分组数据块的运算顺序,第二代表分组数据块的结构,则此时在运算过程中数据组旧与响的位置进行对换以此改变数据块的结构,0表示第一个数据块8⑹在第一步进行运算;类似地,若密钥参数为24653107,则在运算过程中V与!110的位置进行对换来改变数据块的结构,2表示8⑹在第三步进行运算。当然,在本发明中,我们对改变数据块结构的方法不作具体限定,即在上述例子中,当密钥参数为01234567时,代表“可以与响-…中任一数组进行对换,在实际中数据组的对换取决于算法重构机制的设定。又例如,在本发明中,可以根据密钥参数中某一字节代表分组数据块的数量,另一位代表重新分组过后的分组数据块的运算顺序带入第一算法的运算从而生成新的算法,以313杂凑算法为例,在改变分组数据块的数量的过程中,假如用户信息砠的长度为3701311,按照313传统的算法会首先将信息砠进行填充为5126“的数据,而在本发明中,可以首先将3706“的数据按照定长(如,每组200810的数据组进行分组,随后再将分组过后的每组数据进行填充为5126“以改变分组数据块的结构,随后再按照313正常的步骤进行运算,当然,在本发明中,我们对上述的数据组的定长不作限定,只要其能达到本发明的目的,都包括在本发明的内容中。
[0086]进一步地,以改变固定参数来说:可以将密钥参数中的某一个位代表固定参数,参与到算法重构机制的编程运算中改变固定参数。以椭圆曲线算法为例42 = ^3+^,以密钥参数的某一位代表固定参数,参与到算法重构机制的编程运算中改变固定参数3或者6的值,从而形成新算法。如密钥参数用01234567来表示,且第三位固定参数2作为3的值,从而改变第一算法生成的新的算法即为12 = 13+21+1^
[0087]在步骤33中,用户在客户端的输入界面中输入用户信息,客户端即根据接收到的用户信息,使用储存在其内部的第二算法,结合用户信息和挑战值信息生成第二动态口令,同样的,以上述经过改变固定参数得到的第二算法V =为例,在本发明中,将将X设为密钥参数X,则为最终得到的第二动态口令1(3+21(+1^当第一动态口令生成之后,随即将其发送至服务器中,等待服务器的认证。
[0088]与此同时,在步骤34中,服务器通过接收到的用户信息,查找到储存在其内部的唯一与该用户关联的密钥参数,进而根据得到的密钥参数重构第一算法,得到第三算法,特别地,得到第三算法的算法重构机制与得到第二算法的算法重构机制相同,即如若得到第二算法时采用的改变固定参数的方法实现,则得到第三算法也相应的采用这种方法实现,且都是通过同一个密钥参数中相同的某一位来进行改变,因此,如若服务器在获取用户信息的过程中没有被篡改,得到的第三算法与第二算法相同,以实现后续的动态口令的认证。
[0089]第三算法生成之后,服务器中即同样的结合获取用户信息和挑战值信息生成第一动态口令,第一动态口令的生成方法与客户端中生成第一动态口令的方法相同。
[0090]在步骤35中,当服务器中生成了第二动态口令,则将生成的第二动态口令与接收的第一动态口令进行比对,若比对成功,则说明动态口令认证成功;若比对失败,则反馈结果至客户端中的显示界面,提醒用户再次进行认证。
[0091]如图5所示,本发明还提供了一种动态口令认证系统,包括客户端和服务器,其中,服务器中包括:第一数据接收模块,用于获取用户信息,以及接收客户端发送的动态口令;随机数生成模块,根据服务器获取的用户信息生成随机数,随机数设定为密钥参数,在本发明中,随机数生成模块包括随机数生成器;第一存储模块,用于将密钥参数与用于信息关联,同时将密钥参数进行存储,且内部存储有第一算法以及算法重构机制;算法重构模块,结合密钥参数和算法重构机制对第一算法进行重构,其中算法重构机制在本发明提供的动态口令认证方法中详细描述,在此不再赘述;第一数据发送模块,将重构后的第一算法送至客户端;第一动态口令生成模块,结合重构后的第一算法,用户信息,挑战值生成动态口令;比对模块,用于比对分别于客户端和服务器中生成的动态口令。
[0092]进一步地,如图6所示,客户端中包括:信息输入模块,用于获取用户信息;第二数据接收模块,用于接收服务器发送的重构后的第一算法,即第二算法;第二存储模块,用于存储接收到的重构后的第一算法(第二算法);第二动态口令生成模块,用于结合重构后的第一算法(第二算法),用户信息,挑战值生成动态口令;第二数据发送模块,用于发送用户信息至服务器,同时用于发送第二动态口令生成模块中生成的动态口令至服务器。
[0093]进一步地,算法重构模块中至少包括以下一个单元:
[0094]运算顺序单元,用于根据密钥参数确定重构后的第一算法的运算顺序。
[0095]分组单元,用于根据密钥参数确定重构后的第一算法的分组数据块的结构以及分组数据块的运算顺序。
[0096]固定参数确定单元,用于根据密钥参数确定重构后的第一算法中的固定参数。
[0097]参照图5和图6,对本发明的动态口令认证系统实现动态口令的认证过程作出具体描述:
[0098]用户注册过程:
[0099]客户端中通过信息输入模块获取用户信息,随后通过第一数据发送模块将用户信息发送至服务器,服务器中的第一数据接收模块接收用户信息之后将用户信息发送随机数生成模块,生成随机数,即密钥参数,随后将与用户信息唯一关联密钥参数发送至第一存储模块进行存储,最后根据用户信息和密钥参数通过算法重构模块将服务器中存储的第一算法进行重构生成第二算法,最后将第二算法通过第一数据发送模块发送至客户端中的第二数据接收模块,第二数据接收模块将接收到的第二算法发送至第二存储模块中进行存储,完成用户信息的注册。
[0100]动态口令的认证过程:
[0101]客户端中通过信息输入模块获取用户信息,随后通过第一数据发送模块将用户信息发送至服务器,服务器中的第一数据接收模块接收用户信息之后根据接收到的用户信息在第一存储模块中进行查找与用户信息唯一关联的密钥参数,随后根据用户信息和查找到的密钥参数通过算法重构模块将服务器中存储的第一算法进行重构生成第三算法。
[0102]客户端中根据接获取到的用户信息,根据第二存储模块中第二算法,和用户信息以及通过信息输入模块接收到的挑战值信息在第二动态口令模块中生成第二动态口令,随后将生成的第二动态口令通过第二数据发送模块发送至服务器中。
[0103]服务器中的第一数据接收模块接收到第二动态口令,随后将第二动态口令发送至比对模块,与此同时,第一动态口令模块结合第三算法,用户信息以及挑战值信息生成第一动态口令,发送至比对模块。
[0104]比对模块将接收到的第一动态口令和第二动态口令进行比对,最后将比对结果通过第一数据发送模块发送至客户端中进行显示。
[0105]综上所述,由于客户端获取的用户信息的唯一性,因而根据该用户信息生成密钥参数是唯一且不可预见的,这样就确保了根据密钥参数重构的算法的唯一性,即每个用户对应的算法都不相同,因为算法的安全性能高,难以破译,即使不法分子破解了一个用户,也不会影响其他用户,进而提高了使用动态口令进行认证的过程中的安全性,避免了安全隐患;与此同时,生成的动态口令复杂度同样得到了提高。
[0106]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种动态口令认证方法,其特征在于,包括以下步骤: Si客户端获取用户信息,同时将所述用户信息发送至服务器,所述服务器根据所述用户信息查找与所述用户信息唯一关联的密钥参数; S2所述服务器结合所述密钥参数和一算法重构机制将所述服务器中存储的第一算法进行重构生成第三算法; S3所述客户端结合用户信息,在所述服务器中根据所述密钥参数和所述算法重构机制重构所述第一算法生成的第二算法,以及挑战值生成第二动态口令,同时将所述第二动态口令发送至所述服务器; S4所述服务器结合所述第三算法,用户信息,以及挑战值生成第一动态口令; S5所述服务器比对所述第一动态口令和所述第二动态口令,完成动态口令的认证。
2.如权利要求1所述动态口令认证方法,其特征在于,在完成所述动态口令认证之前,至少包括以下步骤: SOl所述客户端获取所述用户信息,同时将所述用户信息发送至所述服务器; S02所述服务器获取所述用户信息,且根据所述用户信息生成与所述用户信息唯一关联的密钥参数,同时将所述密钥参数进行存储; S03所述服务器结合所述密钥参数和所述算法重构机制将所述服务器内部存储的第一算法进行重构生成第二算法; S04所述服务器将所述第二算法发送至所述客户端进行存储。
3.如权利要求2所述动态口令认证方法,其特征在于:在步骤S03中,所述服务器结合所述密钥参数和所述算法重构机制将所述服务器内部存储的第一算法进行重构生成第二算法,至少包括以下一个步骤: 根据所述密钥参数,确定所述第二算法的运算顺序; 根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序; 根据所述密钥参数,确定所述第二算法中的固定参数。
4.如权利要求3所述动态口令认证方法,其特征在于:在步骤S2中,所述服务器结合所述密钥参数和一算法重构机制将所述服务器中存储的第一算法进行重构生成第三算法,至少包括以下一个步骤: 根据所述密钥参数,确定所述第二算法的运算顺序; 根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序; 根据所述密钥参数,确定所述第二算法中的固定参数。
5.如权利要求4所述动态口令认证方法,其特征在于:在所述步骤S2中包括的步骤与在所述步骤S03中包括的步骤——对应。
6.一种动态口令认证系统,包括客户端和服务器,其特征在于,所述服务器中包括: 第一数据接收模块,用于获取所述用户信息,以及接收客户端发送的动态口令; 随机数生成模块,根据所述服务器获取的用户信息生成随机数,所述随机数设定为密钥参数; 第一存储模块,用于将所述密钥参数与所述用于信息关联,同时将所述密钥参数进行存储,且内部存储有第一算法以及算法重构机制; 算法重构模块,结合所述密钥参数和所述算法重构机制对所述第一算法进行重构; 第一数据发送模块,将所述重构后的第一算法送至所述客户端; 第一动态口令生成模块,结合所述重构后的第一算法,用户信息,挑战值生成动态口令; 比对模块,用于比对分别于所述客户端和所述服务器中生成的动态口令。
7.如权利要求6所述动态口令认证系统,其特征在于,所述客户端中包括: 信息输入模块,用于获取所述用户信息; 第二数据接收模块,用于接收所述服务器发送的所述重构后的第一算法; 第二存储模块,用于存储接收到的所述重构后的第一算法; 第二动态口令生成模块,用于结合所述重构后的第一算法,用户信息,挑战值生成动态口令; 第二数据发送模块,用于发送所述用户信息至所述服务器,同时用于发送所述第二动态口令生成模块中生成的所述动态口令至所述服务器。
8.如权利要求6所述动态口令认证系统,其特征在于,所述算法重构模块中至少包括以下一个单元: 运算顺序单元,用于根据所述密钥参数确定所述重构后的第一算法的运算顺序; 分组单元,用于根据所述密钥参数确定所述重构后的第一算法的分组数据块的结构以及分组数据块的运算顺序; 固定参数确定单元,用于根据所述密钥参数确定所述重构后的第一算法中的固定参数。
【文档编号】H04L29/06GK104410498SQ201410727308
【公开日】2015年3月11日 申请日期:2014年12月3日 优先权日:2014年12月3日
【发明者】谈剑锋, 尤磊, 赵晶晶, 盛学明 申请人:上海众人科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1