一种数字签名的装置及方法

文档序号:6586459阅读:150来源:国知局
专利名称:一种数字签名的装置及方法
技术领域
本发明涉及信息安全技术,特别是涉及一种在计算机系统中进行数字签名的装置及方法。
背景技术
由于电子商务和信息安全技术的迅速发展,数字签名装置犹如雨后春笋般纷纷涌现。数字签名装置可以直接通过其接口连接到台式计算机(PC)、便携式计算机、苹果计算机(MAC)或者其他网络设施,用户可以通过它进行个人身份认证和数字签名。当今,大多数数字签名装置都能完美地支持公开密钥基础设施(PKI)技术,因而逐渐成为产生密钥对和保存密钥对的理想载体,并且其内部带有中央处理器(CPU)的智能卡还能通过卡内操作系统(COS)对所产生的密钥对实行有效的控制和管理。而且由于数字签名装置的硬件特性,在其中驻留的程序不会被黑客程序所控制而泄漏存放在其中的保密数据,这样就大大提高了数字签名的安全性。因此,数字签名装置在电子商务、电子政务等领域都有非常广阔的应用空间。
目前的数字签名装置都包含主控芯片和带CPU的智能卡,主控芯片带有一个微处理机控制器(MCU),用来对整个装置的状态和工作进行控制和管理。智能卡包括COS和算法库,COS控制智能卡和外界信息的交换,管理智能卡存储器中的文件系统,并处理各种命令,算法库用来储存用于产生密钥对的各种算法。有些数字签名装置还包括诸如发光二极管(LED)的指示灯,用于对装置工作状态进行外在指示,便于用户了解装置工作是否正常。
虽然目前各种数字签名装置都以不同程度和在不同领域得到广泛运用,但是它们都不能较好地保证用户签名的安全性。由于在这些数字签名装置中只在内部包括了主控芯片、带CPU的智能卡,有的装置包含有指示灯,而都没有包含用户可以在外部进行操作的结构,因此用户对数字签名的操作和控制只能在客户机端进行,而不能在该装置上进行。这样,一旦将数字签名装置连接到客户机端后,用户在完成了个人识别码(PIN)的输入后,就不能控制对装置进行操作的合法性。例如,当用户准备使用数字签名装置进行签名时,无论是否进行了数字签名操作,诸如黑客程序或病毒程序的恶意程序都可以入侵该装置,冒充用户的一次甚至多次签名,用户却不能有丝毫的察觉,或者用户只看到指示灯在闪烁而不知道问题出在哪里,即使当用户察觉时,用户自己的秘密信息已经泄漏。同时,PIN在从客户机端输入到数字签名装置的过程中,也有可能被恶意程序记录下来,因此即使用户没有输入PIN,恶意程序也完全可以冒充用户的签名。由于数字签名在实际应用中可能涉及到诸如合同签字、资金支付、法律确认等一系列经济和法律问题,因此其安全性和有效性在电子商务和电子政务,甚至整个国家社会经济秩序中都占有非常重要的地位。不难想象,如果在商业合同或者政府文件上的签名是别人冒充的并被认为是合法有效,其后果将不堪设想。有鉴于此,目前市场上迫切需要能保障用户合法权益的安全级别更高的数字签名装置。

