現(xiàn)實世界越來越依賴于計算機(jī)系統(tǒng),防止病毒對計算機(jī)系統(tǒng)的破壞,黑客對機(jī)密信息的竊取,加強(qiáng)計算機(jī)系統(tǒng)的安全性,更好的保護(hù)計算機(jī)內(nèi)部的數(shù)據(jù)信息已成為當(dāng)前信息安全領(lǐng)域新的挑戰(zhàn)。
由于軟件的復(fù)雜性、兼容性以及抗攻擊的脆弱性,單純采用軟件層面的防護(hù)不能完全保證計算機(jī)系統(tǒng)的安全。相比之下,可信計算通過在計算機(jī)硬件中加人新的安全芯片,為系統(tǒng)提供一個更為嚴(yán)密的基礎(chǔ)架構(gòu),對系統(tǒng)安全環(huán)境的啟動進(jìn)行有效的維護(hù)、對系統(tǒng)執(zhí)行的程序進(jìn)行限制性保護(hù)、對系統(tǒng)儲存的加密或敏感數(shù)據(jù)進(jìn)行嚴(yán)密的管理、提供有效的主機(jī)身份認(rèn)證、建立安全的網(wǎng)絡(luò)作業(yè)環(huán)境,使整個計算機(jī)系統(tǒng)成為可信賴的執(zhí)行環(huán)境。
然而,如今的可信計算架構(gòu)本身也存在一些亟待解決的問題,這主要包括軟件的動態(tài)度量理論不完善和對存儲空間保護(hù)的不足。可信計算中信任鏈傳遞的機(jī)制有一個較大的漏洞就是無論是靜態(tài)度量還是動態(tài)度量,都只能保證軟件在加載時候的可信,而在度量過后,軟件則完全暴露在未知的運(yùn)行環(huán)境中,軟件的運(yùn)行空間極有可能會遭到破壞,竊取或者篡改。而具有DMA功能的總線主設(shè)備的威脅程度最高。對于我國可信計算的現(xiàn)狀而言,缺乏自主可信的關(guān)鍵軟硬件,尚沒有形成統(tǒng)一的可信計算架構(gòu)。因此本文設(shè)計了一種增強(qiáng)存儲保護(hù)從計算機(jī)體系結(jié)構(gòu)上進(jìn)行安全防護(hù)的可信計算架構(gòu),從整體上提高可信計算平臺的安全性。
1.可信執(zhí)行技術(shù)
可信執(zhí)行技術(shù)(trusted execute technology, TXT)是英特爾公司提出的新一代PC平臺的安全解決方案。可信執(zhí)行的概念是將軟件執(zhí)行到一種已知的,可信的狀態(tài),可信執(zhí)行通過為應(yīng)用程序開啟一個私人環(huán)境,從而使得硬件資源與應(yīng)用程序請求鎖定在一起(如內(nèi)存池),使得受保護(hù)的應(yīng)用程序不能被其它任何惡意代碼或進(jìn)程所監(jiān)視,察看或者修改。
TXT體系結(jié)構(gòu)如圖1所示。
圖1 TXT體系結(jié)構(gòu)
相對于TCG的PC體系架構(gòu)而言,基于TXT技術(shù)的可信計算平臺所能提供的安全特性主要有以下幾點增強(qiáng):
(1)輸人輸出的保護(hù):建立的可信通道,支持對I/O接口通信的保護(hù)。
(2)受控啟動:提供了一套增強(qiáng)的擴(kuò)展指令集來對受控的軟件進(jìn)行度量和控制啟動,這一擴(kuò)展被稱為是安全模式擴(kuò)展(safer mode extensions,SMX),如果系統(tǒng)軟件啟動使用了SMX,這種軟件啟動模式被認(rèn)為是度量啟動環(huán)境(measured launched environment,MLE)。 MLE提供了不同的啟動機(jī)制和一些增強(qiáng)性的保護(hù),比如對一些可能的軟件損壞的保護(hù)。
(3)執(zhí)行保護(hù):保護(hù)程序執(zhí)行和存放敏感數(shù)據(jù)的內(nèi)存空間。這項特性允許某個應(yīng)用程序在一個相對獨(dú)立的環(huán)境中運(yùn)行,與平臺上的其它程序不能互相干擾。沒有任何其它程序能夠監(jiān)視或讀取在保護(hù)環(huán)境中運(yùn)行的程序數(shù)據(jù)。
2.增強(qiáng)存儲保護(hù)的可信計算架構(gòu)設(shè)計
在一個計算機(jī)系統(tǒng)中,用戶可能會運(yùn)行不同安全級別的軟件,例如用戶可能會處理一些敏感信息,同時系統(tǒng)中還運(yùn)行著其它一些未知的進(jìn)程。而現(xiàn)如今的可信計算架構(gòu)中,由于操作系統(tǒng)擁有完整的真實物理地址視圖,惡意代碼可以通過越權(quán)訪問破壞或竊取應(yīng)用程序內(nèi)存空間的數(shù)據(jù),而具有DMA訪問能力的設(shè)備也可以對任意位置的內(nèi)存空間進(jìn)行訪問,因此迫切地需要一種對內(nèi)存進(jìn)行保護(hù)的機(jī)制,虛擬化技術(shù)的發(fā)展則為這一機(jī)制提供了新的思路。因此本文在深入研究了可信執(zhí)行技術(shù)和虛擬化技術(shù)后,在此基礎(chǔ)上加人了DMA保護(hù)的模型,提出了一種增強(qiáng)存儲保護(hù)的可信計算架構(gòu)。本章將著重討論設(shè)計該架構(gòu)的整體框架、啟動過程和架構(gòu)中幾個重要的組成部分。
2.1整體框架
該可信執(zhí)行架構(gòu)包括三大部分:可信硬件平臺,可信BIOS和VMM以及用戶虛擬機(jī)。整體架構(gòu)如圖2所示。
圖2 整體框架
其中硬件平臺由安全增強(qiáng)的芯片組,CPU和I/O設(shè)備以及TCM模塊組成。安全增強(qiáng)芯片組和TCM模塊作為硬件層的核心部件。
本架構(gòu)中存儲保護(hù)來源于兩個方面:分區(qū)保護(hù)和DMA保護(hù)。其中分區(qū)保護(hù)是VMM提供的功能,通過在虛擬地址和物理地址之間加人宿主機(jī)物理地址,使得各個VM的運(yùn)行相互獨(dú)立,從而實現(xiàn)分區(qū)保護(hù)的功能。VMM控制著地址映射的硬件邏輯和數(shù)據(jù)結(jié)構(gòu),從而保護(hù)了分區(qū)的安全和完整性。而DMA保護(hù)則借鑒了CPU地址映射的思想,對傳統(tǒng)的DMA訪問架構(gòu)進(jìn)行了改進(jìn),加人了保護(hù)頁表以及地址轉(zhuǎn)換和設(shè)備分配的邏輯結(jié)構(gòu),從而保證了DMA訪問的合法性。
2.2啟動過程
由于在此架構(gòu)在可信計算平臺中引入了虛擬化層,在平臺啟動以后,運(yùn)行于虛擬機(jī)監(jiān)視器(VMM)之上的虛擬機(jī)(VM)可以多次重啟和關(guān)閉,這時的信任關(guān)系已不再是簡單的鏈?zhǔn)疥P(guān)系,因此靠信任鏈傳遞的靜態(tài)度量根將不再有效。因此本架構(gòu)采用動態(tài)度量信任根DRTM解決上述問題,與SRTM相對,DRTM不必在系統(tǒng)啟動之后的那一時刻建立,可以在平臺啟動以后的任何時刻動態(tài)的建立。
動態(tài)信任鏈傳遞如圖3所示。
圖3 動態(tài)信任鏈傳遞
使用動態(tài)度量根的啟動過程主要有以下幾步:
(1)加載VMM和認(rèn)證代碼模塊:當(dāng)啟動一個虛擬機(jī)管理器時,必須加載兩個代碼模塊到內(nèi)存。一個模塊是VMM本身的頁面,另一個模塊被稱之為認(rèn)證代碼模塊(authenticated code modules, ACM)。ACM只有在環(huán)境運(yùn)行的時候才啟動,并且是由芯片組所確定的,是唯一的,它由芯片組進(jìn)行數(shù)字簽名,在啟動繼續(xù)之前必須要確定數(shù)字簽名是否合法,如果合法才能夠繼續(xù)加載啟動。ACM的度量值將被作為平臺的動態(tài)度量根。
(2)將ACM加載進(jìn)內(nèi)存中以后,系統(tǒng)將關(guān)閉中斷和DMA訪問,以保證這一過程的安全可信。
(3)在這些準(zhǔn)備工作完成以后,處理器開始認(rèn)證和執(zhí)行ACM。ACM將對芯片組和處理器進(jìn)行一些列的配置(包括初始化平臺的堆等)和檢查以確保平臺是工作在一種正常的配置下。然后ACM開始度量驗證并啟動VMM。
(4)經(jīng)過度量的VMM,我們稱之為MVMM,MVMM開始進(jìn)行初始化工作,可以通過特殊的命令來訪問和配置芯片組中的相關(guān)寄存器,包括配置內(nèi)存保護(hù)和DMA保護(hù)的相關(guān)數(shù)據(jù)結(jié)構(gòu)。當(dāng)所有的配置都已經(jīng)完成,MVMM開始進(jìn)人執(zhí)行過程。度量并啟動VM,在以后的某個時刻,可以退出然后再啟動而不必進(jìn)行系統(tǒng)復(fù)位。
2.3硬件平臺
2.3.1地址空間
地址空間(包括物理RAM和芯片組的配置空間)中有很多區(qū)域是專門給動態(tài)度量啟動使用的。有一些需要為VMM所預(yù)留,而有一些則可以暴露給一個或多個用戶虛擬機(jī)。
物理RAM中主要有兩塊區(qū)域是動態(tài)度量啟動專用的,并且在MVMM啟動之前這兩塊區(qū)域是由BIOS預(yù)留的,分別是可信堆棧區(qū)域和ACM區(qū)域。每一片區(qū)域的基地址和大小都由芯片組中的配置寄存器所指定。
這兩塊區(qū)域只能被度量啟動所申請。安全堆棧主要包含以下內(nèi)容:
(1>系統(tǒng)加載器傳遞給認(rèn)證代碼模塊的數(shù)據(jù):這部分內(nèi)容包括了VMM頁表的物理基地址以及鏡像大小,在系統(tǒng)加載軟件初始化完成這部分內(nèi)容后,認(rèn)證代碼模塊將從這個基地址去加載VMM。
(2)認(rèn)證代碼模塊傳遞給VMM的數(shù)據(jù):包括了DMA保護(hù)中的MPT,表基地址的指針和MPT表的大小。
其初始化過程如圖4所示。
圖4 可信堆棧初始化過程
為了能夠保證和維護(hù)VMM加載的可信過程和對平臺配置的正確性,芯片組配置空間被分割為公共空間和私有空間。公共空間提供對配置寄存器的只讀訪問,MVMM可以選擇允許用戶訪問這片空間。私有空間允許寫訪問,包括一系列的命令寄存器,對這部分寄存器的操作只能由MVMM通過特殊的命令來進(jìn)行初始化和更改,如圖5所示。
圖5 芯片組空間
私有空間:這部分空間只能被認(rèn)證代碼模塊或者VMM訪問,安全增強(qiáng)芯片組的管理配置寄存器也處于這個空間,VMM和認(rèn)證代碼模塊只能通過特殊的訪問命令來訪問這片空間,在BIOS加載操作系統(tǒng)以后,這片區(qū)域?qū)Σ僮飨到y(tǒng)是透明的。
公共空間:安全增強(qiáng)芯片組的通用寄存器處于這個空間中,普通的讀寫訪問就可以訪問到這個空間中的內(nèi)容,這片區(qū)域?qū)Σ僮飨到y(tǒng)而言同樣是透明的。
需要特別注意的是,專用空間和公共空間的空間地址不同,但通過偏移量映射到的是物理上相同的一片寄存器空間。區(qū)別在于它們所具有的讀寫權(quán)限不同。這種權(quán)限取決于對寄存器的訪問來自于什么空間。
在芯片組的配置空間中,其中最重要的有以下幾組配置寄存器:
(1)認(rèn)證代碼模塊基地址和大小:通過這組寄存器指向了存儲空間中一片預(yù)留給認(rèn)證代碼模塊使用的內(nèi)存空間,由BIOS在加載ACM之前進(jìn)行初始化。
(2)ACM公鑰的HASH值:這個寄存器中的ACM公鑰的hash值將被用來認(rèn)證ACM模塊的合法性。
(3)安全堆棧基地址和大小:這部分空間也在加載虛擬機(jī)管理器的時候進(jìn)行初始化,這片區(qū)域也是BIOS預(yù)留的,提供給VMM,用戶虛擬機(jī)和認(rèn)證代碼模塊之間通訊使用。這組寄存器同樣通過BIOS來初始化。
(4)TCM中平臺配置寄存器的使用權(quán)限寄存器:這部分寄存器決定了能否對TCM中指定的PCR寄存器進(jìn)行擴(kuò)展操作。
(5) DMA重映射硬件相關(guān)配置寄存器:這些寄存器用來配置DMA硬件保護(hù)單元,一部分由BIOS進(jìn)行初始化,一部分由VMM進(jìn)行配置。
芯片組的私有配置空間只有通過特殊的命令由具有權(quán)限的可信代碼才能訪問,從而從硬件上保證了VMM的特權(quán)和操作的正確性。
2.3.2可信密碼模塊
可信密碼模塊(trust cryptography module,TCM)作為平臺的靜態(tài)可信根,作為整個平臺信任鏈傳遞的起點,需要完成的工作包括3個部分:啟動控制,密碼服務(wù),加密存儲和可信運(yùn)算,例如雜湊運(yùn)算、橢圓曲線密碼生成、數(shù)字簽名、對稱加解密運(yùn)算等。
傳統(tǒng)的TPM通過LPC總線與主機(jī)進(jìn)行通信,LPC總線是一種低速總線,用來進(jìn)行密碼運(yùn)算等的通信,效率較低,并且對LPC總線的硬件訪問并沒有任何的保護(hù)措施,不能驗證對TPM訪問的合法性。因此本文定義的可信密碼模塊將作為系統(tǒng)的一個PCI設(shè)備通過PCI總線與主機(jī)進(jìn)行通信,并且通過內(nèi)部進(jìn)行隔離,建立專用的通信協(xié)議來實現(xiàn)主機(jī)與TCM的通信,從而保證對TCM訪問的合法性。TCM主要包括5個部分:通信隔離模塊,CPU,非易失存儲器(non-volatile memory,NV),密碼運(yùn)算引擎,平臺配置寄存器(PCR)。其結(jié)構(gòu)如圖6所示。
圖6 TCM模塊
通信隔離模塊:提供通信隔離功能,上層驅(qū)動只能通過通信人口對TCM進(jìn)行讀寫訪問。并且讀寫訪問都采用專門定制的通信協(xié)議來進(jìn)行,將所有對TPM的操作都被封裝為報文。上層通過驅(qū)動程序?qū)笪倪M(jìn)行封裝和解析,TCM模塊本身通過內(nèi)部CPU進(jìn)行報文解析。這樣就保證了對TCM訪問的合法性,TCM內(nèi)部的空間對上層來說是透明的。
CPU:進(jìn)行密碼運(yùn)算,報文解析和存儲空間的管理。
NV:負(fù)責(zé)存儲數(shù)字證書,用戶口令,度量日志密鑰,BIOS鏡像,VMM鏡像等。
PCR:參見TCG1.2關(guān)于動態(tài)可信的規(guī)范,由于采用了動態(tài)度量根,因此TCM中的平臺狀態(tài)寄存器在原有的基礎(chǔ)上增加了3個PCR寄存器,對這3個寄存器的訪問權(quán)限由芯片組中的配置寄存器決定:
PCR17:認(rèn)證代碼模塊的度量值,作為平臺的動態(tài)度量根。
PCR18:VMM的度量值。
PCR19:用戶虛擬機(jī)的度量值。
2.4虛擬機(jī)管理器
MVMM作為該架構(gòu)中提供控制的軟件,它將主要實現(xiàn)下列功能:
(1)存儲的保護(hù):內(nèi)存的隔離保護(hù)是VMM最重要的功能之一。通過VMM對地址空間的劃分和地址映射邏輯結(jié)構(gòu)的維護(hù),可以實現(xiàn)不同虛擬機(jī)之間物理內(nèi)存的隔離。
MVMM對所有的系統(tǒng)中的資源和存儲進(jìn)行控制。在度量啟動完成之后,MVMM取得了系統(tǒng)的控制權(quán)。它位于系統(tǒng)最核心的一環(huán),擁有最高的特權(quán),擁有對硬件頁表指針(PTR)和全局描述符表(GDT)以及中斷描述符表(IDT)的完整控制。
如果一個應(yīng)用需要通過一個存儲地址來訪問到物理空間頁面。CPU會判斷這個虛擬地址,并將這個虛擬地址轉(zhuǎn)換映射到物理地址中。對頁表人口的設(shè)置是完全處于VMM的控制之中。隨著客戶機(jī)的執(zhí)行,VMM會截獲客戶機(jī)對內(nèi)存的訪問的操作,并對自己維護(hù)的用來進(jìn)行地址轉(zhuǎn)換的頁表(影子頁表)進(jìn)行相應(yīng)的操作。很清楚,在這種機(jī)制下,一個運(yùn)行在虛擬機(jī)上的客戶操作系統(tǒng)是不可能直接存取真正的頁表數(shù)據(jù)的。由于VMM是經(jīng)過度量和認(rèn)證的,因此只要保證了VMM操作的合法性,就能確保各個虛擬域之間的隔離和安全。
(2)資源的分配:除了物理空間以外,VMM對平臺中的所有資源都進(jìn)行控制。硬盤,顯示,USB設(shè)備以及所有平臺中使用到的設(shè)備都在VMM的控制之下。
所有存儲映射的資源對于VMM來說都非常好控制,它們發(fā)出存儲地址,而VMM將這些地址都作為受保護(hù)的頁面來處理。整個VMM對資源的控制映射到了對存儲頁面的控制。
(3)通信的通道:用戶之間可能需要進(jìn)行通信。VMM對用戶之間的通信進(jìn)行完全的控制。
(4)分區(qū)的生命周期:VMM的一個主要的特性就是啟動和關(guān)閉一個客戶分區(qū)的能力,什么時候,如何啟動和關(guān)閉一個用戶分區(qū)。用戶分區(qū)生命周期的管理策略必須符合當(dāng)前的強(qiáng)制策略。對于具有間接嵌人到代碼中的策略的VMM來說,對VMM身份的鑒別同樣就確認(rèn)了用戶分區(qū)生命周期的管理策略。對于有直接策略狀態(tài)的VMM,VMM必須能夠表示VMM強(qiáng)制的策略和VMM如何加載這個策略。
3.DMA保護(hù)
3.1 DMA保護(hù)模型
DMA保護(hù)通過一個位于計算機(jī)物理內(nèi)存和DMA外設(shè)(也就是具有總線主設(shè)備訪問權(quán)限的設(shè)備)之間的DMA保護(hù)硬件邏輯(位于硬件平臺的芯片組中)來實現(xiàn)。外設(shè)在發(fā)起DMA操作的時候都必須要通過DMA保護(hù)硬件的處理。
首先有一部分存儲空間的內(nèi)容是本架構(gòu)特有的并且是應(yīng)當(dāng)受到保護(hù)的,必須要避免這部分的內(nèi)容受到DMA的影響。這部分功能通過一種稱之為內(nèi)存保護(hù)表(memoryprotect table, MPT)的結(jié)構(gòu)來實現(xiàn)。其次,為了實現(xiàn)DMA保護(hù),本設(shè)計研究和借鑒了直接I/O分配的I/O虛擬模型,在這種I/O分配模型下,通過VMM將物理I/O設(shè)備直接分配給虛擬機(jī),驅(qū)動程序直接運(yùn)行于客戶虛擬機(jī)之下,而不是運(yùn)行于VMM中,用戶虛擬機(jī)內(nèi)部的驅(qū)動程序直接和硬件設(shè)備直接通信,只需要經(jīng)過少量,或者不經(jīng)過VMM的管理。VMM需要通過維護(hù)硬件的設(shè)置,以隔離和保護(hù)硬件資源只給指定的虛擬機(jī)使用。
在初始化DMA控制器的時候,驅(qū)動程序?qū)υO(shè)備DMA訪問的設(shè)置和分配都只具有客戶機(jī)物理地址的視圖,每個設(shè)備驅(qū)動程序明確地注冊自己的設(shè)備存儲空間緩沖器,VMM會將這些緩沖器分配給特定的域,從而實現(xiàn)設(shè)備存儲空間的域隔離。這樣DMA保護(hù)硬件可將來自I/O設(shè)備的DMA限制在這個域所擁有的物理內(nèi)存。這種分配機(jī)制能夠被每個設(shè)備獨(dú)立的配置。而具有直接硬件控制能力的VMM將截獲并驗證這種配置操作的合法性并通過維護(hù)客戶機(jī)物理地址到宿主機(jī)為地址視圖的轉(zhuǎn)換來保證I/O設(shè)備分配的域隔離的正確性。
參考CPU對內(nèi)存的管理機(jī)制,這部分功能的實現(xiàn)主要包括一個地址映射邏輯,它的編程和維護(hù)由MVMM來實現(xiàn),而對于運(yùn)行在MVMM之上的用戶虛擬機(jī),這部分的內(nèi)容是不可訪問的。在此基礎(chǔ)上更進(jìn)一步,通過對各個分割域中的頁面加人保護(hù)屬性,最終實現(xiàn)了DMA訪問的隔離和保護(hù)。當(dāng)任何I/O設(shè)備請求對某個頁面進(jìn)行訪問的時候,硬件會對該頁面的訪問權(quán)限進(jìn)行查看,允許符合權(quán)限的訪問,阻止不符合權(quán)限的訪問。
DMA保護(hù)硬件對指定頁面的保護(hù)如圖7所示。
圖7 DMA保護(hù)硬件對指定頁面的保護(hù)
3.2 MPT
MPT包含了所有物理空間,由芯片組配置空間的二個寄存器來進(jìn)行配置,分別為MPT的物理基地址和大小寄存器,在加載的時候,會將這部分的信息傳遞給認(rèn)證代碼模塊以供使用。MPT存放在一片連的物理內(nèi)存中。這個表覆蓋了平臺所支持的所有物理頁面。如果以1bit對應(yīng)4KB的頁面,那么4GB需要1Mb的MPT來實現(xiàn),其對應(yīng)的物理頁面是經(jīng)過所有轉(zhuǎn)換后的實際物理地址頁面。通過ACM來使能MPT的保護(hù)。在度量啟動的時候,認(rèn)證代碼模塊將初始化MPT,在將控制權(quán)移交給MVMM之前,認(rèn)證代碼模塊必須要將以下的頁面加人到MPT中:所有包含有VMM的頁面,包含有VMM頁表的頁面,可信堆棧空間,ACM區(qū)域和MPT,本身的物理頁面。在完成這些操作后,之后認(rèn)證代碼模塊將控制權(quán)交給VMM,VMM將負(fù)責(zé)維護(hù)MPT并且使用MPT來初始化它的DMA地址映射硬件。
MPT結(jié)構(gòu)如圖8所示。
圖8 MPT結(jié)構(gòu)
MPT的大小必須是固定的,并且是線性排列的,每一位對應(yīng)一個物理頁面。如果需要將一個頁面加人到MPT中,那么需要將對應(yīng)該頁面的位置1,如果不需要保護(hù)則清除為。在系統(tǒng)復(fù)位后,MPT的初始化狀態(tài)都為。
在MVMM加載完畢后,MVMM可能會啟動一個或多個用戶虛擬機(jī),在為用戶虛擬機(jī)分配虛擬地址并建立虛擬地址到物理地址的映射結(jié)構(gòu)的時候,需要讀取MPT的內(nèi)容,并保證這部分的頁面不會出現(xiàn)在分配給用戶虛擬機(jī)的宿主機(jī)物理頁面中。
3.3域和地址映射
在啟動最初的客戶虛擬機(jī)的之后,將由虛擬機(jī)管理器對DMA保護(hù)硬件進(jìn)行初始化。上一節(jié)已經(jīng)講過,不允許DMA訪問的受保護(hù)的頁面將不會出現(xiàn)在地址映射后的頁面中,而其它的物理頁面則通過域的劃分和地址轉(zhuǎn)換來提供保護(hù)。
發(fā)送到地址轉(zhuǎn)換硬件的DMA請求需要明確地標(biāo)志發(fā)出請求的源設(shè)備。這種標(biāo)志被稱為源ID。例如對于PCI設(shè)備來說,一個設(shè)備的請求標(biāo)志包含了3個組成部分:PCI總線號,設(shè)備號和功能號,通過配置軟件分配用來唯一地標(biāo)志發(fā)出請求的硬件功能。硬件通過源ID來索引地址映射結(jié)構(gòu),其映射過程如圖9所示。
圖9 DMA地址映射結(jié)構(gòu)
需要3種數(shù)據(jù)結(jié)構(gòu):根條目,上下文條目和多級頁表。根條目和上下文條目都存放于內(nèi)存一片連續(xù)的空間中,根條目的地址由芯片組中一個配置寄存器所指向,分別代表了系統(tǒng)中的所有總線和該總線上所有的設(shè)備。上下文條目將一個指定的總線上的I/O設(shè)備映射到它被分配的某個域中,相應(yīng)地指向這個域的地址轉(zhuǎn)換結(jié)構(gòu)。分配到同一個域的上下文條目必須使用相同的地址轉(zhuǎn)換結(jié)構(gòu),同樣,使用相同地址轉(zhuǎn)換結(jié)構(gòu)的上下文條目也必須處于同一個域中。對于多級頁表,將根據(jù)用戶虛擬機(jī)的地址寬度來決定它的級數(shù),如果為頁節(jié)點,則表示宿主機(jī)的物理地址,否則指向下級頁表,頁表中包含有一個可讀位和可寫位。在收到DMA請求時,硬件將進(jìn)行判斷。如果是DMA讀請求,那么如果硬件發(fā)現(xiàn)一個頁表條目的可讀數(shù)據(jù)域被清除了,那么對這個頁面進(jìn)行讀取的DMA訪問將被阻塞。同樣,如果為DMA寫數(shù)據(jù)請求,當(dāng)?shù)刂酚成浣Y(jié)束后的頁面可寫數(shù)據(jù)域被清除,那么DMA的寫請求將被阻塞。
在3.2節(jié)中講到過,MPT中的物理頁面將不會出現(xiàn)在轉(zhuǎn)換完成后的物理頁面中。通過對頁表條目的編程,VMM可以根據(jù)需要將分割域中需要進(jìn)行保護(hù)的頁面的讀寫保護(hù)位置位,要么地址被成功地翻譯稱為宿主機(jī)物理地址,要么請求被阻塞。
3.4仿真驗證
在此基礎(chǔ)上,本文對DMA保護(hù)硬件進(jìn)行了仿真驗證,其硬件平臺為PLC9054+FPGA+DSP的形式。其驗證的基本思路是:將9054的PCI總線端作為一個DMA訪問的主設(shè)備,使用9054的PCI端的總線地址模擬用戶虛擬機(jī)的用戶物理地址。通過FPGA發(fā)起對DSP存儲空間的訪問,發(fā)起的訪問通過PCI總線端對9054的地址空間進(jìn)行讀寫訪問來模擬,并通過DSP的中斷模擬DMA的中斷。9054通過FPGA中的一個深度為20字節(jié)的FIFO,寫人發(fā)起訪問的數(shù)據(jù)結(jié)構(gòu)。FPGA通過內(nèi)部的映射邏輯將9054發(fā)出的目的地址進(jìn)行映射以后發(fā)起中斷。DSP響應(yīng)中斷根據(jù)讀寫權(quán)限或成功完成訪問或返回失敗。這樣一個完整的DMA訪問過程就實現(xiàn)了。其過程如圖10所示。
圖10 仿真驗證DMA訪問過程
為簡化過程,采用單級頁表,地址空間分配見表1。
表1 地址映射結(jié)構(gòu)
實驗結(jié)果表明,當(dāng)9054的PCI端對頁面1和2發(fā)起讀操作時,相應(yīng)的訪問被阻止,DSP返回失敗的標(biāo)志。當(dāng)對頁面2和頁面4發(fā)起寫操作的時候,訪問被阻止,DSP返回失敗。并且通過PCI端無法訪問任何超出0x8000 0000-0x8000 3000地址范圍以外的任何地址內(nèi)容。可以看出,通過此種架構(gòu)進(jìn)行DMA保護(hù)是有效的,并且在頁表級數(shù)不高的情況下具有相當(dāng)高的效率,轉(zhuǎn)換過程只用了3個時鐘周期。
4.結(jié)束語
通過深人研究當(dāng)前國際上最新的可信執(zhí)行技術(shù)和虛擬化技術(shù),本文提出了一種增強(qiáng)存儲保護(hù)的可信計算架構(gòu),解決了傳統(tǒng)的可信計算體系架構(gòu)中對內(nèi)存空間保護(hù)不足的問題。通過對系統(tǒng)中芯片組硬件的改進(jìn)和增強(qiáng),利用動態(tài)信任傳遞機(jī)制,保證虛擬機(jī)管理器加載和運(yùn)行的安全可信,創(chuàng)建受保護(hù)的執(zhí)行環(huán)境,有效增強(qiáng)系統(tǒng)的安全性。利用虛擬化技術(shù)對于內(nèi)存的隔離和保護(hù)功能,實現(xiàn)不同虛擬域之間的完全隔離。通過MPT和 DMA硬件保護(hù)邏輯,實現(xiàn)了DMA訪問的控制和DMA域分割以及域中頁面的保護(hù)。在此基礎(chǔ)上,對DMA保護(hù)硬件進(jìn)行了仿真驗證,結(jié)果表明該機(jī)制是有效的。
在今后的工作中,應(yīng)當(dāng)進(jìn)一步深人研究虛擬化技術(shù)與硬件的結(jié)合,完善本架構(gòu)中硬件邏輯和軟件功能的劃分和配合。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標(biāo)題:增強(qiáng)存儲保護(hù)的可信計算架構(gòu)設(shè)計
本文網(wǎng)址:http://www.guhuozai8.cn/html/consultation/10839711558.html