拿来即用,指纹识别保密系统完整解决方案(6)
4.4 SCSI 指令(Small Computer Systems Interface Block Commands)
在 4.3节中介绍的 BOT(Bulk-OnlyTransportation)协议的 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模式因为它的一一对应容易受到水印攻击(watermarkingattack),而 CBC(CipherBlockChain)式一直以来是众 多模式中使用最为广泛的加密模式,即便是在某些方面存 在一些不足。综合考虑各种因素,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-3 所示,FAT 主要有四部分组成:DBR(DOSBootRecord)即操作系统引导记录区、FAT (File Allocation Table)即文件分配表、 根目录、数据区。这四个部分随着 FAT 的位数的不同有略微的变化,但是磁盘的实现原理是一样的。
DBR 主要存储了跳转指 令、BPB等一些分区信息,用于操作系统对 分区的识别以及进一步的操作。FAT 用于存储磁盘中大于一簇的文件的跨簇存储的信息,采用链表的方式实现了文件的连续和不连续的存储,同时 FAT 会存有相同的两份,以供其中一个出现错误时恢复用。根目录记录了 根目录下的文件、文件夹信息和他们所在的实际首地址、 长度等信息。最后便是所有文件数据存储的区块。
在USB 的读写过程中,USB 控制器无需对文件系统有任何了解,在对文件的处理过程中所需要的操作全部由 PC 机上的操作系统完成,将需要读写的数据读出或写到 Flash 中。而USB 所要做的就是不断的响应 PC 的请求,这些请求就是 4.4节所述的 SCSI 的读写命令,完全不需要管上层的文件 系统究竟在做什么工作。这一层与层之间 的独立的特性也为系统的实现以及对磁盘的加密提供了理论前提。
谢谢楼主的分享
页:
[1]