《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于TPM芯片的計算機安全啟動系統(tǒng)設(shè)計

基于TPM芯片的計算機安全啟動系統(tǒng)設(shè)計

2008-04-10
作者:王新成,孫 宏,蔡吉人,楊義先

  摘 要: 提出了一種安全芯片" title="安全芯片">安全芯片的設(shè)計及其保護BIOS、底層固件" title="固件">固件、操作系統(tǒng)以及應用模塊的方法。通過密碼學原理和集成電路技術(shù)設(shè)計實現(xiàn)的一款安全芯片,能夠有效地防止對計算機系統(tǒng)中操作系統(tǒng)、應用模塊以及BIOS的攻擊。
  關(guān)鍵詞: BIOS TPM安全芯片 安全啟動系統(tǒng)


1 技術(shù)背景
  當前,計算機系統(tǒng)已被廣泛應用在人們的日常生活中。計算機的啟動過程是首先運行BIOS(Basic Input Output System)[1],對計算機系統(tǒng)進行檢測和配置,然后裝載操作系統(tǒng)并運行部分底層固件[2]。計算機中的BIOS通常存儲在閃存(Flash)這種非易失性存儲器中[3],而BIOS常常是被病毒、黑客攻擊的對象。其攻擊方式是通過執(zhí)行代碼修改BIOS,從而造成BIOS或操作系統(tǒng)被破壞。由于BIOS是先于操作系統(tǒng)和病毒檢測軟件運行的,因此通過軟件方式清除、檢查BIOS中的病毒十分困難。所以本文通過使用TPM(Trusted Platform Module)安全芯片,對計算機主板進行改進,設(shè)計實現(xiàn)計算機安全" title="計算機安全">計算機安全啟動系統(tǒng)。
1.1 TPM芯片的設(shè)計
  安全芯片是安全PC的基礎(chǔ)。由Compaq、HP、IBM、Intel、Microsoft五家公司成立的TCPA(Trusted Computing Platform Alliance)聯(lián)盟(于2003年4月改名為TCG,Trusted Computing Group)注重PC的安全特性,提出了以硬件安全作為保證計算機安全的思想,TPM芯片就是基于此種想法設(shè)計的安全芯片。
  為了有效地保護計算機系統(tǒng)的BIOS、操作系統(tǒng)以及其他底層固件的安全,有必要在系統(tǒng)啟動BIOS之前,對BIOS進行驗證。只有確認BIOS沒有被修改的情況下,系統(tǒng)才啟動BIOS。啟動BIOS之后,可以進一步驗證操作系統(tǒng)和其他底層固件。當所有的驗證都通過時,計算機系統(tǒng)才可以正常運行。由于BIOS先于操作系統(tǒng)和其他軟件運行[2],因此,通過軟件驗證BIOS是非常困難的。為了解決這一難題,本文設(shè)計一款TPM安全芯片,用于保護計算機系統(tǒng)的BIOS。
  圖1為安全芯片的結(jié)構(gòu)圖。圖中,主處理器模塊完成對整個安全芯片的控制;加密模塊完成對稱密碼算法、雜湊算法等密碼算法;接口模塊用于與計算機系統(tǒng)主板上的橋系統(tǒng)進行連接;RAM用于存儲中間結(jié)果;Flash用于存儲芯片中的芯片操作系統(tǒng)COS。


1.2 TPM安全芯片工作原理
  TPM安全芯片在計算機主板上的應用如圖2所示。


  通過TPM安全芯片對計算機系統(tǒng)提供保護的方法為:(1)在主板上設(shè)置TPM安全芯片;(2)啟動信息處理設(shè)備時,由TPM芯片驗證當前底層固件的完整性,如正確則完成正常的系統(tǒng)初始化后執(zhí)行步驟(3),否則停止啟動該信息處理設(shè)備;(3)由底層固件驗證當前操作系統(tǒng)的完整性,如正確則正常運行操作系統(tǒng),否則停止裝入操作系統(tǒng)??傊?,此方法是通過在信息處理設(shè)備的啟動過程中對BIOS、底層固件、操作系統(tǒng)依次進行完整性驗證,從而保證信息處理設(shè)備的安全啟動之后,再利用TPM芯片內(nèi)置的加密模塊生成并管理系統(tǒng)中各種密鑰,對應用模塊進行加解密,以保證計算機等信息設(shè)備中應用模塊的安全。
  圖2中,信息處理設(shè)備的CPU 與主板上的北橋相連,北橋與南橋和靜態(tài)存儲器(SRAM)分別直接相連[2],南橋分別與超級輸入輸出接口(SuperIO)、BIOS 模塊和安全芯片通過LPC(Low Pin Count Bus)總線直接相連,同時,計算機主板上的CPU 通過讀寫控制" title="讀寫控制">讀寫控制線與安全芯片中的BIOS模塊直接相連。安全芯片通過完整性校驗檢驗主板上的BIOS模塊是否被非法修改。
  上述方法能夠?qū)IOS的完整性進行驗證,但它僅僅避免了BIOS中的病毒對操作系統(tǒng)的破壞,安全芯片并不能防止BIOS本身被修改,只能在發(fā)現(xiàn)BIOS被修改后,停止啟動計算機,因而該方法只是被動應對可能的攻擊。
