專(zhuān)利名稱(chēng):一種基于指紋u盤(pán)和虛擬機(jī)的安全可移動(dòng)數(shù)據(jù)存儲(chǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法。
背景技術(shù):
在今天這個(gè)信息高速膨脹的環(huán)境下,諸如U盤(pán)之類(lèi)的移動(dòng)存儲(chǔ)工具因?yàn)槠浔旧砭哂惺褂帽憬荨鬏斂焖?、安全性能高等?yōu)勢(shì),在數(shù)據(jù)交換日益頻繁的今天,無(wú)論是個(gè)人,還是專(zhuān)業(yè)或企業(yè)用戶,都傾向于用U盤(pán)進(jìn)行重要數(shù)據(jù)的保存,這種使用模式本身對(duì)產(chǎn)品性能提出新的要求,即安全性尤其重要。很多人選擇將重要或者私密的文件存儲(chǔ)到U盤(pán)中,而不是長(zhǎng)期放在計(jì)算機(jī)的硬盤(pán)里面,因此以U盤(pán)為首的移動(dòng)存儲(chǔ)工具成為保護(hù)數(shù)據(jù)安全的重中之重。但信息安全始終是個(gè)難以解決的問(wèn)題。常規(guī)的基于口令的身份認(rèn)證和加密方式存在諸多問(wèn)題而越來(lái)越滿足不了某些敏感場(chǎng)合的特殊要求。將生物特征身份認(rèn)證技術(shù)和加密機(jī)制有機(jī)地結(jié)合在一起,可以利用生物特征的唯一性、不可替代性保證信息安全的長(zhǎng)期有效,徹底杜絕密碼和密鑰遺忘、被盜、被破解的現(xiàn)象。將生物特征身份認(rèn)證技術(shù)和加密機(jī)制有機(jī)地結(jié)合在一起,可以提供一種更加安全、便捷的文件加密管理方案。目前使用最廣泛的生物特征識(shí)別系統(tǒng)是指紋識(shí)別系統(tǒng)。因?yàn)橹讣y是獨(dú)一無(wú)二的, 不存在相同的指紋,這樣可以保證被認(rèn)證對(duì)象與需要驗(yàn)證的身份依據(jù)兩者之間嚴(yán)格的一一對(duì)應(yīng)關(guān)系;指紋是相對(duì)固定的,很難發(fā)生變化,可以保證安全信息的長(zhǎng)期有效性;采用領(lǐng)先的活體指紋識(shí)別技術(shù),杜絕使用指模復(fù)制的方式欺騙設(shè)備的可能,確保機(jī)密數(shù)據(jù)無(wú)法被人冒用、竊取和篡改。而在移動(dòng)存儲(chǔ)設(shè)備中,人們往往使用的是PC機(jī)上的操作系統(tǒng),特別是 WindOWS98/2000/2003/XP操作系統(tǒng)。在日常生活中,針對(duì)可移動(dòng)存儲(chǔ)設(shè)備的病毒層出不窮, 這些病毒非法侵入可移動(dòng)存儲(chǔ)設(shè)備,非法讀取設(shè)備上的數(shù)據(jù)甚至改寫(xiě)里面的文件,導(dǎo)致里面的數(shù)據(jù)被破壞而無(wú)法正常使用。由于可移動(dòng)存儲(chǔ)設(shè)備的移動(dòng)性強(qiáng)的特點(diǎn),往往會(huì)導(dǎo)致一個(gè)設(shè)備中毒,其它使用過(guò)此設(shè)備的電腦也被交叉感染的情況,甚至當(dāng)用戶用其它存儲(chǔ)設(shè)備訪問(wèn)同一臺(tái)PC機(jī)時(shí),該存儲(chǔ)設(shè)備又被感染的情況??梢?jiàn),當(dāng)我們使用PC機(jī)上的操作系統(tǒng)訪問(wèn)可移動(dòng)存儲(chǔ)設(shè)備時(shí),存在巨大的信息安全風(fēng)險(xiǎn)。由于信息保密的重要性,使得現(xiàn)在市場(chǎng)上基于加密技術(shù)的移動(dòng)存儲(chǔ)盤(pán)層出不窮。 這些加密U盤(pán)的共同特點(diǎn)是既可以作為通用的U盤(pán)使用,同時(shí)也可以作為加密盤(pán)使用。這些產(chǎn)品通常采用加密技術(shù)和芯片固件開(kāi)發(fā)相結(jié)合的手段,并在PC機(jī)上建立一個(gè)管理加密U 盤(pán)的軟件,通過(guò)軟硬結(jié)合的方法來(lái)保證安全性。其中一些加密U盤(pán)也使用了指紋識(shí)別技術(shù)。在這里我們用深圳市天辰科技電子有限公司的加密U盤(pán)為例分析一下指紋加密U 盤(pán)有何優(yōu)缺點(diǎn)。該公司的加密U盤(pán)可以使用指紋登陸U盤(pán),對(duì)重要文件進(jìn)行加解密。U盤(pán)分為兩個(gè)區(qū),一個(gè)是公共區(qū),可以當(dāng)做普通U盤(pán)的數(shù)據(jù)庫(kù);一個(gè)是加密區(qū),采用指紋或者是密碼打開(kāi),并將文件存放在加密區(qū)。通常加密的做法是利用PC機(jī)上的軟件對(duì)文件進(jìn)行加密后存放,或者通過(guò)U盤(pán)上的芯片對(duì)存放在加密區(qū)的數(shù)據(jù)進(jìn)行全盤(pán)加密。通過(guò)這樣的方式來(lái)保證數(shù)據(jù)的安全性。通過(guò)分析可以發(fā)現(xiàn),加密U盤(pán)的管理、數(shù)據(jù)的加解密、指紋的管理等功能均需要運(yùn)行在PC上的軟件來(lái)支持。這樣做有一些弊端,列舉如下1、軟件容易受到PC機(jī)上的木馬監(jiān)控,畢竟解密的數(shù)據(jù)是暴露在內(nèi)存里面的,而所在的PC機(jī)可能由某些讀取內(nèi)存數(shù)據(jù)的病毒存在。2、軟件需要保存在U盤(pán)里面,使用的時(shí)候?qū)④浖截惖絇C機(jī)上,這樣導(dǎo)致了軟件在操作系統(tǒng)上的兼容性問(wèn)題,有可能操作系統(tǒng)不支持該軟件,比如將Windows的軟件拷貝到蘋(píng)果機(jī)上就不能運(yùn)行。3、U盤(pán)重要數(shù)據(jù)不能備份,如果U盤(pán)文件系統(tǒng)格式損壞,將導(dǎo)致重要數(shù)據(jù)丟失。因此,市場(chǎng)上的產(chǎn)品實(shí)際上還達(dá)不到高度安全性和可靠性。本系統(tǒng)采用的指紋加密U盤(pán)+操作系統(tǒng)+虛擬機(jī)技術(shù)可以有效解決以上難題,構(gòu)建一個(gè)更加讓用戶放心的安全系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)存在的上述不足,提供一種基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,通過(guò)本發(fā)明的方法,可為用戶提供一個(gè)高安全性和易用性的安全系統(tǒng),該系統(tǒng)以加密U盤(pán)為存儲(chǔ)載體,利用指紋驗(yàn)證或密碼進(jìn)行身份認(rèn)證,并且在U盤(pán)上面集成了一個(gè)小型操作系統(tǒng)(用戶不可見(jiàn)),操作系統(tǒng)上運(yùn)行多個(gè)基于虛擬機(jī)軟件的windows操作系統(tǒng),以滿足用戶需求。此外,在用戶可信任的Windows平臺(tái)上還帶有一個(gè)管理U盤(pán)的管理軟件(所述計(jì)算機(jī)管理端),該軟件只要運(yùn)行在用戶私有的PC機(jī)上即可,主要用于管理U 盤(pán)上的指紋、備份磁盤(pán)映像、修復(fù)U盤(pán)等等功能,一鍵生成U盤(pán)等。本發(fā)明通過(guò)以下技術(shù)方案實(shí)現(xiàn)?;谥讣yU盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,包括如下步驟步驟一、利用計(jì)算機(jī)管理端對(duì)普通U盤(pán)進(jìn)行初始設(shè)置,使U盤(pán)安裝上引導(dǎo)程序、提供基本運(yùn)行環(huán)境的底層操作系統(tǒng)(不包含與本發(fā)明無(wú)關(guān)的軟件)、虛擬機(jī)管理器,所述虛擬機(jī)管理器上能運(yùn)行一個(gè)或多個(gè)windows操作系統(tǒng),windows操作系統(tǒng)的虛擬磁盤(pán)映像文件也存在U盤(pán)上面;步驟二、將U盤(pán)插入到x86計(jì)算機(jī)上,選擇從U盤(pán)啟動(dòng);U盤(pán)引導(dǎo)程序載入內(nèi)存進(jìn)行引導(dǎo),提示輸入指紋或密碼;步驟三、輸入指紋或密碼,驗(yàn)證通過(guò)后進(jìn)入下一步,否則提示失敗;步驟四、引導(dǎo)程序引導(dǎo)底層操作系統(tǒng),完畢后自動(dòng)運(yùn)行虛擬機(jī)管理器;步驟五、進(jìn)入虛擬機(jī)管理器界面,選擇虛擬機(jī)運(yùn)行,在windows操作系統(tǒng)上操作數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)或安裝使用應(yīng)用軟件,所述虛擬機(jī)管理器在這個(gè)過(guò)程中自動(dòng)讀取U盤(pán)里面的密鑰并自動(dòng)對(duì)數(shù)據(jù)進(jìn)行加解密操作。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,步驟一進(jìn)一步包括(1)插入U(xiǎn)盤(pán)到計(jì)算機(jī)管理端,采用U盤(pán)初始密碼登錄U盤(pán),轉(zhuǎn)變U盤(pán)工作模式為登錄模式;(2)計(jì)算機(jī)管理端對(duì)U盤(pán)進(jìn)行格式化,安裝引導(dǎo)程序、底層操作系統(tǒng)、虛擬機(jī)管理器到U盤(pán)主控芯片外部的Flash上,同時(shí)對(duì)引導(dǎo)程序、底層操作系統(tǒng)、虛擬機(jī)管理器生成一個(gè)完整性驗(yàn)證碼,完整性驗(yàn)證碼存在U盤(pán)主控芯片內(nèi)部的Flash上;(3)計(jì)算機(jī)管理端自動(dòng)生成密鑰,密鑰存儲(chǔ)在U盤(pán)主控芯片內(nèi)部的Flash上,計(jì)算機(jī)管理端用密鑰生成加密的虛擬磁盤(pán)映像文件,該文件為一個(gè)能運(yùn)行的Windows操作系統(tǒng)虛擬磁盤(pán)映像文件,存放在主控芯片外部的Flash上;(4)利用計(jì)算機(jī)管理端注冊(cè)用戶指紋到U盤(pán)里面,修改U盤(pán)初始密碼。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,步驟二中,還將U盤(pán)當(dāng)做一個(gè)可信平臺(tái)模塊,對(duì)引導(dǎo)程序、底層操作系統(tǒng)、虛擬機(jī)管理器進(jìn)行代碼完整性驗(yàn)證,驗(yàn)證過(guò)程如下由引導(dǎo)程序?qū)ψ陨?、操作系統(tǒng)、虛擬機(jī)管理器的代碼生成一個(gè)完整性驗(yàn)證碼,并送入 U盤(pán)與存在U盤(pán)主控芯片內(nèi)部的Flash中的完整性驗(yàn)證碼比較,一致則提示輸入指紋或密碼。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,步驟二中先將x86計(jì)算機(jī)設(shè)置為從U盤(pán)啟動(dòng)。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,步驟五中,運(yùn)行多個(gè)虛擬機(jī), 各虛擬機(jī)能獨(dú)立存儲(chǔ)數(shù)據(jù)或使用數(shù)據(jù)。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,所述底層操作系統(tǒng)對(duì)用戶不可見(jiàn),并且虛擬磁盤(pán)映像文件是以加密的形式存放在U盤(pán)主控芯片外部的Flash上,密鑰保存在U盤(pán)主控芯片內(nèi)部的Flash上,只有完整性驗(yàn)證通過(guò)及密碼或指紋輸入正確才能獲取密鑰。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法中,還利用計(jì)算機(jī)管理端將U 盤(pán)中加密的映像文件備份到計(jì)算機(jī)上,如果系統(tǒng)崩潰,通過(guò)計(jì)算機(jī)管理端對(duì)U盤(pán)進(jìn)行恢復(fù)。
上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法中,對(duì)SCSI命令進(jìn)行擴(kuò)展,使U 盤(pán)支持讀寫(xiě)密鑰、讀寫(xiě)密碼、注冊(cè)指紋、驗(yàn)證指紋、完整性驗(yàn)證或者指紋登錄功能;所述U盤(pán)有兩種狀態(tài)一種是未登錄狀態(tài),具備現(xiàn)有U盤(pán)讀取和存儲(chǔ)數(shù)據(jù)的功能,同時(shí)具備完整性驗(yàn)證和用戶登錄功能;另一種為登錄狀態(tài),支持讀寫(xiě)密鑰、讀寫(xiě)密碼、注冊(cè)指紋和驗(yàn)證指紋功能。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法中,U盤(pán)固件采用Bulk-Only協(xié)議進(jìn)行通信,該協(xié)議采用CBW包和CSW包進(jìn)行數(shù)據(jù)交換,SCSI命令是封裝在CBW包中;CSW 是USB設(shè)備返回的狀態(tài)包,表示操作的成功與否;在U盤(pán)固件和計(jì)算機(jī)的通信過(guò)程中,包括 CBff, CSW、數(shù)據(jù)三種通信內(nèi)容。上述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法中,底層操作系統(tǒng)為小型可定制操作系統(tǒng),只需滿足運(yùn)行虛擬機(jī)運(yùn)行環(huán)境要求;虛擬機(jī)在讀取加密映像的時(shí)候進(jìn)行解密, 在寫(xiě)加密映像的時(shí)候進(jìn)行加密,加密算法采用標(biāo)準(zhǔn)RC4流密碼變體,RC4的密鑰為虛擬磁盤(pán)映像文件磁盤(pán)塊號(hào)與存儲(chǔ)在U盤(pán)的密鑰的異或結(jié)果,RC4針對(duì)每個(gè)虛擬磁盤(pán)塊產(chǎn)生的隨機(jī)數(shù)都不一樣,將隨機(jī)數(shù)和虛擬磁盤(pán)塊內(nèi)容進(jìn)行異或就是加密,再異或就是解密;所述虛擬機(jī)管理器界面為安裝在底層操作系統(tǒng)上面的軟件,用于提示哪些虛擬機(jī)可用,并管理虛擬機(jī)狀態(tài),這些狀態(tài)包括啟動(dòng)、暫停、喚醒和停止;所述計(jì)算機(jī)管理端為安裝在x86計(jì)算機(jī)上的管理端,啟動(dòng)管理端的時(shí)候,用戶必須先插入U(xiǎn)盤(pán),然后輸入指紋或密碼才可以進(jìn)入管理程序,才能進(jìn)行步驟一所述操作。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)和技術(shù)效果(1)有效解決實(shí)際生活中碰到的數(shù)據(jù)安全隱患問(wèn)題,相比市場(chǎng)上的安全盤(pán)有更高的安全性;(2)本發(fā)明不單單是一個(gè)安全的存放數(shù)據(jù)的方法,而且還是個(gè)包含可信操作系統(tǒng)和可信軟件的安全系統(tǒng)??梢允褂迷谒穗娔X上使用U盤(pán)的軟件而不用安裝;(3)結(jié)合生物指紋技術(shù)和虛擬化技術(shù)、密碼技術(shù)于一身,以構(gòu)建更高安全系統(tǒng)利用了指紋做為身份認(rèn)證技術(shù),并且利用了指紋作為密鑰生成的信息源;(4)U盤(pán)自帶操作系統(tǒng),可以在多個(gè)不同操作系統(tǒng)的X86PC機(jī)上面遷移數(shù)據(jù),防止感染PC機(jī)上面的病毒。(5)虛擬化技術(shù)可以保證重要數(shù)據(jù)的備份和恢復(fù),并且可以同時(shí)運(yùn)行多個(gè)虛擬操作系統(tǒng),以區(qū)別不同的任務(wù)安全需求;可以同時(shí)運(yùn)行兩個(gè)以上虛擬機(jī),一個(gè)用于上網(wǎng),一個(gè)用于專(zhuān)門(mén)的保密信息處理,這樣即使上網(wǎng)的時(shí)候中毒,也不會(huì)造成重要文件的丟失;(6)支持軟件的完整性驗(yàn)證,進(jìn)一步提高安全性。(7)用戶使用方便,可靠性高??傊?,本發(fā)明能保證數(shù)據(jù)安全的前提下,將用戶操作降低到最少,用戶即可以將加密U盤(pán)當(dāng)做普通U盤(pán)使用,在數(shù)據(jù)安全有需求的情況下,也可以當(dāng)做加密盤(pán)使用,并且自帶的操作系統(tǒng)使得在應(yīng)用軟件的使用上更方便、更放心。
圖1是實(shí)施方式中基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)系統(tǒng)示意圖。圖2為實(shí)施方式中基于指紋U盤(pán)的硬件結(jié)構(gòu)示意圖。圖3為實(shí)施方式中管理端的功能示意圖。圖4為實(shí)施方式中U盤(pán)固件的功能模塊示意圖。圖5為實(shí)施方式中U盤(pán)固件的處理流程示意圖。圖6為實(shí)施方式中U盤(pán)引導(dǎo)程序的引導(dǎo)驗(yàn)證過(guò)程圖。圖7為實(shí)施例中U盤(pán)得使用流程圖。圖8為進(jìn)入虛擬機(jī)管理器界面后虛擬機(jī)管理器的工作過(guò)程示意圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式作進(jìn)一步說(shuō)明,但本發(fā)明的實(shí)施和保護(hù)范圍不限于此。如圖1和圖2,本實(shí)施方式以加密U盤(pán)為存儲(chǔ)載體,利用指紋驗(yàn)證技術(shù)進(jìn)行身份認(rèn)證,并且在U盤(pán)上面集成了一個(gè)小型Linux操作系統(tǒng)(用戶不可見(jiàn)),系統(tǒng)上運(yùn)行多個(gè)基于 Virtualbox虛擬機(jī)軟件的windows操作系統(tǒng),以滿足用戶需求。此外,在用戶可信任的Windows平臺(tái)上還帶有一個(gè)管理U盤(pán)的管理軟件(所述計(jì)算機(jī)管理端),該軟件只要運(yùn)行在用戶私有的PC機(jī)上即可,主要用于管理U盤(pán)上的指紋、備份磁盤(pán)映像、修復(fù)U盤(pán)等等功能,一鍵生成U盤(pán)等。用戶使用該U盤(pán)的過(guò)程是相當(dāng)簡(jiǎn)單的。只要在管理軟件上注冊(cè)自己的指紋并注明要生成多少個(gè)虛擬XP操作系統(tǒng)即可,管理軟件會(huì)自動(dòng)將U盤(pán)格式化、生成密鑰、安裝Linux操作系統(tǒng)、安裝虛擬機(jī)等、生成加過(guò)密的映像文件,并將文件存在U盤(pán)得flash中,最后構(gòu)建一個(gè)可以在其他計(jì)算機(jī)上運(yùn)行的加密U盤(pán)。用戶只要將U盤(pán)插入PC機(jī)的USB端口,將系統(tǒng)設(shè)置為從U盤(pán)啟動(dòng),完整性驗(yàn)證成功后,引導(dǎo)程序會(huì)驗(yàn)證用戶指紋,用戶輸入指紋或者密碼(當(dāng)指紋不可用的時(shí)候)。成功即進(jìn)入虛擬機(jī)界面選擇界面(Linux界面被屏蔽掉了),由用戶選擇使用的虛擬機(jī)并運(yùn)行之。 用戶可以將重要數(shù)據(jù)保存在一臺(tái)虛擬機(jī)上,上網(wǎng)的時(shí)候采用另一臺(tái)虛擬機(jī),以保證數(shù)據(jù)的安全性。由于虛擬機(jī)的映像是存放在U盤(pán)上的,并且虛擬機(jī)是經(jīng)過(guò)改造的,使得映像文件是以加密的形式存放在U盤(pán)上的。這樣,原本需要全盤(pán)加密保存數(shù)據(jù)就變成了只需要加密映像文件即可,減少了處理時(shí)間,并且該U盤(pán)可以作為現(xiàn)有U盤(pán)使用,普通數(shù)據(jù)和加密的映像文件存放在一起,密鑰保存在U盤(pán)主控芯片內(nèi)部的Flash上,只有完整性驗(yàn)證通過(guò)及密碼或指紋輸入正確才能獲取密鑰,并且用戶可以利用管理軟件經(jīng)常將加密的映像文件備份到管理軟件上,如果系統(tǒng)崩潰,可以通過(guò)管理軟件恢復(fù)。用戶不用擔(dān)心U盤(pán)丟失,即使丟失了,別人沒(méi)有指紋也進(jìn)入不了系統(tǒng)。所述完整性驗(yàn)證的過(guò)程如下由引導(dǎo)程序?qū)ψ陨?、操作系統(tǒng)、 虛擬機(jī)管理器的代碼生成一個(gè)完整性驗(yàn)證碼,并送入U(xiǎn)盤(pán)與存在U盤(pán)主控芯片內(nèi)部的Flash 中的完整性驗(yàn)證碼比較,一致則提示輸入指紋或密碼。以下結(jié)合具體的實(shí)例作進(jìn)一步說(shuō)明。圖2為指紋U盤(pán)的硬件結(jié)構(gòu)示意圖,本實(shí)施方式的主控芯片采用中興的SOC加密芯片,芯片內(nèi)部有存放固件程序和密鑰的內(nèi)部flash和運(yùn)行程序所用的DRAM內(nèi)存。外部連接一個(gè)FLASH芯片,格式化成FAT16或者是FAT32,可以存放用戶數(shù)據(jù)、引導(dǎo)程序、操作系統(tǒng)、 加密映像文件,大小可以為IG至8G等。主控芯片還集成了一個(gè)USB接口,用于和PC的USB 接口通信,主控芯片還與指紋模塊連接。在U盤(pán)的內(nèi)部flash上面存放著固件程序,這個(gè)程序是用于控制U盤(pán)行為的重要程序。固件程序分為兩個(gè)模式(對(duì)應(yīng)U盤(pán)的兩種狀態(tài)),一個(gè)是登陸模式,另一個(gè)是未登錄模式,初始化上電的時(shí)候是未登錄模式。用戶可以采用密碼或者指紋進(jìn)行登陸。第一次使用的時(shí)候只能采用密碼形式登陸,以后在登記了指紋后就可以采用指紋登陸。若處于未登錄模式下,U盤(pán)相當(dāng)于普通的U盤(pán),可以存放用戶數(shù)據(jù),可以執(zhí)行登錄功能和完整性驗(yàn)證功能。而處于登陸模式下,固件可以存取內(nèi)部flash的內(nèi)容,主要是存放密鑰和指紋模板,也可以改寫(xiě)登陸密碼等重要功能。固件也承擔(dān)著指紋驗(yàn)證、指紋注冊(cè)的功能。這些功能必須在登陸模式下調(diào)用。固件程序采用SCSI命令通過(guò)USB接口和PC上的驅(qū)動(dòng)程序通信。
外部FLASH就是我們常說(shuō)的U盤(pán)存放數(shù)據(jù)的地方。這個(gè)FLASH是用戶可見(jiàn)的,格式化成FAT16格式或者是FAT32格式后可以存放各種信息。我們的系統(tǒng)沒(méi)有采用全盤(pán)加密, 有關(guān)加密的下面將提及到。FLASH上存放的信息如表1 (η加密映像文件個(gè)數(shù),是的,N表示若干個(gè))所示,表示方法有誤。表 1
引導(dǎo)程Linux操作系統(tǒng)加密映像文件1加密映像文件η其他用戶數(shù)據(jù)序 引導(dǎo)程序的主要目的是引導(dǎo)操作系統(tǒng),在引導(dǎo)的時(shí)候引導(dǎo)程序和固件程序通信, 進(jìn)行用戶身份認(rèn)證。引導(dǎo)程序會(huì)提示用戶輸入指紋,如果輸入的指紋是用戶的指紋,則會(huì)進(jìn)入登陸模式,如果錯(cuò)誤,則引導(dǎo)不了系統(tǒng)??傊?,只有在用戶的指紋通過(guò)U盤(pán)上的指紋模塊驗(yàn)證成功后才可以讓固件進(jìn)行登陸模塊。操作系統(tǒng)采用Linux操作系統(tǒng),主要是為虛擬機(jī)程序建立一個(gè)底層的支撐平臺(tái)。 這個(gè)操作系統(tǒng)的界面并不需要用戶知道,也就是說(shuō),用戶看到的只是虛擬機(jī)。操作系統(tǒng)借助現(xiàn)有的puppy Iinux小型系統(tǒng),減去各種應(yīng)用程序,最后只剩下虛擬機(jī)程序和相關(guān)的系統(tǒng)功能模塊、庫(kù)函數(shù)等。最后安裝的操作系統(tǒng)將會(huì)在30多M左右。操作系統(tǒng)的根文件系統(tǒng)以壓縮文件的格式存放在U盤(pán)上,因?yàn)椴僮飨到y(tǒng)的數(shù)據(jù)并不需要保密,所以可以不用加密操作系統(tǒng)的文件系統(tǒng)。根文件系統(tǒng)上安裝最重要的程序,虛擬機(jī)軟件。這個(gè)虛擬機(jī)軟件采用開(kāi)源的 VirtualBox虛擬機(jī)。VirtualBox是一款非常優(yōu)秀、性能好的開(kāi)源的虛擬機(jī)軟件,通過(guò)重新改寫(xiě)VirtualBox源代碼,在VirtualBox上對(duì)映像文件存取的過(guò)程進(jìn)行加解密,相當(dāng)于在 VirtualBox和虛擬機(jī)映像文件之間加了個(gè)中間層,加密算法可以采用RC4流密碼。密鑰通過(guò)VirtualBox和固件程序通信取得。只有在完整性驗(yàn)證用戶登錄成功后才可以取得密鑰。 采用軟件加密主要是利用了 PC機(jī)處理器處理能力,縮短了機(jī)器的響應(yīng)時(shí)間。RC4的密鑰為虛擬磁盤(pán)映像文件磁盤(pán)塊號(hào)與存儲(chǔ)在U盤(pán)的密鑰的異或結(jié)果,RC4針對(duì)每個(gè)虛擬磁盤(pán)塊產(chǎn)生的隨機(jī)數(shù)都不一樣,將隨機(jī)數(shù)和虛擬磁盤(pán)塊內(nèi)容進(jìn)行異或就是加密,再異或就是解密。加密的映像文件存放在U盤(pán)上,這樣U盤(pán)可以到處運(yùn)行,而又不怕丟失,因?yàn)閬G失了即使別人撿到了,也不能取得密鑰進(jìn)行解密。U盤(pán)上可以存放多個(gè)映像文件,用戶可以選擇性運(yùn)行,將重要的信息存放在一個(gè)安全的映像文件里面,而其它的映像文件可以用來(lái)上網(wǎng),以防中病毒。VirtualBox虛擬機(jī)軟件包括前端和后端兩部分。前端就是我們看到的界面,后端就是相關(guān)的驅(qū)動(dòng)和虛擬機(jī)核心??梢愿膶?xiě)磁盤(pán)讀取模塊的源代碼是處于虛擬機(jī)核心部分的源代碼。此外,還可重新利用VirtualBoxAPI編寫(xiě)了一個(gè)用戶方便使用的界面前端。該前端的功能主要是選擇不同的虛擬機(jī)運(yùn)行、關(guān)閉、重啟等比較簡(jiǎn)單的功能。主要是方便用戶使用,而原本復(fù)雜的界面不適合用戶使用。該前端和后端一起安裝在根文件系統(tǒng)上,用戶一旦引導(dǎo)后進(jìn)入操作系統(tǒng),就會(huì)自動(dòng)彈出該圖形界面并指示用戶可以使用哪些虛擬機(jī)。如圖3,本發(fā)明方法中涉及的管理程序(計(jì)算機(jī)管理端)的出現(xiàn)大大減少了用戶的負(fù)擔(dān),使得用戶可以方便的、信任地管理U盤(pán)上面的東西。管理程序?qū)嶋H上是運(yùn)行在用戶PC 機(jī)上面的一個(gè)管理U盤(pán)的程序。該程序可以完成用戶指紋注冊(cè)、設(shè)置加密密鑰、保存加密映像文件、“一鍵生成U盤(pán)”、備份和恢復(fù)等等功能。使得用戶使用該管理程序可以大大的減少對(duì)U盤(pán)的操作,屏蔽掉對(duì)U盤(pán)的細(xì)節(jié),使得呈現(xiàn)在用戶面前的安全系統(tǒng)是一個(gè)管理程序和U 盤(pán)上面的操作系統(tǒng)。管理程序必須進(jìn)行用戶身份認(rèn)證,啟動(dòng)管理程序的時(shí)候,用戶必須先插入U(xiǎn)盤(pán),然后輸入指紋才可以進(jìn)入管理程序,第一次使用時(shí)候采用密碼方式登錄管理程序,以后采用密碼或者是指紋均可以登錄管理程序。利用管理程序也可以添加、刪除指紋,修改進(jìn)入管理程序的密碼。無(wú)論通過(guò)哪種方式,管理程序的登錄必須借助U盤(pán)才可以實(shí)現(xiàn)。這就保證了別人盜用管理程序的問(wèn)題。此外,管理程序還保存著用戶的加密映像文件,主要目的在于U盤(pán)壞掉或者文件系統(tǒng)崩潰的時(shí)候可以重新生成U盤(pán),為了防止加密映像文件被破解,密鑰必須不能放在管理程序上面,只能保存在U盤(pán)上面,并且只能通過(guò)固件程序讀取。應(yīng)該添加一段落描述完整性驗(yàn)證。位置應(yīng)該在密碼登錄之前,U盤(pán)上電之后。U盤(pán)的主控制芯片采用中興的D2U-FlaSh系列安全控制器芯片G32H256D32UF)。 該芯片是ZTEIC面向安全控制器市場(chǎng)應(yīng)用,在基于國(guó)產(chǎn)的方舟2號(hào)32位RISC處理器的多功能安全處理平臺(tái)基礎(chǔ)上開(kāi)發(fā)出的,具備高處理能力、高安全性、多種接口、低功耗、低成本等特點(diǎn)。該系列芯片可用于安全加密U盤(pán)、指紋識(shí)別USB KEY、大容量USB KEY、桌面加密機(jī)、桌面型VPN、高性能讀卡器、手持POS機(jī)、加密板卡等設(shè)備上,可以實(shí)現(xiàn)的功能包括片上密鑰管理(密鑰生成、密鑰存儲(chǔ)、密鑰更新等);片上簽名及身份認(rèn)證(可以支持RSA、ECC(p域)等公鑰算法);專(zhuān)用算法下載執(zhí)行及高速率數(shù)據(jù)加解密(支持DES/3DES算法和各種專(zhuān)用密碼算法);通過(guò)豐富的GPIO接口、SPI/UART接口、Flash主從接口、SRAM主從接口、USB接口寸。U盤(pán)的設(shè)計(jì)采用了芯片上面的Nand Flash接口接外部flash存儲(chǔ)器、UART 口接指紋模塊、USB接口和主機(jī)進(jìn)行通信,并利用了其加解密引起生成密鑰和保存密鑰。如圖4,U盤(pán)固件是U盤(pán)的重要組成部分,U盤(pán)正是通過(guò)固件來(lái)保持和主機(jī)的通信、取得指紋、調(diào)用加解密引擎、操作控制flash等等。固件程序是使得U盤(pán)之所以成為加密U盤(pán)的根本原因。中興的芯片已經(jīng)帶有一個(gè)固件程序,主要用于初始化硬件,并且將加解密等部分集成在固件程序里面,本實(shí)施方式只要通過(guò)編程完成USB接口的通信、讀寫(xiě)外部FLASH、控制指紋模塊、調(diào)用加解密引擎函數(shù)就可以了。現(xiàn)在的U盤(pán)均采用SCSI命令進(jìn)行和主機(jī)的通信,該通信協(xié)議已經(jīng)是標(biāo)準(zhǔn)了,U盤(pán)必須實(shí)現(xiàn)標(biāo)準(zhǔn)的SCSI命令才能成為普通的U盤(pán),而有關(guān)指紋、加解密引擎等功能則使用私有的SCSI命令來(lái)實(shí)現(xiàn);固件需要完成兩部分的功能,一個(gè)是標(biāo)準(zhǔn)SCSI命令,一個(gè)是私有的SCSI命令,其中列出了部分的私有SCSI命令。SCSI協(xié)議及處理流程,USB組織定義了海量存儲(chǔ)設(shè)備類(lèi)(Mass Storage Class)的規(guī)范,這個(gè)類(lèi)規(guī)范包括四個(gè)獨(dú)立的子類(lèi)規(guī)范,即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。前兩個(gè)子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB上的傳輸方法。Bulk-Only傳輸規(guī)范僅僅使用Bulk端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI傳輸規(guī)范則使用Control/Bulk/Interrupt 三種類(lèi)型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個(gè)子規(guī)范則定義了存儲(chǔ)介質(zhì)的操作命令。 ATA命令規(guī)范用于硬盤(pán),UFI命令規(guī)范是針對(duì)USB移動(dòng)存儲(chǔ)。U盤(pán)固件采用Bulk-Only協(xié)議進(jìn)行通信,該協(xié)議采用CBW和CSW進(jìn)行數(shù)據(jù)交換,而 SCSI是封裝在CBW包里面的,CSW的USB設(shè)備返回的狀態(tài)包。在U盤(pán)固件和PC機(jī)的通信過(guò)程中,主要是CBW、CSW、數(shù)據(jù)三種通信內(nèi)容。一般都是主機(jī)發(fā)送一個(gè)CBW包給設(shè)備,設(shè)備返回一個(gè)CSW包,接著主機(jī)發(fā)送一個(gè)CBW包,設(shè)備可以返回相關(guān)數(shù)據(jù)內(nèi)容。U盤(pán)固件的處理過(guò)程如圖5所示。U盤(pán)固件提供的功能應(yīng)該為“指紋管理,密鑰生成并保存,讀取密鑰,更新密碼,讀取密碼”,而這些功能是以一個(gè)標(biāo)志字段封裝在協(xié)議里面的,在這里列舉出所有使用的功能的宏定義。
#defineFINGER_VERIFY0x23//指紋模板對(duì)比#defineFINGER_GETMODULE0x24Il讀取指紋模板#defineFINGER_SAVEMODULE0x25Il保存指紋模板#defineKEY_CREATI0N0x26Il創(chuàng)建并保存密鑰#defineKEY_READ0x27 //讀取密鑰#definePASSWD_READ0x28Il讀取驗(yàn)證密碼#definePASSWD_CHANGE0x29Il改變驗(yàn)證密碼#defineL0GIN_PASSWD0x30//采用密碼登錄#defineL0GIN_ZHIWEN0x31Il采用指紋登錄這些宏定義對(duì)應(yīng)于固件所具有的私有功能,我們可以通過(guò)封裝CBW包,指定相應(yīng)的命令,然后發(fā)送給固件讓固件執(zhí)行相關(guān)功能,固件調(diào)用相關(guān)函數(shù)實(shí)現(xiàn),最后通過(guò)CSW狀態(tài)包通知主機(jī)執(zhí)行結(jié)果。U盤(pán)固件有兩種模式,一種為登錄模式,一種為未登錄模式。初始上電為未登錄模式,一旦用戶通過(guò)密碼或者指紋進(jìn)行登錄,則固件進(jìn)行判斷,如果密碼或者指紋正確,則改變U盤(pán)模式。此時(shí),可以執(zhí)行U盤(pán)所有的功能,而處于未登錄模式只能執(zhí)行標(biāo)準(zhǔn)SCSI命令, U盤(pán)只有普通U盤(pán)的功能。管理程序可以通過(guò)接口進(jìn)行登錄,只有在登錄后才可以進(jìn)行操作,而在引導(dǎo)系統(tǒng)的時(shí)候也會(huì)進(jìn)行登錄驗(yàn)證,沒(méi)有通過(guò)登錄則進(jìn)入不了系統(tǒng)。為了完成私有SCSI命令的特殊功能,在U盤(pán)的內(nèi)部FLASH上面應(yīng)該指定一些區(qū)域存放指紋、密鑰、密碼等重要信息,并且這些信息只能在登錄模式下使用,而且只能由固件取得,不能通過(guò)此外的任何方式取得。U盤(pán)重要信息儲(chǔ)存區(qū)格式如表2所示表 2
指紋模板10個(gè)ι密鑰1個(gè)初始密碼一個(gè)雖然PC機(jī)和U盤(pán)固件是通過(guò)命令包的發(fā)送和接收來(lái)進(jìn)行通信的,但是為了保證 PC管理程序和虛擬機(jī)程序能夠方便地使用U盤(pán)的功能,而不用每次都進(jìn)行命令包封轉(zhuǎn),也為了提高程序的可移植性,在此設(shè)計(jì)了 PC端訪問(wèn)U盤(pán)固件的通用接口。這些接口基本上是對(duì)U盤(pán)固件私有SCSI命令的功能進(jìn)行封轉(zhuǎn),使得調(diào)用的時(shí)候更加方便。在管理程序上,只需要調(diào)用這些接口即可完成與固件通信的程序,同樣,在引導(dǎo)U盤(pán)和虛擬機(jī)讀取加密映像密鑰的時(shí)候只要調(diào)用這些接口就好了。雖然管理程序是在Windows上運(yùn)行的,而虛擬機(jī)程序是在Linux上面運(yùn)行,但是訪問(wèn)指紋加密U盤(pán)的接口是一樣的,即使底層的實(shí)現(xiàn)不一樣。 這些接口以C語(yǔ)言形式描述。如表3所示。引導(dǎo)程序的主要目的是進(jìn)行指紋或者密碼登錄認(rèn)證,然后引導(dǎo)操作系統(tǒng),引導(dǎo)程序會(huì)提示用戶輸入指紋,然后讀取指紋,進(jìn)而進(jìn)行驗(yàn)證,三次指紋登錄不成功可改用密碼進(jìn)行登錄,在沒(méi)有登記指紋的情況下也可以進(jìn)行密碼登錄(只用于剛出廠時(shí))。引導(dǎo)程序主要是通過(guò)BIOS中斷13和U盤(pán)上的固件通信,這個(gè)時(shí)候由于是匯編級(jí)別的。固件程序接來(lái)自引導(dǎo)程序的請(qǐng)求時(shí),便啟動(dòng)指紋的驗(yàn)證流程,等待用戶刷指紋。當(dāng)指紋采集設(shè)備采集完指紋圖像后,固件程序?qū)D像的特征值進(jìn)行提取,然后讀取已登記的指紋模板并與之對(duì)比。最后,固件程序根據(jù)對(duì)比結(jié)果,發(fā)送結(jié)果給主機(jī)上的引導(dǎo)程序。引導(dǎo)程序根據(jù)固件返回的填充結(jié)果判斷是否對(duì)比成功,如果成功則進(jìn)入引導(dǎo)操作系統(tǒng)環(huán)節(jié),而固件將進(jìn)行登陸模式。如果失敗,則返回上一步操作。引導(dǎo)時(shí)驗(yàn)證過(guò)程如圖6所示。加密U 盤(pán)使用過(guò)程圖7和圖8所示,將U盤(pán)插入到x86計(jì)算機(jī)上,選擇從U盤(pán)啟動(dòng);U盤(pán)引導(dǎo)程序載入內(nèi)存進(jìn)行引導(dǎo),提示輸入指紋或密碼;輸入指紋或密碼,驗(yàn)證通過(guò)后進(jìn)入下一步,否則提示失敗;引導(dǎo)程序引導(dǎo)Linux操作系統(tǒng),完畢后自動(dòng)運(yùn)行虛擬機(jī)管理器;進(jìn)入虛擬機(jī)管理器界面,選擇虛擬機(jī)運(yùn)行,在基于Virtualbox虛擬機(jī)軟件的windows操作系統(tǒng)上操作數(shù)據(jù)、 存儲(chǔ)數(shù)據(jù)或安裝應(yīng)用軟件,所述虛擬機(jī)管理器在這個(gè)過(guò)程中自動(dòng)讀取U盤(pán)里面的密鑰并自動(dòng)對(duì)數(shù)據(jù)進(jìn)行加解密操作。管理程序(計(jì)算機(jī)管理端)是運(yùn)行在管理計(jì)算機(jī)上對(duì)系統(tǒng)進(jìn)行基本管理的程序。 管理程序能夠提供修改用戶密碼和備份等功能。只有在登錄的情況下才可以進(jìn)行管理程序的操作。用戶可以采用密碼或者指紋登錄,初始的時(shí)候指紋為空,密碼為初始密碼。用戶登錄后可以進(jìn)行修改。為了方便用戶管理系統(tǒng),管理程序運(yùn)行在Windows XP操作系統(tǒng)上,并且具備良好的交互界面。管理程序在Windows XP上開(kāi)發(fā),開(kāi)發(fā)工具為VC 6.0。管理程序的功能模塊可以參見(jiàn)圖3, 以下對(duì)備份加密U盤(pán)上的VMDK文件模塊作進(jìn)一步說(shuō)明。VMDK文件是虛擬機(jī)的存儲(chǔ)文件系統(tǒng),它模擬的物理硬盤(pán)的功能,對(duì)虛擬機(jī)上的操作系統(tǒng)而言,和物理硬盤(pán)是等同的。 本系統(tǒng)的所用用戶數(shù)據(jù)都是通過(guò)VirtualBox存儲(chǔ)在VMDK文件中,因此要備份用戶的數(shù)據(jù), 最好的辦法就是把整個(gè)VMDK文件復(fù)制到管理計(jì)算機(jī)上。管理程序要實(shí)現(xiàn)這個(gè)功能,可以通過(guò)調(diào)用Windows XP的復(fù)制文件用API實(shí)現(xiàn)把加密U盤(pán)上的VMDK把加密U盤(pán)上的VMDK文件復(fù)制到管理計(jì)算機(jī)上,并保存到用戶選定的文件目錄,管理程序自動(dòng)把復(fù)制過(guò)來(lái)的VMDK 文件重命名成帶日期的備份文件。還原加密U盤(pán)上的用戶數(shù)據(jù)最好的辦法是把備份的VMDK文件復(fù)制到加密U盤(pán)上, 覆蓋原來(lái)的VMDK文件。具體的實(shí)現(xiàn)方法是管理程序先把選定的備份文件重命名為VMDK的標(biāo)準(zhǔn)命名(去掉日期),然后把它復(fù)制到加密U盤(pán)中,被覆蓋加密U盤(pán)中原來(lái)的VMDK文件, 最后,把管理計(jì)算機(jī)上的備份文件重命名為原來(lái)帶日期的名字。以下再對(duì)管理程序的其他功能做說(shuō)明修改密碼登錄U盤(pán),并修改加密U盤(pán)的登錄密碼。通過(guò)程序提供的接口,改變加密U盤(pán)引導(dǎo)程序的登錄密碼。修改指紋登錄U盤(pán),并修改加密U盤(pán)的登錄指紋。通過(guò)程序提供的接口,改變加密U盤(pán)引導(dǎo)程序的登錄指紋。自動(dòng)生成加密密鑰(生成的密鑰用戶不可見(jiàn))發(fā)送命令給U盤(pán)固件,讓固件根據(jù)用戶的指紋信息生成密鑰,并保存起來(lái)。在U盤(pán)固件模式為登錄狀態(tài)時(shí)候可以讀取。一鍵生成U盤(pán)系統(tǒng),在初次使用或者需要重新生成U盤(pán)的時(shí)候,將引導(dǎo)程序、操作系統(tǒng)、虛擬機(jī)管理器、加密映像等文件一并寫(xiě)入U(xiǎn)盤(pán),這樣用戶只要一按鍵,就可以生成完整U盤(pán)。使用該U盤(pán)就可以在不同計(jì)算機(jī)之間遷移。表權(quán)利要求
1.基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于包括如下步驟 步驟一、利用計(jì)算機(jī)管理端對(duì)普通U盤(pán)進(jìn)行初始設(shè)置,使U盤(pán)安裝上引導(dǎo)程序、提供基本運(yùn)行環(huán)境的底層操作系統(tǒng)、虛擬機(jī)管理器,所述虛擬機(jī)管理器上能運(yùn)行一個(gè)或多個(gè) windows操作系統(tǒng),windows操作系統(tǒng)的虛擬磁盤(pán)映像文件也存在U盤(pán)上面;步驟二、將U盤(pán)插入到x86計(jì)算機(jī)上,選擇從U盤(pán)啟動(dòng);U盤(pán)引導(dǎo)程序載入內(nèi)存進(jìn)行引導(dǎo),提示輸入指紋或密碼;步驟三、輸入指紋或密碼,驗(yàn)證通過(guò)后進(jìn)入下一步,否則提示失??; 步驟四、引導(dǎo)程序弓I導(dǎo)底層操作系統(tǒng),完畢后自動(dòng)運(yùn)行虛擬機(jī)管理器; 步驟五、進(jìn)入虛擬機(jī)管理器界面,選擇虛擬機(jī)運(yùn)行,在windows操作系統(tǒng)上操作數(shù)據(jù)、 存儲(chǔ)數(shù)據(jù)或安裝使用應(yīng)用軟件,所述虛擬機(jī)管理器在這個(gè)過(guò)程中自動(dòng)讀取U盤(pán)里面的密鑰并自動(dòng)對(duì)數(shù)據(jù)進(jìn)行加解密操作。
2.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于步驟一進(jìn)一步包括(1)插入U(xiǎn)盤(pán)到計(jì)算機(jī)管理端,采用U盤(pán)初始密碼登錄U盤(pán),轉(zhuǎn)變U盤(pán)工作模式為登錄模式;(2)計(jì)算機(jī)管理端對(duì)U盤(pán)進(jìn)行格式化,安裝引導(dǎo)程序、底層操作系統(tǒng)、虛擬機(jī)管理器到U 盤(pán)主控芯片外部的Flash上,同時(shí)對(duì)引導(dǎo)程序、底層操作系統(tǒng)、虛擬機(jī)管理器生成一個(gè)完整性驗(yàn)證碼,完整性驗(yàn)證碼存在U盤(pán)主控芯片內(nèi)部的Flash上;(3)計(jì)算機(jī)管理端自動(dòng)生成密鑰,密鑰存儲(chǔ)在U盤(pán)主控芯片內(nèi)部的Flash上,計(jì)算機(jī)管理端用密鑰生成加密的虛擬磁盤(pán)映像文件,該文件為一個(gè)能運(yùn)行的Windows操作系統(tǒng)虛擬磁盤(pán)映像文件,存放在主控芯片外部的Flash上;(4)利用計(jì)算機(jī)管理端注冊(cè)用戶指紋到U盤(pán)里面,修改U盤(pán)初始密碼。
3.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于步驟二中,還將U盤(pán)當(dāng)做一個(gè)可信平臺(tái)模塊,對(duì)引導(dǎo)程序、底層操作系統(tǒng)、虛擬機(jī)管理器進(jìn)行代碼完整性驗(yàn)證,驗(yàn)證過(guò)程如下由引導(dǎo)程序?qū)ψ陨?、操作系統(tǒng)、虛擬機(jī)管理器的代碼生成一個(gè)完整性驗(yàn)證碼,并送入U(xiǎn)盤(pán)與存在U盤(pán)主控芯片內(nèi)部的Flash中的完整性驗(yàn)證碼比較,一致則提示輸入指紋或密碼。
4.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于步驟二中先將x86計(jì)算機(jī)設(shè)置為從U盤(pán)啟動(dòng)。
5.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于步驟五中,運(yùn)行多個(gè)虛擬機(jī),各虛擬機(jī)能獨(dú)立存儲(chǔ)數(shù)據(jù)或使用數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于所述底層操作系統(tǒng)對(duì)用戶不可見(jiàn),并且虛擬磁盤(pán)映像文件是以加密的形式存放在U盤(pán)主控芯片外部的Flash上,密鑰保存在U盤(pán)主控芯片內(nèi)部的Flash上,只有完整性驗(yàn)證通過(guò)及密碼或指紋輸入正確才能獲取密鑰。
7.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于利用計(jì)算機(jī)管理端將U盤(pán)中加密的映像文件備份到計(jì)算機(jī)上,如果系統(tǒng)崩潰,通過(guò)計(jì)算機(jī)管理端對(duì)U盤(pán)進(jìn)行恢復(fù)。
8.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于對(duì)SCSI命令進(jìn)行擴(kuò)展,使U盤(pán)支持讀寫(xiě)密鑰、讀寫(xiě)密碼、注冊(cè)指紋、驗(yàn)證指紋、完整性驗(yàn)證或者指紋登錄功能;所述U盤(pán)有兩種狀態(tài)一種是未登錄狀態(tài),具備現(xiàn)有U盤(pán)讀取和存儲(chǔ)數(shù)據(jù)的功能,同時(shí)具備完整性驗(yàn)證和用戶登錄功能;另一種為登錄狀態(tài),支持讀寫(xiě)密鑰、讀寫(xiě)密碼、 注冊(cè)指紋和驗(yàn)證指紋功能。
9.根據(jù)權(quán)利要求1所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于U 盤(pán)固件采用Bulk-Only協(xié)議進(jìn)行通信,該協(xié)議采用CBW包和CSW包進(jìn)行數(shù)據(jù)交換,SCSI命令是封裝在CBW包中;CSW是USB設(shè)備返回的狀態(tài)包,表示操作的成功與否;在U盤(pán)固件和計(jì)算機(jī)的通信過(guò)程中,包括CBW、CSW、數(shù)據(jù)三種通信內(nèi)容。
10.根據(jù)權(quán)利要求廣9任一項(xiàng)所述的基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,其特征在于底層操作系統(tǒng)為小型可定制操作系統(tǒng),只需滿足運(yùn)行虛擬機(jī)運(yùn)行環(huán)境要求;虛擬機(jī)在讀取加密映像的時(shí)候進(jìn)行解密,在寫(xiě)加密映像的時(shí)候進(jìn)行加密,加密算法采用標(biāo)準(zhǔn)RC4 流密碼變體,RC4的密鑰為虛擬磁盤(pán)映像文件磁盤(pán)塊號(hào)與存儲(chǔ)在U盤(pán)的密鑰的異或結(jié)果, RC4針對(duì)每個(gè)虛擬磁盤(pán)塊產(chǎn)生的隨機(jī)數(shù)都不一樣,將隨機(jī)數(shù)和虛擬磁盤(pán)塊內(nèi)容進(jìn)行異或就是加密,再異或就是解密;所述虛擬機(jī)管理器界面為安裝在底層操作系統(tǒng)上面的軟件,用于提示哪些虛擬機(jī)可用,并管理虛擬機(jī)狀態(tài),這些狀態(tài)包括啟動(dòng)、暫停、喚醒和停止;所述計(jì)算機(jī)管理端為安裝在x86計(jì)算機(jī)上的管理端,啟動(dòng)管理端的時(shí)候,用戶必須先插入U(xiǎn)盤(pán),然后輸入指紋或密碼才可以進(jìn)入管理程序,才能進(jìn)行步驟一所述操作。
全文摘要
本發(fā)明公開(kāi)了一種基于指紋U盤(pán)和虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)方法,包括計(jì)算機(jī)選擇從U盤(pán)啟動(dòng);U盤(pán)引導(dǎo)程序載入內(nèi)存進(jìn)行引導(dǎo),提示輸入指紋或密碼;輸入指紋或密碼,驗(yàn)證通過(guò)后進(jìn)入下一步,否則提示失??;引導(dǎo)程序引導(dǎo)安裝在U盤(pán)上的底層操作系統(tǒng),完畢后自動(dòng)運(yùn)行虛擬機(jī)管理器;進(jìn)入虛擬機(jī)管理器前端界面,選擇虛擬機(jī)運(yùn)行,在虛擬化的windows操作系統(tǒng)上操作數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)或安裝應(yīng)用軟件,虛擬機(jī)支持虛擬磁盤(pán)全盤(pán)加密。本發(fā)明減少了U盤(pán)中毒的可能性,防止了重要信息的丟失,使用方便,不懼因遺失U盤(pán)而導(dǎo)致的數(shù)據(jù)丟失,支持備份,并在U盤(pán)丟失情況下恢復(fù)數(shù)據(jù)。
文檔編號(hào)G06F21/00GK102254119SQ20111019958
公開(kāi)日2011年11月23日 申請(qǐng)日期2011年7月15日 優(yōu)先權(quán)日2011年7月15日
發(fā)明者奚建清, 陳思桐, 陳虎 申請(qǐng)人:華南理工大學(xué)