签名设备及其操作指令执行方法

文档序号:7701614阅读:246来源:国知局
专利名称:签名设备及其操作指令执行方法
技术领域
本发明涉及信息安全技术领域,尤其涉及签名设备和该签名设备对操作指 令才丸4于的方法。
背景技术
网上银行的推广方便了人们的生活,但由于网上银行的交易需要通过网络 进行,使得网上银行交易存在安全隐患,并且不法分子针对网上银行的攻击手 段也变化多端,因此,网络银行健康发展首要解决的是安全问题。银行作为专业金融服务机构,具备比较完善的安全管理流程;而网上银行 用户往往没有足够的意识和技术能力来保护客户端的安全;同时,互联网上各 种木马和黑客软件的泛滥,也在严重威胁客户端的安全环境。因此,网上银行 的安全问题中客户端的安全尤为重要。为了保证用户的资金安全,银行采取了多种措施来提高用户身份认证的安 全性。目前网上银行使用最普遍的是基于智能卡的USB-KEY (智能密钥)安全数 字证书。USB-KEY结合了智能卡技术与PKI (Public Key Infrastructure ,公 开密钥体系)技术,使用内置操作系统的智能卡芯片来保护用户的私钥,可以 实现可靠的数字身份认证和数字签名。在采用的上述USB-KEY进行网上银行交易的过程中,发明人发现现有技术 中至少存在如下问题目前常用的USB-KEY,所有操作都是通过计算机向USB-KEY 发送指令来进行。用户进行资金交易时需要输入的交易指令,包括对方账号、 转账金额等关键数据,以及交易授权时需要输入的USB-KEY密码,都是通过计 算机键盘输入,并在计算机的显示器上显示的。由于客户端计算机环境的不安全,黑客木马控制了用户的计算机后,黑客就可以在用户完全不知情的情况下获取用户的账号和密码,如果用户的USB-KEY在连接在计算机上,由于此时的 USB-KEY是完全独立接受计算机控制的,此时黑客完全可以通过控制用户的计算 机并利用USB-KEY盗耳又用户账户里的资金。发明内容本发明提供一种签名设备及其操作指令执行方法,加强网上银行客户端的 安全,使得黑客在控制计算机的情况下依然不能盗取用户账户中的资金。 为达到上述目的,本发明采用如下技术方案 一种签名设备的操作指令执行方法,包括 接收上位机发送的操作指令; 分析所述操作指令是否为关键操作指令;如果所述操作指令为关键操作指令,则判断是否接收到用户通过签名设备 输入的确认信号;如果接收到用户输入的确认信号,则执行所述关键操作指令。 一种签名设备,包括接收模块,用于接收上位机发送的操作指令;输入模块,用于供用户输入确认信号;分析模块,用于分析所述操作指令是否为关键操作指令;判断模块,用于在所述操作指令为关键操作指令时,判断是否接收到用户通过签名设备的输入才莫块输入的确认信号;执行模块,用于在接收到用户输入的确认信号时执行所述关键操作指令。 本发明提供的签名设备及其操作指令执行方法,用户能够通过签名设备输入确认信号;并且在签名设备接收到的操作指令为关键操作指令时,需要用户通过签名设备输入确认信号,才能执行上述关键操作指令。采用该方案以后, 即使黑客控制了用户的计算机,并通过控制的计算机向签名设备发送相关的操 作指令,如果该操作指令为涉及密钥或者资金转移等情况的关键操作指令,则需要通过签名设备输入确认信号后才能进行下一步的操作,否则是不能成功完成密钥或者资金转移等操作的;由于黑客只能通过网络控制用户的计算机,并 不能在现实中通过签名设备输入确认信号,这样就保证了网上4艮行用户账户和 资金的安全,使得黑客在控制计算机的情况下依然不能盗取用户账户中的资金。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例1中签名指令执行的流程图;图2为本发明实施例2中签名指令执行的流程图;图3为本发明实施例3中签名指令执行的流程图;图4为本发明实施例4中签名指令执行的流程图;图5为本发明实施例5中签名设备的原理图。
具体实施方式
本发明实施例提供一种签名设备的操作指令执行方法,该签名设备首先接 收上位机发送的操作指令,并分析该操作指令是否为关键操作指令;在所述操 作指令为关键操作指令时,该签名设备需要等待用户通过签名设备输入确认信 号,并判断是否接收到用户通过签名设备输入的确认信号;如果接收到用户输 入的确认信号,则该签名设备可以执行所述关键操作指令。本发明实施例还提供一种签名设备,包括接收模块、输入模块、分析模 块、判断模块、和执行模块。其中,接收模块用于接收上位机发送的操作指令; 输入模块用于供用户输入确认信号;分析模块用于分析所述操作指令是否为关 键操作指令;判断模块用于在所述操作指令为关键操作指令时,判断是否接收 到用户通过签名设备的输入模块输入的确认信号;执行模块用于在接收到用户 输入的确认信号时执行所述关键操作指令。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1:本实施例提供的签名设备中内置了 SHA1 (Secure Hash Algorithm安全哈 希算法)和RSA算法。该签名设备从上位机中接收指令,接收到的指令一般为 APDU (应用协议数据单元)格式的指令,该签名设备根据指令完成各种操作。 上位机中安装有配合签名设备使用的中间件,它向上层应用程序(如IE浏览器) 提供微软定义的CryptoAPI接口。当应用程序调用接口时,中间件生成相应的 APDU指令并发给签名设备,通知签名设备进行操作。下面以上位机指示签名设 备进行签名操作为例,详细说明签名设备执行指令的具体过程,如图1所示, 本发明实施例提供的签名设备的操作指令执行方法包括如下步骤101、上4立才几向签名"i殳备下发MSE (Make Security Environment创建安全 环境)指令,以指示签名设备约定所采用的签名算法,这样才能够保证签名设 备完成的签名操作是上位机能够识别的。上位机下发的MSE指令为APDU指令序列,以该MSE指令指示签名设备采用SHA1-RSA作为签名算法,并且指示了 RSA密钥ID,则该APDU指令序列的所包 含的内容依次为MSE指令标识、签名算法为SHAl-RSA的设置标识、RSA的密 钥ID,具体指令序列大致如下00 22 41 B6 07 80 01 12 81 02 00 01…102、 签名设备接收到MSE指令后,通过上述的密钥ID设置当前使用的RSA 密钥;103、 签名"i殳备向上位机返回预先约定的表示操作成功的状态码0x9000;104、 由于用户需要签名设备进行签名操作,故而用户需要通过上位机向签 名设备下发包含待签名数据的hash (哈希)指令;并且该hash指令也可以通过 APDU指令表示,在该APDU指令中包括hash指令的标识和待签名数据,具体的 APDU指令序列大致为00 2a 90 80...105、 签名设备接收到待签名数据后,对待签名数据进行hash运算,具体 运算为使用上位^W旨定的SHAl算法对待签名数据进行运算,并将计算结果缓 存在设备内部;106、 向上位机返回操作成功的状态码Ox 9000;此时也可以把hash运算结 果返回给上位机。107、 上位机向签名设备下发以APDU格式表示的签名指令,该上位机下发 的APDU指令序列为00 2a 9E 00 00 00;108、 签名设备分析所述操作指令是否为关键操作指令,如果该操作指令为 关键操作指令,则执行109;如果该操作指令为非关键操作指令,则执行114;具体地,关键操作指令主要包括签名指令、生成密钥指令、删除密钥指令、 读取密钥指令(签名设备允许读取密钥的情况下)和解密指令;或者所述关键 操作指令为对密钥进行操作的指令;109、 由于签名操作为关键操作,故而签名设备接收到签名指令后,需要等 待用户输入确认信号,本过程中签名设备向上位机返回事先约定的标识"需要等待按键的"状态码0x6666;同时签名设备还可以执行如下操作 第一、签名设备开始计时;第二、通过视频播放器或音频播放器提示用户输入确认信号,或者指示上 位机视频播放器或音频播放器提示用户输入确认信号;例如签名设备可以通 过灯光、声音等方式提示用户输入确认信号,上位机也可以根据签名设备返回 的状态码,通过图像、文字、声音等方式提示用户输入确认信号;110、 签名设备判断是否接收到用户通过签名设备输入的确认信号;如果接 收到用户输入的确认信号,则执行113;如果没有接收到用户输入的确认信号, 则执行lll;为了保证用户具有操作权限,本实施例还可以在用户输入确认信号之前由 签名设备对用户身份进行认证,具体认证方式包括但不限于PIN (Personal Identification Number个人标识码)码验证方式、生物特征验证方式等。只有本过程中用户可以通过但不限于如下方式输入确认信号用户通过签名设 备上按键输入的确认信号、用户通过签名设备输入的语音确认信号、或者用户 通过签名设备输入的生物特征确认信号;111、 如果上述过程中签名设备启动了计时方案,则需要判断计时得到的时 间是否超过预定时间;如果计时得到的时间超过了预定时间,则取消对接收到 的操作指令的执行,签名设备结束操作,并向上位机返回事先约定的表示操作 取消的状态码0x7777;如果计时得到的时间没有超过了预定时间,则执行112;112、 由于上位机收到状态码0x6666后,上位机可以向签名设备反复发送获取签名结果的指令或者向签名设备发送取消签名的指令;故而该过程中需要 判断是否接收到上位机发送的获取签名结果的指令或取消签名的指令;如果接 收到上位机发送的获取签名结果的指令,则返回执行109;如果接收到上位机发 送的取消签名的指令,则流程结束;
上述的获取签名结果的指令对应的APDU指令序列为80 E3 00 00 00 00;
上述的取消签名指令对应APDU指令序列为80 E5 00 00 00 00;
113、 签名设备根据MSE指令所指定的算法标识,在步骤105中计算得到的 hash值前面加上X. 509规范所定义的算法标识串,再按照公钥密码学标准
(PKCS#1)进行补位;例如SHA-1算法标识串是30 20 30 Oc 06 08 2a 86 48 86 f7 Od 02 05 05 00 04 10;
对补位后的数据进行RSA运算以得到签名结杲,并同时需要向上位机发送 该签名结果,并返回4喿作成功的状态码Ox 9000;
114、 直接执行非关键操作指令。
通过上述过程,已经完成了签名设备对待签名数据的签名操作,由于签名 操作是一个关键操作,所以签名设备在接收到指令之后需要用户通过签名设备 输入确认信号才能执行该操作,以防止黑客控制用户的计算机后直接进行签名 操作,避免了黑客控制用户网上银行进行密钥或者资金转移等操作;由于黑客 只能通过网络控制用户的计算机,并不能在现实中通过签名设备输入确认信号, 这样就保证了网上银行用户账户和资金的安全,使得黑客在控制计算机的情况 下依然不能盗取用户账户中的资金。
在本实施例中,步骤105中进行的hash运算可以再接收到用户输入的确认 信息之后进行。在此情况下,接收到包含待签名数据的hash指令后,签名设备 向上位机返回才喿作成功的状态码0x9000。在本实施例中,签名设备中对待签名数据进行的hash运算还可以在上位机 中完成,上位机使用SHA1算法对待签名数据进行运算,并将计算结果下发给签 名设备。
本发明实施例主要针对操作指令为关键操作指令的执行过程,在签名设备 接收到的操作指令为非关键操作指令时,签名设备可以直接执行所述操作指令。
在实际运用时,可以通过解密指令来完成签名操作,这种情况下,在本实 施例提供的签名设备在接收到解密指令后,需要等待用户输入确认信号,并在 接收到用户输入的确认信号后执行解密指令。
对于进行签名操作而言,除了上述的实现方式以外,还可以采用但不限于 如下三种实现方式
第一、在上位机中将待签名数据进行hash运算,然后,由签名设备在运算 后的hash值前面加上X. 509规范所定义的算法标识串,按照公钥密码学标准 (PKCS#1)进行补位,并对补位后的数据进行RSA运算以得到签名结果;
第二、在上位机中将待签名数据进行hash运算,并且在运算后的hash值 前面加上X. 509规范所定义的算法标识串,并将添加算法标识串之后的hash值 发送给签名设备,而签名设备在收到确认信号之后并不需要添加X. 509规范所 定义的算法标识串,而是直接按照公钥密码学标准(PKCS#1 )进行补位,并对 补位后的数据进行RSA运算以得到签名结果;
第三、在上位机中依次对待签名数据进行hash运算、添加X. 509规范所定 义的算法标识串以及按照公钥密码学标准(PKCS#1)进行补位,并将补位后的 数据发送给签名设备;而签名设备只需要对补位后的数据进行RSA运算以得到 签名结果。
实施例2:本实施例提供的签名设备中内置了 SHA1、 MD5和RSA算法。该签名设备从 上位机中接收指令,接收到的指令一般为APDU (应用协议数据单元)格式的指 令,该签名设备根据指令完成各种操作。上位机中安装有配合签名设备使用的 中间件,它向上层应用程序(如IE浏览器)4是供孩^欠定义的CryptoAPI接口。 当应用程序调用接口时,中间件生成相应的APDU指令并发给签名设备,通知设 备进行操作。下面以上位机指示签名设备进行签名操作为例,详细说明签名设 备执行指令的具体过程,如图2所示,本发明实施例提供的签名设备的操作指 令执行方法包括如下步骤
201、 上位机向签名设备下发MSE指令,以指示签名设备约定所采用的签名 算法,这样才能够保证签名设备完成的签名操作是上位机能够识别的。
上位机下发的MSE指令为APDU指令序列,以该MSE指令指示签名设备采用 SHA1-RSA作为签名算法,并且指示了 RSA密钥ID,则该APDU指令序列的所包 含的内容依次为MSE指令标识、签名算法为SHAl-RSA的i殳置标识、RSA的密 钥ID,具体指令序列大致如下
00 22 41 B6 07 80 01 12 81 02 00 01…
202、 签名设备接收到MSE指令后,通过上述的密钥ID设置当前使用的RSA 密钥;
203、 签名设备向上位机返回预先约定的表示梯:作成功的状态码0x9000。
204、 由于用户需要签名设备进行签名操作,故而用户需要通过上位机向签 名设备下发包含待签名数据的hash (哈希)指令;并且该hash指令也可以通过 APDU指令表示,在该APDU指令中包括hash指令的标识和待签名数据,具体的 APDU指令序列大致为:00 2a 90 80...
205、 签名设备接收到待签名数据后,使用指定算法对待签名数据进行hash运算,具体运算为使用上位机指定的SHA1算法对待签名数据进行运算,并将 计算结果和hash算法緩存在设备内部。
206、 签名设备向上位机返回操作成功的状态码Ox 9000,此时也可以把hash 运算结果返回给上位机。
207、 上位机向签名设备下发以APDU格式表示的签名指令,该上位机下发 的APDU指令序列为00 2a 9E 00 00 00。
208、 签名设备分析步骤205中签名设备緩存的hash算法是否为SHAl算法, 如果缓存的hash算法是SHAl算法,则执行209;如果不是SHAl算法,则执行 214;
具体地,签名设备根据上位机下发的hash指令中指定的hash算法判断签 名设备执行的操作是否为需要按键确认的关键操作。在本实施例中,上位机与 签名设备约定若接收到的hash指令中指定的hash算法为SHAl算法,则需要 按键确认;若签名设备接收到的hash指令中指定的hash算法为MD5算法,则 不需要按键确认,可以直接执行操作指令;
在实现过程中,还可以采用如下方式来判断是否采用了特定hash算法将 205中待签名数据经过哈希运算后得到哈希值的长度与预定长度进行比较,如果 待签名数据经过哈希运算后得到哈希值的长度与预定长度相同,则表示该签名 操作需要等待用户输入确认信息,是一个采用了特定hash算法的待签名数据, 执行209;如果待签名数据经过哈希运算后得到哈希值的长度与预定长度不相 同,则不需要等待用户输入确认信息,直接执行214;
例如可以将预定长度设置为20字节或者16字节(分别对应的哈希算法 SHAl或者MD5 ),这样表示只有采用SHAl或者MD5算法进行签名时才需要等待 用户输入确认信息;而采用SSL通信过程中常用的SSL3_SHAMD5算法(对应长度为36字节)则不需要等待用户输入确认信息;
209、 签名设备接收到签名指令后,等待用户输入确认信号,本过程中签名 设备向上位机返回事先约定的标识"需要等待按键的"状态码如0x6666;同时 签名设备还可以执行如下操作
第一、签名设备开始计时;
第二、通过视频播放器或音频播放器提示用户输入确认信号,或者指示上 位机视频播放器或音频播放器提示用户输入确认信号;例如签名设备可以通 过灯光、声音等方式l^示用户输入确认信号,上位才几也可以#4居签名设备返回 的状态码,通过图像、文字、声音等方式提示用户输入确认信号。
210、 签名设备判断是否接收到用户通过签名设备输入的确认信号;如果接 收到用户输入的确认信号,则执行213;如果没有接收到用户输入的确认信号, 则执行211。
为了保证用户具有操作权限,本实施例还可以在用户输入确认信号之前由 签名设备对用户身份进行认证,具体认证方式包括但不限于PIN码验证方式、 生物特征验证方式等。只有在用户身份认证通过之后才允许用户输入确认信号;
本过程中用户可以通过但不限于如下方式输入确iM言号用户通过签名设 备上按键输入的确认信号、用户通过签名设备输入的语音确认信号、或者用户 通过签名设备输入的生物特征确认信号。
211、 如果上述过程中签名设备启动了计时方案,则需要判断计时得到的时 间是否超过预定时间;如果计时得到的时间超过了预定时间,则取消对接收到 的操作指令的执行,签名设备结束操作,并向上位机返回事先约定的表示操作 取消的状态码0x7777;如果计时得到的时间没有超过了预定时间,则执行212。
212、 由于上位机收到状态码0x6666后,上位机可以向签名设备反复发送获取签名结果的指令或者向签名设备发送取消签名的指令;故而该过程中需要 判断是否接收到上位机发送的获取签名结果的指令或取消签名的指令;如果接 收到上位机发送的获取签名结果的指令,则返回执行209;如果接收到上位机发 送的取消签名的指令,则流程结束。
上述的获取签名结果的指令对应的APDU指令序列为80 E3 00 00 00 00;
上述的取消签名指令对应APDU指令序列为80 E5 00 00 00 00。
213、 签名设备根据MSE指令所指定的算法标识,在步骤204中接收到的hash 值前面加上X. 509 >见范所定义的算法标识串,再按照/>钥密码学标准(PKCS#1) 进行补位;例如SHA-1算法标识串是30 20 30 Oc 06 08 2a 86 48 86 f7 Od 02 05 05 00 04 10;
对补位后的数据进行RSA运算以得到签名结果,并同时需要向上位机发送 该签名结果,并返回操作成功的状态码0x9000。
214、 直接执行非关键操作指令。
通过上述过程,已经完成了签名设备对待签名数据的签名操作,由于在签 名搡作之前,需要用户通过签名设备输入确认信号才能执行该操作,以防止黑 客控制用户的计算机后直接进行签名操作,避免了黑客控制用户网上银行进行 密钥或者资金转移等操作;由于黑客只能通过网络控制用户的计算机,并不能 在现实中通过签名设备输入确认信号,这样就保证了网上银行用户账户和资金 的安全,使得黑客在控制计算机的情况下依然不能盗取用户账户中的资金。
实施例3:
本实施例提供的签名设备中内置了 RSA算法。该签名设备从上位机中接收 指令,接收到的指令一般为APDU (应用协议数据单元)格式的指令,该签名设 备根据指令完成各种操作。上位机中安装有配合签名设备使用的中间件,它向上层应用程序(如IE浏览器)提供微软定义的CryptoAPI接口。当应用程序调 用接口时,中间件生成相应的APDU指令并发给签名设备,通知设备进行操作。 下面以上位机指示签名设备进行签名操作为例,详细说明签名设备执行指令的 具体过程,如图3所示,本发明实施例提供的签名设备的操作指令执行方法包 括如下步骤
301、 上位机向签名设备下发MSE指令,以指示签名设备约定所采用的签名 算法,这样才能够保证签名设备完成的签名操作是上位机能够识别的。
上位机下发的MSE指令为APDU指令序列,以该MSE指令指示签名设备釆用 SHA1-RSA作为签名算法,并且指示了 RSA密钥ID,则该APDU指令序列所包含 的内容依次为MSE指令标识、签名算法为SHAl-RSA的设置标识、RSA的密钥 ID,具体指令序列大致如下
00 22 41 B6 07 80 01 12 81 02 00 01…
302、 签名设备接收到MSE指令后,通过上述的密钥ID设置当前使用的RSA 密钥。
303、 签名设备向上位机返回预先约定的表示操作成功的状态码0x9000;
304、 上位机对待签名数据使用SHA1算法进行hash运算后得到相应的hash 值,并将该hash值发送给签名设备,上位机通过APDU指令表示来下发数据, 该APDU指令中包括hash指令的标识和hash值,具体而言,上位机下发的APDU 指令序列如下00 2a 90 81 14…
305、 签名设备接收到待签名数据的hash值后,把接收到的hash值緩存在 设备内部。
306、 签名i殳备向上位机返回操作成功的状态码0x9000。
307、 上位机向签名设备下发以APDU格式表示的签名指令,该上位机下发的APDU指令序列为00 2a 9E 00 00 00。
308、 签名设备分析待签名数据的hash值长度是否等于特定hash算法对应 的长度,如果hash值长度等于特定hash算法对应的长度,则执行309;否则执 行314;
例如在本实施例中将特定hash算法定为SHA1,其对应的hash值长度分
别为20字节,这样表示只有釆用SHA1 (长度对应20字节)进行签名时才需要
等待用户输入确认信息;而采用MD5算法(对应长度为16字节)或SSL通信过
程中常用的SSU—SHAMD5算法(对应长度为36)则不需要等待用户输入确认信 自
309、 签名设备接收到签名指令后,等待用户输入确认信号,本过程中签名 设备向上位机返回事先约定的标识"需要等待按键的"状态码0x6666;同时签 名设备还可以执行如下操作
第一、签名设备开始计时;
第二、通过视频播放器或音频播放器提示用户输入确认信号,或者指示上 位机视频播放器或音频播放器提示用户输入确认信号;例如签名设备可以通 过灯光、声音等方式提示用户输入确认信号,上位机也可以根据签名设备返回 的状态码,通过图像、文字、声音等方式提示用户输入确认信号;
310、 签名设备如果接收到用户输入的确认信号,则执行313;如果没有接 收到用户输入的确认信号,则执行311;
为了保证用户具有操作权限,本实施例还可以在用户输入确认信号之前由 签名设备对用户身份进行认证,具体认证方式包括但不限于PIN码验证方式、 生物特征验证方式等。只有在用户身份认证通过之后才允许用户输入确认信号;
本过程中用户可以通过但不限于如下方式输入确认信号用户通过签名设备上按键输入的确认信号、用户通过签名设备输入的语音确认信号、或者用户
通过签名设备输入的生物特征确认信号;
311、 如果上述过程中签名设备启动了计时方案,则需要判断计时得到的时 间是否超过预定时间;如果计时得到的时间超过了预定时间,则取消对接收到 的操作指令的执行,签名设备结束操作,并向上位机返回事先约定的表示操作 取消的状态码0x7777;如果计时得到的时间没有超过了预定时间,则执行312;
312、 由于上位;fe/L收到状态码0x6666后,上位;fe/L可以向签名设备反复发送 获取签名结果的指令或者向签名设备发送取消签名的指令;如果接收到上位机 发送的获取签名结果的指令,则返回执行309;如果接收到上位机发送的取消签 名的指令,则流程结束;
上述的获取签名结果的指令对应的APDU指令序列为80 E3 00 00 00 00; 上述的取消签名指令对应APDU指令序列为80 E5 00 00 00 00;
313、 签名设备根据MSE指令所指定的算法标识,在步骤305中接收到的hash 值前面加上X. 509规范所定义的算法标识串,再按照公钥密码学标准(PKCS#1) 进行补位;例如SHA-1算法标识串是30 20 30 Oc 06 08 2a 86 48 86 H Od 02 05 05 00 04 10;
对补位后的数据进行RSA运算以得到签名结果,并同时需要向上位机发送 该签名结果,并返回操:作成功的状态码0x9000,流程结束;
314、 直接执行该操作指令。
通过上述过程,已经完成了签名设备对待签名数据的签名操作,由于待签 名数据的hash值长度是特定的,所以签名设备在接收到指令之后需要用户通过 签名设备输入确认信号才能执行该操作,以防止黑客控制用户的计算机后直接 进行签名操作,避免了黑客控制用户网上银行进行密钥或者资金转移等操作的;由于黑客只能通过网络控制用户的计算机,并不能在现实中通过签名设备输入 确认信号,这样就保证了网上银行用户账户和资金的安全,使得黑客在控制计 算机的情况下依然不能盗取用户账户中的资金。
实施例4
本实施例提供的签名设备中内置了 RSA算法。该签名设备从上位机中接收 指令,接收到的指令一般为APDU (应用协议数据单元)格式的指令,该签名设 备根据指令完成各种操作。上位机中安装有配合签名设备使用的中间件,它向 上层应用程序(如IE浏览器)提供微软定义的CryptoAPI接口。当应用程序调 用接口时,中间件生成相应的APDU指令并发给签名设备,通知设备进行操作。 下面以上位机指示签名设备进行签名操作为例,详细说明签名设备执行指令的 具体过程,如图4所示,本发明实施例提供的签名设备的操作指令执行方法包 括如下步骤
401、上位机向签名设备下发MSE指令,设置RSA运算使用的密钥。 上位机下发的MSE指令为APDU指令序列,以该MSE指令指示签名设备釆用 RSA算法,并且指示了 RSA密钥ID,则该APDU指令序列的所包含的内容依次为 MSE指令标识、RSA算法标识、RSA的密钥ID,具体指令序列大致如下 00 22 81 B8 07 80 01 80 84 02 00 23
402、签名设备接收到MSE指令后,通过上述的密钥ID设置当前使用的RSA 密钥。
403、签名设备向上位机返回预先约定的表示操作成功的状态码0x9000;
4(M、上位机对待签名数据使用特定的hash算法对待签名数据进行hash运 算,将hash运算后得到的相应的hash值按照X. 509规范所定义的算法标识串, 再按照公钥密码学标准(PKCS#1 )进行补位;例如SHA-1算法标识串是30 2030 0c 06 08 2a 86 48 86 f7 0d 02 05 05 00 04 10;,并将补位后的hash值 发送给签名设备。
405、 签名设备接收到补位后的hash值后,把接收到的hash值缓存在设备 内部。
406、 签名i殳备向上位冲几返回操作成功的状态码0x9000。
407、上位机向签名设备下发以APDU格式表示的解密指令,该上位机下发的 APDU指令序列为00 2A 80 86 ...
408、 签名设备分析接收到的数据去掉补位和算法标识符后的hash值长度 是否等于特定hash算法对应的长度,如果hash值长度等于特定hash算法对应 的长度,则执行409;否则执行414;
例如可以将特定hash算法定为SHA1或者MD5,其对应的hash值长度分 别为"字节或者16字节,这样表示只有采用SHA1或者MD5算法(长度对应20 字节或16字节)进行签名时才需要等待用户输入确认信息;而采用SSL通信过 程中常用的SSU_SHAMD5算法(对应长度为36字节)则不需要等待用户输入确 认信息;
409、 签名设备接收到解密指令后,等待用户输入确认信号,本过程中签名 设备向上位机返回事先约定的标识"需要等待按^t的,,状态码0x6666;同时签 名设备还可以执行如下4喿作
第一、签名设备开始计时;
第二、通过视频播放器或音频播放器提示用户输入确认信号,或者指示上 位机视频播放器或音频播放器提示用户输入确认信号;例如签名设备可以通 过灯光、声音等方式提示用户输入确认信号,上位机也可以根据签名设备返回 的状态码,通过图像、文字、声音等方式提示用户输入确认信号;410、 签名设备如果接收到用户输入的确认信号,则执行413;如果没有接 收到用户输入的确认信号,则执行411;
为了保证用户具有操作权限,本实施例还可以在用户输入确认信号之前由 签名设备对用户身份进行认证,具体认证方式包括但不限于PIN码验证方式、
本过程中用户可以通过但不限于如下方式输入确认信号用户通过签名设 备上按键输入的确认信号、用户通过签名设备输入的语音确认信号、或者用户 通过签名设备输入的生物特征确认信号;
411、 如果上述过程中签名设备启动了计时方案,则需要判断计时得到的时 间是否超过预定时间;如果计时得到的时间超过了预定时间,则取消对接收到 的操作指令的执行,签名设备结束操作,并向上位机返回事先约定的表示操作 取消的状态码0x7777;如果计时得到的时间没有超过了预定时间,则执行412;
"2、由于上位机收到状态码0x6666后,上位机可以向签名设备反复发送 获取结果的指令或者向签名设备发送取消操作的指令;如果接收到上位机发送 的获取结果的指令,则返回执行409;如果接收到上位机发送的取消操作的指令, 则流程结束;
上述的获取结果的指令对应的APDU指令序列为80 E3 00 00 00 00; 上述的取消操作的指令对应APDU指令序列为80 E5 00 00 00 00;
413、 签名设备对步骤405中接收到的补位后的数据进行RSA运算,将RSA 运算解密得到的结果作为签名结果发送给上位机,并返回操作成功的状态码 0x90GG,流程结束;
414、 直接执行该操作指令。
通过上述过程,已经完成了签名设备对待签名数据的签名操作,由于签名设备接收到的数据去除补位后的hash值长度是特定的,所以签名设备在接收到 指令之后需要用户通过签名设备输入确认信号才能执行该操作,以防止黑客控 制用户的计算机后直接进行签名操作,避免了黑客控制用户网上银行进行密钥 或者资金转移等操作的;由于黑客只能通过网络控制用户的计算机,并不能在 现实中通过签名设备输入确认信号,这样就保证了网上银行用户账户和资金的 安全,使得黑客在控制计算机的情况下依然不能盗取用户账户中的资金。 实施例5:
本发明实施例提供了 一种签名设备,该签名设备用于执行上位机发送的指 令, 一般情况下主要用于网上银行等安全需求较高的场合下,比如需要通过 签名设备的签名才能够对网上银行的账户进行操作,进而起到保护网上银行账 户安全的作用。如图5所示,本发明提供的签名设备包括接收模块51、输入 模块52、分析模块514、判断模块53和执行模块54。
其中,接收模块51用于接收上位机发送的操作指令,在本实施例中,接收 模块51的功能可以通过USB接口、蓝牙通信接口、红外通信接口、 eSATA接口、 SDI0接口或PCMCIA接口实现;输入模块52用于供用户输入确认信号,在本实 施例中,输入模块52可以通过键盘按键、语音感应器、指紋扫描器、体温感应 器、压力感应器、或者光电感应器等实现;分析模块514用于分析所述操作指 令是否为关键操作指令,关键操作指令主要包括签名指令、生成密钥指令、删 除密钥指令、读取密钥指令(签名设备允许读取密钥的情况下)和解密指令; 或者所述关键操作指令为对密钥进行操作的指令;判断模块53用于在所述操作 指令为关键操作指令时,判断是否接收到用户通过签名设备的输入模块52输入 的确认信号; 一般来讲,签名指令、生成密钥指令、删除密钥指令、读取密钥 指令和解密指令都是关键操作指令,对于一些未知的操作指令,业内人士一般将对密钥进行操作的指令作为关键操作指令;执行模块54用于在接收到用户输
入的确认信号时执行所述关键操作指令。
在分析模块514分析出操作指令为非关键操作指令后,本发明实施例中的
执行模块54可以直接执行该非关键操作指令,而不用等待用户输入确认信号。
如果操作为关键操作中的签名操作,那么该签名设备可能需要按照如下方 式中的一种进行操作
第一、上述的接收模块51接收到的是上位机发送的待签名数据;如图5的 虚线所示,此时该签名设备还包括哈希模块55、添加模块56和补位模块57 其中,哈希模块55用于对该待签名数据进行hash运算;添加模块56用于为该 hash运算得到的hash值添加算法标识串;补位模块57用于对添加算法标识串 后的hash值按照公钥密码学标准进行补位;
在此种情况下,分析模块514分析签名设备緩存的hash指令如是事先约定 的hash指令,则此次操作是否是关键操作,需要按键确认;否则不需要等待用 户输入确认信息;
第二、上述接收模块51接收到的上位机发送的对待签名数据进行hash运 算后的hash值;如图5中虚线所示,那么该签名设备还包括添加模块58和 补位模块";其中添加模块58用于为该hash值添加算法标识串;补位模块59 用于对添加算法标识串后的hash值按照/>钥密码学标准进行补位;
在这种情况下,分析模块514将hash值的长度等于预定长度的签名数据所 对应的签名操作指令作为关键操作指令;例如可以将预定长度设置为16或者 20 (分别对应的哈希算法SHA1或者MD5 ),这样表示只有釆用SHA1或者MD5算 法进行签名时才需要等待用户输入确认信息;而采用SSL通信过程中常用的 SSL3 —SHAMD5算法(对应长度为36)则不需要等待用户输入确认信息;第三、所述接收模块接收到的是上位机发送的对待签名数据进行hash运算 并添加算法标识串后的hash值;如图5中虚线所示,该签名设备还包括补位 模块510,用于对添加算法标识串后的hash值按照公钥密码学标准进行补位;
在此种情况下,分析模块514可以先将算法标识串去掉,然后将hash值的 长度等于预定长度的签名数据所对应的签名操作作为关4建操作,具体的预定长 度设定可以釆用和上面两种情况相同或相似的方案;
第四、接收模块接收到的上位机发送的由待签名数据依次经过hash运算、 添加算法标识串、纟姿照7>钥密码学标准进行补位得到的hash值;
在此种情况下,分析模块514可以先将算法标识串和补位去掉得到hash值, 然后将hash值的长度等于预定长度的签名数据所对应的签名操作作为关键操 作,具体的预定长度设定可以采用和上述情况相同或相似的方案;
在以上的四种情况中,还可以采用由分析模块514分析当前操作指令是否 为关键操作指令(签名时关4建操作指令为签名指令),如杲当前操作指令是关键 操作指令,则需要按键确认;否则不需要等待用户输入确认信息。
不论采用上述方法中的哪种方法,签名设备最后得到了按照公钥密码学标 准进行补位后的hash值,所述判断模块53判断接收到确认信号后,执行模块 54对按照公钥密码学标准进行补位后的hash值进行RSA运算,得到签名结果。
为了保证输入确认信号的是用户本人,如图5所示,本发明实施例提供的 签名设备还包括身份认证模块511,用于在用户通过输入模块输入确认信号前对 所述用户进行身份验证;所述判断模块53在所述用户进行身份验证成功的情况 下,判断是否接收到用户通过签名设备输入的确认信号。
为了控制输入确认信号的时间,本发明实施例的提供的签名设备还包括计 时器512和计时判断模块513;其中计时器512用于在接收到上位机发送的操作指令开始计时;计时判断模块513用于在没有接收到用户输入的确认信号时, 判断计时器的时间是否超过预定时间;所述执行模块54在计时器的时间超过了 预定时间的情况下取消对接收到的操作指令的执行。
为能够提醒用户输入确认信号,本发明实施例的签名设备还包括视频播 放器或音频播放器(图中未示出),用于在所述操作指令为关键操作指令时提示 用户输入确认信号。
如果该签名设备还需要进行密钥的生成、删除等操作,则该签名设备还可 以包括密钥生成模块或者密钥删除模块等等。
本发明实施例主要用在网上银行等高安全需求的场合,进行相应的指令执 行,例如对于待签名数据进行的签名;经过签名后,网上银行才能够合法地 进行账户或资金的操作。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多 情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或 者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软 件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若 干指令用以使得一台终端设备(可以是USB-Key、计算机,服务器,或者网络设 备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 所述以权利要求的保护范围为准。
权利要求
1、一种签名设备的操作指令执行方法,其特征在于,包括接收上位机发送的操作指令;分析所述操作指令是否为关键操作指令;如果所述操作指令为关键操作指令,则判断是否接收到用户通过签名设备输入的确认信号;如果接收到用户输入的确认信号,则执行所述关键操作指令。
2、 根据权利要求1所述的签名设备的操作指令执行方法,其特征在于,如果所述操作指令为非关键操作指令,则直接执行所述操作指令。
3、 根据权利要求1所述的签名设备的操作指令执行方法,其特征在于,所述分析所述操作指令是否为关键操作指令具体为将签名指令、生成密钥指令、删除密钥指令、读取密钥指令和解密指令作为关键操作指令;或者将对密钥进行操作的指令作为关键搡作指令。
4、 根据权利要求1所述的签名设备的操作指令执行方法,其特征在于,所述确认信号包括用户通过签名设备上按键输入的确认信号、用户通过签名设备输入的语音确认信号、或者用户通过签名设备输入的生物特征确认信号。
5、 根据权利要求1所述的签名设备的操作指令执行方法,其特征在于,在接收用户通过签名设备输入的确认信号之前,该方法还包括对所述用户进行身份验证;所述判断是否接收到用户通过签名设备输入的确认信号为在所迷用户进行身份验证成功的情况下,判断是否接收到用户通过签名设备输入的确认信号。
6、 根据权利要求1所述的签名设备的操作指令执行方法,其特征在于,在所述操作指令为关键操作指令时,该方法还包括接收到上位机发送的关键操作指令后开始计时;如果没有接收到用户输入的确认信号,判断计时得到的时间是否超过预定时间;如果计时得到的时间超过了预定时间,则取消对接收到的操作指令的执行。
7、 根据权利要求1所述的签名设备的操作指令执行方法,其特征在于,在所述操作指令为关键操作指令时,该方法还包括通过视频播放器或音频播放器提示用户输入确认信号。
8、 根据权利要求1所述的签名设备的操作指令执行方法,其特征在于,如果所述操作指令为关键操作指令中的签名指令,在执行该签名指令之前,该方法还包括接收上位机发送的待签名数据,对所述待签名数据进行hash运算,为所述hash运算得到的hash值添加算法标识串、对添加算法标识串后的hash值按照公钥密码学标准进行补位;或者接收上位机发送的对待签名数据进行hash运算后的hash值,为该hash值添加算法标识串、对添加算法标识串后的hash值按照公钥密码学标准进行补位;或者接收上位机发送的对待签名数椐进行hash运算并添加算法标识串后的hash值,对添加算法标识串后的hash值4要照公钥密码学标准进行补位;或者接收上位机发送的由待签名数据依次经过hash运算、添加算法标识串、按照公钥密码学标准进行补位得到的hash值;所述执行签名指令包括对按照7>钥密码学标准进行补位后的hash值进行RSA运算。
9、 根据权利要求8所述的签名设备的操作指令执行方法,其特征在于,如果签名"i殳备接收上位机发送的待签名数据并对所述待签名数据进行hash 运算,或者接收上位机发送的对待签名数据进行hash运算后的hash值;则所 述分析所述操作是否为关键操作具体为将hash值的长度等于预定长度时所对 应的签名操作作为关键操作;如果签名设备接收上位机发送的对待签名数据进行hash运算并添加算法标 识串后的hash值,或者接收上位机发送的由待签名数据依次经过hash运算、 添加算法标识串、按照公钥密码学标准进行补位得到的ha sh值;则所述分析所 述操作是否为关键操作具体为将算法标识串去掉或者将算法标识串和补位去 掉得到hash值,并将hash值的长度等于预定长度时所对应的签名操作作为关 键操作。
10、 一种签名设备,其特征在于,包括 接收模块,用于接收上位机发送的操作指令; 输入模块,用于供用户输入确认信号;分析模块,用于分析所述操作指令是否为关键操作指令; 判断模块,用于在所述操作指令为关键操作指令时,判断是否接收到用户 通过签名设备的输入模块输入的确认信号;执行模块,用于在接收到用户输入的确认信号时执行所述关键操作指令。
11、 根据权利要求IO所述的签名设备,其特征在于,所述分析模块将签名 指令、生成密钥指令、删除密钥指令、读取密钥指令和解密指令作为关键操作 指令;或者将对密钥进行操作的指令作为关键操作指令。
12、 根据权利要求IO所述的签名设备,其特征在于,所述输入模块包括 键盘按键、语音感应器、指紋扫描器、体温感应器、压力感应器、或者光电感 应器。
13、 根据权利要求IO所述的签名设备,其特征在于,还包括 身份认证模块,用于在用户通过输入模块输入确认信号前对所述用户进行身份验证;所述判断模块在所述用户进行身份验证成功的情况下,判断是否接收到用 户通过签名设备输入的确认信号。
14、 根据权利要求IO所述的签名设备,其特征在于,在所述操作指令为关 键操作指令时,还包括计时器,用于在接收到上位机发送的关键操作指令开始计时; 计时判断模块,用于在没有接收到用户输入的确认信号时,判断计时器的时间是否超过预定时间;所述执行模块还用于在计时器的时间超过了预定时间的情况下取消对接收到的关键操作指令的执行。
15、 根据权利要求10所述的签名设备,其特征在于,还包括视频播放器 或音频播放器,用于在所述操作指令为关键操作指令时提示用户输入确认信号。
16、 根据权利要求IO所述的签名设备,其特征在于,如果所述操作指令为 关键操作指令中的签名指令,所述接收模块还用于接收上位机发送的待签名数据;该签名设备还包括 哈希模块,用于对所述待签名数据进行hash运算;添加模块,用于为所述hash 运算得到的hash值添加算法标识串;补位模块,用于对添加算法标识串后的hash 值按照公钥密码学标准进行补位;或者所述接收模块还用于接收上位机发送的对待签名数据进行hash运算后的 hash值;该签名设备还包括添加才莫块,用于为所述hash值添加算法标识串; 补位才莫块,用于对添加算法标识串后的hash值按照/>钥密码学标准进行补位;或者所述接收模块还用于接收上位机发送的对待签名数据进行hash运算并添加 算法标识串后的hash值;该签名设备还包括补位模块,用于对添加算法标识 串后的hash值按照公钥密码学标准进行补位;或者所述接收模块还用于接收上位机发送的由待签名数据依次经过hash运算、 添加算法标识串、4妄照7>钥密码学标准进行补位得到的hash值;所述执行才莫块对按照7>钥密码学标准进行补位后的hash值进行RSA运算。
17、根据权利要求16所述的签名设备,其特征在于,如果所述接收模块接收上位机发送的待签名数据并通过哈希模块对所述待 签名数据进行hash运算,或者接收上位机发送的对待签名数据进行hash运算 后的hash值;则所述分析模块将hash值的长度等于预定长度时所对应的签名 操作指令作为关键操作指令;如果所述接收模块接收上位机发送的对待签名数据进行hash运算并添加算 法标识串后的hash值,或者接收上位机发送的由待签名数据依次经过hash运 算、添加算法标识串、按照公钥密码学标准进行补位得到的hash值;则所述分 析模块将算法标识串去掉或者将算法标识串和补位去掉得到hash值,并将hash 值的长度等于预定长度时所对应的签名操作作为关键操作。
全文摘要
本发明公开了一种签名设备及其操作指令执行方法,涉及信息安全领域,解决了现有技术中黑客控制计算机后能够对网上银行进行操作的问题。本发明实施例中的签名设备接收上位机发送的操作指令;分析所述操作指令是否为关键操作指令;在所述操作指令为关键操作指令时,判断是否接收到用户通过签名设备输入的确认信号;如果接收到用户输入的确认信号,则执行所述关键操作指令。本发明主要用在网上银行等高安全需求的场合。
文档编号H04L29/06GK101599835SQ20091008930
公开日2009年12月9日 申请日期2009年7月14日 优先权日2009年7月14日
发明者刘保宏 申请人:北京坚石诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1