CN101631022B - 一种签名方法和系统 - Google Patents

一种签名方法和系统 Download PDF

Info

Publication number
CN101631022B
CN101631022B CN200910090271XA CN200910090271A CN101631022B CN 101631022 B CN101631022 B CN 101631022B CN 200910090271X A CN200910090271X A CN 200910090271XA CN 200910090271 A CN200910090271 A CN 200910090271A CN 101631022 B CN101631022 B CN 101631022B
Authority
CN
China
Prior art keywords
information
signature
client
digest value
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910090271XA
Other languages
English (en)
Other versions
CN101631022A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN200910090271XA priority Critical patent/CN101631022B/zh
Publication of CN101631022A publication Critical patent/CN101631022A/zh
Application granted granted Critical
Publication of CN101631022B publication Critical patent/CN101631022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种签名方法和系统,属于信息安全领域。该方法包括:客户端获得签名原文包;判断所述签名原文包中是否存在第二信息;当存在所述第二信息时,所述客户端对所述第一信息计算摘要得到第一摘要值;所述客户端发送所述第二信息和所述第一摘要值给与其相连的智能密钥设备;所述智能密钥设备输出所述第二信息给用户,并判断是否接收到所述用户的确认信息;如果在预定的时间内接收到所述用户的确认信息,所述智能密钥设备对所述第二信息计算摘要得到第二摘要值,对所述第一摘要值和所述第二摘要值进行组合并补位得到待签名数据,将所述待签名数据进行签名后得到签名结果返回给所述客户端;否则,结束操作。

Description

