首页> 中国专利> 确认需签名数据的数字签名设备及其确认数据的方法

确认需签名数据的数字签名设备及其确认数据的方法

摘要

本发明公开一种确认需签名数据的数字签名设备及其确认数据的方法。一方面,该设备包括连接到中央控制器上的需签名数据确认装置。该装置包括:指令判断单元,用于判断数字签名设备从客户端收到的指令的类型,并在判断为包含需签名数据的指令时将其指令体传递给数据解析单元;数据解析单元,用于从传递过来的指令体中解析出需签名数据;用户通知单元,用于将解析出来的需签名数据通知用户进行确认。另一方面,该方法包括:客户端向服务端发出请求消息之后,客户端收到服务端返回的响应消息时向数字签名设备发送指令;数字签名设备从指令中解析出需签名数据,并通知用户进行确认。实现了在安全设备上对数据进行确认,确保进行签名的数据是正确的。

著录项

  • 公开/公告号CN1988444A

    专利类型发明专利

  • 公开/公告日2007-06-27

    原文格式PDF

  • 申请/专利权人 北京握奇数据系统有限公司;

    申请/专利号CN200510135007.5

  • 发明设计人 高翔;雷继业;

    申请日2005-12-23

  • 分类号H04L9/32(20060101);H04L29/06(20060101);

  • 代理机构11291 北京同达信恒知识产权代理有限公司;

  • 代理人李欣

  • 地址 100015 北京市朝阳区首都机场路万红西街2号

  • 入库时间 2023-12-17 18:50:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-29

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L9/32 变更前: 变更后: 申请日:20051223

    专利权人的姓名或者名称、地址的变更

  • 2009-08-26

    授权

    授权

  • 2007-08-22

    实质审查的生效

    实质审查的生效

  • 2007-06-27

    公开

    公开

说明书

技术领域

本发明涉及数字签名技术,尤其涉及一种确认需签名数据的数字签名设备及其确认数据的方法。

背景技术

随着电子商务和电子政务的发展,越来越多的国家成立了数字签名法,数字签名成为电子交易的合法签名方式。为了确保数字签名的合法性,必须先解决数字签名的安全性问题。

在Internet上进行的电子商务交易,参与双方会互相发送一系列消息,其中一方对消息的数字签名证明消息确实是他发出的,另一方可以检验签名的真实性。

现在的数字签名都使用强的密码算法,通常基于整数分解、离散对数问题或椭圆曲线。只要选择适当的参数,这些算法就难以攻破,这就意味着攻击者没有私钥就无法计算出对数据的签名。

即便如此,还是要小心,确保攻击者无法从用户的计算机窃取私钥。目前的理想方案都是将私钥和签名函数存储于独立的签名设备中,比如智能卡或USB Key,这样的设备称为“个人安全环境(Personal Secure Environment,PSE)”。向智能卡输入要签名的数据,智能卡计算并输出数字签名结果,整个过程从不泄漏私钥。对智能卡进行攻击,就算可行的话,也是技术上非常有挑战性的困难,因此我们可以相信智能卡的安全性,认为攻击者对它无计可施。

从智能卡和密码算法的安全角度说,要想通过破解密码算法或攻击智能卡来伪造数字签名是几乎不可能的。但是,我们还不能宣称数字签名不可能被伪造,原因就是木马程序的存在。图1示出现有的数字签名方案被木马程序攻击的可能性。

木马程序可以在多处实施攻击。例如作为动态文档内容隐藏于应用软件中;攻击应用软件与签名软件之间的通信;攻击签名软件;攻击签名软件与智能卡之间的驱动。

这些攻击篡改进入智能卡的数据,使得进入卡内的数据根本不是用户想要签名的数据,从而计算出的签名是违背用户意愿的。

有些签名方案要求在签名之前对数据进行再现和确认,但这种再现和确认是签名软件在用户计算机上完成的,攻击者同样可以把正确的数据显示给用户,却把篡改过的数据传给智能卡。因此,这种在用户计算机上的再现和确认是徒劳的。

目前的数字签名技术,都只研究算法、密钥和运算过程的安全性,都没有考虑到木马程序对签名内容的攻击,无法确保“所见即所签”。

发明内容

本发明提出一种确认需签名数据的数字签名设备及其确认数据的方法,可以在安全设备上对交易数据进行确认,确保进入签名设备的数据确实是用户想要签名的数据,即“所见即所签”。

