摘 要: 提出了一種安全芯片" title="安全芯片">安全芯片的設計及其保護BIOS、底層固件" title="固件">固件、操作系統以及應用模塊的方法。通過密碼學原理和集成電路技術設計實現的一款安全芯片,能夠有效地防止對計算機系統中操作系統、應用模塊以及BIOS的攻擊。
關鍵詞: BIOS TPM安全芯片 安全啟動系統
1 技術背景
當前,計算機系統已被廣泛應用在人們的日常生活中。計算機的啟動過程是首先運行BIOS(Basic Input Output System)[1],對計算機系統進行檢測和配置,然后裝載操作系統并運行部分底層固件[2]。計算機中的BIOS通常存儲在閃存(Flash)這種非易失性存儲器中[3],而BIOS常常是被病毒、黑客攻擊的對象。其攻擊方式是通過執行代碼修改BIOS,從而造成BIOS或操作系統被破壞。由于BIOS是先于操作系統和病毒檢測軟件運行的,因此通過軟件方式清除、檢查BIOS中的病毒十分困難。所以本文通過使用TPM(Trusted Platform Module)安全芯片,對計算機主板進行改進,設計實現計算機安全" title="計算機安全">計算機安全啟動系統。
1.1 TPM芯片的設計
安全芯片是安全PC的基礎。由Compaq、HP、IBM、Intel、Microsoft五家公司成立的TCPA(Trusted Computing Platform Alliance)聯盟(于2003年4月改名為TCG,Trusted Computing Group)注重PC的安全特性,提出了以硬件安全作為保證計算機安全的思想,TPM芯片就是基于此種想法設計的安全芯片。
為了有效地保護計算機系統的BIOS、操作系統以及其他底層固件的安全,有必要在系統啟動BIOS之前,對BIOS進行驗證。只有確認BIOS沒有被修改的情況下,系統才啟動BIOS。啟動BIOS之后,可以進一步驗證操作系統和其他底層固件。當所有的驗證都通過時,計算機系統才可以正常運行。由于BIOS先于操作系統和其他軟件運行[2],因此,通過軟件驗證BIOS是非常困難的。為了解決這一難題,本文設計一款TPM安全芯片,用于保護計算機系統的BIOS。
圖1為安全芯片的結構圖。圖中,主處理器模塊完成對整個安全芯片的控制;加密模塊完成對稱密碼算法、雜湊算法等密碼算法;接口模塊用于與計算機系統主板上的橋系統進行連接;RAM用于存儲中間結果;Flash用于存儲芯片中的芯片操作系統COS。
1.2 TPM安全芯片工作原理
TPM安全芯片在計算機主板上的應用如圖2所示。
通過TPM安全芯片對計算機系統提供保護的方法為:(1)在主板上設置TPM安全芯片;(2)啟動信息處理設備時,由TPM芯片驗證當前底層固件的完整性,如正確則完成正常的系統初始化后執行步驟(3),否則停止啟動該信息處理設備;(3)由底層固件驗證當前操作系統的完整性,如正確則正常運行操作系統,否則停止裝入操作系統。總之,此方法是通過在信息處理設備的啟動過程中對BIOS、底層固件、操作系統依次進行完整性驗證,從而保證信息處理設備的安全啟動之后,再利用TPM芯片內置的加密模塊生成并管理系統中各種密鑰,對應用模塊進行加解密,以保證計算機等信息設備中應用模塊的安全。
圖2中,信息處理設備的CPU 與主板上的北橋相連,北橋與南橋和靜態存儲器(SRAM)分別直接相連[2],南橋分別與超級輸入輸出接口(SuperIO)、BIOS 模塊和安全芯片通過LPC(Low Pin Count Bus)總線直接相連,同時,計算機主板上的CPU 通過讀寫控制" title="讀寫控制">讀寫控制線與安全芯片中的BIOS模塊直接相連。安全芯片通過完整性校驗檢驗主板上的BIOS模塊是否被非法修改。
上述方法能夠對BIOS的完整性進行驗證,但它僅僅避免了BIOS中的病毒對操作系統的破壞,安全芯片并不能防止BIOS本身被修改,只能在發現BIOS被修改后,停止啟動計算機,因而該方法只是被動應對可能的攻擊。
2 改進的安全措施
2.1 改進的TPM芯片設計
如圖3所示,改進后的TPM芯片在原安全芯片的基礎上集成了BIOS。改進后的TPM芯片中的主處理器模塊在初始化后啟動芯片中的BIOS程序,并判斷對BIOS的操作是讀操作還是寫操作。在讀BIOS代碼之前,首先對其進行完整性驗證,驗證通過后,可以進一步驗證操作系統和其他底層固件的完整性,并且允許通過身份認證" title="身份認證">身份認證的用戶修改BIOS代碼,從而使得計算機系統在啟動時。這樣,不但可以對BIOS、底層固件、操作系統以及應用模塊依次進行完整性驗證,避免了對操作系統和應用模塊的攻擊,而且使得沒有通過身份驗證的攻擊者無法修改BIOS代碼,從而避免了對BIOS的攻擊。
2.2 應用結構
如圖4所示,裝有TPM安全芯片(此處以及下文中的“TPM安全芯片”或“安全芯片”都是指改進后的集成BIOS的TPM安全芯片)的計算機上電時,TPM安全芯片中的主處理器模塊運行存儲模塊中的芯片操作系統COS,完成芯片內部的初始化;之后對BIOS模塊的讀寫操作過程進行驗證。BIOS模塊中的讀寫控制接口與該TPM安全芯片所在設備的CPU相連,接收其發出的讀寫信號,BIOS模塊中的內部總線接口與TPM安全芯片內部的主處理器模塊相連,由主處理器模塊對讀寫BIOS模塊的操作進行驗證。芯片的外部設備接口模塊與TPM安全芯片所在設備相連,在主處理器模塊的控制下,使TPM安全芯片與外部設備進行信息交互。
?
2.3 工作過程
圖5為TPM安全芯片應用于計算機系統的工作流程。
具體步驟如下:
(1)在確保計算機終端安全的環境下(如生產線上,或用戶第一次使用時),生成BIOS和底層固件的完整性驗證碼,將其分別存儲在TPM安全芯片中;將操作系統的完整性驗證碼存儲在底層固件或TPM安全芯片中;將待保護應用模塊的完整性檢驗碼存儲在操作系統或TPM安全芯片中。
(2)在計算機終端加電時,計算機終端內的TPM安全芯片進行基本初始化。
(3)主板系統運行TPM安全芯片中的BIOS,TPM安全芯片根據信息處理設備的CPU發出的物理驅動信號,即相應的讀寫請求,判斷對BIOS進行讀操作還是寫操作,如果是讀操作,則執行步驟(4),如果是寫操作則執行步驟(8)。
(4)TPM安全芯片讀出其內部的BIOS代碼,并驗證該BIOS代碼的完整性,然后執行步驟(5)。
(5)TPM安全芯片驗證底層固件的完整性,然后執行步驟(6)。
(6)TPM安全芯片驗證待加載操作系統的完整性,然后執行步驟(7)。
(7)正常運行系統的操作系統,然后將TPM安全芯片定義為系統中的一個設備,并啟動安全服務。
(8)允許通過身份認證的用戶對TPM安全芯片內部的BIOS代碼進行更新。
圖6為讀BIOS代碼并驗證其完整性的流程圖。
具體步驟如下:
(1)系統加電啟動,計算機終端內的TPM安全芯片進行基本初始化。
(2)計算機終端的CPU發出讀BIOS代碼的物理驅動信號。
(3)TPM芯片讀取其內部的BIOS代碼。
(4)對讀取出來的BIOS代碼進行完整性計算。
(5)從存儲部件中讀取預先保存的BIOS的完整性校驗碼,判斷計算出的完整性校驗碼與預先保存的完整性校驗碼是否一致,如果一致,則執行步驟(6),否則執行步驟(7)。
(6)計算機終端的CPU運行所讀取的BIOS代碼,讀BIOS代碼的流程結束。
(7)禁用該讀出的BIOS代碼,并發出該讀BIOS代碼已被非法修改的提示后,讀BIOS代碼的流程結束。
圖7為更新BIOS代碼流程圖。
具體步驟如下:
(1)系統加電啟動,計算機終端內的TPM安全芯片進行基本初始化。
(2)計算機終端的CPU發出更新BIOS代碼的物理驅動信號。
(3)TPM安全芯片要求用戶提供身份認證密碼,該身份驗證密碼可采用數字簽名或對稱密碼等多種形式。
(4)從存儲部件中讀取預先保存的身份認證密碼,并判斷該身份認證密碼與用戶提供的身份認證密碼是否一致,如果一致,則執行步驟(5),否則執行步驟(9)。
(5)更新BIOS代碼,并將更新的代碼保存于存儲部件中。
(6)對新的BIOS代碼進行完整性計算,得到新BIOS的完整性驗證碼。
(7)用新BIOS的完整性驗證碼替換原有BIOS的完整性驗證碼。
(8)用新的BIOS代碼替換原有的BIOS代碼后,更新BIOS代碼的流程結束。
(9)禁止對BIOS代碼進行更新,并提示該修改BIOS的操作為非法操作,結束更新BIOS代碼的流程。
3 結果對比
為了證實安全芯片能對安全啟動計算機系統帶來效果,作者所在的研究小組建立了三個演示環境:第一個演示環境是一臺普通的PC機;第二個演示環境按照圖2對普通的PC機主板進行改動,采用了TPM安全芯片;第三個演示環境按照圖4對普通的PC機主板進行改動,采用了改進的TPM安全芯片。
在三臺計算機中都插入帶有CIH病毒的軟盤,分別啟動三臺計算機,然后對三臺計算機進行檢測。結果如下:第一個環境中的PC機非正常啟動,BIOS文件被改寫,無法找到外設,并且PC機的硬盤受到損壞;第二個環境中的PC機不能啟動,BIOS文件被改寫,PC機的硬盤沒有受損,在重新寫入正確的BIOS文件后,去除帶CIH病毒的軟盤,系統能夠重新啟動并正常工作;第三個環境中的PC機不能啟動,去除帶CIH病毒的軟盤后,系統重新正常啟動,BIOS文件沒有被修改,PC機的硬盤沒有受損。
以上的試驗結果標明,TPM安全芯片和改進的TPM安全芯片能夠改善計算機啟動系統的安全性能。在計算機系統啟動過程中,TPM安全芯片能夠檢測出是否有病毒攻擊BIOS系統和操作系統等系統固件,受到攻擊時會使系統退出啟動過程,從而減小計算機系統的損失,但是不能保證BIOS免受攻擊和不被竄改。采用改進的TPM安全芯片的計算機系統能夠在啟動時檢測出BIOS系統和操作系統等受保護的系統固件是否受到攻擊,在受到攻擊的情況下使系統退出啟動過程,并且能夠保證BIOS系統和其他受保護的系統固件的安全,能夠最大程度地保護計算機系統的安全。
通過采用TPM芯片,能夠在啟動BIOS之前對BIOS進行完整性驗證,進一步能夠實現對BIOS的讀寫管理,同理可以實現對操作系統以及其他底層固件的驗證以及讀寫控制,從而實現了計算機系統的安全啟動。除了計算機系統外,這項技術能夠推廣應用于其他帶BIOS的信息處理設備中,如筆記本電腦、掌上電腦、手機等設備。
參考文獻
1 鄭緯民,湯志忠.計算機系統結構(第二版).北京:清華大學出版社,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