专利名称:一种智能密钥设备及其与主机信息交互的方法
技术领域:
本发明涉及信息安全领域,特别涉及一种智能密钥设备及其与主机信息交互的方法。
背景技术:
智能密钥设备作为终端加解密和认证设备,它直接为系统和硬件层面提供安全保护,确保关键信息如密钥、证书和权限属性等安全地保存在硬件设备中。随着智能卡与USB技术的广泛应用,智能密钥设备已经普及到广大用户手中。
几大国际级IT企业针对智能卡应用方面的问题共同制定了CCID(USB Chip/Smart CardInterface Devices-USB芯片智能卡接口设备)接口标准。CCID类设备是芯片/智能卡接口设备,此类设备通过USB接口收发符合CCID接口标准的数据,从而使设备与主机或其它嵌入式主机连接通讯。微软公司在其WINDOWS2000及以上的操作系统上提供并支持CCID驱动,使设备生产厂商可以轻松的开发使用符合CCID接口标准的设备。同时,CCID接口标准支持PC(Personal Computer-个人计算机)/SC(Smart Card-智能卡)接口调用,使广大开发者可以方便的对智能密钥设备进行开发操作。在其它开源操作系统如LINUX的众多版本上,也有许多开源的CCID驱动可供开发者和使用者使用。
描述符是数据结果或信息的格式化块,它可以使主机知道这个设备,每个描述符包含了关于这个设备的整体信息或者一个元素的信息。按照CCID协议标准,符合CCID接口标准的设备其描述符的特征是在接口描述符中,字节0是描述符的字节长度,值为09h,字节1是固定终端,值为04h,字节4是除了终端0,支持的终端号,值为02h或03h,字节5是类代码,值为0Bh,字节6为子类代码,值为00h,字节7是协议代码,值为00h;在类型描述符中,字节0是描述符的字节长度,值为36h,字节2是CCID规范的版本号,它是用二进制代码表示的小数,值为0100h,字节52是PIN码支持,值为00H-03h。符合CCID接口标准的设备的其它描述符中的字节,如设备描述符、配置描述符中的字节以及上述接口描述符和类型描述符中的其它字节仍按照USB协议中的规定设置。
一般情况下,主机与智能密钥设备进行信息交互必须依赖智能密钥设备生产厂家提供的私有驱动程序才能够完成,这样的智能密钥设备就是常说的有驱型的智能密钥设备。但是,智能密钥设备尘产厂商提供的私有驱动程序在安装、升级、卸载等操作方面都很不方便,而且还容易对操作系统造成损害。如何简单、方便的实现主机与智能密钥设备的信息交互是IT工作者和使用者都很关心的问题。
发明内容
为了解决主机与智能密钥设备进行信息交互,需要依赖智能密钥设备的驱动程序才能完成,以及驱动程序的安装、升级、卸载等操作不方便的问题,本发明提出了一种符合CCID接口标准的智能密钥设备,所述智能密钥设备包括USB接口模块和智能处理模块,所述USB接口模块包括描述符设置单元和端点设置单元;所述描述符设置单元用于设置符合CCID标准中规定的描述符及其对应的值;所述端点设置单元用于将至少一个OUT端点设置为BULK-OUT端点,至少一个IN端点设置为BULK-IN端点,至少一个IN端点设置为中断端点。
所述智能处理模块由主控制模块和数据存储模块组成;所述主控制模块用于控制程序运行、执行相应程序命令;所述数据存储模块用于存储相关密钥信息。
所述智能处理模块由主控制模块、程序存储模块和智能密钥数据存储模块组成;所述主控制模块用于控制程序运行、执行相应程序命令;所述程序存储模块用于存储相应的程序;所述智能密钥数据存储模块用于存储相关密钥信息。
所述智能处理模块是智能卡芯片。
所述智能处理模块和所述USB接口模块集成在一个芯片上或位于两个芯片上。
本发明还提供了一种利用所述智能密钥设备实现与主机信息交互的方法,所述方法包括以下步骤步骤A建立智能密钥设备与主机的物理连接,所述智能密钥设备上电;步骤B所述智能密钥设备声明自己是符合CCID接口标准的设备;步骤C所述主机向所述智能密钥设备发送查询状态信息,所述智能密钥设备向所述主机返回智能卡已插入的应答信息;步骤D所述主机向所述智能密钥设备发送符合CCID标准的智能卡上电复位命令,所述智能密钥设备将复位应答封装成符合CCID标准的数据包,并发送所述数据包到所述主机;步骤E所述主机与所述智能密钥设备建立通讯连接,根据所述主机端的应用程序与所述智能密钥设备进行信息交互。
所述复位应答存储在所述智能密钥设备内或固化在所述智能密钥设备内的固件程序中。
本发明提供的符合CCID接口标准的智能密钥设备实现了CCID接口标准与智能密钥设备的结合,利用这种智能密钥设备与主机进行信息交互时,主机不再需要安装驱动程序,大大地提高了智能密钥设备的适用性,同时也有利于开发人员开发出更好,更方便的智能密钥设备。
图1是本发明实施例1智能密钥设备的原理框图;图2是本发明实施例2智能密钥设备的原理框图;图3是智能密钥设备与主机进行交互的流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
实施例1本实施例采用了一种仿智能卡的系统来实现智能密钥设备与主机进行信息交互,实际上就是使用微控制器来模拟实现智能卡的功能,同时通过CCID协议与主机进行信息交互。如图1所示,智能密钥设备102由USB接口模块103、主控制模块104和数据存储模块105组成。USB接口模块103是符合CCID接口标准的接口模块,用于实现智能密钥设备与主机按照CCID接口标准进行通讯,以及建立主机与智能密钥设备的物理连接,USB接口模块包括描述符设置单元和端点设置单元,描述符设置单元用于设置符合CCID协议中规定的描述符及其对应的值,端点设置单元用于设置至少一对IN/OUT端点声明为BULK-IN、BULK-OUT端点,用来实现应答和命令管道,设置至少一个IN端点声明为中断端点,用来实现事件通知管道;主控制模块104用于控制程序运行,执行相应程序命令;数据存储模块105用于存储相关密钥等信息的存储器。主控制模块104和数据存储模块105共同构成了智能处理模块106(虚线框内)。主机101与智能密钥设备102通过USB接口模块103物理连接,主控制模块104通过USB接口模块103与主机101进行通讯。
实施例2本实施例采用了一种单芯片来实现智能密钥设备与主机进行信息交互。单芯片是指在同一片集成电路芯片内集成了能够实现USB功能和智能卡功能的芯片,该芯片中既有符合CCID标准的USB接口模块,也有符合IS07816标准的接口模块,可以作为智能卡使用。如图2所示,智能密钥设备202由USB接口模块203、程序存储模块204、智能密钥数据存储模块205、主控制模块206和7816接口模块207组成。USB接口模块203是符合CCID接口标准的接口模块,用于实现智能密钥设备202与主机201按照CCID接口标准进行通讯,以及建立主机201与智能密钥设备202的物理连接,USB接口模块203包括描述符设置单元和端点设置单元,描述符设置单元用于设置符合CCID协议中规定的描述符及其对应的值,端点设置单元用于设置至少一对IN/OUT端点声明为BULK-IN、BULK-OUT端点,用来实现应答和命令管道,设置至少一个IN端点声明为中断端点,用来实现事件通知管道;程序存储模块204用于存储相应的程序;智能密钥数据存储模块205用于存储相关密钥等信息;主控制模块206用于控制程序运行,执行相应程序命令。程序存储模块204、智能密钥数据存储模块205、主控制模块206和7816接口模块207共同构成了智能处理模块208(虚线框内)。主机201与智能密钥设备202通过USB接口模块203物理连接,主控制模块206通过USB接口模块203与主机201进行通讯。
智能密钥设备与主机进行交互的具体实施方式
参见图3,包括以下步骤步骤301建立智能密钥设备与主机的物理连接,智能密钥设备上电;步骤302智能密钥设备声明自己是符合CCID接口标准的设备;步骤303主机向智能密钥设备发送查询状态信息;步骤304智能密钥设备接收到主机发送的查询状态信息后,向主机返回智能卡已插入的应答信息;步骤305主机接收到智能密钥设备发送的应答信息后,向智能密钥设备发送符合CCID接口标准的智能卡上电复位命令;步骤306智能密钥设备接收到主机发送的上电复位命令后,将复位应答封装成符合CCID标准的数据包,并发送数据包到主机;步骤307主机接收到智能密钥设备发送的数据包后,与智能密钥设备建立通讯连接;步骤308根据主机端的应用程序,主机与智能密钥设备进行信息交互,直到信息交互完成。
步骤306中的复位应答可以存储在智能密钥设备内或固化在智能密钥设备内的固件程序中。
本发明所述的智能密钥设备可以用来进行身份认证,也可以模拟诸如数据读写、文件管理、算法下载、数据加密等。
以上所述的实施例只是本发明较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
权利要求
1.一种智能密钥设备,其特征在于,所述智能密钥设备包括USB接口模块和智能处理模块,所述USB接口模块包括描述符设置单元和端点设置单元;所述描述符设置单元用于设置符合CCID标准中规定的描述符及其对应的值;所述端点设置单元用于将至少一个OUT端点设置为BULK-OUT端点,至少一个IN端点设置为BULK-IN端点,至少一个IN端点设置为中断端点。
2.如权利要求1所述的智能密钥设备,其特征在于,所述智能处理模块由主控制模块和数据存储模块组成;所述主控制模块用于控制程序运行、执行相应程序命令;所述数据存储模块用于存储相关密钥信息。
3.如权利要求1所述的智能密钥设备,其特征在于,所述智能处理模块由主控制模块、程序存储模块和智能密钥数据存储模块组成;所述主控制模块用于控制程序运行、执行相应程序命令;所述程序存储模块用于存储相应的程序;所述智能密钥数据存储模块用于存储相关密钥信息。
4.如权利要求1所述的智能密钥设备,其特征在于,所述智能处理模块是智能卡芯片。
5.如权利要求1所述的智能密钥设备,其特征在于,所述智能处理模块和所述USB接口模块集成在一个芯片上或位于两个芯片上。
6.一种智能密钥设备与主机信息交互的方法,其特征在于,所述方法包括以下步骤步骤A建立智能密钥设备与主机的物理连接,所述智能密钥设备上电;步骤B所述智能密钥设备声明自己是符合CCID接口标准的设备;步骤C所述主机向所述智能密钥设备发送查询状态信息,所述智能密钥设备向所述主机返回智能卡已插入的应答信息;步骤D所述主机向所述智能密钥设备发送符合CCID标准的智能卡上电复位命令,所述智能密钥设备将复位应答封装成符合CCID标准的数据包,并发送所述数据包到所述主机;步骤E所述主机与所述智能密钥设备建立通讯连接,根据所述主机端的应用程序与所述智能密钥设备进行信息交互。
7.如权利要求6所述的智能密钥设备与主机信息交互的方法,其特征在于,所述复位应答存储在所述智能密钥设备内或固化在所述智能密钥设备内的固件程序中。
全文摘要
本发明公开了一种智能密钥设备及其与主机信息交互的方法,属于信息安全领域。为了解决主机与智能密钥设备进行信息交互,需要依赖智能密钥设备的驱动程序才能完成,以及驱动程序的安装、升级、卸载等操作不方便的问题,本发明提出了一种符合CCID接口标准的智能密钥设备,以及利用这种智能密钥设备实现与主机信息交互的方法。
文档编号G06F21/00GK1953372SQ20061011305
公开日2007年4月25日 申请日期2006年9月8日 优先权日2006年9月8日
发明者陆舟, 于华章 申请人:北京飞天诚信科技有限公司