一方面,提供一种确认需签名数据的数字签名设备。该设备包括连接到中央控制器上的需签名数据确认装置。该需签名数据确认装置包括:指令判断单元,用于判断数字签名设备从客户端收到的指令的类型,并在判断为包含需签名数据的指令时将其指令体传递给数据解析单元;数据解析单元,用于从传递过来的指令体中解析出需签名数据;用户通知单元,用于将解析出来的需签名数据通知用户进行确认。

上述设备还包括用户操作指令接收单元,用于接收用户对所通知的需签名数据发出的操作指令。

上述用户操作指令接收单元包括下述控制键中至少一种:

确定键,用于接收用户对所通知的需签名数据确认为正确时发出的操作指令;取消键,用于接收用户对所通知的需签名数据确认为差错时发出的操作指令;翻页键,用于接收用户发出的翻页阅读需签名数据所包含的各项的操作指令。

上述用户通知单元包括显示屏,用于全屏显示或分屏逐项显示需签名数据包含的各项。

上述数据解析单元与服务端和客户端上的数据解析单元采用同样的解析器。

上述解析器是可扩展标记语言XML解析器。

上述数字签名设备是USB Key。

另一方面,提供一种数字签名过程中需签名数据的确认方法,客户端向服务端发出请求消息之后,该方法包括步骤:A、客户端收到服务端返回的响应消息后,向数字签名设备发送包含需签名数据的指令;B、数字签名设备从收到的指令中解析出需签名数据,并通知用户进行确认。

上述步骤B进一步包括:数字签名设备将需签名数据逐项通知给用户或一次性全部通知给用户进行确认。

上方法还包括步骤:C、所有的需签名数据都被用户确认时,数字签名设备开始数字签名运算。

上述方法还包括步骤:C、需签名数据被用户否定时,数字签名设备拒绝进行签名。

上述方法中,数字签名设备与服务端和客户端遵循同一种编解码格式。

上述方法中,编解码格式是可扩展标记语言XML格式。

上述方法中,数字签名设备是USB Key。

本发明的优点和特点如下:

1.USB Key形成一个独立的安全运算环境,可以对电子交易数据进行再现和确认,木马程序对交易数据的任何篡改都会被发现;

2.只有当所有交易数据都被确认符合用户意愿时,才会对交易数据进行签名运算,从而确保用户签署的数据就是用户亲眼见过并予以确定的数据,也就是“所见即所签”;

3.USB Key与交易软件采用相同的数据解析器,同样的二进制数据具有相同的语法格式和语义,形成无差别显示。

4.此外,USB Key具备传统智能卡签名的所有安全功能。比如,对签名私钥有PIN保护,签名运算过程在设备内部完成,命令与应答有加密保护,文件读写有安全访问控制机制等等。

附图说明

图1示出现有的数字签名方案被木马程序攻击的可能性;

图2示出采用安全数字签名方案的电子交易系统;

图3示出具有数据确认功能的数字签名设备典型的外形结构;

图4示出数字签名设备典型的组成结构;

图5是支持本发明的需签名数据确认功能的数字签名方法在电子交易情形下的流程图;

图6示出应用网上个人银行的转帐业务时交易数据通常包含的数据项;

图7是支持本发明的需签名数据确认功能的数字签名方法在网上个人银行转账情形下的流程图。

具体实施方式

本发明涉及两个形成鲜明对比的计算环境:

(1)不安全的用户计算机环境。用户计算机上的任何程序都是不可信任的,包括处理签名数据的应用软件和签名软件,都可能存在木马程序,木马程序可以篡改进入签名设备的数据。

(2)安全的签名设备。本发明采用带有需签名数据确认功能的USB Key作为签名设备,这种USB Key是独立于用户计算机的运算环境,具有严格的资源保护和访问控制,只执行一些签名相关的命令,恶意程序对此签名设备无计可施,因此称为“个人安全环境”。

正是由于这两种环境的安全性对比,才将安全敏感的数据确认和签名运算放在USB Key的安全环境内完成。

本发明主要应用于电子交易,比如网上购物、网上银行业务等。此类应用的特征是,交易产生的数据量少,签名只针对交易中的关键数据,比如帐号、时间、金额等等,这些数据在计算机和USB Key内都能以特定的格式编码和解码,方便用户对需签名数据进行逐项确认。

