专利名称:一种usb可移动存储设备的文件加解密方法
技术领域:
本发明属于信息安全技术领域,特别是涉及一种新型的、能对存入或读出u盘等
USB可移动存储设备的数据进行文件级别加解密的方法。
背景技术:
通常在没有网络环境情况下、在网络之间物理隔绝的情况下或是传输文件较大情 况下,要进行方便的数据传输不得不借助于USB移动存储设备。目前市场上所见到的 USB移动存储设备大多不带有任何安全功能,计算机的文件数据直接经过USB端口以 明文的形式存储到USB移动存储设备的介质中。在很多场合,人们并没有意识到存储 于USB移动存储设备中数据的安全性,唯一可以做到的就是尽量保证U盘不会丢失。 而一般情况下,丢失之后的USB移动存储设备中存储的数据在他人眼中便一览无余。 同时USB移动存储设备互借、互拷也会给攻击者带来窃取数据的机会,随着USB的数 据传输速率的不断提高,上G字节的数据瞬间就可以被攻击者偷偷拷走。
现有的安全方案包括了在计算机上的安全措施、USB移动存储设备上提高安全性 能、独立的数据加密设备。
第一种计算机上的安全措施是通过在操作系统内核中嵌入对USB接口转存数据的 安全控制来实现写到磁盘上的数据为密文形式,当需要从磁盘上读出数据时做相应的 解密工作。这种安全机制相当于在磁盘前段加入一块加解密装置,在一定范围内可以 保证数据的流通,通用性强。如果使用硬件电路的方式实现加解密对文件读取速度上 的影响也较小。但是这种方案需要对操作系统的内核做修改,或者是对主板的结构进 行修改,工作量大、标准得不到统一, 一旦到了大的范围内,各种操作系统的计算机 之间就无法进行文件的共享,产生了无谓的麻烦。而目前国内使用最多的Windows操 作系统仍然是一个商业运作的操作系统,普通用户无法对其内核进行修改,使用该种 方案对数据保护的用户只能局限在Linux几种开放的操作系统下,故至今未得到广泛 的应用。而对主板进行修改费用高、难度大,很难成为普通用户及小公司的首选。
于是在这种情况下,很多渴望数据安全的用户将目光投到了一些加密软件上,使 用折中的办法满足自己的需求。通过授权PC机上的程序,使其工作在系统层上,对 出入USB移动存储设备的数据进行加解密来提高USB移动存储设备的安全性能。这种加密方式有很多不同的形式,不论是系统自身安装的软件还是通过移动设备上的 autorun自动加载的应用程序,都使用了这种方式。这种加密方式经济代价低、硬件 上无需做变动。但软件的使用不仅占用系统资源,而且还容易受到木马、病毒的威胁。 通常来说,这种加密方式需要手动输入密码,所以长度有限的字符、数字组合很容易 被后台运行的木马劫持。
另一种方案来自与各大USB移动存储设备制造厂家,它们的共同点就是加密模块 集成在移动存储设备之上,使其自身带有保密功能。但大多数USB移动存储设备需要 计算机上额外运行的软件支持。因为病毒的泛滥,通常这类软件不是被病毒所侵害便 是被杀毒软件误认为可疑对象而隔离。使用起来带来不必要的麻烦。另外这些产品将 加密过程转由硬件实现,但是具体使用的加密标准却不允公开,无法对其展开理论分 析,安全强度未知。
最后一种加密方案完全与计算机与USB移动存储设备脱离,工作时首先将U盘中 的数据全部取出来,加密之后再写入U盘,然后将明文删除。总的来说这样的系统有 几个缺点,首先不是实时的加解密,每次使用U盘的前后都必须使用该设备然后将其 加解密之后再使用;其次每次都必须全盘数据都来一次加解密,费时且不便。
发明内容
技术问题本发明的目的为了克服上述对USB移动存储设备数据安全保护上的缺
陷,提出一种USB移动存储设备的文件加解密方法,实现磁盘文件名及目录可见而文 件内容不可见,在使用上更加灵活。本发明方法运行于配备USB主从接口的控制器上, 上电自启,分别对USB主从接口实现海量存储类的USB协议栈,并实现数据在主从接 口间的交换。
技术方案本发明的USB可移动存储设备的文件加解密方法利用缓存快速访问的 特点进一步提高计算机与磁盘之间数据交换速率。数据的加密方式可以根据硬件的具 体配置而定,可以选择硬件电路完成的加密方式,也可以使用软件方式实现。
本发明的USB可移动存储设备的文件加解密方法,通过主、从USB接口分别连接 于计算机和USB存储设备,对任何一个USB接口上输入的USB数据流进行解析、过滤, 识别出FAT文件系统的文件数据簇;同时通过开辟一块缓存,采用直接映射的方法与 USB存储设备的地址相映射,暂存最近读出过和写入过的数据;然后对识别出的文件 数据使用加解密算法,并替换掉加解密前的数据,最后重新返回到物理层,从另一个 USB接口发送出去;密钥通过预留的端口从密钥生成模块获得。
所述的USB数据流的解析、过滤,是在同一系统中配备一主、 一从两个USB接口以及对应的驱动程序,对计算机伪装成普通的"USB存储设备",响应威有的计算机请
求;对待加密的usB设备伪装成"计算机",根据计算机发来的请求稍;ai改动再次转
发给USB存储设备;该过程分为两个阶段,即枚举阶段和数据传输阶段;在枚举阶段, 微控制器通过发送控制请求至USB移动存储设备,获取该设备的设备描述、配置描述、 接口描述、端点描述、字符串描述以及最大逻辑单元数,然后使用从USB移动存储设 备获得的上述描述响应计算机发起的相同请求;在数据传输阶段,微控制器通过对以 Bulk Only传输方式传输的数据的分析,利用CBW和SCSI的规范格式,识别出主机对 存储设备的命令,对其中的ReadlO和WritelO以外的命令采取完全透明过滤的手段; 对ReadlO的响应先从USB可移动存储设备获取计算机所请求的数据,然后再转发 给计算机;对WritelO的响应直接接收计算机发来的数据,然后再存储到USB存储 设备中。
所述的识别出FAT文件系统的文件数据簇,是根据写入存储器或读出存储器数据 的特征,判断该数据在FAT文件系统中是否为文件数据簇,要排除的可能性包括主 启动记录、DOS启动记录、文件分配表l、文件分配表2、根目录数据和子目录数据, 前5者可以通过数据的地址来确定身份;对于子目录数据,由于在DOS文件系统中规 定子目录必须以名为"."和".."的文件开头,根据该特征和这两个特殊目录项所 具有的特殊属性,其身份可以加以确定。
类似于TCP/IP协议层,USB自身也含有类似的协议,下层为上层提供服务,逻辑 层之间互相通信,真正的数据流都必须通过物理信道。图4描述的是本系统的USB协 议层次之间的关系。系统的工作流程分为两个阶段枚举阶段和数据传输阶段。在枚 举阶段,微控制器通过发送控制请求至USB移动存储设备,获取该设备的设备描述、 配置描述、接口描述、端点描述、字符串描述以及最大逻辑单元数,然后使用从USB 移动存储设备获得的上述描述响应计算机发起的相同请求。在数据传输阶段,微控制 器通过对以Bulk Only传输方式传输的数据的分析,利用CBW和SCSI的规范格式, 识别出主机对存储设备的命令,对其中的ReadlO和WritelO以外的命令采取完全透 明过滤的手段。对ReadlO的响应先从USB可移动存储设备获取计算机所请求的数 据,然后再转发给计算机;对WritelO的响应直接接收计算机发来的数据,然后再 存储到USB存储设备中。ReadlO的具体示例过程见图3。
所述的识别出数据中传输的FAT文件系统的文件数据簇,是根据写入存储器或读 出存储器数据的特征,判断该数据在FAT文件系统中是否为文件内容,要排除的可能 性包括主启动记录、DOS启动记录、文件分配表l、文件分配表2、跟目录和子目录 数据。DOS文件件系统有一个共同的特点子目录必定以名为"."和".."的文件开始。根据数据簇的地址和这个特点就可将以上非文件内容的数据排除在外。间接的实 现对FAT文件系统中文件数据的识别。
所述的开辟一块缓存,利用直接映射地址的原理,使USB存储设备能够映射到开 辟的容量较小的缓存中。另外使用地址映射表存放地址映射信肩、。缓存最近读取和写 入的数据,减小下次访问数据时直接向磁盘索取的概率,提高4专输速度。
所述的加解密算法,可以根据实际情况选用具体的加密标准(必须是对称密码), 加密采用分组模式,初始化向量可以利用当前数据的地址生成。具体的分组模式也可 以根据实际情况选用。实现方式根据对速度、成本的实际要求选用软件方式、硬件方 式或是软硬结合的方式实现。
所述的密钥生成模块,可以根据实际情况选用密钥的生成方法,该模块满足对某 具体用户,使用本发明方法向磁盘写入密文时使用的密钥与读出时的使用的相同,且 该密钥只有合法用户才能获得。
有益效果本发明一种USB可移动存储设备的文件加解密方法具有良好的功能特 性通过对USB物理层数据流的分析,实现了文f^系统层的文4牛级别的加密,保证了 磁盘中文件名、目录以明文形式存在,文件数据是否以明文存在取决于用户的操作; 采用缓存最近访问数据的方式减少控制器直接从USB磁盘获取数据的概率,提高整体 的传输速率;采用标准的加密算法和加密模式,安全性能可以得到保证。本发明可以 根据用户的需要,选择性的使用密钥的生成方法,生成的密钥通过预留接口传输到本 控制模块作为加密算法的密钥使用,不同的密钥对应不同的用户,可实现同一磁盘多 个不同用户的加密数据共存。此外,系统与加密对象、计算机三者的相互独立保证了 USB可移动存储设备使用上的高度灵活性,除了作为加密磁盘〗吏用,还可作为普通USB 存储设备使用,互借互拷都无需担心其中的加密数据会被破解。
图1是本发明方法的总体结构示意图。
图2是本发明方法的方框示意图。
图3是本发明方法中USB数据的透明传输示意图。
图4是本发明方法中USB数据的传输的协议栈示意图。
图5是图2的一个具体实施案例的原理框图。
具体实施例方式
本发明的USB可移动存储设备的文件加解密方法通过两个USB接口分别连接于计算机和USB存储设备,对其中一个USB接口上USB数据流的解析、过滤,识别出FAT 文件系统的文件数据簇;同时通过开辟一块缓存,采用直接映射的方法与USB存储设 备的地址相映射,暂存最近读出过和写入过的数据;然后对识别出的文件数据使用加 解密算法,并替换掉加解密前的数据,最后重新返回到物理层,/人另一个USB接口发 送出去。密钥可通过预留的端口从密钥生成模块获得。 本发明所包含的具体步骤如下-
1. USB数据流的解析
所述的USB数据流的解析,分为枚举阶段和数据传输阶段。在枚举阶段将下行的 USB设备的设备描述、配置描述、接口描述、端点描述以及字符串描述作为对计算机 的各种标准请求的响应。在数据传输阶段,海量存储类规范了在输入输出端点上传输 数据的格式必须遵循CBW、数据、CSW的"命令"、"数据"、"执行状态"的出现顺序, 且CBW、 CSW有特定的标准。而CBW数据块中又包含了 SCSI的命令格式,在SCSI的 众多命令只筛选出ReadlO和WritelO两个进行改动,其它的只做简单的转发。对与 ReadlO,首先判断计算机请求的数据是否在缓存中,如果在直接)l各计算机请求的数据 返回;如果不在,向USB可移动存储设备发送相同的CBW,得到的数据先放在缓存中 并更新内存映射表,然后使用解密算法对当前请求的数据解密,将解密后的明文返回 给计算机。对于WritelO,直接接受计算机传输过来的数据,将其放在缓存中并更新 内存映射表,然后使用加密算法对其加密,并将加密后的密文用同样的WriterlO命 令发送到USB移动存储设备中。
2. 识别出FAT文件系统的文件数据簇
所述的PAT文件系统的文件数据簇,根据FAT文件系统标准,磁盘的存储媒介上 的数据分为以下几类主启动记录、D0S启动记录、文件分配表l、文件分配表2、根 目录数据、子目录数据和文件内容数据。且文件系统在定位数据时以簇为单位, 一个 簇的大小为512字节的整数倍。
所述的识别出数据传输中FAT文件系统的文f牛数据簇,根据FAT文件系统标准, 文件内容数据的地址一定是位于跟目录之后的,根目录之前的包括根目录有主启动 记录、DOS启动记录、文件分配表1、文件分配表2和跟目录。这些的内容的位置都 是可以根据SCSI中请求的地址而确定的。另外,DOS文件系统中,子目录的最前的两 个文件名必定是"."和"..",再加上他们特殊的文件属性可以断定该簇为目录数据。 在排除所有的非文件数据的可能性之后,可以断定该数据为文件数据。
3. 开辟缓存
所述的开辟缓存,利用直接映射地址的原 ,使USB存储设备能够映射到开辟的容量较小的缓存中。另外使用地址映射表存放映射信息。
4. 加解密算法-
所述的加解密算法,可以根据实际情况选用具体的加密标准,加密采用分组模式, 初始化向量可以利用当前数据的地址生成。具体的分组+莫式也可以根据实际情况选 用。实现方式根据对速度、成本的实际要求选用软件方式、硬件方式或是软硬结合的 方式实现。
5. 密钥生成模块
所述的密钥生成模块,可以根据具体情况选用。通过构建合适的通信机制使加密 模块可以从密钥生成模块获得密钥。
本发明采用了与加密对象和计算机分立的设备,在用户通过计算机间接地操作磁 盘时对数据进行实时的加解密,通过预留接口获取密钥,为普通的USB存储设备提供 了数据加密功能,且保证该磁盘在无加密设备时的正常j吏用。
实例采用的硬件配置ARM芯片AT91SAM9260,使用频率210MHz,处理能力230MIPs, 128M Nand Flash, 64M SDRAM,全速l)SB主端口,全速USB从端口, SPI接口。 USB可移 动存储设备采用FAT32文件系统。
以下结合图5,对本发明方法各部分的结构和流程进《亍详细说明。本发明方法是 一种USB移动存储设备的文件加解密方法。具体实施步骤如下
1. USB数据流的解析。采用功能完备的USB海量存锗类的主机驱动和USB海量存 储类的设备驱动。首先使用主机驱动对USB可移动存储设备进行枚举,获得的描述返 回保存为设备驱动的描述,然后重写设备驱动的ReadlO和WritelO响应函数。
2. 识别出数据传输中的FAT32文件系统的文件内容。根据步骤1中ReadlO、 WritelO获得的数据以及数据的地址判断该数据是否为丈i牛内容。
3. 开辟缓存。利用系统配备的64M内存,分配32M内存用作缓存最近在USB上 传输的数据,另外申明一个128K的数组用作地址映射表。
4. 加解密算法。采用AES-128加密标准,CBC的分纟且模式。加密的最小单位为一 个扇区512字节,采用当前扇区的地址经过密钥加密后的密文作为CBC的初始化向量。
实际的应用结果表明,采用以上方法能完全达到本发明方法的设计目标,完成的 加密设备具有文件名、目录可见,文件内容不可见的效果。可以用来实现明文、不同 密钥产生的密文在同一磁盘中的共存。采用的加解密方法也达到了预期的安全强度。
应当理解的是,对本领域普通技术人员来说,可以根^^s发明技术的较佳实施例 以及其技术构思做出各种可能的改变或替换,而所有这些改变或替换都应属于本发明 所附权利要求的保护范围。
权利要求
1.一种USB可移动存储设备的文件加解密方法,其特征在于,通过主、从USB接口分别连接于计算机和USB存储设备,对任何一个USB接口上输入的USB数据流进行解析、过滤,识别出FAT文件系统的文件数据簇;同时通过开辟一块缓存,采用直接映射的方法与USB存储设备的地址相映射,暂存最近读出过和写入过的数据;然后对识别出的文件数据使用加解密算法,并替换掉加解密前的数据,最后重新返回到物理层,从另一个USB接口发送出去;密钥通过预留的端口从密钥生成模块获得。
2. 根据权利要求1所述的一种USB可移动存储设备的文件加解密方法,其 特征是,所述的USB数据流的解析、过滤,是在同一系统中配备一主、 一从两个 USB接口以及对应的驱动程序,对计算机伪装成普通的"USB存储设备",响应 所有的计算机请求;对待加密的USB设备伪装成"计算机",根据计算机发来的 请求稍加改动再次转发给USB存储设备;该过程分为两个阶段,即枚举阶段和数 据传输阶段;在枚举阶段,微控制器通过发送控制请求至USB移动存储设备,获 取该设备的设备描述、配置描述、接口描述、端点描述、字符串描述以及最大逻 辑单元数,然后使用从USB移动存储设备获得的上述描述响应计算机发起的相同 请求;在数据传输阶段,微控制器通过对以Bulk Only传输方式传输的数据的分 析,利用CBW和SCSI的规范格式,识别出主机对存储设备的命令,对其中的 ReadlO和WritelO以外的命令采取完全透明过滤的手段;对ReadlO的响应先 从USB可移动存储设备获取计算机所请求的数据,然后再转发给计算机;对 WritelO的响应直接接收计算机发来的数据,然后再存储到USB存储设备中。
3. 根据权利要求1所述的一种USB可移动存储设备的文件加解密方法,其 特征是,所述的识别出FAT文件系统的文件数据簇,是根据写入存储器或读出存 储器数据的特征,判断该数据在FAT文件系统中是否为文件数据簇,要排除的可 能性包括主启动记录、DOS启动记录、文件分配表l、文件分配表2、根目录 数据和子目录数据,前5者可以通过数据的地址来确定身份;对于子目录数据, 由于在DOS文件系统中规定子目录必须以名为"."和的文件开头,根据该 特征和这两个特殊目录项所具有的特殊属性,其身份可以加以确定。
全文摘要
一种USB可移动存储设备的文件加解密方法,通过两个USB接口分别连接于计算机和USB存储设备,对其中一个USB接口上USB数据流的解析、过滤,识别出FAT文件系统的文件数据簇;同时通过开辟一块缓存,采用直接映射的方法与USB存储设备的地址相映射,暂存最近读出过和写入过的数据;然后对识别出的文件数据使用加解密算法,并替换掉加解密前的数据,最后重新返回到物理层,从另一个USB接口发送出去;密钥可通过预留的端口从密钥生成模块获得。
文档编号G06F12/14GK101630292SQ200910183069
公开日2010年1月20日 申请日期2009年7月29日 优先权日2009年7月29日
发明者胡爱群, 范鹏飞, 顾任亮 申请人:东南大学