專利名稱:用于加密和解密虛擬盤的計算機可讀存儲介質的制作方法
技術領域:
本發(fā)明涉及用于計算機系統(tǒng)的虛擬化軟件。具體而言,本發(fā)明涉及通過加密和解密虛擬盤來保護虛擬盤的內容。
背景技術:
利用常規(guī)的物理資源設置或安裝大量具有特殊軟件與應用的服務器和計算機系統(tǒng)變得越來越昂貴。近年來,這個過程通過使用虛擬化技術得到了簡化,其中虛擬化技術向虛擬盤或操作系統(tǒng)提供預先配置好的軟件包和系統(tǒng)配置。
如果需要大量相似配置的服務器,那么同一個虛擬盤可以一次又一次地重復使用。虛擬盤鏡像可以經由互聯(lián)網分發(fā)。但是,包含虛擬盤鏡像的數(shù)據包可以包含關鍵數(shù)據和許可。此外,需要防止虛擬盤鏡像的未授權使用。目前,整個盤鏡像在分發(fā)之前被加密。發(fā)明內容
在獨立的權利要求中,本發(fā)明提供了包含用于加密虛擬盤的指令的計算機可讀存儲介質、包含用于解密加密的虛擬盤的指令的計算機可讀存儲介質,及包含虛擬盤的加密虛擬盤計算機可讀存儲介質。在從屬權利要求中給出了實施例。
在分發(fā)之前加密整個虛擬盤鏡像有數(shù)個缺陷。首先,如果不解密,一種格式的虛擬盤鏡像不能被轉換成另一種。其次,需要管理員來解密和安裝虛擬盤鏡像。這會是個問題,因為用于解密虛擬盤鏡像的密碼密鑰或憑證需要提供給管理員。虛擬盤系統(tǒng)的終端用戶或操作人員可能或者可能不希望與管理員共享該密碼密鑰或憑證。
通過與用于解密至少部分加密的虛擬盤鏡像的解密程序一起在加密的虛擬盤鏡像上放置加密主引導記錄,本發(fā)明的實施例可以解決這些及其它問題。加密主引導記錄是用于引導虛擬機的主引導記錄。然后,虛擬機本身利用解密程序和密碼憑證解密加密的虛擬盤鏡像。這消除了向操作人員提供密碼憑證的需求。
本發(fā)明的實施例可以具有虛擬盤可以從虛擬盤加密或解密的優(yōu)點。本發(fā)明的實施例可以具有方法可以設置成只加密使用的塊的優(yōu)點。本發(fā)明的實施例可以具有虛擬盤可以動態(tài)實時(on the fly)加密和解密的優(yōu)點。
此外,只有部分虛擬盤可以被加密。例如,虛擬盤的塊可以有選擇地加密。虛擬盤中包含特定于虛擬盤特定格式的數(shù)據或記錄的部分可以留著不加密。這允許虛擬盤不需要解密虛擬盤的轉換。
如在此所使用的計 算機可讀存儲介質包含可以存儲可以由計算設備的處理器執(zhí)行的指令的任何有形存儲介質。計算機可讀存儲介質可以被稱為計算機可讀非臨時性存儲介質。計算機可讀存儲介質還可以被稱為有形計算機可讀介質。在有些實施例中,計算機可讀存儲介質還可以能夠存儲能夠被計算設備的處理器訪問的數(shù)據。
計算機可讀存儲介質的例子包括但不限于:軟盤、磁性硬盤驅動器、固態(tài)硬盤、閃存存儲器、USB拇指驅動器、隨機存取存儲器(RAM)內存、只讀存儲器(ROM)內存、光盤、磁光盤及處理器的寄存器文件。光盤的例子包括壓縮盤(⑶)和數(shù)字多樣化盤(DVD),例如CD-ROM、CD-RW、CD-R、DVD-ROM、DVD-RW或者DVD-R盤。術語“計算機可讀存儲介質”還指各種類型的能夠由計算機設備經網絡或通信鏈路訪問的記錄介質。例如,數(shù)據可以經調制解調器、經互聯(lián)網或者經局域網被檢索。
計算機內存是計算機存儲介質的一個例子。計算機內存是處理器可以直接訪問的任何存儲器。計算機內存的例子包括但不限于:RAM內存、寄存器和寄存器文件。
計算機儲存器是計算機可讀存儲介質的一個例子。計算機儲存器是任何非易失性計算機可讀存儲介質。計算機儲存器的例子包括但不限于:硬盤驅動器、USB拇指驅動器、軟盤、智能卡、DVD、CD-R0M和固態(tài)硬驅。在有些實施例中,計算機儲存器也可以是計算機內存或者反之亦然。
如在此所使用的計算設備或計算機系統(tǒng)指包括處理器的任何設備。如在此所使用的處理器包含能夠執(zhí)行程序或機器可執(zhí)行指令的電子部件。對包括“處理器”的計算設備的引用應當解釋為可能包含多于一個處理器。術語“計算設備”也應當解釋為可能指每個都包括處理器的計算設備的集合或網絡。許多程序都可以讓多個處理器執(zhí)行它們的指令,這些處理器可以在同一個計算設備中或者甚至可以跨多個計算設備分布。
如在此所使用的用戶接口是允許用戶或操作人員與計算機或計算機系統(tǒng)交互的接口。用戶接口可以向操作人員提供信息或數(shù)據和/或從操作人員接收信息或數(shù)據。數(shù)據或信息在顯示器或圖形用戶界面上的顯示是向操作人員提供信息的一個例子。數(shù)據通過鍵盤、鼠標、軌跡球、觸摸板、指示桿、繪圖板、操縱桿、游戲手柄、網絡攝像頭、頭戴式耳機、變速桿、方向盤、踏板、有線手套、跳舞毯、遙控器和加速計的接收全都是從操作人員接收信息或數(shù)據的例子。
如在此所使用的虛擬化軟件、虛擬化程序和虛擬化模塊全都指允許計算機系統(tǒng)運行虛擬計算機系統(tǒng)的軟件或計算機可執(zhí)行指令。如在此所使用的虛擬機或虛擬計算機系統(tǒng)包含由在計算機系統(tǒng)上運行的軟件虛擬實現(xiàn)的或者模擬的計算機系統(tǒng)。
如在此所使用的密碼密鑰或密碼憑證包含可以由解密算法用于解密數(shù)據文件的密鑰、憑證或口令。
如在此所使用的虛擬盤包含可以由虛擬化程序用作虛擬盤鏡像的數(shù)據。虛擬盤可以包含可以由虛擬化系統(tǒng)或虛擬系統(tǒng)訪問的文件系統(tǒng)。虛擬盤還可以包含可引導的操作系統(tǒng)。
一方面,本發(fā)明提供了包含機器可執(zhí)行指令的計算機可讀存儲介質,當所述機器可執(zhí)行指令被處理器執(zhí)行時,使處理器加密虛擬盤。該虛擬盤包括虛擬盤鏡像。虛擬盤鏡像是現(xiàn)有盤文件系統(tǒng)或者為了創(chuàng)建虛擬盤鏡像而構造的盤文件系統(tǒng)的鏡像。機器可執(zhí)行指令的執(zhí)行使處理器接收虛擬盤。機器可執(zhí)行指令的執(zhí)行進一步使處理器增加虛擬盤的大小。虛擬盤可以本質上是存儲在計算機可讀存儲介質或者不同計算機可讀存儲介質上的文件。虛擬盤的大小可以通過在虛擬盤的開始或末尾添加塊來增加。機器可執(zhí)行指令的執(zhí)行進一步使處理器把解密主引導記錄和解密程序寫到虛擬盤。解密主引導記錄是在使用虛擬盤鏡像時虛擬計算機或計算機系統(tǒng)引導進入的主引導記錄。解密主引導記錄允許虛擬計算機系統(tǒng)為了解密虛擬盤而運行解密程序。機器可執(zhí)行指令的執(zhí)行進一步使處理器加密虛擬盤鏡像的至少一部分。解密程序 包括用于根據密碼密鑰解密至少部分加密的虛擬盤鏡像的解密機器可執(zhí)行指令。虛擬盤鏡像被加密,使得虛擬盤鏡像可以根據所述密碼密鑰利用解密程序來解密。
在有些實施例中,整個虛擬盤鏡像被加密。在其它實施例中,虛擬盤只有某些部分是加密的。例如,如果虛擬盤的部分不使用,那么盤鏡像的這些部分就不需要加密。還有可能能夠確定虛擬盤的某些部分是否包含期望通過加密來保護的敏感信息,例如應用程序或敏感數(shù)據。虛擬盤的解密可以通過選擇性地使用虛擬盤需要保護的那些部分并且不加密不需要保護的那些部分來加速。
本發(fā)明的實施例有數(shù)個優(yōu)點。例如,向虛擬盤和解密程序添加解密主引導記錄使終端用戶能夠執(zhí)行虛擬盤鏡像的解密。這消除了管理員執(zhí)行這種任務的需求。
在另一種實施例中,虛擬盤鏡像被分成第一部分和第二部分。虛擬盤被分成第一、第二、第三、第四和第五部分。虛擬盤鏡像最初跨虛擬盤的第一、第二和第三部分。虛擬盤鏡像的第二部分存儲在虛擬盤的第三部分中。指令的執(zhí)行進一步使處理器把虛擬盤鏡像的第一部分拷貝到虛擬盤的第四部分。虛擬盤鏡像的第一部分從虛擬盤的第一部分和第二部分拷貝或移動到虛擬盤的第四部分。解密主引導記錄寫到虛擬盤的第一部分。當虛擬盤加載到虛擬系統(tǒng)中而且虛擬系統(tǒng)引導到虛擬盤中時,解密主引導記錄將使虛擬系統(tǒng)運行解密程序。
解密程序寫到虛擬盤的第二部分。如以上所提到的,虛擬盤鏡像的第一部分是從虛擬盤的第一部分和第二部分拷貝的。在解密主引導記錄和解密程序分別寫到虛擬盤的第一部分和第二部分之前,虛擬盤鏡像的第一部分從虛擬盤的第一部分和第二部分拷貝。指令的執(zhí)行進一步使處理器至少部分地加密虛擬盤的第一部分和第二部分。虛擬盤的大小增加到創(chuàng)建虛擬盤的第四部分和虛擬盤的第五部分。第五部分的大小大于或等于第二部分的大小。第一部分和第二部分的組合大小小于或等于第四部分的大小。本發(fā)明的這種實施例可能是有利的,因為解密主引導記錄是在第一部分中而且將使虛擬系統(tǒng)引導到解密程序中。
在另一種實施例中,虛擬盤鏡像的第一部分是一起加密的。在這種實施例中,虛擬盤鏡像的整個第一部分是作為單個加密的數(shù)據文件加密的。
在另一種實施例中,虛擬盤鏡像的第二部分是一起加密的。在這種實施例中,虛擬盤鏡像的第二部分是作為單個數(shù)據文件加密的。
在另一種實施例中,虛擬盤鏡像被分成塊。如在此所使用的,塊是盤或虛擬盤鏡像的數(shù)據的一部分或子劃分。塊中的數(shù)據可以由盤或虛擬盤尋址。塊是根據預定的塊加密列表有選擇地加密的。塊加密列表是在虛擬盤鏡像加密過程中被加密的塊的列表。例如,操作人員可以確定虛擬盤鏡像的哪些塊包含期望通過加密來保護的數(shù)據。例如,這些塊可能包含敏感數(shù)據或信息。同樣,這些塊可能包含需要購買許可的應用。如果程序跨互聯(lián)網發(fā)送,那么將期望保護代碼或數(shù)據的可執(zhí)行版本。
在另一種實施例中,虛擬盤鏡像被分成塊。指令的執(zhí)行使處理器檢查每個塊并創(chuàng)建未使用塊的列表。只有在未使用塊列表中沒有找到特定塊的時候才加密它們。這種實施例特別有利,因為計算機可讀存儲介質避免加密不使 用的塊。由于塊不被使用,所以沒有必要保護它們。在有些虛擬文件系統(tǒng)中,未使用的數(shù)據可以是文件系統(tǒng)的一部分但不被使用。通過不加密文件系統(tǒng)的這些部分,虛擬盤可以更小。
以上提到的計算機可讀存儲介質的實施例還提供了本發(fā)明的其它方面。例如,根據本發(fā)明的一種實施例,本發(fā)明提供了一種計算機系統(tǒng),該計算機系統(tǒng)包含或包括在計算機可讀存儲介質上包含的機器可讀指令。同樣,機器可執(zhí)行指令的執(zhí)行使處理器執(zhí)行各種步驟或動作,這些步驟或動作也提供了方法和計算機實現(xiàn)的方法。計算機可讀存儲介質上的可執(zhí)行指令還提供了計算機程序產品和/或計算機系統(tǒng)。
另一方面,本發(fā)明提供了包含機器可執(zhí)行指令的計算機可讀存儲介質,當所述機器可執(zhí)行指令被處理器執(zhí)行時,使處理器解密加密的虛擬盤。虛擬盤包括解密主引導記錄、解密程序和至少部分加密的虛擬盤鏡像。解密程序包括用于根據密碼密鑰解密至少部分加密的虛擬盤鏡像的解密機器可執(zhí)行指令。機器可執(zhí)行指令的執(zhí)行使處理器接收加密的虛擬盤。
機器可執(zhí)行指令的執(zhí)行進一步使處理器利用解密主引導記錄引導虛擬機。機器可執(zhí)行指令的執(zhí)行進一步使處理器接收密碼密鑰。接收密碼密鑰的次序不是關鍵的。例如,處理器可以在解密虛擬盤鏡像之前的任何點接收密碼密鑰。機器可執(zhí)行指令的執(zhí)行進一步使處理器根據該密碼密鑰和解密程序解密至少部分加密的虛擬盤鏡像。機器可執(zhí)行指令使處理器經解密主引導記錄把虛擬機引導到加密的虛擬盤上的操作系統(tǒng)中。然后,這使得虛擬機運行解密程序。然后,解密程序解密至少部分加密的虛擬盤鏡像。密碼密鑰和解密程序都是解密至少部分加密的虛擬盤鏡像所需的。
在另一種實施例中,至少部分加密的虛擬盤鏡像的解密是在虛擬機部署過程中執(zhí)行的。在本領域的當前狀態(tài)中,管理員將接收加密的虛擬盤而且管理員負責解密它。但是,這在許多情況下是不期望的,因為虛擬機的終端用戶或者操作人員依賴管理員來執(zhí)行解密。本發(fā)明的實施例可以具有終端用戶或操作人員可以自己執(zhí)行解密的優(yōu)點。
在另一種實施例中,虛擬盤包括包含解密主引導記錄的第一部分。虛擬盤進一步包括包含解密程序的第二部分。虛擬盤進一步包括包含虛擬盤鏡像第二部分的第三部分。虛擬盤進一步包括包含虛擬盤第一部分的第四部分。在有些實施例中,虛擬盤的第一部分可以包含用于引導到虛擬盤鏡像中所包含的操作系統(tǒng)中的主引導記錄。一旦至少部分加密的虛擬盤的解密完成,第四部分中的這種主引導記錄就可以用于引導虛擬機。
虛擬盤包括包含存儲空間的第五部分。第五部分的大小大于第二部分的大小。第一部分和第二部分的組合大小小于或等于第四部分的大小。第一部分和第二部分的組合大小小于或等于第四部分的大小。至少部分加密的盤鏡像是通過解密虛擬盤鏡像的第二部分來解密的。至少部分加密的虛·擬盤鏡像進一步通過把解密程序拷貝到虛擬盤的第五部分來解密。至少部分加密的虛擬盤鏡像是通過解密虛擬盤鏡像第一部分的一部分來解密的。
至少部分加密的虛擬盤鏡像進一步通過把虛擬盤鏡像第一部分的解密后的部分拷貝到虛擬盤的第二部分來解密。虛擬盤鏡像進一步通過解密虛擬盤鏡像第一部分的剩余部分來解密。虛擬盤鏡像進一步通過把虛擬盤鏡像第一部分的解密后的剩余部分拷貝到虛擬盤的第一部分來解密。以這種方式執(zhí)行解密可以具有解密可以在任何時間點中斷的優(yōu)點。例如,第五部分可以包含維護解密過程狀態(tài)的數(shù)據文件。
在另一種實施例中,指令的執(zhí)行進一步使處理器在把虛擬盤鏡像第一部分的解密后的剩余部分拷貝到虛擬盤的第一部分之后擦除虛擬盤第四和第五部分中的數(shù)據。
在另一種實施例中,指令的執(zhí)行進一步使虛擬機在解密至少部分加密的虛擬盤鏡像之后重新引導。
以上提到的計算機可讀存儲介質的實施例還提供本發(fā)明的其它方面。例如,根據本發(fā)明的一種實施例,本發(fā)明提供了一種計算機系統(tǒng),該計算機系統(tǒng)包含或包括在計算機可讀存儲介質上包含的機器可讀指令。同樣,機器可執(zhí)行指令的執(zhí)行使處理器執(zhí)行各種步驟或動作,這些步驟或動作也提供方法和計算機實現(xiàn)的方法。計算機可讀存儲介質上的可執(zhí)行指令還提供計算機程序產品和/或計算機系統(tǒng)。
另一方面,本發(fā)明提供了包含虛擬盤的加密虛擬盤計算機可讀存儲介質。虛擬盤包括解密主引導記錄、解密程序和至少部分加密的虛擬盤鏡像。解密程序包括用于根據密碼密鑰解密至少部分加密的虛擬盤的機器可執(zhí)行指令。換句話說,解密程序和密碼密鑰的組合用于解密至少部分加密的虛擬盤鏡像。
解密程序包括機器可執(zhí)行指令,當所述機器可執(zhí)行指令被處理器執(zhí)行時,使處理器接收密碼密鑰。在有些實施例中,密碼密鑰可以被解密程序提示輸入或者密碼密鑰可以由另一個程序傳遞到解密程序。例如,用于運行虛擬計算機系統(tǒng)的虛擬化軟件可以把密碼密鑰傳遞到解密程序。解密程序的機器可執(zhí)行指令的進一步執(zhí)行使處理器根據該密碼密鑰和解密程序解密至少部分加密的虛擬盤鏡像。
在另一種實施例中,虛擬盤包括包含解密主引導記錄的第一部分。虛擬盤進一步包括包含解密程序的第二部分。虛擬盤進一步包括包含虛擬盤鏡像第二部分的第三部分。虛擬盤進一步包括包含虛擬盤第一部分的第四部分。虛擬盤進一步包括包含存儲空間的第五部分。第五部分的大小大于或等于第二部分的大小。第一部分和第二部分的組合大小小于或等于第四部分的大小。
在另一種實施例中,至少部分加密的虛擬盤鏡像是通過解密虛擬盤鏡像的第二部分來解密的。虛擬盤進一步通過把解密程序拷貝到虛擬盤的第五部分來解密。虛擬盤鏡像進一步通過解密虛擬盤鏡像第一部分的一部分來解密。虛擬盤進一步通過把虛擬盤鏡像第一部分的解密后的部分拷貝到虛擬盤的第二部分來解密。虛擬盤進一步通過把虛擬盤鏡像第一部分的解密后的部分拷貝到虛擬盤的第二部分來解密。虛擬盤鏡像進一步通過解密虛擬盤鏡像第一部分的剩余部分來解密。虛擬盤鏡像進一步通過把虛擬盤鏡像第一部分的解密后的剩余部分拷貝到虛擬盤的第一部分來解密。
在另一種實施例中,虛擬盤包含用于存儲至少部分加密的虛擬盤鏡像解密進度的解密狀態(tài)數(shù)據文件。解密程序的機器可執(zhí)行指令的執(zhí)行使處理器在至少部分加密的虛擬盤鏡像的解密過程中更新該解密狀態(tài)數(shù)據文件。解密程序的機器可執(zhí)行指令的執(zhí)行進一步使處理器在開始至少部分加密的虛擬盤鏡像的解密時檢查該解密狀態(tài)數(shù)據文件。通過檢查解密狀態(tài)數(shù)據文件的狀態(tài),如果解密最初被中斷了,解密可以在中間點開始。
在另一種實施例中,指令的執(zhí)行進一步使處理器在把虛擬盤鏡像第一部分的解密后的剩余部分拷貝到虛擬盤的第一部分之后擦除虛擬盤第四和第五部分中的數(shù)據。
在另一種實施例中,指令的執(zhí)行進一步使虛擬機在解密至少部分加密的虛擬盤鏡像之后執(zhí)行解密程序 ,重新引導。
以上提到的計算機可讀存儲介質的實施例還提供了本發(fā)明的其它方面。例如,根據本發(fā)明的一種實施例,本發(fā)明提供了一種計算機系統(tǒng),該計算機系統(tǒng)包含或包括在計算機可讀存儲介質上包含的機器可讀指令。同樣,機器可執(zhí)行指令的執(zhí)行使處理器執(zhí)行各種步驟或動作,這些步驟或動作也提供了方法和計算機實現(xiàn)的方法。計算機可讀存儲介質上的可執(zhí)行指令還提供了計算機程序產品和/或計算機系統(tǒng)。
以下將參考附圖僅僅作為例子更具體地描述本發(fā)明的優(yōu)選實施例,附圖中:
圖1說明了根據本發(fā)明一種實施例的虛擬盤100的解密,
圖2說明了虛擬系統(tǒng)導入過程中解密的例子,
圖3說明了部署過程中虛擬盤鏡像的解密,
圖4a_4e說明了根據本發(fā)明一種實施例、基于塊的虛擬盤鏡像加密的方法,
圖5a_5d說明了在圖4a_4e中加密的虛擬盤鏡像的解密,
圖6示出了說明根據本發(fā)明另一種實施例加密虛擬盤鏡像的方法的流程圖,
圖7示出了說明根據本發(fā)明另一種實施例解密虛擬盤鏡像的方法的流程圖,
圖8示出了說明根據本發(fā)明另一種實施例解密虛擬盤鏡像的方法的流程圖,及
圖9說明了用于加密虛擬盤的第一計算機系統(tǒng)和用于解密虛擬盤的第二計算機系統(tǒng)。
具體實施方式
以下,在這些圖中,相同標號的元件或者是相似的元件或者執(zhí)行等效的功能。如果功能等效,前面討論過的元件在后面的圖中不一定討論。
圖1說明了根據本發(fā)明一種實施例的虛擬盤100的解密。虛擬盤100包括被加密的虛擬盤鏡像102和用于解密虛擬盤鏡像102的解密程序104。圖中還示出了包含用于運行虛擬計算機系統(tǒng)或機器的虛擬化軟件的計算機系統(tǒng)106。圖1中示出了操作人員108和用戶HO。根據本發(fā)明的一種實施例,圖1中所示的圖說明了當使用虛擬盤100時操作人員108和用戶110所采取的動作。圖1中所示的步驟是用于虛擬盤的第一次引導及其解密。步驟I標記為112。在這個步驟中,操作人員108把虛擬盤100存儲在計算機系統(tǒng)106上。在步驟2,114,中,用 戶110利用計算機系統(tǒng)106上的虛擬化軟件引導虛擬機。在步驟3,116,中,解密程序104啟動并從用戶110請求憑證或口令。在步驟4,118,中,用戶110把憑證或口令提供給解密程序104。在步驟5,120,中,解密程序104利用該憑證或口令解密虛擬盤鏡像102。在步驟6,122,中,虛擬機重新引導而且虛擬機從解密后的虛擬盤鏡像102引導。
在根據本發(fā)明一種實施例的虛擬盤100的使用過程中,可能有兩種不同的使用場景。在虛擬盤鏡像102的導入過程中可以有解密或者在虛擬盤鏡像102的部署過程中可以有解密。如果虛擬盤鏡像102是在虛擬系統(tǒng)的導入過程中解密的,則操作人員知道憑證并且把其傳遞給用于管理虛擬系統(tǒng)的一個或多個程序。然后,用于管理虛擬系統(tǒng)的程序導入鏡像并且動態(tài)實時地解密它。對于在部署過程中解密的第二種可能性,操作人員不知道憑證并且沒有解密就請求導入鏡像。虛擬盤鏡像存儲在虛擬系統(tǒng)的數(shù)據庫中,在部署的時候,提示用戶輸入憑證。
圖2示出了虛擬系統(tǒng)導入過程中解密的例子。圖2中所示的是充當虛擬系統(tǒng)鏡像服務器202的計算機系統(tǒng)200。當被操作人員208請求時,虛擬系統(tǒng)鏡像服務器202提供虛擬系統(tǒng)的鏡像。計算機系統(tǒng)200還存儲的或者能夠被其訪問的是虛擬盤儲存庫204,這個儲存庫204是可以經虛擬系統(tǒng)鏡像服務器202訪問的虛擬盤的儲存庫。還有等效于圖1中所示解密程序104的解密模塊206。在步驟I中,操作人員208下載虛擬盤。在步驟2,212,中,操作人員請求把虛擬盤導入由虛擬系統(tǒng)鏡像服務器202管理的系統(tǒng)中。在步驟3,214,中,虛擬系統(tǒng)鏡像服務器202從操作人員208請求憑證或口令。在步驟4,216,中,操作人員把憑證或口令提供給虛擬系統(tǒng)鏡像服務器202。在步驟5中,虛擬系統(tǒng)鏡像服務器202從虛擬盤導入虛擬盤鏡像并且利用操作人員208提供的憑證或口令動態(tài)實時地解密虛擬盤鏡像。圖3說明了部署過程中虛擬盤鏡像的解密。這個圖中所示出的是具有虛擬系統(tǒng)鏡像服務器202的計算機系統(tǒng)200,其中虛擬系統(tǒng)鏡像服務器202管理存儲在虛擬盤儲存庫204中的虛擬盤鏡像。在圖3所示的例子中,還有第二計算機系統(tǒng)300,該計算機系統(tǒng)300用于在虛擬盤鏡像的部署過程中解密。第二計算機系統(tǒng)300是為了運行目標虛擬系統(tǒng)302。在目標系統(tǒng)302中的是操作系統(tǒng)部署工具301。提供操作系統(tǒng)部署工具301是為了部署虛擬盤鏡像中的虛擬系統(tǒng)。在目標虛擬系統(tǒng)中還有解密模塊303。該解密模塊是用于利用口令或解密憑證解密虛擬盤鏡像的軟件模塊或解密程序。示出了操作人員304和用戶306。在由標號308指示的第一步驟I中,操作人員304請求或觸發(fā)虛擬系統(tǒng)在第二計算機系統(tǒng)300上的部署。在第二步驟2 (由標號310指示)中,目標或虛擬系統(tǒng)在操作系統(tǒng)部署工具301上引導。在第三步驟3 (由標號312指示)中,操作系統(tǒng)部署工具301從用戶306請求密碼口令或憑證。在第四步驟4 (由標號314指示)中,用戶306把密碼口令或憑證提供給操作系統(tǒng)部署工具301。在第五步驟5 (也稱為316)中,操作工具利用該密碼口令或憑證和解密模塊303下載并解密虛擬盤鏡像。在步驟6 (也稱為318)中,在虛擬盤鏡像解密之后,虛擬系統(tǒng)的部署在解密后的虛擬盤鏡像上繼續(xù)。圖4a至4e說明了根據本發(fā)明一種實施例、基于塊的虛擬盤鏡像加密的方法。在圖4a中,示出了虛擬盤400 和虛擬盤鏡像402。構成虛擬盤鏡像的塊標記為l_n。為了加密虛擬盤鏡像,接下來用戶啟動加密工具或程序。在第一步驟中,解密工具增加虛擬盤的大小。這在圖4b中說明。在虛擬盤400的末尾,創(chuàng)建空操作系統(tǒng)塊404的區(qū)域。在下一步驟中,虛擬盤鏡像被分成第一部分406和第二部分408。虛擬盤鏡像的第一部分406拷貝到位于虛擬盤400末尾的空操作系統(tǒng)塊404。在圖4d中,顯示加密工具把解密主引導記錄410和解密程序412拷貝到虛擬盤400的第一部分和第二部分。圖4e說明了最后一步驟。加密工具或軟件加密虛擬盤鏡像的第一部分406’并且加密虛擬盤鏡像的第二部分408’。加密后的虛擬盤鏡像406’、408’的全部塊都可以被加密或者塊可以有選擇地加密。在圖4e中,還顯示虛擬盤400被分成五個部分。虛擬盤的第一部分414包含解密主引導記錄410。虛擬盤的第二部分416包含解密程序412。虛擬盤的第三部分418包含虛擬盤鏡像加密后的第二部分408’。虛擬盤的第四部分420包含虛擬盤鏡像加密后的第一部分406’。虛擬盤的第五部分422在虛擬盤400的末尾。在各種實施例中,第五部分422可以包含記錄解密狀態(tài)的數(shù)據、日志數(shù)據、解密中所使用的臨時數(shù)據,及其組合。圖5a_5d說明了當從虛擬機引導時虛擬盤400的虛擬盤鏡像406’、408’的解密。圖5a與圖4e完全相同。在第一步驟中,虛擬機在虛擬盤400上引導并且引導到虛擬盤主引導記錄410中。接下來,主引導記錄410加載解密程序412。然后,解密程序412請求用于解密加密的虛擬盤鏡像406’、408’的密碼憑證或口令。在圖5b中,說明了解密過程。示出了虛擬盤400的兩個不同視圖。標記為500的塊是虛擬盤鏡像第二部分的解密后的塊。標記為502的塊是虛擬盤鏡像第二部分的加密后的塊。在圖5b中所示的頂部視圖中,只有標記為4的塊是解密后的塊500。虛擬盤鏡像第二部分的剩余部分都是加密的。圖5b的底部部分顯示虛擬盤鏡像第二部分408的所有塊都是解密后的塊500。
圖5c示出了解密虛擬盤400過程中的進一步的進度。在虛擬盤鏡像的第二部分408的所有塊都解密之后,解密程序412拷貝到虛擬盤的第五部分422。接下來,虛擬盤鏡像第一部分406’的一部分被解密并拷貝到虛擬盤的第二部分416。虛擬盤鏡像第一部分406’的剩余部分506被解密并拷貝到虛擬盤的第一部分414。在這種實施例中,虛擬盤鏡像第一部分的剩余部分506重寫了主引導記錄410。虛擬盤鏡像加密的第一部分406’和解密程序412可以被重寫,留下空操作系統(tǒng)塊404。5d中所示的圖與圖4b中所示的圖等效。這顯示圖5中所說明的方法如何用于解密虛擬盤400的至少部分加密的虛擬盤鏡像402。
圖6示出了說明加密根據本發(fā)明的虛擬盤的一種實施例的流程圖。在步驟600中,接收虛擬盤。虛擬盤包括虛擬 盤鏡像。在步驟602中,增加虛擬盤的大小。在步驟604中,解密主引導記錄和解密程序寫到虛擬盤。在步驟606中,加密虛擬盤鏡像的至少一部分。
圖7示出了說明根據本發(fā)明一種實施例解密虛擬盤的方法的流程圖。在步驟700中,接收加密的虛擬盤。在步驟702中,利用虛擬盤上所包含的解密主引導記錄引導虛擬機。在步驟704中,接收密碼密鑰。虛擬盤包括至少部分加密的虛擬盤。在步驟706中,至少部分加密的虛擬盤是利用虛擬盤上的解密程序解密的。解密程序使用密碼密鑰來利用解密程序解密,用于執(zhí)行至少部分加密的虛擬盤的解密。
圖8示出了說明根據本發(fā)明另一種實施例解密加密的虛擬盤的方法的流程圖。在步驟800中,接收加密的虛擬盤。在步驟802中,利用解密主引導記錄引導虛擬機。在步驟804中,接收密碼密鑰。在步驟806中,虛擬盤鏡像的第二部分利用該密碼密鑰和位于虛擬盤上的解密程序來解密。在步驟808中,解密程序拷貝到虛擬盤的第五部分。在步驟810中,解密虛擬盤鏡像第一部分的一部分。在步驟812中,虛擬盤鏡像第一部分的解密后的部分拷貝到虛擬盤的第二部分。在步驟814中,解密虛擬盤鏡像第一部分的剩余部分。在步驟816中,虛擬盤鏡像第一部分的解密后的剩余部分拷貝到虛擬盤的第一部分。在步驟818中,虛擬機重新引導。圖8中所說明的方法與圖5所說明的方法類似。
圖9示出了兩個計算機系統(tǒng),用于加密虛擬盤的第一計算機系統(tǒng)900和用于解密虛擬盤的第二計算機系統(tǒng)902。在第一計算機系統(tǒng)900和第二計算機系統(tǒng)902之間有網絡通信904。第一計算機系統(tǒng)900具有用于連接到計算機網絡904的網絡接口 906而第二計算機系統(tǒng)902具有用于連接到計算機網絡904的網絡接口 908。網絡連接904可以是任何標準的計算機接口,例如以太網連接或互聯(lián)網連接。第一計算機系統(tǒng)900具有連接到用戶接口 912和網絡接口 906的處理器910。處理器910還連接到計算機儲存器914和計算機內存916。
計算機儲存器914中是未加密的虛擬盤918。未加密的虛擬盤包含未加密的虛擬盤鏡像。在計算機儲存器914中還有解密主引導記錄920。在計算機儲存器914中還有解密程序922。在計算機儲存器914中還有加密的虛擬盤924。加密的虛擬盤924包含解密主引導記錄920、解密程序922和至少部分加密的虛擬盤鏡像923。加密的虛擬盤924還可以包含至少部分加密的虛擬盤鏡像。計算機內存916包含加密工具926。加密工具926是包含機器可執(zhí)行指令的軟件模塊或程序,所述機器可執(zhí)行指令使處理器910利用未加密的虛擬盤918、解密主引導記錄920和解密程序922創(chuàng)建加密的虛擬盤924。加密工具926可以用于實現(xiàn)圖4和6中所說明的方法。在有些實施例中,計算機內存916還可以包含密碼模塊928和密碼憑證生成模塊930。密碼模塊928用于加密未加密的虛擬盤918。密碼憑證生成模塊930是一個可選模塊而且可以用于生成密碼憑證。例如,密碼憑證生成模塊可以用于生成用于不對稱加密算法的密碼密鑰對。第二計算機系統(tǒng)902還包含處理器932。處理器932連接到網絡接口 908和用戶接口 934。處理器932還連接到計算機儲存器936和計算機內存938。計算機儲存器936包含來自第一計算機系統(tǒng)900的加密的虛擬盤924。在這種實施例中,網絡連接904用于傳輸加密的虛擬盤924。在計算機儲存器936中還有加密密碼密鑰944。計算機內存938包含虛擬化模塊942。虛擬化模塊942允許處理器932運行并操作虛擬計算機系統(tǒng)。如能夠看出的,解密加密的虛擬盤924全部所需的就是虛擬化模塊942和密碼密鑰944。這個圖還說明終端用戶如何能夠在沒有操作人員幫助的情況下解密加密的虛擬盤924。標號列表
權利要求
1.一種包含機器可執(zhí)行指令的計算機可讀存儲介質(916),當所述機器可執(zhí)行指令被處理器執(zhí)行時,使處理器加密虛擬盤;其中該虛擬盤包括虛擬盤鏡像;而且其中機器可執(zhí)行指令的執(zhí)行使處理器: -接收(600)虛擬盤; -增加(602)虛擬盤的大?。? -把解密主引導記錄和解密程序寫(604)到虛擬盤; -加密(606)虛擬盤鏡像的至少一部分,其中解密程序包括用于根據密碼密鑰(944)解密至少部分加密的虛擬盤鏡像的解密機器可執(zhí)行指令。
2.如權利要求1所述的計算機可讀存儲介質,其中虛擬盤鏡像被分成第一部分(406)和第二部分(408),其中虛擬盤鏡像的第二部分存儲在虛擬盤的第三部分(418)中,其中指令的執(zhí)行進一步使處理器把虛擬盤鏡像的第一部分拷貝到虛擬盤的第四部分(420);其中解密主引導記錄寫到虛擬盤的第一部分(414),其中解密程序寫到虛擬盤的第二部分(416),其中虛擬盤鏡像的第一部分是從虛擬盤的第一部分和第二部分拷貝的;其中指令的執(zhí)行進一步使處理器至少部分地加密虛擬盤的第一(406’)和第二(408’)部分,其中虛擬盤的大小增加到創(chuàng)建虛擬盤的第四部分和虛擬盤的第五部分(422),其中第五部分的大小大于第二部分的大小,而且其中第一部分和第二部分的組合大小小于或等于第四部分的大小。
3.如權利要求1或2所述的計算機可讀存儲介質,其中虛擬盤鏡像的第一部分是一起加密的和/或其中虛擬盤鏡像的第二部分是一起加密的。
4.如權利要求1或2所述的計算機可讀存儲介質,其中虛擬盤鏡像被分成塊,其中塊是根據預定的塊加密列表有選擇地加密的。
5.如前面權利要求1、2或4所述的計算機可讀存儲介質,其中虛擬盤鏡像被分成塊,其中指令的執(zhí)行使處理器檢查每個塊并且創(chuàng)建未使用塊的列表,而且其中只有在未使用塊列表中沒有找到特定塊的時候才加密它們。
6.—種包含機器可執(zhí)行指令的計算機可讀存儲介質(938),當所述機器可執(zhí)行指令被處理器執(zhí)行時,使處理器解密加密的虛擬盤;其中該虛擬盤包括:解密主引導記錄、解密程序和至少部分加密的虛擬盤鏡像;其中解密程序包括用于根據密碼密鑰(944)解密至少部分加密的虛擬盤鏡像的解密機器可執(zhí)行指令,其中機器可執(zhí)行指令的執(zhí)行使處理器: -接收(700、800)加密的虛擬盤; -利用解密主引導記 錄引導(702、802)虛擬機; -接收(118、216、314、704、804)密碼密鑰; -根據密碼密鑰和解密程序解密(120、218、316、706、806、808、810、812、814、816、818)至少部分加密的虛擬盤鏡像。
7.如權利要求6所述的計算機可讀存儲介質,其中至少部分加密的虛擬盤鏡像的解密是在虛擬機的部署過程中執(zhí)行的。
8.如權利要求6或7所述的計算機可讀存儲介質,其中虛擬盤包括包含解密主引導記錄的第一部分、包含解密程序的第二部分、包含虛擬盤鏡像第二部分的第三部分、包含虛擬盤第一部分的第四部分和包含存儲空間的第五部分,其中第五部分的大小大于或等于第二部分的大小,其中第一部分和第二部分的組合大小小于或等于第四部分的大小,其中至少部分加密的虛擬盤鏡像是通過以下解密的: -解密(806)虛擬盤鏡像的第二部分; -把解密程序拷貝(808)到虛擬盤的第五部分; -解密(810)虛擬盤鏡像第一部分的一部分; -把虛擬盤鏡像第一部分的解密后的部分拷貝(812)到虛擬盤的第二部分; -解密(814)虛擬盤鏡像第一部分的剩余部分;及 -把虛擬盤鏡像第一部分的解密后的剩余部分拷貝(816)到虛擬盤的第一部分。
9.如權利要求8所述的計算機可讀存儲介質,其中指令的執(zhí)行進一步使處理器在把虛擬盤鏡像第一部分的解密后的剩余部分拷貝到虛擬盤的第一部分之后擦除虛擬盤第四部分和第五部分中的數(shù)據。
10.如權利要求6至9中任何一項所述的計算機可讀存儲介質,其中指令的執(zhí)行進一步使虛擬機在解密至少部分加密的虛擬盤鏡像之后重新引導。
11.一種包含虛擬盤(924)的加密虛擬盤計算機可讀存儲介質(914、936);其中虛擬盤包括:解密主引導記錄(414)、解密程序(416)和至少部分加密的虛擬盤鏡像(406’、408’、923);其中解密程序包括用于根據密碼密鑰(944)解密至少部分加密的虛擬盤鏡像的機器可執(zhí)行指令;其中解密程序包括機器可執(zhí)行指令,當所述機器可執(zhí)行指令被處理器(932)執(zhí)行時,使處理器: -接收(118、216、314、704、804)密碼密鑰; -根據該密碼密鑰和解密程序解密(120、218、316、706、806、808、810、812、814、816)至少部分加密的虛擬盤鏡像。
12.如權利要求11所述的虛擬盤計算機可讀存儲介質,其中虛擬盤包括: -第一部分(414),包含解密主引導記錄; -第二部分(416),包含解密程序; -第三部分(418 ),包含虛擬盤鏡像的第二部分(408 ’); -第四部分(420 ),包含虛擬盤鏡像的第一部分(406 ’);及 -第五部分(422),包含存儲空間,其中第五部分的大小大于或等于第二部分的大小,其中第一部分和第二部分的組合大小小于或等于第四部分的大小。
13.如權利要求12所述的虛擬盤計算機可讀存儲介質,其中至少部分加密的虛擬盤鏡像是通過以下解密的: -解密(806)虛擬盤鏡像的第二部分; -把解密程序拷貝(808)到虛擬盤的第五部分; -解密(810)虛擬盤鏡像第一部分的一部分(504); -把虛擬盤鏡像第一部分的解密后的部分拷貝(812)到虛擬盤的第二部分; -解密(814)虛擬盤鏡像第一部分的剩余部分;及 -把虛擬盤鏡像第一部分的解密后的剩余部分(506)拷貝(816)到虛擬盤的第一部分。
14.如權利要求11或13所述的虛擬盤計算機可讀存儲介質,其中虛擬盤包含用于存儲至少部分加密的虛擬盤鏡像解密進度的解密狀態(tài)數(shù)據文件,其中解密程序的機器可執(zhí)行指令的執(zhí)行進一步使處理器: -在至少部分加密的虛擬盤鏡像解密的過程中更新該解密狀態(tài)數(shù)據文件;及-當開始至少部分加密的虛擬盤鏡像的解密時,檢查該解密狀態(tài)數(shù)據文件。
15.一種用于加密包括虛擬盤鏡像的虛擬盤的方法,該方法包括: -接收(600)虛擬盤; -增加(602)虛擬盤的大??; -把解密主引導記錄和解密程序寫(604)到虛擬盤; -加密(606)虛擬盤鏡像的至少一部分,其中提供解密程序來根據密碼密鑰(944)解密至少部分加密的虛擬盤鏡像。 ·
全文摘要
本公開涉及用于加密和解密虛擬盤的計算機可讀存儲介質。一種包含機器可執(zhí)行指令的計算機可讀存儲介質(916),當所述機器可執(zhí)行指令被處理器執(zhí)行時,使處理器加密虛擬盤;其中該虛擬盤包括虛擬盤鏡像;而且其中機器可執(zhí)行指令的執(zhí)行使處理器接收(600)虛擬盤;增加(602)虛擬盤的大??;把解密主引導記錄和解密程序寫(604)到虛擬盤;加密(606)虛擬盤鏡像的至少一部分,其中解密程序包括用于根據密碼密鑰(944)解密至少部分加密的虛擬盤鏡像的解密機器可執(zhí)行指令。
文檔編號G06F21/80GK103250163SQ201180059216
公開日2013年8月14日 申請日期2011年11月3日 優(yōu)先權日2010年12月9日
發(fā)明者J·方迪格尼耶, C·馬里內利, M·武勒米爾斯圖克爾伯格, L·皮切蒂 申請人:國際商業(yè)機器公司