一种签名方法和系统
技术领域
本发明涉及信息安全领域,特别涉及一种签名方法和系统。
背景技术
随着网络的迅速发展给人们带来的极大便利,人们越来越依赖于网络进行各种活动,例如网络文件的传输、网上银行交易均已逐渐成为人们生活、工作中不可缺少的一部分。由于网络毕竟是一个虚拟的环境,存在着太多不安全的因素,而在网络环境中必然会进行数据交互的网络活动,尤其是像网上银行业务和机密文件的传输这样的网络活动,对网络的安全提出了很高的要求,因此人们开始大力发展网络信息安全技术。
数字签名技术就是一种为了确保用户数据在网络的传输过程中不会被人恶意修改的网络信息安全技术。所谓数字签名技术,就是一种进行身份认证的技术,可用于安全地传送命令和文件。数字签名技术通过一个单向函数对要传送的用户数据进行处理,得到用以认证数据来源并核实数据是否发生变化的一个字母数字串。通常数字签名采用MD5、SHA-1等散列算法对要传送的数据计算一个摘要值,并采用加密算法对这个摘要值进行加密然后进行传送。目前数字签名采用较多的是公钥加密技术,如基于RSA Date Security公司的PKCS(Public Key Cryptography Standards)、Digital Signature Algorithm、x.509、PGP(Pretty Good Privacy).1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。这种在数字化文档上的数字签名类似于纸张上的手写签名,是不可伪造的,文档的接收者能够验证文档确实来自签名者,并且签名后的文档没有被修改过,从而保证接收的文档中信息的真实性和完整性。完善的数字签名技术应满足以下三个条件:第一,签名者事后不能抵赖自己的签名;第二,任何其它人不能伪造签名;第三,如果当事人双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证签名来确认其真伪。
对数据进行数字签名后,可以很大程度上增加数据的安全性。但是,黑客技术的发展依然使用户非常担忧,因为一旦恶意攻击者控制了用户的计算机,他们就可以截取计算机内存中出现的数据,对计算机合法用户的利益造成伤害。因此人们研制出了一种便携式的可移动使用的智能密钥设备,也称为USB Key。这是一种带有微处理器的小型硬件设备,其通过主机的数据通讯接口与主机建立连接,设备内的处理器一般会采用安全设计芯片实现,利用其内置的安全机制,实现密钥生成、密钥安全存储和预置加密算法等功能,与密钥相关的运算完全在认证设备内部执行,所以安全性很高。
但是,这样仍然存在安全隐患,当用户的计算机遭到木马病毒的侵害后,能够在暗中操作用户计算机,并且不被用户所发觉。如果这时用户的USB Key接入电脑后忘记拔插,黑客就可以按照网银交易的格式伪造交易请求报文,并通过操纵用户的计算机,将伪造的交易请求报文送入USB Key中,利用用户私钥进行签名,利用签名结果和伪造的交易请求报文进行网上交易,这些都是在用户完全不知情的情况下进行的,因此对用户的帐户安全威胁很大。
综上所述,现有的智能密钥设备存在安全漏洞,黑客可以在用户不知情的情况下冒充用户进行交易,给用户的合法利益造成了很大的伤害。
发明内容
为了提高网络数据传输的安全性,本发明实施例提供了一种签名方法和系统。技术方案如下:
一种签名方法,所述方法包括:
客户端获得签名原文包;
判断所述签名原文包中是否存在第二信息;
当存在所述第二信息时,所述客户端对第一信息计算摘要得到第一摘要值;所述客户端发送所述第二信息和所述第一摘要值给与其相连的智能密钥设备;所述智能密钥设备输出所述第二信息给用户,并判断是否接收到所述用户的确认信息;如果在预定的时间内接收到所述用户的确认信息,所述智能密钥设备对所述第二信息计算摘要得到第二摘要值,对所述第一摘要值和所述第二摘要值进行组合并补位得到待签名数据,将所述待签名数据进行签名后得到签名结果返回给所述客户端;否则,结束操作;
当不存在所述第二信息时,所述客户端对所述签名原文包进行摘要计算并将计算得到的摘要值发送给所述智能密钥设备,所述智能密钥设备对接收到的所述摘要值进行签名得到签名结果,并将所述签名结果返回给所述客户端。
客户端组织所述签名原文包;
相应的,所述判断所述签名原文包中是否存在第二信息,具体包括:
所述客户端判断所述签名原文包是否符合预定的格式;
如果符合预定的格式,则所述客户端在固定的字段中查找所述第二信息;如果查找到所述第二信息,则判断结果为存在所述第二信息;如果查找不到所述第二信息,则判断结果为不存在所述第二信息;
如果不符合预定的格式,直接对所述签名原文包进行签名,结果返回给所述客户端。
所述客户端对第一信息计算摘要之前,所述方法还包括:
所述智能密钥设备对用户进行身份认证;
当所述用户通过身份认证时,所述客户端对所述第一信息计算摘要;
当所述用户未通过身份认证时,结束所述方法。
所述身份认证的方法包括:
PIN码验证,和/或,生物特征识别验证。
所述智能密钥设备输出所述第二信息给用户,具体包括:
所述智能密钥设备通过显示器将所述第二信息输出给所述用户;
和/或
所述智能密钥设备通过语音播报将所述第二信息输出给所述用户。
当不存在所述第二信息时,所述方法还包括:
所述客户端将所述签名原文包发送给所述智能密钥设备,所述智能密钥设备对所述签名原文包进行摘要计算并签名,得到签名结果并返回给所述客户端。
所述方法还包括:所述客户端发送所述签名结果、所述第一信息和所述第二信息给所述服务端,所述服务端对所述签名结果进行验证;
当所述签名结果通过验证时,所述签名正确;
当所述签名结果未通过验证时,所述签名失败。
所述服务端对所述签名结果进行验证,具体包括:
所述服务端对所述签名结果进行解密;
将解密后的结果去掉补位后,得到所述第一摘要值、第二摘要值和算法标识符;
所述服务端根据算法标识符中记录的算法即与所述客户端计算第一摘要值相同的算法对所述第一信息计算摘要得到第三摘要值;
所述服务端根据算法标识符中记录的算法即与所述智能密钥设备计算第二摘要值相同的算法对所述第二信息计算摘要得到第四摘要值;
将所述第三摘要值与所述第一摘要值,所述第四摘要值与所述第二摘要值进行比较;
当全部相同时,所述签名结果通过验证;
否则,所述签名结果未通过验证。
所述第一信息为交易信息,所述第二信息为关键信息。
所述计算摘要所使用的算法包括哈希算法,其中哈希算法包括如下算法中的一个或多个的组合:MD2、MD5、SHA-1、SHA-256、SHA-512。
一种签名系统,所述系统包括:客户端、与所述客户端相连的智能密钥设备和服务端;
所述客户端包括:
获得模块,用于获得签名原文包;
判断模块,用于判断所述签名原文包中是否存在第二信息;
摘要计算模块,用于当存在所述第二信息时,对第一信息计算摘要得到第一摘要值;
发送模块,用于发送所述第二信息和所述第一摘要值给所述智能密钥设备,用于将所述第一信息、所述第二信息、接收到的签名结果发送给服务端;
接收模块,用于接收所述智能密钥设备发送的签名结果;
所述智能密钥设备包括:
接收模块,用于接收所述客户端发送的所述第二信息和所述第一摘要值;
输出模块,用于输出所述第二信息给用户;
判断模块,用于判断在预定的时间内是否接收到所述用户的确认信息;
摘要计算模块,用于如果在预定的时间内接收到所述用户的确认信息,对所述第二信息计算摘要得到第二摘要值,
补位模块,用于对所述第一摘要值和所述第二摘要值进行组合并补位得到待签名数据;
签名模块,用于将所述待签名数据进行签名后得到签名结果;
发送模块,用于将所述签名结果返回给所述客户端;
所述服务端包括:
接收模块,用于接收签名信息、所述第一信息和第二信息;
验证模块,用于对所述签名信息进行验证。
所述客户端的获得模块具体用于:组织签名原文包;
相应的,所述客户端的判断模块具体用于:判断所述签名原文包是否符合预定的格式;如果符合预定的格式,则所述客户端在固定的字段中查找所述第二信息;如果查找到所述第二信息,则判断结果为存在所述第二信息;如果查找不到所述第二信息,则判断结果为不存在所述第二信息。
所述智能密钥设备还包括:
身份认证模块,用于对用户进行身份认证。
所述智能密钥设备的输出模块具体包括:
显示器,和/或,语音播报单元。
所述验证模块具体包括:
解密单元,用于对所述签名结果进行解密;
去补位单元,用于将解密后的结果去掉补位后,得到所述第一摘要值、第二摘要值和算法标识符;
第一计算单元,用于根据算法标识符中记录的算法即与所述客户端计算第一摘要值相同的算法对所述第一信息计算摘要得到第三哈希值;
第二计算单元,用于根据算法标识符中记录的算法即与所述智能密钥设备计算第二摘要值相同的算法对所述第二信息计算摘要得到第四哈希值;
比较单元,用于将所述第三哈希值与所述第一摘要值,所述第四哈希值与所述第二摘要值进行比较;
当全部相同时,所述签名结果通过验证;
否则,所述签名结果未通过验证。
本发明实施例提供的技术方案带来的有益效果是:
通过将关键信息D2计算摘要后再进行签名,使得传入智能密钥设备中的关键信息D2的长度不受限制,解决了现有技术中智能密钥设备运算的数据长度有限制的问题;整个签名过程简单便于执行,并且每涉及关键信息都会传入智能密钥设备中提供给用户进行确认后才能进行签名操作,黑客服务进行控制用户进行确认动作,极大地增加了签名过程的安全性,保证了用户的利益不受黑客的侵害;并且,由于在智能密钥设备中对关键信息计算摘要后再签名,使得签名数据不受长度的限制。
附图说明
图1是本发明实施例1中提供的签名方法的流程图;
图2是本发明实施例2中提供的签名系统的结构示意图;
图3是本发明实施例2中提供的客户端的结构示意图;
图4是本发明实施例2中提供的智能密钥设备的结构示意图;
图5是本发明实施例2中提供的签名系统的第二种结构示意图;
图6是本发明实施例2中提供的服务端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本实施例提供了一种签名方法,在本实施例中,以用户使用网上银行在客户端计算机(简称客户端)与服务端计算机(简称服务端)之间进行网上交易的过程为例,与客户端相连的USB Key使用本发明实施例提供的方法对该过程中涉及到的交易数据进行签名,用以提高网络数据传输的安全性。其中,假设客户端已预先安装了与所使用的网络银行相应的网银控件,以及配合USB Key使用的USB Key软件。在本实施例中,优选地,在签名过程中计算摘要时,使用哈希算法。参见图1,该方法包括:
步骤101:在用户进行网上交易时,用户通过客户端计算机发起网上交易,并接收服务端返回的交易报文;
其中,服务端返回的交易报文可以通过客户端的浏览器等显示出来,提示用户输入交易的相关信息,如帐户、金额、用户名、密码等。
步骤102:客户端的网银控件按照预定的格式将用户输入的交易相关信息组织成签名原文包;
其中,客户端的网银控件组织签名原文包时,可以使用TLV(Tag LengthValue,标签长度值)格式或LV(Length Value,长度值)、DER(DistinguishedEncoding Rules,可辨别编码规则)、嵌套的XML(Extensible Markup Language,可扩展标记语言)格式以及其他格式。本实施例优选地以签名原文包采用TLV格式为例进行说明,客户端的网银控件组织的签名原文包可以如下所示:
110000000251210000000192<?xml version=″1.0″encoding=″GBK″?><TradeData><fieldname=″ACC″value=″″1234567890000000000″DisplayOnScreen=″TRUE″/><field name=″AMT″value=″5.00RMB″DisplayOnScreen=″TRUE″/></TradeData>220000000035ACC:1234567890000000000 AMT:5.00RMB
步骤103:客户端的USB Key软件接收网银控件生成的签名原文包,并对签名原文包进行解包;
其中,USB Key软件可以向客户端的上层应用程序(如浏览器、网银控件等)提供微软定义的CryptoAPI接口,计算机上层应用通过USB Key软件与USBKey进行通信,并向上层应用提供加密服务的接口,例如对网银控件下发的签名原文包进行处理,对指定的数据进行哈希、签名,并通过字符串命令的形式即APDU向USB Key下发各种指令以及数据,接收USB Key向客户端返回的数据,完成与USB Key的通信,还提供了通过USB Key软件对USB Key进行配置的功能;
步骤104:客户端判断签名原文包中是否包括关键信息;
如果不存在,执行步骤105;
如果存在,执行步骤106。
其中,客户端判断签名原文包中是否包括关键信息的具体方法可以包括:
客户端查找签名原文包中的固定字段,提取签名原文包中待签名的交易信息和关键信息。以签名原文包为TLV格式为例:
TLV格式将报文分为三个字段,第一字段为标识,第二字段为报文长度,第三字段为报文内容;其中,第一、第二字段的长度是固定的,第三字段的长度不定,并且可以采用多层嵌套。
以步骤102中的签名原文包为例:
“11”为整个签名原文包的标识,占用两个字节的字段长度,“0000000251”为签名原文包的长度,占用十个字节的字段长度,其余为待签名的数据。
其中,在待签名数据中使用了嵌套的TLV格式,分为交易信息(明文数据)和关键信息。
“21”为交易明文的标识,“0000000192”为交易明文数据的长度,
<?xml version=″1.0″encoding=″GBK″?><TradeData><field name=″ACC″value=″1234567890000000000″DisplayOnScreen=″TRUE″/><field name=″AMT″value=″5.00RMB″DisplayOnScreen=″TRUE″/></TradeData>为XML格式的交易信息,在本实施例中,为了便于标记,将该信息记为D1;
“22”为关键信息的标识,说明在签名原文包中存在关键信息,“0000000035”为关键信息的长度,“ACC:1234567890000000000AMT:5.00RMB”为关键信息的内容,在本实施例中,为了便于标记,将该信息记为D2;需要说明的是,当签名原文包的相应字段中不存在标识“22”时,说明在签名原文包中不存在关键信息。
还需要说明的是,签名原文包是可以进行自定义更改的,并且,还可以将“<?xml version=″1.0″encoding=″GBK″?><TradeData><field name=″ACC″value=″1234567890000000000″DisplayOnScreen=″TRUE″/><field name=″AMT″value=″5.00RMB″DisplayOnScreen=″TRUE″/></TradeData>220000000035ACC:1234567890000000000AMT:5.00RMB”作为交易信息D1,即交易信息D1可以包括关键信息D2。
步骤105:执行普通签名操作流程,结束;
其中,由于不存在关键信息,即不存在交易的关键数据,因此只需对交易信息使用普通的签名流程进行操作,直接对签名原文包使用普通的签名流程进行签名。主要的操作流程包括:
客户端计算机调用USB Key软件中的接口,设置哈希算法,一般可以为MD5、SHA-1等,使用设置的哈希算法对签名原文包进行哈希,将哈希值传入智能密钥设备USB Key内,USB Key对传入的数据进行哈希后,使用私钥进行加密(也可以不哈希,直接使用私钥进行加密运算),得到签名结果。客户端计算机将签名结果发送给服务端计算机进行验证,利用这种处理方法,可以达到本发明与普通USB Key签名方法的兼容性。
其中,执行普通的签名流程还可以为:客户端将签名原文包发送给USBKey,USB Key对签名原文包进行哈希运算,并使用私钥进行加密运算,得到签名结果并返回给客户端;
其中,步骤105还可以为:通过客户端向用户报错。
步骤106:客户端对交易信息D1进行哈希,得到哈希值H1;
具体的,客户端可以首先调用USB Key软件提供的接口并传入哈希算法标识符,对哈希算法进行设置,算法设置完成后,客户端使用设置的算法对交易信息D1进行哈希,得到哈希值H1。
其中,对交易信息D1进行哈希可以使用MD2、MD5、SHA-1、SHA-256等算法,也可以使用上述两种或几种算法的结合算法,本实施例以将哈希算法设置为SHA-1为例。
这里需要说明的是,在客户端对交易信息D1进行哈希之前,该方法还可以包括如下步骤:验证用户的身份。
其中,可以采用验证PIN码、或用户的生物特征等方式对用户的身份进行验证,这里以严重PIN码为例进行说明:
Step1:客户端提示用户输入PIN码,并通过客户端的键盘接收用户输入的PIN码;
Step2:客户端向USB Key发出验证PIN码的指令;
Step3:USB Key对用户输入的PIN码进行验证,并返回验证结果;
如果验证结果正确,则执行步骤106;
如果验证结果错误,则提示用户PIN码错误,规定失败次数内用户可以继续输入PIN码,否则退出。
在本发明中,可以采取每次签名都验证用户PIN码的方式,也可以采取只验证一次用户PIN码的方式。
步骤107:客户端将关键信息D2附加在哈希值H1后发送给USB Key,并请求USB Key对交易信息D1进行哈希;
在本实施例中,客户端可以通过USB Key软件的APDU(字符串命令)发送哈希命令给USB Key,其中,该APDU指令的格式通常为“操作指令+操作数据”,还可以包括操作数据长度等其他参数。
其中,客户端发送命令给USB Key,对哈希算法进行设置,可以优选根据步骤106中所使用的算法进行设置。如步骤106中使用SHA-1算法进行哈希,此步骤107也可优选使用SHA-1算法进行哈希。
在客户端发送D2和H1的过程中,将D2附加在H1后进行发送,由于关键信息D2的长度不受限制,当关键信息D2的长度超过一条APDU的长度限制时,可以采取对关键信息D2分段,使用多条APDU的方式进行发送;
其中,客户端向USB Key发送H1和D2时,也可以将H1附加在D2后进行发送,发送时D2和H1的顺序由客户端和服务端共同协定。
步骤108:智能密钥设备接收到客户端发送的数据,解析数据,得到并显示关键信息D2,同时提示用户进行确认,判断是否在预定的时间内接收到用户确认正确的信息;
如果在预定的时间内接收到用户的确认正确的信息,则执行步骤109;
如果接收到用户的取消信息,或在预定的时间内没有接到用户输入的任何信息,则执行步骤113。
其中,当智能密钥设备接收到的是多条APDU发送的数据时,智能密钥设备对数据进行拼接、解析后,得到关键信息D2。
本实施例所述的智能密钥设备均带有显示器(和/或语音提示功能)及确认键,其中,当智能密钥设备解析出关键信息D2时,会将其显示在显示器上(或使用语音播报的方式提示用户进行确认),并等待用户的确认信息。该智能密钥设备还可以设置上翻、下翻按键,用于当显示器不能在一个页面内将关键信息完全显示时,使用上翻、下翻键查看全部关键信息。
步骤109:智能密钥设备对关键信息D2进行哈希得到哈希值H2;
在本实施例中,智能密钥设备对关键信息D2进行哈希可以使用MD2、MD5、SHA-1、SHA-256等算法,也可以使用上述算法中的两种或几种的结合进行哈希,所使用的算法还可以通过客户端计算机下发指令进行设置,优选地,使用与步骤106中计算H1的算法相同的SHA-1对D2进行哈希,得到哈希值H2。
步骤110:智能密钥设备根据欲使用的密钥长度对哈希值H1和H2进行补位,得到待签名数据;
智能密钥设备根据欲使用的密钥长度对H1和H2进行补位。其中,补位的算法有很多,例如可以按照PKCS#1标准对H1和H2进行补位,补位结果为“0001FF......FF 00 30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14+H1+H2”;也可以采用自定义算法进行补位,,在补位的过程中加入算法标识符,对计算H1、H2的算法进行标识,以使得服务端可以知道验证H1、H2时需使用何种算法,在本实施例中,优选地,H1、H2均使用SHA-1算法,相应的算法标识符为“2B0E 03 02 1A 05 00”标识。
步骤111:智能密钥设备对待签名数据进行签名,得到签名结果并返回给客户端;
本实施例中,优选使用1024位的密钥对补位后的待签名数据进行私钥加密运算,得到签名结果,并通过客户端发送给服务端进行验证。
步骤112:服务端对接收到的签名结果进行验证;
其中,验证的过程具体可以为:
服务端接收客户端发送的签名结果及交易信息D1和关键信息D2;
对签名结果进行解密;
根据PKCS#1标准去掉补位得到两个签名结果H1、H2和算法标识符,并根据算法标识符得到计算H1和H2时所使用的算法;
分别采取与客户端计算H1和智能密钥设备计算H2时相同的哈希算法对D1、D2进行哈希,得到H1’和H2’;
将H1’和H2’分别与H1和H2进行比对;
如果全部相同,则验证结果为正确;
否则,签名不正确,不能进行交易。
步骤113:不进行签名,返回错误信息。
其中,智能密钥设备返回客户端相应的错误信息,错误信息可以为提示用户关键数据错误,或超时未响应等。
本发明实施例提供的签名方法,通过将关键信息D2哈希后再进行签名,使得传入智能密钥设备中的关键信息D2的长度不受限制,解决了现有技术中智能密钥设备运算的数据长度有限制的问题;整个签名过程简单便于执行,并且每涉及关键信息都会传入智能密钥设备中提供给用户进行确认后才能进行签名操作,黑客服务进行控制用户进行确认动作,极大地增加了签名过程的安全性,保证了用户的利益不受黑客的侵害;并且,由于在智能密钥设备中对关键信息进行哈希后再签名,使得签名数据不受长度的限制。
实施例2
参照实施例1中对于方法实现的描述,本实施例提供了一种签名系统,参见图2,该系统包括:客户端201和与客户端201相连的智能密钥设备202。本实施例中与实施例1相同,将摘要算法设置为哈希算法。
参见图3,客户端201包括:
获得模块201A,用于获得签名原文包;
判断模块201B,用于判断签名原文包中是否存在第二信息;
哈希模块201C,用于当存在第二信息时,对第一信息进行哈希得到第一哈希值;
发送模块201D,用于发送第二信息和第一哈希值给智能密钥设备;
接收模块201E,用于接收智能密钥设备发送的签名结果;
参见图4,智能密钥设备202包括:
接收模块202A,用于接收客户端发送的第二信息和第一哈希值;
输出模块202B,用于输出第二信息给用户;
判断模块202C,用于判断在预定的时间内是否接收到用户的确认信息;
哈希模块202D,用于如果在预定的时间内接收到用户的确认信息,对第二信息进行哈希得到第二哈希值,
补位模块202E,用于对第一哈希值和第二哈希值进行组合并补位得到待签名数据;
签名模块202F,用于将待签名数据进行签名后得到签名结果;
发送模块202G,用于将签名结果返回给客户端。
其中,客户端201的获得模块201A具体用于:组织签名原文包;
相应的,客户端201的判断模块201B具体用于:判断签名原文包是否符合预定的格式;如果符合预定的格式,则客户端201在固定的字段中查找第二信息;如果查找到第二信息,则判断结果为存在第二信息;如果查找不到第二信息,则判断结果为不存在第二信息。
进一步地,智能密钥设备202还包括:
身份认证模块,用于对用户进行身份认证。
其中,智能密钥设备202的输出模块202B具体包括:
显示器,和/或,语音播报单元。
进一步地,参见图5,系统还包括:服务端203;
相应的,客户端201的发送模块201D还用于将签名信息、第一信息和第二信息发送给服务端203;
参见图6,服务端203具体包括:
接收模块203A,用于接收签名信息、第一信息和第二信息;
验证模块203B,用于对签名信息进行验证。
其中,验证模块具体包括:
解密单元,用于对签名结果进行解密;
去补位单元,用于将解密后的结果去掉补位后,得到第一哈希值和第二哈希值;
第一计算单元,用于利用与智能密钥设备计算第一哈希值相同的算法对第一信息进行哈希运算得到第三哈希值;
第二计算单元,用于利用与智能密钥设备计算第二哈希值相同的算法对第二信息进行哈希运算得到第四哈希值;
比较单元,用于将第三哈希值与第一哈希值,第四哈希值与第二哈希值进行比较;
当全部相同时,签名结果通过验证;
否则,签名结果未通过验证。
本发明实施例提供的签名系统,通过将关键信息D2哈希后再进行签名,使得传入智能密钥设备中的关键信息D2的长度不受限制,解决了现有技术中智能密钥设备运算的数据长度有限制的问题;整个签名过程简单便于执行,并且每涉及关键信息都会传入智能密钥设备中提供给用户进行确认后才能进行签名操作,黑客不能控制用户进行确认动作,极大地增加了签名过程的安全性,保证了用户的利益不受黑客的侵害;并且,由于在智能密钥设备中对关键信息进行哈希后再签名,使得签名数据不受长度的限制。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种签名方法,其特征在于,所述方法包括:
客户端获得签名原文包;
判断所述签名原文包中是否存在第二信息;
当存在所述第二信息时,所述客户端对第一信息计算摘要得到第一摘要值;所述客户端发送所述第二信息和所述第一摘要值给与其相连的智能密钥设备;所述智能密钥设备输出所述第二信息给用户,并判断是否接收到所述用户的确认信息;如果在预定的时间内接收到所述用户的确认信息,所述智能密钥设备对所述第二信息计算摘要得到第二摘要值,对所述第一摘要值和所述第二摘要值进行组合并补位得到待签名数据,将所述待签名数据进行签名后得到签名结果返回给所述客户端,服务端接收到客户端发送的签名结果并进行验证;否则,结束操作;
当不存在所述第二信息时,所述客户端对所述签名原文包进行摘要计算并将计算得到的摘要值发送给所述智能密钥设备,所述智能密钥设备对接收到的所述摘要值进行签名得到签名结果,并将所述签名结果返回给所述客户端。
2.如权利要求1所述的方法,其特征在于,所述客户端获得签名原文包具体包括:
客户端组织所述签名原文包;
相应的,所述判断所述签名原文包中是否存在第二信息,具体包括:
所述客户端判断所述签名原文包是否符合预定的格式;
如果符合预定的格式,则所述客户端在固定的字段中查找所述第二信息;如果查找到所述第二信息,则判断结果为存在所述第二信息;如果查找不到所述第二信息,则判断结果为不存在所述第二信息;
如果不符合预定的格式,直接对所述签名原文包进行签名,结果返回给所述客户端。
3.如权利要求1所述的方法,其特征在于,所述客户端对第一信息计算摘要之前,所述方法还包括:
所述智能密钥设备对用户进行身份认证;
当所述用户通过身份认证时,所述客户端对所述第一信息计算摘要;
当所述用户未通过身份认证时,结束所述方法。
4.如权利要求3所述的方法,其特征在于,所述身份认证的方法包括:
PIN码验证,和/或,生物特征识别验证。
5.如权利要求1所述的方法,其特征在于,所述智能密钥设备输出所述第二信息给用户,具体包括:
所述智能密钥设备通过显示器将所述第二信息输出给所述用户;
和/或
所述智能密钥设备通过语音播报将所述第二信息输出给所述用户。
6.如权利要求1所述的方法,其特征在于,当不存在所述第二信息时,所述方法还包括:
所述客户端将所述签名原文包发送给所述智能密钥设备,所述智能密钥设备对所述签名原文包进行摘要计算并签名,得到签名结果并返回给所述客户端。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:所述客户端发送所述签名结果、所述第一信息和所述第二信息给所述服务端,所述服务端对所述签名结果进行验证;
当所述签名结果通过验证时,所述签名正确;
当所述签名结果未通过验证时,所述签名失败。
8.如权利要求7所述的方法,其特征在于,所述服务端对所述签名结果进行验证,具体包括:
所述服务端对所述签名结果进行解密;
将解密后的结果去掉补位后,得到所述第一摘要值、第二摘要值和算法标识符;
所述服务端根据算法标识符中记录的算法即与所述客户端计算第一摘要值相同的算法对所述第一信息计算摘要得到第三摘要值;
所述服务端根据算法标识符中记录的算法即与所述智能密钥设备计算第二摘要值相同的算法对所述第二信息计算摘要得到第四摘要值;
将所述第三摘要值与所述第一摘要值,所述第四摘要值与所述第二摘要值进行比较;
当全部相同时,所述签名结果通过验证;
否则,所述签名结果未通过验证。
9.如权利要求1至8中任一权利要求所述的方法,其特征在于,所述第一信息为交易信息,所述第二信息为关键信息。
10.如权利要求1至8中任一权利要求所述的方法,其特征在于,所述计算摘要所使用的算法包括哈希算法,其中哈希算法包括如下算法中的一个或多个的组合:MD2、MD5、SHA-1、SHA-256、SHA-512。
11.一种签名系统,其特征在于,所述系统包括:客户端、与所述客户端相连的智能密钥设备和服务端;
所述客户端包括:
获得模块,用于获得签名原文包;
判断模块,用于判断所述签名原文包中是否存在第二信息;
摘要计算模块,用于当存在所述第二信息时,对第一信息计算摘要得到第一摘要值;
发送模块,用于发送所述第二信息和所述第一摘要值给所述智能密钥设备,用于将所述第一信息、所述第二信息、接收到的签名结果发送给服务端;
接收模块,用于接收所述智能密钥设备发送的签名结果;
所述智能密钥设备包括:
接收模块,用于接收所述客户端发送的所述第二信息和所述第一摘要值;
输出模块,用于输出所述第二信息给用户;
判断模块,用于判断在预定的时间内是否接收到所述用户的确认信息;
摘要计算模块,用于如果在预定的时间内接收到所述用户的确认信息,对所述第二信息计算摘要得到第二摘要值,
补位模块,用于对所述第一摘要值和所述第二摘要值进行组合并补位得到待签名数据;
签名模块,用于将所述待签名数据进行签名后得到签名结果;
发送模块,用于将所述签名结果返回给所述客户端;
所述服务端包括:
接收模块,用于接收签名信息、所述第一信息和第二信息;
验证模块,用于对所述签名信息进行验证。
12.如权利要求11所述的系统,其特征在于,所述客户端的获得模块具体用于:组织签名原文包;
相应的,所述客户端的判断模块具体用于:判断所述签名原文包是否符合预定的格式;如果符合预定的格式,则所述客户端在固定的字段中查找所述第二信息;如果查找到所述第二信息,则判断结果为存在所述第二信息;如果查找不到所述第二信息,则判断结果为不存在所述第二信息。
13.如权利要求11所述的系统,其特征在于,所述智能密钥设备还包括:
身份认证模块,用于对用户进行身份认证。
14.如权利要求11所述的系统,其特征在于,所述智能密钥设备的输出模块具体包括:
显示器,和/或,语音播报单元。
15.如权利要求11所述的系统,其特征在于,所述验证模块具体包括:
解密单元,用于对所述签名结果进行解密;
去补位单元,用于将解密后的结果去掉补位后,得到所述第一摘要值、第二摘要值和算法标识符;
第一计算单元,用于根据算法标识符中记录的算法即与所述客户端计算第一摘要值相同的算法对所述第一信息计算摘要得到第三摘要值;
第二计算单元,用于根据算法标识符中记录的算法即与所述智能密钥设备计算第二摘要值相同的算法对所述第二信息计算摘要得到第四摘要值;
比较单元,用于将所述第三摘要值与所述第一摘要值,所述第四摘要值与所述第二摘要值进行比较;
当全部相同时,所述签名结果通过验证;
否则,所述签名结果未通过验证。
CN200910090271XA 2009-08-04 2009-08-04 一种签名方法和系统 Active CN101631022B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910090271XA CN101631022B (zh) 2009-08-04 2009-08-04 一种签名方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910090271XA CN101631022B (zh) 2009-08-04 2009-08-04 一种签名方法和系统

Publications (2)

Publication Number Publication Date
CN101631022A CN101631022A (zh) 2010-01-20
CN101631022B true CN101631022B (zh) 2012-06-27

Family

ID=41575983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910090271XA Active CN101631022B (zh) 2009-08-04 2009-08-04 一种签名方法和系统

Country Status (1)

Country Link
CN (1) CN101631022B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103839097A (zh) * 2014-03-20 2014-06-04 武汉信安珞珈科技有限公司 一种基于数字签名的二维码生成方法和装置
CN103997408A (zh) * 2014-04-16 2014-08-20 武汉信安珞珈科技有限公司 通过使用图形图像传递认证数据实现的认证方法和系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980471B (zh) * 2010-10-08 2012-08-29 中国科学院计算机网络信息中心 数字签名方法、数字签名的验证方法、装置及系统
CN103067335B (zh) * 2011-10-18 2016-01-27 中国移动通信集团公司 一种非接触方式实现信息交互的方法、相关设备及系统
CN102708069B (zh) * 2012-05-12 2016-11-16 北京深思数盾科技股份有限公司 安卓系统中内存数据的保护方法
CN102970145B (zh) * 2012-12-21 2015-01-14 飞天诚信科技股份有限公司 一种签名方法及装置
CN103346886B (zh) * 2013-07-01 2016-12-28 天地融科技股份有限公司 一种发送签名数据的方法和电子签名令牌
CN104992329B (zh) * 2015-05-14 2018-05-11 飞天诚信科技股份有限公司 一种安全下发交易报文的方法
CN105162594B (zh) * 2015-07-31 2018-03-30 飞天诚信科技股份有限公司 一种快速签名方法及签名设备
CN105721413B (zh) 2015-09-08 2018-05-29 腾讯科技(深圳)有限公司 业务处理方法及装置
CN105162605A (zh) * 2015-09-28 2015-12-16 东南大学 一种数字签名及认证方法
CN106789075B (zh) * 2016-12-27 2019-12-24 艾体威尔电子技术(北京)有限公司 Pos数字签名防切机系统
CN109246053B (zh) * 2017-05-26 2022-05-24 阿里巴巴集团控股有限公司 一种数据通信方法、装置、设备和存储介质
CN110830257B (zh) * 2018-08-14 2023-01-03 珠海金山办公软件有限公司 一种文件签名方法、装置、电子设备及可读存储介质
CN110378666B (zh) * 2019-06-17 2023-06-23 平安科技(深圳)有限公司 裁决书在线签名处理方法、装置、计算机设备和存储介质
CN112307518B (zh) * 2020-10-16 2024-06-11 神州融安科技(北京)有限公司 签名信息处理、显示方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645288A (zh) * 2003-12-16 2005-07-27 微软公司 确保软件更新仅在特定设备或设备类上安装或运行
CN101009562A (zh) * 2007-02-01 2007-08-01 北京飞天诚信科技有限公司 提高智能密钥设备安全性的方法和系统
CN101013942A (zh) * 2007-01-24 2007-08-08 北京飞天诚信科技有限公司 提高智能密钥设备安全性的方法和系统
CN101409622A (zh) * 2008-11-26 2009-04-15 北京飞天诚信科技有限公司 一种数字签名系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1645288A (zh) * 2003-12-16 2005-07-27 微软公司 确保软件更新仅在特定设备或设备类上安装或运行
CN101013942A (zh) * 2007-01-24 2007-08-08 北京飞天诚信科技有限公司 提高智能密钥设备安全性的方法和系统
CN101009562A (zh) * 2007-02-01 2007-08-01 北京飞天诚信科技有限公司 提高智能密钥设备安全性的方法和系统
CN101409622A (zh) * 2008-11-26 2009-04-15 北京飞天诚信科技有限公司 一种数字签名系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103839097A (zh) * 2014-03-20 2014-06-04 武汉信安珞珈科技有限公司 一种基于数字签名的二维码生成方法和装置
CN103997408A (zh) * 2014-04-16 2014-08-20 武汉信安珞珈科技有限公司 通过使用图形图像传递认证数据实现的认证方法和系统

Also Published As

Publication number Publication date
CN101631022A (zh) 2010-01-20

Similar Documents

Publication Publication Date Title
CN101631022B (zh) 一种签名方法和系统
JP6296060B2 (ja) e文書に署名するための追加的な確認を備えたアナログデジタル(AD)署名を使用する方法
TWI241104B (en) Device, method and system for validating security credentials
CN101221641B (zh) 一种联机交易的安全确认设备及联机交易方法
EP2346207A1 (en) A method for authenticating a trusted platform based on the tri-element peer authentication (tepa)
EP2176986B1 (en) Method of providing assured transactions by watermarked file display verification
WO2003009200A1 (en) Digital notary system and method
CN103167491A (zh) 一种基于软件数字证书的移动终端唯一性认证方法
CN110943844B (zh) 一种基于网页客户端本地服务的电子文件安全签署方法及其系统
CN111460525B (zh) 一种基于区块链的数据处理方法、装置及存储介质
JP2010200381A (ja) データ完全性を確認するための方法およびシステム
CA2355928C (en) Method and system for implementing a digital signature
CN113411188B (zh) 电子合同签署方法、装置、存储介质及计算机设备
CN100589390C (zh) 一种认证方法和认证系统
KR20150011293A (ko) 인스턴트 메신저를 이용한 생체인증 전자서명 서비스 방법
CN101409622B (zh) 一种数字签名系统及方法
CN101296078A (zh) 网络通信中的信息交互确认装置
CN104992329A (zh) 一种安全下发交易报文的方法
CN102844763A (zh) 数字式签署文件的方法、安全装置、系统及计算机程序产品
CN103051618A (zh) 一种终端认证设备和网络认证方法
CN114172923B (zh) 数据传输方法、通信系统及通信装置
JP5135331B2 (ja) 無線通信能力を有するpc用外部署名装置
Kiljan et al. What you enter is what you sign: Input integrity in an online banking environment
CN103825873A (zh) 智能密钥设备、移动终端以及音频数据的传输方法和系统
WO2011060739A1 (zh) 一种安全系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085

Patentee after: Feitian Technologies Co.,Ltd.

Country or region after: China

Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing

Patentee before: Feitian Technologies Co.,Ltd.

Country or region before: China