USB移动存储设备的惟一性识别方法研究
27782010,31(12)计算机工程与设计Computer Engineering and Design
0引言按照涉密移动存储介质保密管理规定,涉密移动存储介质应遵循“统一购置、统一标识、统一备案、跟踪管理”的原则。在移动存储设备的管理中,最关键的问题是移动存储设备的标识和认证,它是后续工作的前提。USB 移动存储设备的标识和认证在可信系统中有两个方面的需求:可信移动存储设备的惟一性识别;可信移动存储设备的合法使用人。为了实现涉密U 盘保密管理的智能化控制,需要为每个U 盘定义一个可查询、不易修改的惟一性标识,且该标识应很容易与使用者绑定,从而使涉密U 盘的保密管理责任到人,以减少泄密隐患[1]。如何更好地做到USB 移动存储设备的惟一性标识是移动存储设备管理中的难题。本文研究了几种不同的USB 移动存储设备的惟一性识别方法,对这几种不同的惟一性识别方法进行综合分析比较,对网络可信系统的研究开发具有重要的参考价值。
1U 盘的结构和标识码
1.1
U 盘结构
为寻求U 盘的惟一性标识方法,首先考虑U 盘是否本身就存在计算机能识别的惟一性的特性。U 盘一般
由主控芯片、闪存芯片、接口电路、PCB 底极和外壳5个部分组成。USB 移动存储设备的描述符信息包括设备描述符、配置描述符、接口描述符、字符串描述符、端点描述符等,当USB 设备接入计算机并被枚举时,它需要将这些描述符信息报告给操作系统,操作系统根据USB 设备报告返回的信息,调用并装载适当的设备驱动程序来服务于USB 设备的使用。随着计算机技术的发展,集成度越来越高,如很多U 盘的主控芯片和接口电路集成在一个芯片上,还有的U 盘采用主控芯片和闪存芯片集成在一起。U 盘惟一性标识信息可能存储的地方有:主控芯片(存储器类型非ROM 、PROM 型)和闪存中。通常把能够惟一标识USB 设备的标识信息称为惟一性标识码。
收稿日期:2009-07-29;修订日期:2009-09-29。
信息化技术
廖洪其,凌捷,郝彦军,等:USB移动存储设备的惟一性识别方法研究2010,31(12)2779
1.2标识码的选择和存放要求
给U盘增加惟一性标识码的主要目的是给U盘附加特殊的标记,且该标识应很容易与使用者绑定,以方便管理。选择合适的惟一性标识码,除了它的惟一性外还要求惟一性标识码不能被普通用户看到,普通用户不能进行更改、复制、删除等操作,标识码的存在不影响U盘的正常使用。
2常见的标识USB存储设备的方法
2.1基于描述符信息的识别
目前有许多移动存储介质管理系统仅以USB移动存储设备的描述符信息作为介质的惟一性标识,如有些系统以USB移动存储设备的序列号(属于字符串描述符)为依据来判定USB存储设备是否合法。从操作系统的角度来看,它所认识到的设备以设备报告给它的描述符信息为依据,换句话说,接入系统的设备是什么样的设备,决定权完全在于设备,而不在于操作系统。从USB设备的角度来看,描述符信息(包括设备描述符、配置描述符、接口描述符、端口描述符、字符串描述符、端点描述符等等)是设备固件程序的一部分,以Keil C来开发固件程序为例,设备描述符是这样一个固定结构体数据类型:typedef struct_USB_DEVICE_DESCRIPTOR{
UCHAR bLength;
UCHAR bDescriptorType;
USHORT bcdUSB;
UCHAR bDeviceClass;
UCHAR bDeviceSubClass;
UCHAR bDeviceProtocol;
UCHAR bMaxPacketSize0;
USHORT idVendor;
USHORT idProduct;
USHORT bcdDevice;
UCHAR iManufacturer;
UCHAR iProduct;
UCHAR iSerialNumber;
UCHAR bNumConfigurations;
}USB_DEVICE_DESCRIPTOR,
*PUSB_DEVICE_DESCRIPTOR;
其他的描述符信息也有着类似的结构体数据类型,编写固件程序的时候应该为这些描述符信息结构体数据附初值。当一个询问描述符信息的请求到达时,固件程序运行,U盘主控芯片以一个中断的方式将所请求的描述符信息报告给操作系统。
设备描述符[2]中的iSerialNumber字段用于描述设备序列号的字符串描述符的索引,它的值为0时表示设备序列号不存在,当它的值为非0时,设备序列号存在。倘若设备序列号存在,USB协议特别建议USB设备的字符串序列号应该不同。在这种情况下,描述符信息不同导致固件程序也不同,如果按常规方法,需要在编写固件程序的时候,将其中的描述符信息结构体数据以不同的值来进行初始化,然后重新编译成.hex 文件,并用编程器把该文件写入USB设备主控芯片中。这样对生产厂家来说,生产效率较低,不符合批量生产的要求。对于片内存储器非ROM、PROM型的主控芯片,厂家一般会开发出相应的U盘量产化工具,以有着相同描述符信息初始值的.hex固件程序(相同的固件程序)写入U盘主控芯片中,当U盘组装完毕合格后,用相应的U盘量产化工具通过发送Set_De-scriptor标准请求更改U盘中的描述符信息,以使之不同。Set_ Descriptor请求并不是U盘必须支持的请求,要更改描述符信息,厂家可以通过其他的接口,比如自定义请求。对于片内存储器为ROM、PROM型的主控芯片,虽然主控芯片里面的数据是不能更改的,但是检测USB描述符信息很容易实现,如可以用USBCheck这些工具检测出USB设备信息并复制它。因此仅以USB设备的描述符信息作为设备的惟一性标识,在实际的应用中,安全性难以得到保证。
2.2基于卷序列号的识别
卷序列号是U盘在格式化时由文件系统驱动(FSD)指定,一个逻辑卷对应一个卷序列号,两次格式化同一逻辑卷生成的卷序列号相同的几率几乎为零。获取U盘卷序列号的方法相对比较简单,使用常规的Win32函数GetV olumeInformation ()即可。基于Win32的应用程序依靠文件系统在大容量存储设备(mass storage devices)中存储和返回卷信息。文件系统驱动程序(FSD)必须支持几种卷信息请求类型,FileFsV olumeIn-formation就是其中的一种(枚举类型值为1)。当文件系统驱动接收到IRP_MJ_QUERY_VOLUME_INFORMATION,且在域FS_INFORMATION_CLASS中枚举类型值为1(即FileFsVolume-Information),FSD将返回FILE_FS_VOLUME_INFORMATION 结构体,该结构体定义如下:
Typedef struct_FILE_FS_VOLUME_INFORMATION
{
LARGE_INTEGER VolumeCreationTime;
ULONG VolumeSerialNumber;
ULONG VolumeLabelLength;
BOOLEAN SupportsObjects;
WCHAR VolumeLabel[1];
}FILE_FS_VOLUME_INFORMATION,
*PFILE_FS_VOLUME_INFORMATION;
以FAT格式化U盘为例,在字节偏移地址为39的DBR 区中有一uchar类型的bVolID[4]域,该域共占用4个字节。
通过Win32函数GetV olumeInformation()获取的DWORD 类型的卷序列号、FSD返回的结构体中的ULONG类型的Vo-lumeSerialNumber和DBR区中的uchar类型的bVolID[4]域,它们是同一个值,在用文件系统如FAT格式化时,由FSD指定。重新格式化后,卷序列号会发生变化。如果根据该序列号标识设备,设备在格式化后,会被认定为新的设备。因此用卷序列号作为U盘惟一标识的方法也不可靠。
2.3基于已有的FAT/NTFS等文件系统增加标识信息
在已有的FAT或NTFS等文件系统中,都存在有一些保留字段,有些字段的值必须严格按照文件系统的
官方规定设定为规定值,否则在收到I/O管理器的挂载请求后,FSD核实元数据失败,会导致mount请求失败而使U盘无法使用;也有一些字段的值,在FSD核实元数据时被忽略,在这样的字段中增加特定的惟一性标识信息成为了可能。
其次,也可以破坏U盘的引导扇区部分[3],在引导扇区部
分区域中增加惟一性标识信息,这样的U盘接入非受控系统后会不能正常使用。当U盘接入受控计算机系统后,首先恢复引导扇区部分,然后正常使用U盘,当U盘要拔出时,破坏其引导扇区部分[4-5],并把先前的惟一性标识信息写进去。这里的缺点是:当U盘意外拔出时,没有机会把惟一性标识信息重新写进去。
上面提到的都是在非用户数据区中增加惟一性标识信息,也可以在U盘提供给用户使用的数据区中保存惟一性标识信息,并把它标记为坏扇区,在U盘刚接入受控计算机时先恢复相关扇区标记信息,然后再验证惟一性标识信息,当然验证成功后应该进行反操作(即重新标记该扇区为坏扇区或者为用户不可访问扇区)。
这种基于已有的FAT/NTFS等文件系统增加标识信息的方法与方法2一样,在重新格式化之后可能会识别为新设备。
无法识别usb设备2.4用自己的文件系统格式化U盘
从系统角度来看,文件管理系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统,简称文件系统。这里的文件存储器可以是磁盘、U盘或者是软盘等。这些文件存储器提供给用户使用的是赤裸的存储空间,用户如何对它进行组织、如何使用它,U盘并不关心,而文件系统正好起到了组织分配的作用,它把U盘提供给用户的存储空间划分出不同的区域,大部分区域是给用户存储数据的,而有少部分区域保存着文件系统不可缺少的数据结构信息,通常把这些信息叫做元数据。
由此可以通过设计自己的文件系统,把U盘提供给用户的存储空间划分一部分出来存放惟一性标识信息,在第一次用该文件系统对U盘进行格式化操作时,把惟一性标识信息写入进去,当重新格式化时,由于使用的是自己的文件系统,知道哪些区域里面的信息是不能更改的,在重新格式化时惟一性标识信息可以不会被更改。
3一种基于特殊命令请求的惟一性识别方法
在上文的基于描述符信息的惟一性识别方法中,描述符信息是通过USB协议定义的标准请求来获得的,USB协议定义了11个标准请求。大容量存储类别支持两个传输协议:单独批量传输和控制/批量/中断传输。其中单独批量传输协议定义了两个类别特定请求,控制/批量/中断传输定义了一个类别特定请求。U盘除了支持USB的标准请求和类别特定请求外,还需要支持一定的工业标准命令区块,由接
口描述符中的bInterfaceSubClass字段指定,U盘支持的命令区块一般是SCSI transparent command set(bInterfaceSubClass字段值为06H)[6]。不管是标准请求、类别特定请求还是工业标准命令区块等,都把它当作是主机发送给U盘的命令请求,U盘接收到这些命令请求后,执行相应的动作。
本文认为可以通过固件程序在U盘中预先写入一些自定义特殊命令请求来为惟一性识别服务,这些命令请求不公开给普通用户。比如可以在U盘主控芯片或者是闪存中保留一些存储区域用来存储惟一性识别信息,这些信息只能通过自定义的特殊命令请求所读取。这种方法需要U盘生产商的支持,编写特殊的固件程序,并留有一条不被普通用户所知道的秘密通道。如果U盘只支持官方标准文档中所定义的命令请求,这些标准文档包括:USB协议、USB Mass storage协议、SPC 和SBC文档等,这样的U盘可以使用Windows自带的驱动程序。本文所提出的基于特殊命令请求的惟一性识别方法需要添加设备驱动程序。
4几种标识方法的分析比较
方法1在用户的普通操作中(包括格式化)不会被删除,但是由于工具的普遍存在性使查看和修改设备字符串序列号变得很容易。
方法2和方法3的惟一性标识信息都存放在U盘闪存的特殊字段或区域中,在格式化操作时,这些惟一
性标识信息会被擦除,而且在没有主控芯片的限制下,闪存中的区域均可通过特殊的技术手段(比如直接存储器访问技术)访问得到,并可以改写这些区域的数据。
方法4由于使用的是自己的文件系统来组织分配U盘存储区域,所以在受控计算机中重新格式化之后惟一性标识信息仍然可以不会被更改,当然如果你要用其他的文件系统对其进行格式化,惟一性标识信息会被擦除,但是其它格式的U 盘没有在受控计算机中使用的机会。
比起前面几种方法,本文提出的方法是最可靠最安全的,这是一种软硬件结合的方式[7]。因为修改和查看惟一性标识信息的通道不会被用户所知道,修改和查看几乎成为不可能的事情,在用户的任意操作中(包括格式化)均不会影响到惟一性标识信息,但是这种方法一般需要U盘厂商的支持,设计硬件并编写特殊的固件程序和驱动程序。仅仅从USB移动存储设备的惟一性识别这一点上,移动存储设备管理系统需要采用软硬件结合的方式,安全性和可靠性才能够更好地得到保证,这种软硬件结合方式将会是移动存储介质保密管理产品的发展趋势[8]。
根据惟一性标识码的选择和存放要求,几种方法的优缺点比较结果如表1所示。
表1几种方法比较
方法普通用户能否看到或者复制惟一性标识码普通用户能否对惟一性标识码操作安全性和可靠性方法1
使用网上盛行的量产化工具很容易看到并复制能(非ROM、PROM型主控芯片,支持公开的标准请求Set_Descriptor)低
方法2一般是看不到,借助于特殊的工具或者是自编程序
能够看到并复制
一般的操作中不会,格式化操作会擦除掉惟一性标识码中等
方法3一般是看不到一般的操作中不会,格式化操作会擦除掉惟一性标识码中等方法4一般是看不到一般的操作中不会,用其它的文件系统格式化会擦除掉比较高本文方法看不到,不能复制不能高
初始位置对应天线扫描的位置,使小扇形的运动速度与天线扫描的速度保持一致,只有雷达天线扫描到的区域的画面才能被刷新,其他区域的画面仍保留上一帧的画面不变。从而实现带余晖的循环扫描或者一定角度的扇扫。
搜索增益和信标增益的模拟。由于上述增益的增加,发射机的增益变大,能量必然增强,探测距离变远,可导致图像画面的亮度与清晰度增加。反之亦然。可通过改变显示系统的分辨率A,A值可以调节,A∈(0.5~10km/pixel)。另外还需对深度缓存和光照的进行处理,实现对增益的模拟。
4仿真结果
在设计中,主要基于Windows2000操作平台,综合运用面向对象的VC编程语言,IDATA图形仪表软件,模拟出了高逼真的气象和地形的观测图像,并加入雷达气象告警、天线扇扫、以及调节搜索增益、信标增益对画面影响的效果。图3、图4分别为某型机雷达工作在脉压方式下,探测范围80km,扫描范围±60

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。