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