專利名稱:面向網(wǎng)絡(luò)化操作系統(tǒng)的可信任虛擬運(yùn)行平臺(tái)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)基礎(chǔ)軟件技術(shù)領(lǐng)域,主要解決如何設(shè)計(jì)和構(gòu)建一個(gè)可信任的網(wǎng)絡(luò)化操作系統(tǒng)虛擬運(yùn)行平臺(tái)。針對(duì)網(wǎng)絡(luò)化操作系統(tǒng)虛擬運(yùn)行平臺(tái)的主要操作和使用范圍, 包括物理服務(wù)器管理和可信任性認(rèn)證,虛擬鏡像和虛擬機(jī)管理及可信任性認(rèn)證,虛擬機(jī)遷移的可信任性認(rèn)證等,設(shè)計(jì)了相應(yīng)的認(rèn)證協(xié)議和算法??s略語和關(guān)鍵術(shù)語定義
TCC(Trusted Cloud Controller)可信云控制器
CM(Cloud Manager)云管理系統(tǒng)
BIOS (Basic Input Output System)基本輸入輸出系統(tǒng)
OS (Operating System)操作系統(tǒng)
VMM(Virtual Machine Monitor)虛擬機(jī)監(jiān)視器
TPM(Trusted Platform Module)可信賴平臺(tái)模塊
PCR(Platform Configuration registers)平臺(tái)配置寄存器
Bootloader 系統(tǒng)引導(dǎo)程序
ETE (External Trusted Entity)外部可信任實(shí)體
背景技術(shù):
網(wǎng)絡(luò)化操作系統(tǒng)通過把用網(wǎng)絡(luò)連接的大規(guī)模計(jì)算資源進(jìn)行統(tǒng)一管理和調(diào)度,構(gòu)成一個(gè)計(jì)算資源池向用戶提供按需收費(fèi)的服務(wù)。它具有數(shù)據(jù)安全可靠、客戶端需求低、能夠輕松共享數(shù)據(jù)等優(yōu)點(diǎn)。作為一種新型計(jì)算模型,網(wǎng)絡(luò)化操作系統(tǒng)受到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注,越來越多的機(jī)構(gòu)和個(gè)人選擇以它作為基礎(chǔ)設(shè)施搭建分布式IT平臺(tái)。然而,使用網(wǎng)絡(luò)化操作系統(tǒng)也具有一定的風(fēng)險(xiǎn)。從網(wǎng)絡(luò)化操作系統(tǒng)資源的使用者和提供者兩個(gè)角度,上述風(fēng)險(xiǎn)可總結(jié)如下1.使用者角度使用者將計(jì)算過程或數(shù)據(jù)部署在遠(yuǎn)端服務(wù)器上,從而失去了對(duì)它們的直接控制。在非網(wǎng)絡(luò)化操作系統(tǒng)模式下,計(jì)算在服務(wù)器上運(yùn)行的位置取決于用戶的所在地,用戶可以物理訪問機(jī)器、可以直接監(jiān)控機(jī)器的狀態(tài)、可以令信任的人管理機(jī)器;而在網(wǎng)絡(luò)化操作系統(tǒng)中,由網(wǎng)絡(luò)化操作系統(tǒng)提供者來管理物理機(jī)器,使用者僅能利用網(wǎng)絡(luò)連接遠(yuǎn)距離管理虛擬機(jī),因此不具有上述管理機(jī)器的能力,即使用者失去了對(duì)計(jì)算過程和數(shù)據(jù)的直接控制。2.提供者角度提供者可能并不知道在其系統(tǒng)上運(yùn)行的使用者服務(wù)的具體細(xì)節(jié)。 使用者使用平臺(tái)資源或在平臺(tái)上部署自己的應(yīng)用,這些行為多變且不具有可預(yù)測(cè)性。以 !^cebook為例,它允許第三方應(yīng)用在其平臺(tái)上的自由發(fā)布,并不對(duì)其進(jìn)行詳細(xì)的驗(yàn)證,用戶如果添加了某一惡意應(yīng)用,則平臺(tái)或其他使用者的敏感數(shù)據(jù)可能會(huì)遭到惡意應(yīng)用的竊取和破壞。綜上,在網(wǎng)絡(luò)化操作系統(tǒng)中,不同對(duì)象之間的交互可能是敏感多變的,缺乏相互之間的有效信任、缺乏可信賴的故障檢測(cè)和仲裁機(jī)制會(huì)損失潛在的用戶,因此需要構(gòu)建信任管理框架來建立、協(xié)商和維護(hù)系統(tǒng)中不同實(shí)體之間的信任行為,保證各方都能按照協(xié)議好的情況運(yùn)行,并在不符合協(xié)議情況出現(xiàn)時(shí)能夠有效檢測(cè)出來報(bào)告給相關(guān)方。具體來說,網(wǎng)絡(luò)化操作系統(tǒng)中包含許多注冊(cè)的物理節(jié)點(diǎn),虛擬機(jī)會(huì)被分配到某一物理節(jié)點(diǎn)上運(yùn)行并在需要時(shí)遷移到其他節(jié)點(diǎn)上,如何驗(yàn)證這些過程中各個(gè)實(shí)體的完整性與可信任性,如何確保虛擬機(jī)始終運(yùn)行在一個(gè)可信任的環(huán)境下,都具有十分重要的意義。在上述過程中,可能會(huì)遇到的威脅主要包括以下幾個(gè)方面1.物理節(jié)點(diǎn)在啟動(dòng)前或啟動(dòng)過程中的改動(dòng)需要可檢測(cè)物理節(jié)點(diǎn)的硬件、BIOS、 bootloader或VMM在啟動(dòng)前或啟動(dòng)過程中遭到了惡意修改;2.物理節(jié)點(diǎn)在啟動(dòng)后運(yùn)行時(shí)的配置改動(dòng)需要可檢測(cè)物理節(jié)點(diǎn)的硬件、BIOS、 bootloader或VMM在運(yùn)行時(shí)遭到了惡意修改;3.系統(tǒng)中各個(gè)節(jié)點(diǎn)間通信的過程,有可能遭遇重放攻擊、篡改和假冒等威脅。本專利針對(duì)以上3各方面的威脅,通過設(shè)立第三方可信認(rèn)證機(jī)構(gòu),即可信云控制器,對(duì)每一個(gè)網(wǎng)絡(luò)化操作系統(tǒng)中的節(jié)點(diǎn),設(shè)計(jì)其可信注冊(cè)及啟動(dòng)機(jī)制;經(jīng)過可信云控制器的認(rèn)證協(xié)議后,方可成為一個(gè)可信節(jié)點(diǎn),提供虛擬機(jī)可信的宿主運(yùn)行環(huán)境,保證其完整性和正確性遭到的破壞能夠在啟動(dòng)過程中被檢測(cè)出來,并且中斷受破壞機(jī)器的啟動(dòng)和注冊(cè)過程。 且對(duì)虛擬機(jī)的主要操作,即啟動(dòng)過程和遷移過程,設(shè)計(jì)了相應(yīng)的可信任保證機(jī)制。
發(fā)明內(nèi)容
根據(jù)以上分析,本專利提出面向網(wǎng)絡(luò)化操作系統(tǒng)的可信任虛擬運(yùn)行平臺(tái)體系結(jié)構(gòu),如圖1所示??尚湃翁摂M運(yùn)行平臺(tái)包含網(wǎng)絡(luò)化操作系統(tǒng)平臺(tái)和外部可信任實(shí)體兩大部分。外部可信任實(shí)體提供了 TCC用來對(duì)網(wǎng)絡(luò)化操作系統(tǒng)平臺(tái)中物理節(jié)點(diǎn)的可信任性進(jìn)行驗(yàn)證。每個(gè)物理節(jié)點(diǎn)最下層是硬件平臺(tái),其中包含了 TPM,用來保證物理節(jié)點(diǎn)啟動(dòng)過程中的可信任性;物理節(jié)點(diǎn)上層的軟件棧由下到上依次包括BIOS、Bootloader、操作系統(tǒng)內(nèi)核以及 VMM,而各種不同需求的虛擬機(jī)就運(yùn)行在VMM之上。對(duì)其中的主要角色和變量定義說明如下EKputcc =TCC的簽署公鑰(事先公開)EKpetcc =TCC 的簽署私鑰TKputcc =TCC的公鑰(事先公開)TKpetcc =TCC 的私鑰EKpun 物理節(jié)點(diǎn)的簽署公鑰(事先公開)EKpen 物理節(jié)點(diǎn)的簽署私鑰TKpun:物理節(jié)點(diǎn)的公鑰TKpkn:物理節(jié)點(diǎn)的私鑰ECLtcc =TCC的預(yù)期配置列表(事先公開)CLtcc =TCC的配置列表,在物理節(jié)點(diǎn)注冊(cè)時(shí)由TCC發(fā)送給物理節(jié)點(diǎn)并在物理節(jié)點(diǎn)端與ECLra對(duì)比CLn 物理節(jié)點(diǎn)的配置列表,在物理節(jié)點(diǎn)注冊(cè)時(shí)由物理節(jié)點(diǎn)發(fā)送給TCC,TCC將其保存在本地目錄Ks 一次會(huì)話中使用的對(duì)稱密鑰
challenge 挑戰(zhàn)發(fā)送給對(duì)方,若對(duì)方返回的信息中包含該challenge表明對(duì)方可以解密自己的信息wm_stat 虛擬機(jī)的狀態(tài)信息h(wm_stat) :wm_stat 的 Hash 值N 物理節(jié)點(diǎn)在可信任虛擬運(yùn)行平臺(tái)中的標(biāo)號(hào)本專利針對(duì)面向網(wǎng)絡(luò)化操作系統(tǒng)的可信任虛擬運(yùn)行平臺(tái)的4個(gè)關(guān)鍵過程及操作設(shè)計(jì)可信算法,分別是(1)物理節(jié)點(diǎn)注冊(cè)過程,這個(gè)過程需要物理節(jié)點(diǎn)和TCC相互驗(yàn)證,最后保證物理節(jié)點(diǎn)的配置信息保存到TCC本地目錄中,用于TCC以后對(duì)物理節(jié)點(diǎn)真實(shí)性的驗(yàn)證;( 虛擬機(jī)啟動(dòng)過程,該過程由用戶發(fā)起,經(jīng)CM分配一個(gè)物理節(jié)點(diǎn),然后該節(jié)點(diǎn)在TCC 的控制下完成對(duì)虛擬機(jī)的啟動(dòng);C3)虛擬機(jī)跨物理節(jié)點(diǎn)遷移過程,該過程由CM指定遷移的目的節(jié)點(diǎn),并由TCC驗(yàn)證源節(jié)點(diǎn)和目的節(jié)點(diǎn)的可信任性,最后虛擬機(jī)由源節(jié)點(diǎn)遷移到目的節(jié)點(diǎn);(4)物理節(jié)點(diǎn)安全啟動(dòng)過程,該過程用來保證物理節(jié)點(diǎn)在啟動(dòng)過程中的可信任性。在所有的過程中,用公鑰加密是為了保證信息在傳輸過程中不被泄露,用私鑰簽名用于驗(yàn)證簽名者的身份。物理節(jié)點(diǎn)注冊(cè)過程的算法描述如圖2所示。具體步驟如下1)物理節(jié)點(diǎn)向TCC發(fā)送一個(gè)請(qǐng)求challenge以驗(yàn)證TCC的身份;2) TCC將自己的配置列表CLra和剛才接收的challenge用自己TPM模塊的簽署私鑰EKrara簽名,并綁定一個(gè)請(qǐng)求challenge^回復(fù)給物理節(jié)點(diǎn),然后等待物理節(jié)點(diǎn)的注冊(cè) fn息;3)物理節(jié)點(diǎn)用TCC的TPM模塊的簽署公鑰EKputo解析出CLra,與事先收到的TCC 預(yù)期配置列表ECLto對(duì)比,如果一致即驗(yàn)證的TCC的真實(shí)身份。然后物理節(jié)點(diǎn)將自己的配置列表(、和剛從接收到的(^3116叫4。。用自己的簽署私鑰簽名,隨后用TCC的公鑰加密這個(gè)簽名以及物理節(jié)點(diǎn)的公鑰TKPUN,這樣保證了傳輸過程中的保密性,最后將這個(gè)加密的信息發(fā)送給TCC ;4) TCC用物理節(jié)點(diǎn)TPM模塊的簽署公鑰EKpkn解析出CLn同時(shí)驗(yàn)證了物理節(jié)點(diǎn)的真實(shí)性,然后TCC將物理節(jié)點(diǎn)的公鑰以及配置列表保存到本地一個(gè)目錄中,然后用自己的私鑰TKrara對(duì)確認(rèn)信息ACK進(jìn)行簽名,然后發(fā)送給物理節(jié)點(diǎn)以通知其注冊(cè)成功。虛擬機(jī)啟動(dòng)過程的算法描述如圖3所示。步驟如下1) User向CM請(qǐng)求一個(gè)虛擬機(jī)。User向CM發(fā)送的請(qǐng)求包括兩部分{vm_stat, h (vm_stat)} Kvm 和 Ichallengeu, KvJ TKputcc ;前者使用 her 本地創(chuàng)建的一個(gè)會(huì)話密鑰Kvm來加密虛擬機(jī)的初始化狀態(tài)vm_Stat以及該狀態(tài)的Hash值h (vm_stat); 后者使用TCC的公鑰TKpura來加密本次請(qǐng)求的標(biāo)號(hào)chalIengi5u和her創(chuàng)建的會(huì)話密鑰Kvm, 該加密信息最終由TCC來解密得到會(huì)話密鑰Kvm,然后將其發(fā)送給物理節(jié)點(diǎn);2) CM接收到信息后,在可信任虛擬運(yùn)行平臺(tái)中選擇一個(gè)物理節(jié)點(diǎn)然后將該信息轉(zhuǎn)發(fā)給物理節(jié)點(diǎn);3)物理節(jié)點(diǎn)保留下{vm_Stat,h (vm_Stat)} Kvm,并將 IchaIlengeu, KvJ TKputc 連同與TCC會(huì)話的標(biāo)志challenge用自己的私鑰簽名,然后將簽名的結(jié)果以及自己在可信任虛擬運(yùn)行平臺(tái)中的標(biāo)號(hào)N用TCC的公鑰加密,最后將加密的結(jié)果發(fā)送給TCC,以獲得與her的會(huì)話密鑰Kvm ;
4)TCC接收到消息后用自己的私鑰解密,得到物理節(jié)點(diǎn)簽名的信息以及該物理節(jié)點(diǎn)的在可信任虛擬運(yùn)行平臺(tái)中的標(biāo)號(hào),然后TCC通過該標(biāo)號(hào)在本地目錄中搜索該物理節(jié)點(diǎn)的公鑰,并用它驗(yàn)證得到Ichallengeu, Kj TKpurce和本次會(huì)話標(biāo)志challenge,然后TCC用自己的私鑰解密前者得到challenge和her與物理節(jié)點(diǎn)之間的會(huì)話密鑰Kvm,最后TCC將 Challenge^Challengeu以及會(huì)話密鑰Kvm用物理節(jié)點(diǎn)的公鑰加密并用自己的私鑰簽名后發(fā)送給物理節(jié)點(diǎn);5)物理節(jié)點(diǎn)接收到TCC返回的信息后,用TCC的公鑰驗(yàn)證并用自己的私鑰解密得到challenge和會(huì)話密鑰Kvm,然后用Kvm加密challenge和自己在可信任虛擬運(yùn)行平臺(tái)中的標(biāo)號(hào),并將加密后的結(jié)果發(fā)送給User。虛擬機(jī)跨物理節(jié)點(diǎn)遷移過程的算法描述如圖4所示。步驟如下1) CM將物理節(jié)點(diǎn)d的標(biāo)號(hào) 發(fā)送給物理節(jié)點(diǎn)s,以通知物理節(jié)點(diǎn)s本機(jī)上VM遷移的目的節(jié)點(diǎn)是物理節(jié)點(diǎn)d;2)物理節(jié)點(diǎn)s用自己的私鑰對(duì)遷移目的節(jié)點(diǎn)物理節(jié)點(diǎn)d的標(biāo)號(hào)Nd和本次會(huì)話的標(biāo)號(hào)challenge進(jìn)行簽名,然后將簽名的結(jié)果和自己的標(biāo)號(hào)Ns用TCC的公鑰加密并發(fā)送給TCC,以獲得物理節(jié)點(diǎn)d的公鑰;3) TCC接收到物理節(jié)點(diǎn)s的請(qǐng)求,解密后將本次會(huì)話標(biāo)號(hào)challenge和物理節(jié)點(diǎn) d的公鑰用自己的私鑰簽名并用物理節(jié)點(diǎn)s的公鑰加密,并將加密的結(jié)果返回給物理節(jié)點(diǎn)
S ;4)物理節(jié)點(diǎn)s接收到TCC的回復(fù)后解密出物理節(jié)點(diǎn)d的公鑰,然后用自己的私鑰對(duì)本地生產(chǎn)的與物理節(jié)點(diǎn)d的會(huì)話密鑰和新會(huì)話標(biāo)號(hào)challenge^進(jìn)行簽名,并將簽名的結(jié)果以及自己的標(biāo)號(hào)Ns用物理節(jié)點(diǎn)d的公鑰加密,然后發(fā)送給物理節(jié)點(diǎn)d ;5)物理節(jié)點(diǎn)d接收到物理節(jié)點(diǎn)s的信息后解密出物理節(jié)點(diǎn)s的標(biāo)號(hào)Ns和用物理節(jié)點(diǎn)s私鑰簽名的信息,下一步物理節(jié)點(diǎn)d需要向TCC請(qǐng)求物理節(jié)點(diǎn)s的公鑰以驗(yàn)證這個(gè)簽名,所以,物理節(jié)點(diǎn)d用自己的私鑰簽名新的會(huì)話標(biāo)號(hào)Challenged和物理節(jié)點(diǎn)s的標(biāo)號(hào) Ns,然后連同自己的標(biāo)號(hào) 用TCC的公鑰加密并傳送給TCC ;6) TCC將chal Ienged和物理節(jié)點(diǎn)s的公鑰用自己的私鑰簽名并用物理節(jié)點(diǎn)d的公鑰加密發(fā)送給物理節(jié)點(diǎn)d ;7)物理節(jié)點(diǎn)d接收到TCC的信息并解密出物理節(jié)點(diǎn)s的公鑰Ns,然后用Ns驗(yàn)證得出與物理節(jié)點(diǎn)s的會(huì)話密鑰Ks ;并用該會(huì)話密鑰加密challenge-并發(fā)送給物理節(jié)點(diǎn)s ;8)物理節(jié)點(diǎn)s接收到物理節(jié)點(diǎn)d的信息后,解密出challenge-并得知物理節(jié)點(diǎn)d 已經(jīng)可以做好接收VM的準(zhǔn)備,然后將自己本地VM的狀態(tài)以及該狀態(tài)的Hash值用會(huì)話密鑰 Ks加密發(fā)送給物理節(jié)點(diǎn)d ;9)物理節(jié)點(diǎn)d接收到物理節(jié)點(diǎn)s所發(fā)送來的VM的狀態(tài)信息并通過Hash值對(duì)比, 如果一致,就在本地運(yùn)行該VM。物理節(jié)點(diǎn)安全啟動(dòng)過程的算法描述如圖5所示。使用TPM來作為可信的基礎(chǔ),其本質(zhì)上是一片含有存儲(chǔ)部件和獨(dú)立密碼運(yùn)算部件的系統(tǒng)安全芯片,能夠?yàn)槠脚_(tái)提供密碼服務(wù)功能、可信存儲(chǔ)功能,對(duì)外提供受保護(hù)的、系統(tǒng)的、規(guī)范的訪問接口,TCG組織發(fā)布的TPM 規(guī)范對(duì)其實(shí)現(xiàn)原理、功能接口作了詳細(xì)規(guī)定。我們使用它的完整性度量機(jī)制來實(shí)現(xiàn)安全啟動(dòng),其方法為通過在信息設(shè)備啟動(dòng)過程中對(duì)BIOS、bootloader、操作系統(tǒng)、VMM依次進(jìn)行完整性驗(yàn)證,從而保證信息處理設(shè)備的安全啟動(dòng)。圖5為TPM安全芯片應(yīng)用于安全啟動(dòng)的流程。具體步驟如下1)在確保物理節(jié)點(diǎn)安全的環(huán)境下,如生產(chǎn)線上,或首次應(yīng)用時(shí),生成BIOS、 bootloader、操作系統(tǒng)、VMM的完整性校驗(yàn)碼,存儲(chǔ)在TPM安全芯片中;2)在物理節(jié)點(diǎn)加電時(shí),其內(nèi)部的TPM芯片進(jìn)行基本初始化;3) TPM安全芯片讀出BIOS代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè)PCR中;4) TPM安全芯片讀出bootloader代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè) PCR 中;5) TPM安全芯片讀出待加載操作系統(tǒng)代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè)PCR中;6) TPM安全芯片讀出VMM代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè)PCR中;7)從存儲(chǔ)部件中讀取預(yù)先保存的完整性校驗(yàn)碼,判斷其與計(jì)算出的各完整性校驗(yàn)碼是否分別一致,如果全部一致,則CPU逐步運(yùn)行讀取的BIOS代碼、bootloader代碼、操作系統(tǒng)和VMM ;否則,禁用讀出的BIOS代碼,并發(fā)出不一致部件代碼已被非法修改的提示。
圖1為面向網(wǎng)絡(luò)化操作系統(tǒng)的可信任虛擬運(yùn)行平臺(tái)體系結(jié)構(gòu)圖2為物理節(jié)點(diǎn)注冊(cè)過程圖3為虛擬機(jī)啟動(dòng)過程圖4為虛擬機(jī)跨物理節(jié)點(diǎn)遷移過程圖5為物理節(jié)點(diǎn)安全啟動(dòng)過程
具體實(shí)施例方式本專利的技術(shù)在具體實(shí)施時(shí)需要注意以下事項(xiàng)1)由外部可信任實(shí)體提供可信云管理器來對(duì)網(wǎng)絡(luò)化操作系統(tǒng)平臺(tái)進(jìn)行驗(yàn)證。 TCC在本地管理一個(gè)目錄,該目錄中存放有網(wǎng)絡(luò)化操作系統(tǒng)中可信任物理節(jié)點(diǎn)的簽署公鑰 EKpun,公鑰TKpun以及配置列表CLn等信息,此外它還負(fù)責(zé)以安全的渠道對(duì)外公布自己的簽署公鑰EKpura、公鑰TKputo和預(yù)期的TCC配置列表CLto。2)本專利另假設(shè)以下條件成立a)外部可信任實(shí)體的可信任性不需要驗(yàn)證;b)TCC的簽署公鑰、公鑰以及預(yù)期配置列表,物理節(jié)點(diǎn)的簽署公鑰以及預(yù)期配置列表在系統(tǒng)運(yùn)行前公布,它們的可信性由外部可信任實(shí)體保證,不在本專利的考慮范圍;a) TPM的可信任性由TPM生產(chǎn)商保證,也不作為本專利的內(nèi)容。3)為保證本專利的技術(shù)在實(shí)際部署中能夠施行,需要輔助一些必要的物理防范手段和管理措施。如a)出入管理無關(guān)人員未經(jīng)管理人員批準(zhǔn)嚴(yán)禁進(jìn)入機(jī)房,進(jìn)入機(jī)房人員不得攜帶任何易燃易爆和強(qiáng)磁物品及其它與機(jī)房工作無關(guān)的物品;b)安全管理計(jì)算機(jī)房要保持清潔、衛(wèi)生,并由專人7拉4負(fù)責(zé)管理和維護(hù)(包括溫度、濕度、電力系統(tǒng)、網(wǎng)絡(luò)設(shè)備等),值班人員應(yīng)恪守保密制度,不得擅自泄露中心各種信息資料與數(shù)據(jù);c)操作管理值班人員必須密切監(jiān)視中心設(shè)備運(yùn)行狀況以及各網(wǎng)點(diǎn)運(yùn)行情況,確保安全、高效運(yùn)行。嚴(yán)格按規(guī)章制度要求做好各種數(shù)據(jù)、文件的備份工作,中心服務(wù)器數(shù)據(jù)庫要定期進(jìn)行雙備份,并嚴(yán)格實(shí)行異地存放、專人保管,所有重要文檔定期整理裝訂,專人保管,以備后查;d)運(yùn)行管理各類軟件系統(tǒng)的維護(hù)、增刪、配置的更改,各類硬件設(shè)備的添加、更換必需經(jīng)負(fù)責(zé)人書面批準(zhǔn)后方可進(jìn)行,必須按規(guī)定進(jìn)行詳細(xì)登記和記錄,對(duì)各類軟件、現(xiàn)場(chǎng)資料、檔案整理存檔。
權(quán)利要求
1.提出面向網(wǎng)絡(luò)化操作系統(tǒng)的可信任虛擬運(yùn)行平臺(tái)體系結(jié)構(gòu),如圖1所示??尚湃翁摂M運(yùn)行平臺(tái)包含網(wǎng)絡(luò)化操作系統(tǒng)平臺(tái)和外部可信任實(shí)體兩大部分。外部可信任實(shí)體提供了 TCC用來對(duì)網(wǎng)絡(luò)化操作系統(tǒng)平臺(tái)中物理節(jié)點(diǎn)的可信任性進(jìn)行驗(yàn)證。每個(gè)物理節(jié)點(diǎn)最下層是硬件平臺(tái),其中包含了 TPM,用來保證物理節(jié)點(diǎn)啟動(dòng)過程中的可信任性;物理節(jié)點(diǎn)上層的軟件棧由下到上依次包括BIOS、Bootloader、操作系統(tǒng)內(nèi)核以及VMM,而各種不同需求的虛擬機(jī)就運(yùn)行在VMM之上
2.如權(quán)利要求1所述,本專利針對(duì)面向網(wǎng)絡(luò)化操作系統(tǒng)的可信任虛擬運(yùn)行平臺(tái)的4個(gè)關(guān)鍵過程及操作,設(shè)計(jì)相應(yīng)的可信任保證機(jī)制及算法,分別是(1)物理節(jié)點(diǎn)注冊(cè)過程;(2) 虛擬機(jī)啟動(dòng)過程;(3)虛擬機(jī)跨物理節(jié)點(diǎn)遷移過程;(4)物理節(jié)點(diǎn)安全啟動(dòng)過程。
3.物理節(jié)點(diǎn)注冊(cè)過程的算法描述如圖2所示。具體步驟如下1)物理節(jié)點(diǎn)向TCC發(fā)送一個(gè)請(qǐng)求challenge以驗(yàn)證TCC的身份;2)TCC將自己的配置列表CLto和剛才接收的challenge用自己TPM模塊的簽署私鑰 EKpkto簽名,并綁定一個(gè)請(qǐng)求challenge^回復(fù)給物理節(jié)點(diǎn),然后等待物理節(jié)點(diǎn)的注冊(cè)信息;3)物理節(jié)點(diǎn)用TCC的TPM模塊的簽署公鑰EKputo解析出CLra,與事先收到的TCC預(yù)期配置列表ECLra對(duì)比,如果一致即驗(yàn)證的TCC的真實(shí)身份。然后物理節(jié)點(diǎn)將自己的配置列表0^和剛從接收到的(^3116叫4。。用自己的簽署私鑰簽名,隨后用TCC的公鑰加密這個(gè)簽名以及物理節(jié)點(diǎn)的公鑰TKpun,這樣保證了傳輸過程中的保密性,最后將這個(gè)加密的信息發(fā)送給TCC ;4)TCC用物理節(jié)點(diǎn)TPM模塊的簽署公鑰EKpkn解析出CLn同時(shí)驗(yàn)證了物理節(jié)點(diǎn)的真實(shí)性,然后TCC將物理節(jié)點(diǎn)的公鑰以及配置列表保存到本地一個(gè)目錄中,然后用自己的私鑰 TKpetcc對(duì)確認(rèn)信息ACK進(jìn)行簽名,然后發(fā)送給物理節(jié)點(diǎn)以通知其注冊(cè)成功。
4.虛擬機(jī)啟動(dòng)過程的算法描述如圖3所示。步驟如下DUser向CM請(qǐng)求一個(gè)虛擬機(jī)。her向CM發(fā)送的請(qǐng)求包括兩部分{vm_stat,h(vm_ stat)} Kvm和IchaIlengeu, KvJ TKputcc ;前者使用her本地創(chuàng)建的一個(gè)會(huì)話密鑰Kvm來加密虛擬機(jī)的初始化狀態(tài)vm_Stat以及該狀態(tài)的Hash值h (vm_stat);后者使用TCC的公鑰TKputo 來加密本次請(qǐng)求的標(biāo)號(hào)challenge和her創(chuàng)建的會(huì)話密鑰Kvm,該加密信息最終由TCC來解密得到會(huì)話密鑰Kvm,然后將其發(fā)送給物理節(jié)點(diǎn);2)CM接收到信息后,在可信任虛擬運(yùn)行平臺(tái)中選擇一個(gè)物理節(jié)點(diǎn)然后將該信息轉(zhuǎn)發(fā)給物理節(jié)點(diǎn);3)物理節(jié)點(diǎn)保留下{vm_Stat,h(VnustatMKvm,并將 IchaIlengeu, KvJ TKputc 連同與 TCC 會(huì)話的標(biāo)志challenge用自己的私鑰簽名,然后將簽名的結(jié)果以及自己在可信任虛擬運(yùn)行平臺(tái)中的標(biāo)號(hào)N用TCC的公鑰加密,最后將加密的結(jié)果發(fā)送給TCC,以獲得與her的會(huì)話密Kvm ;4)TCC接收到消息后用自己的私鑰解密,得到物理節(jié)點(diǎn)簽名的信息以及該物理節(jié)點(diǎn)的在可信任虛擬運(yùn)行平臺(tái)中的標(biāo)號(hào),然后TCC通過該標(biāo)號(hào)在本地目錄中搜索該物理節(jié)點(diǎn)的公鑰,并用它驗(yàn)證得到IchaIlengeu, KvJ TKputcc和本次會(huì)話標(biāo)志challenge,然后TCC用自己的私鑰解密前者得到challenge和her與物理節(jié)點(diǎn)之間的會(huì)話密鑰Kvm,最后TCC將 Challenge^Challengeu以及會(huì)話密鑰Kvm用物理節(jié)點(diǎn)的公鑰加密并用自己的私鑰簽名后發(fā)送給物理節(jié)點(diǎn);5)物理節(jié)點(diǎn)接收到TCC返回的信息后,用TCC的公鑰驗(yàn)證并用自己的私鑰解密得到 Challengeu和會(huì)話密鑰Kvm,然后用Kvm加密challenge和自己在可信任虛擬運(yùn)行平臺(tái)中的標(biāo)號(hào),并將加密后的結(jié)果發(fā)送給User。
5.虛擬機(jī)跨物理節(jié)點(diǎn)遷移過程的算法描述如圖4所示。步驟如下1)CM將物理節(jié)點(diǎn)d的標(biāo)號(hào) 發(fā)送給物理節(jié)點(diǎn)s,以通知物理節(jié)點(diǎn)s本機(jī)上VM遷移的目的節(jié)點(diǎn)是物理節(jié)點(diǎn)d;2)物理節(jié)點(diǎn)s用自己的私鑰對(duì)遷移目的節(jié)點(diǎn)物理節(jié)點(diǎn)d的標(biāo)號(hào)Nd和本次會(huì)話的標(biāo)號(hào)challenge進(jìn)行簽名,然后將簽名的結(jié)果和自己的標(biāo)號(hào)Ns用TCC的公鑰加密并發(fā)送給 TCC,以獲得物理節(jié)點(diǎn)d的公鑰;3)TCC接收到物理節(jié)點(diǎn)s的請(qǐng)求,解密后將本次會(huì)話標(biāo)號(hào)challenge和物理節(jié)點(diǎn)d的公鑰用自己的私鑰簽名并用物理節(jié)點(diǎn)s的公鑰加密,并將加密的結(jié)果返回給物理節(jié)點(diǎn)s ;4)物理節(jié)點(diǎn)s接收到TCC的回復(fù)后解密出物理節(jié)點(diǎn)d的公鑰,然后用自己的私鑰對(duì)本地生產(chǎn)的與物理節(jié)點(diǎn)d的會(huì)話密鑰和新會(huì)話標(biāo)號(hào)chalIenge5s2進(jìn)行簽名,并將簽名的結(jié)果以及自己的標(biāo)號(hào)Ns用物理節(jié)點(diǎn)d的公鑰加密,然后發(fā)送給物理節(jié)點(diǎn)d ;5)物理節(jié)點(diǎn)d接收到物理節(jié)點(diǎn)s的信息后解密出物理節(jié)點(diǎn)s的標(biāo)號(hào)Ns和用物理節(jié)點(diǎn) s私鑰簽名的信息,下一步物理節(jié)點(diǎn)d需要向TCC請(qǐng)求物理節(jié)點(diǎn)s的公鑰以驗(yàn)證這個(gè)簽名, 所以,物理節(jié)點(diǎn)d用自己的私鑰簽名新的會(huì)話標(biāo)號(hào)challenge^和物理節(jié)點(diǎn)s的標(biāo)號(hào)Ns,然后連同自己的標(biāo)號(hào) 用TCC的公鑰加密并傳送給TCC ;6)TCC將challenge^和物理節(jié)點(diǎn)s的公鑰用自己的私鑰簽名并用物理節(jié)點(diǎn)d的公鑰加密發(fā)送給物理節(jié)點(diǎn)d ;7)物理節(jié)點(diǎn)d接收到TCC的信息并解密出物理節(jié)點(diǎn)s的公鑰Ns,然后用Ns驗(yàn)證得出與物理節(jié)點(diǎn)s的會(huì)話密鑰Ks ;并用該會(huì)話密鑰加密challenge-并發(fā)送給物理節(jié)點(diǎn)s ;8)物理節(jié)點(diǎn)s接收到物理節(jié)點(diǎn)d的信息后,解密出challenge-并得知物理節(jié)點(diǎn)d已經(jīng)可以做好接收VM的準(zhǔn)備,然后將自己本地VM的狀態(tài)以及該狀態(tài)的Hash值用會(huì)話密鑰Ks 加密發(fā)送給物理節(jié)點(diǎn)d ;9)物理節(jié)點(diǎn)d接收到物理節(jié)點(diǎn)s所發(fā)送來的VM的狀態(tài)信息并通過Hash值對(duì)比,如果一致,就在本地運(yùn)行該VM。
6.物理節(jié)點(diǎn)安全啟動(dòng)過程的算法描述如圖5所示。具體步驟如下1)在確保物理節(jié)點(diǎn)安全的環(huán)境下,如生產(chǎn)線上,或首次應(yīng)用時(shí),生成BIOS、 bootloader、操作系統(tǒng)、VMM的完整性校驗(yàn)碼,存儲(chǔ)在TPM安全芯片中;2)在物理節(jié)點(diǎn)加電時(shí),其內(nèi)部的TPM芯片進(jìn)行基本初始化;3)TPM安全芯片讀出BIOS代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè)PCR中;4)TPM安全芯片讀出bootloader代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè)PCR中;5)TPM安全芯片讀出待加載操作系統(tǒng)代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè) PCR 中;6)TPM安全芯片讀出VMM代碼,計(jì)算其完整性校驗(yàn)碼,存放至TPM的一個(gè)PCR中;7)從存儲(chǔ)部件中讀取預(yù)先保存的完整性校驗(yàn)碼,判斷其與計(jì)算出的各完整性校驗(yàn)碼是否分別一致,如果全部一致,則CPU逐步運(yùn)行讀取的BIOS代碼、bootloader代碼、操作系統(tǒng)和VMM ;否則,禁用讀出的BIOS代碼,并發(fā)出不一致部件代碼已被非法修改的提示。
全文摘要
本發(fā)明設(shè)計(jì)一種面向網(wǎng)絡(luò)化操作系統(tǒng)的可信任虛擬運(yùn)行平臺(tái)技術(shù),屬于計(jì)算機(jī)基礎(chǔ)軟件技術(shù)領(lǐng)域。該技術(shù)針對(duì)典型的新型網(wǎng)絡(luò)應(yīng)用模式下網(wǎng)絡(luò)化操作系統(tǒng)的主要業(yè)務(wù)范圍和主要操作所面臨的主要威脅,通過設(shè)立第三方可信認(rèn)證機(jī)構(gòu),即可信云控制器,對(duì)每一個(gè)網(wǎng)絡(luò)化操作系統(tǒng)中的節(jié)點(diǎn),設(shè)計(jì)其可信注冊(cè)及啟動(dòng)機(jī)制;經(jīng)過可信云控制器的認(rèn)證協(xié)議后,方可成為一個(gè)可信節(jié)點(diǎn),提供虛擬機(jī)可信的宿主運(yùn)行環(huán)境,保證其完整性和正確性遭到的破壞能夠在啟動(dòng)過程中被檢測(cè)出來,并且中斷受破壞機(jī)器的啟動(dòng)和注冊(cè)過程。且對(duì)虛擬機(jī)的主要操作,即啟動(dòng)過程和遷移過程,設(shè)計(jì)了相應(yīng)的可信任保證機(jī)制。
文檔編號(hào)H04L9/32GK102202046SQ20111006126
公開日2011年9月28日 申請(qǐng)日期2011年3月15日 優(yōu)先權(quán)日2011年3月15日
發(fā)明者劉川意, 張旸旸, 楊金翠, 袁玉宇, 韓強(qiáng) 申請(qǐng)人:北京郵電大學(xué)