一种动态令牌的同步方法和系统的制作方法

文档序号:7800639阅读:168来源:国知局
一种动态令牌的同步方法和系统的制作方法
【专利摘要】本发明公开一种动态令牌的同步方法和系统,应用于包括动态令牌、主机和认证服务器的系统中,认证服务器生成随机数,并将该随机数保存为与动态令牌对应的挑战码;动态令牌获取认证服务器生成的随机数,并根据该随机数生成一个同步码,认证服务器使用自身保存的与该动态令牌对应的挑战码,对动态令牌生成的同步码进行验证,在验证通过后对自身保存的令牌偏移量进行更新,从而提高了同步的成功率,防止由于使用错误的或者延迟的同步码而造成的恶意同步。
【专利说明】一种动态令牌的同步方法和系统
【技术领域】
[0001]本发明涉及信息安全领域,特别是涉及一种动态令牌的同步方法和系统。
【背景技术】
[0002]动态令牌是一种用于生成动态口令的设备,广泛应用于网银、电信运营商和电子政务等应用领域。动态令牌所生成的动态口令可用于身份认证,能够有效提高身份认证的安全性。
[0003]由于动态令牌根据自身保存的动态因子生成动态口令,认证服务器根据自身保存的动态因子,对动态令牌生成的动态口令进行认证,当动态令牌保存的动态因子与认证服务器保存的动态因子之间的差值大于认证窗口时,动态令牌的动态口令将会无法通过认证,需要对动态令牌保存的动态因子和认证服务器保存的动态因子进行同步。
[0004]现有技术中,动态令牌根据自身的动态因子生成同步码,认证服务器获取该同步码后,根据该同步码进行同步。
[0005]发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
[0006]现有的同步操作流程中,动态令牌需要生成两个同步码,用户需要分别输入上述两个同步码,容易产生输入错误和时间延迟,导致同步码超出同步窗口的范围,造成同步失败。

【发明内容】

[0007]本发明提供了一种动态令牌的同步方法和系统,以解决现有技术中同步失败的缺陷。
[0008]本发明提供了一种动态令牌的同步方法,包括以下步骤:
[0009]S1、认证服务器接收来自主机的同步请求,从所述同步请求中获取动态令牌的序列号,并生成随机数,将所述随机数保存为与所述动态令牌的序列号对应的挑战码,将所述随机数返回给所述主机进行显示;
[0010]S2、所述动态令牌获取所述随机数,根据所述随机数以及所述动态令牌中的动态因子和种子密钥,生成应答码,并根据所述应答码和所述动态因子生成同步信息;
[0011]S3、所述动态令牌将所述同步信息和所述应答码组合成同步码,并对所述同步码进行显示;
[0012]S4、所述认证服务器获取所述同步码和所述动态令牌的序列号;
[0013]S5、所述认证服务器从所述同步码中获取所述应答码和所述同步信息,根据所述动态令牌的序列号查询与所述动态令牌对应的种子密钥和挑战码;
[0014]S6、所述认证服务器使用查询到的种子密钥和挑战码,以及从所述同步码中获取的所述同步信息,对从所述同步码中获取的应答码进行验证,如果验证通过,则执行步骤S8 ;否则,执行步骤S7 ;
[0015]S7、所述认证服务器向所述主机发送同步失败消息;[0016]S8、所述认证服务器根据从所述同步码中获取的所述同步信息以及所述认证服务器中的动态因子,更新所述认证服务器中与所述动态令牌对应的令牌偏移量。
[0017]本发明还提供了一种动态令牌的同步系统,包括动态令牌、主机和认证服务器;
[0018]其中,所述动态令牌包括:
[0019]第一获取模块,用于获取所述认证服务器生成的随机数;
[0020]第一生成模块,用于根据所述第一获取模块获取到的所述随机数以及所述动态令牌中的动态因子和种子密钥,生成应答码;
[0021]第二生成模块,用于根据所述第一生成模块生成的所述应答码和所述动态因子生成同步信息;
[0022]组合模块,用于将所述第二生成模块生成的所述同步信息和所述第一生成模块生成的所述应答码组合成同步码;
[0023]显示模块,用于对所述组合模块组合得到的所述同步码进行显示;
[0024]所述认证服务器,包括:
[0025]接收模块,用于接收来自所述主机的同步请求;
[0026]第二获取模块,用于从所述接收模块接收到的所述同步请求中获取所述动态令牌的序列号;
[0027]第三生成模块,用于在所述接收模块接收到所述同步请求之后,生成随机数,将所述随机数保存为与所述第二获取模块获取到的所述动态令牌的序列号对应的所述挑战码;
[0028]第三获取模块,用于获取所述动态令牌生成的所述同步码和所述动态令牌的序列号;
[0029]第四获取模块,用于从所述第三获取模块获取到的所述同步码中获取所述应答码和所述同步信息;
[0030]查询模块,用于根据所述第三获取模块获取到的所述动态令牌的序列号查询与所述动态令牌对应的种子密钥和挑战码;
[0031]验证模块,用于使用所述查询模块查询到的种子密钥和挑战码,以及所述第四获取模块从所述同步码中获取的所述同步信息,对从所述同步码中获取的应答码进行验证;
[0032]更新模块,用于在所述验证模块对所述应答码验证通过时,根据所述第四获取模块从所述同步码中获取的所述同步信息以及所述认证服务器中的动态因子,更新所述认证服务器中与所述动态令牌对应的令牌偏移量;
[0033]发送模块,用于将所述第三生成模块生成的所述随机数返回给所述主机进行显示,并在所述验证模块对所述应答码验证未通过时,向所述主机发送同步失败消息。
[0034]本发明达到的有益效果:认证服务器生成随机数,并将该随机数保存为与动态令牌对应的挑战码;动态令牌获取认证服务器生成的随机数,并根据该随机数生成一个同步码,认证服务器使用自身保存的与该动态令牌对应的挑战码,对动态令牌生成的同步码进行验证,在验证通过后对自身保存的令牌偏移量进行更新,从而提高了同步的成功率,防止由于使用错误的或者延迟的同步码而造成的恶意同步。
【专利附图】

