DIY编程器网

标题: 采用ST72F651实现的安全U盘 [打印本页]

作者: liyf    时间: 2014-10-5 09:58
标题: 采用ST72F651实现的安全U盘
采用ST72F651实现的安全U盘

引言
  随着网络技术和安全电子交易的不断发展,使用者身份认证和数据安全的问题日益受到人们的重视。其中,USB KEY以其安全性、便携性和安全策略的灵活性,在众多安全方案中脱颖而出,成为安全令牌中的佼佼者。
  基于系统安全需求以及对成本的要求两方面考虑,USB KEY(以下简称KEY)通常分为高、中、低档产品。其中多嵌入智能卡模块用于实现密钥以及其他敏感数据的安全存储、可靠使用和算法的安全实现。由于密钥和安全运算不出卡,因而系统的安全性得到了充分的保障。
  U盘是近年来发展起来的另一类设备,由于其容量大,便于携带,且成本较低,得到了迅速的普及和发展。但是,U盘的使用是透明的,一旦丢失,存储的所有数据和文件都将被任意读出。这就限制了其在特殊的或者有安全要求的领域(如税务信息的电子申报,社保体系的数据采集和上传等)中的使用。
  市场的需求就是技术发展的动力,在上述两个方向产品的不断发展以及市场对安全存储的需求日益不断增高的共同驱动下,一种新型产品——安全U盘应运而生,并得到了较快的发展。
1 安全U盘的种类及实现方式
  安全U盘的安全功能主要是由KEY来实现的。因此,对于不同安全需求的系统,可以通过选择不同的KEY来实现。例如,根据KEY对DES/3DES等分组算法、RC2/RC4/RC5等流算法、RSA/ECC等非对称算法,以及MD5/SHA1等摘要算法支持的不同组合,可以获得不同安全级别和灵活安全策略的安全U盘。
  本文不讨论KEY的具体内容和实现,而只是针对安全U盘的整体进行分析和论述。
1.1 基本型安全U盘
  安全U盘的最直观实现形式,即安全U盘的基本型,是KEY与U盘的物理整合。其结构如图1所示。

图1 基本型安全U盘结构

  基本型安全U盘使用透明的USB HUB与主机进行通信,主机相当于同时插入了KEY和U盘两个设备。由主机软件分别对USB KEY和U盘进行操作。一般情况下,U盘与PC采用大容量存储设备接口,而KEY则采用人机交互设备接口,两者均无需驱动(但在Win98系统下可能需要驱动)。
  其优点是结构简单,易于实现,软件无需任何调整,硬件改动也较小。安全功能的调用以及对U盘的数据保护全部由上层软件实现,但是由此带来的问题是安全性受到影响。其安全性完全依赖于PC软件的调用,而对U盘的操作(由于在PC侧是透明的),虽然可以通过在文件系统的驱动程序上改进,使存入U盘的数据为加密文件系统;但是这只能限制对U盘数据的读操作,不能有效阻止对U盘的错误写(将U盘拿到未安装加密文件系统的机器上,可对其进行格式化或其他写入操作),从而造成对U盘数据的破坏。也容易将病毒带入数据采集系统,从而对整个系统的安全造成威胁。
1.2 增强型安全U盘
  从上述分析可以看出,在一些对安全性和数据可靠性要求较高的领域,基本型安全U盘无法满足要求;即使采用高性能的KEY产品,也无法获得期望的效果。这就需要增强型安全U盘了。
  增强型安全U盘也是USB KEY与U盘组合而成的。其不同之处在于,增强型安全U盘的文件访问系统接口不是直接对PC透明的,而是要通过KEY进行控制。其结构如图2所示。

图2 增强型安全U盘结构

  图2只是一个原理性框图。根据选择的控制器的不同,其主控制器与KEY及U盘的控制器可以各自独立,也可能合为一体。
  从图2中可以看出,PC通过主控制器对U盘的访问,需要通过KEY的身份认证或数据加/解密操作,而不是直接存储。通过这种方式,既可以实现通过身份认证后才能使用U盘,也可实现数据加密传输、签名认证及授权删除等高安全性的操作,从而实现安全U盘的增强安全功能。
2 ST72F651的主要特点
  ST72F651具有如下特点:
  ◆ 32 KB高密度Flash程序区,可读/写保护,并可实现在线编程;
  ◆ 5 KB RAM区,其中256字节可用于堆栈;
  ◆ 外接12 MHz晶振,内部锁相环可产生48 MHz USB时钟;
  ◆ 双电源管理,可在USB总线供电和电池供电之间自动切换;
  ◆ 可编程的内部电压调整器可适应不同电压要求的卡;
  ◆ 47个可编程I/O口;
  ◆ 支持DMA的12 Mbps全速USB接口;
  ◆ 具有DTC(Data Transfer Coprocessor)的海量存储接口(Mass Storage Interface),可支持各种存储设备,包括Compact Flash、Multimedia Card、Secure Digital Card、SmartMedia Card、Sony Memory Stick、NAND Flash以及ATA外设等;
  ◆ 支持SPI及I2C等通信接口;
  ◆ 有看门狗及2个具有输出功能的16位定时器;
  ◆ 支持智能卡ISO/IEC78163接口。
