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

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

Info

Publication number
CN102254119B
CN102254119B CN2011101995865A CN201110199586A CN102254119B CN 102254119 B CN102254119 B CN 102254119B CN 2011101995865 A CN2011101995865 A CN 2011101995865A CN 201110199586 A CN201110199586 A CN 201110199586A CN 102254119 B CN102254119 B CN 102254119B
Authority
CN
China
Prior art keywords
disk
usb flash
flash disk
virtual machine
fingerprint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2011101995865A
Other languages
English (en)
Other versions
CN102254119A (zh
Inventor
陈虎
陈思桐
奚建清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN2011101995865A priority Critical patent/CN102254119B/zh
Publication of CN102254119A publication Critical patent/CN102254119A/zh
Application granted granted Critical
Publication of CN102254119B publication Critical patent/CN102254119B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于指纹U盘和虚拟机的安全数据存储方法,包括:计算机选择从U盘启动;U盘引导程序载入内存进行引导,提示输入指纹或密码;输入指纹或密码,验证通过后进入下一步,否则提示失败;引导程序引导安装在U盘上的底层操作系统,完毕后自动运行虚拟机管理器;进入虚拟机管理器前端界面,选择虚拟机运行,在虚拟化的windows操作系统上操作数据、存储数据或安装应用软件,虚拟机支持虚拟磁盘全盘加密。本发明减少了U盘中毒的可能性,防止了重要信息的丢失,使用方便,不惧因遗失U盘而导致的数据丢失,支持备份,并在U盘丢失情况下恢复数据。

Description

一种基于指纹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盘固件和计算机的通信过程中,包括CBW、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,可以存放用户数据、引导程序、操作系统、加密映像文件,大小可以为1G至8G等。主控芯片还集成了一个USB接口,用于和PC的USB接口通信,主控芯片还与指纹模块连接。
在U盘的内部flash上面存放着固件程序,这个程序是用于控制U盘行为的重要程序。固件程序分为两个模式(对应U盘的两种状态),一个是登陆模式,另一个是未登录模式,初始化上电的时候是未登录模式。用户可以采用密码或者指纹进行登陆。第一次使用的时候只能采用密码形式登陆,以后在登记了指纹后就可以采用指纹登陆。若处于未登录模式下,U盘相当于普通的U盘,可以存放用户数据,可以执行登录功能和完整性验证功能。而处于登陆模式下,固件可以存取内部flash的内容,主要是存放密钥和指纹模板,也可以改写登陆密码等重要功能。固件也承担着指纹验证、指纹注册的功能。这些功能必须在登陆模式下调用。固件程序采用SCSI命令通过USB接口和PC上的驱动程序通信。
外部FLASH就是我们常说的U盘存放数据的地方。这个FLASH是用户可见的,格式化成FAT16格式或者是FAT32格式后可以存放各种信息。我们的系统没有采用全盘加密,有关加密的下面将提及到。FLASH上存放的信息如表1(n加密映像文件个数,是的,N表示若干个)所示,表示方法有误。
表1
Figure BDA0000076206720000051
引导程序的主要目的是引导操作系统,在引导的时候引导程序和固件程序通信,进行用户身份认证。引导程序会提示用户输入指纹,如果输入的指纹是用户的指纹,则会进入登陆模式,如果错误,则引导不了系统。总之,只有在用户的指纹通过U盘上的指纹模块验证成功后才可以让固件进行登陆模块。
操作系统采用Linux操作系统,主要是为虚拟机程序建立一个底层的支撑平台。这个操作系统的界面并不需要用户知道,也就是说,用户看到的只是虚拟机。操作系统借助现有的puppy linux小型系统,减去各种应用程序,最后只剩下虚拟机程序和相关的系统功能模块、库函数等。最后安装的操作系统将会在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盘的主控制芯片采用中兴的Z32U-Flash系列安全控制器芯片(Z32H256D32UF)。该芯片是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)Transport
2.USBMass Storage Class Bulk-Only Transport
3.USB Mass Storage Class ATA Command Block
4.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盘固件提供的功能应该为“指纹管理,密钥生成并保存,读取密钥,更新密码,读取密码”,而这些功能是以一个标志字段封装在协议里面的,在这里列举出所有使用的功能的宏定义。
Figure BDA0000076206720000071
这些宏定义对应于固件所具有的私有功能,我们可以通过封装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盘就可以在不同计算机之间迁移。
表3
Figure BDA0000076206720000101

Claims (9)

