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