首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

拿来即用,指纹识别保密系统完整解决方案(3)

拿来即用,指纹识别保密系统完整解决方案(3)

4   实现原理

本章将围绕图 3-2 做详细的阐述。



4.1   USB 物理、设备层解析

有四种 packet(令牌、帧开始、数据包和握手)进入 MAX3421E,通过读取 MAX3421E的寄存器可以获得以上四种 packet 的信息,将它分为配置数据和传输数据分别处理。配置数据是 PC 控制 U 盘的,流向只可能从 PC 至 U 盘,而传输数据则是双向的。要从这些数据中区分出哪些数据是将要被存到 Flash 中的,哪些是控制 U 盘操作的。对于那些控制 U 盘操作的数据,MicroBlaze 直接转发给 U 盘,而从 Flash 读来的或者是要写到 Flash 中的数据就需要进行加解密再转发。



从主机发来的数据包根据它们不同的类型发往不同的 USB 端点。USB 端点是 USB 设备特有的一种硬件的接收发送单元。USB 主机与 设备之间都是通过端点来传输数据的。端点是桥 梁 和 纽带 , 不 同的 端 点 其传 输 数 据 的能 力 不 同, 适 于 不 同的 应 用 场合 。 在  Bulk OnlyTransportation  的海量存储实现规范(见 4.3  节)中,使用了三个端点,他们分别是控制端点、数 据输出 端点和 数据输 入端 点。控 制端点 可以 用于控 制命令 的输 出,配 置信息 的输 入和输出,它通常表示为 0 端点,这个端点的流向是双向的,不会出现 STALL 的状态,它负责设备的配置交互,最大 信息包 64 字节。输入输出端点负责数据的输 入、输出,他们都是单向的只能负责输出或者输入,最大信息包 64 字节(USB 全速设备)。  


表 4-1   B OT 端点 的属 性


端点

传输类型

端点类型

传输方向

最大传输包

0

控制输入

控制输出

默认

输入

输出

64Byte

1

数据输出

普通

输出

64Byte

2

数据输入

普通

输入

64Byte










4.2   USB 的枚举过程

枚举过程定义为:当设备插入系统时,主机对设备进行配置,获取 USB 设备的各种描述(包括设备描述、配置描述、Bulk Only 数据接口描述、Bulk-In 端点描述、Bulk-Out 端点描述和字符描述),这也就是 USB 设备为什么可以热插拨的原因。USB 设备可分为以下几类:显示器、通讯设备、 音频设备、人机输入、海量存储„„特定类的 设备又可划分成子类。枚举使得主机可以精确定位 USB 设备类型,搜 索相应的驱动程序。


通用海量存储设备(General  Mass  Storage  Device)的设备描述中,不同的 U 盘在某些具体的字段会具备不同的值。对于不同的字段值,在程序中采取了相应的措施以提高 U 盘的兼容性。USB-IF 推荐 使用批量传输(Bulk-Only  Transportation)模式,所以 我们的系统也将采用批量传输模式。



4.3   批量传输协议(Bulk-Only Transportation Protocol)

在完成  U 盘的枚举过程之后,识别出为  Bulk-Only  的  Mass  Storage 设备,然后即进入Bulk-Only 传输方式。 在此方式下,PC 与 U 盘之间所有数据均通过 Bulk- In 和 Bulk-Out 来进行传输,不再通过控制端点传输任何数据。







图 4-1命令 、数 据 、状 态流程 图



在这种 传输方式下,有三种类型 的数据在USB  和 设备之间传送,CBW、CSW  和普通数据。CBW(Command  Block  Wrapper)是从 USB Host 发送到设备的命令,命令格式遵从接口中的 bInterfaceSubClass 所指定的命令块,这里为 SCSI 传输命令集。USB 设备需要将  SCSI命令从 CBW 中提取出来,执行相应的命令,完成以后,向 Host 发出反映当前命令执行状态的 CSW(Command Status Wrapper),Host 根据 CSW 来决定是否继续发送下一个 CBW 或是数据。Host 要求  USB 设备执行的命令可能为发送数据,则此时需要将特定数据传送出去,完毕后发出 CSW,以使 Host 进行下一步的操作。USB 设备所执行的操作可用图 4-1 描述。


在流程图中包括了三种形式的数据包,USB 的设备层统一将他们看成数据,不加区分的进行传输,而在功能层上才开始区分这三种不同形式、不同功能的数据包。4.4
SCSI
指令(Small Computer Systems Interface Block Commands)

