一种基于指纹u盘和虚拟机的安全可移动数据存储方法

文档序号:6428693阅读:179来源:国知局
专利名称:一种基于指纹u盘和虚拟机的安全可移动数据存储方法
技术领域
本发明涉及数据存储技术领域,具体涉及一种基于指纹U盘和虚拟机的安全数据存储方法。
背景技术
在今天这个信息高速膨胀的环境下,诸如U盘之类的移动存储工具因为其本身具有使用便捷、传输快速、安全性能高等优势,在数据交换日益频繁的今天,无论是个人,还是专业或企业用户,都倾向于用U盘进行重要数据的保存,这种使用模式本身对产品性能提出新的要求,即安全性尤其重要。很多人选择将重要或者私密的文件存储到U盘中,而不是长期放在计算机的硬盘里面,因此以U盘为首的移动存储工具成为保护数据安全的重中之重。但信息安全始终是个难以解决的问题。常规的基于口令的身份认证和加密方式存在诸多问题而越来越满足不了某些敏感场合的特殊要求。将生物特征身份认证技术和加密机制有机地结合在一起,可以利用生物特征的唯一性、不可替代性保证信息安全的长期有效,彻底杜绝密码和密钥遗忘、被盗、被破解的现象。将生物特征身份认证技术和加密机制有机地结合在一起,可以提供一种更加安全、便捷的文件加密管理方案。目前使用最广泛的生物特征识别系统是指纹识别系统。因为指纹是独一无二的, 不存在相同的指纹,这样可以保证被认证对象与需要验证的身份依据两者之间严格的一一对应关系;指纹是相对固定的,很难发生变化,可以保证安全信息的长期有效性;采用领先的活体指纹识别技术,杜绝使用指模复制的方式欺骗设备的可能,确保机密数据无法被人冒用、窃取和篡改。而在移动存储设备中,人们往往使用的是PC机上的操作系统,特别是 WindOWS98/2000/2003/XP操作系统。在日常生活中,针对可移动存储设备的病毒层出不穷, 这些病毒非法侵入可移动存储设备,非法读取设备上的数据甚至改写里面的文件,导致里面的数据被破坏而无法正常使用。由于可移动存储设备的移动性强的特点,往往会导致一个设备中毒,其它使用过此设备的电脑也被交叉感染的情况,甚至当用户用其它存储设备访问同一台PC机时,该存储设备又被感染的情况。可见,当我们使用PC机上的操作系统访问可移动存储设备时,存在巨大的信息安全风险。由于信息保密的重要性,使得现在市场上基于加密技术的移动存储盘层出不穷。 这些加密U盘的共同特点是既可以作为通用的U盘使用,同时也可以作为加密盘使用。这些产品通常采用加密技术和芯片固件开发相结合的手段,并在PC机上建立一个管理加密U 盘的软件,通过软硬结合的方法来保证安全性。其中一些加密U盘也使用了指纹识别技术。在这里我们用深圳市天辰科技电子有限公司的加密U盘为例分析一下指纹加密U 盘有何优缺点。该公司的加密U盘可以使用指纹登陆U盘,对重要文件进行加解密。U盘分为两个区,一个是公共区,可以当做普通U盘的数据库;一个是加密区,采用指纹或者是密码打开,并将文件存放在加密区。通常加密的做法是利用PC机上的软件对文件进行加密后存放,或者通过U盘上的芯片对存放在加密区的数据进行全盘加密。通过这样的方式来保证数据的安全性。通过分析可以发现,加密U盘的管理、数据的加解密、指纹的管理等功能均需要运行在PC上的软件来支持。这样做有一些弊端,列举如下1、软件容易受到PC机上的木马监控,毕竟解密的数据是暴露在内存里面的,而所在的PC机可能由某些读取内存数据的病毒存在。2、软件需要保存在U盘里面,使用的时候将软件拷贝到PC机上,这样导致了软件在操作系统上的兼容性问题,有可能操作系统不支持该软件,比如将Windows的软件拷贝到苹果机上就不能运行。3、U盘重要数据不能备份,如果U盘文件系统格式损坏,将导致重要数据丢失。因此,市场上的产品实际上还达不到高度安全性和可靠性。本系统采用的指纹加密U盘+操作系统+虚拟机技术可以有效解决以上难题,构建一个更加让用户放心的安全系统。

