1.一种双向认证方法,其特征在于,包括步骤:
S100所述客户端获取用户信息,根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,并将所述第一动态认证口令组及用户信息发送给服务端;
S200所述服务端接收所述用户信息及第一动态认证口令组后,根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
S300所述服务端验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则所述客户端认证通过,进入后续步骤;
S400所述服务端根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
S500所述客户端接收所述第二动态认证口令组后,根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
S600所述客户端验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则所述服务端认证通过。
2.根据权利要求1所述的一种双向认证方法,其特征在于,所述步骤S100包括步骤:
S110所述客户端根据自身生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
所述步骤S200包括步骤:
S210所述服务端接收所述用户信息、所述挑战码及所述第一动态认证口令组后,根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组。
3.根据权利要求2所述的一种双向认证方法,其特征在于,
所述步骤S400包括步骤:
S410所述服务端根据所述挑战码、当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并将所述第二动态认证口令组发送给所述客户端;
所述步骤S500包括步骤:
S510所述客户端接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组。
4.根据权利要求1-3任一项所述的一种双向认证方法,其特征在于,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。
5.根据权利要求1-3任一项所述的一种双向认证方法,其特征在于,在完成双向认证之前,还包括:
S010所述客户端获取所述用户信息,同时将所述用户信息发送至所述服务端;
S020所述服务端获取所述用户信息,并根据所述用户信息生成与所述用户信息唯一关联的密钥参数,同时将所述密钥参数进行存储;
S030所述服务端结合所述密钥参数和所述算法重构机制将所述服务端内部存储的第一算法进行重构生成第二算法;
S040所述服务端将所述第二算法发送至所述客户端进行存储。
6.根据权利要求5所述的一种双向认证方法,其特征在于,所述步骤S030至少包括以下一步步骤:
根据所述密钥参数,确定所述第二算法的运算顺序;
根据所述密钥参数,确定所述第二算法的分组数据块的结构,以及所述分组数据块的运算顺序;
根据所述密钥参数,确定所述第二算法中的固定参数。
7.一种双向认证系统,包括客户端和服务端,其特征在于,所述客户端包括获取模块、第一口令生成模块、第一信息收发模块、验证模块;所述第一口令生成模块相连分别与所述获取模块、第一信息收发模块、验证模块相连,且所述验证模块与所述第一信息收发模块相连;所述服务端包括:第二信息收发模块、第二口令生成模块、认证模块,所述第二口令生成模块分别与所述第二信息收发模块、认证模块相连,且所述认证模块与所述第二信息收发模块相连,其中:
所述服务端认证所述客户端包括:
所述客户端的获取模块获取用户信息,所述第一口令生成模块根据当前时间、及预设的至少一个时间变化值,采用所述用户信息的算法,生成第一动态认证口令组,所述第一信息收发模块将所述第一动态认证口令组及用户信息发送给服务端的所述第二信息收发模块;
所述服务端的第二信息收发模块接收所述用户信息及第一动态认证口令组后,所述第二口令生成模块根据所述用户信息查找到相应的算法,再根据当前时间,及预设的至少一个时间变化值,采用所述查找到的相应算法,获取第一动态验证口令组;
所述服务端的认证模块验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端认证通过,进而所述客户端对所述服务端进行认证;
所述客户端认证所述服务端包括:
所述服务端的第二口令生成模块根据当前时间,及预设的至少一个时间变化值,采用根据所述用户信息查找到相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块将所述第二动态认证口令组发送给所述客户端的第一信息收发模块;
所述客户端的第一信息收发模块接收所述第二动态认证口令组后,所述第一口令生成模块根据当前时间,及预设的至少一个时间变化值,采用所述用户信息的算法,获取第二动态验证口令组;
所述客户端的验证模块验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端认证通过。
8.根据权利要求7所述的一种双向认证系统,其特征在于,所述客户端还包括与所述第一信息收发模块、第一口令生成模块相连的随机数生成模块;其中:
所述服务端验证所述客户端包括:
所述客户端的第一口令生成模块根据所述随机数生成模块生成的挑战码、当前时间、及预设的至少一个时间变化值,采用运算算法,生成第一动态认证口令组,并通过所述第一信息收发模块将所述挑战码、所述第一动态认证口令组及用户信息发送给服务端;
所述服务端的第二信息收发模块接收所述用户信息、所述挑战码及所述第一动态认证口令组后,所述第二口令生成模块根据所述用户信息查找到相应的算法,按照所述挑战码、当前时间,及预设的至少一个时间变化值,采用所述相应的算法,获取第一动态验证口令组;
所述服务端的认证模块验证所述第一动态认证口令组中的口令是否与所述第一动态验证口令组中的口令一致,若是,则判断所述客户端认证通过,进而所述客户端对所述服务端进行认证。
9.根据权利要求8所述的一种双向认证系统,其特征在于,所述客户端认证所述服务端包括:
所述服务端的认证模块根据所述第二信息收发模块接收的所述挑战码、并根据当前时间、及预设的至少一个时间变化值,采用所述相应的算法,生成第二动态认证口令组,并通过所述第二信息收发模块将所述第二动态认证口令组发送给所述客户端的第一信息收发模块;
所述客户端的第一信息收发模块接收所述第二动态认证口令后,根据所述挑战码、当前时间,及预设的至少一个时间变化值,采用相同的算法,获取第二动态验证口令组;
所述客户端的验证模块验证所述第二动态认证口令组中的口令是否与所述第二动态验证口令组中的口令一致,若是,则判断所述服务端认证通过。
10.根据权利要求1-9任一项所述的一种双向认证系统,其特征在于,所述时间变化值指在当前时间上延迟/或推前至少1个口令变化周期。