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