2 改進的安全措施
2.1 改進的TPM芯片設(shè)計

  如圖3所示,改進后的TPM芯片在原安全芯片的基礎(chǔ)上集成了BIOS。改進后的TPM芯片中的主處理器模塊在初始化后啟動芯片中的BIOS程序,并判斷對BIOS的操作是讀操作還是寫操作。在讀BIOS代碼之前,首先對其進行完整性驗證,驗證通過后,可以進一步驗證操作系統(tǒng)和其他底層固件的完整性,并且允許通過身份認證" title="身份認證">身份認證的用戶修改BIOS代碼,從而使得計算機系統(tǒng)在啟動時。這樣,不但可以對BIOS、底層固件、操作系統(tǒng)以及應用模塊依次進行完整性驗證,避免了對操作系統(tǒng)和應用模塊的攻擊,而且使得沒有通過身份驗證的攻擊者無法修改BIOS代碼,從而避免了對BIOS的攻擊。


2.2 應用結(jié)構(gòu)
  如圖4所示,裝有TPM安全芯片(此處以及下文中的“TPM安全芯片”或“安全芯片”都是指改進后的集成BIOS的TPM安全芯片)的計算機上電時,TPM安全芯片中的主處理器模塊運行存儲模塊中的芯片操作系統(tǒng)COS,完成芯片內(nèi)部的初始化;之后對BIOS模塊的讀寫操作過程進行驗證。BIOS模塊中的讀寫控制接口與該TPM安全芯片所在設(shè)備的CPU相連,接收其發(fā)出的讀寫信號,BIOS模塊中的內(nèi)部總線接口與TPM安全芯片內(nèi)部的主處理器模塊相連,由主處理器模塊對讀寫B(tài)IOS模塊的操作進行驗證。芯片的外部設(shè)備接口模塊與TPM安全芯片所在設(shè)備相連,在主處理器模塊的控制下,使TPM安全芯片與外部設(shè)備進行信息交互。

?


2.3 工作過程
  圖5為TPM安全芯片應用于計算機系統(tǒng)的工作流程。
  具體步驟如下:
  (1)在確保計算機終端安全的環(huán)境下(如生產(chǎn)線上,或用戶第一次使用時),生成BIOS和底層固件的完整性驗證碼,將其分別存儲在TPM安全芯片中;將操作系統(tǒng)的完整性驗證碼存儲在底層固件或TPM安全芯片中;將待保護應用模塊的完整性檢驗碼存儲在操作系統(tǒng)或TPM安全芯片中。
  (2)在計算機終端加電時,計算機終端內(nèi)的TPM安全芯片進行基本初始化。
  (3)主板系統(tǒng)運行TPM安全芯片中的BIOS,TPM安全芯片根據(jù)信息處理設(shè)備的CPU發(fā)出的物理驅(qū)動信號,即相應的讀寫請求,判斷對BIOS進行讀操作還是寫操作,如果是讀操作,則執(zhí)行步驟(4),如果是寫操作則執(zhí)行步驟(8)。
  (4)TPM安全芯片讀出其內(nèi)部的BIOS代碼,并驗證該BIOS代碼的完整性,然后執(zhí)行步驟(5)。
  (5)TPM安全芯片驗證底層固件的完整性,然后執(zhí)行步驟(6)。
  (6)TPM安全芯片驗證待加載操作系統(tǒng)的完整性,然后執(zhí)行步驟(7)。
  (7)正常運行系統(tǒng)的操作系統(tǒng),然后將TPM安全芯片定義為系統(tǒng)中的一個設(shè)備,并啟動安全服務。
  (8)允許通過身份認證的用戶對TPM安全芯片內(nèi)部的BIOS代碼進行更新。


  圖6為讀BIOS代碼并驗證其完整性的流程圖。
  具體步驟如下:
  (1)系統(tǒng)加電啟動,計算機終端內(nèi)的TPM安全芯片進行基本初始化。
  (2)計算機終端的CPU發(fā)出讀BIOS代碼的物理驅(qū)動信號。
  (3)TPM芯片讀取其內(nèi)部的BIOS代碼。
  (4)對讀取出來的BIOS代碼進行完整性計算。
  (5)從存儲部件中讀取預先保存的BIOS的完整性校驗碼,判斷計算出的完整性校驗碼與預先保存的完整性校驗碼是否一致,如果一致,則執(zhí)行步驟(6),否則執(zhí)行步驟(7)。
  (6)計算機終端的CPU運行所讀取的BIOS代碼,讀BIOS代碼的流程結(jié)束。
  (7)禁用該讀出的BIOS代碼,并發(fā)出該讀BIOS代碼已被非法修改的提示后,讀BIOS代碼的流程結(jié)束。
  圖7為更新BIOS代碼流程圖。


  具體步驟如下:
  (1)系統(tǒng)加電啟動,計算機終端內(nèi)的TPM安全芯片進行基本初始化。
  (2)計算機終端的CPU發(fā)出更新BIOS代碼的物理驅(qū)動信號。
  (3)TPM安全芯片要求用戶提供身份認證密碼,該身份驗證密碼可采用數(shù)字簽名或?qū)ΨQ密碼等多種形式。
  (4)從存儲部件中讀取預先保存的身份認證密碼,并判斷該身份認證密碼與用戶提供的身份認證密碼是否一致,如果一致,則執(zhí)行步驟(5),否則執(zhí)行步驟(9)。
  (5)更新BIOS代碼,并將更新的代碼保存于存儲部件中。
  (6)對新的BIOS代碼進行完整性計算,得到新BIOS的完整性驗證碼。
  (7)用新BIOS的完整性驗證碼替換原有BIOS的完整性驗證碼。
  (8)用新的BIOS代碼替換原有的BIOS代碼后,更新BIOS代碼的流程結(jié)束。
  (9)禁止對BIOS代碼進行更新,并提示該修改BIOS的操作為非法操作,結(jié)束更新BIOS代碼的流程。
