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