发明内容
本发明的目的是克服现有技术的不足,提供一种具有更高安全级别的数字签名装置,以及利用这种数字签名装置进行数字签名的方法。
本发明的目的是以如下技术方案予以实现的一种数字签名装置,包括主控芯片、带中央处理器(CPU)的智能卡,其中主控芯片用于管理和控制客户机端与智能卡之间的通信,智能卡用于对来自客户机端的命令进行解释执行,并保护私钥的安全性,其特征是,装置中还包括供用户从装置外部操作的用户操作部件和提示用户操作该操作部件的操作指示部件,所述用户操作部件和操作指示部件电连接在主控芯片的输入/输出(I/O)端口上。
用户操作部件可以是按键,操作指示部件可以是至少能发出两种颜色的光的LED。主控芯片和计算机的连接接口可以是通用串行总线(USB)接口。数字签名装置还可以包括电连接到主控芯片的智能卡插槽,智能卡位于所述插槽中。
一种利用上述数字签名装置实现数字签名的方法,它至少包括设置操作指示部件用于提示用户操作的第一种指示状态和提示用户已完成操作的第二种指示状态,第一种指示状态和第二种指示状态分别设置大于1个的指示模式,当数字签名装置接收到来自客户机端的签名命令时,设置操作指示部件为第一种指示状态,在接收到用户的操作信息后,设置操作指示部件为第二种指示状态,装置对签名命令数据进行签名,将签名后的数据返回到客户机端。
在上述数字签名方法中,第一种指示状态和第二种指示状态分别按预定的指示模式循环指示。
上述数字签名方法还可以进一步包括如下步骤在设置操作指示部件为第一种指示状态之前,对用户进行PIN验证;如果用户输入的PIN与智能卡中储存的PIN相符,设置操作指示装置为第一种指示状态;如果用户在预定次数内输入的PIN与智能卡中储存的PIN不符,智能卡自锁,返回错误信息。
上述数字签名方法还可以进一步包括如下步骤当数字签名装置接收来自客户机端的不是签名命令的其他命令时,装置直接处理命令数据,将处理后的信息返回给客户机端。
在上述数字签名方法中,在接收来自客户机端的命令或装置对命令数据进行处理或签名的步骤中,对于硬件传输错误,进行预定次数的重新收发;如果超过预定次数重新收发后还有错误,关闭操作指示部件。
通过以上的技术方案可以看出,用户在使用根据本发明的数字签名装置和方法进行数字签名时,当用户发出签名命令,数字签名装置的操作指示部件会设置为第一种指示状态,提醒用户在数字签名部件外部对用户操作部件进行操作,只有在用户对用户操作部件进行了手动操作后,智能卡才对用户的文件进行签名。例如,如果用户没有执行签名操作,而操作指示部件却显示为第二种指示状态,这就可以提醒用户有诸如黑客程序或病毒程序等的恶意程序在攻击硬件设备,正想冒充用户签名。或者,如果用户执行了签名操作,而恶意程序接着用户命令又发出一个签名命令,导致数字签名装置认为是两个签名,操作指示部件会以第二种指示状态的另一个指示模式指示用户还有一个签名,并提醒用户对用户操作部件进行操作,这样用户能清楚地识别各次签名的合法性。在这些情况下,只要用户不主动对用户操作部件进行操作或者再次操作,这种恶意攻击的企图就不会得逞,用户的签名就不会被冒充。因此用户在使用根据本发明的数字签名装置进行数字签名时,可以掌握签名的主动权,也就是可以在数字签名装置上对自己的签名操作进行控制,而不像现有技术那样,用户在使用装置时实际上已经丧失了对它的控制,这样可以完全防止自己的签名被冒充。本发明的装置和方法与现有技术相比,极大地提高了用户签名的安全性,提高了用户合法权益保护的安全级别,并极为有效地避免了用户可能遭受的无法挽回的巨大损失。