发明内容
本发明的目的是克服现有技术存在的上述不足,提供一种基于指纹U盘和虚拟机的安全数据存储方法,通过本发明的方法,可为用户提供一个高安全性和易用性的安全系统,该系统以加密U盘为存储载体,利用指纹验证或密码进行身份认证,并且在U盘上面集成了一个小型操作系统(用户不可见),操作系统上运行多个基于虚拟机软件的windows操作系统,以满足用户需求。此外,在用户可信任的Windows平台上还带有一个管理U盘的管理软件(所述计算机管理端),该软件只要运行在用户私有的PC机上即可,主要用于管理U 盘上的指纹、备份磁盘映像、修复U盘等等功能,一键生成U盘等。本发明通过以下技术方案实现。基于指纹U盘和虚拟机的安全数据存储方法,包括如下步骤步骤一、利用计算机管理端对普通U盘进行初始设置,使U盘安装上引导程序、提供基本运行环境的底层操作系统(不包含与本发明无关的软件)、虚拟机管理器,所述虚拟机管理器上能运行一个或多个windows操作系统,windows操作系统的虚拟磁盘映像文件也存在U盘上面;步骤二、将U盘插入到x86计算机上,选择从U盘启动;U盘引导程序载入内存进行引导,提示输入指纹或密码;步骤三、输入指纹或密码,验证通过后进入下一步,否则提示失败;步骤四、引导程序引导底层操作系统,完毕后自动运行虚拟机管理器;步骤五、进入虚拟机管理器界面,选择虚拟机运行,在windows操作系统上操作数据、存储数据或安装使用应用软件,所述虚拟机管理器在这个过程中自动读取U盘里面的密钥并自动对数据进行加解密操作。上述的基于指纹U盘和虚拟机的安全数据存储方法,步骤一进一步包括(1)插入U盘到计算机管理端,采用U盘初始密码登录U盘,转变U盘工作模式为登录模式;(2)计算机管理端对U盘进行格式化,安装引导程序、底层操作系统、虚拟机管理器到U盘主控芯片外部的Flash上,同时对引导程序、底层操作系统、虚拟机管理器生成一个完整性验证码,完整性验证码存在U盘主控芯片内部的Flash上;(3)计算机管理端自动生成密钥,密钥存储在U盘主控芯片内部的Flash上,计算机管理端用密钥生成加密的虚拟磁盘映像文件,该文件为一个能运行的Windows操作系统虚拟磁盘映像文件,存放在主控芯片外部的Flash上;(4)利用计算机管理端注册用户指纹到U盘里面,修改U盘初始密码。上述的基于指纹U盘和虚拟机的安全数据存储方法,步骤二中,还将U盘当做一个可信平台模块,对引导程序、底层操作系统、虚拟机管理器进行代码完整性验证,验证过程如下由引导程序对自身、操作系统、虚拟机管理器的代码生成一个完整性验证码,并送入 U盘与存在U盘主控芯片内部的Flash中的完整性验证码比较,一致则提示输入指纹或密码。上述的基于指纹U盘和虚拟机的安全数据存储方法,步骤二中先将x86计算机设置为从U盘启动。上述的基于指纹U盘和虚拟机的安全数据存储方法,步骤五中,运行多个虚拟机, 各虚拟机能独立存储数据或使用数据。上述的基于指纹U盘和虚拟机的安全数据存储方法,所述底层操作系统对用户不可见,并且虚拟磁盘映像文件是以加密的形式存放在U盘主控芯片外部的Flash上,密钥保存在U盘主控芯片内部的Flash上,只有完整性验证通过及密码或指纹输入正确才能获取密钥。上述的基于指纹U盘和虚拟机的安全数据存储方法中,还利用计算机管理端将U 盘中加密的映像文件备份到计算机上,如果系统崩溃,通过计算机管理端对U盘进行恢复。
上述的基于指纹U盘和虚拟机的安全数据存储方法中,对SCSI命令进行扩展,使U 盘支持读写密钥、读写密码、注册指纹、验证指纹、完整性验证或者指纹登录功能;所述U盘有两种状态一种是未登录状态,具备现有U盘读取和存储数据的功能,同时具备完整性验证和用户登录功能;另一种为登录状态,支持读写密钥、读写密码、注册指纹和验证指纹功能。上述的基于指纹U盘和虚拟机的安全数据存储方法中,U盘固件采用Bulk-Only协议进行通信,该协议采用CBW包和CSW包进行数据交换,SCSI命令是封装在CBW包中;CSW 是USB设备返回的状态包,表示操作的成功与否;在U盘固件和计算机的通信过程中,包括 CBff, CSW、数据三种通信内容。上述的基于指纹U盘和虚拟机的安全数据存储方法中,底层操作系统为小型可定制操作系统,只需满足运行虚拟机运行环境要求;虚拟机在读取加密映像的时候进行解密, 在写加密映像的时候进行加密,加密算法采用标准RC4流密码变体,RC4的密钥为虚拟磁盘映像文件磁盘块号与存储在U盘的密钥的异或结果,RC4针对每个虚拟磁盘块产生的随机数都不一样,将随机数和虚拟磁盘块内容进行异或就是加密,再异或就是解密;所述虚拟机管理器界面为安装在底层操作系统上面的软件,用于提示哪些虚拟机可用,并管理虚拟机状态,这些状态包括启动、暂停、唤醒和停止;所述计算机管理端为安装在x86计算机上的管理端,启动管理端的时候,用户必须先插入U盘,然后输入指纹或密码才可以进入管理程序,才能进行步骤一所述操作。
与现有技术相比,本发明具有如下优点和技术效果(1)有效解决实际生活中碰到的数据安全隐患问题,相比市场上的安全盘有更高的安全性;(2)本发明不单单是一个安全的存放数据的方法,而且还是个包含可信操作系统和可信软件的安全系统。可以使用在他人电脑上使用U盘的软件而不用安装;(3)结合生物指纹技术和虚拟化技术、密码技术于一身,以构建更高安全系统利用了指纹做为身份认证技术,并且利用了指纹作为密钥生成的信息源;(4)U盘自带操作系统,可以在多个不同操作系统的X86PC机上面迁移数据,防止感染PC机上面的病毒。(5)虚拟化技术可以保证重要数据的备份和恢复,并且可以同时运行多个虚拟操作系统,以区别不同的任务安全需求;可以同时运行两个以上虚拟机,一个用于上网,一个用于专门的保密信息处理,这样即使上网的时候中毒,也不会造成重要文件的丢失;(6)支持软件的完整性验证,进一步提高安全性。(7)用户使用方便,可靠性高。总之,本发明能保证数据安全的前提下,将用户操作降低到最少,用户即可以将加密U盘当做普通U盘使用,在数据安全有需求的情况下,也可以当做加密盘使用,并且自带的操作系统使得在应用软件的使用上更方便、更放心。