【附图说明】[0035]图1为本发明实施例中的一种动态令牌的同步方法流程图;
[0036]图2为本发明实施例中的一种更新令牌偏移时间的方法流程图;
[0037]图3为本发明实施例中的一种更新令牌偏移次数的方法流程图;
[0038]图4为本发明实施例中的一种动态令牌的同步系统的结构示意图;
[0039]图5为本发明实施例中的一种更新模块的结构示意图;
[0040]图6为本发明实施例中的另一种更新模块的结构示意图。
【具体实施方式】
[0041]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]如图1所示,为本发明实施例中的一种动态令牌的同步方法流程图,应用于包括认证服务器、主机和动态令牌的系统中,该方法包括以下步骤:
[0043]步骤101,主机获取用户输入的动态令牌的序列号,根据动态令牌的序列号生成同步请求,将该同步请求发送给认证服务器。
[0044]其中,同步请求中可以包含动态令牌的序列号。
[0045]例如,主机获取用户输入的动态令牌的序列号“5740000006”,根据动态令牌的序列号“ 5740000006 ”生成同步请求。
[0046]步骤102,认证服务器从接收到的同步请求中获取动态令牌的序列号,生成随机数,将该随机数保存为与上述动态令牌的序列号对应的挑战码,并记录该随机数的生成时间,将该随机数的生成时间保存为与上述动态令牌的序列号对应的挑战码的生成时间,将该随机数返回给主机。
[0047]例如,认证服务器获取动态令牌的序列号“5740000006”,生成随机数“1234”,将“1234”保存为与“5740000006”对应的挑战码,记录“1234”的生成时间“1390445039”(相当于自然时间2014年I月23 H 2时43分59秒),将“1390445039”保存为与“5740000006”对应的挑战码的生成时间,并向主机返回“1234”。
[0048]步骤103,主机对接收到的随机数进行显示。
[0049]例如,主机显示随机数“1234”。
[0050]步骤104,动态令牌获取用户输入的随机数,并根据该随机数以及动态令牌中的动态因子和种子密钥,生成应答码。
[0051]其中,动态令牌中的动态因子可以为时间因子;相应地,动态令牌可以使用自身保存的种子密钥,对动态令牌中的时间因子和用户输入的随机数进行数据处理,得到应答码。
[0052]动态令牌中的动态因子还可以为事件因子;相应地,动态令牌可以使用自身保存的种子密钥,对动态令牌中的事件因子和用户输入的随机数进行数据处理,得到应答码。
[0053]本实施例中,用户输入的随机数可以为步骤102中认证服务器生成的随机数。
[0054]例如,动态令牌获取到的用户输入的随机数为“1234”,动态令牌中的动态因子为时间因子“1390445154”(相当于自然时间2014年I月23日2时45分54秒),动态令牌根据该随机数“1234”、时间因子“1390445154”以及动态令牌保存的种子密钥“65201D80CB58ADE3DD236CAEF6925010 ”,生成应答码 “ 4534 ”。
[0055]步骤105,动态令牌根据应答码和动态因子生成同步信息。
[0056]具体地,动态令牌可以对应答码和动态因子进行异或,将得到的异或结果与预设的密钥信息进行异或,得到同步信息;也可以根据预设数据和动态令牌中的种子密钥生成密钥信息,对应答码和动态因子进行异或,将得到的异或结果与上述密钥信息进行异或,得到同步信息;也可以从动态因子的最低位开始,选取预设长度的数据,将选取的数据与应答码进行异或,将得到的异或结果与预设的密钥信息进行异或,得到同步信息;还可以根据预设数据和动态令牌中的种子密钥生成密钥信息,从动态因子的最低位开始,选取预设长度的数据,将选取的数据与应答码进行异或,将得到的异或结果与上述密钥信息进行异或,得到同步信息。
[0057]例如,预设长度为4位,动态因子为时间因子“ 1390445154”,应答码为“4534”,预设的密钥信息为“9453”时,动态令牌从时间因子“1390445154”中选取4位数据“5154”,将选取的数据“5154”与应答码“4534”进行异或,将得到的异或结果“6542”与密钥信息“9453”进行异或,得到同步信息“3564”。
[0058]步骤106,动态令牌将同步信息和应答码组合成同步码,并对该同步码进行显示。
[0059]其中,在组合得到的同步码中,应答码可以位于第一预设位置,同步信息可以位于第二预设位置。
[0060]例如,动态令牌将应答码“4534”和同步信息“3564”组合成同步码“45343564”,并显示同步码“45343564”。
[0061]步骤107,主机获取用户输入的同步码,根据该同步码和动态令牌的序列号生成同步执行请求,将该同步执行请求发送给认证服务器。
[0062]其中,同步执行请求中包含用户输入的同步码和动态令牌的序列号,用户输入的同步码可以是步骤106中动态令牌生成并显示的同步码。
[0063]例如,主机获取用户输入的同步码“ 45343564 ”,根据该同步码“ 45343564 ”和动态令牌的序列号“ 5740000006 ”生成同步执行请求,将该同步执行请求发送给认证服务器。
[0064]步骤108,认证服务器从接收到的同步执行请求中获取同步码和动态令牌的序列号,记录该同步码的获取时间,并根据动态令牌的序列号查询对应的挑战码的生成时间。
[0065]例如,认证服务器获取到同步码“45343564”和动态令牌的序列号“5740000006”,记录该同步码“45343564”的获取时间“1390445090”(相当于自然时间2014年I月23日2时44分50秒),并根据动态令牌的序列号“5740000006”,查询到对应的挑战码“ 1234”的生成时间“1390445039” (相当于自然时间2014年I月23日2时43分59秒)。
[0066]步骤109,认证服务器判断同步码的获取时间是否在挑战码的生成时间之后的第一预设时长内,如果是,则执行步骤112 ;否则,执行步骤110。
[0067]例如,第一预设时长为60秒,同步码的获取时间为“1390445090”(相当于自然时间2014年I月23日2时44分50秒),挑战码的生成时间为“ 1390445039”(相当于自然时间2014年I月23日2时43分59秒)时,认证服务器获取到同步码的获取时间和挑战码的生成时间之间的时间间隔为51秒,该时间间隔小于第一预设时长,进而判断出同步码的获取时间在挑战码的生成时间之后的第一预设时长内。
[0068]步骤110,认证服务器向主机发送同步失败消息。[0069]步骤111,主机显示同步失败信息,结束流程。
[0070]步骤112,认证服务器从同步码中获取应答码和同步信息,根据动态令牌的序列号查询与该动态令牌对应的种子密钥和挑战码。
[0071]具体地,认证服务器可以从同步码的第一预设位置获取应答码,从同步码的第二预设位置获取同步信息。认证服务器根据动态令牌的序列号查询到的种子密钥可以与该动态令牌保存的种子密钥相同。
[0072]例如,认证服务器从同步码“45343564”中获取应答码“4534”和同步信息“3564”,根据动态令牌的序列号“5740000006 ”查询到对应的种子密钥“65201D80CB58ADE3DD236CAEF6925010” 和挑战码 “ 1234”。
[0073]步骤113,认证服务器使用查询到的种子密钥和挑战码,以及从同步码中获取的同步信息,对从同步码中获取的应答码进行验证,如果验证通过,则执行步骤114 ;否则,返回步骤110。
[0074]具体地,认证服务器可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据查询到的种子密钥和挑战码,按照与动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。
[0075]认证服务器也可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据查询到的种子密钥和挑战码,按照与动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。
[0076]认证服务器也可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据查询到的种子密钥和挑战码,按照与动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。
[0077]认证服务器还可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据查询到的种子密钥和挑战码,按照与动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。其中,认证服务器中的动态因子可以是时间因子,也可以是事件因子。
[0078]例如,预设长度为4位,认证服务器查询到的种子密钥为“65201D80CB58ADE3DD236CAEF6925010”,挑战码为“ 1234”,密钥信息为“9453”,认证服务器从同步码“45343564”中获取到应答码“4534”和同步信息“3564”,认证服务器中的动态因子为时间因子“1390445090”(相当于自然时间2014年I月23日2时44分50秒)时,认证服务器将预设的密钥信息“9453”和同步信息“3564”进行异或,将得到的异或结果“5154”替换认证服务器中的动态因子“1390445090”的最低4位,将替换得到的数据“ 1390445154”作为动态因子,根据查询到的种子密钥“65201D80CB58ADE3DD236CAEF6925010”和挑战码“ 1234”,按
照与动态令牌生成应答码相同的方法,在预设的认证窗口中生成多个应答码,并判断出生成的应答码中包含与从同步码中获取的应答码“4534”相同的应答码,确定获取的应答码“4534”验证通过。
[0079]步骤114,认证服务器根据从同步码中获取的同步信息以及认证服务器中的动态因子,更新认证服务器中与动态令牌对应的令牌偏移量,向主机发送同步成功消息,主机显示同步成功信息,结束流程。
[0080]具体地,动态令牌为时间型动态令牌时,动态因子为时间因子,认证服务器中的令牌偏移量为令牌偏移时间,认证服务器根据令牌偏移时间对动态令牌生成的动态口令进行认证,并在认证成功后,将与该动态口令匹配的时间因子的取值保存为与该动态令牌对应的认证成功时间。
[0081]相应地,上述步骤114中,认证服务器更新令牌偏移量的操作,具体为认证服务器更新令牌偏移时间的操作,如图2所示,包括以下步骤:
[0082]步骤201,认证服务器判断动态令牌中的时间因子是否大于与动态令牌对应的、最近一次的认证成功时间,如果是,则执行步骤204 ;否则,执行步骤202。
[0083]具体地,认证服务器可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的时间因子,判断动态令牌中的时间因子是否大于与动态令牌对应的、最近一次的认证成功时间;认证服务器也可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的时间因子,判断动态令牌中的时间因子是否大于与动态令牌对应的、最近一次的认证成功时间;认证服务器也可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的时间因子,判断动态令牌中的时间因子是否大于与动态令牌对应的、最近一次的认证成功时间;认证服务器还可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的时间因子,判断动态令牌中的时间因子是否大于与动态令牌对应的、最近一次的认证成功时间。
[0084]例如,动态令牌对应的、最近一次的认证成功时间为“1390440765” (相当于自然时间2014年I月23日I时32分45秒),认证服务器从同步码“45343564”中获取到应答码“4534”和同步信息“3564”,认证服务器中的时间因子为“1390445090”(相当于自然时间2014年I月23日2时44分50秒)时,认证服务器将预设的密钥信息“9453”和同步信息“3564”进行异或,将得到的异或结果“5154”替换认证服务器中的时间因子“ 1390445090”的最低4位,将替换得到的数据“ 1390445154 ”作为动态令牌中的时间因子,判断出动态令牌中的时间因子大于与动态令牌对应的、最近一次的认证成功时间。
[0085]步骤202,认证服务器向主机发送同步失败消息。
[0086]步骤203,主机显示同步失败信息,结束流程。
[0087]步骤204,认证服务器获取当前系统时间与自身保存的、与动态令牌对应的最近一次的同步时间之间的差值,根据该差值和第一预设步长计算第一偏移阈值。[0088]具体地,认证服务器可以获取当前系统时间与动态令牌对应的最近一次的同步时间之间的差值,将该差值与第一预设步长的乘积作为第一偏移阈值。
[0089]例如,当前系统时间为“1390445090”(相当于自然时间2014年I月23日2时44分50秒),第一预设步长为0.00001,认证服务器保存的、与动态令牌对应的最近一次的同步时间为“1380445090”(相当于自然时间2013年9月29日16时58分10秒)时,认证服务器可以获取当前系统时间与动态令牌对应的最近一次的同步时间之间的差值为1390445090-1380445090=10000000,第一偏移阈值为该差值与第一预设步长之间的乘积,即 10000000*0.00001=100。
[0090]步骤205,认证服务器判断动态令牌中的时间因子与认证服务器中的时间因子之间的时间差值是否大于第一偏移阈值,如果是,则执行步骤207 ;否则,执行步骤206。
[0091]具体地,认证服务器可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的时间因子,判断动态令牌中的时间因子与认证服务器中的时间因子之间的时间差值是否大于第一偏移阈值;也可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的时间因子,判断动态令牌中的时间因子与认证服务器中的时间因子之间的时间差值是否大于第一偏移阈值;也可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的时间因子,判断动态令牌中的时间因子与认证服务器中的时间因子之间的时间差值是否大于第一偏移阈值;还可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的时间因子,判断动态令牌中的时间因子与认证服务器中的时间因子之间的时间差值是否大于第一偏移阈值。
[0092]例如,预设长度为4位,密钥信息为“9453”,认证服务器从同步码“45343564”中获取到的同步信息为“3564”,认证服务器中的时间因子为“1390445090”,第一偏移阈值为“ 100”时,认证服务器将密钥信息“9453”和同步信息“3564”进行异或,将得到的异或结果“5154”替换认证服务器中的时间因子“1390445090”的最低4位,将替换得到的数据“1390445154”作为动态令牌中的时间因子,并判断出动态令牌中的时间因子“1390445154”与认证服务器中的时间因子“1390445090”之间的时间差值“64”小于第一偏移阈值“100”。
[0093]步骤206,认证服务器根据时间差值更新自身保存的、与动态令牌对应的令牌偏移时间,并将当前系统时间保存为与该动态令牌对应的同步时间,结束流程。
[0094]例如,当前系统时间为“1390445090”(相当于自然时间2014年I月23日2时44分50秒),时间差值为“ 64 ”时,认证服务器将自身保存的、与动态令牌对应的令牌偏移时间更新为“64”,将“1390445090” (相当于自然时间2014年I月23日2时44分50秒)作为与动态令牌对应的同步时间进行保存。
[0095]步骤207,认证服务器判断当前系统时间与动态令牌对应的最近一次的同步时间之间的差值,是否大于第二预设时长,如果是,则返回步骤206 ;否则,返回步骤202。
[0096]例如,第二预设时长为“ 20000000 ”,当前系统时间为“ 1390445090 ”(相当于自然时间2014年I月23日2时44分50秒),认证服务器保存的、与动态令牌对应的最近一次的同步时间为“1380445090”(相当于自然时间2013年9月29日16时58分10秒)时,认证服务器计算出当前系统时间与动态令牌对应的最近一次的同步时间之间的差值为1390445090-1380445090=10000000,进而判断出计算得到的差值“10000000”小于第二预设时长 “20000000”。
[0097]需要说明的是,本发明实施例中的动态令牌为事件型动态令牌时,动态因子为事件因子,令牌偏移量为令牌偏移次数,认证服务器根据令牌偏移次数对动态令牌生成的动态口令进行认证,并在认证成功后,将与该动态口令匹配的事件因子的取值保存为与该动态令牌对应的认证成功次数。
[0098]相应地,上述实施例的步骤114中,认证服务器更新令牌偏移量的操作,具体为认证服务器更新令牌偏移次数的操作,如图3所示,包括以下步骤:
[0099]步骤301,认证服务器判断动态令牌中的事件因子是否大于与动态令牌对应的、最近一次的认证成功次数,如果是,则执行步骤304 ;否则,执行步骤302。
[0100]具体地,认证服务器可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的事件因子,判断动态令牌中的事件因子是否大于与动态令牌对应的、最近一次的认证成功次数;认证服务器也可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中与该动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的事件因子,判断动态令牌中的事件因子是否大于与动态令牌对应的、最近一次的认证成功次数;认证服务器也可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的事件因子,判断动态令牌中的事件因子是否大于与动态令牌对应的、最近一次的认证成功次数;认证服务器还可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中与该动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的事件因子,判断动态令牌中的事件因子是否大于与动态令牌对应的、最近一次的认证成功次数。
[0101]例如,动态令牌对应的、最近一次的认证成功次数为“440765”,认证服务器从同步码“45343564”中获取到应答码“4534”和同步信息“3564”,认证服务器中与该动态令牌对应的事件因子为“445090”时,认证服务器将预设的密钥信息“9453”和同步信息“3564”进行异或,将得到的异或结果“5154”替换认证服务器中与该动态令牌对应的事件因子“445090”的最低4位,将替换得到的数据“445154”作为动态令牌中的事件因子,判断出动态令牌中的事件因子大于与动态令牌对应的、最近一次的认证成功次数。
[0102]步骤302,认证服务器向主机发送同步失败消息。
[0103]步骤303,主机显示同步失败信息,结束流程。
[0104]步骤304,认证服务器获取当前系统时间与自身保存的、与动态令牌对应的最近一次的同步时间之间的差值,根据该差值和第二预设步长计算第二偏移阈值。
[0105]具体地,认证服务器可以获取当前系统时间与动态令牌对应的最近一次的同步时间之间的差值,将该差值与第二预设步长的乘积作为第二偏移阈值。
[0106]例如,当前系统时间为“1390445090”(相当于自然时间2014年I月23日2时44分50秒),第二预设步长为0.00001,认证服务器保存的、与动态令牌对应的最近一次的同步时间为“1380445090”(相当于自然时间2013年9月29日16时58分10秒)时,认证服务器可以获取当前系统时间与动态令牌对应的最近一次的同步时间之间的差值为1390445090-1380445090=10000000,第二偏移阈值为该差值与第二预设步长之间的乘积,即 10000000*0.00001=100。
[0107]步骤305,认证服务器判断动态令牌中的事件因子与认证服务器中与动态令牌对应的事件因子之间的次数差值是否大于第二偏移阈值,如果是,则执行步骤307;否则,执行步骤306。
[0108]具体地,认证服务器可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的事件因子,判断动态令牌中的事件因子与认证服务器中与该动态令牌对应的事件因子之间的次数差值是否大于第二偏移阈值;也可以将查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中与该动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的事件因子,判断动态令牌中的事件因子与认证服务器中与该动态令牌对应的事件因子之间的次数差值是否大于第二偏移阈值;也可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌中的事件因子,判断动态令牌中的事件因子与认证服务器中与该动态令牌对应的事件因子之间的次数差值是否大于第二偏移阈值;还可以将预设的密钥信息与从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器中与该动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌中的事件因子,判断动态令牌中的事件因子与认证服务器中与该动态令牌对应的事件因子之间的次数差值是否大于第二偏移阈值。
[0109]例如,密钥信息为“9453”,认证服务器从同步码“45343564”中获取到的同步信息为“3564”,认证服务器中与动态令牌对应的事件因子为“445090”,第二偏移阈值为“ 100”,则认证服务器将密钥信息“9453”和同步信息“3564”进行异或,将得到的异或结果“5154”替换认证服务器中与动态令牌对应的事件因子“445090”的最低4位,将替换得到的数据“445154”作为动态令牌中的事件因子,并判断出动态令牌中的事件因子“445154”与认证服务器中与该动态令牌对应的事件因子“445090”之间的次数差值“64”小于第二偏移阈值“100”。
[0110]步骤306,认证服务器根据次数差值更新自身保存的、与动态令牌对应的令牌偏移次数,并将当前系统时间保存为与该动态令牌对应的同步时间,结束流程。
[0111]例如,当前系统时间为“1390445090”(相当于自然时间2014年I月23日2时44分50秒),次数差值为“64”时,认证服务器将自身保存的、与动态令牌对应的令牌偏移次数更新为“64”,将“1390445090” (相当于自然时间2014年I月23日2时44分50秒)作为与动态令牌对应的同步时间进行保存。
[0112]步骤307,认证服务器判断当前系统时间与动态令牌对应的最近一次的同步时间之间的差值,是否大于第三预设时长,如果是,则返回步骤306 ;否则,返回步骤302。
[0113]例如,第三预设时长为“20000000”,当前系统时间为“ 1390445090”(相当于自然时间2014年I月23日2时44分50秒),认证服务器保存的、与动态令牌对应的最近一次的同步时间为“1380445090”(相当于自然时间2013年9月29日16时58分10秒)时,认证服务器计算出当前系统时间与动态令牌对应的最近一次的同步时间之间的差值为1390445090-1380445090=10000000,进而判断出计算得到的差值“10000000”小于第三预设时长 “20000000”。
[0114]本发明实施例中,认证服务器生成随机数,并将该随机数保存为与动态令牌对应的挑战码;动态令牌获取认证服务器生成的随机数,并根据该随机数生成一个同步码,认证服务器通过比较与动态令牌对应的挑战码的生成时间和同步码的获取时间,对动态令牌生成的同步码的有效性进行判断,并使用自身生成的挑战码,对同步码进行验证,在验证通过后对自身保存的令牌偏移量进行更新,从而提高了同步的成功率,防止由于使用错误的或者延迟的同步码而造成的恶意同步。
[0115]需要说明的是,在本发明的其他实施方式中,第一偏移阈值也可以为第一预设值,第二偏移阈值也可以为第二预设值,同样可以实现本发明的发明目的。
[0116]如图4所示,为本发明实施例中的一种动态令牌的同步系统的结构示意图,包括动态令牌400、主机600和认证服务器500 ;
[0117]其中,动态令牌400包括:
[0118]第一获取模块410,用于获取认证服务器500生成的随机数;
[0119]第一生成模块420,用于根据第一获取模块410获取到的随机数以及动态令牌400中的动态因子和种子密钥,生成应答码;
[0120]第二生成模块430,用于根据第一生成模块420生成的应答码和动态令牌400中的动态因子生成同步信息;
[0121 ] 组合模块440,用于将第二生成模块430生成的同步信息和第一生成模块420生成的应答码组合成同步码;
[0122]显示模块450,用于对组合模块440组合得到的同步码进行显示;
[0123]认证服务器500,包括:
[0124]接收模块510,用于接收来自主机600的同步请求;
[0125]第二获取模块520,用于从接收模块510接收到的同步请求中获取动态令牌400的序列号;
[0126]第三生成模块530,用于在接收模块510接收到同步请求之后,生成随机数,将该随机数保存为与第二获取模块520获取到的动态令牌400的序列号对应的挑战码;
[0127]第三获取模块540,用于获取动态令牌400生成的同步码和动态令牌400的序列号;
[0128]第四获取模块550,用于从第三获取模块540获取到的同步码中获取应答码和同步信息;
[0129]查询模块560,用于根据第三获取模块540获取到的动态令牌400的序列号查询与动态令牌400对应的种子密钥和挑战码;
[0130]验证模块570,用于使用查询模块560查询到的种子密钥和挑战码,以及第四获取模块550从同步码中获取的同步信息,对从同步码中获取的应答码进行验证;
[0131]更新模块580,用于在验证模块570对应答码验证通过时,根据第四获取模块550从同步码中获取的同步信息以及认证服务器500中的动态因子,更新认证服务器500中与动态令牌400对应的令牌偏移量;[0132]发送模块590,用于将第三生成模块530生成的随机数返回给主机600进行显示,并在验证模块570对应答码验证未通过时,向主机600发送同步失败消息。
[0133]进一步地,上述认证服务器500还包括:
[0134]记录模块710,用于在第三生成模块530生成随机数之后,记录该随机数的生成时间,将该随机数的生成时间保存为与动态令牌400的序列号对应的挑战码的生成时间;在第三获取模块540获取同步码之后,记录该同步码的获取时间;
[0135]查询模块560,还用于根据第三获取模块540获取到的动态令牌400的序列号查询对应的挑战码的生成时间;
[0136]相应地,上述认证服务器500,还包括:
[0137]判断模块720,用于判断记录模块710记录的同步码的获取时间是否在查询模块560查询到的挑战码的生成时间之后的第一预设时长内;
[0138]发送模块590,还用于在判断模块720判断出同步码的获取时间不在挑战码的生成时间之后的第一预设时长内时,向主机600发送同步失败消息;
[0139]第四获取模块550,具体用于在判断模块720判断出同步码的获取时间在挑战码的生成时间之后的第一预设时长内时,从第三获取模块540获取到的同步码中获取应答码和同步息。
[0140]进一步地,上述第二生成模块430,可以具体用于对第一生成模块420生成的应答码和动态令牌400中的动态因子进行异或,将得到的异或结果与预设的密钥信息进行异或,得到同步信息;
[0141]相应地,上述验证模块570,具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据查询模块560查询到的种子密钥和挑战码,按照与动态令牌400生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。
[0142]上述第二生成模块430,还可以具体用于根据预设数据和动态令牌400中的种子密钥生成密钥信息,对第一生成模块420生成的应答码和动态令牌400中的动态因子进行异或,将得到的异或结果与密钥信息进行异或,得到同步信息;
[0143]相应地,上述验证模块570,具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据查询模块560查询到的种子密钥和挑战码,按照与动态令牌400生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。
[0144]上述第二生成模块430,还可以具体用于从动态令牌400中的动态因子的最低位开始,选取预设长度的数据,将选取的数据与第一生成模块420生成的应答码进行异或,将得到的异或结果与预设的密钥信息进行异或,得到同步信息;
[0145]相应地,上述验证模块570,具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据查询模块560查询到的种子密钥和挑战码,按照与动态令牌400生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。
[0146]上述第二生成模块430,还可以具体用于根据预设数据和动态令牌400中的种子密钥生成密钥信息,从动态令牌400中的动态因子的最低位开始,选取预设长度的数据,将选取的数据与第一生成模块420生成的应答码进行异或,将得到的异或结果与上述密钥信息进行异或,得到同步信息;
[0147]相应地,上述验证模块570,具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据查询到的种子密钥和挑战码,按照与动态令牌400生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从同步码中获取的应答码相同,如果是,则确认获取的应答码验证通过;否则,确定获取的应答码验证未通过。
[0148]本发明实施例中,动态令牌400为时间型动态令牌时,动态因子为时间因子,认证服务器500中的令牌偏移量为令牌偏移时间;
[0149]相应地,更新模块580如图5所示,具体包括:
[0150]第一计算子模块581,用于获取当前系统时间与自身保存的、与动态令牌400对应的最近一次的同步时间之间的差值,根据该差值和第一预设步长计算第一偏移阈值;
[0151]第一判断子模块582,用于判断动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值是否大于第一计算子模块581计算出的第一偏移阈值;
[0152]第一发送子模块583,用于在第一判断子模块582判断出动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值大于第一偏移阈值时,向主机600发送同步失败消息;在第一判断子模块582判断出动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值不大于第一偏移阈值时,向主机600发送同步成功消息;
[0153]第一更新子模块584,用于在第一判断子模块582判断出动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值不大于第一偏移阈值时,根据该时间差值更新自身保存的、与动态令牌400对应的令牌偏移时间,并将当前系统时间保存为与动态令牌400对应的同步时间。
[0154]进一步地,上述更新模块580,还包括:
[0155]第二判断子模块585,用于在第一判断子模块582判断出动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值大于第一偏移阈值之后,判断当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值,是否大于第二预设时长;
[0156]相应地,上述第一发送子模块583,具体用于在第二判断子模块585判断出当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值不大于第二预设时长时,向主机600发送同步失败消息;
[0157]在第二判断子模块585判断出当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值大于第二预设时长时,以及,在第一判断子模块582判断出动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值不大于第一偏移阈值时,向主机600发送同步成功消息;[0158]上述第一更新子模块584,还用于在第二判断子模块585判断出当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值,大于第二预设时长时,根据动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值,更新自身保存的、与动态令牌400对应的令牌偏移时间,并将当前系统时间保存为与动态令牌400对应的同步时间。
[0159]进一步地,上述更新模块580,还包括:
[0160]第三判断子模块586,用于判断动态令牌400中的时间因子是否大于与动态令牌400对应的、最近一次的认证成功时间;
[0161]相应地,上述第一计算子模块581,具体用于在第三判断子模块586判断出动态令牌400中的时间因子大于与动态令牌400对应的、最近一次的认证成功时间时,获取当前系统时间与自身保存的、与动态令牌400对应的最近一次的同步时间之间的差值,根据该差值和第一预设步长计算第一偏移阈值;
[0162]上述第一发送子模块583,还用于在第三判断子模块586判断出动态令牌400中的时间因子不大于与动态令牌400对应的、最近一次的认证成功时间时,向主机600发送同步失败消息。
[0163]具体地,上述第一判断子模块582,可以具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的时间因子,判断动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值是否大于第一偏移阈值;
[0164]相应地,上述第三判断子模块586,具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的时间因子,判断动态令牌400中的时间因子是否大于与动态令牌400对应的、最近一次的认证成功时间。
[0165]上述第一判断子模块582,还可以具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的时间因子,判断动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值是否大于第一偏移阈值;
[0166]相应地,上述第三判断子模块586,具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的时间因子,判断动态令牌400中的时间因子是否大于与动态令牌400对应的、最近一次的认证成功时间。
[0167]上述第一判断子模块582,还可以具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的时间因子,判断动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值是否大于第一偏移阈值;
[0168]相应地,上述第三判断子模块586,具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的时间因子,判断动态令牌400中的时间因子是否大于与动态令牌400对应的、最近一次的认证成功时间。
[0169]上述第一判断子模块582,还可以具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的时间因子,判断动态令牌400中的时间因子与认证服务器500中的时间因子之间的时间差值是否大于第一偏移阈值;
[0170]相应地,上述第三判断子模块586,具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的时间因子,判断动态令牌400中的时间因子是否大于与动态令牌400对应的、最近一次的认证成功时间。
[0171]本发明实施例中,动态令牌400为事件型动态令牌时,动态因子为事件因子,认证服务器500中的令牌偏移量为令牌偏移次数;
[0172]相应地,更新模块580如图6所示,具体包括:
[0173]第二计算子模块621,用于获取当前系统时间与自身保存的、与动态令牌400对应的最近一次的同步时间之间的差值,根据该差值和第二预设步长计算第二偏移阈值;
[0174]第四判断子模块622,用于判断动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值是否大于第二计算子模块621计算出的第二偏移阈值;
[0175]第二发送子模块623,用于在第四判断子模块622判断出动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值大于第二计算子模块621计算出的第二偏移阈值时,向主机600发送同步失败消息;在第四判断子模块622判断出动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值不大于第二计算子模块621计算出的第二偏移阈值时,向主机600发送同步成功消息;
[0176]第二更新子模块624,用于在第四判断子模块622判断出动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值不大于第二计算子模块621计算出的第二偏移阈值时,根据该次数差值更新自身保存的、与动态令牌400对应的令牌偏移次数,并将当前系统时间保存为与动态令牌400对应的同步时间。
[0177]进一步地,上述更新模块580,还包括:
[0178]第五判断子模块625,用于在第四判断子模块622判断出动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值大于第二偏移阈值之后,判断当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值,是否大于第三预设时长;
[0179]相应地,上述第二发送子模块623,具体用于在第五判断子模块625判断出当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值不大于第三预设时长时,向主机600发送同步失败消息;
[0180]在第五判断子模块625判断出当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值大于第三预设时长时,以及,在第四判断子模块622判断出动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值不大于第二偏移阈值时,向主机600发送同步成功消息;
[0181]上述第二更新子模块624,还用于在第五判断子模块625判断出当前系统时间与动态令牌400对应的最近一次的同步时间之间的差值大于第三预设时长时,根据动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值,更新自身保存的、与动态令牌400对应的令牌偏移次数,并将当前系统时间保存为与动态令牌对应的同步时间。
[0182]进一步地,更新模块580,还包括:
[0183]第六判断子模块626,用于判断动态令牌400中的事件因子是否大于与动态令牌400对应的、最近一次的认证成功次数;
[0184]相应地,上述第二计算子模块621,具体用于在第六判断子模块626判断出动态令牌400中的事件因子大于与动态令牌400对应的、最近一次的认证成功次数时,获取当前系统时间与自身保存的、与动态令牌400对应的最近一次的同步时间之间的差值,根据该差值和第二预设步长计算第二偏移阈值;
[0185]上述第二发送子模块623,还用于在第六判断子模块626判断出动态令牌400中的事件因子不大于与动态令牌400对应的、最近一次的认证成功次数时,向主机600发送同步失败消息。
[0186]具体地,上述第四判断子模块622,可以具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的事件因子,判断动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值是否大于第二偏移阈值;
[0187]相应地,上述第六判断子模块626,具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的事件因子,判断动态令牌400中的事件因子是否大于与动态令牌400对应的、最近一次的认证成功次数。
[0188]上述第四判断子模块622,还可以具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中与动态令牌400对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的事件因子,判断动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值是否大于第二偏移阈值;
[0189]相应地,上述第六判断子模块626,具体用于将查询模块560查询到的种子密钥与预设数据进行异或,将得到的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中与动态令牌400对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的事件因子,判断动态令牌400中的事件因子是否大于与动态令牌400对应的、最近一次的认证成功次数。
[0190]上述第四判断子模块622,还可以具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的事件因子,判断动态令牌400中的事件因子与认证服务器500中与认证服务器500中与动态令牌400对应的事件因子之间的次数差值是否大于第二偏移阈值;
[0191]相应地,上述第六判断子模块626,具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果作为动态令牌400中的事件因子,判断动态令牌400中的事件因子是否大于与动态令牌400对应的、最近一次的认证成功次数。
[0192]上述第四判断子模块622,还可以具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中与动态令牌400对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的事件因子,判断动态令牌400中的事件因子与认证服务器500中与动态令牌400对应的事件因子之间的次数差值是否大于第二偏移阈值;
[0193]相应地,上述第六判断子模块626,具体用于将预设的密钥信息与第四获取模块550从同步码中获取的同步信息进行异或,将得到的异或结果替换认证服务器500中与动态令牌400对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为动态令牌400中的事件因子,判断动态令牌400中的事件因子是否大于与动态令牌400对应的、最近一次的认证成功次数。
[0194]本发明实施例中,认证服务器500生成随机数,并将该随机数保存为与动态令牌400对应的挑战码;动态令牌400获取认证服务器500生成的随机数,并根据该随机数生成一个同步码,认证服务器500通过比较与动态令牌400对应的挑战码的生成时间和同步码的获取时间,对动态令牌400生成的同步码的有效性进行判断,并使用自身生成的挑战码,对同步码进行验证,在验证通过后对自身保存的令牌偏移量进行更新,从而提高了同步的成功率,防止由于使用错误的或者延迟的同步码而造成的恶意同步。
[0195]结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0196]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种动态令牌的同步方法,其特征在于,包括以下步骤: 51、认证服务器接收来自主机的同步请求,从所述同步请求中获取动态令牌的序列号,并生成随机数,将所述随机数保存为与所述动态令牌的序列号对应的挑战码,将所述随机数返回给所述主机进行显示; 52、所述动态令牌获取所述随机数,根据所述随机数以及所述动态令牌中的动态因子和种子密钥,生成应答码,并根据所述应答码和所述动态因子生成同步信息; 53、所述动态令牌将所述同步信息和所述应答码组合成同步码,并对所述同步码进行显示; 54、所述认证服务器获取所述同步码和所述动态令牌的序列号; 55、所述认证服务器从所述同步码中获取所述应答码和所述同步信息,根据所述动态令牌的序列号查询与所述动态令牌对应的种子密钥和挑战`码; 56、所述认证服务器使用查询到的种子密钥和挑战码,以及从所述同步码中获取的所述同步信息,对从所述同步码中获取的应答码进行验证,如果验证通过,则执行步骤S8 ;否贝U,执行步骤S7 ; 57、所述认证服务器向所述主机发送同步失败消息; 58、所述认证服务器根据从所述同步码中获取的所述同步信息以及所述认证服务器中的动态因子,更新所述认证服务器中与所述动态令牌对应的令牌偏移量。
2.如权利要求1所述的方法,其特征在于,所述认证服务器生成随机数之后,还包括: 所述认证服务器记录所述随机数的生成时间; 所述步骤S4之后,还包括: 所述认证服务器记录所述同步码的获取时间,根据所述动态令牌的序列号查询对应的挑战码的生成时间,判断所述同步码的获取时间是否在所述挑战码的生成时间之后的第一预设时长内,如果是,则执行步骤S5 ;否则,向所述主机发送同步失败消息。
3.如权利要求1所述的方法,其特征在于,所述动态令牌根据所述应答码和所述动态因子生成同步信息,具体为: 所述动态令牌对所述应答码和所述动态因子进行异或,将得到的异或结果与预设的密钥信息进行异或,得到所述同步信息; 所述步骤S6,具体为: 所述认证服务器将所述预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据所述查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
4.如权利要求1所述的方法,其特征在于,所述动态令牌根据所述应答码和所述动态因子生成同步信息,具体为: 所述动态令牌根据预设数据和所述动态令牌中的种子密钥生成密钥信息,对所述应答码和所述动态因子进行异或,将得到的异或结果与所述密钥信息进行异或,得到所述同步信息; 所述步骤S6,具体为:所述认证服务器将所述查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据所述查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
5.如权利要求1所述的方法,其特征在于,所述动态令牌根据所述应答码和所述动态因子生成同步信息,具体为: 所述动态令牌从所述动态因子的最低位开始,选取预设长度的数据,将选取的数据与应答码进行异或,将得到的异或结果与预设的密钥信息进行异或,得到同步信息; 所述步骤S6,具体为: 所述认证服务器将所述预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据所述查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
6.如权利要求1所述的方法,其特征在于,所述动态令牌根据所述应答码和所述动态因子生成同步信息,具体为: 所述动态令牌根据预设数据和所述动态令牌中的种子密钥生成密钥信息,从所述动态因子的最低位开始,选取预 设长度的数据,将选取的数据与所述应答码进行异或,将得到的异或结果与所述密钥信息进行异或,得到所述同步信息; 所述步骤S6,具体为: 所述认证服务器将所述查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据所述查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
7.如权利要求1所述的方法,其特征在于,所述动态令牌为时间型动态令牌时,所述动态因子为时间因子,所述认证服务器中的令牌偏移量为令牌偏移时间; 所述步骤S8,具体为: Al、所述认证服务器获取当前系统时间与自身保存的、与所述动态令牌对应的最近一次的同步时间之间的差值,根据所述差值和第一预设步长计算第一偏移阈值; A2、所述认证服务器判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值,如果是,则执行步骤A3 ;否则,执行步骤A4 ; A3、所述认证服务器向所述主机发送同步失败消息; A4、所述认证服务器根据所述时间差值更新自身保存的、与所述动态令牌对应的令牌偏移时间,并将所述当前系统时间保存为与所述动态令牌对应的同步时间,向所述主机发送同步成功消息。
8.如权利要求7所述的方法,其特征在于,所述认证服务器判断出所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值大于所述第一偏移阈值之后,还包括: 所述认证服务器判断所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值,是否大于第二预设时长,如果是,则执行步骤A4 ;否则,执行步骤A3。
9.如权利要求7所述的方法,其特征在于,所述步骤Al之前,还包括: A0、所述认证服务器判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间,如果是,则执行步骤Al ;否则,执行步骤A3。
10.如权利要求9所述的方法,其特征在于,所述步骤A2,具体为: 所述认证服务器将所述查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值;如果是,则执行步骤A3 ;否则,执行步骤A4 ; 所述步骤AO,具体为: 所述认证服务 器将所述查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间,如果是,则执行步骤Al ;否则,执行步骤A3。
11.如权利要求9所述的方法,其特征在于,所述步骤A2,具体为: 所述认证服务器将所述查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值,如果是,则执行步骤A3 ;否则,执行步骤A4 ; 所述步骤AO,具体为: 所述认证服务器将所述查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间,如果是,则执行步骤Al ;否则,执行步骤A3。
12.如权利要求9所述的方法,其特征在于,所述步骤A2,具体为: 所述认证服务器将预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值,如果是,则执行步骤A3 ;否则,执行步骤A4 ; 所述步骤AO,具体为: 所述认证服务器将所述预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间,如果是,则执行步骤Al ;否则,执行步骤A3。
13.如权利要求9所述的方法,其特征在于,所述步骤A2,具体为: 所述认证服务器将预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值,如果是,则执行步骤A3 ;否则,执行步骤A4; 所述步骤AO,具体为: 所述认证服务器将所述预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间,如果是,则执行步骤Al ;否则,执行步骤A3。
14.如权利要求1所述的方法,其特征在于,所述动态令牌为事件型动态令牌时,所述动态因子为事件因子,所述认证服务器中的令牌偏移量为令牌偏移次数; 所述步骤S8,具体为: B1、所述认证服务器获取当前系统时间与自身保存的、与所述动态令牌对应的最近一次的同步时间之间的差值,根据所述差值和第二预设步长计算第二偏移阈值; B2、所述认证服务器判 断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值,如果是,则执行步骤B3 ;否则,执行步骤B4; B3、所述认证服务器向所述主机发送同步失败消息; B4、所述认证服务器根据所述次数差值更新自身保存的、与所述动态令牌对应的令牌偏移次数,并将所述当前系统时间保存为与所述动态令牌对应的同步时间,向所述主机发送同步成功消息。
15.如权利要求14所述的方法,其特征在于,所述认证服务器判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值大于所述第二偏移阈值之后,还包括: 所述认证服务器判断所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值,是否大于第三预设时长,如果是,则执行步骤B4 ;否则,执行步骤B3。
16.如权利要求14所述的方法,其特征在于,所述步骤BI之前,还包括: B0、所述认证服务器判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数,如果是,则执行步骤BI ;否则,执行步骤B3。
17.如权利要求16所述的方法,其特征在于,所述步骤B2,具体为: 所述认证服务器将所述查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于 所述第二偏移阈值,如果是,则执行步骤B3 ;否则,执行步骤B4 ;所述步骤BO,具体为: 所述认证服务器将所述查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数,如果是,则执行步骤BI ;否则,执行步骤B3。
18.如权利要求16所述的方法,其特征在于,所述步骤B2,具体为: 所述认证服务器将所述查询到的种子密钥与预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值,如果是,则执行步骤B3;否则,执行步骤B4; 所述步骤BO,具体为: 所述认证服务器将所述查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数,如果是,则执行步骤BI ;否则,执行步骤B3。
19.如权利要求16所述的方法,其特征在于,所述步骤B2,具体为: 所述认证服务器将预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值,如果是,则执行步骤B3 ;否则,执行步骤B4 ; 所述步骤BO,具体为: 所述认证服务器将所述预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数,如果是,则执行步骤BI ;否则,执行步骤B3。
20.如权利要求16所述的方法,其特征在于,所述步骤B2,具体为: 所述认证服务器将预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值,如果是,则执行步骤B3 ;否则,执行步骤B4 ; 所述步骤BO,具体为: 所述认证服务器将所述预设的密钥信息与从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数,如果是,则执行步骤BI ;否则,执行步骤B3。
21.一种动态令牌的同步系统,其特征在于,包括动态令牌、主机和认证服务器; 其中,所述动态令牌包括: 第一获取模块,用于获取所述认证服务器生成的随机数; 第一生成模块,用于根据所述第一获取模块获取到的所述随机数以及所述动态令牌中的动态因子和种子密钥,生成应答码; 第二生成模块,用于根据所述第一生成模块生成的所述应答码和所述动态因子生成同步信息; 组合模块,用于将所述第二生成模块生成的所述同步信息和所述第一生成模块生成的所述应答码组合成同步码; 显示模块,用于对所述组合模块组合得到的所述同步码进行显示; 所述认证服务器,包括: 接收模块,用于接收来自所述主机的同步请求; 第二获取模块,用于从所述接收模块接收到的所述同步请求中获取所述动态令牌的序列号; 第三生成模块,用于在所述接收模块接收到所述同步请求之后,生成随机数,将所述随机数保存为与所述第二获取模块获取到的所述动态令牌的序列号对应的所述挑战码;第三获取模块,用于获取所述动态令牌生成的所述同步码和所述动态令牌的序列号;第四获取模块,用于从所述第三获`取模块获取到的所述同步码中获取所述应答码和所述同步信息; 查询模块,用于根据所述第三获取模块获取到的所述动态令牌的序列号查询与所述动态令牌对应的种子密钥和挑战码; 验证模块,用于使用所述查询模块查询到的种子密钥和挑战码,以及所述第四获取模块从所述同步码中获取的所述同步信息,对从所述同步码中获取的应答码进行验证; 更新模块,用于在所述验证模块对所述应答码验证通过时,根据所述第四获取模块从所述同步码中获取的所述同步信息以及所述认证服务器中的动态因子,更新所述认证服务器中与所述动态令牌对应的令牌偏移量; 发送模块,用于将所述第三生成模块生成的所述随机数返回给所述主机进行显示,并在所述验证模块对所述应答码验证未通过时,向所述主机发送同步失败消息。
22.如权利要求21所述的系统,其特征在于,所述认证服务器还包括: 记录模块,用于在所述第三生成模块生成随机数之后,记录所述随机数的生成时间,将所述随机数的生成时间保存为与所述动态令牌的序列号对应的挑战码的生成时间;在所述第三获取模块获取所述同步码之后,记录所述同步码的获取时间; 所述查询模块,还用于根据所述第三获取模块获取到的所述动态令牌的序列号查询对应的挑战码的生成时间; 所述认证服务器,还包括: 判断模块,用于判断所述记录模块记录的所述同步码的获取时间是否在所述查询模块查询到的所述挑战码的生成时间之后的第一预设时长内; 所述发送模块,还用于在所述判断模块判断出所述同步码的获取时间不在所述挑战码的生成时间之后的第一预设时长内时,向所述主机发送同步失败消息; 所述第四获取模块,具体用于在所述判断模块判断出所述同步码的获取时间在所述挑战码的生成时间之后的第一预设时长内时,从所述第三获取模块获取到的所述同步码中获取所述应答码和所述同步信息。
23.如权利要求21所述的系统,其特征在于, 所述第二生成模块,具体用于对所述第一生成模块生成的所述应答码和所述动态因子进行异或,将得到的异或结果与预设的密钥信息进行异或,得到所述同步信息; 所述验证模块,具体用于将所述预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据所述查询模块查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
24.如权利要求21所述的系统,其特征在于, 所述第二生成模块,具体用于根据预设数据和所述动态令牌中的种子密钥生成密钥信息,对所述第一生成模块生成的所述应答码和所述动态因子进行异或,将得到的异或结果与所述密钥信息进行异或,得到所述同步信息; 所述验证模块,具体用于将所述查询模块查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为动态因子,根据所述查询模块查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
25.如权利要求21所述的系统,其特征在于, 所述第二生成模块,具体用于从所述动态因子的最低位开始,选取预设长度的数据,将选取的数据与所述第一生成模块生成的所述应答码进行异或,将得到的异或结果与预设的密钥信息进行异或,得到同步信息; 所述验证模块,具体用于将所述预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据所述查询模块查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
26.如权利要求21所述的系统,其特征在于, 所述第二生成模块,具体用于根据预设数据和所述动态令牌中的种子密钥生成密钥信息,从所述动态因子的最低位开始,选取预设长度的数据,将选取的数据与所述第一生成模块生成的所述应答码进行异或,将得到的异或结果与所述密钥信息进行异或,得到所述同步信息; 所述验证模块,具体用于将所述查询模块查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的动态因子中最低位的预设长度的数据,将替换后得到的数据作为动态因子,根据所述查询到的种子密钥和挑战码,按照与所述动态令牌生成应答码相同的方法,生成应答码,并判断生成的应答码是否与从所述同步码中获取的应答码相同,如果是,则确认所述获取的应答码验证通过;否则,确定所述获取的应答码验证未通过。
27.如权利要求21所述的系统,其特征在于,所述动态令牌为时间型动态令牌时,所述动态因子为时间因子,所述认证服务器中的令牌偏移量为令牌偏移时间; 所述更新模块,具体包括: 第一计算子模块,用于获取当前系统时间与自身保存的、与所述动态令牌对应的最近一次的同步时间之间的差值,根据所述差值和第一预设步长计算第一偏移阈值; 第一判断子模块,用于判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一计算子模块计算出的所述第一偏移阈值; 第一发送子模块,用于在所述第一判断子模块判断出所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值大于所述第一偏移阈值时,向所述主机发送同步失败消息;在所述第一判断子模块判断出所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值不大于所述第一偏移阈值时,向所述主机发送同步成功消息; 第一更新子模块,用于在所述第一判断子模块判断出所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值不大于所述第一偏移阈值时,根据所述时间差值更新自身保存的、与所述动 态令牌对应的令牌偏移时间,并将所述当前系统时间保存为与所述动态令牌对应的同步时间。
28.如权利要求27所述的系统,其特征在于,所述更新模块,还包括: 第二判断子模块,用于在所述第一判断子模块判断出所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值大于所述第一偏移阈值之后,判断所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值,是否大于第二预设时长; 所述第一发送子模块,具体用于在所述第二判断子模块判断出所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值不大于第二预设时长时,向所述主机发送同步失败消息; 在所述第二判断子模块判断出所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值大于第二预设时长时,以及,在所述第一判断子模块判断出所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值不大于所述第一偏移阈值时,向所述主机发送同步成功消息; 所述第一更新子模块,还用于在所述第二判断子模块判断出所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值大于第二预设时长时,根据所述时间差值更新自身保存的、与所述动态令牌对应的令牌偏移时间,并将所述当前系统时间保存为与所述动态令牌对应的同步时间。
29.如权利要求27所述的系统,其特征在于,所述更新模块,还包括: 第三判断子模块,用于判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间;所述第一计算子模块,具体用于在所述第三判断子模块判断出所述动态令牌中的时间因子大于与所述动态令牌对应的、最近一次的认证成功时间时,获取当前系统时间与自身保存的、与所述动态令牌对应的最近一次的同步时间之间的差值,根据所述差值和第一预设步长计算第一偏移阈值; 所述第一发送子模块,还用于在所述第三判断子模块判断出所述动态令牌中的时间因子不大于与所述动态令牌对应的、最近一次的认证成功时间时,向所述主机发送同步失败消息。
30.如权利要求29所述的系统,其特征在于, 所述第一判断子模块,具体用于将所述查询模块查询到的种子密钥与预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值; 所述第三判断子模块,具体用于将所述查询模块查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间。
31.如权利要求29所述的系统,其特征在于, 所述第一判断子模块,具体用于将所述查询模块查询到的种子密钥与预设数据进行异或,将得到的密钥信息 与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值; 所述第三判断子模块,具体用于将所述查询模块查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间。
32.如权利要求29所述的系统,其特征在于, 所述第一判断子模块,具体用于将预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值; 所述第三判断子模块,具体用于将所述预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间。
33.如权利要求29所述的系统,其特征在于, 所述第一判断子模块,具体用于将预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子与所述认证服务器中的时间因子之间的时间差值是否大于所述第一偏移阈值; 所述第三判断子模块,具体用于将所述预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中的时间因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的时间因子,判断所述动态令牌中的时间因子是否大于与所述动态令牌对应的、最近一次的认证成功时间。
34.如权利要求21所述的系统,其特征在于,所述动态令牌为事件型动态令牌时,所述动态因子为事件因子,所述认证服务器中的令牌偏移量为令牌偏移次数; 所述更新模块,具体包括: 第二计算子模块,用于获取当前系统时间与自身保存的、与所述动态令牌对应的最近一次的同步时间之间的差值,根据所述差值和第二预设步长计算第二偏移阈值; 第四判断子模块,用于判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二计算子模块计算出的所述第二偏移阈值; 第二发送子模块,用于在所述第四判断子模块判断出所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值大于所述第二计算子模块计算出的所述第二偏移阈值时,向所述主机发送同步失败消息;在所述第四判断子模块判断出所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值不大于所述第二计算子模块计算出的所述第二偏移阈值时,向所述主机发送同步成功消息; 第二更新子模块,用于在所 述第四判断子模块判断出所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值不大于所述第二计算子模块计算出的所述第二偏移阈值时,根据所述次数差值更新自身保存的、与所述动态令牌对应的令牌偏移次数,并将所述当前系统时间保存为与所述动态令牌对应的同步时间。
35.如权利要求34所述的系统,其特征在于,所述更新模块,还包括: 第五判断子模块,用于在所述第四判断子模块判断出所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值大于所述第二偏移阈值之后,判断所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值,是否大于第三预设时长; 所述第二发送子模块,具体用于在所述第五判断子模块判断出所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值不大于第三预设时长时,向所述主机发送同步失败消息; 在所述第五判断子模块判断出所述当前系统时间与所述动态令牌对应的最近一次的同步时间之间的差值大于第三预设时长时,以及,在所述第四判断子模块判断出所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值不大于所述第二偏移阈值时,向所述主机发送同步成功消息; 所述第二更新子模块,还用于在所述第五判断子模块判断出所述当前系统时间与所述动态令牌对应的最近一次的同步时间 之间的差值大于第三预设时长时,根据所述次数差值更新自身保存的、与所述动态令牌对应的令牌偏移次数,并将所述当前系统时间保存为与所述动态令牌对应的同步时间。
36.如权利要求34所述的系统,其特征在于,所述更新模块,还包括: 第六判断子模块,用于判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数; 所述第二计算子模块,具体用于在所述第六判断子模块判断出所述动态令牌中的事件因子大于与所述动态令牌对应的、最近一次的认证成功次数时,获取当前系统时间与自身保存的、与所述动态令牌对应的最近一次的同步时间之间的差值,根据所述差值和第二预设步长计算第二偏移阈值; 所述第二发送子模块,还用于在所述第六判断子模块判断出所述动态令牌中的事件因子不大于与所述动态令牌对应的、最近一次的认证成功次数时,向所述主机发送同步失败消息。
37.如权利要求36所述的系统,其特征在于, 所述第四判断子模块,具体用于将所述查询模块查询到的种子密钥与预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值; 所述第六判断子模块,具体用于将所述查询模块查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数。`
38.如权利要求36所述的系统,其特征在于, 所述第四判断子模块,具体用于将所述查询模块查询到的种子密钥与预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值; 所述第六判断子模块,具体用于将所述查询模块查询到的种子密钥与所述预设数据进行异或,将得到的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数。
39.如权利要求36所述的系统,其特征在于, 所述第四判断子模块,具体用于将预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值;所述第六判断子模块,具体用于将所述预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功次数。
40.如权利要求36所述的系统,其特征在于, 所述第四判断子模块,具体用于将预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子与所述认证服务器中与所述动态令牌对应的事件因子之间的次数差值是否大于所述第二偏移阈值; 所述第六判断子模块,具体用于将所述预设的密钥信息与所述第四获取模块从所述同步码中获取的同步信息进行异或,将得到的异或结果替换所述认证服务器中与所述动态令牌对应的事件因子中最低位的预设长度的数据,将替换后得到的数据作为所述动态令牌中的事件因子,判断所述动态令牌中的事件因子是否大于与所述动态令牌对应的、最近一次的认证成功 次数。
【文档编号】H04L29/06GK103888470SQ201410131504
【公开日】2014年6月25日 申请日期:2014年4月2日 优先权日:2014年4月2日
【发明者】陆舟, 于华章 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1