下面,以电子交易应用为例描述采用安全数字签名方案的整个系统。

如图2所示,电子交易系统至少包括以下三个组件:

(1)电子交易的服务端。位于电子交易服务提供商的一端,通常包含大型数据库和交易服务端软件,存储和处理服务内容、客户信息、以及交易信息等,由服务提供商确保高度安全性。

(2)电子交易的客户端软件。位于客户机上,是用户进行电子交易的操作平台,为用户提供基本的交易服务功能。接收具有安全保护的用户输入,与电子交易服务端进行数据交互,形成交易数据,并将交易数据发送给USB Key,得到数字签名结果后发送给服务端。

(3)签名设备USB Key。USB Key通过USB接口与客户端相连,存放用户的签名私钥和证书,具有需签名数据的确认功能以及签名运算功能,这种USB Key外形结构的典型实例如图3所示。

进一步地,图4示出本发明所述的USB Key典型的组成结构,只有与本发明的论述有关的装置和单元才在该图中图示说明。如该图所示,本发明的签名设备USB Key与现有的签名设备相比,多了需签名数据的确认装置,确保进入数字签名设备的交易数据是正确无误并符合用户意愿的。总的看来,该USB Key包括中央控制器,以及与中央控制器相连的加密与签名运算装置、需签名数据的确认装置、存储器、输入/输出接口。

中央控制器,用于控制和协调与之相连的其他装置。在实际应用中,中央控制器一种优选的实现方式是,硬件方面采用32位的ARM处理器,软件方面采用芯片操作系统(COS,Chip Operating System)。

加密与签名运算装置,能够保证指令与应答的机密性和完整性,能够保证签名密钥和运算过程的安全性。该装置一种优选的实现方式是,硬件上配置为协处理器,可以执行标准的多种长度的算术运算,比如乘法、求幂等。它可以直接执行一般的加解密功能,独立完成3DES/AES和RSA算法。它还可以在中央控制器的控制下完成由3DES/AES和RSA算法组成的混合密码体制,以实现加解密运算、数字签名等功能。

需签名数据的确认装置,用于将需签名数据输出给用户进行确认。

存储器,用于保存密钥、证书、交易数据等。对于该发明的方案来说,可以同时采用多种类型的存储器,包括RAM、EEPROM、Flash ROM等。

输入/输出接口,用于接收、处理和响应来自客户端的指令。当数字签名设备利用USB Key来实现时,输入/输出接口采用USB控制器。

应当指出,上述各个装置不限于以独立实体的形式存在,这些装置中每一个都可以作为中央控制器的一个组成部分,还可将其中任意几个装置结合为一个独立实体。

更进一步地,参照图4描述需签名数据的确认装置。该确认装置包括指令判断单元、数据解析单元、用户通知单元和用户操作指令接收单元。

指令判断单元,用于判断数字签名设备从客户端收到的指令的类型,并在判断为包含交易数据的指令时将其指令体传递给数据解析单元。该单元的具体功能是根据指令头来判断所接收的指令的类型,并通知相应设备进行处理。如果判断出收到的指令为包含交易数据的指令,则指令判断单元从该指令中分离出指令体传递给数据解析单元。

数据解析单元,用于从传递过来的指令体中解析出交易数据。数据解析单元使用与客户端和服务端一样的编码解码机制,使得同样的交易数据二进制文件在各处的显示一致,不至于出现二义性。数据解析单元的具体功能是检查包含交易数据的指令的指令体是否有格式和结构上的错误,从指令体中剥离格式标识符,解析出有意义的正确的交易数据,传输给用户通知单元。这种数据解析单元的一个实际例子是可扩展标记语言(XML)解析器。XML是一种用来结构化文件信息的标记语言,XML规范中对于如何标记文件的结构性有一个详细的法则,解析器就是根据这些法则编写的软件。XML以其标准的结构、严谨的文法、强大的描述能力、以及独立和开放性,在描述数据资源方面得到了广泛的应用。在进行电子交易的服务端、客户端和USB KEY内都使用同样的解析器。

应当指出,上述数据解析单元既可以独立存在,也可以作为中央控制器的一部分。另外,上述包含交易数据的指令可以是一个或多个二进制指令。而且在该发明中,向数字签名设备发送签名指令可以采用这样的方式,客户端先传一条命令指令,再传一条或多条数据指令。

