通過虛擬機進行安全數據處理的制作方法
【技術領域】
[0001]本發明涉及運行虛擬機。本發明還涉及將密鑰發給虛擬機實例。
【背景技術】
[0002]最近,云計算已經變成重要的范式。在云計算中,計算資源可以被出租作為商品。在典型的云計算模型中,云提供商提供運行在物理服務器上的虛擬服務器。這里,虛擬服務器可以向遠程用戶提供與物理服務器相似的功能。多個虛擬服務器可以運行在單個物理服務器上,使得可以需要更少的物理服務器。服務提供商可以提供一個或多個虛擬機映像,所述一個或多個虛擬機映像可以在云服務器上作為一個或多個虛擬機實例運行。
[0003]對于云計算而言數據保護是重要的。加密對保障數據保護潛在地起著重要作用。例如,在虛擬機的文件系統的頂部上可以運行加密的文件系統。此外,由美國華盛頓西雅圖的亞馬遜網絡服務提供的亞馬遜S3提供服務器端加密(SSE)以使得虛擬機能夠以加密的形式存儲數據。
[0004]磁盤鏡像加密是目的在于保護靜態數據的技術,靜態即當關閉系統電源并且攻擊者以某種方法訪問其磁盤或其他外部存儲設備時,這通常被稱為‘離線攻擊’。類似的攻擊能夠在虛擬機(VM)上被執行,其中一個重要的差異是:其能夠甚至在沒有對系統的物理訪問的情況下被執行。如果攻擊者設法使虛擬化主機或管理程序(本地或遠程)讓步,則他們之后能夠繼續進行以攻擊其VM客戶。調用基于內核的虛擬機(Linux KVM)的系統使得系統管理員能夠通過對客戶磁盤鏡像進行加密,并且要求加密密碼或密鑰來啟動他們來保護沒有運行的客戶。
[0005]Porticor虛擬私有數據系統(以色列,哈薩隆,Porticor LTD)采用同態分裂密鑰加密技術,在同態分裂密鑰加密技術中,利用唯一密鑰來對諸如磁盤或文件的每個數據對象進行加密,唯一密鑰被分裂成兩個:主密鑰和特定密鑰。主密鑰對于所有數據對象而言是共同的,并且保持應用程序擁有者的占有;而第二特定密鑰對于每個數據對象而言是不同的,并且由虛擬密鑰管理服務存儲。當應用程序訪問數據存儲時,密鑰的兩部分被用于對數據動態地進行加密或解密。
[0006]US 2010/0211782 Al公開了提供網絡數據服務的數字托管模式,所述數字托管模式包括存儲在云中的數據的可搜索加密技術,將信任分布在多個實體中以避免單點數據讓步。在一個實施例中,密鑰生成器、加密技術提供商和云服務提供商每個被提供為單獨的實體,使得數據發布者能夠將數據秘密地發布給云服務提供商,并且然后基于響應于諸如訂閱者的角色的訂閱者的請求生成的密鑰信息中編碼的訂閱者身份信息而將加密的數據選擇性地暴露給請求所述數據的訂閱者。
[0007]US 2011/0296201 Al公開了被配置為提供在虛擬化服務器上可信地運行虛擬機(VM)的方法和裝置,例如,用于在虛擬化服務器上運行VM的方法和裝置。物理多核CPU可以被配置具有硬件信任錨。信任錨自身可以被配置為當在CPU核中的一個上運行VM (或管理程序)時管理用于對指令和數據進行加密/解密的會話密鑰。當由于例外而發生上下文切換時,信任錨將用于對存儲器的內容進行加密/解密的會話密鑰與分配到VM(或管理程序)的緩存進行交換。
【發明內容】
[0008]具有對虛擬機實例的改進的處置將是有利的。為了更好地解決該關注問題,本發明的第一方面提供了一種包括用于創建虛擬機實例的運行環境的系統,所述系統包括:
[0009]實例授權單元,其用于接收實例授權證書,其中,所述實例授權證書唯一地與所述虛擬機實例相關聯;
[0010]數據密鑰單元,其用于基于與所述虛擬機實例相關聯的所述實例授權證書來生成針對數據密鑰的請求;以及
[0011]解密單元,其用于基于所述數據密鑰來對數據項進行解密。
[0012]所述實例授權證書向虛擬機實例提供識別自身的方式,因為所述實例授權證書唯一地與所述虛擬機實例相關聯。通過這種方式,針對所述數據密鑰的所述請求能夠被認為來源于所述虛擬機實例,并且通過這種方式,在可以將數據密鑰發給所述虛擬機實例時可以基于所述請求來確定所述虛擬機實例外部的實體,并且,例如,可以將多個可用數據密鑰中的哪個數據密鑰發給所述虛擬機實例。
[0013]所述虛擬機實例還可以包括用戶證書單元,所述用戶證書單元用于獲得與用戶或用戶組相關聯的用戶證書。通過這種方式,所述虛擬機實例具有與所述虛擬機實例相關聯的實例授權證書以及與用戶或用戶組相關聯的用戶證書兩者。所述數據密鑰單元可以被布置用于還基于所述用戶證書來生成所述請求。這允許所述請求的接收者識別所述虛擬機實例和用戶兩者,使得所述請求的接收者可以基于兩個實體來確定是否提供特定的數據密鑰。備選地,所述解密單元可以被布置用于還基于所述用戶證書來對數據項進行解密。通過這種方式,所述用戶證書可以與所述數據密鑰結合使用以對所述數據進行解密。通過任一種方式,所述虛擬機實例需要所述用戶證書和所述實例授權證書兩者來獲得對其未加密形式的數據項的訪問。
[0014]所述實例授權單元可以被布置用于發出針對所述實例授權證書的請求,其中,所述請求指示特定于所述虛擬機實例的至少一個屬性。這允許所述虛擬機實例主動地請求實例授權證書。所述至少一個屬性例如可以是一起唯一地識別所述虛擬機實例的屬性集。
[0015]所述系統還可以包括實例擁有者單元,所述實例擁有者單元用于在密鑰服務器處注冊與所述虛擬機實例相關聯的授權代碼并且將所述授權代碼提供給所述虛擬機實例;其中,所述至少一個屬性包括所述授權代碼。這允許擁有者單元控制所述虛擬機實例的解密能力。
[0016]所述實例擁有者單元可以被布置用于將包括所述授權代碼的指令發送到虛擬機的運行環境。所述運行環境可以被布置用于響應于接收到所述指令而創建所述虛擬機實例并且將所述授權代碼提供給所述虛擬機實例。這允許實例擁有者使所述運行環境創建具有與所述授權代碼相關聯的解密能力的虛擬機實例。
[0017]所述實例擁有者單元和所述運行環境可以被實施在借助于網絡連接的兩個單獨的硬件實體上。所述系統允許通過控制被提供給所述虛擬機實例的所述授權代碼和/或發給所述虛擬機實例的所述數據密鑰改進虛擬機實例中的信任,所述虛擬機實例由來自遠程位置的實例擁有者單元經由網絡來操作。
[0018]所述數據密鑰單元可以被布置用于在針對所述數據密鑰的所述請求中包括指示所述請求在由所述虛擬機實例發出的請求序列中的位置的代碼。這允許檢測對虛擬機實例的非法復制,因為當兩個虛擬機實例使用相同的實例授權證書時,這可以通過指示所述請求在由所述虛擬機實例發出的所述請求序列中的位置的代碼來披露。具體而言,可以檢測到在后續請求中未嚴格遞增的位置。
[0019]所述虛擬機實例可以被布置用于將所述數據密鑰和使用所述數據密鑰解密的數據保持在易失性存儲器中,和/或在使用之后擦除所述數據密鑰和使用所述數據密鑰解密的所述數據。這防止將所述數據密鑰和/或所述數據項存儲在永久存儲器上和/或存在于長于必要的持續時間的存儲器中。
[0020]在本發明的另一方面中,提供了一種用于將密鑰發給虛擬機實例的密鑰服務器系統,所述密鑰服務器系統包括
[0021]實例識別單元,其用于基于特定于虛擬機實例的至少一個屬性來識別所述虛擬機實例;
[0022]實例授權確定器,其用于確定實例授權證書,并且將所述實例授權證書唯一地與所述虛擬機實例相關聯;
[0023]實例授權提供單元,其用于將所述實例授權證書提供給所述虛擬機實例;
[0024]數據密鑰請求接收器,其用于接收來自所述虛擬機實例的針對數據密鑰的請求,其中,針對所述數據密鑰的所述請求包括與所述實例授權證書相關聯的實例授權部件;
[0025]數據授權單元,其用于基于所述實例授權部件來確定所述虛擬機實例是否被授權以接收所述數據密鑰;以及
[0026]數據密鑰提供單元,其用于在所述虛擬機實例被授權以接收所述數據密鑰時將所述數據密鑰提供給所述虛擬機實例。
[0027]所述密鑰服務器系統可以控制數據密鑰到虛擬機實例的分配。由于特定于所述虛擬機實例的所述屬性,以及唯一地與所述虛擬機實例相關聯的實例授權證書的后續發行,對所述虛擬機實例的所述認證以及所述授權處理變得更加安全。此外,可以致使‘非法’虛擬機實例變得無用,因為它們不可以被給予實例授權證書,使得它們不能夠生成針對數據密鑰的有效請求。所述數據授權單元可以使用一個或多個策略來確定虛擬機實例是否被授權以接收數據密鑰。這樣的策略可以指示什么被允許以及什么不被允許,這樣的策略可以是靜態的或動態的并且可以取決于數據的性質、前述屬性以及在其他地方提到的相關聯的用戶和/或位置。所述至少一個屬性例如可以是一起唯一地識別所述虛擬機實例的屬性集。
[0028]所述密鑰服務器系統還可以包括:實例證書請求接收器,其用于接收來自所述虛擬機實例的針對所述實例授權證書的請求,其中,所述請求指示特定于所述虛擬機實例的屬性;以及實例驗證單元,其用于基于所述屬性來核實所述虛擬機實例的有效性。這允許所述虛擬機實例自身請求所述虛擬機實例授權證書。使用特定于所述虛擬機實例的所述屬性,能夠將所述虛擬機實例識別給所述密鑰服務器系統。
[0029]所述實例驗證單元可以被布置用于還基于指示所述虛擬機實例的位置的屬性來執行對所述虛擬機實例的所述有效性的所述核實,或者所述數據授權單元被布置用于還基于所述虛擬機實例的位置來執行對所述虛擬機實例是否被授權以接收所述數據密鑰的確定。這允許監測所述虛擬機實例的位置,并且拒絕將所述實例授權證書或所述數據密鑰給予沒有在合適位置處的虛擬機實例。虛擬機實例的位置例如可以是包括處理器和/或存儲器和/或存儲設備的物理設備的位置,在所述物理設備上運行所述虛擬機實例。
[0030]針對所述數據密鑰的所述請求還可以指示與所述虛擬機實例的用戶或用戶組相關聯的用戶證書。所述數據授權單元可以被布置用于還基于關于針對所述數據密鑰的所述請求接收的所述用戶證書的指示和通過所述數據密鑰保護的所述數據的訪問策略,來執行對所述虛擬機實例是否被授權以接收所述數據密鑰的所述確定。通過這種方式,僅僅將所述數據密鑰提供給授權的虛擬機實例,并且僅在所述虛擬機實例具有合適的用戶證書的占有的情況下。
[0031]所述密鑰服務器系統可以包括記錄單元,其用于記錄與涉及授權請求、證書和/或數據密鑰的通信有關的信息。例如,這樣的記錄信息可以被用于執行對過去事件的分析,以檢測指示例如濫用的任何可能模式。
[0032]在另一方面中,本發明提供了一種能夠被實例化為虛擬機實例的虛擬機映像,其中,所述虛擬機映像包括:
[0033]用于令所述虛擬機實例接