一种动态口令的生成及认证方法与系统技术方案

技术编号:8132423 阅读:155 留言:0更新日期:2012-12-27 05:22
本发明专利技术公布了一种动态口令生成及认证的方法及系统,涉及身份认证领域,包括:令牌接收到生成动态口令命令,根据第一计时器生成第一动态因子;根据第一偏移指针从第一数据组中获取当前数据,并根据第一动态因子、当前数据生成第一动态口令;服务器接收到用户输入的第二动态口令,根据第二计时器得到第二动态因子;根据第二动态因子及认证窗口值,得到认证窗口;根据所述认证窗口中的动态因子及第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令。通过上述方案,解决了时间型令牌不能在短时间内多次生成的问题,又避免了事件型令牌不断生成动态口令与服务器产生失步的情况。

【技术实现步骤摘要】

本专利技术涉及身份认证领域,特别涉及一种动态口令的生成及认证方法与系统
技术介绍
动态口令在身份认证领域的应用日益广泛,现有技术中,动态口令分为时间型动态口令、事件型动态口令及挑战应答型动态口令。普通时间型动态口令或者带时间参与计算的挑战应答型动态口令,在一个动态口令变化周期仅能产生一个动态口令,出于安全性考虑,如果口令被认证服务器认证通过后,就不能重复使用了。如果想进行认证,必须等待一段时间,等到达下一个时间周期开始,生成下一个不同的动态口令才能进行,不能满足在短时间内进行多次身份认证的场合的需要;普通事件型的动态口令,存在动态令牌不断产生动态口令而不与服务器做认证 时,令牌与服务器失步的情况,且普通事件型的动态口令引入的次数为可预测动态因子,存在一定的安全隐患。
技术实现思路
为解决现有技术中存在的问题,本专利技术提供了一种动态口令的生成及认证方法及系统,引入一组数据,参与时间型动态口令的产生,且在一个时间周期内该组数据中的各个数据可以循环参与动态口令的生成。根据本专利技术的一方面,提供了一种动态口令生成及认证的方法,包括SI :令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生成第一动态因子;所述令牌检查到预设条件时,对所述第一偏移指针进行初始化;S2 :所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继续;S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据是否为所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,否则将所述第一偏移指针指向当前数据的下一个数据;S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间得到第二动态因子;S5 :根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口 ;S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则认证失败。具体地,所述第一数据组与所述第二数据组一致,包含预设个数的有顺序且各不相同的数据;所述当前数据为所述第一偏移指针指向的数据。进一步地,所述步骤SI中根据所述令牌内部的第一计时器所计时间生成第一动态因子具体为用所述第一计时器所计秒数除以第一预设时长值,对得到的商取整得到所述第一动态因子;所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态因子具体为用所述第二计时器所计秒数除以所述第一预设时长值,对得到的商取整得到所述第二动态因子。其中,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为所述令牌实时监测所述第一计时器所计时间,每隔所述第一预设时长,对所述第一偏移指针进行初始化; 所述对所述第一偏移指针进行初始化具体为将所述第一偏移指针指向所述第一数据组中的第一个数据。或者,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为所述令牌生成第一动态因子之后,判断所述第一动态因子与第一缓存区中的数据是否一致,若不一致则对所述第一偏移指针进行初始化;所述令牌对所述第一偏移指针进行初始化之后,用所述第一动态因子更新所述第一缓存区中的数据;所述对所述第一偏移指针进行初始化具体为将所述第一偏移指针指向所述第一数据组中的第一个数据。进一步地,所述步骤S6中计算生成一组动态口令具体为调用所述预设算法,对所述认证窗口中的每个动态因子与第二数据中的各个数据的组合得到的数据分别进行计算,得到所述一组动态口令。或者,所述步骤S6具体包括步骤a:按预设顺序调用所述认证窗口中的第一个动态因子;步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,调用预设算法对组合得到的各个数据进行计算得到所述一组动态口令;步骤c:验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则执行步骤d ;步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后一个动态因子,是则认证失败,否则调用下一个动态因子,返回步骤b。进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括S7:所述服务器调用第二缓存区中的数据,将与所述第二动态口令一致的动态口令对应的动态因子与所述第二缓存区中的数据进行比较,若大于,则认证通过,执行步骤S8 ;若小于,则认证失败;若等于则执行S9 ;S8 :用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据;S9 :判断与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。优选地,所述步骤SI之后还包括令牌提示用户输交易账号、交易金额、挑战码的步骤;所述步骤S4之前还包括服务器生成挑战码的步骤;所述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一动态口令具体为将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账号、金额、挑战码进行组合,并用所述预设算法对组合得到的数据进行计算得到所述第一动态口令;所述步骤S6中调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令具体为 依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令牌密钥、月艮务器接收到的用户输入的账号、金额、服务器生成的挑战码分别进行组合,并用所述预设算法对组合得到的各数据分别进行计算得到所述一组动态口令。或者,所述步骤S6中生成一组动态口令具体包括将第二缓存区中的数据与所述认证窗口中的动态因子进行比对,从所述认证窗口中获取等于或大于所述第二缓存区中的数据的动态因子;依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组中的各个数据分别进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令; 所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。根据本专利技术的另外一个方面,提供了一种动态口令生成及认证的系统,包括令牌和服务器;所述令牌包括第一接收模块,用于接收生成动态口令命令;第一生成模块,用于当所述第一接收模块接收到生成动态口令命令时,根据令牌内部的第一计时器所计时间生成第一动态因子;操作模块,用于每隔第一预设时长,对所述第一偏移指针初始化一次;或者当判断所述第一动态因子与第一缓存区中的数据不一致时,对所述第一偏移指针进本文档来自技高网...