3 結(jié)果對比
  為了證實安全芯片能對安全啟動計算機系統(tǒng)帶來效果,作者所在的研究小組建立了三個演示環(huán)境:第一個演示環(huán)境是一臺普通的PC機;第二個演示環(huán)境按照圖2對普通的PC機主板進行改動,采用了TPM安全芯片;第三個演示環(huán)境按照圖4對普通的PC機主板進行改動,采用了改進的TPM安全芯片。
  在三臺計算機中都插入帶有CIH病毒的軟盤,分別啟動三臺計算機,然后對三臺計算機進行檢測。結(jié)果如下:第一個環(huán)境中的PC機非正常啟動,BIOS文件被改寫,無法找到外設(shè),并且PC機的硬盤受到損壞;第二個環(huán)境中的PC機不能啟動,BIOS文件被改寫,PC機的硬盤沒有受損,在重新寫入正確的BIOS文件后,去除帶CIH病毒的軟盤,系統(tǒng)能夠重新啟動并正常工作;第三個環(huán)境中的PC機不能啟動,去除帶CIH病毒的軟盤后,系統(tǒng)重新正常啟動,BIOS文件沒有被修改,PC機的硬盤沒有受損。
  以上的試驗結(jié)果標明,TPM安全芯片和改進的TPM安全芯片能夠改善計算機啟動系統(tǒng)的安全性能。在計算機系統(tǒng)啟動過程中,TPM安全芯片能夠檢測出是否有病毒攻擊BIOS系統(tǒng)和操作系統(tǒng)等系統(tǒng)固件,受到攻擊時會使系統(tǒng)退出啟動過程,從而減小計算機系統(tǒng)的損失,但是不能保證BIOS免受攻擊和不被竄改。采用改進的TPM安全芯片的計算機系統(tǒng)能夠在啟動時檢測出BIOS系統(tǒng)和操作系統(tǒng)等受保護的系統(tǒng)固件是否受到攻擊,在受到攻擊的情況下使系統(tǒng)退出啟動過程,并且能夠保證BIOS系統(tǒng)和其他受保護的系統(tǒng)固件的安全,能夠最大程度地保護計算機系統(tǒng)的安全。
  通過采用TPM芯片,能夠在啟動BIOS之前對BIOS進行完整性驗證,進一步能夠?qū)崿F(xiàn)對BIOS的讀寫管理,同理可以實現(xiàn)對操作系統(tǒng)以及其他底層固件的驗證以及讀寫控制,從而實現(xiàn)了計算機系統(tǒng)的安全啟動。除了計算機系統(tǒng)外,這項技術(shù)能夠推廣應用于其他帶BIOS的信息處理設(shè)備中,如筆記本電腦、掌上電腦、手機等設(shè)備。
參考文獻
1 鄭緯民,湯志忠.計算機系統(tǒng)結(jié)構(gòu)(第二版).北京:清華大學出版社,1998
2 John D.Carpinell.Computer systems Organization & architecture.Pearson Education,Inc
3 Barry B.Brey.The Intel microprocessors 8086/8088,80186/80188,80286,80386,80486,Pentium,Pentium Pro Processor,PentiumⅡ,PentiumⅢ,Pentium4,Architecture,Programming,and Interfacing.Pearson Education,Inc

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。