專利名稱:支持零宕機(jī)的可信虛擬域啟動文件完整性度量的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)信息安全可信計算領(lǐng)域,特別是指支持零宕機(jī)的可信
虛擬域啟動文件完整性度量的方法。通過增強(qiáng)Xen虛擬機(jī)環(huán)境下的客戶虛擬 域管理工具和虛擬域引導(dǎo)管理器的功能,實現(xiàn)可信虛擬域系統(tǒng)啟動文件在被 加載時才進(jìn)行完整性度量。
背景技術(shù):
虛擬機(jī)技術(shù)應(yīng)用整機(jī)虛擬化的概念,解除了實體機(jī)兼容性和硬件資源對 應(yīng)用程序的約束,實現(xiàn)同一硬件平臺上多操作系統(tǒng)的并行運行。Xen虛擬機(jī) 是一個成熟的開放源代碼虛擬化產(chǎn)品,Xen虛擬機(jī)包括一個虛擬機(jī)監(jiān)控器、 一個特權(quán)虛擬計算域和多個客戶虛擬計算域,見圖l。每個計算域運行一個 操作系統(tǒng),虛擬機(jī)監(jiān)控器位于系統(tǒng)硬件平臺與虛擬計算域操作系統(tǒng)軟件之 間,負(fù)責(zé)監(jiān)控下層硬件,并將硬件抽象成可管理調(diào)度的實體供上層計算域使 用,通過為上層計算域提供有效的隔離機(jī)制,使得各個計算域能得以資源隔 離、性能隔離、故障隔離。 一個Xen虛擬機(jī)至少要運行虛擬機(jī)監(jiān)控器和特權(quán) 域,即Xen虛擬機(jī)啟動后,特權(quán)域是必須而且首先進(jìn)入的操作系統(tǒng),然后再 根據(jù)具體情況啟動客戶虛擬域;特權(quán)計算域具有最高的權(quán)限,特權(quán)域利用虛 擬域管理工具管理客戶計算域,包括創(chuàng)建、刪除、訪問物理設(shè)備等。圖2給 出了從計算機(jī)開機(jī)啟動到客戶虛擬域啟動完畢的流程。
特權(quán)域的虛擬域管理工具根據(jù)客戶虛擬域的虛擬域配置文件來啟動相 應(yīng)的客戶虛擬域,該配置文件中指定了要啟動的虛擬域的CPU、內(nèi)存、磁盤、 網(wǎng)絡(luò)等設(shè)備資源信息,同時還包括虛擬域的內(nèi)核等啟動信息。客戶虛擬域操 作系統(tǒng)的內(nèi)核啟動文件可以存放在特權(quán)域,也可以存放在虛擬域的存儲空 間,后種方式更為通用,其啟動需要虛擬域系統(tǒng)引導(dǎo)管理器的參與,圖3給 出了后種方式下,虛擬域系統(tǒng)引導(dǎo)管理器在虛擬域啟動過程的工作流程以及VTPM設(shè)備的初始化過程。虛擬域管理工具根據(jù)虛擬域配置文件的信息將控
制權(quán)交給虛擬域系統(tǒng)引導(dǎo)管理器;虛擬域系統(tǒng)引導(dǎo)管理器訪問客戶虛擬域的 磁盤鏡像文件,從中找到客戶虛擬域的引導(dǎo)配置信息并加以分析,然后將啟 動選項輸出并提供用戶選擇,然后根據(jù)用戶的選擇結(jié)果,將相應(yīng)的內(nèi)核啟動 文件存放到特權(quán)域中,并將內(nèi)核啟動文件的路徑信息反饋給虛擬域管理工 具,然后虛擬域管理工具繼續(xù)虛擬域的啟動工作。
網(wǎng)絡(luò)化時代對PC的安全性和易用性提出了越來越高的要求,傳統(tǒng)的PC 系統(tǒng)結(jié)構(gòu)以效率優(yōu)先而不是以安全優(yōu)先原則設(shè)計的,因此現(xiàn)有的PC系統(tǒng)越 來越容易遭受黑客、間諜軟件和病毒的攻擊。為了解決PC機(jī)結(jié)構(gòu)上的不安 全問題,從根本上提高其可信性,可信計算平臺聯(lián)盟TCPA(后來更名為TCG) 提出通過增強(qiáng)現(xiàn)有的終端體系結(jié)構(gòu)的安全性來保證整個系統(tǒng)的安全,主要思 路是在各種終端(包含PC、手機(jī)以及其它移動智能終端等)硬件平臺上引 入具有安全存儲和加密功能的可信平臺模塊(又稱為可信芯片)TPM;將啟
動操作系統(tǒng)的過程分為幾個相對獨立的層,以TPM作為可信計算平臺的信任 根,下層先度量驗證上層完整性,并將度量結(jié)果存入TPM芯片的PCR寄存器 中,然后傳遞系統(tǒng)的運行控制權(quán),層層迭代,直至控制權(quán)傳予操作系統(tǒng)內(nèi)核, 構(gòu)建一條完善的信任鏈,見圖4。 TPM寄存器的數(shù)據(jù)在計算機(jī)啟動后不能直 接修改,也不能清空。用戶可以根據(jù)相應(yīng)PCR寄存器的數(shù)值判斷當(dāng)前運行環(huán) 境是否可信,是否存在某些環(huán)節(jié)出現(xiàn)安全問題。信任鏈中各個階段進(jìn)行完整 性度量是由不同軟件完成的(1) BI0S、可選R0M以及操作系統(tǒng)引導(dǎo)管理器 的初始部分的度量軟件由硬件廠商提供,(2)操作系統(tǒng)引導(dǎo)管理器的剩余 部分以及操作系統(tǒng)內(nèi)核的度量由TrustGrub (開源軟件)完成,(3)操作系 統(tǒng)啟動以后的軟件度量由IBM公司開發(fā)的頂A軟件完成。
基于虛擬化技術(shù)與可信計算技術(shù)的終端平臺安全解決方案的有效實施 必須解決兩個問題 一是如何為客戶虛擬域提供TPM設(shè)備,圖5給出了支撐 客戶虛擬域基于純軟件的虛擬TPM進(jìn)行可信計算的系統(tǒng)框架圖;二是如何完 成客戶虛擬域的可信鏈各個階段的完整性度量。TrustGrub是一個開源軟件,可以完成虛擬機(jī)監(jiān)控器和特權(quán)域操作系統(tǒng)內(nèi)核的完整性度量;IMA是IBM公 司開發(fā)的軟件,可以完成特權(quán)域中各種應(yīng)用程序的完整性度量;通過將IMA 軟件整合到客戶虛擬域操作系統(tǒng)內(nèi)核,可以實現(xiàn)對客戶虛擬域應(yīng)用程序的度 量。由于虛擬域管理工具和虛擬域引導(dǎo)管理器缺乏度量功能,客戶虛擬域操 作系統(tǒng)啟動文件的完整性度量只能在整個計算機(jī)啟動的時候,由TrustGrub 來進(jìn)行。這種方法有以下缺陷(1)安全隱患,(2)可信虛擬域部署必須 在計算機(jī)啟動之前完成,可信虛擬域內(nèi)核在計算機(jī)啟動之后的任何修改都需 要重新啟動計算機(jī)后才能起作用,影響了其它虛擬域的運行,使得整個系統(tǒng) 缺乏靈活性,降低了 Xen虛擬技術(shù)的優(yōu)勢。
發(fā)明內(nèi)容
本發(fā)明的目的在于避免上述現(xiàn)有技術(shù)不足之處而提供支持零宕機(jī)的可 信虛擬域啟動文件完整性度量的方法,通過修改虛擬域管理工具和虛擬域引 導(dǎo)管理器,實現(xiàn)了可信虛擬域系統(tǒng)啟動文件在虛擬域系統(tǒng)啟動時才進(jìn)行完整 性度量。
本發(fā)明的目的可以通過以下措施來達(dá)到
支持零宕機(jī)的可信虛擬域啟動文件完整性度量的方法,通過修改特權(quán)域 的虛擬域管理工具和虛擬域引導(dǎo)管理器,實現(xiàn)可信虛擬域系統(tǒng)啟動時才進(jìn)行 虛擬域啟動文件的完整性度量,該方法部署方式如下
(1) 、首先虛擬域管理工具根據(jù)虛擬域配置文件啟動客戶虛擬域;
(2) 、虛擬域管理工具首先為該客戶虛擬域分配惟一標(biāo)識號,然后對該配 置文件進(jìn)行完整性度量并緩存度量值,并將緩存度量值以十六進(jìn)制ASCII的 形式存放到特權(quán)域/var/run/xend/boot/vmJ)ootJmsh—G/。s文件中,這里的 %s是該虛擬域的惟一標(biāo)識號;
(3) 、虛擬域管理工具根據(jù)虛擬域配置文件中的虛擬域引導(dǎo)管理器路徑信 息,調(diào)用虛擬域系統(tǒng)引導(dǎo)管理器,并將虛擬域標(biāo)識號、磁盤鏡像文件信息傳 遞給虛擬域系統(tǒng)引導(dǎo)管理器;
(4) 、虛擬域系統(tǒng)引導(dǎo)管理器訪問虛擬域的磁盤鏡像文件,從中提取虛擬域引導(dǎo)配置文件信息并解析,包括對新增加的measure參數(shù)的解析,然后將 啟動選項輸出到終端并等待用戶的選擇;
(5)、用戶選擇之后,虛擬域引導(dǎo)管理器按照measure參數(shù)列出的文件順 序?qū)@些文件依次進(jìn)行完整性度量,然后將度量結(jié)果以十六進(jìn)制ASCII的形 式存放到/var/run/xend/boot/vm—boot—hash—%s文件中,同時將引導(dǎo)配置 文件指定的PCR序號也寫入/var/run/xend/boot/vm—boot—hash—%s文件, 這里的%3是該虛擬域標(biāo)識號;最后虛擬域引導(dǎo)管理器將選擇項指定的內(nèi)核 啟動文件復(fù)制到特權(quán)域的/var/run/xend/boot/目錄下并重命名,并將重命 名后的文件名以及選擇項指定的啟動參數(shù)通過管道文件傳遞給虛擬域管理 工具;
(6) 、虛擬域管理工具從管道獲取信息后,分配系統(tǒng)資源、啟動虛擬域并 發(fā)出創(chuàng)建vTPM設(shè)備的指令;
(7) 、虛擬域的虛擬TPM設(shè)備啟動并開始工作后,首先根據(jù)通過自身的vTPM 惟一標(biāo)識號到XenStore中去査找對應(yīng)的虛擬域標(biāo)識號,然后并根據(jù)該標(biāo)識 號找到位于/var/run/xend/boot/路徑下的vm—boot_hash_%s文件,這里的 %s是査找到的對應(yīng)該vTPM的虛擬域標(biāo)識號;
(8) 、 vTPM設(shè)備程序讀取文件中的度量結(jié)果,并將其通過TPM—Extend方法 記錄到文件指定的PCR寄存器中。
通過上述方法的部署,可信虛擬域內(nèi)核在計算機(jī)運行的情況下可以做隨 意的修改然后再啟動,每次可信虛擬域啟動的時候,該虛擬域的配置文件、 內(nèi)核等啟動文件進(jìn)行完整性度量,度量結(jié)果存放到虛擬TPM設(shè)備的PCR寄存 器中;可信虛擬域重新啟動不影響在該硬件平臺運行的其他虛擬域。
本發(fā)明相比現(xiàn)有技術(shù)具有如下優(yōu)點
1、 本發(fā)明首次提出了對虛擬域配置文件的度量,增強(qiáng)了虛擬域的可信度。
2、 本發(fā)明極大縮短了虛擬域啟動文件的完整性度量與使用之間的間隔 時間,增強(qiáng)了虛擬域的安全性3、 本發(fā)明在實現(xiàn)可信虛擬域的同時,保持了 Xen虛擬技術(shù)的優(yōu)勢,允 許在計算機(jī)運行過程中動態(tài)地進(jìn)行可信虛擬域部署,包括虛擬域內(nèi)核系統(tǒng)的 重新定制或升級,實現(xiàn)了可信虛擬域啟動不會間斷同一硬件平臺上的其它虛 擬域的數(shù)據(jù)業(yè)務(wù)。
4、 本發(fā)明與現(xiàn)有的虛擬環(huán)境下的其他可信計算技術(shù)不沖突,能夠與這 些技術(shù)協(xié)同工作,建立完整的虛擬域啟動可信鏈。
圖1為Xen虛擬機(jī)框架圖
圖2給出了計算機(jī)開機(jī)啟動到客戶虛擬域啟動完畢的過程 圖3給出了虛擬域啟動過程中虛擬域系統(tǒng)引導(dǎo)管理器的工作流程以及 vTPM設(shè)備的初始化過程
圖4給出了計算機(jī)啟動過程中執(zhí)行流和度量流
圖5給出了支撐客戶虛擬域基于虛擬TPM進(jìn)行可信計算的系統(tǒng)框架圖 圖6是本發(fā)明中具有虛擬域啟動文件完整性度量功能的虛擬域啟動流 程圖。
具體實施例方式
本發(fā)明通過修改虛擬域管理工具和虛擬域引導(dǎo)管理器,實現(xiàn)了可信虛擬 域系統(tǒng)啟動文件在虛擬域系統(tǒng)啟動時才進(jìn)行完整性度量。啟動文件包括虛擬 域配置文件、虛擬域引導(dǎo)配置文件以及該文件指定的需要度量的文件。
啟動文件的完整性度量的過程如下
(1) 虛擬域管理工具開始啟動客戶虛擬域。
(2) 虛擬域管理工具度量虛擬域配置文件并保存結(jié)果。
(3) 虛擬域管理工具調(diào)用虛擬域系統(tǒng)引導(dǎo)管理器。
(4) 虛擬域系統(tǒng)引導(dǎo)管理器讀取并解析引導(dǎo)配置文件,對measure關(guān) 鍵詞指定的的文件進(jìn)行完整性度量并保存結(jié)果,同時保存引導(dǎo)配置文件所指 定的PCR序號。
(5) 虛擬域系統(tǒng)引導(dǎo)管理器繼續(xù)一些初始化工作,然后將控制權(quán)給虛擬域管理工具。
(6) 虛擬域管理工具發(fā)出創(chuàng)建vTPM設(shè)備的命令
(7) vTPM設(shè)備程序,在初始化完成之后讀取虛擬域管理工具和虛擬域 系統(tǒng)引導(dǎo)管理器兩個程序?qū)μ摂M域配置文件和用戶指定的文件的度量結(jié)果, 并將結(jié)果存儲到指定的PCR寄存器中。
下面根據(jù)圖6對本發(fā)明中涉及的各組件的工作流程進(jìn)行詳細(xì)說明
1、 首先虛擬域管理工具根據(jù)虛擬域配置文件啟動客戶虛擬域。
2、 虛擬域管理工具首先為該客戶虛擬域分配惟一標(biāo)識號,然后對該配 置文件進(jìn)行完整性度量并緩存度量值,并將緩存度量值以十六進(jìn)制ASCII的 形式存放到特權(quán)域/var/run/xend/boot/vm—boot—hash—%s文件中。這里的 %s是該虛擬域的惟一標(biāo)識號,這樣可以用于區(qū)別不同的虛擬域的度量結(jié)果。
3、 虛擬域管理工具根據(jù)虛擬域配置文件中的虛擬域引導(dǎo)管理器路徑信 息,調(diào)用虛擬域系統(tǒng)引導(dǎo)管理器,并將虛擬域標(biāo)識號、磁盤鏡像文件等信息 傳遞給虛擬域系統(tǒng)引導(dǎo)管理器。
4、 虛擬域系統(tǒng)引導(dǎo)管理器訪問虛擬域的磁盤鏡像文件,從中提取虛擬 域引導(dǎo)配置文件信息并解析,包括對新增加的measure參數(shù)的解析,然后將 啟動選項輸出到終端并等待用戶的選擇。
5、 用戶選擇之后,虛擬域引導(dǎo)管理器按照measure參數(shù)列出的文件順 序?qū)@些文件依次進(jìn)行完整性度量,然后將度量結(jié)果以十六進(jìn)制ASCII的形 式存放到/var/run/xend/boot/vm—boot—hash—%s文件中,同時將引導(dǎo)配置 文件指定的PCR序號也寫入/var/run/xend/boot/vm—boot—hash—%s文件,
這里的%3是該虛擬域標(biāo)識號;最后虛擬域引導(dǎo)管理器將選擇項指定的內(nèi)核
啟動文件復(fù)制到特權(quán)域的/var/run/xend/boot/目錄下并重命名,并將重命 名后的文件名以及選擇項指定的啟動參數(shù)通過管道文件傳遞給虛擬域管理 工具。
6、虛擬域管理工具從管道獲取信息后,分配系統(tǒng)資源、啟動虛擬域并發(fā)出創(chuàng)建VTPM設(shè)備的指令。
7、 虛擬域的虛擬TPM設(shè)備程序啟動并開始工作后,首先根據(jù)自身的vTPM 惟一標(biāo)識號到XenStore中去查找對應(yīng)的虛擬域標(biāo)識號,然后并根據(jù)虛擬域 標(biāo)識號找到位于/var/run/xend/boot/路徑下的vm_boot—hash—%s文件,這 里的%3是査找到的對應(yīng)該vTPM的虛擬域標(biāo)識號。
8、 vTPM設(shè)備程序讀取/var/run/xend/boot/vmjDoot—hash—%s文件中的 度量結(jié)果,并將其通過TPM_EXtend方法記錄到文件指定的PCR寄存器中。
通過上述方法,可以實現(xiàn)在不重新啟動計算機(jī)的情況下,對可信虛擬域 的內(nèi)核進(jìn)行修改后再啟動;虛擬域啟動過程中,對該虛擬域的配置文件、內(nèi) 核、策略等重要文件進(jìn)行完整性度量,并記錄到相應(yīng)的虛擬TPM設(shè)備中;而 這一過程對其他虛擬域不會造成任何影響,保證了可信虛擬域的啟動不會間 斷同一硬件平臺上的其它虛擬域的數(shù)據(jù)業(yè)務(wù);完整性度量結(jié)果可以在虛擬域
啟動完成之后通過TPM工具進(jìn)行査看和分析。
權(quán)利要求
1、支持零宕機(jī)的可信虛擬域啟動文件完整性度量的方法,其特征在于本方法通過修改特權(quán)域的虛擬域管理工具和虛擬域引導(dǎo)管理器,實現(xiàn)可信虛擬域系統(tǒng)啟動時才進(jìn)行虛擬域啟動文件的完整性度量,該方法部署方式如下(1)、首先虛擬域管理工具根據(jù)虛擬域配置文件啟動客戶虛擬域;(2)、虛擬域管理工具首先為該客戶虛擬域分配惟一標(biāo)識號,然后對該配置文件進(jìn)行完整性度量并緩存度量值,并將緩存度量值以十六進(jìn)制ASCII的形式存放到特權(quán)域/var/run/xend/boot/vm_boot_hash_%s文件中,這里的%s是該虛擬域的惟一標(biāo)識號;(3)、虛擬域管理工具根據(jù)虛擬域配置文件中的虛擬域引導(dǎo)管理器路徑信息,調(diào)用虛擬域系統(tǒng)引導(dǎo)管理器,并將虛擬域標(biāo)識號、磁盤鏡像文件信息傳遞給虛擬域系統(tǒng)引導(dǎo)管理器;(4)、虛擬域系統(tǒng)引導(dǎo)管理器訪問虛擬域的磁盤鏡像文件,從中提取虛擬域引導(dǎo)配置文件信息并解析,包括對新增加的measure參數(shù)的解析,然后將啟動選項輸出到終端并等待用戶的選擇;(5)、用戶選擇之后,虛擬域引導(dǎo)管理器按照measure參數(shù)列出的文件順序?qū)@些文件依次進(jìn)行完整性度量,然后將度量結(jié)果以十六進(jìn)制ASCII的形式存放到/var/run/xend/boot/vm_boot_hash_%s文件中,同時將引導(dǎo)配置文件指定的PCR序號也寫入/var/run/xend/boot/vm_boot_hash_%s文件,這里的%s是該虛擬域標(biāo)識號;最后虛擬域引導(dǎo)管理器將選擇項指定的內(nèi)核啟動文件復(fù)制到特權(quán)域的/var/run/xend/boot/目錄下并重命名,并將重命名后的文件名以及選擇項指定的啟動參數(shù)通過管道文件傳遞給虛擬域管理工具;(6)、虛擬域管理工具從管道獲取信息后,分配系統(tǒng)資源、啟動虛擬域并發(fā)出創(chuàng)建vTPM設(shè)備的指令;(7)、虛擬域的虛擬TPM設(shè)備啟動并開始工作后,首先根據(jù)通過自身的vTPM惟一標(biāo)識號到XenStore中去查找對應(yīng)的虛擬域標(biāo)識號,然后并根據(jù)該標(biāo)識號找到位于/var/run/xend/boot/路徑下的vm_boot_hash_%s文件,這里的%s是查找到的對應(yīng)該vTPM的虛擬域標(biāo)識號;
2.根據(jù)權(quán)利要求1所述的支持零宕機(jī)的可信虛擬域啟動文件完整性度 量的方法,其特征在于通過上述方法的部署,可信虛擬域內(nèi)核在計算機(jī)運 行的情況下可以做隨意的修改然后再啟動,每次可信虛擬域啟動的時候,該 虛擬域的配置文件、內(nèi)核等啟動文件進(jìn)行完整性度量,度量結(jié)果存放到虛擬 TPM設(shè)備的PCR寄存器中;可信虛擬域重新啟動不影響在該硬件平臺運行的 其他虛擬域。
全文摘要
本發(fā)明涉及支持零宕機(jī)的可信虛擬域啟動文件完整性度量的方法。本方法通過修改特權(quán)域的虛擬域管理工具和虛擬域引導(dǎo)管理器,實現(xiàn)可信虛擬域系統(tǒng)啟動文件在被加載時才進(jìn)行完整性度量,克服了計算機(jī)啟動時就對這些文件進(jìn)行完整性度量所帶來的安全和可擴(kuò)展問題,增強(qiáng)了系統(tǒng)的靈活性,允許在計算機(jī)運行過程中動態(tài)地進(jìn)行可信虛擬域部署,包括虛擬域內(nèi)核系統(tǒng)的重新定制或升級,實現(xiàn)了可信虛擬域的啟動不會間斷同一硬件平臺上的其它虛擬域的數(shù)據(jù)業(yè)務(wù)??啥攘康膯游募颂摂M域配置文件、虛擬域引導(dǎo)配置文件以及該文件指定的需要度量的文件。本方法可以與虛擬環(huán)境下的其他可信計算技術(shù)協(xié)同工作來建立完整的虛擬域啟動可信鏈。
文檔編號G06F21/00GK101488173SQ20091007639
公開日2009年7月22日 申請日期2009年1月15日 優(yōu)先權(quán)日2009年1月15日
發(fā)明者帆 何, 博 劉, 劉吉強(qiáng), 常曉林, 彬 邢, 臻 韓 申請人:北京交通大學(xué)