在 4.3  节中介绍的 BOT(Bulk-Only  Transportation)协议的 CBW 数据包中有一个长度为 6到 12 不等的字段 CBWCB,其传输的就是 SCSI 命令。


表 4-2   MSC 基 本 S CSI 命 令集


INQUIRY

命令描述查询设备的详细信息,如生产厂家、序列号等


READ CAPACITY(10)

READ(10)

REQUEST SENSE

TEST UNIT READY

WRITE(10)

读取 Flash 容量,扇区大小以及总扇区数

输入要读取的数据,从 Flash 读出

请求判断,用于发生错误时系统自我纠正

测试单元准备,电脑通过此命令保持 U 盘一直处于激活状态

提供 Flash 地址,向 Flash 写数据

SCSI命令集是 一套能够完成 对一般外接存 储系统设备 的存取、配置 、检查等任务 的完备指令 集。SCSI拥 有的这套指令 集有很多指 令,不同的 版本分别用 在光驱、硬盘、 软驱等设备的控制中,表 4-2 列出的 6 条指令已经可以完全实现 USB 存储设备的操作了,这一特性大大减小了设备设计的难度与复杂度。Bulk-Only 的 CBW 中的 CBWCB 字段就是对以上这些命令的描述。


4.5   基于 CBC-ESSIV 模式的磁盘加密机制

在过去的很多年里用户 数据的保护大多停留在文件级别的加密技术上,而磁 盘加密技术一直由于软硬件上的瓶 颈而止步不前。随着计算机理论以及硬件的飞速发展 ,现在的计算机使用者,不管是专业人 员还是普通用户,在选择自己的加密手段 时则更加倾向于磁盘加密。


一是因为磁盘加密可以 通过高速的硬件实现透明访问;二是可以在磁 盘加密的基础上再使用文件加密,从而达到双重加密的高强度加密效果。


在加密方式上,毋庸置疑 AES 一直被用在了磁盘加密上,不只是因为它的安全性能,更因为 AES 是一种很好的分析加密算法。但是在加密模式上一直存在一定的问题。普通的 ECB模式因为它的一一对应容易受到水印攻击(watermarking  attack),而 CBC(Cipher  Block  Chain)式一直以来是众 多模式中使用最为广泛的加密模式,即便是在某些方面存 在一些不足。综合考虑各种因素,CBC 仍然具有多方面的优越性。


在一块可以扇区寻址的 Flash 或者硬盘上,通常一个扇区的大小为 512Byte,那么一个扇区 所需 要 的  AES  加 密 次 数 为  32  次 。 这  32  次 加 密 我 们 就 使 用  CBC  模 式 完 成 , 由ESSIV(Encrypted Salt-Sector IV)算法生成 IV(In itiation Vector)初始化向量。





经过其中 H (k ) 是由密钥生成的散列。由于 IV 的生成涉及到密码 k 的介入,所以 IV 的不可预测性很大程度增加了破解的难度。




4.6   FAT 文件系统

FAT 文件系统包括 FAT16 和 FAT32 两种,他们分别应用在不同大小的 U 盘中,有的 U盘两者都可以使用,但 是根据簇的大小以及寻址的位数,在不同容量的系统 中,他们会体现出不同的磁盘效率。






图 4-3FAT 文件 系统



如图 4-3 所示,FAT 主要有四部分组成:DBR  (DOS  Boot  Record)  即操作系统引导记录区、FAT (File Allocation Table)  即文件分配表、 根目录、数据区。这四个部分随着 FAT 的位数的不同有略微的变化,但是磁盘的实现原理是一样的。


DBR 主要存储了跳转指 令、BPB  等一些分区信息,用于操作系统对 分区的识别以及进一步的操作。FAT 用于存储磁盘中大于一簇的文件的跨簇存储的信息,采用链表的方式实现了文件的连续和不连续的存储,同时 FAT 会存有相同的两份,以供其中一个出现错误时恢复用。根目录记录了 根目录下的文件、文件夹信息和他们所在的实际首地址、 长度等信息。最后便是所有文件数据存储的区块。


在  USB 的读写过程中,USB 控制器无需对文件系统有任何了解,在对文件的处理过程中所需要的操作全部由 PC 机上的操作系统完成,将需要读写的数据读出或写到 Flash 中。而USB 所要做的就是不断的响应 PC 的请求,这些请求就是 4.4  节所述的 SCSI 的读写命令,完全不需要管上层的文件 系统究竟在做什么工作。这一层与层之间 的独立的特性也为系统的实现以及对磁盘的加密提供了理论前提。


返回列表