1.基于指纹U盘和虚拟机的安全数据存储方法,其特征在于包括如下步骤:
步骤一、利用计算机管理端对普通U盘进行初始设置,使U盘安装上引导程序、提供基本运行环境的底层操作系统、虚拟机管理器,所述虚拟机管理器上能运行一个或多个windows操作系统,windows操作系统的虚拟磁盘映像文件也存在U盘上面;
步骤一进一步包括:
(1)插入U盘到计算机管理端,采用U盘初始密码登录U盘,转变U盘工作模式为登录模式;
(2)计算机管理端对U盘进行格式化,安装引导程序、底层操作系统、虚拟机管理器到U盘主控芯片外部的Flash上,同时对引导程序、底层操作系统、虚拟机管理器生成一个完整性验证码,完整性验证码存在U盘主控芯片内部的Flash上;
(3)计算机管理端自动生成密钥,密钥存储在U盘主控芯片内部的Flash上,计算机管理端用密钥生成加密的虚拟磁盘映像文件,该文件为一个能运行的Windows操作系统虚拟磁盘映像文件,存放在主控芯片外部的Flash上;
(4)利用计算机管理端注册用户指纹到U盘里面,修改U盘初始密码;
步骤二、将U盘插入到x86计算机上,选择从U盘启动;U盘引导程序载入内存进行引导,提示输入指纹或密码;
步骤三、输入指纹或密码,验证通过后进入下一步,否则提示失败;
步骤四、引导程序引导底层操作系统,完毕后自动运行虚拟机管理器;
步骤五、进入虚拟机管理器界面,选择虚拟机运行,在windows操作系统上操作数据、存储数据或安装使用应用软件,所述虚拟机管理器在这个过程中自动读取U盘里面的密钥并自动对数据进行加解密操作。
2.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于
步骤二中,还将U盘当做一个可信平台模块,对引导程序、底层操作系统、虚拟机管理器进行代码完整性验证,验证过程如下:由引导程序对自身、操作系统、虚拟机管理器的代码生成一个完整性验证码,并送入U盘与存在U盘主控芯片内部的Flash中的完整性验证码比较,一致则提示输入指纹或密码。
3.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于步骤二中先将x86计算机设置为从U盘启动。
4.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于步骤五中,运行多个虚拟机,各虚拟机能独立存储数据或使用数据。
5.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于所述底层操作系统对用户不可见,并且虚拟磁盘映像文件是以加密的形式存放在U盘主控芯片外部的Flash上,密钥保存在U盘主控芯片内部的Flash上,只有完整性验证通过及密码或指纹输入正确才能获取密钥。
6.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于利用计算机管理端将U盘中加密的映像文件备份到计算机上,如果系统崩溃,通过计算机管理端对U盘进行恢复。
7.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于对SCSI命令进行扩展,使U盘支持读写密钥、读写密码、注册指纹、验证指纹、完整性验证或者指纹登录功能;所述U盘有两种状态:一种是未登录状态,具备现有U盘读取和存储数据的功能,同时具备完整性验证和用户登录功能;另一种为登录状态,支持读写密钥、读写密码、注册指纹和验证指纹功能。
8.根据权利要求1所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于U盘固件采用Bulk-Only协议进行通信,该协议采用CBW包和CSW包进行数据交换, SCSI命令是封装在CBW包中;CSW是USB设备返回的状态包,表示操作的成功与否;在U盘固件和计算机的通信过程中,包括CBW、CSW、数据三种通信内容。
9.根据权利要求1~8任一项所述的基于指纹U盘和虚拟机的安全数据存储方法,其特征在于底层操作系统为小型可定制操作系统,只需满足运行虚拟机运行环境要求;虚拟机在读取加密映像的时候进行解密,在写加密映像的时候进行加密,加密算法采用标准RC4流密码变体,RC4的密钥为虚拟磁盘映像文件磁盘块号与存储在U盘的密钥的异或结果,RC4针对每个虚拟磁盘块产生的随机数都不一样,将随机数和虚拟磁盘块内容进行异或就是加密,再异或就是解密;
所述虚拟机管理器界面为安装在底层操作系统上面的软件,用于提示哪些虚拟机可用,并管理虚拟机状态,这些状态包括启动、暂停、唤醒和停止;
所述计算机管理端为安装在x86计算机上的管理端,启动管理端的时候,用户必须先插入U盘,然后输入指纹或密码才可以进入管理程序,才能进行步骤一所述操作。
CN2011101995865A 2011-07-15 2011-07-15 一种基于指纹u盘和虚拟机的安全可移动数据存储方法 Expired - Fee Related CN102254119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101995865A CN102254119B (zh) 2011-07-15 2011-07-15 一种基于指纹u盘和虚拟机的安全可移动数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101995865A CN102254119B (zh) 2011-07-15 2011-07-15 一种基于指纹u盘和虚拟机的安全可移动数据存储方法

Publications (2)

Publication Number Publication Date
CN102254119A CN102254119A (zh) 2011-11-23
CN102254119B true CN102254119B (zh) 2013-08-07

Family

ID=44981379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101995865A Expired - Fee Related CN102254119B (zh) 2011-07-15 2011-07-15 一种基于指纹u盘和虚拟机的安全可移动数据存储方法

Country Status (1)

