《可信鏈度量與測評》課件第2章_第1頁
《可信鏈度量與測評》課件第2章_第2頁
《可信鏈度量與測評》課件第2章_第3頁
《可信鏈度量與測評》課件第2章_第4頁
《可信鏈度量與測評》課件第2章_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第二章可信啟動完整性度量2.1可信啟動完整性度量分析2.2基于PMBR的SBA設(shè)計2.3基于PMBR的SBA實現(xiàn)2.4實驗2.5本章小結(jié)

2.1可信啟動完整性度量分析

為了解決可信啟動完整性度量問題,本章提出了一個基于PMBR(PreMBR)的安全啟動架構(gòu)(SecureBootstrapArchitecture,SBA),該架構(gòu)的基本思想是:在BIOS和主引導扇區(qū)MBR之間插入一個名為PMBR的組件,利用PMBR作為完整性度量代理,實現(xiàn)對操作系統(tǒng)啟動流程的完整性度量。與已有的工作相比,SBA具有以下特點:

(1)SBA能夠度量從BIOS自檢結(jié)束開始到操作系統(tǒng)啟動完畢的整個流程上所有關(guān)鍵扇區(qū)、代碼、文件和數(shù)據(jù)的完整性,達到“全程覆蓋”。

(2)雖然SBA最初是為可信計算平臺所開發(fā)的,但是本質(zhì)上,SBA的唯一硬/軟件要求是BIOS的可信性。

(3)SBA引入了一個新的組件PMBR。2.1.1

Linux啟動流程分析

以第一代可信計算機為例,具體而言,可信計算平臺上Linux的啟動步驟如下(參見圖2.1):

(1)用戶插入開機身份認證卡。

(2)ESM加電,ESM首先復(fù)位并進行初始化。

(3)平臺CPU將CS段寄存器設(shè)置為FFFFH,將所有其他的寄存器清零,然后執(zhí)行CS:IP處的指令(CS:IP=FFFFH:0000H地址也就是BIOS地址F000H:FFF0H地址)。該處的指令實際上是BIOS的入口指令。之后,BIOS進行自檢,并對平臺其他硬件設(shè)備進行啟動和初始化的工作。

(4)BIOS搜尋磁盤的主引導扇區(qū)MBR,并把MBR的BootLoader調(diào)至內(nèi)存的CS:IP=0000H:7C00H處。MBR共512字節(jié),分為兩個部分:第一部分是PreBoot部分,占446字節(jié);第二部分是分區(qū)表信息,占64字節(jié)。最后兩個字節(jié)是55AA的標志。

(5)BIOS把控制權(quán)轉(zhuǎn)交給MBR。

(6)引導扇區(qū)執(zhí)行初始化工作,將控制權(quán)轉(zhuǎn)交給操作系統(tǒng)加載器OSLoader,執(zhí)行操作系統(tǒng)內(nèi)核的加載,直到最后操作系統(tǒng)核心加載完畢。圖2.1普通Linux啟動流程2.1.2

Linux啟動流程的完整性度量因素

弄清了Linux啟動流程之后,下一步需要分析對Linux啟動流程進行完整性度量時考慮的因素。

(1)Linux啟動過程的完整性。

·單個組件的完整性:

·過程所需組件的完整性:

·啟動順序的完整性:

(2)Linux啟動的模式分類。按照Linux啟動的流程,可以把啟動的過程分為三種基本模式:

·單組件過程(SingleComponentProcedure,SCP)。

·多組件過程(MultipleComponentsProcedure,MCP)。如果已知能夠確保啟動順序的可信性,則上述公式可以簡化為

·并發(fā)多組件過程(ParallelProcedureofMultipleComponents,PPMC)。那么,對于這種情況的完整性應(yīng)該表示為

PPMC這種情形通常比較少見。

2.1.3

Linux啟動流程需要度量的內(nèi)容

(1)主引導扇區(qū)MBR。

(2)Grub或者Lilo等中間引導系統(tǒng)。

(3)操作系統(tǒng)啟動流程上的特殊扇區(qū)。

(4)操作系統(tǒng)內(nèi)核。

(5)所有進程的起點init。init的進程號是1,它是所有進程的起點。

(6)mingetty。

(7)與啟動流程相關(guān)的其他文件。

(8)用戶自定義文件。

2.2基于PMBR的SBA設(shè)計

