TWI436229B - 用以提供安全開機架構之系統與方法 - Google Patents
用以提供安全開機架構之系統與方法 Download PDFInfo
- Publication number
- TWI436229B TWI436229B TW095103879A TW95103879A TWI436229B TW I436229 B TWI436229 B TW I436229B TW 095103879 A TW095103879 A TW 095103879A TW 95103879 A TW95103879 A TW 95103879A TW I436229 B TWI436229 B TW I436229B
- Authority
- TW
- Taiwan
- Prior art keywords
- boot mode
- pbbvr
- authenticated
- processor
- bios
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Description
本發明係有關於用以提供安全開機架構之系統與方法。
用一處理器來執行指令區塊一般為執行一些作業。全部之指令序列有很大的程度由處理器之觀點為有效的。該處理器對完整及/或有效之程式或函數不具有有意義的意向。因而,若指令區塊可被呈現至處理器,其一般將被執行。所以,含有所謂的合法指令會可靠地致使處理器執行、做錯、或停止。
因此,其欲用處理器來限制碼之執行。限制執行之一方法為利用對指令序列的認證。在慣常技藝中,一個或多個碼區塊可被認證以提供安全之計算環境。該認證過程建立一區塊之碼作為指令的被信任之序列。然而,慣常認證過程有賴於一假設,即碼之認證的另一區塊由之可依據的某一特定之碼區塊可被信任。該認證過程可被運用以建立一信任鏈。然而,多重碼區塊之認證的鍵結過程仍一起依賴碼之根區塊被信任的假設。因之,慣常的安全計算架構因根區塊不被信任的事實之結果而維持是易傷害的。
因之,本發明的實施例被導向具有安全開機架構之系
統。在安全開機架構中,用於處理器之一目標指令可在開機模式中被認證,使得在處理器上被執行之可就其信任溯源回到處理器施作。本發明之實施例亦可提供處理器強化開機模式升級機制。
在一實施例中,具有安全開機架構之一處理器包括一原子狀態機器被耦合至一實體保護儲存區。該實體保護儲存區儲存一開機模式物件。該原子狀態機器在同一處理器執行一第一目標指令前認證該開機模式物件。該原子狀態機器亦可接收一候選的PBBVR升級影像、認證該候選的PBBVR升級影像、並在新候選的PBBVR升級影像中所包含之PBBVR若被認證時,以包含於該候選的PBBVR升級影像之新的PBBVR替換目前之PBBVR。
在另一實施例中,一種用於提供安全開機架構之方法包括接收一開機模式事件、認證一開機模式物件、及在該開機模式物件若被認證時執行一第一目標指令。該方法可進一步包括接收一候選的PBBVR升級影像、認證該候選的PBBVR升級影像、並在新候選的PBBVR升級影像中所包含之PBBVR若被認證時,以包含於該候選的PBBVR升級影像之新的PBBVR替換目前之PBBVR。
在還有之另一實施例中,一種用於提供安全開機架構之系統包括一原子狀態機器被耦合至一實體保護儲存區。該原子狀態機器在一開機模式事件發生之際於一狀態儲存圖中儲存一處理器的狀態。該原子狀態機器在一開機模式事件之際於一狀態儲存圖中儲存該處理器的狀態。該原子
狀態機器亦在響應該開機模式事件下認證一前置BIOS開機向量區(PBBVR)之一物件。PBBVR可被儲存於該實體保護儲存區中。若PBBVR成功地被認證,該原子狀態機器由實體保護儲存區載入一重疊記憶體中。若PBBVR成功地被認證,該處理器執行來自重疊記憶體中之PBBVR。
此揭示描述一種用於提供安全開機架構之系統與方法依照本發明的一實施例包括一處理器,具有一原子狀態機器與一實體保護儲存區。該原子狀態機器在一開機模式事件之際於一狀態儲存圖中儲存該處理器的狀態。該原子狀態機器亦在響應該開機模式事件下認證一前置BIOS開機向量區(PBBVR)之一物件。PBBVR可被儲存於該實體保護儲存區中。若PBBVR成功地被認證,該原子狀態機器由實體保護儲存區載入一重疊記憶體中。若PBBVR成功地被認證,該處理器執行來自重疊記憶體中之PBBVR。該原子狀態機器亦可接收一候選的PBBVR升級影像、認證該候選的PBBVR升級影像、並在新候選的PBBVR升級影像中所包含之PBBVR若被認證時,以包含於該候選的PBBVR升級影像之新的PBBVR替換目前之PBBVR。
本發明之實施例在附圖中以舉例而非限制之方式被圖示,且其中類似之元件編號指類似之元件,及其中:第1圖顯示依照本發明的一實施例用於建立一安全開機架構的系統之方塊圖。
第2A與2B圖顯示依照本發明的一實施例用於建立一
安全開機架構的方法之流程圖。
第3圖顯示依照本發明的一實施例一前置BIOS開機向量區(PBBVR)格式。
第4圖顯示依照本發明的一實施例之實體記憶體與重疊記憶體之格式。
第5圖顯示依照本發明的一實施例用於控制該開機模式之升級的方法之流程圖。
第6圖顯示依照本發明的一實施例一開機模式升級物件之格式。
現在詳細參照本發明之實施例,其例子在附圖中被顯示。雖然本發明將配合這些實施例被描述,其將被了解其不欲將本發明限制於這些實施例。相反地,本發明欲涵蓋替選做法、修改與等值事項,其可納入本發明如附之申請專利範圍所定義的領域內。進一步言之,在本發明之下列詳細描述中,很多特定細節被設立,以提供對本發明的透徹了解。然而,其被了解本發明可不需這些特定細節地被實作。在其他實施例中,相當習知的方法、元件與電路未曾詳細地被描述,以免不必要地糢糊本發明之層面。
本發明之實施例提供一安全開機架構。該安全開機架構之開機模式為一處理器認證目標指令,使得在處理器上被執行之所有指令可就其信任溯源回至處理器施作。所以,認證在基本輸入輸出系統(BIOS)區塊前被建立。本發
明之實施例可提供認證後的開機模式碼可以被升級而不致損失信任之機制。
參照第1圖,為了建立依照本發明的一實施例之安全開機架構的系統方塊圖被顯示。如第1圖顯示者,該安全開機架構系統包括一處理器110、一個或多個實體記憶體單元120,130與一個或多個輸入/輸出裝置140之類。其被了解,此間所指之處理器110可為通用處理器或專用控制器之類。該等一個或多個實體記憶體單元120,130與該等一個或多個輸入/輸出裝置140可通訊式地被耦合至處理器110。在一施作中,該等一個或多個實體記憶體單元120,130與該等一個或多個輸入/輸出裝置140可用一個或多個匯流排150通訊式地被耦合至處理器110。
處理器110可包括一原子狀態機器112、一依電性實體保護儲存區(如快取記憶體)113與一非依電性實體保護儲存區114。原子狀態機器112可施作一開機模式且可選配地施作一開機模式升級機制。非依電性實體保護儲存區114可包含開機模式碼。在一施作中,該依電性113與非依電性114實體保護儲存區可為處理器110之積體部分(如在處理器模上被製作)。在另一施作中,該依電性113與非依電性114實體保護儲存區可由處理器110被分離。在一施作中,包含開機模式碼之非依電性實體保護儲存區114為可寫入非依電性記憶體(如快閃記憶體之類)。
用於建立第1圖之安全開機架構的系統將在此間配合第2A與2B圖進一步被描述。如第2A與2B圖顯示者,用於依
照本發明的一實施例建立一安全開機架構之方法被顯示。
建立安全開機架構可用處理器110在處理210接收一開機模式登入事件而加以啟動。該等開機模式登入事件可包括為事件後碼執行之可信任性及/或來自被開機模式提供的認證閘之利益顯示隱喻。該等開機模式登入事件可包括一個或多個事件,如重置、部分重置、來自一中斷控制器之一個或多個中斷、來自一關機狀態之一個或多個中斷(如多處理器系統)。在一施作中,在一舊有系統(如x86)之開機模式登入事件可包括:
ENTRY ID開機模式登入事件
開機模式登入事件為非可標示之中斷。一旦進入開機模式,處理器將延遲非可標示之中斷(包括系統管理中斷,SMI),直至開機模式被登出為止。
在處理215,開機模式登入事件之接收可致使處理器
110修改其狀態。在一施作中,就RESET開機模式登入事件而言,處理器110之碼段暫存器(如cs_base)、指令指標暫存器(如eip)與系統管理基礎暫存器(如sm_base)可被修改為下列之值:cs_base=0xffft0000
eip=0x0000fff0
sm_base=0x00030000
其被了解,碼段暫存器與指令指標暫存器指向BIOS開機區塊。在一施作中,進入開機模式會致使目前狀態(如舊有重置)被寫至擴充重疊記憶體結尾之狀態儲存圖。
在選配之處理217,原子狀態機器112可判定重疊記憶體是否被初始化。其被了解,重疊記憶體之重新初始化可就一個或多個開機模式登入事件被避免。因之,若重疊記憶體目前被初始化,用於建立安全開機架構之方法可在處理227進行。若重疊記憶體目前未被初始化,該方法可在處理220進行。
在處理220,原子狀態機器112認證被儲存於非依電性實體保護儲存區114中之開機模式碼。開機模式碼之認證可為依施作而定的。在一施作中,開機模式碼之認證可運用簡單的核對和法則被完成。在另一施作中,開機模式碼之認證可運用複雜的數位簽名驗證處理被完成。認證處理之複雜性可為被用以保存開機模式碼之非依電性實體保護儲存區114的實體安全性的功能。因之,實體保護儲存區114被耦合至處理器110越緊密,所需的認證程度越低。
在處理225,重疊記憶體可被初始化且開機模式碼可被映射至重疊記憶體內。重疊記憶體可藉由組合認證後之開機模式碼與被保留之開機模式資料區而被構建。在一修改後之x86施作中,開機模式碼為前置BIOS開機向量區(PBBVR)物件。在此施作中,重疊記憶體在開機模式執行中被映射至一部分之實體位址空間,其隱蔽一部分之普通實體記憶體(如RAM)。在一施作中,此重疊記憶體被維持為處理器內部記憶體113(如一處理器內部快取陣列)。在一施作中,此重疊記憶體為主記憶體130之被保護的部分。
處理器110之修改後狀態可在處理227被儲存於一狀態儲存圖(SSM)中。在修改後之x86施作中,因RESET事件之結果進入開機模式會致使目前狀態(如舊有重置)被寫至擴充重疊記憶體結尾之狀態儲存圖。
現在參照第3圖,依照本發明的一實施例之一前置BIOS開機向量區(PBBVR)物件被顯示。如第3圖中被顯示者,PBBVR可包含一標頭310及一組合後之碼與資料酬載320。PBBVR之長度可為連續頁數之整數。標頭310可具有被界定之佈置,且包括PBBVR組態與認證資料,其涵蓋整個PBBVR物件與執行時間環境。該組合後之碼與資料酬載320可包含用於在開機模式中執行的所欲之碼與資料。
現在參照第4圖,依照本發明的一實施例之一實體記憶體405與一重疊記憶體410的格式被顯示。如第4圖中被顯示者,重疊記憶體410可被映射至一預射的實體記憶體位置。重疊記憶體410可被映射,使得其在一預設的界限(如1
MiB)415結束。在修改後之x86施作中,重疊記憶體410被映射至0x00100000周圍之實體位址(如1 MB)。在此種施作之背景中,其被了解該重疊記憶體出現為比APIC記憶體較靠近之普通依電性記憶體(如RAM 130),但其由輸入/輸出裝置140對直接記憶體存取(DMA)為不可看見的。其亦被了解,此對在開機模式外執行之碼為不可看見的。
再次參照第1,2A與2B圖,一旦處理器110之目前狀態被儲存於原子狀態機器與開機模式碼已被認證,處理器100之狀態可在處理230被原子狀態機器112改變,以啟動來自重疊記憶體的開機模式碼之運轉時間執行。在修改後之x86施作中,開機模式以最像如16位元的碼段之系統管理模式(SMM)的暫存器狀態與扁平資料段被進入。然而,指令指標被設定為如下:cs_base=0x000f0000
eip=0x0000fff0
因之,碼執行(如隨後於一RESET事件)將以與BIOS開機向量被放置處不同的位置開始。
處理器登入開機模式之理由可在一些機器狀態暫存器被捕取。在修改後之x86施作中,致使登入開機模式的事件之一個或多個參數亦可在下面的一開機模式機器特定暫存器(MSR)被捕取。
MSR_TMx86_BOOT_MODE_ENTRY_STATE=0x80868077
該開機模式機器特定MSR如下列般地執行:RDMSR[MSR_TMx86_BOOT_MODE_ENTRY_STATE]:
該tsb_msr_info_t.bits.entry_event位元欄位值如上述地包含entry_id。因之,指出致使開機模式登入的事件之碼被送回。tsb_msr_info_t.bits.data_page_count包含在開機模式中被提供之額外的4 KiB頁的數目。被送回之擴充重疊大小為被處理器110分配的實際額外記憶體,而非在PBBVR之標
頭被請求的頁。tsb_msr_info_t.bits.data_preserved位元指出登入開機模式是否保留來自先前召喚之重疊記憶體的內容(”0”值指出開機模式記憶體已新近地被即刻化,及”1”值指出該記憶體包含由最後一次離開開機模式起就被保留之資料)。
在一施作中,於已認證PBBVR後,處理器擴充記憶體以包括一個或多個額外資料頁(如4 KiB之非0的倍數)。記憶體重疊之大小可在PBBVR之標頭被定義。在一施作中,PBBVR可被複製至達到192 KiB之一記憶體重疊。該擴充記憶體重疊可被初始化為0xff。
其被熟習本技藝者了解SMM中之碼執行可如何進入保護模式。保護模式可促成分頁、除外與中斷處置之類而不須離開SMM。其進一步被了解,此保護模式特點被開機模式共同。因之,可由開機模式被執行之作業範圍包括:淺薄的,如簡單地執行RSM執行、模彷舊有x86(如沒有開機模式支援);以至於複雜的,如碼之前置BIOS執行以在BIOS敗壞之事件中以BIOS的週邊式恢復完全地認證BIOS、或施作可能初始化SMM處置器或隱藏在被鎖定之T段中的作業系統之非舊有開機順序。因而,透過PBBVR碼執行RSM指令前之開機模式SSM的修改,任意之機器狀態與模式可被實現。
在處理235,開機模式物件之組合碼與資料物件酬載可由記憶體重疊被執行。在一施作中,該碼可認證BIOS開機區塊。在處理240,開機模式可被離開。在一施作中,PBBVR
碼可藉由執行由系統管理模式(RSM)指令之恢復而離開。其被了解,在RESET開機模式登入事件之隨後,儲存於開機模式狀態儲存圖(SSM)中的cs_base,eip與sm_base值為舊有重置向量者。其進一步被了解,若在記憶體開機模式登入向量處呈現之碼(如0xf000:fff0)包含單一RSM指令,則該修改後之處理器將立刻離開開機模式及啟動一舊有開機而鏈結至BIOS。
若PBBVR被認證,BIOS碼可在處理250被執行。在處理265-270,處理器之作業可用一個或多個其他的碼區塊之執行而繼續。一個或多個其他的碼區塊可針對將其認證溯源回至PBBVR開機模式碼的被認證之BIOS碼在處理255-260被認證。
若PBBVR未被認證,處理器之作業可在處理290被停止。選配的是,在停止處理器之作業前,PBBVR之恢復版本可在處理275用處理器對運轉時間被認證。在處理280,PBBVR之恢復版本在其若成功地被認證可由實體保護儲存區被載入預設的重疊記憶體。若PBBVR之恢復版本被認證,處理器之運轉時間執行可如上述地用處理器230繼續。若PBBVR之恢復版本未被認證,處理器之作業可在處理290被停止。因而,若既非主要開機模式碼亦非恢復開機模式碼被認證,該處理器可拒絕執行。
因之,本發明之實施例提供一安全開機架構。安全開機架構之開機模式為一處理器有效地認證目標指令,使得在處理器上被執行之所有指令可對其信任溯源回到該處理
器施作。所以,認證在基本輸入輸出系統(BIOS)開機區塊執行前被建立。
上述開機模式之處理器施作可用額外之處理器強化升級機制加以補充。現在參照第5圖,依照本發明的一實施例用於控制開機模式碼之升級的方法之流程圖被顯示。用於控制開機模式碼之升級的該方法將參照第1圖之系統被描述。
具有安全開機架構之系統在至少一預先存在的正確地被格式化及被認證之物件(如PBBVR)若於實體保護儲存區114中被呈現時可被升級。該開機模式碼升級機制可運用私密/公共金鑰認證法則。用於升級系統中之開機模式碼的處理在處理510以接收一開機模式升級影像開始。在一施作中,一平台製造者產生被簽署之PBBVR升級物件,其經由一輸入/輸出裝置140被傳送至該系統。
現在參照第6圖,依照本發明的一實施例之一開機模式升級物件(如被簽署之PBBVR升級影像)被顯示。如第6圖中顯示者,該物件包括一數位簽名(如DSA簽名)610、充填資料620、新開機模式碼(如新PBBVR)物件630與一升級影像標頭640。該升級影像標頭640包括升級影像大小與版本媒合資訊。新PBBVR 630包含將被升級系統使用之認證資訊。新PBBVR 630不被使用作為用於目前升級之部分的升級認證。此為運轉中之PBBVR在其離開非依電性實體保護儲存區114時、升級影像標頭640之內容、與被運用以認證開機模式升級影像之數位簽名610的組合。
在處理520,被接收之開機模式升級影像(如候選的升級影像)可在依電性實體保護儲存區113中被快取。在修改後之x86施作中,在接收開機模式升級影像之際,在任一有特權之模式(如開機模式、系統管理模式、真實模式與被保護模式之類)中執行的x86碼如下列地將ECX、EAX與EDX暫存器初始化:ECX=MSR_TMx86_PBBVR_UPGRADE=0x80868008
EAX=被簽署之PBBVR影像的底之位址。
EDX=在被簽署之PBBVR影像中的DWORDS之數目
假設舊有碼已就EAX中所保存之值為基礎的被簽署之PBBVR升級影像被配置且長度為EDX DWORDS,該舊有碼執行一WRMSR指令。依作業而定之WRMSR機器致使目前的處理器快取候選的PBBVR升級影像之一複製。該候選的PBBVR升級影像之被快取的複製應被保護免於直接記憶體存取及來自層處理器之偵察要求。
在處理530,於目前開機模式物件之標頭的公共金鑰被用以驗證候選之開機模式升級影像的升級影像標頭中之數位簽名。在一施作中,WRMSR指令由非依電性實體保護儲存區114重新讀取目前PBBVR之標頭以抽取一公共DSA金鑰。WRMSR指令亦計對此公共DSA金鑰驗證被接收之候選的PBBVR升級影像之DSA簽名。若候選的升級影像認證失敗,WRMSR機器特定作業之完成可經由RDMSR產生一狀態報告(如0x80868000)。
在處理535,額外之候選的開機模式升級影像驗證可被
執行。在一施作中,WRMSR指令亦可針對如媒合「目前」欄位至在到來之候選的PBBVR升級影像中被確定的被允許之範圍的存取控制資料來驗證該候選的PBBVR升級影像。若候選的升級影像在此存取控制測試失敗,WRMSR機器特定作業之完成可經由RDMSR產生一狀態報告(如0x80868000)。
若認證與存取控制檢查成功,處理器110在處理540可蓋寫於實體保護儲存區114中目前之開機模式物件。然後在處理545,被寫入實體保護儲存區114之新開機模式物件可被驗證。在一施作中,若於實體保護儲存區114中目前之主要PBBVR可被驗證為有效的,處理器110可首先蓋寫目前之恢復PBBVR。然後該處理器可驗證新的恢復PBBVR正確地被寫至實體保護儲存區114。然後該處理器可重複該程序以寫入該升級PBBVR作為實體保護儲存區114中新的主要PBBVR。
在一替選之施作中,若實體保護儲存區114中之主要PBBVR被發現為無效的,該處理器可用新的PBBVR蓋寫該無效之主要PBBVR並驗證該新的主要PBBVR正確地被寫至實體保護儲存區114。然後該處理器可用新的PBBVR蓋寫該恢復PBBVR並驗證該新的恢復PBBVR亦正確地被寫至實體保護儲存區114。因此,就算在如電力失效與熱事件之類的事件可能致使PBBVR升級處理敗壞之事實,於實體保護儲存區114中將存在有至少一未敗壞的PBBVR。
因之,本發明的實施例提供被認證之開機模式碼可用
以被升級的機制。其被了解,該開機模式碼可在運轉中之系統中不致損失信任地而有利地被升級。
本發明之前面的特定實施例已就說明與描述之目的被提出。其不欲為排他性的且將本發明限制於所揭示之精確形式,及明顯的是很多修改與變化基於上面的教習為可能的。該等實施例被選用及被描述以最佳地解釋本發明之原理與其實務應用,而促成其他熟習本技藝者用適合所企畫的特定用途之各種修改來最佳地運用本發明與各種實施例。其被欲於本發明之領域用在此所附的申請專利範圍與其等值事項被定義。
下述概念將由本發明所支持:
概念1. 一種具有一安全開機架構之處理器,其包含:用於認證一開機模式物件之一實體保護儲存區;以及一原子狀態機器,其被耦合至該實體保護儲存區用於在執行一第一目標指令前認證該開機模式物件。
概念.2 如概念.1所述之處理器,其中該開機模式物件包含一標頭部分與一組合後之碼與資料酬載部分。
概念.3 如概念.2所述之處理器,其中該標頭部分包含受限定之記憶體大小。
概念.4 如概念.3所述之處理器,其中該標頭包含組態與認證資料。
概念.5 如概念.1所述之處理器,其中該原子狀態機器為可操作的,以:
接收一候選的開機模式升級影像;認證該候選的開機模式升級影像;以及在該候選的開機模式升級影像若被認證時,以該候選的開機模式升級影像中之新開機模式物件替換該開機模式物件。
概念.6 一種用於為具有一處理器之電腦系統提供一安全開機架構的方法,其包含:接收一開機模式事件;認證一開機模式物件;以及在該開機模式物件若被認證時執行一第一目標指令。
概念.7 如概念.6所述之方法,進一步包含:認證一初始化狀態;在認證該初始化狀態後執行該開機模式物件中之一第一指令;以及在執行該第一指令後重新認證該初始化狀態。
概念.8 如概念.6所述之方法,進一步包含:若該開機模式物件未被認證,認證一恢復開機模式物件;若該恢復開機模式物件被認證,執行該第一指令;以及若該恢復開機模式物件未被認證,停止執行。
概念.9 如概念.6所述之方法,其中認證該開機模式物件包含一數位簽名驗證處理。
概念.10 如概念.6所述之方法,其中認證該開機模式物件包含一核對和驗證處理。
概念.11 如概念.6所述之方法,其中該開機模式事件包含非可遮蔽的中斷。
概念.12 如概念.6所述之方法,其中該開機模式物件包含具有被定義的佈置之一標頭。
概念.13 如概念.12所述之方法,其中該標頭包含組態與認證資料。
概念.14 如概念.6所述之方法,進一步包含在一開機模式特定機器狀態暫存器中認證該開機模式事件的一參數。
概念.15 如概念.6所述之方法,進一步包含:接收一候選的開機模式升級影像;認證該候選的開機模式升級影像;以及在該候選的開機模式升級影像若被認證時,以該候選的開機模式升級影像中之新開機模式物件替換該開機模式物件。
概念.16 如概念.15所述之方法,其中認證該候選的開機模式升級影像包含針對該開機模式碼之一公共金鑰驗證該候選的開機模式升級影像的一數位簽名。
概念.17 一種用於提供一安全開機架構之系統,其包含:用於認證一主要開機模式物件之一實體保護儲存區;一原子狀態機器,其用於:
在接收一開機模式事件之際於一狀態儲存圖中認證一處理器的狀態;在接收一開機模式事件之際認證該主要開機模式物件的一物件;以及若該主要PBBVR成功地被認證,由該實體保護儲存區載入該主要開機模式物件至一重疊記憶體內;以及該處理器用於在若該主要PBBVR成功地被認證,執行來自該重疊記憶體之該主要開機模式物件。
概念.18 如概念.17所述之系統,其中該主要開機模式物件包含一主要前置BIOS開機向量區(PBBVR)。
概念.19 如概念.18所述之系統,其中該原子狀態機器係進一步用於在執行該主要PBBVR後恢復來自該狀態儲存圖的該狀態。
概念.20 如概念.17所述之系統,其中:該實體保護儲存區係進一步用於認證一恢復主要開機模式物件;該原子狀態機器係進一步用於:在該主要開機模式物件若未成功地被認證,認證該恢復開機模式物件之一物件;在該主要恢復若未成功地被認證,由該實體保護儲存區載入該恢復開機模式物件至該重疊記憶體內;以及在執行該恢復開機模式物件後恢復來自該狀態儲存圖之該處理器的該狀態;以及在該恢復開機模式物件若未成功地被認證,用該處
理器停止執行;以及該處理器用於在該恢復開機模式物件若成功地被認證,執行來自該重疊記憶體之恢復開機模式物件。
概念.21 如概念.20所述之系統,其中該恢復開機模式物件包含一恢復開機模式物件。
概念.22 如概念.17所述之系統,其中恢復該處理器的該狀態致使用該處理器執行以跳越至一BIOS開機區塊。
概念.23 如概念.19所述之系統,其中該主要PBBVR包含一標頭與一被組合的碼與資料酬載。
概念.24 如概念.23所述之系統,其中該主要PBBVR包含有整數頁數的連續之數頁。
概念.25 如概念.23所述之系統,其中該主要PBBVR包含處理器組態與認證資料。
概念.26 如概念.17所述之系統,其中該重疊記憶體被映射至一預設的實體記憶體位置。
概念.27 如概念.17所述之系統,其中該重疊記憶體出現成為普通的記憶體。
概念.28 如概念.17所述之系統,其中該重疊記憶體對用一輸入/輸出裝置的直接記憶體存取為不可見的。
概念.29 如概念.17所述之系統,其中該重疊記憶體對執行開機模式外的碼為不可見的。
概念.30 如概念.17所述之系統,其中該狀態儲存圖被認證於該重疊記憶體的結束處。
概念.31 如概念.17所述之系統,進一步包含一開機模
式特定機器狀態暫存器用於捕取該開機模式事件的一參數。
概念.32 如概念.18所述之系統,該原子狀態機器係進一步用於;接收一候選的PBBVR升級影像;認證該候選的PBBVR升級影像;以及若該候選的PBBVR升級影像被認證,以該候選的PBBVR升級影像之新的PBBVR替換該主要PBBVR與該恢復PBBVR。
概念.33 如概念.18所述之方法,其中認證該候選的PBBVR升級影像包含針對該主要PBBVR或該恢復PBBVR一公共金鑰驗證該候選的開機模式升級影像的一數位簽名。
110‧‧‧處理器
112‧‧‧原子狀態機器
113‧‧‧依電性實體保護儲存區
114‧‧‧非依電性實體保護儲存區
120‧‧‧實體記憶體單元
130‧‧‧實體記憶體單元
140‧‧‧輸入/輸出裝置
150‧‧‧匯流排
310‧‧‧標頭
320‧‧‧碼與資料酬載
405‧‧‧實體記憶體
410‧‧‧重疊記憶體
415‧‧‧界限
610‧‧‧數位簽名
620‧‧‧充填資料
630‧‧‧新開機模式碼物件
640‧‧‧升級影像標頭
第1圖顯示依照本發明的一實施例用於建立一安全開機架構的系統之方塊圖。
第2A與2B圖顯示依照本發明的一實施例用於建立一安全開機架構的方法之流程圖。
第3圖顯示依照本發明的一實施例一前置BIOS開機向量區(PBBVR)格式。
第4圖顯示依照本發明的一實施例之實體記憶體與重疊記憶體之格式。
第5圖顯示依照本發明的一實施例用於控制該開機模式之升級的方法之流程圖。
第6圖顯示依照本發明的一實施例一開機模式升級物件之格式。
110‧‧‧處理器
112‧‧‧原子狀態機器
113‧‧‧依電性實體保護儲存區
114‧‧‧非依電性實體保護儲存區
120‧‧‧實體記憶體單元
130‧‧‧實體記憶體單元
140‧‧‧輸入/輸出裝置
150‧‧‧匯流排
Claims (36)
- 一種用於提供一安全開機架構的設備,其包含:用於儲存一前置BIOS開機模式物件之一實體保護儲存區;以及一原子狀態機器,被耦合至該實體保護儲存區用於在一處理器執行該前置BIOS開機模式物件之一第一目標指令前認證該開機模式物件。
- 如申請專利範圍第1項所述之用於提供一安全開機架構的設備,其中該前置BIOS開機模式物件包含一標頭部分與一組合後之碼與資料酬載部分。
- 如申請專利範圍第2項所述之用於提供一安全開機架構的設備,其中該標頭部分包含受限定之記憶體大小。
- 如申請專利範圍第3項所述之用於提供一安全開機架構的設備,其中該標頭包含組態與認證資料。
- 如申請專利範圍第1項所述之用於提供一安全開機架構的設備,其中該原子狀態機器為可操作的,以:接收一候選的開機模式升級影像;認證該候選的開機模式升級影像;以及在該候選的開機模式升級影像若被認證時,以該候選的開機模式升級影像中之新前置BIOS開機模式物件替換該前置BIOS開機模式物件。
- 一種用於為具有一處理器之電腦系統提供一安全開機架構的方法,其包含:接收一開機模式事件; 認證一前置BIOS開機模式物件;以及在該前置BIOS開機模式物件若被認證時執行該前置BIOS開機模式物件之一第一目標指令。
- 如申請專利範圍第6項所述之方法,進一步包含:認證一初始化狀態;在認證該初始化狀態後執行該前置BIOS開機模式物件中之一第一指令;以及在執行該第一指令後重新認證該初始化狀態。
- 如申請專利範圍第6項所述之方法,進一步包含:若該前置BIOS開機模式物件未被認證,認證一恢復前置BIOS開機模式物件;若該恢復前置BIOS開機模式物件被認證,執行該第一指令;以及若該恢復前置BIOS開機模式物件未被認證,停止執行。
- 如申請專利範圍第6項所述之方法,其中認證該前置BIOS開機模式物件包含一數位簽名驗證處理。
- 如申請專利範圍第6項所述之方法,其中認證該前置BIOS開機模式物件包含一核對和驗證處理。
- 如申請專利範圍第6項所述之方法,其中該開機模式事件包含非可遮蔽的中斷。
- 如申請專利範圍第6項所述之方法,其中該前置BIOS開機模式物件包含具有被定義的佈置之一標頭。
- 如申請專利範圍第12項所述之方法,其中該標頭包含組 態與認證資料。
- 如申請專利範圍第6項所述之方法,進一步包含在一開機模式特定機器狀態暫存器中認證該開機模式事件的一參數。
- 如申請專利範圍第6項所述之方法,進一步包含:接收一候選的開機模式升級影像;認證該候選的開機模式升級影像;以及在該候選的開機模式升級影像若被認證時,以該候選的開機模式升級影像中之新前置BIOS開機模式物件替換該前置BIOS開機模式物件。
- 如申請專利範圍第15項所述之方法,其中認證該候選的開機模式升級影像包含針對該前置BIOS開機模式物件之一公共金鑰驗證該候選的開機模式升級影像的一數位簽名。
- 一種用於提供一安全開機架構之系統,其包含:用於儲存一主要前置BIOS開機模式物件之一實體保護儲存區;一原子狀態機器,其用於:在接收一開機模式事件之際於一狀態儲存圖中儲存一處理器的狀態;在接收該開機模式事件之際認證該主要前置BIOS開機模式物件;以及若該主要前置BIOS開機模式物件成功地被認證,由該實體保護儲存區載入該主要前置BIOS開機模式物 件至一重疊記憶體內;以及該處理器用於在若該主要前置BIOS開機模式物件成功地被認證,執行來自該重疊記憶體之該主要前置BIOS開機模式物件。
- 如申請專利範圍第17項所述之系統,其中該主要前置BIOS開機模式物件包含一主要前置BIOS開機向量區(PBBVR)。
- 如申請專利範圍第18項所述之系統,其中該原子狀態機器係進一步用於在執行該主要PBBVR後恢復來自該狀態儲存圖的該處理器之該狀態。
- 如申請專利範圍第17項所述之系統,其中:該實體保護儲存區係進一步用於認證一恢復前置BIOS開機模式物件;該原子狀態機器係進一步用於:在該主要前置BIOS開機模式物件若未成功地被認證,認證該恢復前置BIOS開機模式物件之一物件;在該恢復前置BIOS開機模式物件若成功地被認證,由該實體保護儲存區載入該恢復前置BIOS開機模式物件至該重疊記憶體內;以及在執行該恢復前置BIOS開機模式物件後恢復來自該狀態儲存圖之該處理器的該狀態;以及在該恢復前置BIOS開機模式物件若未成功地被認證,用該處理器停止執行;以及該處理器用於在該恢復前置BIOS開機模式物件若 成功地被認證,執行來自該重疊記憶體之恢復前置BIOS開機模式物件。
- 如申請專利範圍第20項所述之系統,其中該恢復前置BIOS開機模式物件包含一恢復PBBVR。
- 如申請專利範圍第17項所述之系統,其中恢復該處理器的該狀態致使用該處理器執行以跳越至一BIOS開機區塊。
- 如申請專利範圍第19項所述之系統,其中該主要PBBVR包含一標頭與一被組合的碼與資料酬載。
- 如申請專利範圍第23項所述之系統,其中該主要PBBVR包含有整數頁數的連續之數頁。
- 如申請專利範圍第23項所述之系統,其中該主要PBBVR包含處理器組態與認證資料。
- 如申請專利範圍第17項所述之系統,其中該重疊記憶體被映射至一預設的實體記憶體位置。
- 如申請專利範圍第17項所述之系統,其中該重疊記憶體出現成為普通的記憶體。
- 如申請專利範圍第17項所述之系統,其中該重疊記憶體對用一輸入/輸出裝置的直接記憶體存取為不可見的。
- 如申請專利範圍第17項所述之系統,其中該重疊記憶體對執行開機模式外的碼為不可見的。
- 如申請專利範圍第17項所述之系統,其中該狀態儲存圖被認證於該重疊記憶體的結束處。
- 如申請專利範圍第17項所述之系統,進一步包含一開機 模式特定機器狀態暫存器用於捕取該開機模式事件的一參數。
- 如申請專利範圍第18項所述之系統,該原子狀態機器係進一步用於;接收一候選的PBBVR升級影像;認證該候選的PBBVR升級影像;以及若該候選的PBBVR升級影像被認證,以該候選的PBBVR升級影像之新的PBBVR替換該主要PBBVR與該恢復PBBVR。
- 如申請專利範圍第18項所述之方法,其中認證該候選的PBBVR升級影像包含針對該主要PBBVR或該恢復PBBVR一公共金鑰驗證該候選的開機模式升級影像的一數位簽名。
- 一種用於提供一安全開機架構的設備,包含:用於安全儲存一前置BIOS開機向量區(PBBVR)物件之手段;用於在一處理器執行一第一目標指令前認證該PBBVR物件之手段;及用於在該PBBVR物件若被認證時用該處理器執行該PBBVR物件之手段。
- 如申請專利範圍第34項所述之用於提供一安全開機架構的設備,進一步包含:用於接收一PBBVR升級物件之手段;用於認證該PBBVR升級物件之手段;及 用於在該PBBVR升級物件若被認證時,以該PBBVR升級物件替換該被安全儲存的PBBVR物件之手段。
- 如申請專利範圍第34項所述之用於提供一安全開機架構的設備,進一步包含:用於若該PBBVR物件未被認證,認證一PBBVR恢復物件之手段;用於若該PBBVR恢復物件被認證,用該處理器執行該PBBVR恢復物件之手段;及用於若該PBBVR恢復物件未被認證,停止該處理器之執行之手段。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/053,081 US20060179308A1 (en) | 2005-02-07 | 2005-02-07 | System and method for providing a secure boot architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200636515A TW200636515A (en) | 2006-10-16 |
TWI436229B true TWI436229B (zh) | 2014-05-01 |
Family
ID=36781282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095103879A TWI436229B (zh) | 2005-02-07 | 2006-02-06 | 用以提供安全開機架構之系統與方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060179308A1 (zh) |
CN (1) | CN101167060B (zh) |
TW (1) | TWI436229B (zh) |
WO (1) | WO2006086301A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468361B2 (en) * | 2005-09-21 | 2013-06-18 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US20080126779A1 (en) * | 2006-09-19 | 2008-05-29 | Ned Smith | Methods and apparatus to perform secure boot |
US8984265B2 (en) * | 2007-03-30 | 2015-03-17 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
TWI342520B (en) * | 2007-08-27 | 2011-05-21 | Wistron Corp | Method and apparatus for enhancing information security in a computer system |
US20090133097A1 (en) * | 2007-11-15 | 2009-05-21 | Ned Smith | Device, system, and method for provisioning trusted platform module policies to a virtual machine monitor |
US9069990B2 (en) * | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US9158896B2 (en) * | 2008-02-11 | 2015-10-13 | Nvidia Corporation | Method and system for generating a secure key |
US9069706B2 (en) * | 2008-02-11 | 2015-06-30 | Nvidia Corporation | Confidential information protection system and method |
US20090204803A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Handling of secure storage key in always on domain |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
DE102008011925B4 (de) | 2008-02-29 | 2018-03-15 | Globalfoundries Inc. | Sicheres Initialisieren von Computersystemen |
US9613215B2 (en) * | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
DE102008021567B4 (de) | 2008-04-30 | 2018-03-22 | Globalfoundries Inc. | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel |
US8843742B2 (en) * | 2008-08-26 | 2014-09-23 | Hewlett-Packard Company | Hypervisor security using SMM |
US8443181B2 (en) * | 2008-09-30 | 2013-05-14 | Qualcomm Incorporated | Processor boot security device and methods thereof |
TWI409664B (zh) * | 2009-09-09 | 2013-09-21 | Micro Star Int Co Ltd | Personal computer boot authentication method and its boot authentication system |
US8464038B2 (en) | 2009-10-13 | 2013-06-11 | Google Inc. | Computing device with developer mode |
US8321657B2 (en) * | 2009-10-16 | 2012-11-27 | Dell Products L.P. | System and method for BIOS and controller communication |
US8522066B2 (en) | 2010-06-25 | 2013-08-27 | Intel Corporation | Providing silicon integrated code for a system |
US8312258B2 (en) * | 2010-07-22 | 2012-11-13 | Intel Corporation | Providing platform independent memory logic |
US9489924B2 (en) | 2012-04-19 | 2016-11-08 | Nvidia Corporation | Boot display device detection and selection techniques in multi-GPU devices |
US9740492B2 (en) * | 2015-03-23 | 2017-08-22 | Intel Corporation | System management mode trust establishment for OS level drivers |
TWI616774B (zh) * | 2016-12-08 | 2018-03-01 | 緯創資通股份有限公司 | 電子裝置及其安全起動方法 |
CN108664280A (zh) * | 2017-03-31 | 2018-10-16 | 深圳市中兴微电子技术有限公司 | 一种嵌入式系统启动方法及装置 |
US10540501B2 (en) * | 2017-06-02 | 2020-01-21 | Dell Products, L.P. | Recovering an information handling system from a secure boot authentication failure |
US11119947B2 (en) * | 2017-10-30 | 2021-09-14 | Hewlett-Packard Development Company, L.P. | Secure hardware initialization |
US11099831B2 (en) * | 2018-02-08 | 2021-08-24 | Micron Technology, Inc. | Firmware update in a storage backed memory system |
US11243757B2 (en) * | 2018-12-03 | 2022-02-08 | Dell Products L.P. | Systems and methods for efficient firmware update of memory devices in BIOS/UEFI environment |
US12073225B2 (en) | 2020-09-23 | 2024-08-27 | Intel Corporation | Technology to measure boot activity before a processor enters a working state |
US11800693B1 (en) * | 2021-09-30 | 2023-10-24 | Amazon Technologies, Inc. | Reversible server system |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4401208A (en) * | 1981-04-13 | 1983-08-30 | Allmacher Jr Daniel S | Accumulating conveyor system |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5379342A (en) * | 1993-01-07 | 1995-01-03 | International Business Machines Corp. | Method and apparatus for providing enhanced data verification in a computer system |
JP2974577B2 (ja) * | 1994-02-28 | 1999-11-10 | 株式会社東芝 | コンピュータシステム |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6401208B2 (en) * | 1998-07-17 | 2002-06-04 | Intel Corporation | Method for BIOS authentication prior to BIOS execution |
US6356529B1 (en) * | 1999-08-12 | 2002-03-12 | Converse, Ltd. | System and method for rapid wireless application protocol translation |
US6519552B1 (en) * | 1999-09-15 | 2003-02-11 | Xerox Corporation | Systems and methods for a hybrid diagnostic approach of real time diagnosis of electronic systems |
US6711675B1 (en) * | 2000-02-11 | 2004-03-23 | Intel Corporation | Protected boot flow |
US6625730B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine |
US7069431B2 (en) * | 2001-07-31 | 2006-06-27 | Lenovo ( Singapore) Pte Ltd. | Recovery of a BIOS image |
US7308714B2 (en) * | 2001-09-27 | 2007-12-11 | International Business Machines Corporation | Limiting the output of alerts generated by an intrusion detection sensor during a denial of service attack |
US7237126B2 (en) * | 2001-09-28 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for preserving the integrity of a management subsystem environment |
AU2003209056A1 (en) * | 2002-02-07 | 2003-09-02 | Invensys Systems, Inc. | System and method for authentication and fail-safe transmission of safety messages |
US7024550B2 (en) * | 2002-06-28 | 2006-04-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus for recovering from corrupted system firmware in a computer system |
JP2004038529A (ja) * | 2002-07-03 | 2004-02-05 | Nec Corp | 情報処理装置 |
US20040064457A1 (en) * | 2002-09-27 | 2004-04-01 | Zimmer Vincent J. | Mechanism for providing both a secure and attested boot |
EP1556781A1 (en) * | 2002-10-21 | 2005-07-27 | STMicroelectronics Asia Pacific Pte Ltd. | Apparatus to implement dual hash algorithm |
US7231512B2 (en) * | 2002-12-18 | 2007-06-12 | Intel Corporation | Technique for reconstituting a pre-boot firmware environment after launch of an operating system |
US7340638B2 (en) * | 2003-01-30 | 2008-03-04 | Microsoft Corporation | Operating system update and boot failure recovery |
US20050021968A1 (en) * | 2003-06-25 | 2005-01-27 | Zimmer Vincent J. | Method for performing a trusted firmware/bios update |
US7533274B2 (en) * | 2003-11-13 | 2009-05-12 | International Business Machines Corporation | Reducing the boot time of a TCPA based computing system when the core root of trust measurement is embedded in the boot block code |
US7243221B1 (en) * | 2004-02-26 | 2007-07-10 | Xilinx, Inc. | Method and apparatus for controlling a processor in a data processing system |
-
2005
- 2005-02-07 US US11/053,081 patent/US20060179308A1/en not_active Abandoned
-
2006
- 2006-02-03 CN CN2006800088798A patent/CN101167060B/zh not_active Expired - Fee Related
- 2006-02-03 WO PCT/US2006/004094 patent/WO2006086301A1/en active Application Filing
- 2006-02-06 TW TW095103879A patent/TWI436229B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CN101167060B (zh) | 2012-11-28 |
CN101167060A (zh) | 2008-04-23 |
US20060179308A1 (en) | 2006-08-10 |
TW200636515A (en) | 2006-10-16 |
WO2006086301A1 (en) | 2006-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI436229B (zh) | 用以提供安全開機架構之系統與方法 | |
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
US7937575B2 (en) | Information processing system, program product, and information processing method | |
EP3674954B1 (en) | Security control method and computer system | |
US8806224B2 (en) | Low cost trusted platform | |
US6223284B1 (en) | Method and apparatus for remote ROM flashing and security management for a computer system | |
JP4288209B2 (ja) | システム・オン・チップのためのセキュリティ・アーキテクチャ | |
DE10254621B4 (de) | Computervorrichtung, Verfahren und Computersystem zum Erzeugen einer vertrauenswürdigen Umgebung | |
JP4708414B2 (ja) | ランタイム・セキュリティ保証用の自律型メモリ・チェッカ | |
JP6054908B2 (ja) | 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ | |
US10275599B2 (en) | Device and method for providing trusted platform module services | |
JP5346608B2 (ja) | 情報処理装置およびファイル検証システム | |
KR20170095161A (ko) | 시큐어 시스템 온 칩 | |
CN104794393A (zh) | 一种嵌入式分区映像安全认证及内核可信引导方法及其设备 | |
JP2007528083A (ja) | 協調型組込みエージェント | |
TWI801468B (zh) | 用於保護電子裝置之安全性之設備、方法及系統以及相關的微控制器 | |
US10482278B2 (en) | Remote provisioning and authenticated writes to secure storage devices | |
US20130227262A1 (en) | Authentication device and authentication method | |
US10776493B2 (en) | Secure management and execution of computing code including firmware | |
US9448888B2 (en) | Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank | |
US11188321B2 (en) | Processing device and software execution control method | |
CN107567629A (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
US8108905B2 (en) | System and method for an isolated process to control address translation | |
US20230342476A1 (en) | Bootloaders | |
CN113448682A (zh) | 一种虚拟机监控器加载方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |