CN104104505B - 一种电子签名设备及其实现方法及客户端 - Google Patents
一种电子签名设备及其实现方法及客户端 Download PDFInfo
- Publication number
- CN104104505B CN104104505B CN201310116384.9A CN201310116384A CN104104505B CN 104104505 B CN104104505 B CN 104104505B CN 201310116384 A CN201310116384 A CN 201310116384A CN 104104505 B CN104104505 B CN 104104505B
- Authority
- CN
- China
- Prior art keywords
- electronic signature
- client
- reserved
- signature equipment
- information
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种电子签名设备及其实现方法及客户端,其方法包括:电子签名设备基于用户提供的预留字符生成预留信息,并将预留信息预先保存于客户端中;对客户端进行验证时,电子签名设备从客户端获取保存于客户端中的预留信息,并在电子签名设备的显示屏幕上显示预留字符;通过电子签名设备上的物理按键确认预留字符正确后,确认客户端通过验证。本发明克服了现有电子签名工具无法从根本上解决输入数据时的保密性、无法保证使用者信息安全等缺陷。
Description
技术领域
本发明涉及电子签名设备技术领域,尤其涉及一种电子签名设备及其实现方法及客户端。
背景技术
随着网上银行的普及,越来越多的人开始使用这种方便快捷的金融服务。目前,公认的解决网上银行业务客户端的安全的解决方案是使用电子签名设备,如USBKey(USB钥匙)。随着网银由PC机向移动智能终端上的手机银行业务的不断发展,使用户可以直接通过移动智能终端办理银行业务是银行正在大力推行的一项工作。
本发明的发明人在实现本发明的过程中,发现现有技术至少存在如下技术缺陷:
目前的网银系统以及未来的移动支付系统中,均采用独立的电子签名硬件设备,配合客户端上安装的硬件的驱动程序来完成系统所提供功能,如电子交易转账,或电子交易支付。但是,由于客户端是传统的电脑或者智能终端,包括:智能手机,平板电脑,智能电视等,以上这些终端以及所运行的操作系统均存在安全漏洞和隐患,属于不安全环境,因此,驱动电子签名硬件设备的客户端驱动程序就存在着被木马利用或黑客程序所攻击的危险,如果利用一个已经被攻击的客户端驱动程序对电子签名硬件进行操作,那么在控制硬件命令和计算结果时,势必也存在安全上的漏洞,从而导致这个网银系统或移动支付系统的不可靠性存在,给用户带来可能的资金损失。
发明内容
本发明所要解决的技术问题是提供一种电子签名设备及其实现方法及客户端,以克服现有技术中电子签名工具无法从根本上解决输入数据时的保密性、无法保证使用者信息安全等缺陷。
为了解决上述技术问题,本发明提供了一种电子签名设备的实现方法,所述方法包括:
电子签名设备基于用户提供的预留字符生成预留信息,并将所述预留信息预先保存于客户端中;
对客户端进行验证时,所述电子签名设备从所述客户端获取保存于所述客户端中的所述预留信息,并在所述电子签名设备的显示屏幕上显示所述预留字符;
通过所述电子签名设备上的物理按键确认所述预留字符正确后,确认所述客户端通过验证。
进一步的,电子签名设备基于用户提供的预留字符生成预留信息,包括:
所述电子签名设备利用私钥对所述预留字符进行电子签名,并利用预留信息密钥加密所述预留字符及其电子签名,生成所述预留信息。
进一步的,在所述电子签名设备确认所述客户端通过验证后,还包括:
所述电子签名设备生成新的预留信息密钥;
所述电子签名设备利用所述新的预留信息密钥加密所述预留字符及其电子签名,生成新的预留信息,并将其保存于所述客户端中。
进一步的,所述电子签名设备通过如下方式获得所述用户提供的预留字符:
所述电子签名设备生成预留信息更改请求,并使用从所述客户端获得的共享密钥对生成的所述预留信息更改请求进行加密,将加密后的预留信息更改请求以密文形式发送给所述客户端;
所述客户端利用共享密钥解密密文,在所述客户端的屏幕上提示用户输入预留字符,并利用该共享密钥对用户输入的预留字符进行加密后,以密文形式返回给所述电子签名设备;
所述电子签名设备利用所述共享密钥解密密文,获得所述用户提供的预留字符。
进一步的,所述电子签名设备通过以下方式向所述客户端获得所述共享密钥:
所述电子签名设备向所述客户端发送共享密钥请求,并对所述共享密钥请求生成MAC指令;
所述客户端接收到所述共享密钥请求和MAC指令时,通过MAC码验证所述共享密钥请求的有效性后,生成随机数,并选择一个所述电子签名设备支持的算法标识,利用所述电子签名设备的公钥加密所述随机数和选择的所述算法标识后,将加密后的随机数和选择的所述算法标识以密文形式发送给所述电子签名设备;
所述电子签名设备利用私钥解密密文,得到随机数和所述客户端选择的所述算法标识,并基于得到的所述随机数获得所述共享密钥。
进一步的,所述电子签名设备通过以下方式从所述客户端获取保存于所述客户端中的所述预留信息:
所述电子签名设备向所述客户端发送获取预留信息请求;
所述客户端接收到所述电子签名设备的获取预留信息请求时,利用共享密钥加密所保存的所述预留信息后,发送给所述电子签名设备;
所述电子签名设备从所述客户端获取到所述加密后的预留信息时,利用共享密钥进行解密后得到所述预留字符及其电子签名,并对所述电子签名进行验证。
进一步的,如果未通过所述电子签名设备上的物理按键确认所述预留字符正确,则所述电子签名设备终止对所述客户端的验证过程。
进一步的,所述方法还包括:
所述客户端连接到所述电子签名设备时,向所述电子签名设备获取所述电子签名设备唯一信息;
所述客户端利用所述电子签名设备唯一信息和加密密钥因子,组成加密密钥1;
所述客户端生成电子签名设备PIN口令验证命令并生成MAC,利用对称算法1和所述加密密钥1加密所述PIN口令验证命令和MAC后形成密文,发送给所述电子签名设备;
所述电子签名设备利用设备唯一信息和解密密钥因子组成解密密钥1,解密接收到的密文,并验证所述PIN口令验证命令的有效性,在所述电子签名设备的显示屏幕上提示用户输入PIN口令;并根据用户通过物理按键输入的PIN口令,完成内部PIN口令验证,验证通过后形成PIN验证通过信息,并形成MAC;
所述电子签名设备利用设备唯一信息和加密密钥因子,组成加密密钥1,利用对称算法1和该加密密钥1对PIN验证通过信息和MAC进行加密,形成密文发送给所述客户端;
所述客户端利用所述电子签名设备唯一信息和解密密钥因子组成解密密钥1,解密密文并验证命令的有效性,在获得所述电子签名设备发送的PIN口令验证通过信息后,所述客户端的驱动程序进入下一步程序功能的调入状态。
本发明还提供了一种电子签名设备,包括存储模块、电源控制模块、电池,其中,所述电子签名设备还包括:电子签名模块,显示单元和确认单元,
所述电子签名模块,基于用户提供的预留字符生成预留信息,并将所述预留信息预先保存于客户端中;在对客户端进行验证时,获取保存于所述客户端中的所述预留信息,并通过所述显示单元显示所述预留字符;以及,在所述确认单元确认所述预留字符正确后,确认所述客户端通过验证;
所述显示单元,在所述电子签名模块的控制下进行信息的显示;
所述确认单元,为用户提供输入信息的物理按键。
进一步的,所述电子签名模块,利用私钥对所述预留字符进行电子签名,并利用预留信息密钥加密所述预留字符及其电子签名,生成所述预留信息。
进一步的,所述电子签名模块在确认所述客户端通过验证后,还生成新的预留信息密钥,并利用所述新的预留信息密钥加密所述预留字符及其电子签名,生成新的预留信息,并将其保存于所述客户端中。
进一步的,所述电子签名模块,通过如下方式获得所述用户提供的预留字符:
所述电子签名设备生成预留信息更改请求,并使用从所述客户端获得的共享密钥对生成的所述预留信息更改请求进行加密,将加密后的预留信息更改请求以密文形式发送给所述客户端;
所述电子签名模块接收到所述客户端以密文形式返回的利用共享密钥加密后的用户输入的预留字符时,利用所述共享密钥解密密文,获得所述用户提供的预留字符。
进一步的,所述电子签名模块,通过如下方式从所述客户端获取保存于所述客户端中的所述预留信息:
所述电子签名模块生成获取预留信息请求,并使用从所述客户端获得的共享密钥对生成的所述获取预留信息请求进行加密,将加密后的获取预留信息请求以密文形式发送给所述客户端;
所述电子签名模块接收到所述客户端以密文形式返回的利用共享密钥加密后的用户输入的预留信息时,利用共享密钥进行解密后得到所述预留字符及其电子签名,并对所述电子签名进行验证。
本发明还提供了一种电子签名客户端,所述客户端包括:
预留信息保存模块,接收电子签名设备发送的预留信息并进行保存;接收到所述电子签名设备的获取预留信息请求时,将所保存的所述预留信息加密后,发送给所述电子签名设备;
验证请求模块,向所述电子签名设备发起客户端验证请求。
进一步的,所述的客户端,还包括:
预留字符输入模块,提供用户输入预留字符的界面,并对用户输入的预留字符进行加密后,以密文形式返回给所述电子签名设备。
与现有技术相比,上述方案至少具有如下有益效果:
上述方案中提供了一种电子签名设备及实现方法,其利用用户所拥有的独立且唯一的电子签名设备与客户端驱动程序进行安全验证,通过预留在客户端程序中的预留信息以及对应的一整套保护方法,让用户可以识别自己预留信息,以保护客户端程序的可靠性;
采用本申请方案,保证了客户端驱动程序与电子签名设备一一对应,防止用户资料的泄露,消除PC和移动智能终端网上银行安全隐患,提升网上银行系统和移动支付系统的安全性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例的电子签名设备的结构示意图;
图2为本发明实施例的电子签名设备与客户端驱动程序验证流程图;
图3为本发明实施例的实现电子签名设备与客户端驱动程序上预留信息的流程图;
图4为本发明实施例的实现电子签名设备的PIN口令校验的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,本发明实施例的电子签名设备主要包括如下模块/单元:存储模块10、通讯模块20、设备开关30、输入输出模块40、电子签名模块50、电池61和电源控制模块62。
存储模块10,为电子签名设备内置的存储区域,此区域中存储着嵌入式操作系统程序,字库字模文件等,同时出于安全性的考虑,此部分存储的信息一经生产写入,其内部信息将不可更改,以此保证电子签名设备的安全性。此外,存储模块10还负责电子签名设备的数字证书,公私钥的存储与使用,并提供数字证书生成、使用,下载,更新,废除等功能。其中对于电子签名设备中的私钥采用安全保护,使其永远无法脱离本电子签名设备的管理,一旦外界企图利用任何方式对私钥进行读取时,电子签名设备将自动销毁本电子签名设备内的一切信息。
通讯模块20,负责设备与PC或者移动智能终端连接及通讯,该通讯模块20可采用多种通信方式,如音频,USB,蓝牙等。其中音频和蓝牙需要电池61供电;而USB可以采用外部供电方式,如PC上的USB接口。
优选地,该通讯模块20为音频调解通讯模块时,在此模块中完成音频信号由模拟信号和数字信号的相互调制转化,从而实现电子签名设备与移动智能终端的以音频接口方式连接。其过程可包括:当由移动智能终端发送音频信号到设备时,音频调解通讯模块前端接收到声音的模拟信号,转换成数字信号,随后将数字信号发送给电子签名设备内的中央控制模块(或中央处理单元)进行处理;待电子签名设备内的中央控制模块处理完成后发送至音频调解通讯模块,音频调解通讯模块将数字信号转换成模拟信号,以音频信号发送到移动智能终端。音频调解通讯模块可通过双音多频(Dual Tone Multi Frequency,简称为DTMF)方式与移动智能终端通信连接进行数据交换,完成与移动智能终端通信的通讯协议转换成所述中央控制模块内部的数据交换协议,以及中央控制模块与通信连接后的移动智能终端进行数据交换。
优选地,该通讯模块20为USB通讯模块时,采用中央控制模块内的芯片所提供USB通讯引脚与USB接口电路连接通讯即可。
需要说明的是,对于通信模块20,上述仅例举了音频和USB接口的实现方式,但并不排除采用非接触方式进行通信,如蓝牙或NFC等。特别注意的是除USB接口可以通过USB接口本身进行外部获得电力以外,其他接口均需要本发明中的硬件的内部电池供电。
电源控制模块62:负责电子签名设备的电源管理功能,电源控制模块62与其他各模块连接,当电子签名设备与移动智能设备进行建立连接后,电源控制模块62启动内部电池61为各模块提供电力;此外,当电子签名设备通过USB接口与PC(计算机)建立连接后,该电源控制模块62还可采用由计算机USB接口提供的电力为各模块供电,并对电池61进行充电。
电池61:负责为电子签名设备提供电能。电源控制模块62与电池61相连接,电池61受到电源控制模块62管理。
本实施例中,输入输出模块40进一步可包括显示单元41和确认单元42,其中:
显示单元41,主要负责电子签名设备的人机交互的信息显示部分的完成。此显示单元41可采用目前LCD,OLED等屏幕技术实现,简单方便,其主要功能是将用户进行网银交易中的敏感信息进行显示,诸如:姓名,账户,金额,或预留字符信息等。使用者可以通过该显示单元41来浏览交易信息,如姓名,账户和金额,或预留字符信息等,但不局限与此。
确认单元42,主要负责电子签名设备的人机交互的信息物理确认部分的完成。其可以包括翻页键,确认取消功能键,以及数字键,但不仅局限于此。作为电子签名设备的外围输入设备,使用者通过其按键可以进行PIN口令的输入,电子签名的控制,预留信息确认等。物理按键的操作信息/信号可通过电子签名设备内的电路部分传输给中央控制模块进行处理。该确认单元42在具体实现时可采用诸如光感按键,薄膜按键,锅仔片等方式完成,但不仅限于此。
此外,显示单元41还可设置指示灯,该指示灯负责电子签名设备的所处工作状态的提示,其可采用LED器件实现,并可通过有节奏的明暗变化,将电子签名设备所处的工作状态表现出来,如目前电子签名设备需要充电,则指示灯采用1秒点亮一次的方式提示;当电子签名设备处于正常工作模式,则指示灯采用长点亮的方式提示;当电子签名设备处于电子签名的操作时,则指示灯采用急速闪亮的方式提示等。指示灯的提示方式很多,此处不再进行过多阐述。
设备开关30,该模块为可选模块,由于电子签名设备有内置电池,优选地,电子签名设备中还设置有该设备开关30,负责设备的开启与关闭,从而实现节约电能的功能。例如,当设备开关30处于关闭状态时,电源控制模块62采用由计算机USB接口提供的电力为各模块供电,并对电池61进行充电。
电子签名模块50,负责电子签名设备的电子签名操作,只用当用户通过使用电子签名设备上的确认单元42进行人为确认时,该电子签名模块50才可以进行工作,而无法通过任何非物理方式,如程序逻辑和软件方式进行此电子签名模块的调用处理;电子签名模块50还负责电子签名设备的密钥管理及存储,并提供密钥生成、使用,下载,更新,废除等功能。
其中,客户端驱动程序安装在用户的终端上,其是通过发送APDU命令码操作电子签名设备,APDU命令是智能卡上的命令统称,其主要由命令字,控制信息,命令内容信息和命令长度所组成。由于APDU命令可以自由组合和厂家定义,因此,本申请中不规定APDU的具体内容。
其中,本申请中所述的MAC,其是针对命令的校验码,使用MAC可以保证命令的完整性和随机性,由于MAC计算是一种标准计算,因此,本申请下述流程中不再具体描述使用的MAC的计算过程。
此外,本发明实施例中还提供了一种电子签名客户端,所述客户端包括:
预留信息保存模块,接收电子签名设备发送的预留信息并进行保存;接收到所述电子签名设备的获取预留信息请求时,将所保存的所述预留信息加密后,发送给所述电子签名设备;
验证请求模块,向所述电子签名设备发起客户端验证请求。
进一步的,所述的客户端,还可包括:预留字符输入模块,提供用户输入预留字符的界面,并对用户输入的预留字符进行加密后,以密文形式返回给所述电子签名设备。
如图2所示是本发明实施例的实现电子签名设备与客户端驱动程序验证流程图,其主要步骤描述如下:
步骤201、客户端驱动程序发起客户端验证请求;
其中,在执行此步骤之前,客户端须已经完成针对电子签名设备的PIN口令校验过程,只有当PIN校验成功后,此步骤才可以正常执行。
步骤202、电子签名设备发送证书验证命令+MAC指令;
在此,电子签名设备接到客户端驱动程序发过来的客户端验证请求后,进行如下步骤:
202a)获得设备内置的数字证书、可支持的算法标识;
202b)组成证书验证命令,并生成MAC。
随后向客户端驱动程序发送证书验证命令+MAC指令。
步骤203、客户端驱动程序返回数字证书验证结果。
在此,客户端驱动程序接到电子签名设备发过来的发送证书验证命令+MAC指令,进行如下步骤:
203a)验证命令的有效性,通过MAC码对命令进行验证。
203b)验证数字证书的有效性,在此是标准的数字证书验证过程,包括:数字证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能否正确解开数字证书的“发行者的数字签名”,验证是否属于同一系统所发放的证书等。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行下一步。
随后向电子签名设备返回数字证书验证结果。
步骤204、电子签名设备发送共享密钥请求+MAC指令;
在此,电子签名设备进行如下步骤:
204a)形成共享密钥请求命令,并生成MAC;
204b)随后向客户端发送共享密钥请求+MAC指令。
步骤205、客户端驱动程序返回共享密钥和所选择的算法标识的密文结果。
在此,客户端进行如下步骤:
205a)验证命令的有效性,通过MAC码对命令进行验证;
205b)生成随机数1,并选择一个电子签名设备所支持的算法标识;
205c)利用电子签名设备的公钥加密随机数1和所选择的算法标识;
随后向电子签名设备返回共享密钥和所选择的算法标识密文结果。
步骤206、电子签名设备发送获取预留信息请求+MAC的密文指令;
在此,电子签名设备进行如下步骤:
206a)利用私钥解密密文;
206b)获得随机数1和客户端所选择的算法标识,形成共享密钥,并利用彼此选择的算法进行随后的通讯加解密算法使用;
206c)形成获取预留信息请求命令,并生成MAC;
206d)利用共享密钥加密获取预留信息请求命令,并生成MAC,生成密文。
随后向客户端驱动程序发送获取预留信息请求+MAC的密文指令。
步骤207、客户端驱动程序返回预留信息的密文结果。
在此,客户端驱动程序进行如下步骤:
207a)利用共享密钥解密密文;
207b)验证命令的有效性,通过MAC码对命令进行验证;
207c)读取客户端驱动程序所保留的预留信息(即电子签名设备在发送本次获取预留信息请求之前保存于客户端的预留信息);
207d)利用共享密钥加密预留信息。
随后向电子签名设备返回加密后的预留信息的密文结果。
步骤208、电子签名设备发送预留信息修改请求+MAC的密文指令;
208a)利用共享密钥解密密文;
208b)获得预留信息;
208c)利用上次预留信息时预留信息密钥1,解密预留信息;
208d)获得预留字符和电子签名设备利用自己的私钥对预留字符进行的电子签名信息;
208e)验证预留字符的电子签名的有效性,可采用验证电子签名的方法;
208f)如果验证通过,则在电子签名设备的屏幕上显示预留字符;
208g)用户通过设备上的确认按键确认预留字符的正确性,如果不正确,电子签名设备立即停止与客户端程序的通讯,并返回错误信息;
208h)如果以上步骤均正确,电子签名设备生成随机数2,并作为预留信息密钥1'(用于下一次解密预留信息使用),并保存在电子签名设备内;
208i)加密预留字符和电子签名信息,形成新的预留信息;
208j)形成预留信息请求命令,并对其生成MAC;
208k)利用共享密钥加密预留信息请求命令和MAC,生成密文。
随后向客户端驱动程序发送预留信息修改请求+MAC的密文指令。
步骤209、客户端驱动程序返回预留信息修改成功结果。
在此,客户端驱动程序进行如下步骤:
209a)利用共享密钥解密密文;
209b)通过MAC验证命令的有效性;
209c)删除原预留信息,并将新的预留信息改写和保存于客户端驱动程序内。
随后向电子签名设备返回预留信息修改成功结果。
通过以上步骤,完成电子签名设备与客户端驱动程序的验证过程,其中任何步骤发生了问题,电子签名设备均停止与客户端驱动程序的通讯,并返回错误信息。此步骤通过后,电子签名设备才可以允许客户端驱动程序发起诸如交易转账和移动支付等的工作流程。
如图3所示是本发明实施例的实现电子签名设备与客户端驱动程序预留信息的流程,其主要步骤描述如下:
步骤301、客户端驱动程序发起客户端预留信息更改请求;
当执行此步骤之前,客户端必须已经完成针对电子签名设备的PIN口令校验过程,只有PIN校验成功后,此步骤在可以正常执行。
步骤302、电子签名设备发送证书验证命令+MAC指令;
在此,电子签名设备进行如下步骤:
302a)获得设备内置的数字证书、可支持的算法标识;
302b)组成证书验证命令,并生成MAC;
随后向客户端驱动程序发送证书验证命令+MAC指令。
步骤303、客户端驱动程序返回数字证书验证结果。
在此,客户端驱动程序接到电子签名设备发过来的发送证书验证命令+MAC指令,进行如下步骤:
303a)验证命令的有效性,通过MAC码对命令进行验证。
302b)验证数字证书的有效性,在此是标准的数字证书验证过程,包括:数字证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能否正确解开数字证书的“发行者的数字签名”,验证是否属于同一系统所发放的证书等。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行下一步。
随后向电子签名设备返回数字证书验证结果。
步骤304、电子签名设备发送共享密钥请求+MAC指令;
在此,电子签名设备进行如下步骤:
304a)形成共享密钥请求命令,并生成MAC;
随后向客户端驱动程序发送共享密钥请求+MAC指令。
步骤305、客户端驱动程序返回共享密钥的密文结果。
在此,客户端驱动程序进行如下步骤:
305a)验证命令的有效性,通过MAC码对命令进行验证;
305b)生成随机数3,并选择一个电子签名设备所支持的算法标识;
305c)利用电子签名设备的公钥加密随机数3和所选择的算法标识。
随后向电子签名设备返回共享密钥和所选择的算法标识密文结果。
步骤306、电子签名设备发送预留信息更改请求+MAC的密文指令;
在此,电子签名设备进行如下步骤:
306a)利用私钥解密密文;
306b)获得随机数3和客户端驱动程序所选择的算法标识,形成共享密钥,并利用彼此选择的算法进行随后的通讯加解密算法使用;
306c)形成预留信息更改请求命令,并生成MAC;
306d)利用共享密钥加密预留信息更改请求命令,并生成MAC,生成密文。
随后向客户端驱动程序发送预留信息更改请求+MAC的密文指令。
步骤307、客户端驱动程序返回预留信息的密文结果。
在此,客户端驱动程序进行如下步骤:
307a)利用共享密钥解密密文;
307b)验证命令的有效性,通过MAC码对命令进行验证;
307c)在客户端屏幕上提示用户输入预留信息,并提示用户利用智能终端或电脑输入设备完成预留字符输入;
307d)利用共享密钥加密预留字符。
随后向电子签名设备返回加密后的预留字符的密文结果。
步骤308、电子签名设备发送预留信息保存请求+MAC的密文指令;
308a)利用共享密钥解密密文;
308b)获得预留字符;
308c)利用电子签名设备的屏幕显示预留字符;
308d)用户通过设备上的确认按键确认预留字符的正确性。如果用户不确认预留字符,则电子签名设备结束通讯,并返回错误信息;
308e)电子签名设备利用私钥对预留字符进行电子签名;
308f)生成随机数4,并将其设置为预留信息密钥1,并保存于电子签名设备内;
此预留信息密钥1,用于下一次解密预留信息时使用。
308g)利用预留信息密钥1加密预留字符和其电子签名,形成预留信息;
308h)形成预留信息更改请求命令,并对其生成MAC;
308i)利用共享密钥加密预留信息更改请求命令和MAC,生成密文。
随后向客户端驱动程序发送预留信息修改请求+MAC的密文指令。
步骤309、客户端驱动程序返回预留信息更改成功结果。
在此,客户端驱动程序进行如下步骤:
309a)利用共享密钥解密密文;
309b)验证命令的有效性,通过MAC验证命令的有效性;
309c)在客户端驱动程序内保存预留信息。
随后向电子签名设备返回预留信息更改成功结果。
如图4所示是本发明实施例的实现电子签名设备的PIN口令校验流程图,其主要步骤描述如下:
步骤401、客户端驱动程序发送获取设备唯一信息命令+MAC指令;
在此,客户端驱动程序进行如下步骤:
401a)客户端驱动程序通过USB接口或音频接口的查询,寻找电子签名设备;
401b)形成获取设备唯一信息命令,并生成MAC。
随后向电子签名设备发送获取设备唯一信息命令+MAC指令。
步骤402、电子签名设备返回设备唯一标识;
在此,电子签名设备进行如下步骤:
402a)验证命令的有效性,通过MAC码对命令进行验证;
402b)电子签名设备提供自己的设备唯一标识信息,此设备标识信息是在设备出厂时由发行方写入的不可更改的唯一标识信息。
随后向客户端驱动程序返回设备唯一标识信息。
步骤403、客户端驱动程序发送PIN口令验证命令+MAC的密文指令;
在此,客户端驱动程序进行如下步骤:
403a)利用电子签名设备的唯一标识信息和加密密钥因子,组成加密密钥1。加密密钥因子是在客户端驱动程序发行时发行者预留在程序内的一个密钥因子,为了安全考虑,此密钥因子是采用分散的方式存在于程序内部的;
403b)利用对称算法1和加密密钥1对以后的通讯信息进行加密计算。对称算法1是在客户端驱动程序发行时发行者预留在程序内的一个对称加密算法,如DES,AES,或国密局所认可的加密算法,如SM1算法等。此处也可以采用非对称密钥算法,以此提高设备与驱动程序验证的安全性;
403c)形成设备PIN口令验证命令;
403d)对命令生成MAC,并利用加密算法1和加密密钥1加密命令以及MAC后形成密文。
随后向电子签名设备发送PIN口令验证命令+MAC的密文指令。
步骤404、电子签名设备返回PIN口令验证通过信息+MAC的密文;
在此,电子签名设备进行如下步骤:
404a)利用电子签名设备唯一标识信息和解密密钥因子组成解密密钥1,同时利用对称算法1解密密文。解密密钥因子是在电子签名设备发行时发行者预留在设备内一个密钥因子。对称算法1是在电子签名设备发行时发行者预留在设备内的一个对称加密算法,如DES,AES,或国密局所认可的加密算法,如SM1算法等。此对称算法1与客户端驱动程序内的对称算法1是一致的,以此实现彼此加解密的要求。此处,也可以采用非对称密钥算法,以此提高设备与驱动程序验证的安全性;;
404b)验证命令的有效性,通过MAC码对命令进行验证;
404c)在电子签名设备的显示屏幕上提示用户输入PIN口令;
404d)用户通过设备上的物理按键输入PIN口令,设备内部完成PIN口令验证。在此由于采用通过设备自带的物理按键输入PIN口令方式,所以比传统的通过客户端驱动程序输入PIN口令的安全等级要高;
404e)验证通过后形成PIN验证通过信息,并形成MAC;
404f)利用设备唯一标识信息和加密密钥因子,组成加密密钥1。此处的加密密钥1与客户端驱动程序中的加密密钥1相一致;
404g)利用对称算法1和加密密钥1对PIN验证通过信息和MAC进行加密计算,形成密文。
随后向客户端驱动程序返回PIN口令验证通过信息+MAC的密文。
此后,客户端驱动程序即可进入下一步程序功能的调入状态,具体地,可包括如下步骤:
a)利用设备唯一标识信息和解密密钥因子组成解密密钥1,解密密文;
b)验证命令的有效性,通过MAC码对命令进行验证;
c)获得电子签名设备发送的PIN口令验证通过信息后,客户端驱动程序进入下一步程序功能的调入状态。
本领域的技术人员应该明白,上述的本申请实施例所提供的装置和/或系统的各组成部分,以及方法中的各步骤,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上。可选地,它们可以用计算装置可执行的程序代码来实现。从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (11)
1.一种电子签名设备的实现方法,所述方法包括:
电子签名设备基于用户提供的预留字符生成预留信息,并将所述预留信息发送到客户端并保存于所述客户端中;
对所述客户端进行验证时,所述电子签名设备从所述客户端获取保存于所述客户端中的所述预留信息,并在所述电子签名设备的显示屏幕上显示所述预留字符;
通过所述电子签名设备上的物理按键确认所述预留字符正确后,确认所述客户端通过验证;
其中,电子签名设备基于用户提供的预留字符生成预留信息,包括:
所述电子签名设备利用私钥对所述预留字符进行电子签名,并利用预留信息密钥加密所述预留字符及其电子签名,生成所述预留信息;
所述电子签名设备通过以下方式从所述客户端获取保存于所述客户端中的所述预留信息:
所述电子签名设备向所述客户端发送获取预留信息请求;
所述客户端接收到所述电子签名设备的获取预留信息请求时,利用共享密钥加密所保存的所述预留信息后,发送给所述电子签名设备;
所述电子签名设备从所述客户端获取到所述加密后的预留信息时,利用共享密钥进行解密后得到所述预留字符及其电子签名,并对所述电子签名进行验证。
2.如权利要求1所述的方法,其中:
在所述电子签名设备确认所述客户端通过验证后,还包括:
所述电子签名设备生成新的预留信息密钥;
所述电子签名设备利用所述新的预留信息密钥加密所述预留字符及其电子签名,生成新的预留信息,并将其保存于所述客户端中。
3.如权利要求1或2所述的方法,其中:
所述电子签名设备通过如下方式获得所述用户提供的预留字符:
所述电子签名设备生成预留信息更改请求,并使用从所述客户端获得的共享密钥对生成的所述预留信息更改请求进行加密,将加密后的预留信息更改请求以密文形式发送给所述客户端;
所述客户端利用共享密钥解密密文,在所述客户端的屏幕上提示用户输入预留字符,并利用该共享密钥对用户输入的预留字符进行加密后,以密文形式返回给所述电子签名设备;
所述电子签名设备利用所述共享密钥解密密文,获得所述用户提供的预留字符。
4.如权利要求3所述的方法,其中:
所述电子签名设备通过以下方式向所述客户端获得所述共享密钥:
所述电子签名设备向所述客户端发送共享密钥请求,并对所述共享密钥请求生成MAC指令;
所述客户端接收到所述共享密钥请求和MAC指令时,通过MAC码验证所述共享密钥请求的有效性后,生成随机数,并选择一个所述电子签名设备支持的算法标识,利用所述电子签名设备的公钥加密所述随机数和选择的所述算法标识后,将加密后的随机数和选择的所述算法标识以密文形式发送给所述电子签名设备;
所述电子签名设备利用私钥解密密文,得到随机数和所述客户端选择的所述算法标识,并基于得到的所述随机数获得所述共享密钥。
5.如权利要求1或2所述的方法,其中:
如果未通过所述电子签名设备上的物理按键确认所述预留字符正确,则所述电子签名设备终止对所述客户端的验证过程。
6.如权利要求1或2所述的方法,所述方法还包括:
所述客户端连接到所述电子签名设备时,向所述电子签名设备获取所述电子签名设备唯一信息;
所述客户端利用所述电子签名设备唯一信息和加密密钥因子,组成加密密钥1;
所述客户端生成电子签名设备PIN口令验证命令并生成MAC,利用对称算法1和所述加密密钥1加密所述PIN口令验证命令和MAC后形成密文,发送给所述电子签名设备;
所述电子签名设备利用设备唯一信息和解密密钥因子组成解密密钥1,解密接收到的密文,并验证所述PIN口令验证命令的有效性,在所述电子签名设备的显示屏幕上提示用户输入PIN口令;并根据用户通过物理按键输入的PIN口令,完成内部PIN口令验证,验证通过后形成PIN验证通过信息,并形成MAC;
所述电子签名设备利用设备唯一信息和加密密钥因子,组成加密密钥1,利用对称算法1和该加密密钥1对PIN验证通过信息和MAC进行加密,形成密文发送给所述客户端;
所述客户端利用所述电子签名设备唯一信息和解密密钥因子组成解密密钥1,解密密文并验证命令的有效性,在获得所述电子签名设备发送的PIN口令验证通过信息后,所述客户端的驱动程序进入下一步程序功能的调入状态。
7.一种电子签名设备,包括存储模块、电源控制模块、电池,其中,所述电子签名设备还包括:电子签名模块,显示单元和确认单元,
所述电子签名模块,基于用户提供的预留字符生成预留信息,并将所述预留信息发送到客户端并保存于所述客户端中;在对所述客户端进行验证时,获取保存于所述客户端中的所述预留信息,并通过所述显示单元显示所述预留字符;以及,在所述确认单元确认所述预留字符正确后,确认所述客户端通过验证;
所述显示单元,在所述电子签名模块的控制下进行信息的显示;
所述确认单元,为用户提供输入信息的物理按键;
其中,所述电子签名模块,利用私钥对所述预留字符进行电子签名,并利用预留信息密钥加密所述预留字符及其电子签名,生成所述预留信息;
所述电子签名模块,通过如下方式从所述客户端获取保存于所述客户端中的所述预留信息:
所述电子签名模块生成获取预留信息请求,并使用从所述客户端获得的共享密钥对生成的所述获取预留信息请求进行加密,将加密后的获取预留信息请求以密文形式发送给所述客户端;
所述电子签名模块接收到所述客户端以密文形式返回的利用共享密钥加密后的用户输入的预留信息时,利用共享密钥进行解密后得到所述预留字符及其电子签名,并对所述电子签名进行验证。
8.如权利要求7所述的电子签名设备,其中:
所述电子签名模块在确认所述客户端通过验证后,还生成新的预留信息密钥,并利用所述新的预留信息密钥加密所述预留字符及其电子签名,生成新的预留信息,并将其保存于所述客户端中。
9.如权利要求7或8所述的电子签名设备,其中:
所述电子签名模块,通过如下方式获得所述用户提供的预留字符:
所述电子签名设备生成预留信息更改请求,并使用从所述客户端获得的共享密钥对生成的所述预留信息更改请求进行加密,将加密后的预留信息更改请求以密文形式发送给所述客户端;
所述电子签名模块接收到所述客户端以密文形式返回的利用共享密钥加密后的用户输入的预留字符时,利用所述共享密钥解密密文,获得所述用户提供的预留字符。
10.一种电子签名客户端,所述客户端包括:
预留信息保存模块,接收电子签名设备发送的预留信息并进行保存;接收到所述电子签名设备的获取预留信息请求时,将所保存的所述预留信息加密后,发送给所述电子签名设备;
验证请求模块,向所述电子签名设备发起客户端验证请求;
其中,所述预留信息是所述电子签名设备利用私钥对预留字符进行电子签名,并利用预留信息密钥加密所述预留字符及其电子签名生成的;
其中,所述电子签名设备通过如下方式从所述客户端获取保存于所述客户端中的所述预留信息:
所述电子签名设备生成获取预留信息请求,并使用从所述客户端获得的共享密钥对生成的所述获取预留信息请求进行加密,将加密后的获取预留信息请求以密文形式发送给所述客户端;
所述电子签名设备接收到所述客户端以密文形式返回的利用共享密钥加密后的用户输入的预留信息时,利用共享密钥进行解密后得到所述预留字符及其电子签名,并对所述电子签名进行验证。
11.如权利要求10所述的客户端,还包括:
预留字符输入模块,提供用户输入预留字符的界面,并对用户输入的预留字符进行加密后,以密文形式返回给所述电子签名设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310116384.9A CN104104505B (zh) | 2013-04-03 | 2013-04-03 | 一种电子签名设备及其实现方法及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310116384.9A CN104104505B (zh) | 2013-04-03 | 2013-04-03 | 一种电子签名设备及其实现方法及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104104505A CN104104505A (zh) | 2014-10-15 |
CN104104505B true CN104104505B (zh) | 2017-10-13 |
Family
ID=51672334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310116384.9A Active CN104104505B (zh) | 2013-04-03 | 2013-04-03 | 一种电子签名设备及其实现方法及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104104505B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295302A (zh) * | 2015-06-11 | 2017-01-04 | 天地融科技股份有限公司 | 电子签名工具及其启动方法 |
CN107294712B (zh) * | 2017-07-24 | 2020-01-31 | 北京中测安华科技有限公司 | 一种密钥协商的方法及装置 |
CN110190950B (zh) * | 2019-06-11 | 2021-04-27 | 飞天诚信科技股份有限公司 | 一种安全签名的实现方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022455A (zh) * | 2006-12-26 | 2007-08-22 | 北京大学 | 一种Web通信加密方法 |
CN101174295A (zh) * | 2008-01-16 | 2008-05-07 | 北京飞天诚信科技有限公司 | 一种可离线的drm认证的方法及系统 |
CN101860540A (zh) * | 2010-05-26 | 2010-10-13 | 吴晓军 | 一种识别网站服务合法性的方法及装置 |
-
2013
- 2013-04-03 CN CN201310116384.9A patent/CN104104505B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022455A (zh) * | 2006-12-26 | 2007-08-22 | 北京大学 | 一种Web通信加密方法 |
CN101174295A (zh) * | 2008-01-16 | 2008-05-07 | 北京飞天诚信科技有限公司 | 一种可离线的drm认证的方法及系统 |
CN101860540A (zh) * | 2010-05-26 | 2010-10-13 | 吴晓军 | 一种识别网站服务合法性的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104104505A (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5365512B2 (ja) | ソフトウェアicカードシステム、管理サーバ、端末、サービス提供サーバ、サービス提供方法及びプログラム | |
CN105491077B (zh) | 一种身份认证的系统 | |
CN107113315A (zh) | 一种身份认证方法、终端及服务器 | |
CN107278307A (zh) | 软件层的相互认证 | |
CN102222390A (zh) | 一种多功能智能密钥装置及其工作方法 | |
CN103390124A (zh) | 安全输入和处理口令的设备、系统和方法 | |
CN108964903A (zh) | 密码存储方法及装置 | |
CN103036681B (zh) | 一种密码安全键盘装置及系统 | |
CN107733973A (zh) | 安全控制方法、终端、服务器及计算机可读介质 | |
CN110659470B (zh) | 离线物理隔离的认证方法及其认证系统 | |
CN104978144A (zh) | 手势密码输入设备和系统,及基于该系统进行交易的方法 | |
CN104104505B (zh) | 一种电子签名设备及其实现方法及客户端 | |
JP2001103046A (ja) | 通信装置、通信システム及び通信方法並びに認証装置 | |
CN202978979U (zh) | 一种密码安全键盘装置及系统 | |
CN108924822A (zh) | 一种基于可信环境的有卡安全通信方法及移动终端 | |
CN103971044A (zh) | 射频识别和数字签名集成装置 | |
CN104009843A (zh) | 一种令牌终端和方法 | |
EP3594838A1 (en) | Method for recovering a secret key securely stored in a secure element | |
CN105989477A (zh) | 数据交互方法 | |
JP2002312725A (ja) | Icカードの更新方法及びシステム | |
JP2003309552A (ja) | 携帯端末による電子証明書の管理システム | |
US20230086015A1 (en) | Ic card asymmetric labelling system and ic card built-in password input system | |
CN106327194A (zh) | 一种密码生成方法及电子设备 | |
CN105991530A (zh) | 数据交互系统 | |
CN105991527A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |