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