具体实施方式
本发明解决其技术问题所采取的技术方案是:一种基于USB协议的信息安全设备,包括
MCU:(Micro-Controller Unit,微控制器单元)用于运行固件程序和用户程序,MCU包括安全模块,安全模块用于提供数据安全保护。
耦合模块天线:接收来自主机或HWA发射出来的电磁信号,并将接收到的信号传送给射频模块。
射频模块:用于接收来自耦合模块天线传送来的信号和与基带处理模块的通讯。
基带处理模块:用于与MCU进行通讯和射频模块的连接模块。
存储器模块:用于存储设备固件程序和用户数据以及状态信息的模块。
存储器模块可由RAM、ROM、EPROM、EEPROM、FLASH中的一个或几个的组成。
所述MCU可为安全设计的芯片,包括智能卡芯片。
本发明的第一种优选实施例,提供了一种用于软件保护的基于USB协议的信息安全设备。
如图7所示,MCU705、耦合模块天线707、射频模块703、基带处理模块706和存储器模块704,MCU705分别与基带处理模块706和存储器模块704相连,基带处理模块706与射频模块703相连,射频模块703连接耦合模块天线707。
基于USB协议的信息安全设备为软件保护设备702包括顺次连接的耦合模块天线707、射频模块703、基带处理模块706、MCU705和存储器模块704,所述存储器可以选用任意的RAM、ROM、EPROM、EEPROM、FLASH等。通过无线USB协议与主机701通信,用于存储相应的加密算法。所述存储器模块应该有足够的存储空间,用于存储预置的加密算法,或者可以由用户选择或下载算法,如果需要存储部分用户代码的话需要有足够大的存储空间,可以是片内FLASH等。射频模块703可以选用ALEREON公司的射频芯片AL4100来实现,基带处理模块可以选用ALEREON公司的基带处理芯片AL4200来实现,耦合模块天线707可由NEC的印刷电路板型天线实现,MCU705可由Motorola公司的MC68HC908JB8芯片实现,安全模块可由CPU运行存储器中的用于提供信息安全保护的程序来实现。
本发明的第二种优选实施例,提供了一种用于软件保护的基于USB协议的信息安全设备的通信方法
固件程序部分包括:对设备的识别部分、设备等待并接收来自主机的数据、设备解析并处理数据、设备返回给主机数据并等待下一条指令、以及设备同主机断开连接部分。设备被带有无线USB接口的主机或HWA识别,通过内置于MCU内部的寄存器的信息,建立主机和设备的连接,并申明为确定的无线USB的通信类型以用来进行后续的通信,通信部分完全遵守无线USB的通信协议。
上述程序中,设备和主机的通信部分为核心部分,下面结合图1做详细的说明。
步骤101:用于软件保护的基于USB协议的信息安全设备A放入到主机B无线信号覆盖的范围内,设备A向主机B发送含设备A通知的连接请求,方向始终是设备A到主机B,按照无线USB协议设备A通知的连接请求信息不超过32字节,主机B收到含设备A通知的连接请求后识别到设备A,主机B就开始对这个设备A的枚举,获得这个无线USB设备A的信息,并对设备A进行初始化,主机B完成了对设备A初始化后执行后续步骤。
步骤102:主机B对设备A的产品厂商标识进行验证,如果正确,执行步骤103,否则转到109主机B将断开与无法识别的无线USB设备A的连接。
步骤103:主机B通过无线USB协议向设备A发送验证用户口令命令和相应密码数据,设备A接收该命令及相应密码数据,并进行验证用户口令处理,若正确,则执行步骤104,否则转到步骤109。
步骤104:设备A继续接收主机B通过无线USB协议发送对数据进行加解密处理的命令,设备A接收到对数据进行加解密处理的命令之后,解析该命令并进行步骤105相应处理。
步骤105:对有合法身份的用户,设备A对数据进行加解密处理。
步骤106:设备A对数据进行加解密处理之后,设备A通过无线USB协议将加解密处理之后的数据返回给主机B,等待来自主机其它提供数据安全保护的命令,如果主机不再有响应,则进入步骤109。
步骤107:设备A判断是否结束通信,如果结束通信则执行步骤109,如果不结束通信,则执行步骤104继续等待接收命令。
步骤108:使设备A通信结束断开与主机B的连接。
步骤109:通讯错误,使设备A断开与主机B的连接。
其中验证用户口令命令为自定义命令,加解密处理的命令可以是对数据进行用MD5算法处理的自定义命令,相应的处理步骤为:设备A对数据进行MD5算法标准处理,当然也可以是RSA、DES、3DES、MD5、SHA-1、SSF33、AES算法标准处理中的任意一种或任意几种。
本发明的第三种优选实施例,提供了一种用于软件保护基于USB协议的信息安全设备的通信方法,如图2所示,当需对数据进行安全存储时,具体步骤204-206和上面有些不同。
步骤201:当用于软件保护基于USB协议的信息安全设备A放入到主机B无线信号覆盖的范围内,设备A向主机B发送含设备A通知的连接请求,方向始终是设备A到主机B,按照无线USB协议设备A通知的连接请求信息不超过32字节,主机B收到含设备A通知的连接请求后识别到设备A,主机B就开始对这个设备A的枚举,获得这个无线USB设备A的信息,并对设备A进行初始化,主机B完成了对设备A初始化后执行后续步骤。
步骤202:主机B对设备A的产品厂商标识进行验证,如果正确,执行步骤203,否则转到209主机B将断开与无法识别的无线USB设备A的连接。
步骤203:主机B通过无线USB协议向设备A发送验证用户口令命令和相应密码数据,设备A接收该命令及相应密码数据,并进行验证用户口令处理,若正确,则执行步骤204,否则转到步骤209。
步骤204:设备A继续接收主机B通过无线USB协议发送对某一数据段进行安全存储处理的命令和具体的该数据段数据,设备A接收到安全存储处理的命令之后,解析该命令并执行步骤205。
步骤205:对有合法身份的用户,设备A对某一数据段进行安全存储处理。
步骤206:设备A对某一数据段进行安全存储处理之后,设备A通过无线USB协议将该处理结果返回给主机B,等待来自主机其它的提供数据安全保护的命令,如果主机不再有响应,则进入步骤209。
步骤207:设备A判断是否结束通信,如果结束通信则执行步骤209,如果不结束通信,则执行步骤204继续等待接收命令。
步骤208:使设备A通信结束断开与主机B的连接。
步骤209:通讯错误,使设备A断开与主机B的连接。
本发明的第四种优选实施例,提供了一种用于软件保护基于USB协议的信息安全设备的通信方法,如图3所示,当需利用预置代码进行数据运算时,具体步骤304-306和上面有些不同。
步骤301:用于软件保护基于USB协议的信息安全设备A放入到主机B无线信号覆盖的范围内,设备A向主机B发送含设备A通知的连接请求,方向始终是设备A到主机B,按照无线USB协议设备A通知的连接请求信息不超过32字节,主机B收到含设备A通知的连接请求后识别到设备A,主机B就开始对这个设备A的枚举,获得这个无线USB设备A的信息,并对设备A进行初始化,主机B完成了对设备A初始化后执行后续步骤。
步骤302:主机B对设备A的产品厂商标识进行验证,如果正确,执行步骤303,否则转到309主机B将断开与无法识别的无线USB设备A的连接。
步骤303:主机B通过无线USB协议向设备A发送验证用户口令命令和相应密码数据,设备A接收该命令及相应密码数据,并进行验证用户口令处理,若正确,则执行步骤304,否则转到步骤309。
步骤304:设备A继续接收主机B通过无线USB协议发送利用预置代码进行数据运算的命令,设备A接收到该命令之后,解析该命令并进行步骤305相应处理。
步骤305:对有合法身份的用户,对应步骤303,设备A利用预置代码进行数据运算。
步骤306:对应步骤305,设备A利用预置代码进行数据运算之后,设备A通过无线USB协议,将利用预置代码进行数据运算的处理结果返回给主机B,等待来自主机的其它提供数据安全保护的命令,如果主机不再有响应,则进入步骤309。
步骤307:设备A判断是否结束通信,如果结束通信则执行步骤109,如果不结束通信,则执行步骤304继续等待接收命令。
步骤308:使设备A通信结束断开与主机B的连接。
步骤309:通讯错误,使设备A断开与主机B的连接。
以下对利用预置代码进行数据运算作进一步描述。
设备作为提供软件加密的装置。可以用于保存用户软件的部分片断,保证这部分片断的安全,而不被读出,并使之在设备内部运行并与外部软件交互,依次来控制软件保证其合法运行。该设备与外部程序交互频繁,计算速度和通信速度是重要的速度性能指标。
根据该实施例的功能,可实现如下的软件保护功能:
1.获得设备信息,这个信息指本装置的信息。这些信息存储在内部存储器内,提供给用户记忆和识别自己的设备,如步骤102。
2.格式化,用户可以对本装置进行格式化,经过格式化后使所有的设置和数据恢复到出厂状态。
3.写文件,这类文件包括用户的代码片断,或者该片断运行时所需要的数据。
4.读文件,这类文件可以是代码片断运行时的数据文件但不是该代码片断本身。
5.运行文件,这类文件就是指用户写入的代码片断,让这些代码片断在本设备内运行并保证其运行的一切数据和内存信息保留在设备以内而只返回结果。
6.加解密,提供给用户在硬件内部对用户数据进行RSA、DES、3DES、MD5、SHA-1、SSF33、AES、ECC等加解密,并将加解密结果返回给用户。
预置代码中还包括软件保护应用接口函数,所述软件保护应用接口函数是软件保护设备和第3方应用之间的接口级函数,这个应用接口函数主要由开发商使用,主要提供如下功能:
1.打开设备打开该设备的句柄,建立与该设备的通讯通道。
2.关闭设备当主机不再使用该设备的时候,关闭该设备的句柄和清除设备状态信息。
3.发送命令这个是本软件保护产品的核心部分,实现对本装置的所有设置工作,即所有软件保护功能的实现。
软件保护设备的主要作用是保护程序部分不会出现在主机的内存中,这样带来的好处是:
1.防止程序的非法拷贝,主机上的程序离开软件保护键就是不完整的,软件的分发必须有软件保护键的存在。
2.防止程序被非法跟踪或调试,软件的重要部分的代码不会运行在主机中,所有的调试软件都无法得到该段程序的运行状态。
3.防止被转储,软件最易被破解的情况是其在运行的时候,传统的加壳保护的软件,经常被内存转储的情况下将代码还原回来。
4.防止反编译,无论反编译的技术有多高,都无法得到该实施例装置内部的代码片断,因此无法实现其软件本身的完整功能。
本发明的第五种优选实施例,提供了一种用于用户身份识别的基于USB协议的信息安全设备。它主要负责保存用户敏感数据,如密码、数字证书等。
身份识别设备的硬件部分如图4中所示,基于USB协议的信息安全设备为身份识别设备402,包括耦合模块天线、MCU、射频模块、基带处理模块和存储器模块,MCU、射频模块、基带处理模块和存储器模块集成在一个单芯片(芯片403)中,单芯片(芯片403)连接耦合模块天线404,存储器模块中内置有算法。所述MCU中应该有足够的片空间,用于预置算法,包括RSA、DES、3DES、MD5、SHA-1、SSF33、AES、ECC算法等,或者可以由用户选择或下载算法,如果需要存储部分用户代码的话需要有够大的存储空间,可以是片内FLASH等。耦合模块天线404可由NEC的印刷电路板型天线来实现,单芯片(芯片403)可由Staccato的芯片SC2501D来实现,安全模块可由CPU运行存储器中的用于提供信息安全保护的程序来实现。
401为主机/HWA,身份识别设备402通过无线USB协议与主机401通信。
本发明的第六种优选实施例,如流程图5所示,提供了一种用于用户身份识别的基于USB协议的信息安全设备的通信方法。
身份识别设备的固件程序部分可以结合智能卡技术和现代密码学技术,可以支持第三方算法下载,支持多级文件管理和访问。
步骤501:当用于用户身份识别的基于USB协议的信息安全设备C放入到主机D无线信号覆盖的范围内,设备C向主机D发送含设备C通知的连接请求,方向始终是设备C到主机D,按照无线USB协议设备C通知的连接请求信息不超过32字节,主机D收到含设备C通知的连接请求后识别到设备C,主机D就开始对这个USB设备C的枚举,获得这个无线USB设备C的信息,并对设备C进行初始化,主机D完成了对设备C初始化后执行后续步骤。
步骤502:向身份识别设备C输入口令X。
步骤503:身份识别设备C从密码存储区中读出口令并经过特定的处理得到Y。
步骤504:将X和Y进行比较,不同则身份认证失败,转到步骤510,设备C断开同主机D的连接,相同则设备C分配一定的权限给用户,该权限同用户的密码等级相关联,用户可以进行授权身份允许范围内的应用端的处理,主机D通过无线USB协议向设备C发送对数据进行加解密处理的命令,设备C接收加解密处理的命令。
步骤505:设备C接收到对数据进行加解密处理的命令数据之后,解析该命令并执行步骤506。
步骤506:设备C进行数据加解密处理。
步骤507:设备C对数据进行加解密处理之后,设备C通过无线USB协议将加解密处理之后的数据返回给主机D,等待来自主机的命令,如果应用不再有响应,则进入步骤510。
步骤508:设备C判断是否结束通信(根据什么判断是否结束通信),如果结束通信则执行步骤509,如果不结束通信,则执行步骤504继续等待接受命令。
步骤509:使设备C通信结束断开与主机D的连接。
步骤510:通讯错误,设备C断开与主机D的连接。
步骤502、步骤503、步骤504也可以直接从身份识别设备中读取密码,由主机端判定密码是否正确。
本实施例可实现如下功能包括:
1.控制访问网络:通过身份识别设备中含有的ID信息和用户验证信息,用于登陆网络。
2.用于验证和鉴别文件的发送者身份的数字签名或证明,并防止被中途篡改。
3.存储密码信息,储存用户密码信息,防止用户手动输入密码时带来的风险。
4.远程登陆,银行的网站可以利用签名信息来识别用户得合法性。
5.控制文件的访问,可以在一些文件中加入访问控制信息,可以防止在身份识别设备的情况下非法访问或运行。
6.控制登陆到特定的应用系统,开发商可以将此功能用于自己的产品,该产品可以利用本实施例装置来进行登陆。
上述3中所述是指身份识别设备中包含的密码信息发送给主机用来识别持锁人信息。
所述预置代码中还包括身份识别设备应用接口函数,身份识别设备应用接口函数是身份识别设备和第3方应用之间的接口级函数,这个应用接口函数主要由开发商使用,所述应用接口函数主要提供如下功能:
1.打开设备打开该设备的句柄,建立与该设备的通讯通道。
2.关闭设备当主机不再使用该设备的时候,关闭该设备的句柄和清除设备状态信息。
3.发送命令这个是身份识别设备的核心部分,实现对本装置的所有设置工作,即所有本身份识别设备的智能卡功能的实现。
数字身份识别设备的主要作用是保护重要、敏感数据永远都不会被读出到装置之外如主机的内存中,这样所带来的好处是:
1.用户可以不必记忆冗长的密码,安全的密码一定有字母和数字组成足够复杂的字符串,而且是时常更新的,用身份识别设备来存储密码信息可以免去用户的麻烦。
2.提供双因子认证的保险措施,即使用户的密码或数字身份识别设备的一方丢失,都不会给用户带来风险。
3.密钥不可导出,保证了用户密钥的安全。
4.算法内置。
本发明的第七种实施例,提供另一种用于用户身份识别基于USB协议的信息安全设备,如图6中所示,基于USB协议的信息安全设备为身份识别设备602,包括耦合模块天线、MCU、射频模块、基带处理模块和存储器模块,MCU、基带处理模块和存储器模块集成在一个单芯片(芯片604)中,单芯片(芯片604)连接射频模块603,射频模块603连接耦合模块天线605。601为主机/HWA,身份识别设备602通过无线USB协议与主机601通信,耦合模块天线605接收主机/HWA发来的信号,射频模块接收来自耦合模块天线605收到的电磁信号,并经过适当处理传送给带基带处理能力的MCU,这种方式使得单芯片604的实现可以更简单。射频模块603可以选择ALEREON公司的射频芯片AL4100来实现,单芯片604可以选择ALEREON公司的芯片AL4300来实现,耦合模块天线605可以选择NEC的印刷电路板型天线,安全模块可由CPU运行存储器中的用于提供信息安全保护的程序来实现。
本实施例中的主机与设备的通信与实施例五完全相同,并实现与实施例五相同的功能。
以上对本发明所提供的一种实现软件版权保护和信息安全的基于无线USB协议的信息安全设备及其通信方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述。以上实施例的说明只是用于帮助理解本发明的方法及其实现思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。