发明内容
为了缓解现有技术中使用智能密钥装置存在安全隐患的问题,本发明提供了一种安全使用智能密钥装置的方法及系统。所述技术方案如下:
一种安全使用智能密钥装置的方法,所述方法包括以下步骤:
步骤A:智能密钥装置接收操作命令;
步骤B:所述智能密钥装置收到所述操作命令后,生成识别码,并通过所述智能密钥装置输出所述识别码;
步骤C:所述智能密钥装置等待用户输入确认码;
步骤D:所述智能密钥装置收到所述确认码后,验证所述确认码与所述识别码是否一致,如果一致,所述智能密钥装置执行所述操作命令,否则返回错误信息;
其中,所述步骤B中的识别码与操作命令相关,具体包括:所述识别码为操作命令中的数据;或,所述识别码是通过将操作命令中的数据进行变换后生成的。
所述步骤A中的操作命令为:
验证PIN码、生成密钥对或进行数字签名。
所述进行数字签名的算法包括:
RSA数字签名算法、DSA数字签名算法,椭圆曲线或有限自动机数字签名算法。
所述步骤B中的输出所述识别码的输出方式具体为:
显示的方式或语音提示的方式。
所述步骤C中的确认码是所述用户通过主机输入的。
本发明同时提供了一种安全使用智能密钥装置的系统,包括主机和智能密钥装置,所述主机包括:
信息输入模块,用于提示输入确认码、接收用户输入的确认码;
主机接口模块,用于将主机与所述智能密钥装置连接,实现数据通信;
所述智能密钥装置包括:
识别码生成模块,用于所述智能密钥装置收到操作命令后,生成识别码;所述识别码与操作命令相关,具体包括:所述识别码为操作命令中的数据;或,所述识别码是通过将操作命令中的数据进行变换后生成的;
识别码输出模块,用于输出所述识别码生成模块生成的识别码;
匹配比较模块,用于验证输入的确认码和所述识别码生成模块生成的识别码是否一致,若一致,则允许命令执行模块执行操作命令,否则,返回错误信息;
命令执行模块,用于执行操作命令;
控制模块,用于向所述识别码生成模块、所述识别码输出模块、所述匹配比较模块和所述命令执行模块发送命令,以及协调各模块间的工作;
接口模块,用于将所述控制模块与主机连接,实现数据通信。
所述识别码输出模块具体包括:
显示单元,用于以显示的方式输出所述识别码;
和/或发声单元,用于以语音提示的方式输出所述识别码。
所述接口模块包括USB接口模块、eSATA接口模块、SDIO接口模块、PCMCIA接口模块。
本发明的技术方案带来的有益效果是:
本发明中的智能密钥装置生成的识别码只发送给识别码输出模块,获取识别码的渠道只有通过智能密钥装置上的识别码输出模块才能实现,智能密钥装置生成的识别码并不发送到主机端,这样一来,即使与智能密钥装置相连的主机被植入了木马程序,由于木马程序无法预知识别码,因此恶意分子无法将其盗取,从而不能利用智能密钥装置进行任何操作。
虽然恶意分子可以在用户通过主机向智能密钥装置输入识别码(确认码)的过程中盗取识别码,由于识别码只能使用一次,即每次生成的识别码只能对一次操作命令有效,用户不能利用同一个识别码命令智能密钥装置完成多次操作任务,事实上恶意分子盗取的识别码已经作废,不具有任何意义,最终遏制了恶意分子的非法行为。
本发明在很大程度上提高了用户在使用智能密钥装置过程中的安全性以及操作命令的有效性。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但本发明不局限于以下实施例。
实施例1
本实施例以用户使用智能密钥装置对数据进行数字签名为例,用户在使用智能密钥装置对数据进行数字签名时,智能密钥装置随机产生识别码,并要求用户正确输入该识别码以确认其合法身份和操作命令的有效性,在本实施例中,智能密钥装置为USB Key,识别码为一串随机数。
参见图1,提供了一种安全使用智能密钥装置的方法,具体步骤如下:
步骤101:USB Key与主机建立连接后,提示用户输入PIN码;
步骤102:用户输入PIN码进行身份认证;
步骤103:USB Key内部验证用户输入的PIN码是否正确,若正确,则执行步骤104,否则执行步骤109;
步骤104:用户通过身份认证后,向USB Key发送一组数据,并要求USB Key对该数据进行数字签名;
步骤105:USB Key内部生成一串识别码,并通过显示部件显示给用户,该显示部件可以是一个液晶显示屏幕;
步骤106:用户根据提示,输入确认码,这时要求用户输入的确认码为显示部件显示的识别码;
步骤107:USB Key内部验证用户输入的确认码是否与步骤105中生成的识别码一致,在本实施例中,验证用户的输入的确认码过程是USB Key内部将其产生的识别码与用户输入的确认码进行比较,判断二者是否一致,若一致,则执行步骤108,否则执行步骤109;
步骤108:USB Key执行数字签名操作。
数字签名是附加在原始数据上的一些数据,或是通过数字签名算法对原始数据进行密码变换。数字签名是接收者用以确认原始数据的来源和原始数据的完整性并保护数据,防止他人(例如接收者)进行伪造。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名,不同的数字签名与具体应用环境密切相关。
数字签名算法包括:RSA数字签名算法、DSA数字签名算法,椭圆曲线或有限自动机数字签名算法,在本实施例中,选用的数字签名算法为RSA算法。
步骤109:系统将提示错误,并拒绝执行下一步操作。
实施例2
参见图2,本实施例提供了一种安全使用智能密钥装置的系统,包括主机和智能密钥装置,其中,主机包括:
信息输入模块,用于提示输入确认码、接收用户输入的确认码;一般提示给想使用智能密钥装置进行操作的用户。
主机接口模块,用于将主机与所述智能密钥装置连接,实现数据通信;
智能密钥装置包括:
识别码生成模块,用于生成识别码;
识别码输出模块,用于输出识别码生成模块生成的识别码;
匹配比较模块,用于验证输入的确认码和识别码生成模块生成的识别码是否一致,如果一致,则允许命令执行模块执行操作命令,否则,拒绝操作;
命令执行模块,用于执行操作命令;
控制模块,用于向识别码生成模块、识别码输出模块、匹配比较模块和命令执行模块发送命令,以及协调各模块间的工作;
接口模块,用于将控制模块与主机连接,实现数据通信。
本实施例的智能密钥装置为USB Key。
其中,识别码输出模块具体包括:
显示单元,用于显示识别码生成模块生成的识别码;
和/或发声单元,用于以声音的形式输出识别码生成模块生成的识别码。
在本实施例中,该系统还包括:数据存储模块,用于存储初始密钥对、根CA证书、初始密码以及用户私有信息。
上述主机接口模块和接口模块包括有线接口模块和无线接口模块。具体有:USB接口模块、eSATA(External Serial ATA,外接串行高级技术配件)接口模块、SDIO(SD卡输入输出)接口模块、PCMCIA(Personal Computer MemoryCard International Association)接口模块。
PCMCIA接口也叫PC卡插槽,是笔记本电脑的标准装备,属于工业标准(PCMCIA规范),在许多中型数码设备和工业控制设备上也广泛应用,最常用于笔记本电脑。
有线接口模块包括USB接口模块、串行接口模块和并行接口模块。
串行接口模块为SPI(Serial Peripheral Interface,串行外设接口)模块,是一种同步串行外设接口,它可以使控制模块与各种外围设备以串行方式进行通信以交换信息。
在本实施例中,主机接口模块和接口模块均采用USB接口模块。
在本实施例中,识别码生成模块、匹配比较模块、命令执行模块、数据存储模块、控制模块、接口模块集成在一个处理芯片中,SPI接口模块负责将显示单元和处理芯片建立物理上的连接。
实施例3
在本实施例中,USB Key产生的识别码以语音形式输出,代替实施例1中识别码以显示的形式输出,具体步骤如下:
步骤301:USB Key与主机建立连接,提示用户输入PIN码;
步骤302:用户输入PIN码进行身份认证;
步骤303:USB Key内部验证用户输入的PIN码是否正确,若正确,则执行步骤304,否则执行步骤309;
步骤304:用户通过身份认证,向USB Key发送一组数据,并要求USB Key对该数据进行数字签名;
步骤305:USB Key内部生成一串识别码,并以语音的形式输出给用户;
步骤306:用户根据主机提示,输入确认码;这时要求用户输入的确认码为显示部件显示的识别码;
步骤307:USB Key内部验证用户输入的确认码是否与步骤305中生成的识别码一致,在本实施例中,验证用户输入的确认码的过程是USB Key内部将其产生的识别码与用户输入的识别码进行比较,判断是二者是否一致,若一致,则执行步骤308,否则执行步骤309;
步骤308:用户输入的识别码与USB Key内部产生的识别码一致,USB Key执行数字签名操作;
步骤309:系统将提示错误,并拒绝执行下一步操作。
以上对本发明所提供的一种安全使用智能密钥装置的方法及系统进行了介绍,本发明中采用具体实例对原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围内进行的通常变化和替换都应包含在本发明的保护范围内。