專利名稱:受保護(hù)的引導(dǎo)流程的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及一個計(jì)算機(jī)系統(tǒng)內(nèi)的引導(dǎo)過程。特別涉及一個防止引導(dǎo)序列被竄改的受保護(hù)引導(dǎo)過程。
2.背景技術(shù)在一個計(jì)算機(jī)系統(tǒng)可以運(yùn)行前,它的存儲器中必須具有一個允許其他軟件,例如各種應(yīng)用程序,獲取和控制計(jì)算機(jī)的資源的操作系統(tǒng)(OS)。人們希望擁有可加載到同一計(jì)算機(jī)系統(tǒng)硬件的各種類型和版本的操作系統(tǒng)。為實(shí)現(xiàn)此目的,計(jì)算機(jī)硬件具有一個非易失、比較簡單的引導(dǎo)程序,該程序初始化各種基本函數(shù),然后從磁盤中裝入更復(fù)雜的軟件。引導(dǎo)序列可能具有多個裝入程序的等級,每個后續(xù)級裝入更復(fù)雜、功能更強(qiáng)但有更多修改余地的程序,直到操作系統(tǒng)自身被裝入。
在傳統(tǒng)系統(tǒng)中,引導(dǎo)過程從某種復(fù)位函數(shù)開始。這可能是冷啟動復(fù)位(最初硬件電源關(guān)閉)、熱啟動復(fù)位(硬件已經(jīng)被供電,但是處于部分未知的邏輯狀態(tài))或其他幾種啟動狀態(tài)之一。復(fù)位類型影響在引導(dǎo)序列中必須執(zhí)行的特定函數(shù),但是一般不改變整個引導(dǎo)過程。
典型地,復(fù)位函數(shù)產(chǎn)生一個把系統(tǒng)引導(dǎo)到非易失存儲器中的一個程序并從那一點(diǎn)開始運(yùn)行的復(fù)位中斷。這個程序一般是閃存中的一個基本輸入輸出系統(tǒng)(BIOS)。該BIOS使能基本輸入輸出(IO)控制,轉(zhuǎn)入一個可選只讀存儲器(ROM),激活在該特定系統(tǒng)中有效的選擇,然后轉(zhuǎn)回該BIOS程序以完成初始化并把操作系統(tǒng)(OS)從磁盤中裝入主存儲器。雖然這樣一個系統(tǒng)中的多數(shù)硬件由計(jì)算機(jī)供應(yīng)商提供,BIOS和可選只讀存儲器(ROM)卻一般由第三方供應(yīng)商提供,因此計(jì)算機(jī)供應(yīng)商對這些部件的具體內(nèi)容只有有限的了解和控制。此外,BIOS和可選只讀存儲器(ROM)在計(jì)算機(jī)中一般都是可再編程的,因此在系統(tǒng)安裝后可能被竄改。這引出了一個安全問題,因?yàn)闊o法確定BIOS或可選只讀存儲器(ROM)是否已被竄改過。對狡猾的電腦黑客和計(jì)算機(jī)病毒的廣泛關(guān)注使得這個問題尤其令人擔(dān)憂,因?yàn)橄到y(tǒng)可能被用未知和可能無法檢測的方法竄改。
計(jì)算機(jī)供應(yīng)商想要能夠證實(shí)引導(dǎo)序列是他們所需要和期望的,并且對該序列所做的任何未經(jīng)授權(quán)的修改在引導(dǎo)時都可被檢測,以便能終止引導(dǎo)序列和對問題進(jìn)行調(diào)查。
發(fā)明內(nèi)容
本發(fā)明包括一種引導(dǎo)操作系統(tǒng)的方法,該方法包括初始化一個復(fù)位函數(shù)、執(zhí)行一個受保護(hù)程序、校驗(yàn)一個BIOS程序和執(zhí)行該BIOS程序。
圖1示出了一個引導(dǎo)序列的示意圖。
圖2示出了一個固件中心塊劃分示意圖。
圖3示出了另一個引導(dǎo)序列的示意圖。
具體實(shí)施例方式
本發(fā)明通過向傳統(tǒng)的引導(dǎo)序列引入一組或更多組受保護(hù)指令來對其進(jìn)行完善,這些指令是受保護(hù)的以防止其自身被竄改并至少檢驗(yàn)剩余引導(dǎo)序列一部分的完整性。圖1示出了系統(tǒng)的一個實(shí)施例。塊10包含存儲引導(dǎo)序列中所用指令和數(shù)據(jù)的非易失性存儲器。固件中心(FWH)12是存儲控制并校驗(yàn)引導(dǎo)序列的指令(代碼)的非易失性存儲器塊。BIOS 14是非易失性存儲器塊,它可能含有一個比較標(biāo)準(zhǔn)但是經(jīng)修改以便和FWH 12交互作用的BIOS。
系統(tǒng)啟動時,系統(tǒng)復(fù)位向量16被調(diào)用,它引導(dǎo)處理器在FWH 12的子塊21內(nèi)的固件中心A(FWH_A)內(nèi)一個特定地址開始運(yùn)行。FWH_A的代碼定位被標(biāo)作BIOS_A的BIOS 14的第一子塊23。然后FWH_A 21校驗(yàn)該BIOS和FWH_B 25以確認(rèn)其包含的是所期望的代碼??梢杂卸喾N校驗(yàn)形式,視所希望的安全等級而定。一個實(shí)施例對該BIOS代碼進(jìn)行求和校驗(yàn),并把該校驗(yàn)和與存儲在FWH_A內(nèi)的預(yù)期校驗(yàn)和相比較。另一個實(shí)施例用數(shù)字簽名來增強(qiáng)此安全系統(tǒng)提供的保護(hù)。FWH_A可以包含一個表,它確定要執(zhí)行的安全校驗(yàn)類型、要執(zhí)行安全校驗(yàn)的目標(biāo)BIOS以及用于執(zhí)行校驗(yàn)的代碼。
除校驗(yàn)BIOS外,用于校驗(yàn)和執(zhí)行可選只讀存儲器(ROM)的代碼也可以包含于FWH 12或BIOS 14中??蛇x只讀存儲器(ROM)可以在BIOS 14中,也可以在一個獨(dú)立的存儲器塊內(nèi)。
校驗(yàn)完BIOS后,控制被交給位于BIOS 14的子塊23中的BIOS_A的代碼。BIOS_A代碼負(fù)責(zé)初始化主存儲器并確定CPU復(fù)位的類型。啟動引導(dǎo)序列的CPU復(fù)位類型可能影響引導(dǎo)序列中執(zhí)行的具體函數(shù),但并不改變整個引導(dǎo)過程。執(zhí)行完這些函數(shù)后,控制被交給位于FWH 12的子塊25內(nèi)的FWH_B。FWH_B代碼負(fù)責(zé)鎖定FWH 12和/或BIOS 14內(nèi)閃存的各塊。
鎖定是通過禁止對代碼的進(jìn)一步寫入來實(shí)現(xiàn)穩(wěn)定代碼塊的一個過程。該特征在FWH 12通常所用的閃存中是動態(tài)可用的。在被FWH_B鎖定前,受影響的塊可以被引導(dǎo)代碼更新。鎖定之后,如果不重新開始引導(dǎo)過程,就不能對塊再做修改。FWH_B也可以在系統(tǒng)存儲器中裝入附加的安全單元以供以后使用。FWH_A也可能執(zhí)行有限次的鎖定。
各代碼塊可以在被鎖定前更新。這一般通過在系統(tǒng)關(guān)機(jī)前由操作系統(tǒng)把更新過的塊寫入主存儲器中的預(yù)定位置來處理。當(dāng)系統(tǒng)關(guān)機(jī)并重新啟動,引導(dǎo)程序檢測到這些更新過的模塊,對其進(jìn)行校驗(yàn),并把它們裝入含有此引導(dǎo)程序的非易失性存儲器。這些更新過的模塊安裝完成后,可以被鎖定以防止再對它們進(jìn)行修改。這個過程允許做必要的更新,但是保護(hù)引導(dǎo)序列在已到達(dá)該引導(dǎo)序列的某個點(diǎn)后免受未經(jīng)授權(quán)的竄改。
完成這些任務(wù)后,控制被交給包含在BIOS子塊27內(nèi)的BIOS_B的代碼。BIOS_B代碼也可具有附加安全接口,這些接口在代碼繼續(xù)執(zhí)行它的標(biāo)準(zhǔn)通電自檢(POST)序列時可用。BIOS_B也可以以常規(guī)模式轉(zhuǎn)到可選只讀存儲器(ROM)。BIOS_B含有開始把操作系統(tǒng)18裝入存儲器處理的OS加載器。上述校驗(yàn)過程的目的之一就是校驗(yàn)該OS加載器的完整性。
圖2示出了可以如何分配固件中心的內(nèi)容。在一個實(shí)施例中,F(xiàn)WH引導(dǎo)塊31含有在生產(chǎn)FWH時提供的FWH_A代碼。這可能是一個由硬件保護(hù)的單個64KB塊,不能被系統(tǒng)更新。該代碼定位BIOS_A,并執(zhí)行一個校驗(yàn)程序以確認(rèn)該BIOS代碼是預(yù)期的代碼。
BIOS啟動塊32提供了在FWH_A內(nèi)運(yùn)行但一般由BIOS供應(yīng)商提供的代碼。它可以包含同BIOS_A、BIOS_B以及一個BIOS恢復(fù)函數(shù)(未示出)接口的代碼。引導(dǎo)塊31和BIOS啟動塊32都含有只能直接從FWH 12開始運(yùn)行的代碼。
鎖定分區(qū)33是在引導(dǎo)過程早期被鎖定,在系統(tǒng)運(yùn)行過程中受保護(hù)的一個或多個塊的集合。每個塊都可被單獨(dú)鎖定。閃爍介質(zhì)管理器(FMM)可被用于更新該分區(qū)內(nèi)的數(shù)據(jù)。但是,引導(dǎo)序列中對該分區(qū)的任何寫操作必須在鎖定前進(jìn)行。一旦該分區(qū)內(nèi)的塊已被鎖定,F(xiàn)WH硬件禁止對這些存儲器區(qū)域的任何寫入。只有復(fù)位FWH才能解除對這些塊的鎖定,這僅在CPU復(fù)位時才會發(fā)生。為更新這些塊,一個更新映像被裝入存儲器并啟動一個CPU復(fù)位。在受保護(hù)引導(dǎo)序列中,該映像將被檢測到并用于在鎖定分區(qū)被實(shí)際鎖定前更新其內(nèi)部記錄。
鎖定解除的分區(qū)34是一個或多個可被解除鎖定,因此可寫入的塊的集合。這些塊可以是空間允許的任何大小。這些塊內(nèi)的全部數(shù)據(jù)可以由FMM管理。
可以選擇分配給圖2中所示每個功能的塊的數(shù)量以滿足一個特定系統(tǒng)類型的需求,這個數(shù)量一般由BIOS供應(yīng)商在最初設(shè)計(jì)FWH和BIOS代碼時確定。
下面是本發(fā)明一個實(shí)施例更詳細(xì)的說明,說明了圖1中四個主要部分FWH_A、BIOS_A、FWH_B和BIOS_B。
FWH_AFWH_A的代碼負(fù)責(zé)進(jìn)行處理器模式的轉(zhuǎn)換和校驗(yàn)系統(tǒng)內(nèi)的代碼。特別是它必須在把控制交給該代碼前校驗(yàn)整個BIOS啟動塊。校驗(yàn)可以用求和校驗(yàn)或其他更復(fù)雜的校驗(yàn)方法完成。這個代碼段內(nèi)的所有代碼運(yùn)行時應(yīng)該不用或用有限的存儲器資源。
如果有一個更新恢復(fù)塊(回收塊)可用,其他的安全軟件可以在擦除BIOS啟動塊前備份它,然后在更新序列中寫入新的BIOS啟動塊。如果在更新完成前掉電,就用備份更新。FWH_A代碼確定BIOS啟動塊和回收塊中的哪個包含有效映像。
FWH_A可能是處理器復(fù)位后執(zhí)行的第一段代碼。該代碼應(yīng)該可以在不必初始化RAM資源的條件下運(yùn)行。它存在于含有可靠代碼的FWH引導(dǎo)塊中。FWH_A代碼能執(zhí)行下列功能1)引導(dǎo)向量-處理器復(fù)位時,從此處獲取并執(zhí)行第一條指令。
2)鎖定引導(dǎo)塊-引導(dǎo)塊被置于鎖定狀態(tài)。在引導(dǎo)塊外部運(yùn)行鎖定代碼,因?yàn)殚W存不能在執(zhí)行它內(nèi)部的代碼時被鎖定。
3)模式轉(zhuǎn)換-把CPU模式轉(zhuǎn)換到平坦(flat)32位環(huán)境。
4)校驗(yàn)BIOS啟動塊-用預(yù)定方法進(jìn)行校驗(yàn),例如求和校驗(yàn)。
5)如果校驗(yàn)失敗-或者a)發(fā)出警告信號并使系統(tǒng)暫停,或者b)在回收塊內(nèi)定位備份BIOS啟動塊,對它進(jìn)行校驗(yàn),如果校驗(yàn)通過則跳轉(zhuǎn)到該塊,如果校驗(yàn)失敗則發(fā)出警告信號并使系統(tǒng)暫停。
6)跳轉(zhuǎn)到BIOS_A-如果校驗(yàn)步驟4通過,跳轉(zhuǎn)到BIOS_A代碼的入口點(diǎn)。
BIOS_ABIOS_A代碼是被運(yùn)行的第一段BIOS代碼。該代碼負(fù)責(zé)確定引導(dǎo)類型,使能RAM資源并把控制交回FWH_B。BIOS_A代碼存在于BIOS啟動塊內(nèi)并由FWH_A代碼調(diào)用。BIOS_A代碼能執(zhí)行下列功能1)確定重引導(dǎo)-處理器可能因?yàn)槎喾N原因被復(fù)位。這些原因包括從休眠節(jié)能狀態(tài)復(fù)蘇、部分重引導(dǎo)、熱態(tài)重引導(dǎo)、冷引導(dǎo)等。根據(jù)正在執(zhí)行的重引導(dǎo)類型,引導(dǎo)序列可能有所不同。
2)使能存儲器-一旦重引導(dǎo)類型被確定,BIOS_A代碼可以恢復(fù)存儲器控制器的狀態(tài)(熱引導(dǎo)、從休眠狀態(tài)復(fù)蘇),或重新初始化并檢測存儲器(冷引導(dǎo))。
3)設(shè)置FWH B參數(shù)-BIOS_A代碼根據(jù)引導(dǎo)類型指明運(yùn)行路徑。它可以確定其他保護(hù)軟件的位置(熱引導(dǎo)),或裝入其他保護(hù)軟件的位置(冷引導(dǎo))。
4)跳轉(zhuǎn)到FWH_B-使能存儲器后,BIOS_A代碼通過跳轉(zhuǎn)到FWH_B的入口點(diǎn)把控制交回FWH引導(dǎo)塊。
FWH_B該代碼負(fù)責(zé)初始化其他被管理的塊中的任何相關(guān)保護(hù)軟件,用于更新需要在引導(dǎo)序列中更新的任何塊,鎖定那些塊并把控制交給BIOS_B。該代碼能執(zhí)行下列功能1)初始化非易失性存儲器-該代碼確定平臺中閃存總量并初始化所有相關(guān)寄存器。
2)根據(jù)引導(dǎo)類型轉(zhuǎn)移-根據(jù)BIOS_A確定的引導(dǎo)類型,代碼可以轉(zhuǎn)移到下列步驟3之一加載操作系統(tǒng)OS、返回操作系統(tǒng)OS或更新。
3)加載OS-BIOS_A代碼指明BIOS正重新加載。同其他相關(guān)保護(hù)軟件的接口應(yīng)該被加載到BIOS_A指明的位置。
4)初始化堆棧-存儲器資源可用,因此堆棧應(yīng)該被初始化供使用。
5)把閃爍介質(zhì)管理器(FMM)裝入存儲器-FMM應(yīng)被從引導(dǎo)塊復(fù)制到根據(jù)BIOS_A指定的加載值確定的存儲器區(qū)域。
6)如果需要,進(jìn)行恢復(fù)-在這點(diǎn),存儲器資源可用,允許恢復(fù)更新失敗的BIOS啟動塊。調(diào)用FMM的恢復(fù)函數(shù)可以實(shí)現(xiàn)此操作。
7)鎖定BIOS啟動塊-BIOS啟動塊應(yīng)當(dāng)被鎖定。
8)初始化FMM-初始化FMM,包括已鎖定和未鎖定的分區(qū),并允許進(jìn)行任何掉電恢復(fù)(power-loss recovery)。
9)加載相關(guān)保護(hù)軟件-可以在這點(diǎn)通過使用在步驟3中加載的接口加載其他保護(hù)代碼。
10)失敗時跳轉(zhuǎn)到BIOS的恢復(fù)-在FMM鎖定的分區(qū)初始化失敗或相關(guān)保護(hù)軟件未被定位的情況下,控制可以被交給BIOS恢復(fù)代碼。
11)鎖定塊-鎖定在鎖定分區(qū)內(nèi)的全部塊。
12)跳轉(zhuǎn)到BIOS_B-把控制交給FWH內(nèi)的BIOS_B加載器。
3)返回OS-BIOS_A代碼指明BIOS正返回OS,例如自休眠狀態(tài)返回。
4)鎖定塊-不占用存儲器資源,把鎖定分區(qū)和BIOS啟動塊內(nèi)的全部塊鎖定。
5)轉(zhuǎn)入實(shí)模式-在打開被屏蔽存儲器中的BIOS映像前,處理器返回實(shí)模式。
6)跳轉(zhuǎn)到BIOS兼容引導(dǎo)向量-把控制交回在存儲器中屏蔽的BIOS映像。
3)更新-BIOS_A代碼指明正在對鎖定分區(qū)進(jìn)行更新,應(yīng)運(yùn)行可靠的更新應(yīng)用程序。
4)初始化堆棧-定位并建立堆棧區(qū)。
5)校驗(yàn)相關(guān)保護(hù)代碼-任何相關(guān)保護(hù)代碼必須被校驗(yàn)以保證安全軟件自身是安全和有效的。
6)校驗(yàn)并加載更新應(yīng)用程序-更新應(yīng)用軟件被校驗(yàn)并裝入存儲器。
7)執(zhí)行更新應(yīng)用程序-把控制交給更新應(yīng)用程序。該應(yīng)用程序定位、檢驗(yàn)并加載更新映像。
8)進(jìn)行冷引導(dǎo)-開始一個完整的重引導(dǎo)。
BIOS_BBIOS_B的代碼一般負(fù)責(zé)加載標(biāo)準(zhǔn)BIOS,因此可以叫做BIOS加載器。事件的實(shí)際順序一般留給BIOS供應(yīng)商決定,但可以是下列步驟1)把BIOS裝入存儲器-一旦被裝入存儲器,BIOS_B代碼就可以解壓BIOS代碼。
2)初始化圖像-通常希望把圖像盡快地輸出到屏幕上。
3)進(jìn)行完整的存儲器檢測-在引導(dǎo)流程的BIOS_A部分,可能只有一部分低端存儲器被初始化。該步驟可以檢測并初始化剩余存儲器。
4)初始化系統(tǒng)剩余部分。
5)重新定位相關(guān)保護(hù)代碼-該代碼一般位于高端存儲器,因此本步驟把它移動到緊接在前一步驟的SMM代碼的下面。相關(guān)的表可以被放在其他地方。
6)POST-完成通電自檢。
在另一實(shí)施例中,如圖3所示,F(xiàn)WH引導(dǎo)塊43在子塊44中包含BIOS_A代碼,在子塊41中包含F(xiàn)WH_B代碼。BIOS_A代碼可以由BIOS生產(chǎn)商提供,而FWH_B代碼可以由BIOS生產(chǎn)商或第三方提供。BIOS_A代碼和FWH_B在BIOS編程時被一起存儲在引導(dǎo)塊43中。BIOS_B代碼被存儲在非易失性器件40的其他部分,可以不受保護(hù)。存儲在引導(dǎo)塊43中的代碼受到保護(hù),不會在運(yùn)行中被硬件修改,并且只能通過BIOS_A代碼更新。這樣在系統(tǒng)運(yùn)行時,引導(dǎo)塊43就可以受到保護(hù),免受未經(jīng)授權(quán)的竄改。
系統(tǒng)的復(fù)位向量42使程序在BIOS_A中的預(yù)定地址開始運(yùn)行。BIOS_A代碼負(fù)責(zé)啟動系統(tǒng)、初始化存儲器并定位FWH_B代碼。FWH_B代碼負(fù)責(zé)定位和校驗(yàn)全部或部分BIOS_B代碼,以保證它是預(yù)期的代碼。FWH_B代碼接著把控制交給BIOS_B代碼,由它繼續(xù)初始化系統(tǒng),并加載操作系統(tǒng)46。
上述說明的目的在于解釋而非限制。本領(lǐng)域技術(shù)人員可以作出其他變化。僅被所附權(quán)利要求的主旨和范圍所限制的本發(fā)明包含了這些變化。
權(quán)利要求
1.一種在計(jì)算機(jī)系統(tǒng)內(nèi)引導(dǎo)軟件的方法,包括初始化一個復(fù)位函數(shù);運(yùn)行第一個受保護(hù)的程序;校驗(yàn)一個BIOS程序;和運(yùn)行該BIOS程序。
2.如權(quán)利要求1中所述方法,其中,運(yùn)行BIOS程序包括校驗(yàn)和運(yùn)行一個操作系統(tǒng)加載器。
3.如權(quán)利要求1中所述方法,其中,校驗(yàn)包括定位BIOS程序。
4.如權(quán)利要求1中所述方法,其中,初始化包括轉(zhuǎn)移到第一個受保護(hù)程序中一個引導(dǎo)序列的入口點(diǎn)。
5.如權(quán)利要求1中所述方法,其中,運(yùn)行BIOS程序包括初始化主存儲器。
6.如權(quán)利要求1中所述方法,其中,運(yùn)行BIOS程序包括確定復(fù)位類型。
7.如權(quán)利要求1中所述方法,其中,校驗(yàn)包括至少鎖定第一個受保護(hù)程序和BIOS程序其中之一的某些部分。
8.如權(quán)利要求1中所述方法,其中,校驗(yàn)BIOS程序包括校驗(yàn)第二個受保護(hù)程序,運(yùn)行該BIOS程序包括運(yùn)行該第二個受保護(hù)程序。
9.如權(quán)利要求8中所述方法,其中,第二個受保護(hù)程序是一個可選ROM程序。
10.如權(quán)利要求1中所述方法,其中,校驗(yàn)BIOS程序包括校驗(yàn)和安裝更新模塊。
11.一種在計(jì)算機(jī)系統(tǒng)內(nèi)引導(dǎo)軟件的方法,包括初始化一個復(fù)位函數(shù);運(yùn)行第一個受保護(hù)的程序;至少校驗(yàn)第一和第二BIOS程序其中之一;運(yùn)行第一BIOS程序;運(yùn)行第二個受保護(hù)程序;和運(yùn)行第二BIOS程序。
12.如權(quán)利要求11中所述方法,其中,初始化包括轉(zhuǎn)移到第一個受保護(hù)程序中一個引導(dǎo)序列的入口點(diǎn)。
13.如權(quán)利要求11中所述方法,其中,運(yùn)行第一個受保護(hù)程序包括至少校驗(yàn)第一和第二BIOS程序其中之一。
14.如權(quán)利要求11中所述方法,其中,運(yùn)行第一BIOS程序包括初始化主存儲器。
15.如權(quán)利要求11中所述方法,其中,運(yùn)行第一BIOS程序包括確定復(fù)位類型。
16.如權(quán)利要求11中所述方法,其中,至少運(yùn)行第一個受保護(hù)程序第二個受保護(hù)程序其中之一包括至少鎖定第一個受保護(hù)程序、第二個受保護(hù)程序、第一BIOS程序和第二BIOS程序其中之一中的數(shù)據(jù)塊。
17.如權(quán)利要求11中所述方法,其中,運(yùn)行第二受保護(hù)程序包括在存儲器中加載附加安全單元。
18.如權(quán)利要求11中所述方法,其中,至少運(yùn)行第一BIOS程序和運(yùn)行第二BIOS程序其中之一包括校驗(yàn)一操作系統(tǒng)加載器。
19.如權(quán)利要求18中所述方法,還包括運(yùn)行該操作系統(tǒng)加載器。
20.如權(quán)利要求11中所述方法,其中,校驗(yàn)包括校驗(yàn)一個可選ROM。
21.如權(quán)利要求20中所述方法,其中,運(yùn)行至少第一和第二BIOS程序其中之一包括運(yùn)行一個校驗(yàn)過的可選ROM程序。
22.如權(quán)利要求11中所述方法,其中,校驗(yàn)包括校驗(yàn)并安裝更新模塊。
23.一種機(jī)器可讀介質(zhì),其上存儲了指令,這些指令被至少一個處理器執(zhí)行時使得所述至少一個處理器執(zhí)行下列操作初始化一個復(fù)位函數(shù);運(yùn)行一個受保護(hù)的程序;校驗(yàn)一個BIOS程序;和運(yùn)行該BIOS程序。
24.一種裝置,包括含有一個受保護(hù)的第一程序序列的第一存儲器塊;和含有用于引導(dǎo)計(jì)算機(jī)系統(tǒng)的第二程序序列的第二存儲器塊;其中,第一程序序列包括用于校驗(yàn)第二程序序列和把控制轉(zhuǎn)給第二程序序列的指令。
25.如權(quán)利要求24所述裝置,其中,第一程序序列包括用于鎖定至少第一存儲器塊和第二存儲器塊其中之一的一部分的指令。
26.如權(quán)利要求24所述裝置,其中,第二程序序列包括一個BIOS程序序列。
27.如權(quán)利要求24所述裝置,其中,至少第一和第二程序序列之一包括用于鎖定至少第一存儲器塊和第二存儲器塊其中之一的一部分的指令。
28.如權(quán)利要求24所述裝置,其中,至少第一和第二程序序列之一包括用于校驗(yàn)可選ROM的指令。
29.如權(quán)利要求24所述裝置,其中,至少第一和第二程序序列之一包括用于校驗(yàn)和安裝更新模塊的指令。
30.權(quán)利要求24所述裝置,其中,第一程序序列包括用于定位第二程序序列的指令。
全文摘要
計(jì)算機(jī)系統(tǒng)內(nèi)一個受保護(hù)的引導(dǎo)序列。一個復(fù)位向量引導(dǎo)系統(tǒng)進(jìn)入一個包含受保護(hù)程序的引導(dǎo)程序。該受保護(hù)程序在轉(zhuǎn)移到BIOS去運(yùn)行標(biāo)準(zhǔn)引導(dǎo)程序函數(shù)前驗(yàn)證BIOS內(nèi)容的完整性。該受保護(hù)程序也能鎖定各種引導(dǎo)程序代碼塊,防止其在經(jīng)過引導(dǎo)序列中某點(diǎn)后被修改。
文檔編號G06F9/445GK1416545SQ01804817
公開日2003年5月7日 申請日期2001年1月4日 優(yōu)先權(quán)日2000年2月11日
發(fā)明者克里斯托弗·J·施皮格爾, 安德魯·H·加夫肯, 羅伯特·P·黑爾, 小威廉·A·史蒂文斯 申請人:英特爾公司