。
[0177]具體地,第二密鑰K2可以保存在所述主機的身份認證和密鑰管理域VMO的密鑰管理模塊中。
[0178]進一步地,對于VM啟動后用戶注銷或者用戶界面鎖屏時,用戶需要再次申請登錄VM的場景,云終端與VM之間需要再次進行身份認證。該場景下的身份認證方法也可以采用上述圖3所示的實施例二的身份認證方法,這時,主機的身份認證模塊還需要先獲得云終端向虛擬機發(fā)送的登錄請求,從而進行身份認證。具體地,根據(jù)主機的部署方式的不同,如何獲得云終端向虛擬機發(fā)送的登錄請求可以有以下兩種實現(xiàn)方式。
[0179]在第一種方式中,主機上的每個虛擬機中配置了身份認證請求捕獲模塊,因此,在所述主機的身份認證模塊接收云終端發(fā)送智能卡中的第一密鑰Kl之前,還包括:
[0180]步驟一、所述主機上的虛擬機接收所述云終端發(fā)送的登錄請求;
[0181]步驟二、所述虛擬機將所述登錄請求轉(zhuǎn)發(fā)給所述主機的身份認證模塊。
[0182]具體地,由于每個虛擬機中都配置了身份認證請求捕獲模塊,因此,虛擬機在接收到登錄請求后,身份認證請求捕獲模塊即可獲得登錄請求,并可直接將該登錄請求轉(zhuǎn)發(fā)給所述主機的身份認證模塊。
[0183]在第二種方式中,主機的VMM層中配置身份認證請求捕獲模塊,用于對網(wǎng)絡信息進行分析以捕獲登錄請求,而不在每個虛擬機中配置了身份認證請求捕獲模塊,因此,在所述主機的身份認證模塊接收云終端發(fā)送智能卡中的第一密鑰Kl之前,還包括:
[0184]步驟一、所述主機上的虛擬機接收所述云終端發(fā)送的登錄請求;
[0185]步驟二、所述主機的身份認證請求捕獲模塊捕獲所述登錄請求,并將所述登錄請求轉(zhuǎn)發(fā)給所述主機的身份認證模塊。
[0186]具體地,云終端發(fā)送的登錄請求中包含用戶相關信息和請求服務信息,如連接類型、連接線路、連接方法、數(shù)據(jù)傳輸協(xié)議等,主機的VMM層中的身份認證請求捕獲模塊對網(wǎng)絡數(shù)據(jù)進行分析,當發(fā)現(xiàn)云終端請求登錄該主機上的某個VM時(即捕獲到云終端發(fā)送的登錄請求),將所述登錄請求轉(zhuǎn)發(fā)給主機的身份認證模塊。
[0187]進一步地,在上述實施例的基礎上,當所述主機的身份認證模塊確定所述云終端通過認證時,向所述云終端發(fā)送經(jīng)過所述第一組合密鑰加密的所述第二隨機數(shù)N2,以使所述云終端根據(jù)所述第二隨機數(shù)N2的正確性確定所述第二密鑰K2對應的虛擬機是否通過認證之后,還包括:
[0188]所述主機接收所述云終端發(fā)送的所述K2對應的虛擬機通過認證的消息,然后采用所述第一組合密鑰解密所述虛擬機鏡像,并啟動所述虛擬機。
[0189]具體地,可以由主機的VMM層采用所述第一組合密鑰解密所述虛擬機鏡像,并啟動所述虛擬機。
[0190]進一步地,在所述主機采用所述第一組合密鑰解密所述虛擬機鏡像,并啟動所述虛擬機之后,還包括:
[0191]所述主機采用所述第一組合密鑰加密所述虛擬機鏡像,并關閉所述虛擬機。
[0192]具體地,可以由主機的VMM層采用所述第一組合密鑰加密所述虛擬機鏡像,并關閉所述虛擬機。
[0193]下次用戶使用VM時需要用第一組合密鑰對鏡像進行解密,才能啟動所述虛擬機,這樣,通過組合密鑰對VM鏡像加解密,增強了 VM的安全性。因為VM關閉后,如果有人想惡意啟動VM鏡像,那必須首先解密VM鏡像,但是解密需要的第一組合密鑰,非法用戶幾乎不可能同時獲取Kl和K2。
[0194]進一步地,在另一個實施例中,還可以包括:所述主機根據(jù)虛擬機鏡像的標志位確定所述虛擬機當前是否處于加密狀態(tài)。
[0195]下面采用云終端(代表用戶)、USB Key管理裝置(代表USB Key管理員)、云認證服務器、云管理服務器和主機交互的具體的實施例,對本發(fā)明身份認證方法的技術方案進行詳細說明。
[0196]本發(fā)明的技術方案中,雙向身份認證和VM鏡像加解密采用USB Key和TPM的組合對稱密鑰,該組合密鑰一部分來自USB Key,一部分來自云管理服務器的TPM,在介紹身份認證流程前,首先介紹一下這兩部分密鑰。用戶的VM在成功創(chuàng)建后,云認證服務器會通過USBKey管理員,把數(shù)字證書的公鑰及私鑰頒發(fā)給用戶,并寫入USB Key中,此外,USB Key會產(chǎn)生一個對稱密鑰,即第一密鑰Kl,Kl只在USB Key中保存。同時,在云管理服務器自帶的TPM芯片會產(chǎn)生一個對稱密鑰,即第二密鑰K2,并用TPM的存儲根密鑰(Storage Root Key,簡稱:SRK)進行加密后存入密鑰信息表中,第二密鑰K2與所創(chuàng)建的VM —一對應。
[0197]其中,對稱密鑰是密鑰的類型,是指加密和解密算法中所用的密鑰相同。
[0198]云管理服務器生成VM鏡像時,可以在用戶VM鏡像的分區(qū)表中設置一個標志位,通過該標志位能夠判斷出該VM鏡像是處于加密還是解密狀態(tài)。由云管理服務器首次下發(fā)到主機上的VM鏡像是未經(jīng)過加密的,系統(tǒng)可以提示用戶,建議用戶在關機進行加密,以保證VM鏡像的安全性。
[0199]此外,還可以在用戶VM所運行的主機上配置身份認證和密鑰管理域VMO,VMO是運行在主機上的一個專門用于管理組合密鑰和進行身份認證的虛擬機,并且可以通過可信計算及虛擬機加密及隔離等技術確保其安全性。這樣,密鑰管理和身份認證均由該獨立于用戶VM的VMO來完成,一個主機只需要一個VMO來負責對該主機上所有的VM的身份認證,便于部署,且安全性高。
[0200]本發(fā)明實施例中,用戶申請USB Key并通過云終端登錄虛擬機的總體流程如下:
[0201]USB Key管理裝置向云認證服務器發(fā)送證書申請;云認證服務器向USB Key管理裝置頒發(fā)證書和第一密鑰Kl ;USB Key管理裝置向用戶頒發(fā)USB Key ;用戶通過云終端向云認證服務器申請身份認證;認證通過后云認證服務器向云終端返回VM列表,以供用戶選擇所要使用的VM ;用戶選擇一臺VM進行登錄,云認證服務器通知云管理服務器將用戶選擇的VM鏡像下發(fā)到一個主機上,同時云管理服務器在密鑰信息表中查找該VM對應的第二密鑰K2,云管理服務器中的密鑰遷移模塊將其通過安全通道遷移到主機的身份認證和密鑰管理域(VMO )中,并用主機上的TPM保護該密鑰。
[0202]上述用戶通過云終端登錄虛擬機的總體流程可以總結(jié)為包括兩個部分:第一部分、用戶利用數(shù)字證書在云認證服務器進行身份認證;第二部分、用戶與VM進行雙向身份認證。
[0203]在第一部分中,本發(fā)明設置了一個專門的云認證服務器來完成用戶證書的頒發(fā)與身份認證,該云認證服務器上不會有VM對應的第二密鑰K2的相關信息,第二密鑰K2的管理由云管理服務器和主機完成;而現(xiàn)有技術中,這部分認證通常是由云管理服務器中的一個“認證/登錄”模塊完成的,用戶證書的頒發(fā)與關鍵的可遷移的第二密鑰K2的生成都是在此云管理服務器中進行。相比之下,本發(fā)明中這部分身份認證的獨立性和安全性更高。
[0204]圖4為本發(fā)明身份認證方法實施例三的交互流程圖,本實施例介紹第二部分用戶與VM進行雙向身份認證的詳細過程。本實施例的場景為用戶已經(jīng)通過云終端與云認證服務器交互,通過云認證服務器的認證之后選擇了一個虛擬機,并向該虛擬機發(fā)送了登錄請求,這時用戶和該虛擬機通過云終端與主機的身份認證模塊的交互進行雙向的身份認證,并在雙向認證通過時,啟動該虛擬機。由于圖4同時描述了主機以及云管理服務器的結(jié)構(gòu)和本發(fā)明身份認證方法的交互流程,對于身份認證方法的交互流程,圖4中僅體現(xiàn)了各個有交互的步驟中所傳輸?shù)膬?nèi)容,而對于各個執(zhí)行主題針對自身的操作沒有體現(xiàn),因此圖4中的步驟與本實施例的步驟的文字部分不完全相同,但每個步驟的內(nèi)容是互相對應的。本實施例的方法可以包括:
[0205]步驟401、云管理服務器將虛擬機鏡像下發(fā)至主機,并將第二密鑰K2遷移至身份認證和密鑰管理域VMO。
[0206]其中,身份認證和密鑰管理域VMO包括身份認證模塊和密鑰管理模塊。
[0207]步驟402、主機的身份認證模塊獲得第一密鑰Kl和USB Key的公鑰。
[0208]具體地,為了完成登錄的雙向認證,云管理服務器將登錄請求定向到VMO中的身份認證模塊,身份認證模塊與云終端(或云終端中的客戶端認證模塊)通信,獲得USB Key中的第一密鑰Kl,并通過所述第一密鑰Kl和所述第二密鑰K2產(chǎn)生第一組合密鑰。
[0209]步驟403、主機的身份認證模塊向云終端發(fā)送經(jīng)過第一組合密鑰加密的第一隨機數(shù)NI和經(jīng)過USB Key的公鑰加密的第二密鑰K2。
[0210]具體地,VMO中的身份認證模塊生成第一隨機數(shù)NI,用第一組合密鑰加密該第一隨機數(shù)NI,同時用用戶USB Key的公鑰加密第二密鑰K2,發(fā)送給用戶端。
[0211]步驟404、云終端向身份認證模塊發(fā)送分別經(jīng)過第二組合密鑰加密第一隨機數(shù)NI和第二隨機數(shù)N2。
[0212]具體地,云終端利用USB Key中的私鑰解密獲得第二密鑰K2,并用USBKey中的第一密鑰Kl生成第二組合密鑰,解密獲得第一隨機數(shù)NI的明文,然后云終端生成第二隨機數(shù)N2,將N2和NI分別用第二組合密鑰加密后,發(fā)送給主機的身份認證模塊。
[0213]接下來,身份認證模塊用所述第一組合密鑰解密該信息,獲得第一隨機數(shù)NI和第二隨機數(shù)N2的明文,比較該解密獲得的第一隨機數(shù)NI是否與之前自身產(chǎn)生的NI相同,如果相同,則VM可以確定云終端對應的用戶通過認證,即用戶的身份合法;之后,身份認證模塊用第一組合密鑰解密云終端發(fā)送的第二隨機數(shù)N2。
[0214]步驟405、身份認證模塊向云終端發(fā)送經(jīng)過第一組合密鑰再次加密的第二隨機數(shù)N2。
[0215]云終端接收到后,用第二組合密鑰解密,獲得N2的明文,比較該解密獲得的第二隨機數(shù)N2是否與之前云終端自身產(chǎn)生的N2相同,如果相同,云終端可以確定該VM通過認證,即VM的身份合法。
[0216]步驟406、主機的VMM層解密VM鏡像,并啟動VM。
[0217]其中,步驟406為可選步驟,若本次啟動VM為首次啟動,則該VM鏡像未經(jīng)過加密,因此,不需要執(zhí)行步驟406,若本次啟動為非首次啟動,則通常VM鏡像是經(jīng)過加密的,VMM采用第一組合密鑰解密該VM鏡像。
[0218]具體地,VMM可以根據(jù)VM鏡像分區(qū)表中的標志位判斷該VM鏡像是否需要解密,如果需要解密,則獲取VMO的中的第一組合密鑰,然后對VM鏡像解密,同時啟動VM。至此,完成了用戶通過云終端登錄VM的過程,之后用戶可以使用VM的各項功能。
[0219]具體實現(xiàn)時,可以默認設置為:用戶關閉VM時,VMM用第一組合密鑰對VM鏡像加密,下次用戶使用VM時需要用第一組合密鑰對鏡像進行解密,才能登錄,這樣,通過第一組合密鑰對VM鏡像加解密,增強了 VM的安全性。
[0220]本實施例,TPM保證了 VM運行平臺的安全性;采用由來自于云終端的第一密鑰Kl和來自于云管理服務器的與VM對應的第二密鑰K2生成的第一組合密鑰的形式,實現(xiàn)云終端與VM之間的雙向認證,并充分發(fā)揮了 USB Key的安全特性優(yōu)勢,認證機制和VM的安全性更高;并且,采用在主機上部署VMO使得雙向認證與用戶對應的VM弱耦合,便于部署、維護,也從與VM隔離的角度進一步提高了安全性。
[0221]需要說明的是,上述實施例三為用戶通過云終端啟動VM進行的交互過程,而對于VM鎖屏或被注銷后重新登錄的場景,則只需要執(zhí)行上述實施例三種的步驟402?405,且在步驟405之后,若云終端確定所述VM通過認證,則向主機發(fā)送一個所述VM通過認證的消息,即可重新登錄VM。
[0222]圖5為本發(fā)明云終端實施例一的結(jié)構(gòu)示意圖,如圖5所示,本實施例的云終端500可以包括:發(fā)送模塊501、接收模塊502和處理模塊503,其中,
[0223]發(fā)送模塊501,可以用于向主機的身份認證模塊發(fā)送第一密鑰K1,所述第一密鑰Kl由所述云終端的智能卡產(chǎn)生;
[0224]接收模塊502,可以用于接收所述主機的身份認證模塊發(fā)送的第二密鑰K2和經(jīng)過第一組合密鑰加密的第一隨機數(shù)NI,其中,所述第二密鑰K2對應于所要連接的虛擬機,所述第一組合密鑰為所述主機的身份認證模塊通過獲取所述云終端對應的虛擬機的第二密鑰K2,并根據(jù)所述第二密鑰K2和所述第一密鑰Kl獲得的;
[0225]處理模塊503,可以用于根據(jù)所述第二密鑰K2和自身保存的所述第一密鑰Kl獲得第二組合密鑰,采用所述第二組合密鑰解密所述加密的第一隨機數(shù)NI,并采用所述第二組合密鑰對第一隨機數(shù)NI進行再次加密;
[0226]所述處理模塊503,還可以用于產(chǎn)生第二隨機數(shù)N2并采用所述第二組合密鑰加密所述第二隨機數(shù)N2;
[0227]所述發(fā)送模塊501,可以還用于向所述主機的身份認證模塊發(fā)送經(jīng)過所述第二組合密鑰再次加密的所述第一隨機數(shù)NI和經(jīng)過所述第二組合密鑰加密的所述第二隨機數(shù)N2,其中,所述第一隨機數(shù)NI用于使所述主機的身份認證模塊根據(jù)所述第一組合密鑰解密所述再次加密的第一隨機數(shù)NI,確定解密得到的所述第一隨機數(shù)NI是否與初始生成的所述第一隨機數(shù)NI是否一致,若一致,確定所述云終端通過認證;
[0228]所述接收模塊502還可以用于,接收所述主機的身份認證模塊根據(jù)所述第一組合密鑰解密所述加密的第二隨機數(shù)N2,并采用所述第一組合密鑰對第二隨機數(shù)N2進行再次加密的所述第二隨機數(shù)N2;
[0229]所述處理模塊503還可以用于,根據(jù)所述第二組合密鑰解密所述再次加密的第二隨機數(shù)N2,確定解密得到的所