专利名称:对智能密码钥匙进行可信数字签名的装置及其工作方法
技术领域:
本发明涉及一种针对智能密码钥匙进行可信数字签名的装置及其工作方 法,属于信息安全技术领域。
背景技术:
近年来,由于针对网银的攻击越来越多,网银的安全性在不断提高,网银 的客户端认证方式经历了帐号+口令认证、软数字证书认证、智能密码钥匙(也
称作USBKEY)数字证书认证几个时期。据不完全统计,截至2008年末,国内
银行所发放的智能密码钥匙数量已突破千万。
但在实际使用中,即使采用了智能密码钥匙这种独立的安全设备,仍然不 能保证网络交易安全,原因在于用户在交易中所使用的客户端计算机环境不安 全,而智能密码钥匙是一种被动的独立安全设备。在使用的时候,智能密码钥 匙对于其所连接的客户端计算机上发出的指令做出响应,但并不能判断指令来 自合法的程序,还是非法的程序。这样就导致了, 一旦用户通过身份认证,获 得智能密码钥匙使用权(即利用智能密码钥匙内代表个人身份的数字证书签名 的权利)后,就有可能被非法程序"劫持",冒充用户的身份,进行恶意数字签 名,非法转账等。由于用户的客户端计算机已经被非法程序控制,用户并不能 从计算机屏幕发现交易信息被修改。
目前,安全设备提供商防范这种"劫持攻击"的方式主要是通过在智能密 码钥匙上增加显示安全的输入输出控制模块(即所谓的高端智能密码钥匙),如 键盘、液晶显示、声音提示模块,将智能密码钥匙内真实的关键签名信息,如 将对方姓名、账号、交易金额等传递给客户,由客户确认后,以物理确认方式(如按键)加以确认,完成数字签名。如果用户发现真实的签名信息与实际不 符,可以以物理方式取消。
然而这种解决方案要求网银用户必须将手中的普通智能密码钥匙更换为高 端智能密码钥匙。这样一来,会造成大量设备浪费。
发明内容
本发明的目的在于提供一种独立于普通智能密码钥匙的装置,所述装置可 将智能密码钥匙内的关键签名信息,如比如交易对方姓名、账号、交易金额等 告知客户,由客户以物理确认方式加以确认,或让客户通过所述装置将关键签 名信息输入、确认。所述装置将经过确认的关键签名信息处理后,传送至客户 端计算机,再由客户端计算机将所述装置处理后的关键签名信息交普通智能密 码钥匙进行数字签名,并回传至服务器,由服务器判断签名的有效性。如果关 键签名信息被恶意修改,将会被服务器发现,从而防止"劫持攻击"。
为达到以上目的,本发明采用的技术方案如下
一种对智能密码钥匙进行可信数字签名的装置,包括存储模块,算法处理 模块、将需要数字签名的信息告知用户的输出模块、将用户决策信息输入所述 装置的输入模块和通信接口,所述装置可以通过所述通信接口与客户端计算机 通信并通过客户端计算机与智能密码钥匙通信,也可以通过所述通信接口分别 直接与客户端计算机和智能密码钥匙通信。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述存储模块存 储内容包括代表所述装置所属用户身份密钥。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述用户身份密 钥与所述装置搭配使用的智能密码钥匙一一对应,并同时在服务器端保存。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述算法处理模块包含散列运算处理器和OTP生成模块。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述散列运算处 理器实现对关键签名信息的散列运算处理。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述OTP生成模 块按照所述装置与服务器事先约定的协议生成用于一个仅有服务器和所述装置 共知的动态口令。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述装置与服务 器事先约定的协议为仅有服务器和所述装置共知的动态口令。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述输出模块将 需要数字签名的信息传递给用户的方式包括屏幕显示方式、声音提示方式。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述用户决策信 息包括用户确认需要数字签名信息正确性、用户否认需要数字签名信息正确 性、用户阅读或收听所述装置需要签名信息的控制、需要用户使用所述装置输 入的签名信息。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述用户决策信 息的输入方式包括键盘方式、触摸屏方式、屏幕显示加滚轮确认方式、语音方式。
所述的对智能密码钥匙进行可信数字签名的装置,其中,所述通用接口包
括USB接口、 IEEE 1394接口、无线蓝牙接口、 IrDA红外接口、 HomeRF接口、 正EE802.11a/b/g接口。
一种对智能密码钥匙进行可信数字签名的装置的工作方法,包含以下步骤 (1)服务器端生成并存储所述装置所属用户身份的密钥,并将所述密钥写
入所述装置存储模块,完成对所述装置的初始化;(2) 所述装置按照与服务器事先约定的协议,利用步骤(1)生成的密钥 计算出一个仅有服务器和所述装置共知的一次性口令,作为散列运算使用的密 钥;
(3) 所述装置对输入的需要签名的关键交易信息输出,并利用步骤(2) 中生成的散列密钥进行散列运算处理,得到签名信息散列值,由智能密码钥匙 对签名信息散列值和关键交易信息的组合值进行数字签名,得到签名信息;
(4) 服务器收到步骤(3)中的签名信息,并验证签名信息,核对签名信 息的真实性、有效性、完整性,如果核对有误,取消交易,并通知客户端,如 果核对正确,进入步骤(5);
(5) 服务器端按照与所述装置事先约定的协议,生成与步骤(2)中所述 一次性口令相同的口令,对需要签名的关键交易信息进行散列运算处理,将得 到的散列值与验证签名信息后得到的步骤(3)中产生的签名信息散列值对比, 确认智能密码钥匙的所签名的关键交易信息与步骤(3)中所述装置输出的关键 交易信息是否一致,如果不一致,取消交易,并通知客户端,如果一致,确认 签名有效。
所述的对智能密码钥匙进行可信数字签名的装置的工作方法,其中,步骤 (3)中,所述装置可以将得到的签名信息散列值,先送回客户端,由客户端将 需要签名的关键信息和所述签名信息散列值组合在一起送至智能密码钥匙进行 数字签名,得到签名信息。
所述的对智能密码钥匙进行可信数字签名的装置的工作方法,其中,步骤 (3)中,所述装置还可以将得到的签名信息散列值和需要签名的关键信息组合 在一起,直接送至智能密码钥匙进行数字签名,得到签名信息,并由客户端传 至服务器。所述的对智能密码钥匙进行可信数字签名的装置的工作方法,其中,所述 装置中的用户身份密钥只可使用,不可读出。
在本发明应用前,客户使用智能密码钥匙直接对关键交易信息进行数字签 名,本发明应用后,客户使用智能密码钥匙对关键交易信息和本发明所述装置 计算出的签名信息散列值组合后的数据进行签名,并不改变智能密码钥匙的使 用流程,因此无需对用户已使用中的智能密码钥匙做任何改动。同时,由于所 述装置计算出的签名信息散列值数据量很小,本发明应用后,用户不会感觉到 智能密码钥匙签名速度变慢。
本发明通过提供一个智能密码钥匙的附加装置,在不改动客户端智能密码 钥匙结构与功能的前提下,让用户实现了对智能密码钥匙真实签名信息进行控 制的功能,阻止了针对智能密码钥匙的"劫持攻击",极大的增加了当前网银交 易的安全性。
图1为本发明的装置结构示意图。
图2为本发明具体实施方式
的流程图。
具体实施例方式
为使本发明的目的、技术方案和效果更加清楚,以下以网银应用环境为例, 结合附图及实施例对本发明再做更进一步详细的说明。
本发明装置使用的核心控制处理芯片为中兴集成电路的Z32H256UF安全存 储芯片。该芯片为块SOC芯片,芯片集成安全存储模块功能、算法处理模块功 能、以及USB2.0接口, IO接口。在本实施例中,本发明装置使用Z32H256UF 提供的USB2.0接口与客户端计算机通信,完成通信模块功能;使用Z32H256UF 提供的IO接口,连接一块液晶显示模块,显示关键交易信息,完成输出模块功能;使用Z32H256UF提供的IO接口,连接一块具有"确认"、"取消"、"翻页"键位的键盘,完成输入模块功能。
本发明所述装置在交付用户使用前,须由银行将所述装置初始化。初始化的目的是将所述装置与用户使用的智能密码钥匙一对一匹配,具体做法是将代表用户身份的与服务器共享的密钥MSK以及设备序列号写入所述装置的安全存储区。同时,银行服务器将MSK以及设备序列号作为用户属性值存储在用户数
本实施例中,所述装置通过所述通信接口与客户端计算机通信,并通过客户端计算机与服务器和智能密码钥匙通信。
用户使用所述装置结合USKEY使用本发明所述方法进行数字签名的流程如图2所示
步骤详细说明如下
步骤1:所述装置根据事先与服务器协商好的HMAC-SHA1的HOTP算法,产生一个一次性密码PASS—OTP,并使用和服务器共知的算法,和共享密钥MSK进行密钥分散,得到过程密钥Mac—K;保存Mac^K用于此次可信签名的后续计算。
步骤2:客户端发送需签名的关键交易数据(如交易对方姓名、账号、交易金额等)msgl给本发明装置。
步骤3:所述装置接收到msgl后,将代表关键交易信息的msgl显示在液晶显示屏上,待用户确认。用户通过翻页按键浏览关键交易信息。如果确认无误,按下"确认键",则表示msgl是真实有效的数据,进入步骤4;如果发现有误,按下"取消键",则表示msgl不是真实有效的数据,终止签名认证过程。
步骤4:用户确认msgl的真实性后,所述装置随即使用Mac^K对msgl进行散列运算处理,计算出签名信息散列值mac = MAC(Mac—K, msgl)。步骤5:所述装置把计算好的签名信息散列值mac返回给客户端。步骤6:注销所述装置安全状态,清除相关处理过程数据。
步骤7:客户端向智能密码钥匙发送认证数据,请求认证身份,以得到私钥
的使用权。认证方式取决于智能密码钥匙的认证方式,本实施例中采用口令认
证方式。
步骤8:接收到客户端的请求后,智能密码钥匙对认证数据进行验证,成功
则对当前用户授权,得到私钥prv的使用权。
步骤9:向客户端返回智能密码钥匙认证结果。认证成功则返回成功,否则
返回失败,退出。
步骤10:客户端收到认证成功信息后,将关键交易数据msgl和签名信息散
列值mac组合成数据msg2 = msgl+mac,并将其发送给智能密码钥匙,请求智
能密码钥匙用私钥prv对msg2进行数字签名。
步骤ll:智能密码钥匙接收到msg2后,如果已获取智能密码钥匙私钥使用
权,则使用私钥prv对msg2进行签名,得到签名sign = SIGN(prv,msg2)。步骤12:智能密码钥匙把sign返回给客户端。步骤13:注销智能密码钥匙的安全状态,恢复到未经授权状态。步骤14:客户端将接收到的msg2和签名值sign —起发送到服务端进行验
证。通信协议可以选择多种方式,本实施例中采用SSL协议来保证msg2和签名
值sign在传输过程中的安全性。
步骤15:服务器接收到msg2和sign后,用私钥prv对应的公钥pub对msg2
的签名sign进行验证,得到result = VERIFY(pub, msg2,sign)。如果成功则表明
用户使用智能密码钥匙签名的有效,转入步骤15;否则,报错,转入步骤17。歩骤16:服务器端对收到的数据msg2进行拆分,还原成msgl和mac,即msgl+mac=msg2。并使用与客户端相同方法得到的过程密钥Mac—K (见步骤1)对msgl进行散列运算,得到mac,=MAC(Mac—K, msgl)。如果mac等于mac,,则表明msgl是经用户确认的,真实的数据,而非伪造的数据。如果mac不等于mac',则说明用户从所述装置看到的信息与智能密码钥匙内真实签名的数据不相同,中止交易。
步骤17:如果通过了步骤15和步骤16的验证后,则证明了 msg2的真实性、合法性、完整性、正确性,向客户端返回验证成功信息。否则根据收到的错误情况,向用户反馈错误原因。
从以上流程中可以看出
如果客户端非法程序在步骤2之前,修改了交易信息,用户会在所述装置的液晶屏上看到被修改的交易信息,使用所述装置的取消键,取消交易。
如果客户端非法程序在用户在所述装置上确认交易信息后,送智能密码钥匙进行数字签名前,如步骤10中,修改相关交易信息,会导致服务器端对msgl进行散列运算的值与所述装置对关键交易信息进行散列运算的值不同,从而发现非法程序"劫持攻击"导致的"所见非所签",从而中止交易,并告诉用户。
应当理解的是,本发明上述针对具体实施例的描述较为具体,并不能因此而理解为对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
1权利要求
1、一种对智能密码钥匙进行可信数字签名的装置,其特征在于,包括存储模块、算法处理模块、将需要数字签名的信息告知用户的输出模块、将用户决策信息输入所述装置的输入模块和通信接口,所述装置可以通过所述通信接口与客户端计算机通信并通过客户端计算机与智能密码钥匙通信,也可以通过所述通信接口分别直接与客户端计算机和智能密码钥匙通信。
2、 如权利要求1所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述存储模块存储内容包括代表所述装置所属用户身份密钥。
3、 如权利要求1所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述用户身份密钥与所述装置搭配使用的智能密码钥匙一一对应,并同时在服务器端保存。
4、 如权利要求1所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述算法处理模块包含散列运算处理器和OTP生成模块。
5、 如权利要求1或4所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述散列运算处理器实现对关键签名信息的散列运算处理。
6、 如权利要求1或4所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述OTP生成模块按照所述装置与服务器事先约定的协议生成用于一个仅有服务器和所述装置共知的动态口令。
7、 如权利要求1所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述输出模块将需要数字签名的信息传递给用户的方式包括屏幕显示方式、声音提示方式。
8、 如权利要求1或7所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述用户决策信息包括用户确认需要数字签名信息正确性、用户否认需要数字签名信息正确性、用户阅读或收听所述装置需要签名信息的控制、需要用户使用所述装置输入的签名信息。
9、 如权利要求1所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述用户决策信息的输入方式包括键盘方式、触摸屏方式、屏幕显示加滚轮确认方式、语音方式。
10、 如权利要求1所述的对智能密码钥匙进行可信数字签名的装置,其特征在于,所述通用接口包括USB接口、 IEEE 1394接口、无线蓝牙接口、 IrDA红外接口、 HomeRF接口、 IEEE 802.11a/b/g接口 。
11、 一种对智能密码钥匙进行可信数字签名的装置的工作方法,其特征在于,包含以下歩骤(1) 服务器端生成并存储所述装置所属用户身份的密钥,并将所述密钥写入所述装置存储模块,完成对所述装置的初始化;(2) 所述装置按照与服务器事先约定的协议,利用步骤(1)生成的密钥计算出一个仅有服务器和所述装置共知的一次性口令,作为散列运算使用的密钥;(3) 所述装置对输入的需要签名的关键交易信息输出,并利用步骤(2)中生成的散列密钥进行散列运算处理,得到签名信息散列值,由智能密码钥匙对签名信息散列值和关键交易信息的组合值进行数字签名,得到签名信息;(4) 服务器收到步骤(3)中的签名信息,并验证签名信息,核对签名信息的真实性、有效性、完整性,如果核对有误,取消交易,并通知客户端,如果核对正确,进入步骤(5);(5) 服务器端按照与所述装置事先约定的协议,生成与步骤(2)中所述一次性口令相同的口令,对需要签名的关键交易信息进行散列运算处理,将得到的散列值与验证签名信息后得到的步骤(3)中产生的签名信息散列值对比,确认智能密码钥匙的所签名的关键交易信息与步骤(3)中所述装置输出的关键交易信息是否一致,如果不--致,取消交易,并通知客户端,如果一致,确认签名有效。
12、 如权利要求11所述的对智能密码钥匙进行可信数字签名的装置的工作方法,其特征在于,步骤(3)中,所述装置可以将得到的签名信息散列值,先送回客户端,由客户端将需要签名的关键信息和所述签名信息散列值组合在一起送至智能密码钥匙进行数字签名,得到签名信息,并由客户端传至服务器。
13、 如权利要求11所述的对智能密码钥匙进行可信数字签名的装置的工作方法,其特征在于,步骤(3)中,所述装置还可以将得到的签名信息散列值和需要签名的关键信息组合在一起,直接送至智能密码钥匙进行数字签名,得到签名信息,并由客户端传至服务器。
14、 如权利要求11所述的对智能密码钥匙进行可信数字签名的装置的工作方法,其特征在于,所述装置中的用户身份密钥只可使用,不可读出。
全文摘要
本发明公开了一种针对智能密码钥匙进行可信数字签名的装置及其工作方法。通过所述工作方法可将智能密码钥匙内的关键签名信息,在装置上由客户以物理确认方式加以确认。所述装置将经过确认的关键签名信息处理后,和关键签名信息组合在一起交普通智能密码钥匙进行数字签名,并回传至服务器,由服务器判断签名的有效性和正确性,以实现用户对普通智能密码钥匙签名数据的可信确认。
文档编号H04L29/06GK101478547SQ20091000884
公开日2009年7月8日 申请日期2009年2月9日 优先权日2009年2月9日
发明者亓文华, 良 吕, 王仲文, 王建承, 奋 秦 申请人:北京大明五洲科技有限公司