专利名称:一种数据签名认证方法及系统的制作方法
技术领域:
本发明涉及信息安全领域,尤其涉及一种数据签名认证方法及系统。
背景技术:
随着互联网的快速发展,网上交易也变得越来越普遍,但由于网络的不安全性,人们往往使用智能密钥装置(即USB Key)来保证网上交易的安全性。现有交易过程,对于用户而言,整个交易过程中所需要进行的确认或发送信息的操作都是在客户端上实现的,而无论是因特网还是移动通信网络,都属于开放式的系统,因此都有可能遭受黑客,假网站等第三方的恶意攻击,也存在感染木马等病毒的风险,从而导致交易信息和个人信息的丢失或篡改,特别是若在进行交易的过程中,客户端收到第三方程序的远程控制时,还有可能出现客户端在第三方的远程控制下自动完成交易的情况。现有技术中,签名认证过程一般为客户端或USB Key将交易信息进行签名发送给后台服务器进行认证,由于网络的不安全性,USB Key会将遭木马攻击或被木马篡改的交易信息进行数字签名后的结果发送给服务器进行验证,即使服务器验证失败,计算机底层木马也有可能给客户端返回一个验证成功的结果,迷惑用户进行交易;甚至有的攻击者会发送一个服务器已接收过的包,来达到欺骗系统的目的,会给用户造成巨大损失。
发明内容
鉴于现有技术的不足,为了提高网上交易的安全性,本发明提供了一种数据签名认证方法及系统。本发明提供一种数据签名认证方法,包括步骤A :USB Key接收待签名数据报文并对其解析得到待签名数据;步骤B 所述USB Key判断在预设的时间内是否接收到确认执行信息,是则获取第一动态口令,并将其与所述待签名数据进行处理得到签名数据,否则结束;步骤C 所述USB Key将所述待签名数据和所述签名数据通过客户端发送给后台服务器;步骤D 所述后台服务器生成验证窗口,所述验证窗口中至少有两个第二动态口令,根据所述待签名数据和所述第二动态口令对所述签名数据进行验证。在步骤A之前还包括所述客户端与所述后台服务器建立连接,发起数据传输请求并显示提示信息,提示用户输入相关信息;所述客户端接收所述相关信息,将其组成签名文件包并发送给后台服务器;所述后台服务器将所述签名文件包转化为待签名数据报文并通过所述客户端发送给所述USB Key0在步骤A之前还包括所述客户端接收第一触发信息,显示提示信息,提示用户输入相关信息;所述客户端接收所述相关信息,将其组成待签名数据报文并发送给与其连接的所述USB Key。所述步骤A还包括根据预先约定的规则从待签名数据中获取关键信息,显示所述关键信息并等待接收确认执行信息,所述关键信息为全部待签名数据或部分待签名数据。
所述步骤B具体为所述USB Key判断在预设的时间内是否接收到用户触发信息, 如在预设时间内收到用户触发信息,则判断所述用户触发信息是否为确认执行信息,是则获取所述第一动态口令并将其与所述待签名数据进行处理得到签名数据,否则输出取消提示信息,结束;如在预设时间内未收到用户操作信息,则输出超时提示信息,结束。所述获取第一动态口令具体为所述USB Key根据其内部中存储的第一动态因子和第一静态因子计算生成第一动态口令,获取所述生成的第一动态口令;或所述USB Key 根据其内部存储的第一动态因子、第一静态因子和挑战值计算生成第一动态口令,获取所述生成的第一动态口令;所述第一动态因子为时间因子或次数值。所述步骤D中所述后台服务器生成验证窗口,具体为后台服务器根据其内部存储的第二动态因子和第二静态因子计算生成第二动态口令,按照第一预设规定存储所述第二动态口令生成一动态口令列表即验证窗口 ;或后台服务器根据其内部存储的第二动态因子、第二静态因子和挑战值计算生成第二动态口令,按照第二预设规定存储所述第二动态口令生成一动态口令列表即验证窗口 ;所述第二动态因子为时间因子或次数值。所述生成第一动态口令步骤中还包括所述USB Key根据预设规则对所述第一动态因子进行更新;所述生成第二动态口令步骤中还包括所述后台服务器根据预设规则对所述第二动态因子进行更新。所述挑战值是后台服务器生成的。所述将第一动态口令与所述待签名数据进行处理得到签名数据,具体为按照第一约定组合方式将所述第一动态口令与所述待签名数据组成第一组合数据;对所述第一组合数据进行摘要算法得到第一摘要值,按照第一约定填充方式填充所述第一摘要值生成第一填充值,对所述第一填充值进行加密算法得到第一签名数据。所述根据所述待签名数据和所述第二动态口令对所述签名数据进行验证,具体为使用存储的密钥对所述第一签名数据进行解密,如解密成功,则按照第一约定提取方式从解密得到的第一解密数据中提取第一待校验值;按照所述第一约定组合方式分别将所述验证窗口中的第二动态口令与所述待签名数据进行组合,将组合后的数据进行摘要算法得到第一校验摘要值;将所述第一校验摘要值与所述第一待校验值进行匹配,如匹配成功则验证通过,否则结束。所述将第一动态口令与所述待签名数据进行处理得到签名数据,具体为对所述待签名数据进行摘要算法得到第二摘要值,按照第二约定填充方式填充所述第二摘要值生成第二填充值,按照第二约定组合方式将所述第二填充值与所述第一动态口令组成第二组合数据;对所述第二组合数据进行加密算法得到第二签名数据。所述根据所述待签名数据和所述第二动态口令对所述签名数据进行验证,具体为使用存储的密钥对所述第二签名数据进行解密,如解密成功,则按照第一约定拆分方式拆分解密得到的第二解密数据得到第一拆分动态口令和第一拆分数据,将所述验证窗口中的第二动态口令与所述第一拆分动态口令进行匹配,如匹配成功则按照第二约定提取方式从所述第一拆分数据中提取第二待校验值,对所述待签名数据进行摘要算法得到第二校验摘要值,将所述第二待校验值与第二校验摘要值进行对比,如一致则验证通过;否则结束; 如匹配失败则结束;如解密失败则结束。所述将第一动态口令与所述待签名数据进行处理得到签名数据,具体为对所述待签名数据进行摘要算法得到第三摘要值,按照第三约定填充方式填充所述第三摘要值生成第三填充值,对所述第三填充值进行加密算法,按照第三约定组合方式将加密结果与所述第一动态口令组成第三签名数据。所述根据所述待签名数据和所述第二动态口令对所述签名数据进行验证,具体为按照第二约定拆分方式拆分所述第三签名数据得到第二拆分动态口令和第二拆分数据;将所述验证窗口中的第二动态口令与所述第二拆分动态口令进行匹配,如匹配成功则使用存储的密钥对所述第二拆分数据进行解密,如解密成功则按照第三约定提取方式从解密得到的第三解密数据中提取第三待校验值,对所述待签名数据进行摘要算法得到第三校验摘要值,将所述第三待校验值与所述第三校验摘要值进行对比;如一致则验证通过,否则结束;如解密失败则结束;如匹配失败则结束。在所述步骤D的验证过程中还包括后台服务器对用于生成第二动态口令的动态因子进行校准。所述第一动态因子和第二动态因子均为时间因子,所述对用于生成第二动态口令的动态因子进行校准具体为记录后台服务器中的时钟源与所述USBKey中的时钟源的时间差,所述第二动态因子为所述后台服务器中的时钟源时间与所述时间差的计算结果所对应时间因子。所述第一动态因子和第二动态因子均为次数值,所述对用于生成第二动态口令的动态因子进行校准具体为后台服务器将其当前存储的次数值按照第二预设规则进行更新,使更新后的次数值与USB Key存储的次数值保持同步。本发明又提供一种数据签名认证系统,包括USB Key、客户端和后台服务器;所述USB Key包括第一接口模块,与客户端连接,用作数据通讯接口,用于接收和发送数据;解析模块,用于对接收到的待签名数据报文进行解析得到待签名数据,并将其发送给签名模块;判断模块,用于判断在预定时间内是否接收到确认执行信息;第一存储模块,用于存储密钥、数字证书、第一静态因子、第一动态因子和生成的第一动态口令;第一动态口令生成模块,用于根据所述第一动态因子和第一静态因子计算生成第一动态口令; 获取模块,用于从所述第一动态口令生成模块中或所述第一储存模块中获取第一动态口令;按键模块,用于输入用户确认执行信息或取消触发信息;签名模块,用于对所述待签名数据和所述获取的第一动态口令进行处理得到签名数据;第一发送模块,用于将所述签名数据和待签名数据通过所述客户端发送给所述后台服务器;所述后台服务器包括第二接收模块,用于接收所述第一发送模块发送的所述签名数据和所述待签名数据;第二存储模块,用于存储密钥、第二动态因子和第二静态因子; 第二动态口令生成模块,用于根据所述第二动态因子和第二静态因子计算生成第二动态口令;验证窗口生成模块,用于按照预设规定存储所述第二动态口令生成一动态口令列表即验证窗口,所述验证窗口中至少有所述两个第二动态口令;验证模块,用于根据所述验证窗口生成模块中的第二动态口令和所述接收到的待签名数据对所述接收到的签名数据进行验证;所述客户端包括与所述第一接口模块连接的第二接口模块,用作数据通讯接口, 用于接收和发送数据。所述客户端还包括第一接收模块、第一显示模块、第一组成模块;所述第一接收模块用于接收用户输入的相关信息;所述第一显示模块用于显示所述输入的相关信息;所述第一组成模块用于将输入的相关信息组成签名文件包,并发送给所述后台服务器;所述后台服务器还包括第一转化模块和第二发送模块;所述第二接收模块还用于接收所述第一组成模块发送的签名文件包;所述第一转化模块用于将所述第二接收模块接收的签名文件包转化成待签名数据报文;所述第二发送模块用于将所述待签名数据报文通过所述客户端发送给所述第一接口模块。所述客户端还包括第三接收模块、第二显示模块、第二组成模块;第三接收模块用于接收第一触发信息和用户输入的相关信息;第一显示模块用于显示所述输入的相关信息;第二组成模块用于将输入的相关信息组成待签名数据报文;所述第二接口模块还用于将所述待签名数据报文发送给所述第一接口模块。所述后台服务器还包括挑战值生成模块和第二发送模块;所述挑战值生成模块用于生成挑战值;所述第二发送模块用于将所述挑战值通过所述客户端发送给所述USB Key ; 所述第二动态口令生成模块用于根据所述第二动态因子、第二静态因子和所述生成的挑战值进行计算生成第二动态口令;所述第一存储模块还用于接收并存储第二发送模块发送的挑战值;所述第一动态口令生成模块用于根据所述第一动态因子、所述第一静态因子和所述挑战值计算生成第一动态口令。所述第一存储模块还用于根据预设规则对所述第一动态因子进行更新;第二存储模块还用于根据预设规则对所述第二动态因子进行更新。所述后台服务器还包括动态因子校准模块,用于对所述第二存储模块中的第二动态因子进行校准。所述USB Key还包括输出模块,所述解析模块还用于按照根据预先约定的规则从所述待签名数据中获取关键信息,并将其发送给所述输出单元;所述判断模块具体用于判断在预定时间内是否接收到用户触发信息,并判断所述用户触发信息是否为确认执行信息;所述输出模块用于输出所述关键信息、所述生成的第一动态口令、取消提示信息、超时提示信息。所述签名模块具体包括第一组合单元,用于按照第一约定组合方式将所述第一动态口令与所述待签名数据组成第一组合数据;第一摘要单元,用于对所述第一组合数据进行摘要算法得到第一摘要值;第一填充单元,用于按照第一约定填充方式填充所述第一摘要值生成第一填充值;第一加密单元,用于对所述第一填充值进行加密算法得到第一签名数据。所述验证模块具体包括第一解密单元,用于使用所述存储的用户密钥对所述第二接收模块接收到的第一签名数据进行解密;第一提取单元,用于按照第一约定提取方式从解密得到的第一解密数据中提取第一待校验值;第四组合单元,用于按照所述第一约定组合方式将所述验证窗口生成模块中的第二动态口令与所述第二接收模块接收到的待签名数据进行组合;第四摘要单元,用于将组合后的数据进行摘要算法得到第一校验摘要值; 第一匹配单元,用于将所述第一校验摘要值与所述第一待校验值进行匹配。所述签名模块具体包括第二摘要单元,用于对所述待签名数据进行摘要算法得到第二摘要值;第二填充单元,用于按照第二约定填充方式填充所述第二摘要值生成第二填充值;第二组合单元,用于按照第二约定组合方式将所述第二填充值与所述第一动态口令组成第二组合数据;第二加密单元,用于对所述第二组合数据进行加密算法得到第二签名数据。所述验证模块具体包括第二解密单元,用于使用存储的密钥对所述第二接收模块接收到的第二签名数据进行解密;第一拆分单元,用于按照第一约定拆分方式拆分解密得到的第二解密数据得到第一拆分动态口令和第一拆分数据;第二匹配单元,用于将所述验证窗口中的第二动态口令与所述第一拆分动态口令进行匹配;第二提取单元,用于按照第二约定提取方式从所述第一拆分数据中提取第二待校验值;第五摘要单元,用于对所述第二接收模块接收到的待签名数据进行摘要算法得到第二校验摘要值;第一对比单元,用于将所述第二待校验值与第二校验摘要值进行对比。所述签名模块具体包括第三摘要单元,用于对所述待签名数据进行摘要算法得到第三摘要值;第三填充单元,用于按照第三约定填充方式填充所述第三摘要值生成第三填充值;第三加密单元,用于对所述第三填充值进行加密算法;第三组合单元,用于按照第三约定组合方式将加密结果与所述第一动态口令组成第三签名数据。所述验证模块具体包括第二拆分单元,用于按照第二约定拆分方式拆分所述第二接收模块接收到的第三签名数据得到第二拆分动态口令和第二拆分数据;第三匹配单元,用于将所述验证窗口中的第二动态口令与所述第二拆分动态口令进行匹配;第三解密单元,用于对所述第二拆分数据进行解密;第三提取方式,用于按照第三约定提取方式从解密得到的第三解密数据中提取第三待校验值;第六摘要单元,用于对所述第二接收模块接收到的待签名数据进行摘要算法得到第三校验摘要值;第二对比单元,用于将所述第三待校验值与所述第三校验摘要值进行对比。本发明与现有技术相比,具有以下优点本发明提供的数据签名认证方法及系统通过将动态口令和待签名数据组合在一起进行签名,在后台服务器分别对动态口令和待签名数据进行认证,本发明在签名中将动态口令当作“时间戳”使用,增加网络数据传输的安全性,真正实现防“重放”攻击。
图1为本发明实施例一提供的一种数据签名认证方法的流程图;图2为本发明实施例二提供的另一种数据签名认证方法的流程图;图3为本发明实施例三提供的又一种数据签名认证方法的流程图;图4为本发明实施例四提供的一种数据签名认证系统的方框示意图。
具体实施例方式为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提供的一种数据签名认证方法及系统的功效,说明如下。实施例一本发明实施例一提供了一种数据签名认证方法,以用户使用USB Key在客户端与后台服务器之间进行网上交易为例,与客户端相连的USB Key使用本发明实施例提供的方法对该过程中涉及到的传输数据和USB Key生成的动态口令进行签名,用以提高网上交易的安全性。USB Key中存储的密钥和后台服务器中存储的密钥相对应,参见图1,该方法包括步骤101 客户端与后台服务器建立连接,发起数据传输请求并显示提示信息,提示用户输入相关信息;具体的,本实施例中的相关信息包括帐户、金额、用户名、密码;步骤102 客户端接收相关信息,将其组成签名文件包并发送给后台服务器;客户端将输入的相关信息组成签名文件包,可以使用TLV(Tag Length Value,标签长度值)格式或 LV (Length Value,长度值)、DER(Distinguished Encoding Rules,可辨别编码规则)、嵌套的XML (Extensible Markup Language,可扩展标记语言)格式以及其他格式;步骤103 后台服务器将接收到的签名文件包转化成待签名数据报文,并通过客户端发送给USB Key;步骤104 =USB key对接收到的待签名数据报文进行解析得到待签名数据,根据预先约定的规则从待签名数据中获取关键信息;待签名数据包括账号、金额、用户名、密码等信息,关键信息为全部待签名数据或部分待签名数据;步骤105 =USB key输出关键信息,等待接收用户触发信息;步骤106 =USB key判断在预定时间内是否接收到用户触发信息,是则顺序执行步骤108,否则执行步骤107;步骤107 =USB key输出超时提示信息,并将其发送给客户端,结束;在本实施例中,超时提示信息通过显示方式和/或语音播报方式输出;步骤108 =USB key判断接收到的用户触发信息是否为确认执行信息,是则执行步骤110,否则执行步骤109;步骤109 =USB key输出取消提示信息,并将其发送给客户端,结束;步骤110 =USB key获取第一动态口令,按照第一约定组合方式将其与待签名数据组成第一组合数据,对第一组合数据进行摘要算法得到第一摘要值,按照第一约定填充方式填充第一摘要值生成第一填充值,对第一填充值进行加密算法得到第一签名数据;本实施例中,获取第一动态口令具体为USB Key根据其内部中存储的第一动态因子和第一静态因子计算生成第一动态口令,获取所述生成的第一动态口令;或所述USB Key 根据其内部存储的第一动态因子、第一静态因子和挑战值计算生成第一动态口令,获取所述生成的第一动态口令;所述第一动态因子为时间因子或次数值;USB Key在接收到时钟源触发信息时将其存储的时间因子按照第一预设规则进行更新;或USB Key在生成动态口令之前或之后按照第二预设规则对存储的次数值进行更新,如加1或减1 ;挑战值为后台服务器通过按键输入数值得到或从所述待签名数据中获取,通过客户端发送来的;所述组合方法为为拼接组合或交叉组合,具体为USB key将第一动态口令和待签名数据中的其中一方整体添加在另一方的不同位置组成第一签名原文,或将一方进行拆分,将拆分后的数据分别添加在另一方的不同位置组成第一签名原文;具体的在本实施例中,USB key将动态口令拆分成三份分别添加在待签名数据的首端、中间或末端;本实施例中的摘要算法包括MD2、MD4、MD5和SHA-I等,加密算法采用DES算法、
133DES算法、TDEA算法、Blowfish算法、RC5算法或IDEA算法;步骤111 =USB key将第一签名数据和待签名数据通过客户端发送给后台服务器;步骤112 后台服务器生成验证窗口,验证窗口中存储至少两个第二动态口令;本实施例中后台服务器生成验证窗口具体为后台服务器根据其内部存储的第二动态因子和第二静态因子计算生成第二动态口令,按照第一预设规定存储所述第二动态口令生成一动态口令列表即验证窗口 ;或后台服务器根据其内部存储的第二动态因子、第二静态因子和挑战值计算生成第二动态口令,按照第二预设规定存储所述第二动态口令生成一动态口令列表即验证窗口 ;所述第二动态因子为时间因子或次数值;具体的,预设规定为时间先后顺序,挑战值为后台服务器通过按键输入得到的或从所述待签名数据中获取到的;后台服务器在接收到时钟源触发信息时将其存储的时间因子按照第一预设规则进行更新;或后台服务器在生成动态口令之前或之后按照第二预设规则对存储的次数值进行更新,如加1或减1 ;后台服务器中的第二动态因子初始值、第二静态因子与USB Key中的第一动态因子初始值、第一静态因子相同;步骤113 后台服务器使用存储的密钥对接收到的第一签名数据进行解密;如解密成功执行步骤114,如解密失败则执行步骤118 ;步骤114 后台服务器按照第一约定提取方式从解密得到的第一解密数据中提取第一待校验值;步骤115 后台服务器按照第一约定组合方式将验证窗口中的第二动态口令与接收到的待签名数据进行组合,再将组合后的数据进行摘要算法得到第一校验摘要值,将第一校验摘要值与第一待校验值进行匹配,如匹配成功则执行步骤116,如匹配不成功则执行步骤118 ;步骤116 后台服务器对第二动态因子进行校准,并向客户端发送认证成功信息;校准过程具体为后台服务器记录其内置的时钟源与所述USB Key中的时钟源的时间差,所述第二动态因子为所述后台服务器中的时钟源时间与所述时间差的计算结果所对应时间因子,或后台服务器将其当前存储的次数值按照第二预设规则进行更新,使更新后的次数值与USB Key存储的次数值保持同步;步骤117 客户端显示成功信息,并与后台服务器开始进行网上交易;步骤118 后台服务器取消认证过程,并向客户端发送验证失败信息;步骤119 客户端显示认证失败信息,结束。在本发明实施例中,关键信息、第一动态口令、超时提示信息、取消提示信息通过显示屏和/或语音播报器输出;优选的,显示屏为段码显示屏或点阵显示屏,如采用屏幕滚动显示或翻屏显示,翻屏显示具体为通过上翻按键和下翻按键控制翻屏显示或每隔预设时间自动翻屏显示。实施例二 本发明实施例二提供了另一种数据签名认证方法,其中,第一动态因子和第二动态因子分别为USB Key和后台服务器中存储的次数值,如图2所示,包括步骤201 客户端接收用户触发信息,显示提示信息,提示用户输入相关信息,如帐户、金额、用户名、密码等;
步骤202 客户端接收相关信息,将其组成待签名数据报文并发送给与其连接的 USB Key ;步骤203 =USB key对接收到的待签名数据报文进行解析得到待签名数据,根据预先约定的规则从待签名数据中获取关键信息;待签名数据包括账号、金额、用户名、密码等信息;具体的,本实施例中的关键信息由符号“_”加“账号后5位”组成;步骤204 =USB key显示关键信息,等待接收用户触发信息;步骤205 =USB key判断在预定时间内是否接收到用户触发信息,是则顺序执行步骤207,否则执行步骤206 ;步骤206 =USB key显示超时提示信息,并将其发送给客户端,结束;步骤207 =USB key判断接收到的用户触发信息是否为确认执行信息,是则执行步骤209,否则执行步骤208 ;步骤208 =USB key显示取消信息,并将其发送给客户端,结束;步骤209 =USB key显示确认提示信息,并获取第一动态口令,对待签名数据进行摘要算法得到第二摘要值,按照第二约定填充方式填充第二摘要值生成第二填充值,按照第二约定组合方式将第二填充值与获取的第一动态口令组成第二组合数据,对第二组合数据进行加密算法得到第二签名数据;具体的,本实施例中获取的第一动态口令为USB key接收到确认执行信息根据其存储的次数值和第一静态因子计算生成的,USB key在生成动态口令之后按照第二预设规则对次数值进行更新,如加1或减1 ;本实施例中USB key将动态口令整体添加在第二填充值的末端组成第二组合数据;步骤210 =USB key将第二签名数据和待签名数据通过客户端发送给后台服务器;步骤211 后台服务器生成验证窗口,在验证窗口中存储有三个第二动态口令;具体的,本实施例中成验证窗口具体为后台服务器对其存储的次数值和第二静态因子计算生成第二动态口令,并按时间先后顺序存储第二动态口令生成一动态口令列表即验证窗口 ;后台服务器中存储的次数值初始值和其更新规则与USB Key中存储的次数值初始值和更新规则对应相同;步骤212 后台服务器使用存储的密钥对接收到的第二签名数据进行解密,如解密成功,则执行步骤213,如解密失败,则执行步骤218 ;步骤213 后台服务器按照第一约定拆分方式拆分解密得到的第二解密数据得到第一拆分动态口令和第一拆分数据,将验证窗口中的第二动态口令与第一拆分动态口令进行匹配,如匹配成功则执行步骤214,否则执行步骤218 ;该步骤中的第一约定拆分方式与步骤209中的第二约定组合方式互逆;步骤214 后台服务器对其存储的次数值进行校准;本实施例中具体的校准过程为后台服务器将其当前存储的次数值进行更新,如加1或减1更新,使更新后的次数值与USB中存储的次数值相同;步骤215 后台服务器按照第二约定提取方式从第一拆分数据中提取第二待校验值,对待签名数据进行摘要算法得到第二校验摘要值,将第二待校验值与第二校验摘要值进行对比,如对比一致,则执行步骤216,否则执行步骤218 ;
步骤216 后台服务器向客户端发送认证成功信息;步骤217 客户端显示认证成功信息,并与后台服务器开始进行网上交易;步骤218 后台服务器取消认证过程,并向客户端发送认证失败信息;步骤219 客户端显示认证失败信息,结束。在本实施例中对解密后的动态口令和第二待校验值进行验证的过程可调换。实施例三如图3所示,为本发明实施例三提供的又一种数据签名认证方法,其中,第一动态因子和第二动态因子分别为USB Key和后台服务器中存储的时间因子,包括步骤301 客户端与后台服务器建立连接,发起数据传输请求并显示提示信息,提示用户输入相关信息;具体的,本实施例中的相关信息包括帐户、金额、用户名、密码;步骤302 客户端接收相关信息,将其组成签名文件包并发送给后台服务器;步骤303 后台服务器按照预设方式从所述签名文件包中获取挑战值并进行存储,将签名文件包转化成待签名数据报文并将其和挑战值通过客户端发送给USB Key ;具体的,在本实施例中挑战值为账号后五位;步骤304 =USB key对接收到的待签名数据报文进行解析得到待签名数据,根据预先约定的规则从待签名数据中获取关键信息;关键信息为部分待签名数据或全部待签名数据,本实施例中的关键信息由符号 “_”加“账号后5位”组成;步骤305 =USB key显示关键信息,等待接收用户触发信息;步骤306 =USB key判断在预定时间内是否接收到用户触发信息,是则顺序执行步骤308,否则执行步骤307 ;步骤307 =USB key播报超时提示信息,并将其发送给客户端,结束;步骤308 =USB key判断接收到的用户触发信息是否为确认执行信息,是则执行步骤310,否则执行步骤309 ;步骤309 =USB key播报取消提示信息,并将其发送给客户端,结束;步骤310 =USB key播报确认提示信息,获取第一动态口令,对待签名数据进行摘要算法得到第三摘要值,按照第三约定填充方式填充第三摘要值生成第三填充值,对第三填充值进行加密算法,按照第三约定组合方式将加密结果与第一动态口令组成第三签名数据;本实施例中获取的第一动态口令为USB key根据存储的时间因子、第一静态因子和后台服务器下发的挑战值计算生成的;USB key中内置的时钟源每隔固定时长发送一个信息,用于触发USB key按照第一预设规则对存储的时间因子进行更新,本实施例中的固定时长为60秒;本实施例中的第三约定组合方式为USB key将第一动态口令整体添加在加密结果的首端组成第三签名数据;步骤311 =USB key将第三签名数据和待签名数据发送给后台服务器;步骤312 后台服务器生成验证窗口,验证窗口中有四个动态口令;具体的,本实施例中后台服务器生成验证窗口具体为后台服务器根据存储的时间因子、第二静态因子和挑战值计算生成第二动态口令,按照第二预设规定存储第二动态口令生成一动态口令列表即验证窗口 ;后台服务器中时间因子的更新规则和USB Key中时间因子的更新过程相同;步骤313 后台服务器按照第二约定拆分方式拆分第三签名数据得到第二拆分动态口令和第二拆分数据,将验证窗口中的第二动态口令与第二拆分动态口令进行匹配,如匹配成功则执行步骤314,否则执行步骤318 ;第二约定拆分方与步骤310中的第三组合方式互逆;步骤314 后台服务器使用存储的密钥对第二拆分数据进行解密,如解密成功则执行步骤315,否则执行步骤318 ;步骤315 后台服务器按照第三约定提取方式从解密得到的第三解密数据中提取第三待校验值,对所述待签名数据进行摘要算法得到第三校验摘要值,将第三待校验值与第三校验摘要值进行对比,如一致则执行步骤316,否则执行步骤318 ;步骤316 后台服务器对其存储的时间因子进行校准,并向客户端发送认证成功 fn息;本实施例中校准过程具体为后台服务器记录其内置的时钟源与所述USB Key中的时钟源的时间差,所述第二动态因子为所述后台服务器中的时钟源时间与所述时间差的计算结果所对应时间因子;步骤317 客户端显示认证成功信息,并与后台服务器开始进行网上交易;步骤318 后台服务器取消认证过程,并向客户端发送认证失败信息;步骤319 客户端显示认证失败信息,结束。本实施例中也可先对第二动态口令的动态因子进行校准,再对第二拆分数据进行解密和验证。上述实施例中,后台服务器生成第一挑战值,并将其与待签名数据报文一起发生给USB Key, USB Key对该第一挑战值进行计算得到第一动态口令,将该第一动态口令与待签名数据进行处理得到签名数据;验证过程中,后台服务器又生成一相同的第二挑战值,对该第二挑战值进行计算生成第二动态口令,根据该第二动态口令与接收到的待签名数据对接收到的签名数据进行验证。实施例四如图4所示,为本发明实施例四提供的数据签名认证系统,包括客户端42、USB key41、后台服务器43,客户端42包括第二接口模块421、第一接收模块422、第一显示模块423、第一组成模块424 ;第二接口模块421与USB key41连接,用作数据通讯接口,用于接收或发送数据;具体的,在本实施例中,第二接口模块421用于接收USB Key41发送的超时提示信息和取消提示信息;第一接收模块422用于用户输入的相关信息,相关信息包括账号、金额、用户名、 密码等;第一显示模块423,用于显示输入的相关信息,还用于接收并显示后台服务器发送的验证结果信息;第一组成模块4M用于将输入的相关信息组成签名文件包,并发送给后台服务器 43 ;
USBkey41 包括第一接口模块411,用作数据通讯接口,与第二接口模块421连接,用于接收或发送数据;具体的,在本实施例中第一接口模块411用于接收后台服务器43通过客户端42 发送的待签名数据报文和挑战值,还用于向客户端42发送、取消提示信息、超时提示信息和通过客户端42向后台服务器发送签名数据和待签名数据;判断模块412,用于判断在预定时间内是否接收到用户触发信息,并判断所述用户触发信息是否为确认执行信息;解析模块413,用于对接收到的待签名数据报文进行解析得到待签名数据,并将其发送给签名模块;还用于按照根据预先约定的规则从待签名数据中获取关键信息,并将其发送给输出单元;本实施例中,待签名数据包括账号、金额、时间和地点等信息,关键信息为全部待签名数据或部分待签名数据,优选的,在本实施例中关键信息由符号“_”加“账号后5位”组成;第一存储模块414,用于存储密钥、数字证书、第一静态因子、第一动态因子和生成的第一动态口令,第一动态因子为时间因子或次数值;还用于存储后台服务器43通过客户端42发送的挑战值;第一存储模块414还用于按照预设规则对存储的第一动态因子进行更新;第一动态口令生成模块415,用于根据第一动态因子和第一静态因子计算生成第一动态口令,或用于根据所述第一动态因子、第一静态因子和挑战值计算生成第一动态口令;挑战值是后台服务器生成并通过客户端发送的;输出单元416,用于输出取消提示信息和/或超时提示信息;具体的,本实施例中的输出单元416为显示屏和/或语音播报器;优选的,显示屏为段码显示屏或点阵显示屏;显示屏还用于显示确认提示信息、关键信息、第一动态口令;获取模块417,用于从第一动态口令生成模块415中或第一储存模块414中获取第一动态口令;按键模块418,用于输入用户确认执行信息和/或取消触发信息,本实施例中按键模块418包括确认键和取消键;签名模块419,用于对解析模块413发送的待签名数据和获取模块417获取的第一动态口令进行处理得到签名数据;具体的,在本实施例中所述签名模块包括第一组合单元,用于按照第一约定组合方式将所述第一动态口令与所述待签名数据组成第一组合数据;第一摘要单元,用于对所述第一组合数据进行摘要算法得到第一摘要值;第一填充单元,用于按照第一约定填充方式填充所述第一摘要值生成第一填充值;第一加密单元,用于对所述第一填充值进行加密算法得到第一签名数据;第一发送模块410,用于将第一签名数据和待签名数据通过客户端42发送给后台服务器43 ;
后台服务器43包括第二接收模块430、第二存储模块431、第二动态口令生成模块 432、第一验证窗口生成模块433、第一验证模块434、第二动态因子校准模块435、第二发送模块436和转化模块437 ;第二接收模块430用于接收第一发送模块410通过客户端42发送的第一签名数据和待签名数据;还用于接收第一组成模块4M发送签名文件包;第一转化模块437用于将接收到的签名文件包转化成待签名数据报文;第二存储模块431用于存储密钥、第二静态因子、第二动态因子;第二动态因子为时间因子或次数值;第二存储模块431还用于按照预设规则对第二动态因子进行更新;第二动态口令生成模块432用于对第二动态因子和第二静态因子计算生成第二动态口令,或用于对第二动态因子、第二静态因子和挑战值计算生成第二动态口令;挑战值是后台服务器生成的;第一验证窗口生成模块433用于按照预设规定存储第二动态口令生成一动态口令列表即验证窗口 ;在本实施例中第一验证窗口生成模块433中至少存储有两个第二动态口令;第一验证模块434用于根据第一验证窗口生成模块433中的第二动态口令和第二接收模块430接收到的待签名数据对接收到的签名数据进行验证;具体的,在本实施例中第一验证模块434具体包括第一解密单元,用于使用第二存储模块431中存储的密钥对第二接收模块430接收到的第一签名数据进行解密;第一提取单元,用于按照第一约定提取方式从解密得到的第一解密数据中提取第一待校验值;第四组合单元,用于按照第一约定组合方式将验证窗口生成模块433中的第二动态口令与第二接收模块430接收到的待签名数据进行组合;第四摘要单元,用于将组合后的数据进行摘要算法得到第一校验摘要值;第一匹配单元,用于将第一校验摘要值与第一待校验值进行匹配;第二动态因子校准模块435用于对第二存储模块431中的第二动态因子进行校准;具体的,第二动态因子校准模块435用于记录USB Key41中的时钟源与后台服务器43中的时钟源的时间差,第二动态因子为后台服务器43中的时钟源发送的时间与该时间差的计算结果所对应的时间因子;或第一动态因子校准模块435用于按照第二预设规则对第二存储模块431中存储的次数值进行更新,使更新后的次数值与第一存储模块414中存储的次数值保持同步;第二发送模块436用于将转化模块437中的待签名数据报文通过客户端42发送给USB Key41,将第一验证模块434中的验证结果信息发送给第一显示模块423,验证结果信息包括解密失败和匹配不成功时的验证失败信息、匹配成功时的验证成功信息;还用于将后台服务器中生成的挑战值通过客户端42发送给USB Key41。后台服务器还包括用于生成挑战值的挑战值生成模块;具体的,挑战值生成模块用于从签名文件包中获取挑战值或根据按键输入的数值获取挑战值。实施例五
本发明实施例五提供的数据签名认证系统与实施例四中的系统中的USB key41相同,不再赘述,重点描述客户端和后台服务器与实施例四中的客户端42和后台服务器43的不同之处。客户端包括第二接收模块,用于接收第一触发信息和用户输入的相关信息,相关信息包括账号、金额、用户名、密码;第二显示模块,用于显示输入的相关信息,还用于接收并显示后台服务器发送的 fn息;第二组成模块,用于将输入的相关信息组成待签名数据报文;第二接口模块用作数据通讯接口,用于接收和发送数据;具体的,将待签名数据报文发送给所述第一接口模块;本实施例五中的后台服务器包括第二存储模块431、第二动态口令生成模块432、 第一验证窗口生成模块433、第一验证模块434、第一动态因子校准模块435,还包括第三接收模块和第三发送模块;第三接收模块用于接收第一发送模块417通过客户端42发送的签名数据和待签名数据;第三发送模块用于将第一验证模块434中的验证结果信息发送给第二显示模块。根据签名过程和验证过程的不同,在实施例四和实施例五中USB Key中的签名模块、实施例四中的第一验证模块434、实施例五中的第二验证模块具有不同的功能,下面进行详述。(一 )签名模块具体包括第二摘要单元、第二填充单元、第二组合单元和第二加密单元;第二摘要单元用于对解析模块中的待签名数据进行摘要算法得到第二摘要值;第二填充单元用于按照第二约定填充方式填充第二摘要值生成第二填充值;第二组合单元用于按照第二约定组合方式将第二填充值与第一动态口令组成第二组合数据;第二加密单元用于对第二组合数据进行加密算法得到第二签名数据;验证模块具体包括第二解密单元、第一拆分单元、第二匹配单元、第二提取单元、 第五摘要单元和第一对比单元;第二解密单元用于使用存储的密钥对第二接收模块接收到的第二签名数据进行解密;第一拆分单元用于按照第一约定拆分方式拆分解密得到的第二解密数据得到第一拆分动态口令和第一拆分数据;第二匹配单元用于将验证窗口中的第二动态口令与第一拆分动态口令进行匹配;第二提取单元用于按照第二约定提取方式从第一拆分数据中提取第二待校验值;第五摘要单元用于对第二接收模块接收到的待签名数据进行摘要算法得到第二校验摘要值;第一对比单元用于将第二待校验值与第二校验摘要值进行对比。(二)签名模块具体包括第三摘要单元、第三填充单元、第三加密单元、第三组合单元;第三摘要单元用于对解析模块中的待签名数据进行摘要算法得到第三摘要值;第三填充单元用于按照第三约定填充方式填充第三摘要值生成第三填充值;第三加密单元用于对第三填充值进行加密算法;第三组合单元用于按照第三约定组合方式将加密结果与获取的第一动态口令组成第三签名数据;验证模块具体包括第二拆分单元、第三匹配单元、第三解密单元、第三提取方式、 第六摘要单元和第二对比单元;第二拆分单元用于按照第二约定拆分方式拆分接收到的第三签名数据得到第二拆分动态口令和第二拆分数据;第三匹配单元用于将验证窗口中的第二动态口令与第二拆分动态口令进行匹配;第三解密单元,用于对第二拆分数据进行解密; 第三提取方式,用于按照第三约定提取方式从解密得到的第三解密数据中提取第三待校验值,第六摘要单元用于对待签名数据进行摘要算法得到第三校验摘要值;第二对比单元用于将第三待校验值与第三校验摘要值进行对比。 以上,仅为本发明较佳的具体实施方法,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种数据签名认证方法,其特征在于,包括步骤A:USB Key接收待签名数据报文并对其解析得到待签名数据; 步骤B 所述USB Key判断在预设的时间内是否接收到确认执行信息,是则获取第一动态口令,并将其与所述待签名数据进行处理得到签名数据,否则结束;步骤C 所述USB Key将所述待签名数据和所述签名数据通过客户端发送给后台服务器;步骤D 所述后台服务器生成验证窗口,所述验证窗口中至少有两个第二动态口令,根据所述待签名数据和所述第二动态口令对所述签名数据进行验证。
2.如权利要求1所述的数据签名认证方法,其特征在于,在步骤A之前还包括所述客户端与所述后台服务器建立连接,发起数据传输请求并显示提示信息,提示用户输入相关信息;所述客户端接收所述相关信息,将其组成签名文件包并发送给后台服务器;所述后台服务器将所述签名文件包转化为待签名数据报文并通过所述客户端发送给所述 USB Key0
3.如权利要求1所述的数据签名认证方法,其特征在于,在步骤A之前还包括 所述客户端接收第一触发信息,显示提示信息,提示用户输入相关信息;所述客户端接收所述相关信息,将其组成待签名数据报文并发送给与其连接的所述 USB Key。
4.如权利要求2或3所述的数据签名认证方法,其特征在于,所述步骤A还包括根据预先约定的规则从待签名数据中获取关键信息,显示所述关键信息并等待接收确认执行信息,所述关键信息为全部待签名数据或部分待签名数据。
5.如权利要求4所述的数据签名认证方法,其特征在于,所述步骤B具体为所述USB Key判断在预设的时间内是否接收到用户触发信息,如在预设时间内收到用户触发信息,则判断所述用户触发信息是否为确认执行信息,是则获取所述第一动态口令并将其与所述待签名数据进行处理得到签名数据,否则输出取消提示信息,结束;如在预设时间内未收到用户操作信息,则输出超时提示信息,结束。
6.如权利要求5所述的数据签名认证方法,其特征在于,所述获取第一动态口令具体为所述USB Key根据其内部中存储的第一动态因子和第一静态因子计算生成第一动态口令,获取所述生成的第一动态口令;或所述USB Key根据其内部存储的第一动态因子、第一静态因子和挑战值计算生成第一动态口令,获取所述生成的第一动态口令; 所述第一动态因子为时间因子或次数值。
7.如权利要求6所述的数据签名认证方法,其特征在于,所述步骤D中所述后台服务器生成验证窗口,具体为后台服务器根据其内部存储的第二动态因子和第二静态因子计算生成第二动态口令, 按照第一预设规定存储所述第二动态口令生成一动态口令列表即验证窗口 ;或后台服务器根据其内部存储的第二动态因子、第二静态因子和挑战值计算生成第二动态口令,按照第二预设规定存储所述第二动态口令生成一动态口令列表即验证窗口 ;所述第二动态因子为时间因子或次数值。
8.如权利要求7所述的数据签名认证方法,其特征在于,所述生成第一动态口令步骤中还包括所述USB Key根据预设规则对所述第一动态因子进行更新;所述生成第二动态口令步骤中还包括所述后台服务器根据预设规则对所述第二动态因子进行更新。
9.如权利要求6或7所述的数据签名认证方法,其特征在于,所述挑战值是后台服务器生成的。
10.如权利要求1所述的数据签名认证方法,其特征在于,所述将第一动态口令与所述待签名数据进行处理得到签名数据,具体为按照第一约定组合方式将所述第一动态口令与所述待签名数据组成第一组合数据;对所述第一组合数据进行摘要算法得到第一摘要值,按照第一约定填充方式填充所述第一摘要值生成第一填充值,对所述第一填充值进行加密算法得到第一签名数据。
11.如权利要求10所述的数据签名认证方法,其特征在于,所述根据所述待签名数据和所述第二动态口令对所述签名数据进行验证,具体为使用存储的密钥对所述第一签名数据进行解密,如解密成功,则按照第一约定提取方式从解密得到的第一解密数据中提取第一待校验值;按照所述第一约定组合方式分别将所述验证窗口中的第二动态口令与所述待签名数据进行组合,将组合后的数据进行摘要算法得到第一校验摘要值;将所述第一校验摘要值与所述第一待校验值进行匹配,如匹配成功则验证通过,否则结束。
12.如权利要求1所述的数据签名认证方法,其特征在于,所述将第一动态口令与所述待签名数据进行处理得到签名数据,具体为对所述待签名数据进行摘要算法得到第二摘要值,按照第二约定填充方式填充所述第二摘要值生成第二填充值,按照第二约定组合方式将所述第二填充值与所述第一动态口令组成第二组合数据;对所述第二组合数据进行加密算法得到第二签名数据。
13.如权利要求12所述的数据签名认证方法,其特征在于,所述根据所述待签名数据和所述第二动态口令对所述签名数据进行验证,具体为使用存储的密钥对所述第二签名数据进行解密,如解密成功,则按照第一约定拆分方式拆分解密得到的第二解密数据得到第一拆分动态口令和第一拆分数据,将所述验证窗口中的第二动态口令与所述第一拆分动态口令进行匹配,如匹配成功则按照第二约定提取方式从所述第一拆分数据中提取第二待校验值,对所述待签名数据进行摘要算法得到第二校验摘要值,将所述第二待校验值与第二校验摘要值进行对比,如一致则验证通过;否则结束;如匹配失败则结束;如解密失败则结束。
14.如权利要求1所述的数据签名认证方法,其特征在于,所述将第一动态口令与所述待签名数据进行处理得到签名数据,具体为对所述待签名数据进行摘要算法得到第三摘要值,按照第三约定填充方式填充所述第三摘要值生成第三填充值,对所述第三填充值进行加密算法,按照第三约定组合方式将加密结果与所述第一动态口令组成第三签名数据。
15.如权利要求14所述的数据签名认证方法,其特征在于,所述根据所述待签名数据和所述第二动态口令对所述签名数据进行验证,具体为按照第二约定拆分方式拆分所述第三签名数据得到第二拆分动态口令和第二拆分数据;将所述验证窗口中的第二动态口令与所述第二拆分动态口令进行匹配,如匹配成功则使用存储的密钥对所述第二拆分数据进行解密,如解密成功则按照第三约定提取方式从解密得到的第三解密数据中提取第三待校验值,对所述待签名数据进行摘要算法得到第三校验摘要值,将所述第三待校验值与所述第三校验摘要值进行对比;如一致则验证通过,否则结束;如解密失败则结束;如匹配失败则结束。
16.如权利要求8所述的数据签名认证方法,其特征在于,在所述步骤D的验证过程中还包括后台服务器对用于生成第二动态口令的动态因子进行校准。
17.如权利要求16所述的数据签名认证方法,其特征在于,所述第一动态因子和第二动态因子均为时间因子,所述对用于生成第二动态口令的动态因子进行校准具体为记录后台服务器中的时钟源与所述USB Key中的时钟源的时间差,所述第二动态因子为所述后台服务器中的时钟源时间与所述时间差的计算结果所对应时间因子。
18.如权利要求16所述的数据签名认证方法,其特征在于,所述第一动态因子和第二动态因子均为次数值,所述对用于生成第二动态口令的动态因子进行校准具体为后台服务器将其当前存储的次数值按照第二预设规则进行更新,使更新后的次数值与USB Key存储的次数值保持同步。
19.一种数据签名认证系统,其特征在于,包括USB Key、客户端和后台服务器;所述USB Key包括第一接口模块,与客户端连接,用作数据通讯接口,用于接收和发送数据;解析模块,用于对接收到的待签名数据报文进行解析得到待签名数据,并将其发送给签名模块;判断模块,用于判断在预定时间内是否接收到确认执行信息;第一存储模块,用于存储密钥、数字证书、第一静态因子、第一动态因子和生成的第一动态口令;第一动态口令生成模块,用于根据所述第一动态因子和第一静态因子计算生成第一动态口令;获取模块,用于从所述第一动态口令生成模块中或所述第一储存模块中获取第一动态口令;按键模块,用于输入用户确认执行信息或取消触发信息;签名模块,用于对所述待签名数据和所述获取的第一动态口令进行处理得到签名数据;第一发送模块,用于将所述签名数据和待签名数据通过所述客户端发送给所述后台服务器;所述后台服务器包括第二接收模块,用于接收所述第一发送模块发送的所述签名数据和所述待签名数据;第二存储模块,用于存储密钥、第二动态因子和第二静态因子;第二动态口令生成模块,用于根据所述第二动态因子和第二静态因子计算生成第二动态口令;验证窗口生成模块,用于按照预设规定存储所述第二动态口令生成一动态口令列表即验证窗口,所述验证窗口中至少有所述两个第二动态口令;验证模块,用于根据所述验证窗口生成模块中的第二动态口令和所述接收到的待签名数据对所述接收到的签名数据进行验证;所述客户端包括与所述第一接口模块连接的第二接口模块,用作数据通讯接口,用于接收和发送数据。
20.如权利要求19所述的数据签名认证系统,其特征在于, 所述客户端还包括第一接收模块、第一显示模块、第一组成模块; 所述第一接收模块用于接收用户输入的相关信息;所述第一显示模块用于显示所述输入的相关信息;所述第一组成模块用于将输入的相关信息组成签名文件包,并发送给所述后台服务器;所述后台服务器还包括第一转化模块和第二发送模块;所述第二接收模块还用于接收所述第一组成模块发送的签名文件包;所述第一转化模块用于将所述第二接收模块接收的签名文件包转化成待签名数据报文;所述第二发送模块用于将所述待签名数据报文通过所述客户端发送给所述第一接口模块。
21.如权利要求19所述的数据签名认证系统,其特征在于, 所述客户端还包括第三接收模块、第二显示模块、第二组成模块; 第三接收模块用于接收第一触发信息和用户输入的相关信息; 第一显示模块用于显示所述输入的相关信息;第二组成模块用于将输入的相关信息组成待签名数据报文;所述第二接口模块还用于将所述待签名数据报文发送给所述第一接口模块。
22.如权利要求19所述的数据签名认证系统,其特征在于,所述后台服务器还包括挑战值生成模块和第二发送模块;所述挑战值生成模块用于生成挑战值;所述第二发送模块用于将所述挑战值通过所述客户端发送给所述USB Key ; 所述第二动态口令生成模块用于根据所述第二动态因子、第二静态因子和所述生成的挑战值进行计算生成第二动态口令;所述第一存储模块还用于接收并存储第二发送模块发送的挑战值; 所述第一动态口令生成模块用于根据所述第一动态因子、所述第一静态因子和所述挑战值计算生成第一动态口令。
23.如权利要求19至22任意一项所述的数据签名认证系统,其特征在于,所述第一存储模块还用于根据预设规则对所述第一动态因子进行更新;第二存储模块还用于根据预设规则对所述第二动态因子进行更新。
24.如权利要求19所述的数据签名认证系统,其特征在于,所述后台服务器还包括动态因子校准模块,用于对所述第二存储模块中的第二动态因子进行校准。
25.如权利要求19所述的数据签名认证系统,其特征在于,所述USBKey还包括输出模块;所述解析模块还用于按照根据预先约定的规则从所述待签名数据中获取关键信息,并将其发送给所述输出单元;所述判断模块具体用于判断在预定时间内是否接收到用户触发信息,并判断所述用户触发信息是否为确认执行信息;所述输出模块用于输出所述关键信息、所述生成的第一动态口令、取消提示信息、超时提示信息。
26.如权利要求19所述的数据签名认证系统,其特征在于,所述签名模块具体包括 第一组合单元,用于按照第一约定组合方式将所述第一动态口令与所述待签名数据组成第一组合数据;第一摘要单元,用于对所述第一组合数据进行摘要算法得到第一摘要值; 第一填充单元,用于按照第一约定填充方式填充所述第一摘要值生成第一填充值; 第一加密单元,用于对所述第一填充值进行加密算法得到第一签名数据。
27.如权利要求沈所述的数据签名认证系统,其特征在于,所述验证模块具体包括 第一解密单元,用于使用所述存储的用户密钥对所述第二接收模块接收到的第一签名数据进行解密;第一提取单元,用于按照第一约定提取方式从解密得到的第一解密数据中提取第一待校验值;第四组合单元,用于按照所述第一约定组合方式将所述验证窗口生成模块中的第二动态口令与所述第二接收模块接收到的待签名数据进行组合;第四摘要单元,用于将组合后的数据进行摘要算法得到第一校验摘要值; 第一匹配单元,用于将所述第一校验摘要值与所述第一待校验值进行匹配。
28.如权利要求19所述的数据签名认证系统,其特征在于,所述签名模块具体包括 第二摘要单元,用于对所述待签名数据进行摘要算法得到第二摘要值;第二填充单元,用于按照第二约定填充方式填充所述第二摘要值生成第二填充值; 第二组合单元,用于按照第二约定组合方式将所述第二填充值与所述第一动态口令组成第二组合数据;第二加密单元,用于对所述第二组合数据进行加密算法得到第二签名数据。
29.如权利要求观所述的数据签名认证系统,其特征在于,所述验证模块具体包括 第二解密单元,用于使用存储的密钥对所述第二接收模块接收到的第二签名数据进行解密;第一拆分单元,用于按照第一约定拆分方式拆分解密得到的第二解密数据得到第一拆分动态口令和第一拆分数据;第二匹配单元,用于将所述验证窗口中的第二动态口令与所述第一拆分动态口令进行匹配;第二提取单元,用于按照第二约定提取方式从所述第一拆分数据中提取第二待校验值;第五摘要单元,用于对所述第二接收模块接收到的待签名数据进行摘要算法得到第二校验摘要值;第一对比单元,用于将所述第二待校验值与第二校验摘要值进行对比。
30.如权利要求19所述的数据签名认证系统,其特征在于,所述签名模块具体包括 第三摘要单元,用于对所述待签名数据进行摘要算法得到第三摘要值;第三填充单元,用于按照第三约定填充方式填充所述第三摘要值生成第三填充值; 第三加密单元,用于对所述第三填充值进行加密算法;第三组合单元,用于按照第三约定组合方式将加密结果与所述第一动态口令组成第三签名数据。
31.如权利要求30所述的数据签名认证系统,其特征在于,所述验证模块具体包括 第二拆分单元,用于按照第二约定拆分方式拆分所述第二接收模块接收到的第三签名数据得到第二拆分动态口令和第二拆分数据;第三匹配单元,用于将所述验证窗口中的第二动态口令与所述第二拆分动态口令进行匹配;第三解密单元,用于对所述第二拆分数据进行解密;第三提取方式,用于按照第三约定提取方式从解密得到的第三解密数据中提取第三待校验值,第六摘要单元,用于对所述第二接收模块接收到的待签名数据进行摘要算法得到第三校验摘要值;第二对比单元,用于将所述第三待校验值与所述第三校验摘要值进行对比。
全文摘要
本发明公开一种数据签名认证方法及系统,所述方法包括USB Key接收待签名数据报文并对其解析得到待签名数据;USB Key判断在预设的时间内是否接收到确认执行信息,是则获取第一动态口令,将其与所述待签名数据进行处理得到签名数据,否则结束;USB Key将所述待签名数据和所述签名数据通过客户端发送给后台服务器;后台服务器生成验证窗口,验证窗口中至少有两个第二动态口令,根据所述待签名数据和所述第二动态口令对所述签名数据进行验证。本发明提供的数据签名认证方法及系统,通过在签名中将动态口令当作“时间戳”使用,后台服务器对动态口令和待签名数据进行认证,增加网络数据传输的安全性,真正实现防“重放”攻击。
文档编号H04L9/32GK102223237SQ20111019931
公开日2011年10月19日 申请日期2011年7月15日 优先权日2011年7月15日
发明者于华章, 陆舟 申请人:飞天诚信科技股份有限公司