通过通过USBN9603/P89C51平台实现平台实现USB接口硬件加密接口硬件加密
利用USB接口技术,结合PC机的结构特点,为基于PC平台的数据加密系统提出了一种使用USB连接的解决方案。
并指出了该方案现存的一些缺陷及改进方法,以备今后系统的升级。
摘摘 要要: 利用
关键词 关键词: USB 数据加密
在目前的计算机环境中,利用一些运行在计算机内部的加密协议进行数据传输是较安全的。但是一旦微机连接到Internet上,
在系统安全环节上就会形成一个脆弱的链接。在网络上传输未加密的信息,极有可能让黑客获得如用户密码和帐号这样的敏感
信息。现有的软件加密方法远远不能满足目前的需要。加密专用硬件设备是目前国际上首选的替代软件加密的产品。使用加密
硬件,就必须考虑计算机接口的问题。计算机的接口有许多种,如传统的串口和并口。串口的数据传输率在115K~230Kbps,一
般用来连接鼠标和外置Modem。并口的数据传输率比串口快8倍,标准并口的数据传输率约为1Mbps,一般用来连接打印机、扫
描仪等。早期的软件狗类加密硬件基本上都使用并口,不但极易与打印机冲突,而且容易被破解。要想设计出更可靠更完善的加
密硬件,必须采用新的计算机接口。
由于USB的诸多优点,市场上已经出现了很多USB的加密产品,如带加密功能的USB闪存、USB加密卡等。但这些产品多是
简单的使用软件进行加密,而没有结合FPGA技术形成完整的数据加密系统。为此,我们选择了开发USB接口加密系统。本文将
详细阐述USB在数据加密系统中的应用。
1 系统的总体设计方案系统的总体设计方案
整体硬件结构如图1所示。下面概要介绍本系统的三大部分。
1.1 USB接口子系统设计接口子系统设计
对于实现较复杂的加密方法,外置的MPU处理起来更方便,故本系统的USB接口电路采用微处理器加USB专用接口芯片来实
现。USB专用接口芯片是美国国家半导体公司提供的样片USBN9603。微处理芯片采用飞利浦公司的可基于系统编程的单片
机P89C51RD2,它负责控制USBN9603芯片的状态和读写USB节点的数据,以及负责控制外部存储器及其他功能设备。P89C51
有3个加密位,用来保护固化的单片机软件不可读,从而保证系统不被仿制。本系统还使用了ATMEL公司的24C64作为存储芯
片。24C64芯片包含有8KB可读写的Flash存储器,在掉电时可以保存软件开发商设置的初始口令以及用于存放关键数据及配置
参数等信息,可以用于从硬件上对抗共享器共享,可以更加安全稳定地实现软件试用期和使用次数控制等功能。
1.2 软件子系统设计软件子系统设计
根据USB系统的组成,可以将软件分成二大部分:主机端软件和设备端软件。主机端软件由设备驱动程序和应用程序组成。
开发设备驱动程序有专门的开发工具包,在编写软件驱动程序时用到的主要工具有Windows98 DDK、DriverWorks和
VC++6.0。Windows一般提供鼠标、键盘等HID设备完整的主机端驱动程序,但对于大部分用户自己设计的硬件设备,需要在通
用的底层驱动程序的基础上开发相应的客户驱动程序。USB主机端软件开发的主要任务就是调用USB驱动程序接口、编写设
备驱动程序和用户接口的应用程序软件,并在软件中加入反破解措施。
在各种反破解措施中,跟踪分析方法的威力最为强大,具体的跟踪分析方法有静态分析和动态跟踪破解法等。
(1)静态分析方法。用反编译工具软件对受保护软件进行逆向分析,以求找出访问外部加密硬件的代码并进行相应的修改。
本文介绍的USB加密系统中采用了API函数调用与SHELL外壳加密相结合的技术,可以有效地对抗静态分析方法。即使使用脱
壳工具软件后,外壳被破坏,内部的加密函数的调用仍然能保证保护的有效性。
(2)动态跟踪破解法。要求使用者具有丰富的破解经验。它使用调试分析工具软件,跟踪控制受保护软件的整个运行过程,找
出它与加密接口间交互部分的判断代码并进行修改,使其跳过对加密硬件的检测或使检测结果无效。对付这种破解方法,本方案
使用了数据交换随机噪声技术和迷宫技术,即在程序入口和出口之间包含大量无效判断跳转进行干扰,动态改变执行次序,提升抗
跟踪能力。另外,USB加密系统内部设有时间闸,各种操作必须在规定的时间内完成。正常操作用时很短,而跟踪过程用时较长,
超过规定时间将返回错误结果。
1.3 加密子系统设计加密子系统设计
加密子系统的设计采用单片机加FPGA(Field Programmable Gate Array)模式,既可方便地用单片机完成对USB口的操作,
又能利用FPGA速度快和保密性强等特点实现复杂的加密算法。
评论0
最新资源