图1是根据本发明的数字签名装置的硬件构造示意图;图2是根据本发明的数字签名方法的流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步的描述。
如图1所示,数字签名装置由主控芯片101、带CPU的智能卡102、按键103和指示灯104组成。其中主控芯片101采用美国Microchip公司的单片机PIC16C745,其主要技术指标包括作为MCU载体的高性能、低功耗的精简指令系统计算机(RISC)芯片;USB接口;1个16位定时器,2个8位定时器;2个捕捉器/比较器/脉宽调制器;可提供高达25mA驱动电流的I/O端口。带CPU的智能卡102采用美国ATMEL公司的AT90S3232C,其主要技术指标包括高性能、低功耗8位RISC架构AVR微处理器;16位协处理器,内含单指令周期的16×16乘法器,可内置RSA、DSA等标准算法库,也可以开发自己的加密算法,并可快速实现认证和加密等功能;32K非易失存储器(Flash)程序区;32K电可擦除只读存储器(EEPROM)用户数据区;硬件随机数发生器;符合国际标准(ISO)7816的I/O端口。
在这里指示灯104是三色LED,它可以显示三种颜色绿、红、黄。LED灭定义为主控芯片101的USB接口或智能卡102出现硬件问题,需要技术人员进行维修;红绿闪烁定义为该次服务没有成功。第一种指示状态定义为某种颜色闪烁,用来提示用户收到签名命令,并提醒用户按下按键103,其三种指示模式分别为绿色闪烁、红色闪烁和黄色闪烁。第二种指示状态定义为某种颜色点亮,用来提示用户按键103已按下,其三种指示模式分别为红色点亮、黄色点亮和绿色点亮。
按键103为标准配件,可以随意选取。在装置中,智能卡102、LED104和按键103都用集成电路板上的导线电连接到主控芯片101的I/O端口。
如图2所示,当用户需要对客户机端的文件签名时,先将上述数字签名装置的USB接口和客户机端的USB接口相连,数字签名装置利用客户机端电源上电启动,主控芯片101的MCU程序对LED 104和按键103进行初始化,并打开USB中断。在步骤201中,MCU首先根据是否能读写带CPU的智能卡102以及USB接口是否能接收数据等信息,判断数字签名装置是否有硬件故障,如果没有硬件故障,为了区别于后续的签名操作指示,则在步骤202中用第二种指示状态的第三种指示模式,即点亮绿灯,表示装置工作状态正常;否则LED 104不显示,表示主控芯片101的USB接口或智能卡102有硬件故障,需要请技术人员进行维修,同时在步骤216中返回硬件故障信息。
MCU主程序包括三个模块USB接口读写模块、智能卡读写模块、按键和LED工作模块。当初始化成功后,在步骤203中,MCU打开中断并监听主控芯片101的USB接口,并在步骤204判断是否有数据输入,如果没有数据输入,则继续监听;如果有数据输入,则在步骤205关闭USB中断,在步骤206中由USB读写模块将输入数据传输给主控芯片101。
在步骤207中,MCU判断是否要读写带CPU的智能卡102,如果不是,在步骤217中返回错误信息;如果是要读写带CPU的智能卡102,则进一步在步骤208中判断输入数据是否是PIN验证命令。如果输入数据是PIN验证命令,则在步骤218中判断用户输入的PIN是否与带CPU的智能卡102中储存的PIN相符。如果相符,在步骤219中返回PIN正确消息,并把PIN错误计数器值清零;如果不符,则在步骤221中将PIN错误计数器值加1,并在步骤222中判断错误计数器值是否大于4,如果没有大于4,则允许用户重新输入,也就是将用户输入错误并要求重新输入的信息在步骤215中由USB读写模块返回到客户机端,在用户重新输入后,数字签名装置继续从步骤203开始进行后续步骤;如果计数器值已经大于4,也就是用户已经连续输入5次都错误,出于安全性的考虑,则在步骤223中智能卡102自锁,并返回PIN错误消息,用户不能再进行签名。步骤219中返回的PIN正确消息和步骤223中返回的PIN错误消息都在步骤215中由USB读写模块返回到客户机端。在这里需要说明的是,PIN错误计数器值在装置出厂时设置为0,而在装置从客户机端接口断开时,PIN错误计数器值不变,当PIN错误计数器值大于4时智能卡自锁,这是为了防止非法用户对PIN的穷举攻击。
如果在步骤208中判断数据不是PIN验证命令,则在步骤209中进一步判断数据是否是签名命令。如果不是签名命令,而是诸如用户身份认证命令、文件加密命令、数据加密命令、数据解密命令等其他命令,MCU将命令直接递交给智能卡102进行处理,并通过步骤215调用USB接口读写模块将智能卡102返回的数据回送给客户机端。
如果在步骤209中判断数据是签名命令,则在步骤210中进一步判断用户是否已经正确输入PIN,如果用户没有输入PIN或者输入的PIN不正确,在步骤220返回PIN未通过验证消息,并通过步骤215由USB读写模块将此消息返回客户机端。
在步骤210中,如果用户已经输入了正确的PIN,则在步骤211将LED104设置为第一种指示状态的第一指示模式,即绿色闪烁,提醒用户按下按键103,待用户按下按键103后,在步骤212 MCU接收到按键按下信息,在步骤213将LED 104设置为第二种指示状态的第一指示模式,即红色点亮,并在步骤214将签名数据递交给带CPU的智能卡102进行签名,在步骤215,USB读写模块将带CPU的智能卡102处理后的签名信息返回给客户机端。需要说明的是,为了防止用户按键时间过长和硬件电路抖动可能造成MCU误认为用户按了两次键,从用户按下按键到按键弹开被设定为是一次按键操作。另外,如果签名不成功,LED 104变为红绿闪烁,提示用户可能因为用户的失误造成此次操作没有成功,例如用户在没有输入PIN的情况下直接按下了按键103。如果在步骤212 MCU没有接收到按键按下信息,也就是用户没有按下按键103,则不进行签名操作,LED 104一直以绿色闪烁提醒用户。
在成功完成了一次签名操作后,如果用户还需要进行第二次签名,在客户机端发出签名命令后,MCU经过同样的判断过程判断出是签名命令并且前面输入的PIN正确,则在步骤211将LED 104设置为第一种指示状态的第二指示模式,即红色闪烁,在步骤212接收到按键103按下的信息后,在步骤213将LED 104设置为第二种指示状态的第二指示模式,即黄色点亮。如果用户需要进行第三次签名,则将LED 104设置为第一种指示状态的第三指示模式,即黄色闪烁,用户按下按键103后变为第二种指示状态的第三指示模式,即绿色点亮。用户可以无限次地进行签名操作,LED 104的状态则周而复始,循环点亮和闪烁,以提醒用户现在进行的签名是第几次签名,使用户做到心中有数,并能对一些意外情况进行及时处理。例如,用户在还没有在客户机端发出签名命令时,LED 104就变成绿色闪烁,或者用户只发出一次签名命令并只按了一次按键103,LED 104却变为红色闪烁,都说明可能有诸如黑客程序或病毒程序的恶意程序正在对装置进行攻击,此时用户可以取消其后的签名操作,而改在一个安全的系统环境下再进行,从而防止了恶意程序有可能对自己的签名进行冒充。
在上述过程中,向客户机端收发数据,或向智能卡102收发数据时,有硬件的传输错误,则再重新收发3次,如果还有错误,则认为是硬件出错,不再进行收发数据的尝试,LED 104关闭,提醒用户联系相关技术人员进行维修。
上面给出了本发明的一个具体实施例,但是本领域技术人员可以知道,本发明还可以有不同的替代方式,例如主控芯片的接口可以是通用串行总线(COM)接口,并且可以在数字签名装置中添加一个智能卡插槽,将原来焊接智能卡的焊点焊接到智能卡插槽上,这样可以像移动电话主机和用户识别模块(SIM)卡一样,实现机卡分离。除了三色灯以外,装置中的指示灯也可以是四色灯、五色灯等等,或者是三个、四个或五个单色灯,只要它们能用不同的颜色的点亮和闪烁表示不同的状态即可。操作指示部件除了用诸如LED的指示灯以外,也可以用声音提示或液晶显示等其他方式,只要能让用户清楚地知道自己现在要进行的是第几次签名即可。另外,主控芯片和带CPU的智能卡也完全可以选用能同样完成本发明的其他公司的其他产品。因此可以理解,具体实施例只是对本发明的进一步描述,并不能用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数字签名装置,包括主控芯片、带中央处理器(CPU)的智能卡,其中主控芯片用于管理和控制客户机端与智能卡之间的通信,智能卡用于对来自客户机端的命令进行解释执行,并保护私钥的安全性,其特征是,装置中还包括供用户从装置外部操作的用户操作部件和提示用户操作该操作部件的操作指示部件,所述用户操作部件和操作指示部件电连接在主控芯片的输入/输出(I/O)端口上。
2.根据权利要求1的数字签名装置,其特征是,所述用户操作部件是按键。
3.根据权利要求1的数字签名装置,其特征是,所述操作指示部件是至少能发出两种颜色光的发光二极管(LED)。
4.根据权利要求1的数字签名装置,其特征是,所述主控芯片和客户机端的连接接口为通用串行总线(USB)接口。
5.根据权利要求1的数字签名装置,其特征是,所述数字签名装置进一步包括电连接到主控芯片的智能卡插槽,智能卡位于所述插槽中。
6.一种利用权利要求1的数字签名装置实现数字签名的方法,其特征是,它至少包括设置操作指示部件用于提示用户操作的第一种指示状态和提示用户已完成操作的第二种指示状态,第一种指示状态和第二种指示状态分别设置大于1个的用于指示用户操作次数的指示模式;当数字签名装置接收到来自客户机端的签名命令时,设置操作指示部件为第一种指示状态;在接收到用户的操作信息后,设置操作指示部件为第二种指示状态;装置对签名命令数据进行签名,将签名后的数据返回到客户机端。
7.根据权利要求6的实现数字签名的方法,其特征是,第一种指示状态和第二种指示状态分别按预定的指示模式循环指示。
8.根据权利要求6的实现数字签名的方法,其特征是,在所述步骤中进一步包括如下步骤在设置操作指示部件为第一种指示状态之前,对用户进行个人识别码(PIN)验证;如果用户输入的PIN与智能卡中储存的PIN相符,设置操作指示装置为第一种指示状态;如果用户在预定次数内输入的PIN与智能卡中储存的PIN不符,智能卡自锁,返回错误信息。
9.根据权利要求6的实现数字签名的方法,其特征是,在所述步骤中进一步包括如下步骤当数字签名装置接收来自客户机端的不是签名命令的其他命令时,装置直接处理命令数据,将处理后的信息返回给客户机端。
10.根据权利要求6的实现数字签名的方法,其特征是,在所述步骤中进一步包括如下步骤在所述接收来自客户机端的命令或装置对命令数据进行签名的步骤中,对于硬件传输错误,进行预定次数的重新收发;如果超过预定次数重新收发后还有错误,关闭操作指示部件。
全文摘要
本发明提供了一种数字签名装置及用该装置进行数字签名的方法。数字签名装置包含主控芯片、带CPU的智能卡,以及电连接到主控芯片I/O端口的用户操作部件和操作指示部件。当数字签名装置接收到来自客户机端的签名命令时,设置操作指示部件为用于提示用户操作的第一种指示状态,在接收到用户的操作信息后,设置操作指示部件为用于提示用户已完成操作的第二种指示状态,装置对签名命令数据进行签名,将签名后的数据返回到客户机端。每种指示状态都包含多于一种的用于区分不同签名次数的指示模式。使用本发明有效避免了诸如黑客程序的恶意程序对用户数字签名的攻击,提高了用户数字签名的安全级别。
文档编号G06F12/14GK1482550SQ02129590
公开日2004年3月17日 申请日期2002年9月9日 优先权日2002年9月9日
发明者冯登国, 荆继武, 曹政, 魏志东 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1