Country Link
CN (1) CN102254119B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541591B (zh) * 2011-12-14 2014-11-05 上海中标凌巧软件科技有限公司 兼容多操作系统平台的计算机u盘操作系统自动引导方法
CN104392179A (zh) * 2014-10-08 2015-03-04 四川和芯微电子股份有限公司 Usb存储装置的加密方法
CN104573573B (zh) * 2014-11-14 2017-09-29 深圳市芯海科技有限公司 一种移动存储的数据保护系统及方法
CN105743648A (zh) * 2014-12-09 2016-07-06 航天信息股份有限公司 一种应用于身份认证的指纹usbkey、指纹中心服务器及系统与方法
CN104834873A (zh) * 2015-04-03 2015-08-12 王爱华 一种用于云数据信息加密解密的u盘及实现方法
CN104916302A (zh) * 2015-06-05 2015-09-16 浪潮集团有限公司 一种带有加密认证功能的usb移动存储
CN106845251A (zh) * 2015-12-07 2017-06-13 四川效率源信息安全技术股份有限公司 闪存芯片物理镜像后的数据解密方法
CN106572104A (zh) * 2016-10-28 2017-04-19 鄢碧珠 一种安全的移动式数据存储方法
CN110633172A (zh) * 2019-09-24 2019-12-31 爱国者安全科技(北京)有限公司 U盘以及u盘的数据同步方法
CN110737511A (zh) * 2019-10-23 2020-01-31 北京计算机技术及应用研究所 一种便携式的虚拟机登录方法
CN111447210A (zh) * 2020-03-24 2020-07-24 杨翔 一种基于rk3399主控芯片的usb安全通信方法及通信系统
CN113221134B (zh) * 2021-04-09 2024-03-22 北京复兴华创技术有限公司 离线安全数据交换方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038551A (zh) * 2006-03-16 2007-09-19 南京大学 在移动硬盘上实现启动Linux操作系统的方法
CN101071463A (zh) * 2007-06-08 2007-11-14 北京飞天诚信科技有限公司 虚拟个人办公环境的方法和设备
CN102087716A (zh) * 2011-03-02 2011-06-08 武汉天喻信息产业股份有限公司 一种多应用Java智能卡

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI307046B (en) * 2004-04-30 2009-03-01 Aimgene Technology Co Ltd Portable encrypted storage device with biometric identification and method for protecting the data therein

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038551A (zh) * 2006-03-16 2007-09-19 南京大学 在移动硬盘上实现启动Linux操作系统的方法
CN101071463A (zh) * 2007-06-08 2007-11-14 北京飞天诚信科技有限公司 虚拟个人办公环境的方法和设备
CN102087716A (zh) * 2011-03-02 2011-06-08 武汉天喻信息产业股份有限公司 一种多应用Java智能卡

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
在自动化仪表中使用U盘作移动存储器;邢文生;《自动化仪表》;20041130;第25卷(第11期);第24页 *
邢文生.在自动化仪表中使用U盘作移动存储器.《自动化仪表》.2004,第25卷(第11期),第24页.

Also Published As

Publication number Publication date
CN102254119A (zh) 2011-11-23

Similar Documents

Publication Publication Date Title
CN102254119B (zh) 一种基于指纹u盘和虚拟机的安全可移动数据存储方法
CN101436247B (zh) 一种基于uefi的生物身份识别方法及系统
US9047486B2 (en) Method for virtualizing a personal working environment and device for the same
EP2335181B1 (en) External encryption and recovery management with hardware encrypted storage devices
CN100552690C (zh) 数据管理方法
US7840795B2 (en) Method and apparatus for limiting access to sensitive data
US20150324612A1 (en) System and method for recovering from an interrupted encryption and decryption operation performed on a volume
US20020070272A1 (en) Dual processor trusted computing environment
JP2005166049A (ja) 指紋センサを具えたメモリ保存装置とその保存データの保護方法
US7818567B2 (en) Method for protecting security accounts manager (SAM) files within windows operating systems
CN201126581Y (zh) 一种基于uefi的生物身份识别装置
CN101334827A (zh) 磁盘加密方法及实现该方法的磁盘加密系统
CN202217282U (zh) 一种基于指纹u盘和虚拟机的安全数据存储系统
CN106716333A (zh) 用于完成安全擦除操作的方法
JP2013175112A (ja) 認証装置、および、認証方法
CN102024115B (zh) 一种具有用户安全子系统的计算机
KR20200141560A (ko) Usb 저장 매체를 이용하는 컴퓨터용 보안 시스템 및 방법
CN102819700A (zh) 在分离环境进行多种生物特征认证的装置以及方法
CN111797441A (zh) 一种基于指纹解锁的分区权限加密管理固态硬盘及方法
US8190813B2 (en) Terminal apparatus with restricted non-volatile storage medium
US20100174902A1 (en) Portable storage media with high security function
CN102314574A (zh) 一种基于hid设备设置主机访问权限的方法
CN103870769B (zh) 一种对磁盘进行保护的方法及系统
US20070150746A1 (en) Portable storage with bio-data protection mechanism & methodology
JP2007122731A (ja) バイオ認証センサー付きハードディスク装置とそのデータ保護方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130807

Termination date: 20200715