專利名稱:自適應(yīng)的保障可信客戶虛擬域正常啟動(dòng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)信息安全可信計(jì)算領(lǐng)域,特別是涉及一種自適應(yīng)方法, 該方法在保障可信客戶虛擬域正常啟動(dòng)的同時(shí),保持了原有系統(tǒng)資源的有效 利用率和系統(tǒng)響應(yīng)速度。
背景技術(shù):
虛擬機(jī)技術(shù)應(yīng)用整機(jī)虛擬化的概念,解除了實(shí)體機(jī)兼容性和硬件資源對(duì) 應(yīng)用程序的約束,實(shí)現(xiàn)同一硬件平臺(tái)上多操作系統(tǒng)的并行運(yùn)行。網(wǎng)絡(luò)化時(shí)代
以效率優(yōu)先而不是以安全優(yōu)先原則設(shè)計(jì)的現(xiàn)有PC系統(tǒng)越來越容易遭受黑 客、間諜軟件和病毒的攻擊。為了解決PC機(jī)結(jié)構(gòu)上的不安全問題,從根本 上提高其可信性,可信計(jì)算平臺(tái)聯(lián)盟TCPA (后來更名為TCG)提出通過增強(qiáng) 現(xiàn)有的終端體系結(jié)構(gòu)的安全性來保證整個(gè)系統(tǒng)的安全,主要思路是在各種終 端硬件平臺(tái)上引入具有安全存儲(chǔ)和加密功能的可信平臺(tái)模塊(又稱為可信芯 片)TPM;將操作系統(tǒng)啟動(dòng)過程分為幾個(gè)相對(duì)獨(dú)立的層,以TPM作為可信計(jì) 算平臺(tái)的信任根,下層先度量驗(yàn)證上層完整性,并將度量結(jié)果存入TPM芯片 的PCR寄存器中,然后再傳遞系統(tǒng)的運(yùn)行控制權(quán),從而構(gòu)建一條信任鏈。PCR 寄存器的數(shù)據(jù)在計(jì)算機(jī)啟動(dòng)后不能直接修改,也不能清空。用戶可以根據(jù)相 應(yīng)PCR寄存器的數(shù)值判斷當(dāng)前運(yùn)行環(huán)境是否可信,某些環(huán)節(jié)是否存在安全問 題。
虛擬化技術(shù)與可信計(jì)算技術(shù)有機(jī)結(jié)合將能構(gòu)建出極其有效的終端平臺(tái) 安全解決方案。傳統(tǒng)的可信計(jì)算技術(shù)只能保證單一計(jì)算機(jī)的安全,要實(shí)現(xiàn)可 信應(yīng)用軟件在客戶虛擬域上無縫地運(yùn)行,必須解決兩個(gè)問題 一是如何為客 戶虛擬域提供TPM設(shè)備;二是如何實(shí)現(xiàn)客戶虛擬域可信鏈各個(gè)階段的完整性 度量。圖l給出Xen虛擬機(jī)組件框架,每個(gè)計(jì)算域運(yùn)行一個(gè)操作系統(tǒng),虛擬機(jī)監(jiān)控器位于系統(tǒng)硬件平臺(tái)與虛擬計(jì)算域操作系統(tǒng)軟件之間,負(fù)責(zé)監(jiān)控下層
硬件,并將硬件抽象成可管理調(diào)度的實(shí)體供上層計(jì)算域使用。Xen虛擬機(jī)啟 動(dòng)后,特權(quán)域是必須而且首先進(jìn)入的操作系統(tǒng),然后再根據(jù)具體情況啟動(dòng)客 戶虛擬域;特權(quán)計(jì)算域具有最高權(quán)限,特權(quán)域利用虛擬域管理工具管理客戶 計(jì)算域,包括創(chuàng)建、刪除、訪問物理設(shè)備等。圖2為一種客戶虛擬域利用特 權(quán)域?qū)崿F(xiàn)的虛擬TPM (vTPM)設(shè)備進(jìn)行可信計(jì)算的方法的組件框架示意圖; 在該方法中,不同客戶虛擬域使用不同vTPM設(shè)備,客戶虛擬域里可信應(yīng)用 軟件發(fā)出的TPM指令請(qǐng)求通過vTPM前端驅(qū)動(dòng)、vTPM后端驅(qū)動(dòng)、vTPM設(shè)備管 理工具,最后到達(dá)vTPM設(shè)備,處理后的結(jié)果再經(jīng)相反路徑回到可信應(yīng)用軟 件。圖3為來自客戶虛擬域IMA軟件所發(fā)出的TPM指令處理流程圖,其中 IMA是IBM研究院開發(fā)的用于對(duì)執(zhí)行程序或內(nèi)核模塊進(jìn)行完整性度量的軟件
工具,客戶虛擬域操作系統(tǒng)啟動(dòng)過程中加載該軟件。
圖4是客戶虛擬域啟動(dòng)過程和虛擬TPM設(shè)備創(chuàng)建過程的流程圖,之所以 將虛擬域的啟動(dòng)與虛擬TPM設(shè)備的創(chuàng)建這兩個(gè)過程設(shè)計(jì)成兩個(gè)并行的過程, 主要是為了提高系統(tǒng)資源利用率,加快整個(gè)系統(tǒng)的啟動(dòng)過程;但是這種方法 與現(xiàn)有的完整性度量軟件IMA整合在一起工作時(shí),可信客戶虛擬域可能會(huì)出 現(xiàn)啟動(dòng)崩潰現(xiàn)象。原因是圖3中的虛擬域管理工具、vTPM設(shè)備管理工具 和vTPM設(shè)備進(jìn)程都是作為用戶空間的普通進(jìn)程被調(diào)度執(zhí)行的,虛擬域間CPU 調(diào)度以及虛擬域內(nèi)進(jìn)程調(diào)度的不確定性會(huì)導(dǎo)致IMA軟件發(fā)出訪問TPM指令 時(shí),相應(yīng)的vTPM設(shè)備可能尚未建立好,而IMA無法處理這種情況,進(jìn)而導(dǎo)致
啟動(dòng)崩潰。
解決啟動(dòng)崩潰的途徑就是在客戶虛擬域啟動(dòng)過程中加入檢測vTPM設(shè)備 的功能,只有vTPM設(shè)備可用了,啟動(dòng)才繼續(xù)進(jìn)行。何時(shí)檢測以及如何檢測 是一個(gè)關(guān)鍵,直接影響系統(tǒng)性能。 一種方法是定期發(fā)出TPM指令,直到返回 結(jié)果正確,這種輪詢檢測方法簡單,但是指令的間隔時(shí)間不容易設(shè)置,因此 該方法在動(dòng)態(tài)環(huán)境下可能降低系統(tǒng)響應(yīng)速度或浪費(fèi)系統(tǒng)資源。
發(fā)明內(nèi)容
本發(fā)明的目的在于為保障可信客戶虛擬域正常啟動(dòng)同時(shí)兼顧系統(tǒng)性能而 提供一種自適應(yīng)方法。本發(fā)明的方法采用事件驅(qū)動(dòng)工作模式,使得基于現(xiàn)有
的虛擬TPM技術(shù)和完整性度量軟件進(jìn)行可信計(jì)算的客戶虛擬域的系統(tǒng)啟動(dòng) 不因?yàn)樘摂MTPM設(shè)備創(chuàng)建過程的緩慢而出現(xiàn)崩潰,同時(shí)保持原系統(tǒng)在動(dòng)態(tài)環(huán) 境下的系統(tǒng)響應(yīng)速度和系統(tǒng)資源有效利用率。
本發(fā)明的目的通過以下措施來達(dá)到
一種自適應(yīng)的保障可信客戶虛擬域正常啟動(dòng)的方法,其特征在于IMA
軟件在被虛擬域內(nèi)核加載時(shí),首先進(jìn)入睡眠狀態(tài)進(jìn)而使系統(tǒng)啟動(dòng)暫停,直到
特權(quán)域的vTPM設(shè)備開始工作,工MA軟件才被喚醒,然后虛擬域系統(tǒng)繼續(xù)啟 動(dòng);
IMA軟件從進(jìn)入睡眠狀態(tài)到被喚醒的具體步驟如下
(11) .加載vTPM后端驅(qū)動(dòng),后端驅(qū)動(dòng)需要完成一系列初始化工作,包括 運(yùn)行前后端通信模塊,該模塊用于和vTPM前端驅(qū)動(dòng)交換控制信息;
(12) .特權(quán)域中通過虛擬域管理工具啟動(dòng)虛擬域,虛擬域管理工具首先 發(fā)出啟動(dòng)虛擬域操作系統(tǒng)內(nèi)核的命令,然后往XenStore中寫入信息,該 寫入動(dòng)作觸發(fā)vTPM后端驅(qū)動(dòng)創(chuàng)建一個(gè)vTPM設(shè)備標(biāo)識(shí)號(hào)監(jiān)視器去監(jiān)視 XenStore中該虛擬域的vTPM設(shè)備標(biāo)識(shí)號(hào)的變化,最后虛擬域管理工具向 vTPM設(shè)備管理工具發(fā)送創(chuàng)建vTPM設(shè)備的指令;
(13) . vTPM設(shè)備管理工具讀取創(chuàng)建vTPM設(shè)備指令后,首先根據(jù)指令體內(nèi) 容創(chuàng)建一個(gè)vTPM設(shè)備進(jìn)程,并與上面獲得的設(shè)備標(biāo)識(shí)號(hào)進(jìn)行綁定,然后 啟動(dòng)該進(jìn)程,最后vTPM設(shè)備管理工具將vTPM設(shè)備進(jìn)程啟動(dòng)的結(jié)果發(fā)送 給虛擬域管理工具;
(14) .虛擬域管理工具在確認(rèn)vTPM設(shè)備進(jìn)程正常啟動(dòng)后,將該vTPM設(shè) 備標(biāo)識(shí)號(hào)寫入XenStore,這個(gè)寫入動(dòng)作觸發(fā)vTPM設(shè)備標(biāo)識(shí)號(hào)監(jiān)視器獲得 vTPM設(shè)備標(biāo)識(shí)號(hào),然后vTPM后端驅(qū)動(dòng)保存vTPM設(shè)備標(biāo)識(shí)號(hào),最后vTPM 后端驅(qū)動(dòng)檢查XenStore根目錄下是否有存在vTPMready%s,其中。/。s為vTPM設(shè)備標(biāo)識(shí)號(hào),如果沒有vTPMready%s,則vTPM后端驅(qū)動(dòng)創(chuàng)建 vTPMready監(jiān)視器,監(jiān)視XenStore根目錄下的vTPMready%s的變化;
(15) . vTPM設(shè)備程序啟動(dòng)后,首先完成初始化工作,然后在XenStore 根目錄下創(chuàng)建vTPMready%s;如果這時(shí)vTPM后端驅(qū)動(dòng)已經(jīng)創(chuàng)建vTPMready 監(jiān)視器,則這一創(chuàng)建動(dòng)作觸發(fā)vTPMready監(jiān)視器獲得vTPMready%s信息, 最后vTPM設(shè)備程序開始工作,等待TPM指令;
(16) .當(dāng)vTPM后端驅(qū)動(dòng)獲得vTPMreadyQ/。s信息后,判斷當(dāng)前vTPM后端 驅(qū)動(dòng)的狀態(tài)是否為XenbusStateConnected;如果是,則置vTPM后端驅(qū)動(dòng) 的狀態(tài)為XenbusStateVTPMReady;如果不是,則保存vTPMready設(shè)置;
(17) .加載并運(yùn)行客戶虛擬域內(nèi)核,內(nèi)核加載vTPM前端驅(qū)動(dòng),vTPM前端 驅(qū)動(dòng)先進(jìn)行一系列初始化,然后創(chuàng)建一個(gè)vTPM等待隊(duì)列,最后運(yùn)行前后 端通信模塊,到此為止,vTPM前端驅(qū)動(dòng)加載完畢;接著內(nèi)核加載頂A軟 件,IMA軟件首先睡眠于vTPM等待隊(duì)列,等待被喚醒;
(18) . 當(dāng)vTPM前端驅(qū)動(dòng)狀態(tài)為XenbusStateConnected時(shí),會(huì)觸發(fā)vTPM 后端驅(qū)動(dòng)的前后端通信模塊進(jìn)行一系列工作,然后vTPM后端驅(qū)動(dòng)的狀態(tài) 變?yōu)閄enbusStateConnected.,(19) .當(dāng)vTPM后端驅(qū)動(dòng)的狀態(tài)變?yōu)閄enbusStateConnected, vTPM后端
驅(qū)動(dòng)檢査是否有vTPMready信息,如果有,則vTPM后端驅(qū)動(dòng)置vTPM后
端驅(qū)動(dòng)的狀態(tài)為XenbusStateVTPMReady,然后系統(tǒng)繼續(xù)工作; 當(dāng)vTPM后端驅(qū)動(dòng)的狀態(tài)為XenbusStateVTPMReady的時(shí)候,vTPM后端
驅(qū)動(dòng)首先通知vTPM前端驅(qū)動(dòng),然后vTPM前端驅(qū)動(dòng)喚醒在vTPM等待隊(duì)列睡
眠的頂A軟件,接著IMA軟件開始初始化工作,虛擬域內(nèi)核繼續(xù)啟動(dòng)。
相比現(xiàn)有技術(shù)具有如下優(yōu)點(diǎn)
1、 解決了現(xiàn)有技術(shù)在動(dòng)態(tài)環(huán)境下可能發(fā)生的系統(tǒng)響應(yīng)速度慢或系統(tǒng)資 源浪費(fèi)的問題。
2、 將虛擬域啟動(dòng)過程的暫停推遲到第一個(gè)訪問虛擬TPM設(shè)備的虛擬域 軟件的初始化部分之前,保持了原系統(tǒng)性能。
圖1為Xen虛擬機(jī)組件框架示意圖2為一種客戶虛擬域基于虛擬TPM進(jìn)行可信計(jì)算的方法的組件框架示 意圖3為圖2方法中的客戶虛擬域IMA軟件所發(fā)出的TPM指令的處理流程
圖4為圖2方法中的客戶虛擬域啟動(dòng)和虛擬TPM設(shè)備創(chuàng)建兩個(gè)并行過程 的流程圖5是本發(fā)明中的從虛擬域管理工具發(fā)出啟動(dòng)虛擬域命令到vTPM后端 驅(qū)動(dòng)獲得vTPM設(shè)備開始工作的信息的流程圖6是本發(fā)明中的虛擬域上頂A軟件從vTPM后端驅(qū)動(dòng)獲得vTPM設(shè)備開 始工作的信息的流程圖。
具體實(shí)施例方式
本發(fā)明需要功能增強(qiáng)的軟件包括(1)支持虛擬可信平臺(tái)模塊系統(tǒng)的 純軟件實(shí)現(xiàn)的虛擬TPM(vTPM)設(shè)備程序、vTPM后端驅(qū)動(dòng)和vTPM后端驅(qū) 動(dòng),(2)該方法還需要對(duì)IMA軟件進(jìn)行功能增強(qiáng)。
本發(fā)明系統(tǒng)部屬過程如下
步驟l,部屬圖2方法的組件
步驟2,將功能增強(qiáng)的vTPM設(shè)備程序替換圖2方法提供的vTPM設(shè)備程序 步驟3,將功能增強(qiáng)的vTPM后端驅(qū)動(dòng)替換圖2方法提供的vTPM后端驅(qū)動(dòng) vTPM設(shè)備程序
步驟4,將功能增強(qiáng)的vTPM前端驅(qū)動(dòng)和功能增強(qiáng)的頂A軟件整合到虛擬 域內(nèi)核文件
步驟5,在特權(quán)域中加載功能增強(qiáng)的vTPM后端驅(qū)動(dòng)并啟動(dòng)vTPM設(shè)備管理 工具。
步驟6,在特權(quán)域中使用虛擬域管理工具啟動(dòng)虛擬域。 下面對(duì)本發(fā)明中IMA軟件從進(jìn)入睡眠狀態(tài)到被喚醒的工作流程進(jìn)行細(xì)說明
1. 加載VTPM后端驅(qū)動(dòng),后端驅(qū)動(dòng)需要完成一系列初始化工作,包括運(yùn)行
前后端通信模塊,該模塊用于和vTPM前端驅(qū)動(dòng)交換控制信息,如圖5所示。
2. 如圖5所示,特權(quán)域中通過虛擬域管理工具啟動(dòng)虛擬域,虛擬域管理 工具首先發(fā)出啟動(dòng)虛擬域操作系統(tǒng)內(nèi)核的命令,然后往XenStore中寫入信 息,該寫入動(dòng)作觸發(fā)vTPM后端驅(qū)動(dòng)創(chuàng)建一個(gè)vTPM設(shè)備標(biāo)識(shí)號(hào)監(jiān)視器去監(jiān)視 XenStore中該虛擬域的vTPM設(shè)備標(biāo)識(shí)號(hào)的變化,最后虛擬域管理工具向 vTPM設(shè)備管理工具發(fā)送創(chuàng)建vTPM設(shè)備的指令。
3. vTPM設(shè)備管理工具讀取創(chuàng)建vTPM設(shè)備指令后,首先根據(jù)指令體內(nèi)容 創(chuàng)建一個(gè)vTPM設(shè)備進(jìn)程,并與上面獲得的設(shè)備標(biāo)識(shí)號(hào)進(jìn)行綁定,然后啟動(dòng) 該進(jìn)程,最后vTPM設(shè)備管理工具將vTPM設(shè)備進(jìn)程啟動(dòng)的結(jié)果發(fā)送給虛擬域 管理工具。
4. 虛擬域管理工具在確認(rèn)vTPM設(shè)備進(jìn)程正常啟動(dòng)后,將該vTPM設(shè)備標(biāo) 識(shí)號(hào)寫入XenStore,這寫入動(dòng)作觸發(fā)vTPM設(shè)備標(biāo)識(shí)號(hào)監(jiān)視器獲得vTPM設(shè) 備標(biāo)識(shí)號(hào),然后vTPM后端驅(qū)動(dòng)保存vTPM設(shè)備標(biāo)識(shí)號(hào),最后vTPM后端驅(qū)動(dòng) 檢查XenStore根目錄下是否有存在vTPMready%s,其中。/os為vTPM設(shè)備標(biāo)識(shí) 號(hào),如果沒有vTPMready%s,則vTPM后端驅(qū)動(dòng)創(chuàng)建vTPMready監(jiān)視器,監(jiān) 視XenStore根目錄下的vTPMready%s的變化。
5. vTPM設(shè)備程序啟動(dòng)后,首先完成初始化工作,然后在XenStore根目 錄下創(chuàng)建vTPMready%s。如果這時(shí)vTPM后端驅(qū)動(dòng)已經(jīng)創(chuàng)建vTPMready監(jiān)視 器,則這一創(chuàng)建動(dòng)作觸發(fā)vTPMready監(jiān)視器獲得vTPMready%s信息。最后 vTPM設(shè)備程序開始工作,等待TPM指令。
6. 當(dāng)vTPM后端驅(qū)動(dòng)獲得vTPMreadyQ/Qs信息后,判斷當(dāng)前vTPM后端驅(qū)動(dòng) 的狀態(tài)是否為XenbusStateConnected。如果是,則置vTPM后端驅(qū)動(dòng)的狀態(tài) 為XenbusStateVTPMReady;如果不是,則保存vTPMready設(shè)置,如圖6所 示c
7. 如圖5和圖6所示,加載并運(yùn)行客戶虛擬域內(nèi)核,內(nèi)核加載vTPM前端驅(qū)動(dòng),vTPM前端驅(qū)動(dòng)先進(jìn)行一系列初始化,然后創(chuàng)建一個(gè)vTPM等待隊(duì)列, 最后運(yùn)行前后端通信模塊,到此為止,內(nèi)核加載vTPM前端驅(qū)動(dòng)完畢。接著 內(nèi)核加載IMA軟件,IMA軟件首先睡眠于vTPM等待隊(duì)列,等待被喚醒。
8. 如圖6所示,當(dāng)vTPM前端驅(qū)動(dòng)狀態(tài)為XenbusStateConnected時(shí),會(huì) 觸發(fā)vTPM后端驅(qū)動(dòng)的前后端通信模塊進(jìn)行一些工作,然后vTPM后端驅(qū)動(dòng)的 狀態(tài)變?yōu)閄enbusStateConnected。
9. 當(dāng)vTPM后端驅(qū)動(dòng)的狀態(tài)變?yōu)閄enbusStateConnected, vTPM后端驅(qū)動(dòng) 檢查是否有vTPMready信息,如果有的話,vTPM后端驅(qū)動(dòng)置vTPM后端驅(qū)動(dòng) 的狀態(tài)為XenbusStateVTPMReady,然后系統(tǒng)繼續(xù)工作。
10. 當(dāng)vTPM后端驅(qū)動(dòng)的狀態(tài)為XenbusStateVTPMReady的時(shí)候,vTPM后 端驅(qū)動(dòng)首先通知vTPM前端驅(qū)動(dòng),然后vTPM前端驅(qū)動(dòng)喚醒在vTPM等待隊(duì)列 睡眠的IMA軟件,接著IMA軟件開始初始化工作,虛擬域內(nèi)核繼續(xù)工作。
通過本發(fā)明提供的一種自適應(yīng)的保障可信客戶虛擬域正常啟動(dòng)的方法, 不僅保證了可信客戶虛擬域系統(tǒng)啟動(dòng)不因?yàn)樘摂MTPM設(shè)備創(chuàng)建過程的緩慢 而出現(xiàn)崩潰,還保持了原有系統(tǒng)響應(yīng)速度和系統(tǒng)資源有效利用率。
10
權(quán)利要求
1、一種自適應(yīng)的保障可信客戶虛擬域正常啟動(dòng)的方法,其特征在于IMA軟件在被虛擬域內(nèi)核加載時(shí),首先進(jìn)入睡眠狀態(tài)進(jìn)而使系統(tǒng)啟動(dòng)暫停,直到特權(quán)域的vTPM設(shè)備開始工作,IMA軟件才被喚醒,然后虛擬域系統(tǒng)繼續(xù)啟動(dòng);其中所述的IMA軟件從進(jìn)入睡眠狀態(tài)到被喚醒的具體步驟如下(1).加載vTPM后端驅(qū)動(dòng),后端驅(qū)動(dòng)需要完成一系列初始化工作,包括運(yùn)行前后端通信模塊,該模塊用于和vTPM前端驅(qū)動(dòng)交換控制信息;(2).特權(quán)域中通過虛擬域管理工具啟動(dòng)虛擬域,虛擬域管理工具首先發(fā)出啟動(dòng)虛擬域操作系統(tǒng)內(nèi)核的命令,然后往XenStore中寫入信息,該寫入動(dòng)作觸發(fā)vTPM后端驅(qū)動(dòng)創(chuàng)建一個(gè)vTPM設(shè)備標(biāo)識(shí)號(hào)監(jiān)視器去監(jiān)視XenStore中該虛擬域的vTPM設(shè)備標(biāo)識(shí)號(hào)的變化,最后虛擬域管理工具向vTPM設(shè)備管理工具發(fā)送創(chuàng)建vTPM設(shè)備的指令;(3).vTPM設(shè)備管理工具讀取創(chuàng)建vTPM設(shè)備指令后,首先根據(jù)指令體內(nèi)容創(chuàng)建一個(gè)vTPM設(shè)備進(jìn)程,并與上面獲得的設(shè)備標(biāo)識(shí)號(hào)進(jìn)行綁定,然后啟動(dòng)該進(jìn)程,最后vTPM設(shè)備管理工具將vTPM設(shè)備進(jìn)程啟動(dòng)的結(jié)果發(fā)送給虛擬域管理工具;(4).虛擬域管理工具在確認(rèn)vTPM設(shè)備進(jìn)程正常啟動(dòng)后,將該vTPM設(shè)備標(biāo)識(shí)號(hào)寫入XenStore,這個(gè)寫入動(dòng)作觸發(fā)vTPM設(shè)備標(biāo)識(shí)號(hào)監(jiān)視器獲得vTPM設(shè)備標(biāo)識(shí)號(hào),然后vTPM后端驅(qū)動(dòng)保存vTPM設(shè)備標(biāo)識(shí)號(hào),最后vTPM后端驅(qū)動(dòng)檢查XenStore根目錄下是否有存在vTPMready%s,其中%s為vTPM設(shè)備標(biāo)識(shí)號(hào),如果沒有vTPMready%s,則vTPM后端驅(qū)動(dòng)創(chuàng)建vTPMready監(jiān)視器,監(jiān)視XenStore根目錄下的vTPMready%s的變化;(5).vTPM設(shè)備程序啟動(dòng)后,首先完成初始化工作,然后在XenStore根目錄下創(chuàng)建vTPMready%s;如果這時(shí)vTPM后端驅(qū)動(dòng)已經(jīng)創(chuàng)建vTPMready監(jiān)視器,則這一創(chuàng)建動(dòng)作觸發(fā)vTPMready監(jiān)視器獲得vTPMready%s信息,最后vTPM設(shè)備程序開始工作,等待TPM指令;(6).當(dāng)vTPM后端驅(qū)動(dòng)獲得vTPMready%s信息后,判斷當(dāng)前vTPM后端驅(qū)動(dòng)的狀態(tài)是否為XenbusStateConnected;如果是,則置vTPM后端驅(qū)動(dòng)的狀態(tài)為XenbusStateVTPMReady;如果不是,則保存vTPMready設(shè)置;(7).加載并運(yùn)行客戶虛擬域內(nèi)核,內(nèi)核加載vTPM前端驅(qū)動(dòng),vTPM前端驅(qū)動(dòng)先進(jìn)行一系列初始化,然后創(chuàng)建一個(gè)vTPM等待隊(duì)列,最后運(yùn)行前后端通信模塊,到此為止,vTPM前端驅(qū)動(dòng)加載完畢;接著內(nèi)核加載IMA軟件,IMA軟件首先睡眠于vTPM等待隊(duì)列,等待被喚醒;(8).當(dāng)vTPM前端驅(qū)動(dòng)狀態(tài)為XenbusStateConnected時(shí),會(huì)觸發(fā)vTPM后端驅(qū)動(dòng)的前后端通信模塊進(jìn)行一系列工作,然后vTPM后端驅(qū)動(dòng)的狀態(tài)變?yōu)閄enbusStateConnected;(9).當(dāng)vTPM后端驅(qū)動(dòng)的狀態(tài)變?yōu)閄enbusStateConnected,vTPM后端驅(qū)動(dòng)檢查是否有vTPMready信息,如果有,則vTPM后端驅(qū)動(dòng)置vTPM后端驅(qū)動(dòng)的狀態(tài)為XenbusStateVTPMReady,然后系統(tǒng)繼續(xù)工作;(10).當(dāng)vTPM后端驅(qū)動(dòng)的狀態(tài)為XenbusStateVTPMReady的時(shí)候,vTPM后端驅(qū)動(dòng)首先通知vTPM前端驅(qū)動(dòng),然后vTPM前端驅(qū)動(dòng)喚醒在vTPM等待隊(duì)列睡眠的IMA軟件,接著IMA軟件開始初始化工作,虛擬域內(nèi)核繼續(xù)啟動(dòng)。
全文摘要
本發(fā)明涉及一種自適應(yīng)的保障可信客戶虛擬域正常啟動(dòng)的方法,該方法通過對(duì)現(xiàn)有的虛擬可信平臺(tái)模塊技術(shù)和完整性度量軟件進(jìn)行功能增強(qiáng)來實(shí)現(xiàn)保障。在該方法中,完整性度量軟件被客戶虛擬域內(nèi)核加載后,首先進(jìn)入睡眠狀態(tài)以使系統(tǒng)啟動(dòng)暫停;直到特權(quán)域的虛擬可信平臺(tái)模塊開始工作,完整性度量軟件才被喚醒,進(jìn)而虛擬域系統(tǒng)繼續(xù)啟動(dòng)過程。本發(fā)明的方法不僅保證可信客戶虛擬域系統(tǒng)啟動(dòng)不因?yàn)樘摂M可信平臺(tái)模塊創(chuàng)建過程的緩慢而崩潰,而且通過采用事件驅(qū)動(dòng)工作模式和將虛擬域啟動(dòng)過程的暫停推遲到第一個(gè)訪問虛擬可信平臺(tái)模塊的虛擬域軟件的初始化部分之前,一方面保持原系統(tǒng)充分利用系統(tǒng)資源的特點(diǎn),另一方面保持原系統(tǒng)的響應(yīng)速度。
文檔編號(hào)G06F9/48GK101539864SQ200910078030
公開日2009年9月23日 申請(qǐng)日期2009年2月10日 優(yōu)先權(quán)日2009年2月10日
發(fā)明者帆 何, 博 劉, 劉吉強(qiáng), 常曉林, 彬 邢, 臻 韓, 何 魏 申請(qǐng)人:北京交通大學(xué)