用户通知单元,用于将解析出来的交易数据通知用户进行确认。该单元能够将解析后的交易数据逐项显示在屏幕上。如果交易数据量少,显示功能足够强大,就可以一次性将所有交易数据显示出来。这是为了检查进入USB Key内部的交易数据是否遭受篡改,以确保“所见即所签”。

用户操作指令接收单元,用于接收用户对所通知的交易数据发出的操作指令。数字签名设备通过用户操作指令接收单元检测到所有数据项都被确认无误时,才会进行签名;检测到任何数据项被否定时,都会拒绝签名。如图3所示,在签名USB Key上,用户操作指令接收单元包括确定(OK)和取消(Cancel)两个按键。用户根据自己的意愿对屏幕上显示的数据项进行确定或否定,确认数据项正确无误并符合用户意愿,就按下确定键,否则就按取消键。系统根据不同按键的按下识别用户的操作指令,以决定是否继续显示剩余数据项或是否进入签名。根据功能需求,用户操作指令接收单元还可以包括查看需要签名的数据用的按键,例如滚动翻页的方向键。也可以用触敏显示屏接收用户指令,在这种情况下,用户操作指令接收单元和用户通知单元结合起来构成人机交互单元。

基于上述实体和软件进行电子交易和数字签名的过程如图5所示,包括以下步骤:

在步骤501,用户使用客户端上的交易软件,实施基本的交易操作,向服务端发出交易请求。典型的用户操作,比如网上购物时浏览商品、填写订单,银行业务中的余额查询、转帐或支付等,有些操作不涉及敏感信息,无需签名,而有些操作涉及支付,用户必须对交易数据进行签名。

在步骤502,服务端处理交易请求。

在步骤503,服务端根据交易的安全性要求,判断是否需要用户对交易数据进行数字签名。如果不需要签名,转入步骤504;如果需要签名,转入步骤505。

在步骤504,对于不需要用户签名的交易,服务端直接给用户返回响应数据。

在步骤505,对于需要用户签名的交易,服务端向用户返回响应数据,并要求用户对交易数据进行确认和数字签名。

在步骤506,客户端交易软件收到服务端响应的交易数据,将交易数据传输给USB Key。

在步骤507,从第一项交易数据开始,用户交易数据在USB Key上逐项显示给用户进行确认。

在步骤508,用户判断交易数据项是否符合自己的意愿,如果不符合,比如由于木马程序的篡改出现交易金额错误,就转入步骤509;如果交易数据项符合用户意愿,就转入步骤512。

在步骤509,交易数据项不符合用户意愿的情况下,用户按下取消键,否定交易数据,拒绝签名。

在步骤510,一旦按下取消键或输入PIN错误,USB Key就拒绝签名,向客户端交易软件报告签名的失败结果和原因。

在步骤511,USB Key拒绝签名后,客户端交易软件向服务端报告交易失败,根据用户要求可以取消本次交易或重复本次交易。

在步骤512,在交易数据项正确无误并符合用户意愿的情况下,用户按下确定键。

在步骤513,USB Key判断是否所有交易数据项都已显示并确认。如果没有完成,则转入步骤507,继续显示下一项交易数据;如果所有交易数据项都已确认无误,进入步骤514。

在步骤514,在所有交易数据都确认无误并符合用户意愿的情况下,USBKey就开始对交易数据进行数字签名运算。这时候要访问存储在USB Key内的用户签名私钥,要求用户输入私钥保护PIN。

在步骤515,判断用户输入的PIN是否正确。如果错误,转入步骤510,签名失败;如果正确,进入下一步骤516。

在步骤516,USB Key对交易数据进行数字签名运算,运算过程和私钥都是安全的。

在步骤517,USB Key将签名结果返回给客户端交易软件。

在步骤518,客户端交易软件得到USB Key成功的数字签名结果后,将交易数据及相应的数字签名发送给服务端。

在步骤519,服务端将交易数据及相应的数字签名等记录存入数据库,作为以后验证签名的依据,用户不可抵赖或撤销此次电子交易。

在步骤520,得到用户的数字签名授权后,继续本次电子交易的剩余操作,比如转帐、交货等,然后结束交易或再进行其它交易。

客户端和服务端是电子交易的参与双方,经由Internet进行通信,遵循TCP/IP协议,需要通过加密和签名保证通信数据的机密性、完整性和真实性。