图1是实施方式中基于指纹U盘和虚拟机的安全数据存储系统示意图。图2为实施方式中基于指纹U盘的硬件结构示意图。图3为实施方式中管理端的功能示意图。图4为实施方式中U盘固件的功能模块示意图。图5为实施方式中U盘固件的处理流程示意图。图6为实施方式中U盘引导程序的引导验证过程图。图7为实施例中U盘得使用流程图。图8为进入虚拟机管理器界面后虚拟机管理器的工作过程示意图。
具体实施例方式以下结合附图对本发明的实施方式作进一步说明,但本发明的实施和保护范围不限于此。如图1和图2,本实施方式以加密U盘为存储载体,利用指纹验证技术进行身份认证,并且在U盘上面集成了一个小型Linux操作系统(用户不可见),系统上运行多个基于 Virtualbox虚拟机软件的windows操作系统,以满足用户需求。此外,在用户可信任的Windows平台上还带有一个管理U盘的管理软件(所述计算机管理端),该软件只要运行在用户私有的PC机上即可,主要用于管理U盘上的指纹、备份磁盘映像、修复U盘等等功能,一键生成U盘等。用户使用该U盘的过程是相当简单的。只要在管理软件上注册自己的指纹并注明要生成多少个虚拟XP操作系统即可,管理软件会自动将U盘格式化、生成密钥、安装Linux操作系统、安装虚拟机等、生成加过密的映像文件,并将文件存在U盘得flash中,最后构建一个可以在其他计算机上运行的加密U盘。用户只要将U盘插入PC机的USB端口,将系统设置为从U盘启动,完整性验证成功后,引导程序会验证用户指纹,用户输入指纹或者密码(当指纹不可用的时候)。成功即进入虚拟机界面选择界面(Linux界面被屏蔽掉了),由用户选择使用的虚拟机并运行之。 用户可以将重要数据保存在一台虚拟机上,上网的时候采用另一台虚拟机,以保证数据的安全性。由于虚拟机的映像是存放在U盘上的,并且虚拟机是经过改造的,使得映像文件是以加密的形式存放在U盘上的。这样,原本需要全盘加密保存数据就变成了只需要加密映像文件即可,减少了处理时间,并且该U盘可以作为现有U盘使用,普通数据和加密的映像文件存放在一起,密钥保存在U盘主控芯片内部的Flash上,只有完整性验证通过及密码或指纹输入正确才能获取密钥,并且用户可以利用管理软件经常将加密的映像文件备份到管理软件上,如果系统崩溃,可以通过管理软件恢复。用户不用担心U盘丢失,即使丢失了,别人没有指纹也进入不了系统。所述完整性验证的过程如下由引导程序对自身、操作系统、 虚拟机管理器的代码生成一个完整性验证码,并送入U盘与存在U盘主控芯片内部的Flash 中的完整性验证码比较,一致则提示输入指纹或密码。以下结合具体的实例作进一步说明。图2为指纹U盘的硬件结构示意图,本实施方式的主控芯片采用中兴的SOC加密芯片,芯片内部有存放固件程序和密钥的内部flash和运行程序所用的DRAM内存。外部连接一个FLASH芯片,格式化成FAT16或者是FAT32,可以存放用户数据、引导程序、操作系统、 加密映像文件,大小可以为IG至8G等。主控芯片还集成了一个USB接口,用于和PC的USB 接口通信,主控芯片还与指纹模块连接。在U盘的内部flash上面存放着固件程序,这个程序是用于控制U盘行为的重要程序。固件程序分为两个模式(对应U盘的两种状态),一个是登陆模式,另一个是未登录模式,初始化上电的时候是未登录模式。用户可以采用密码或者指纹进行登陆。第一次使用的时候只能采用密码形式登陆,以后在登记了指纹后就可以采用指纹登陆。若处于未登录模式下,U盘相当于普通的U盘,可以存放用户数据,可以执行登录功能和完整性验证功能。而处于登陆模式下,固件可以存取内部flash的内容,主要是存放密钥和指纹模板,也可以改写登陆密码等重要功能。固件也承担着指纹验证、指纹注册的功能。这些功能必须在登陆模式下调用。固件程序采用SCSI命令通过USB接口和PC上的驱动程序通信。
外部FLASH就是我们常说的U盘存放数据的地方。这个FLASH是用户可见的,格式化成FAT16格式或者是FAT32格式后可以存放各种信息。我们的系统没有采用全盘加密, 有关加密的下面将提及到。FLASH上存放的信息如表1 (η加密映像文件个数,是的,N表示若干个)所示,表示方法有误。表 1
引导程Linux操作系统加密映像文件1加密映像文件η其他用户数据序 引导程序的主要目的是引导操作系统,在引导的时候引导程序和固件程序通信, 进行用户身份认证。引导程序会提示用户输入指纹,如果输入的指纹是用户的指纹,则会进入登陆模式,如果错误,则引导不了系统。总之,只有在用户的指纹通过U盘上的指纹模块验证成功后才可以让固件进行登陆模块。操作系统采用Linux操作系统,主要是为虚拟机程序建立一个底层的支撑平台。 这个操作系统的界面并不需要用户知道,也就是说,用户看到的只是虚拟机。操作系统借助现有的puppy Iinux小型系统,减去各种应用程序,最后只剩下虚拟机程序和相关的系统功能模块、库函数等。最后安装的操作系统将会在30多M左右。操作系统的根文件系统以压缩文件的格式存放在U盘上,因为操作系统的数据并不需要保密,所以可以不用加密操作系统的文件系统。根文件系统上安装最重要的程序,虚拟机软件。这个虚拟机软件采用开源的 VirtualBox虚拟机。VirtualBox是一款非常优秀、性能好的开源的虚拟机软件,通过重新改写VirtualBox源代码,在VirtualBox上对映像文件存取的过程进行加解密,相当于在 VirtualBox和虚拟机映像文件之间加了个中间层,加密算法可以采用RC4流密码。密钥通过VirtualBox和固件程序通信取得。只有在完整性验证用户登录成功后才可以取得密钥。 采用软件加密主要是利用了 PC机处理器处理能力,缩短了机器的响应时间。RC4的密钥为虚拟磁盘映像文件磁盘块号与存储在U盘的密钥的异或结果,RC4针对每个虚拟磁盘块产生的随机数都不一样,将随机数和虚拟磁盘块内容进行异或就是加密,再异或就是解密。加密的映像文件存放在U盘上,这样U盘可以到处运行,而又不怕丢失,因为丢失了即使别人捡到了,也不能取得密钥进行解密。U盘上可以存放多个映像文件,用户可以选择性运行,将重要的信息存放在一个安全的映像文件里面,而其它的映像文件可以用来上网,以防中病毒。VirtualBox虚拟机软件包括前端和后端两部分。前端就是我们看到的界面,后端就是相关的驱动和虚拟机核心。可以改写磁盘读取模块的源代码是处于虚拟机核心部分的源代码。此外,还可重新利用VirtualBoxAPI编写了一个用户方便使用的界面前端。该前端的功能主要是选择不同的虚拟机运行、关闭、重启等比较简单的功能。主要是方便用户使用,而原本复杂的界面不适合用户使用。该前端和后端一起安装在根文件系统上,用户一旦引导后进入操作系统,就会自动弹出该图形界面并指示用户可以使用哪些虚拟机。如图3,本发明方法中涉及的管理程序(计算机管理端)的出现大大减少了用户的负担,使得用户可以方便的、信任地管理U盘上面的东西。管理程序实际上是运行在用户PC 机上面的一个管理U盘的程序。该程序可以完成用户指纹注册、设置加密密钥、保存加密映像文件、“一键生成U盘”、备份和恢复等等功能。使得用户使用该管理程序可以大大的减少对U盘的操作,屏蔽掉对U盘的细节,使得呈现在用户面前的安全系统是一个管理程序和U 盘上面的操作系统。管理程序必须进行用户身份认证,启动管理程序的时候,用户必须先插入U盘,然后输入指纹才可以进入管理程序,第一次使用时候采用密码方式登录管理程序,以后采用密码或者是指纹均可以登录管理程序。利用管理程序也可以添加、删除指纹,修改进入管理程序的密码。无论通过哪种方式,管理程序的登录必须借助U盘才可以实现。这就保证了别人盗用管理程序的问题。此外,管理程序还保存着用户的加密映像文件,主要目的在于U盘坏掉或者文件系统崩溃的时候可以重新生成U盘,为了防止加密映像文件被破解,密钥必须不能放在管理程序上面,只能保存在U盘上面,并且只能通过固件程序读取。应该添加一段落描述完整性验证。位置应该在密码登录之前,U盘上电之后。U盘的主控制芯片采用中兴的D2U-FlaSh系列安全控制器芯片G32H256D32UF)。 该芯片是ZTEIC面向安全控制器市场应用,在基于国产的方舟2号32位RISC处理器的多功能安全处理平台基础上开发出的,具备高处理能力、高安全性、多种接口、低功耗、低成本等特点。该系列芯片可用于安全加密U盘、指纹识别USB KEY、大容量USB KEY、桌面加密机、桌面型VPN、高性能读卡器、手持POS机、加密板卡等设备上,可以实现的功能包括片上密钥管理(密钥生成、密钥存储、密钥更新等);片上签名及身份认证(可以支持RSA、ECC(p域)等公钥算法);专用算法下载执行及高速率数据加解密(支持DES/3DES算法和各种专用密码算法);通过丰富的GPIO接口、SPI/UART接口、Flash主从接口、SRAM主从接口、USB接口寸。U盘的设计采用了芯片上面的Nand Flash接口接外部flash存储器、UART 口接指纹模块、USB接口和主机进行通信,并利用了其加解密引起生成密钥和保存密钥。如图4,U盘固件是U盘的重要组成部分,U盘正是通过固件来保持和主机的通信、取得指纹、调用加解密引擎、操作控制flash等等。固件程序是使得U盘之所以成为加密U盘的根本原因。中兴的芯片已经带有一个固件程序,主要用于初始化硬件,并且将加解密等部分集成在固件程序里面,本实施方式只要通过编程完成USB接口的通信、读写外部FLASH、控制指纹模块、调用加解密引擎函数就可以了。现在的U盘均采用SCSI命令进行和主机的通信,该通信协议已经是标准了,U盘必须实现标准的SCSI命令才能成为普通的U盘,而有关指纹、加解密引擎等功能则使用私有的SCSI命令来实现;固件需要完成两部分的功能,一个是标准SCSI命令,一个是私有的SCSI命令,其中列出了部分的私有SCSI命令。SCSI协议及处理流程,USB组织定义了海量存储设备类(Mass Storage Class)的规范,这个类规范包括四个独立的子类规范,即1. USB Mass Storage Class Control/Bulk/Interrupt(CBI) Transport2. USBMass Storage Class Bulk-Only Transport3. USB Mass Storage Class ATA Command Block4. USB Mass Storage Class UFI Command Specification。前两个子规范定义了数据/命令/状态在USB上的传输方法。Bulk-Only传输规范仅仅使用Bulk端点传送数据/命令/状态,CBI传输规范则使用Control/Bulk/Interrupt 三种类型的端点进行数据/命令/状态传送。后两个子规范则定义了存储介质的操作命令。 ATA命令规范用于硬盘,UFI命令规范是针对USB移动存储。U盘固件采用Bulk-Only协议进行通信,该协议采用CBW和CSW进行数据交换,而 SCSI是封装在CBW包里面的,CSW的USB设备返回的状态包。在U盘固件和PC机的通信过程中,主要是CBW、CSW、数据三种通信内容。一般都是主机发送一个CBW包给设备,设备返回一个CSW包,接着主机发送一个CBW包,设备可以返回相关数据内容。U盘固件的处理过程如图5所示。U盘固件提供的功能应该为“指纹管理,密钥生成并保存,读取密钥,更新密码,读取密码”,而这些功能是以一个标志字段封装在协议里面的,在这里列举出所有使用的功能的宏定义。
#defineFINGER_VERIFY0x23//指纹模板对比#defineFINGER_GETMODULE0x24Il读取指纹模板#defineFINGER_SAVEMODULE0x25Il保存指纹模板#defineKEY_CREATI0N0x26Il创建并保存密钥#defineKEY_READ0x27 //读取密钥#definePASSWD_READ0x28Il读取验证密码#definePASSWD_CHANGE0x29Il改变验证密码#defineL0GIN_PASSWD0x30//采用密码登录#defineL0GIN_ZHIWEN0x31Il采用指纹登录这些宏定义对应于固件所具有的私有功能,我们可以通过封装CBW包,指定相应的命令,然后发送给固件让固件执行相关功能,固件调用相关函数实现,最后通过CSW状态包通知主机执行结果。U盘固件有两种模式,一种为登录模式,一种为未登录模式。初始上电为未登录模式,一旦用户通过密码或者指纹进行登录,则固件进行判断,如果密码或者指纹正确,则改变U盘模式。此时,可以执行U盘所有的功能,而处于未登录模式只能执行标准SCSI命令, U盘只有普通U盘的功能。管理程序可以通过接口进行登录,只有在登录后才可以进行操作,而在引导系统的时候也会进行登录验证,没有通过登录则进入不了系统。为了完成私有SCSI命令的特殊功能,在U盘的内部FLASH上面应该指定一些区域存放指纹、密钥、密码等重要信息,并且这些信息只能在登录模式下使用,而且只能由固件取得,不能通过此外的任何方式取得。U盘重要信息储存区格式如表2所示表 2
指纹模板10个ι密钥1个初始密码一个虽然PC机和U盘固件是通过命令包的发送和接收来进行通信的,但是为了保证 PC管理程序和虚拟机程序能够方便地使用U盘的功能,而不用每次都进行命令包封转,也为了提高程序的可移植性,在此设计了 PC端访问U盘固件的通用接口。这些接口基本上是对U盘固件私有SCSI命令的功能进行封转,使得调用的时候更加方便。在管理程序上,只需要调用这些接口即可完成与固件通信的程序,同样,在引导U盘和虚拟机读取加密映像密钥的时候只要调用这些接口就好了。虽然管理程序是在Windows上运行的,而虚拟机程序是在Linux上面运行,但是访问指纹加密U盘的接口是一样的,即使底层的实现不一样。 这些接口以C语言形式描述。如表3所示。引导程序的主要目的是进行指纹或者密码登录认证,然后引导操作系统,引导程序会提示用户输入指纹,然后读取指纹,进而进行验证,三次指纹登录不成功可改用密码进行登录,在没有登记指纹的情况下也可以进行密码登录(只用于刚出厂时)。引导程序主要是通过BIOS中断13和U盘上的固件通信,这个时候由于是汇编级别的。固件程序接来自引导程序的请求时,便启动指纹的验证流程,等待用户刷指纹。当指纹采集设备采集完指纹图像后,固件程序对图像的特征值进行提取,然后读取已登记的指纹模板并与之对比。最后,固件程序根据对比结果,发送结果给主机上的引导程序。引导程序根据固件返回的填充结果判断是否对比成功,如果成功则进入引导操作系统环节,而固件将进行登陆模式。如果失败,则返回上一步操作。引导时验证过程如图6所示。加密U 盘使用过程图7和图8所示,将U盘插入到x86计算机上,选择从U盘启动;U盘引导程序载入内存进行引导,提示输入指纹或密码;输入指纹或密码,验证通过后进入下一步,否则提示失败;引导程序引导Linux操作系统,完毕后自动运行虚拟机管理器;进入虚拟机管理器界面,选择虚拟机运行,在基于Virtualbox虚拟机软件的windows操作系统上操作数据、 存储数据或安装应用软件,所述虚拟机管理器在这个过程中自动读取U盘里面的密钥并自动对数据进行加解密操作。管理程序(计算机管理端)是运行在管理计算机上对系统进行基本管理的程序。 管理程序能够提供修改用户密码和备份等功能。只有在登录的情况下才可以进行管理程序的操作。用户可以采用密码或者指纹登录,初始的时候指纹为空,密码为初始密码。用户登录后可以进行修改。为了方便用户管理系统,管理程序运行在Windows XP操作系统上,并且具备良好的交互界面。管理程序在Windows XP上开发,开发工具为VC 6.0。管理程序的功能模块可以参见图3, 以下对备份加密U盘上的VMDK文件模块作进一步说明。VMDK文件是虚拟机的存储文件系统,它模拟的物理硬盘的功能,对虚拟机上的操作系统而言,和物理硬盘是等同的。 本系统的所用用户数据都是通过VirtualBox存储在VMDK文件中,因此要备份用户的数据, 最好的办法就是把整个VMDK文件复制到管理计算机上。管理程序要实现这个功能,可以通过调用Windows XP的复制文件用API实现把加密U盘上的VMDK把加密U盘上的VMDK文件复制到管理计算机上,并保存到用户选定的文件目录,管理程序自动把复制过来的VMDK 文件重命名成带日期的备份文件。还原加密U盘上的用户数据最好的办法是把备份的VMDK文件复制到加密U盘上, 覆盖原来的VMDK文件。具体的实现方法是管理程序先把选定的备份文件重命名为VMDK的标准命名(去掉日期),然后把它复制到加密U盘中,被覆盖加密U盘中原来的VMDK文件, 最后,把管理计算机上的备份文件重命名为原来带日期的名字。以下再对管理程序的其他功能做说明修改密码登录U盘,并修改加密U盘的登录密码。通过程序提供的接口,改变加密U盘引导程序的登录密码。修改指纹登录U盘,并修改加密U盘的登录指纹。通过程序提供的接口,改变加密U盘引导程序的登录指纹。自动生成加密密钥(生成的密钥用户不可见)发送命令给U盘固件,让固件根据用户的指纹信息生成密钥,并保存起来。在U盘固件模式为登录状态时候可以读取。一键生成U盘系统,在初次使用或者需要重新生成U盘的时候,将引导程序、操作系统、虚拟机管理器、加密映像等文件一并写入U盘,这样用户只要一按键,就可以生成完整U盘。使用该U盘就可以在不同计算机之间迁移。表权利要求
1.基于指纹U盘和虚拟机的安全数据存储方法,其特征在于包括如下步骤 步骤一、利用计算机管理端对普通U盘进行初始设置,使U盘安装上引导程序、提供基本运行环境的底层操作系统、虚拟机管理器,所述虚拟机管理器上能运行一个或多个 windows操作系统,windows操作系统的虚拟磁盘映像文件也存在U盘上面;步骤二、将U盘插入到x86计算机上,选择从U盘启动;U盘引导程序载入内存进行引导,提示输入指纹或密码;步骤三、输入指纹或密码,验证通过后进入下一步,否则提示失败; 步骤四、引导程序弓I导底层操作系统,完毕后自动运行虚拟机管理器; 步骤五、进入虚拟机管理器界面,选择虚拟机运行,在windows操作系统上操作数据、 存储数据或安装使用应用软件,所述虚拟机管理器在这个过程中自动读取U盘里面的密钥并自动对数据进行加解密操作。
2.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于步骤一进一步包括(1)插入U盘到计算机管理端,采用U盘初始密码登录U盘,转变U盘工作模式为登录模式;(2)计算机管理端对U盘进行格式化,安装引导程序、底层操作系统、虚拟机管理器到U 盘主控芯片外部的Flash上,同时对引导程序、底层操作系统、虚拟机管理器生成一个完整性验证码,完整性验证码存在U盘主控芯片内部的Flash上;(3)计算机管理端自动生成密钥,密钥存储在U盘主控芯片内部的Flash上,计算机管理端用密钥生成加密的虚拟磁盘映像文件,该文件为一个能运行的Windows操作系统虚拟磁盘映像文件,存放在主控芯片外部的Flash上;(4)利用计算机管理端注册用户指纹到U盘里面,修改U盘初始密码。
3.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于步骤二中,还将U盘当做一个可信平台模块,对引导程序、底层操作系统、虚拟机管理器进行代码完整性验证,验证过程如下由引导程序对自身、操作系统、虚拟机管理器的代码生成一个完整性验证码,并送入U盘与存在U盘主控芯片内部的Flash中的完整性验证码比较,一致则提示输入指纹或密码。
4.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于步骤二中先将x86计算机设置为从U盘启动。
5.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于步骤五中,运行多个虚拟机,各虚拟机能独立存储数据或使用数据。
6.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于所述底层操作系统对用户不可见,并且虚拟磁盘映像文件是以加密的形式存放在U盘主控芯片外部的Flash上,密钥保存在U盘主控芯片内部的Flash上,只有完整性验证通过及密码或指纹输入正确才能获取密钥。
7.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于利用计算机管理端将U盘中加密的映像文件备份到计算机上,如果系统崩溃,通过计算机管理端对U盘进行恢复。
8.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于对SCSI命令进行扩展,使U盘支持读写密钥、读写密码、注册指纹、验证指纹、完整性验证或者指纹登录功能;所述U盘有两种状态一种是未登录状态,具备现有U盘读取和存储数据的功能,同时具备完整性验证和用户登录功能;另一种为登录状态,支持读写密钥、读写密码、 注册指纹和验证指纹功能。
9.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于U 盘固件采用Bulk-Only协议进行通信,该协议采用CBW包和CSW包进行数据交换,SCSI命令是封装在CBW包中;CSW是USB设备返回的状态包,表示操作的成功与否;在U盘固件和计算机的通信过程中,包括CBW、CSW、数据三种通信内容。
10.根据权利要求广9任一项所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于底层操作系统为小型可定制操作系统,只需满足运行虚拟机运行环境要求;虚拟机在读取加密映像的时候进行解密,在写加密映像的时候进行加密,加密算法采用标准RC4 流密码变体,RC4的密钥为虚拟磁盘映像文件磁盘块号与存储在U盘的密钥的异或结果, RC4针对每个虚拟磁盘块产生的随机数都不一样,将随机数和虚拟磁盘块内容进行异或就是加密,再异或就是解密;所述虚拟机管理器界面为安装在底层操作系统上面的软件,用于提示哪些虚拟机可用,并管理虚拟机状态,这些状态包括启动、暂停、唤醒和停止;所述计算机管理端为安装在x86计算机上的管理端,启动管理端的时候,用户必须先插入U盘,然后输入指纹或密码才可以进入管理程序,才能进行步骤一所述操作。
全文摘要
本发明公开了一种基于指纹U盘和虚拟机的安全数据存储方法,包括计算机选择从U盘启动;U盘引导程序载入内存进行引导,提示输入指纹或密码;输入指纹或密码,验证通过后进入下一步,否则提示失败;引导程序引导安装在U盘上的底层操作系统,完毕后自动运行虚拟机管理器;进入虚拟机管理器前端界面,选择虚拟机运行,在虚拟化的windows操作系统上操作数据、存储数据或安装应用软件,虚拟机支持虚拟磁盘全盘加密。本发明减少了U盘中毒的可能性,防止了重要信息的丢失,使用方便,不惧因遗失U盘而导致的数据丢失,支持备份,并在U盘丢失情况下恢复数据。
文档编号G06F21/00GK102254119SQ20111019958
公开日2011年11月23日 申请日期2011年7月15日 优先权日2011年7月15日
发明者奚建清, 陈思桐, 陈虎 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1