【技术保护点】
一种动态口令的生成及认证方法,其特征在于,?包括:S1:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生成第一动态因子;所述令牌检查到预设条件时,对所述第一偏移指针进行初始化;S2:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继续;S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据是否为所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,否则将所述第一偏移指针指向当前数据的下一个数据;S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间得到第二动态因子;S5:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则认证失败。

【技术特征摘要】
1.一种动态口令的生成及认证方法,其特征在于,包括 Si:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生成第一动态因子; 所述令牌检查到预设条件时,对所述第一偏移指针进行初始化; 52:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继续; 53:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据是否为所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,否则将所述第一偏移指针指向当前数据的下一个数据; S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间得到第二动态因子; 55:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口 ; 56:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则认证失败。2.如权利要求I所述的方法,其特征在于,所述第一数据组与所述第二数据组一致,包含预设个数的有顺序且各不相同的数据; 所述当前数据为所述第一偏移指针指向的数据。3.如权利要求2所述的方法,其特征在于,所述步骤SI中根据所述令牌内部的第一计时器所计时间生成第一动态因子具体为用所述第一计时器所计秒数除以第一预设时长值,对得到的商取整得到所述第一动态因子; 所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态因子具体为用所述第二计时器所计秒数除以所述第一预设时长值,对得到的商取整得到所述第二动态因子。4.如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为所述令牌实时监测所述第一计时器所计时间,每隔所述第一预设时长,对所述第一偏移指针进行初始化; 所述对所述第一偏移指针进行初始化具体为将所述第一偏移指针指向所述第一数据组中的第一个数据。5.如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为所述令牌生成第一动态因子之后,判断所述第一动态因子与第一缓存区中的数据是否一致,若不一致则对所述第一偏移指针进行初始化; 所述令牌对所述第一偏移指针进行初始化之后,用所述第一动态因子更新所述第一缓存区中的数据; 所述对所述第一偏移指针进行初始化具体为将所述第一偏移指针指向所述第一数据组中的第一个数据。6.如权利要求2所述的方法,其特征在于,所述步骤S6中计算生成一组动态口令具体为调用所述预设算法,对所述认证窗口中的每个动态因子与第二数据中的各个数据的组合得到的数据分别进行计算,得到所述一组动态口令。7.如权利要求2所述的方法,其特征在于,所述步骤S6具体包括 步骤a:按预设顺序调用所述认证窗口中的第一个动态因子; 步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,调用预设算法对组合得到的各个数据进行计算得到所述ー组动态ロ令; 步骤c:验证所述ー组动态ロ令中是否存在与所述第二动态ロ令一致的动态ロ令,是则认证通过,否则执行步骤d ; 步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后ー个动态因子,是则认证失败,否则调用下一个动态因子,返回步骤b。8.如权利要求6或7所述的方法,其特征在于,所述步骤S6中,当验证所述ー组动态ロ令中存在与所述第二动态ロ令一致的动态ロ令时,还包括 57:所述服务器调用第二缓存区中的数据,将与所述第二动态ロ令一致的动态ロ令对应的动态因子与所述第二缓存区中的数据进行比较,若大于,则认证通过,执行步骤S8 ;若小于,则认证失败;若等于则执行S9 ; 58:用与所述第二动态ロ令一致的动态ロ令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向第二数据组中与所述第二动态ロ令一致的动态ロ令对应的数据; 59:判断与所述第二动态ロ令一致的动态ロ令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态ロ令一致的动态ロ令对应的数据,否则认证失败。9.如权利要求I所述的方法,其特征在于,所述步骤SI之后还包括令牌提示用户输交易账号、交易金額、挑战码的步骤; 所述步骤S4之前还包括服务器生成挑战码的步骤; 所述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一动态ロ令具体为 将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账号、金額、挑战码进行组合,并用所述预设算法对组合得到的数据进行计算得到所述第一动态ロ令; 所述步骤S6中调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态ロ令具体为 依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令牌密钥、服务器接收到的用户输入的账号、金額、服务器生成的挑战码分别进行组合,并用所述预设算法对组合得到的各数据分别进行计算得到所述ー组动态ロ令。10.如权利要求I所述的方法,其特征在于,所述步骤S6中生成一组动态ロ令具体包括 将第二缓存区中的数据与所述认证窗ロ中的动态因子进行比对,从所述认证窗ロ中获取等于或大于所述第二缓存区中的数据的动态因子; 依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组中的各个数据分别进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态ロ令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分别进行计算...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1