本節(jié)將對安全啟動架構(gòu)(SecureBootstrapArchitecture,

SBA)的總體設(shè)計進行介紹。SBA的基本思想是:通過在BIOS和MBR之間插入稱為PMBR(Pre-MBR)的組件,利用PMBR作為完整性度量代理,實現(xiàn)對操作系統(tǒng)啟動流程上所有需要度量的內(nèi)容(包括文件、數(shù)據(jù)、程序、代碼塊、

扇區(qū)等)進行完整性度量,并在度量完成之后轉(zhuǎn)交控制權(quán)

給MBR,以實現(xiàn)正常啟動。圖2.2引入PMBR以后的啟動流程圖2.3安全啟動架構(gòu)SBA

2.3基于PMBR的SBA實現(xiàn)

2.3.1

BIOS安全增強與MP驅(qū)動

根據(jù)文獻[14],在可信計算機中,BIOS應(yīng)該進行如下安全增強:

(1)BIOS中需要加入哈希引擎,以便計算平臺硬件/軟件信息(例如PMBR等)的哈希值。

(2)BIOS需要有與ESM通信的輸入輸出模塊。BIOS需要從ESM中讀取PMBR,并將PMBR加載到可信計算平臺主機內(nèi)存的特定物理地址。

MP驅(qū)動主要包括如下四個函數(shù):

(1)MPInitTPM函數(shù):BIOS調(diào)用該函數(shù)對ESM和驅(qū)動進行初始化。

(2)MPCloseTPM函數(shù):BIOS調(diào)用該函數(shù)關(guān)閉與ESM的鏈接。

(3)MPGetTPMStatusInfo函數(shù):BIOS調(diào)用該函數(shù)從ESM讀取當前錯誤和狀態(tài)信息。

(4)MPTPMTransmit函數(shù):BIOS調(diào)用該函數(shù)把輸入緩存中的數(shù)據(jù)傳送給ESM,并讀取ESM的相應(yīng)數(shù)據(jù)到輸出緩存中。2.3.2

PMBR詳細設(shè)計與實現(xiàn)

當BIOS進行安全增強之后,BIOS就能夠執(zhí)行對PMBR的完整性度量(不過,由于PMBR存儲在ESM中,并受到ESM“保護性存儲”功能的嚴格保護,因而這一步并不是必需的)、與ESM進行雙向通信以及讀取PMBR到內(nèi)存特定地址等操作。本節(jié)中將對PMBR的詳細設(shè)計與實現(xiàn)進行說明。圖2.4

PMBR結(jié)構(gòu)

PMBR運行時包含如下幾個步驟(參見圖2.3的執(zhí)行順序):

(1)PMBR從BIOS獲取控制權(quán),準備進行完整性度量。

當BIOS自檢結(jié)束以后,安全增強的BIOS自動讀取PMBR,并把PMBR存放在內(nèi)存某個特定區(qū)域,例如:起始地址為CS:IP=1111H:2222H(假設(shè)地址)的內(nèi)存中。

(2)PMBR分析校驗表,執(zhí)行完整性度量。當PMBR獲取控制權(quán)以后,開始分析校驗表區(qū)域,執(zhí)行完整性度量。校驗表的格式如表2.1所示。

(3)PMBR交出控制權(quán)給MBR,執(zhí)行普通操作系統(tǒng)啟動流程(參見圖2.2)。當PMBR度量完畢之后將把控制權(quán)轉(zhuǎn)交給MBR,執(zhí)行正常的啟動流程。這是分兩步完成的。第一步:將MBR讀入到起始地址為CS:IP=7C00H:0000H(真實地址)的內(nèi)存中;第二步,執(zhí)行一個跨段跳轉(zhuǎn),交出控制權(quán)給MBR。

(4)PMBR讀取磁盤扇區(qū)。擴展int13h功能與老的int13h功能相比,差別在于它采用了新的“磁盤地址數(shù)據(jù)包(DiskAddressPacket,DAP)”數(shù)據(jù)結(jié)構(gòu)和新的入口參數(shù)

形式。2.3.3從絕對路徑文件名到磁盤扇區(qū)地址的轉(zhuǎn)換

1.EXT3文件系統(tǒng)簡介

·block。

·superblock。

·blockgroup。

·groupdescriptor。

·inode。