3 采用ST72F651实现安全U盘的原理
  从ST72F651的特点可以看出,这是一款专门为安全U盘功能而设计的芯片。采用ST72F65实现安全U盘,可以在相同的硬件设计基础上,通过控制器芯片的嵌入式软件的不同设计,实现基本型或增强型的安全U盘。
3.1 硬件原理
  采用ST72F651实现安全U盘,基本型和增强型的硬件原理相同。如果系统没有附加的需求,则可以采用相同的硬件形式。基本型KEY部分采用HID(Human Interface Device,人机接口设备)接口协议,U盘部分采用Mass Storage设备的BOT(Bulk Only Transport)协议。其主要硬件原理如图3所示。

图3 采用ST72F651的安全U盘主要硬件原理

  其中,U盘为Windows标准外设,容量由所使用的NAND Flash大小决定。本系统最多支持到4片NAND FLASH,每片容量最大为256 MB。
  智能卡接口由软件模拟仿真ISO/IEC78163接口,T=0或T=1协议的支持由软件实现。
  除上述基本功能外,由于ST7F651芯片具有丰富的I/O接口资源,因此对于某些有特殊需求的领域,也可以方便地增加实时时钟功能模块、后备电池及其充电管理模块,以及其他SPI及I2C专用功能模块。
3.2 软件原理
(1) 基本型
  基本型相当于PC上同时插入KEY和U盘两个设备,因此其软件流程对两部分的操作是相对独立的。其中PC上软件流程如图4所示。

图4 基本型安全U盘上层软件流程

采用ST72F651实现的基本型安全U盘的底层软件流程如图5所示。

图5 基本型安全U盘底层软件流程

(2) 增强型
  增强型安全U盘的上层软件的KEY通道可保留部分功能,仍通过HID接口实现,即安全U盘中保留部分通用KEY功能(如签名/认证等)。具体的实现方式和用法可参照一般USB KEY,这里不予讨论。
  安全U盘部分的功能根据安全需要的不同,可选择以下几种方式:
  ① 通过通用接口调用KEY函数,ST72F651内存中保留相关的安全状态(如认证结果等)和操作标志。调用Mass Storage函数操作U盘时,根据预先设定好的文件安全属性,自动检查内存中的安全状态和操作标志,只有满足安全要求的操作才允许执行。
  ② 除①中的认证外,还须加密存储的安全U盘;除检查内存中的安全状态外,还需在数据读出/写入时,自动调用智能卡函数执行相应的数据加/解密操作。由于智能卡的通信速度和执行速度的局限性,一般大容量数据的加/解密工作都采用PC软件与KEY功能结合的方式。其软件流程与图4中的基本型软件流程相似,只是在微软Mass Storage函数DLL与设备驱动之间,再加入一层用户自己的DLL,以便在具体的文件操作命令执行过程中,由用户DLL自动调用必要的KEY功能(如口令认证等),以满足安全性的需要。这一层操作对用户是透明的,无须用户干预,因此这种方式非常实用。
  其中涉及的数据加/解密以及文件校验等操作,在底层自动实现,以获得更高的系统安全性(由于安全操作嵌入底层的不可屏蔽性)和更高的运行速度(通过减少PC与底层的通信次数)。其底层软件流程与基本型的区别在于接收到BOT数据的命令处理分支部分,即图5中的A部分。其执行流程如图6所示。

图6 增强型安全U盘数据存取操作特殊流程

  当然,在一些对数据安全性和可靠性要求更高的场合,还可以采用扩展专用命令集的方式,将所有功能全部预先定制好;只有通过专用命令接口,获得必需的安全操作权限才可进行某种操作。这种方式可将各种数据操作的条件和属性进行细化设计,以获得不同的效果。目前国家税务总局网上公布的《运输发票税控盘/传输盘技术规范》就是这种方式的一个良好实践。
4 应用前景
  目前,电子商务和电子政务方兴未艾,数据安全性日益成为人们关注的重点。通过安全U盘的方式,可方便地实现以下安全功能:
  ◇ 身份认证及安全登录;
  ◇ 数据加密存储和文件系统安全保护;
  ◇ 数据及文件的完整性校验;
  ◇ 授权的数据访问和数据整理;
  ◇ 盘内数据通过KEY的功能实现网上安全传递,保证数据的私密性、完整性、可靠性和不可否认性。上述特点,使得安全U盘在数据保密存储领域、电子政务中基层数据保存及采集上传、税务电子申报领域、网络安全登录和网页加密管理,以及技术人员保密资料的保护等方面具有广阔的应用前景。
5 结论
  本文在一般性分析、论述安全U盘的基础上,具体介绍了采用ST72F65芯片实现安全U盘的软硬件实现方式,分析了市场前景。根据以上设计思想,多款不同档次的安全U盘产品已在市场中得到了应用,成为安全存储领域的一个重要发展方向。
作者: 李小路    时间: 2021-8-3 18:35
谢谢分享!




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2