律地產(chǎn)生并且在可預測的時間向虛擬機VM1204、VM2206、VM3208發(fā)送消息,并且因此影響在熵元素池212中可獲得的熵元素池。盡管攻擊者可能無法準確地預測專用的熵元素,對于熵元素的可用選項的數(shù)目可以在聯(lián)合熵元素池212中受到限制。這可能由于用于為熵元素池212生成熵元素的時間戳機制。因此,隨著更多例如由潛在的攻擊者操作在管理程序上的虛擬非受信服務器,安全危險可能增長。
[0055]嘗試安裝虛擬機VM 210的IaaS環(huán)境的另一租戶可以取決于來自于熵元素池212的熵元素。在虛擬機VM4210中可能需要熵元素來生成用于安全登錄到新近安裝的虛擬機VM4210的安全密鑰。然而,由于上述的由管理程序202為虛擬機VM1204、VM2206、VM3208所處理的輸入/輸出信號,熵元素池202中的熵元素的隨機化可能是低的。因此,對于基于安全密鑰來登錄進虛擬機VM4210,攻擊者可能僅不得不嘗試有限數(shù)目的熵元素,因為安全密鑰可能由于有限的隨機性而現(xiàn)在僅確保有限的安全性。
[0056]圖3示出連同虛擬機VM1204、VM2206、VM3208、VM4210的管理程序202以及對于每個虛擬機的專用隔離的熵池214、216、218、220的框圖300。
[0057]可以對作為熵元素的傳統(tǒng)源的中斷加時間戳。然而,此類的時間戳熵元素可能不能立即通過中斷處理程序(“handler”)而給入到熵池中。替代地,可以首先確定中斷的目標或源。例如,虛擬服務器VM1204、VM2206、VM3208、VM4210的鍵盤錄入發(fā)生,或者通信分組由虛擬服務器VM1204、VM2206、VM3208、VM4210成功發(fā)送或接收。在確定相關(guān)聯(lián)的或選擇的虛擬服務器后,加時間戳的數(shù)據(jù)可以用于僅生成針對該特定的、選擇的、虛擬機的熵元素。一旦虛擬機已知,熵元素可以被立即傳送到虛擬機。然而,在優(yōu)選的實施例中,想法是將熵元素形成池,并且使得其可由虛擬機通過接口來訪問,該接口可以是虛擬化的或并行虛擬化的接口。在優(yōu)選的實施例中,這可以通過使用本領(lǐng)域技術(shù)人員所知的“virt1-rng”函數(shù)來實現(xiàn)。這可以例如通過主機計算機中的Linux裝置驅(qū)動器來控制。從而,虛擬機的裝置,例如攜帶來自于該客戶和到該客戶的業(yè)務的虛擬網(wǎng)絡裝置,可以關(guān)聯(lián)到“virt1-rng”可以從其讀取熵元素的虛擬裝置。
[0058]總之,可以存在單獨的或隔離的熵元素池214用于虛擬機VM1204、單獨的或隔離的熵元素池216用于虛擬機VM1206,并且以此類推(參見參考編號218、220)。此外,也可能存在僅專用于管理程序的熵元素池222。因此,其他的虛擬機不能影響到針對于選擇的虛擬機的任何熵元素生成。因此,虛擬化效率可以被擴展到熵元素的生成和管理。對于隔離的熵元素池214、216、218、220以及222的熵元素可以與例如虛擬NIC(網(wǎng)絡接口控制器,未示出)關(guān)聯(lián)或與虛擬盤的控制信號(未示出)關(guān)聯(lián),“virt1-rng”可以從虛擬NIC或虛擬盤讀取熵元素。
[0059]圖4示出選擇性的聯(lián)合熵元素池224的框圖400。如上所解釋的,兩個熵元素池例如216中的熵元素池214 (比較圖3)可以被合并或加入到新的熵元素池224。熵元素池224中的可用熵元素可以僅專用于虛擬機VM1204和/或虛擬機VM2206。虛擬機VM1204和VM2206可以被視為受信的虛擬機。這里,受信的虛擬機可以表示具有相對高的熵元素隨機性的那些虛擬機。它們可以屬于相同的租戶或運營商。因此,由這些虛擬機所生成的安全密鑰可以是安全的。
[0060]圖5示出根據(jù)本發(fā)明概念的熵元素生成器500的框圖,具體地,用于為虛擬機204、206、208和210提供隔離的熵兀素的熵兀素生成器500。熵兀素生成器500可以包括適于在管理程序(202)上部署至少一個虛擬機204、206、208、210的部署單元504,以及適于通過管理程序202基于觸發(fā)來生成熵元素的生成器模塊506。其可以可選地包括適于提供管理程序202的管理程序提供單元502。另外,熵元素生成器500可以包括分配單元508,其適于向每個熵元素分配標識符,其中對于選擇的虛擬機,基于觸發(fā)的熵元素可以分配有相同的標識符。因此,基于輸入/輸出觸發(fā)的熵元素被分配到相同的熵元素池。進一步,熵元素生成器500可以包括限制單元510,其適于對于選擇的虛擬機,限制具有相同的標識符的熵元素的使用。
[0061]本發(fā)明的實施例可以事實上連同任意類型的計算機來一起實現(xiàn),而無論適于存儲和/或執(zhí)行程序代碼的平臺。例如,如圖6中所示,計算系統(tǒng)600可以包括一個或多個處理器602,每個處理器具有一個或多個核,相關(guān)聯(lián)的存儲器單元604、內(nèi)部存儲裝置606 (例如,硬盤、例如致密盤驅(qū)動器或數(shù)字視頻盤(DVD)驅(qū)動器的光驅(qū)動器、閃存棒、固態(tài)盤等),以及各種其他單元和功能性,典型的為今天的計算機(未示出)。存儲器單元604可以包括主存儲器,例如隨機存取存儲器(RAM),其在程序代碼的實際執(zhí)行期間使用,以及高速緩沖存儲器,其可以提供至少一些程序代碼和/或數(shù)據(jù)的臨時存儲以便減小代碼和/或數(shù)據(jù)必須從長期存儲介質(zhì)或外部大容量存儲器616取回以便執(zhí)行的次數(shù)。計算機600內(nèi)的單元可以通過具有相應適配器的總線系統(tǒng)618鏈接在一起。另外,熵元素生成器500可以被附接到總線系統(tǒng)518。
[0062]計算系統(tǒng)600也可以包括輸入裝置,例如鍵盤608、例如鼠標610的指向裝置或麥克風(未示出)。替代地,計算系統(tǒng)可以配備有作為主輸入裝置的觸敏顯示器。進一步,計算機600可以包括輸出裝置,例如監(jiān)視器或顯示屏612 [例如,液晶顯示器(IXD)、等離子顯示器、發(fā)光二極管顯示器(LED)或陰極射線管(CRT)監(jiān)視器]。計算機系統(tǒng)600可以經(jīng)由網(wǎng)絡接口連接164連接到網(wǎng)絡(例如,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、例如因特網(wǎng)或任意其他類似類型的網(wǎng)絡),包括無線網(wǎng)絡。這可以允許耦合到其他計算機系統(tǒng)或存儲器網(wǎng)絡或帶驅(qū)動器。本領(lǐng)域技術(shù)人員將理解存在許多不同類型的計算機系統(tǒng),并且上述的輸入和輸出裝置可以采取其他的形式。一般來說,計算機系統(tǒng)600可以包括對于實踐本發(fā)明的實施例所必須的至少最小處理、輸入和/或輸出裝置。
[0063]盡管已經(jīng)關(guān)于有限數(shù)目的實施例描述了本發(fā)明,但那些具有本公開益處的本領(lǐng)域技術(shù)人員將理解其他的實施例可以被導出,而這些實施例并不偏離本發(fā)明的范圍,如這里所公開的。相應地,本發(fā)明的范圍應該僅受到所附權(quán)利要求的限制。另外,可以組合與不同的實施例關(guān)聯(lián)描述的元素。還應該注意的是權(quán)利要求中的參考編號不應該被理解為限制性元素。
[0064]正如本領(lǐng)域技術(shù)人員將理解的,本公開的多個方面可以體現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。相應地,本公開的多個方面可以采取整個硬件實施例、整個軟件實施例(包括固件、駐留軟件、微碼等)或組合軟件和硬件方面的實施例的形式,其所有通常都可以在這里稱為“電路”、“模塊”或“系統(tǒng)”。進一步,本公開的多個方面可以采取包括在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該一個或多個計算機可讀介質(zhì)具有包括在其上的計算機可讀程序代碼。
[0065]可以使用一個或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)可以是例如但不限于電的、磁的、光的、電磁的、紅外的或者半導體系統(tǒng)、設(shè)備或裝置,或前述的任意合適組合。計算機可讀存儲介質(zhì)的更多具體例子(非窮舉性列出)將包括下面的:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式致密盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或前述的任意合適組合。在本文檔的上下文中,計算機可讀存儲介質(zhì)可以是任意有形的介質(zhì),其可以包含或存儲由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置來使用的程序。
[0066]計算機可讀信號介質(zhì)可包括在基帶中或者作為載波一部分傳播的、其中體現(xiàn)計算機可讀的程序碼的傳播的數(shù)據(jù)信號。這種傳播的信號可以采用多種形式,包括但不限于電磁信號、光信號或任何以上合適的組合。計算機可讀的信號介質(zhì)可以是并非為計算機可讀存儲介質(zhì)、但是能發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序的任何計算機可讀介