2.從絕對路徑文件名到磁盤扇區(qū)號轉(zhuǎn)換的算法

不失一般性,在介紹算法2.1之前,先以一個具體的例子來獲得算法的直觀說明。2.3.4

PMBR安全性證明與形式化開發(fā)

與PMBR一樣,已有的安全啟動(可信啟動)方法往往也引入了新的組件。那么,引入這些新的組件是否會帶來新的安全問題呢?已有的工作較少對這個問題進行研究。在本節(jié)我們將對PMBR的安全性證明與形式化開發(fā)做一個探討。

定理2.1如果在引入PMBR之前系統(tǒng)啟動是安全的,則在引入PMBR之后系統(tǒng)啟動仍然是安全的。

2.4實驗

2.4.1

EXT3文件系統(tǒng)實驗

本節(jié)將會驗證算法2.1和算法2.2的正確性,即在不使用任何系統(tǒng)調(diào)用或者第三方工具支持的情況下,完全依據(jù)算法2.1和算法2.2來獲取文件信息。

(1)讀取根目錄“/”的inode結(jié)構(gòu)體。在Linux當中,“/”的inode號固定為2。利用2.3.3節(jié)中的公式計算可得group_

num=0,offset_num=2。讀取0號Group的groupdescriptor結(jié)構(gòu)體如下:分析得到Group0的inodetable地址:0x00000283=643,也就是第643號block。讀取第643號block,由于offset_num=2,讀取第2個inode結(jié)構(gòu)(第一個inode結(jié)構(gòu)的128個字節(jié)省略),得到數(shù)據(jù)如下:

(2)分析根目錄“/”的內(nèi)容。讀取1155號block,共有4096個字節(jié)。為了節(jié)省篇幅,這里不全部列出,只列出root子目錄的目錄入口結(jié)構(gòu)(xx表示不相關(guān)的被忽略數(shù)據(jù)):

(3)通過上面的分析,得到/root的inode號為753665。重復(fù)上面的操作讀取/root的inode結(jié)構(gòu)體,分析得到/root/TrustChain的inode號。再讀取其結(jié)構(gòu)體,分析得到/root/TrustChain/v_table.c的inode號。具體過程限于篇幅,這里不再贅述。最后得到v_table.c的inode號為757111。得到“/root/TrustChain/v_table.c”的inode號之后,下一步需要計算該文件在硬盤上存儲時所對應(yīng)的block。其計算過程如下:根據(jù)inode=757111,利用2.3.3節(jié)中的公式計算得到group_num=46,offset_num=3447。讀取該inode結(jié)構(gòu)體如下,并從中進一步讀取i_block[15]數(shù)組即可:第13個地址是0x002699c3,即2529731。打開2529731號block,可以讀取其索引地址如下:圖2.5從絕對路徑文件名到block號的轉(zhuǎn)換工具對比2.4.2

SBA實驗

實現(xiàn)了PMBR對EXT3文件系統(tǒng)的解析之后,基于PMBR的SBA就可以正常運行了。圖2.6和圖2.7給出了

SBA運行的截屏結(jié)果。圖2.6發(fā)現(xiàn)不可信OSLoader圖2.7所有OSLoader文件都是可信的2.4.3性能分析

引入PMBR以后,啟動將會引入一定的時間延遲,體現(xiàn)在如下幾個方面:

(1)BIOS從ESM讀取PMBR并調(diào)入內(nèi)存:TLoadPMBR;

(2)PMBR分析校驗表,查詢需要度量的文件名:TAnalyzeVT;

(3)PMBR分析文件,獲取磁盤扇區(qū)地址,讀取文件內(nèi)容:TReadSectors;

(4)計算當前文件的HASH值:TCalHASH。由于度量的文件和代碼有多個,因此(2)~(4)會多次運行。假設(shè)總共有n個文件和代碼需要被度量,那么總的時間開銷為

(1)如果假設(shè)需要度量n個文件,每個文件的大小取平均值,設(shè)需要度量的總大小為M兆字節(jié),則單位文件的大小為size=M/n兆字節(jié);若實驗得到PMBR讀取大小為size的文件需要花費的時間為則(1)式可以化簡為

(2)

2.5本章小結(jié)

為了解決可信鏈起始段“CRTM→BIOS→OSLoader→

OS”的完整性問題,本章提出一種基于PMBR的安全啟動架構(gòu)(Secu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論