电子交易的服务端、客户端、数字签名USB Key遵循同一种数据描述格式,比如XML,按照统一格式对交易数据进行编码和解析,使得相同的二进制数据在服务端、客户端、USB Key的语法和语义不变,形成无差别的数据显示。

客户端的交易软件包含两方面的功能。其一,与服务端进行交互,完成基本交易功能;其二,集成签名软件,支持USB Key,通过USB Key驱动向USBKey发出数字签名命令,并接收USB Key的响应。当然也可以把签名软件与交易软件分开。

交易软件与USB Key的命令和数据交互,需要USB Key驱动的支持。目前的签名设备,存在于客户端的驱动是木马程序攻击的目标之一。木马程序替换或隐藏于驱动中的某个动态链接库文件,就可以截获和篡改进入USB Key的数据。可以在上述技术方案中增加检验驱动的完整性的过程以及相关装置,但这已没有必要,因为USB Key会对交易数据进行确认,如果数据遭受篡改,用户可以拒绝签名。

经由Internet进行的电子交易,存在许多安全隐患,用户不能随意对交易数据进行签名。本发明的技术方案是在不安全的电子交易环境中构建一种安全的数字签名环境,使得数字签名过程不会遭受恶意程序的攻击。

下面,以网上个人银行的转帐业务为例说明本发明。

电子交易过程中,不是所有交易数据都需要签名,比如余额查询、历史帐务查询,这些交易数据都不需用户签名,需要用户签名的数据是那些涉及资金流动的数据。因此,该实例从形成需要签名的交易数据开始。

以网上个人银行的异地跨行转帐业务为例,在用户进行数字签名之前,形成的交易数据主要包括图6中示出的数据项。

网上个人银行客户端软件要求用户对类似图6这样的交易数据进行确认,确认正确后进行数字签名,交易才会继续进行。

目前的网上银行,对交易数据的确认都是在客户端上完成的,用户确认完毕后,才将此交易数据传输给USB Key进行签名运算。在此假定,图6所示的数据是正确的交易数据,称为A记录,被木马程序篡改后的交易数据为B记录。用户查看A记录,确认无误后,就将A记录传输给USB Key。然而,隐藏在用户计算机上的木马程序会监控网上银行客户端软件与USB Key之间的通信,会截取A记录,然后将A记录中的支出金额篡改为20000.00元甚至更多。这样,A记录变成B记录后,传输给USB Key,导致用户签署的并不是刚才确认过的交易数据。

本发明方案的重点在于,将交易数据的确认从不安全的用户计算机转移到了安全的USB Key。

针对上述网上个人银行的异地跨行转帐业务,详细的处理流程如图7所示。

在步骤701,网上个人银行客户端软件形成正确的异地跨行转帐交易数据(A记录)。

在步骤702,服务端要求用户进行数字签名,用户同意签名后即将交易数据传输给USB Key。

在步骤703,USB Key收到交易数据后,从第一项开始显示数据,比如图6中的“交易类型:支出”。

在步骤704,用户判断该数据项是否符合意愿。

在步骤705,不符合意愿的话,就按下取消键。

在步骤706,USB Key拒绝签名,并向网上个人银行的客户端报告签名失败结果和原因。

在步骤707,客户端交易软件向服务端报告签名失败。

在步骤708,该数据项符合意愿的话,用户就按下确定键。

在步骤709,判断是否所有交易数据项都已确认完毕。如果确认完毕,则该流程进行到步骤711,否则进行到步骤710。

在步骤710,继续显示下一项交易数据。然后,该流程返回步骤704。

在步骤711,提示用户输入私钥保护PIN。

在步骤712,判断用户输入的PIN是否正确。如果正确,则该流程继续进行到步骤713,否则返回步骤706。

在步骤713,在USB Key内进行数字签名运算。

在步骤714,USB Key将签名结果返回给网上个人银行客户端软件。

在步骤715,客户端将交易数据及其签名返回给服务端。

在步骤716,服务端按用户要求将资金转出,并保存交易记录。

需要指出的是,因为USB Key支持的文件格式和数据量有限,所以本发明针对那些最后形成的要签名的数据只是少量关键文本数据的应用,比如电子交易。在这类应用中,需签名的数据易于进行编码和解析,易于按照特定格式在USB Key的屏幕上显示。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号