TWI539324B - 驗證控制器碼及系統啓動碼之技術 - Google Patents
驗證控制器碼及系統啓動碼之技術 Download PDFInfo
- Publication number
- TWI539324B TWI539324B TW103108372A TW103108372A TWI539324B TW I539324 B TWI539324 B TW I539324B TW 103108372 A TW103108372 A TW 103108372A TW 103108372 A TW103108372 A TW 103108372A TW I539324 B TWI539324 B TW I539324B
- Authority
- TW
- Taiwan
- Prior art keywords
- controller
- code
- memory
- firmware
- processor
- 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
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
本發明係關於一種驗證控制器碼及系統啟動碼之技術。
一種計算系統可包括用以執行該計算系統的各種啟動功能之程式碼。此程式碼可包括基本輸入/輸出系統(BIOS)程式碼。BIOS程式碼可遭受在計算系統內或一外部伺服器之惡意軟體的攻擊。由於攻擊的結果,該BIOS程式碼可能變成經受危害。
本發明係特地提出一種一種方法,包含以下步驟:於在一系統中的一控制器之一初始化程序期間,藉由該控制器驗證用於在該控制器上執行的控制器碼,該控制器係獨立於一系統的一處理器,其中該驗證係在該處理器之執行之前進行;且在該控制器碼之驗證之後,由該控制器驗證該系統啟動碼,其中該系統啟動碼係用於由該處理器之執行。
100‧‧‧計算系統
102‧‧‧嵌入式控制器
104‧‧‧共享非依電性記憶體
106‧‧‧處理器
107‧‧‧系統韌體
108‧‧‧控制器碼
110、130、132‧‧‧啟動方塊
114‧‧‧系統韌體冗餘副本
116‧‧‧私用非依電性記憶體
120‧‧‧共用匯流排
202、204、206、208、210、212、214、216、218‧‧‧工作
402‧‧‧輸入/輸出(I/O)控制器
404‧‧‧使用者輸入設備
406‧‧‧鍵盤
408‧‧‧風扇
410‧‧‧電池
412‧‧‧加密硬體
413‧‧‧電源供應器
414‧‧‧唯讀記憶體(ROM)
416‧‧‧啟動載入器
418‧‧‧加密金鑰
419‧‧‧隨機存取記憶體
422、424、440、442‧‧‧簽章
434‧‧‧策略資訊
502、506、508、510、511、512、514、516、518、520、522、524、526、528、530、532‧‧‧工作
602、606、608、610、612、514、616、618、620、621、622、624、626‧‧‧工作
關於以下圖式的一些實施將受描述:
圖1為根據某些實施的一範例系統的一方塊圖;圖2為根據某些實施藉由一嵌入式控制器進行的一啟動程序的一流程圖;圖3為根據某些實施的一驗證過程的一流程圖;圖4為根據進一步的實施的一範例系統的一方塊圖;以及圖5至7為根據更進一步的實施之一流程的一流程圖。
惡意軟體攻擊用於執行一計算系統的啟動之系統程式碼,可導致該計算系統的完整性受危害,因此使得在該計算系統中可發生未經授權的存取和操作。例如,受危害的系統程式碼可以允許由惡意實體隱蔽遠程監控及/或計算系統的控制,未經授權的訪問和/或由惡意修改的計算系統中的數據的惡意軟體,計算系統的功能化,等等。受到威脅的系統代碼,可以參考已經被破壞,使得該系統的代碼不再可用,或者,受到威脅的系統代碼,可以參考已經以某種方式改變系統的代碼,但是,仍然是能夠執行系統代碼。注意,系統代碼,也可以有意或非有意地破壞。
雖然可於一計算系統中提供用以保護該系統一保護機制,此等保護機制在特定條件下可能會被危害,其可能會使系統碼經受惡意軟體的攻擊。
用於執行一計算系統的啟動之系統碼可包括系統韌體,其可為在該計算系統中的一處理器(或多個處理器)上可執行之機器可讀取指令的形式。「系統韌體」可指能夠
執行一計算系統的啟動之任何機器可讀取指令。計算系統的範例例包括桌上型電腦、筆記型電腦、平板電腦、個人數位助理(PDA)、智慧型能電話、遊戲設備、伺服器器計算機、儲存節點、網路通信節點,且依此類推。
系統韌體可以包括基本輸入/輸出系統(BIOS)代碼,它可以初始化該計算系統的各種組件,並載入計算系統的一操作系統(OS)。該BIOS代碼可以執行硬體組件的檢查,以確保硬體組件為存在且正常地運行。此可例如是一個電力開啟自我測試(POST)程序的一部份。在POST程序後,BIOS代碼可以透過一個啟動序列的其餘部分而進展,在此之後,該BIOS代碼可以載入並將控制權交給OS。BIOS代碼可以包括傳統的BIOS代碼或統一可延伸硬體介面(UEFI)的代碼。在一些範例子中,BIOS代碼可以包含在OS載入後執行的運行時間部分。
該系統韌體可儲存在非依電性記憶體中,諸如一快閃記憶體或任何其他可編程永久記憶體。一旦系統韌體在一非依電性記憶體中被危害,一可能的修復可包括實體地取代包括該非依電性記憶體之一組件。此等處理受危害之系統韌體的一技術,可為勞動密集的、昂貴和費時的。
根據一些實施,提供技術或機制以允許受危害之系統韌體的偵測,以及當系統韌體的危害係受偵測的狀況下系統韌體自我療癒。圖1是一個範例性計算系統100的方塊圖,其包括一嵌入式控制器102、一共享非依電性記憶體104、一處理器106和一私用非依電性記憶體116。該共享非
依電性記憶體104為共享的意義是,其可由多個實體存取,實體包括該嵌入式控制器102和至少一個其他實體(包括處理器106)。該私用非依電性記憶體116可由嵌入式控制器102存取,但不能由處理器106或在計算系統100中的其他組件存取。使得私用非依電性記憶體116的不可被處理器106和其他組件存取以保護私用非依電性記憶體116的未經授權的篡改內容。私用非依電性記憶體116可以在任何時候可以由嵌入式控制器102存取。
雖然圖1中未顯示,一輸入/輸出(I/O)控制器可提供於該處理器106與該共享非依電性記憶體104之間。
該私用非依電性記憶體116可實體地獨立於該共享非依電性記憶體104(諸如實施為不同實體記憶體裝置)可替代地,該私用非依電性記憶體116與該共享非依電性記憶體104可實體地存在於一共用記憶體裝置上,但該私用非依電性記憶體104與該共享非依電性記憶體116位於該實體記憶體裝置的不同區段處,在此包含該私用非依電性記憶體116的該實體記憶體裝置的區段係僅可由該嵌入式控制器102存取。
該共享非依電性記憶體104係透過一共享匯流排120藉由該嵌入式控制器102或藉由另一實體存取。在一些實施中,僅有一個實體在任何給定時間內可存取該共享匯流排120,因此一次僅有一實體可存取該共享非依電性記憶體104。在一些範例中,該共享匯流排120係一共享序列週邊界面(SPI)匯流排。一SPI匯流排係一同步串列資料連結,
其中在該SPI匯流排上的裝置以一主從模式運作。在其他範例中,可使用另一種類型的共享匯流排120。在可替代範例中,可提供一仲裁機制以允許在該計算系統的各種狀態中用於該匯流排120的共享存取,包括一低電力狀態與一正常運行時間狀態。
該共享非依電性記憶體104可儲存系統韌體107,其可包括BIOS代碼。該BIOS代碼107可包括控制器碼108其係用於藉由該嵌入式控制器102的執行以及一啟動方塊110其係待由該處理器106所執行。該控制器碼108可為嵌入式控制器(EC)韌體的形式,其可代表在該嵌入式控制器102中可執行的任何機器可讀取指令。可替代地,該控制器碼108可為應用軟體,其可為機器可讀取指令的形式。在隨後的討論中,雖然提及了「EC韌體」,應該注意的是技術或機構可以適用至該控制器碼108的其他形式。
在根據圖1的範例中,該EC韌體108係包括在該系統韌體107的啟動方塊110中。包括該EC韌體108在內的啟動方塊110可提供一指示,其為該EC韌體108已經由提供該系統韌體107的實體被標示,其可為該計算系統100的供應商或者另一實體。在其他範例中,該EC韌體108可獨立於該啟動方塊110。
啟動方塊110為該BIOS代碼的一部份,且在當該計算系統100啟動時係首先執行。該啟動方塊110係在剩餘的BIOS代碼被允許被執行前執行。該啟動方塊110可用以檢查該BIOS代碼的完整性以及執行其他初始功能。若該
啟動方塊110確認該BIOS代碼的完整性,接著該啟動方塊110可通過對該BIOS代碼的主要部分之控制,用以初始化相關聯於該BIOS代碼的剩餘操作。
在一些實施中,該啟動方塊110可包括用於量測之信任根核(CRTM)邏輯組件,其為由信賴計算群組(TCG)所指明的邏輯組件,一種工業標準工作群組。在該計算系統100之一電力啟動程序期間,該CRTM邏輯組件可執行某些初始化工作,且可做出一些量測,此等量測係受儲存以於之後使用。在通過對該BIOS代碼的主要部分之控制前,該CRTM邏輯組件可接著檢查該BIOS代碼。一旦該BIOS代碼完成執行且通過對OS的控制,基於該CRTM邏輯組件所做的量測,可該OS確認該計算系統100的可信賴度。
嵌入式控制器102是實體地獨立於該計算系統100的處理器106。該處理器106係用於執行該OS、應用程式碼和在系統100中的其他代碼。另一方面,當編程進入該EC韌體108,該嵌入式控制器102可以被用來執行特定的預定工作。可由嵌入式控制器102執行的工作之範例包括以下任一者或一些組合:在計算系統100中的電力供應控制(用於控制供給電力的電壓予計算系統100的各種組件之電力供應),在計算系統100中電池的充電與控制、熱監控(用以監控在計算系統100中的溫度)、風扇控制(用以控制在計算系統100中的風扇),並與一使用者輸入裝置互動(諸如,進行計算系統100的鍵盤之一掃瞄或與諸如滑鼠、觸控板、觸控螢幕等等的指向裝置的互動)。嵌入式控制器102可以一微
控制器、一個特定應用機體電路(ASIC)、可編程邏輯閘陣列(PGA),或任何其它類型的可編程電路來實現。
該計算系統100亦包括該私用非依電性記憶體116,其儲存一系統韌體副本114,在此該系統韌體副本114包括一啟動方塊132和一EC韌體130。在該私用非依電性記憶體116中的該系統韌體副本114可為在共享非依電性記憶體104中的系統韌體107的複本。可替代地,該系統韌體副本114相比於系統韌體107可為一不同的版本(更新版本或更早版本)。
在一些實施方式中,該嵌入式控制器102於該計算系統100的一重新啟動期間,可首先嘗試用以使用在該私用非依電性記憶體116中該EC韌體130。若該嵌入式控制器102無法成功地使用該EC韌體130,那麼於開始該計算系統100的一嘗試中,該嵌入式控制器102可使用在該共享非依電性記憶體104中的該EC韌體108。若該嵌入式控制器102無法使用該EC韌體130或該EC韌體108以開始該系統,那麼一錯誤產生,其很可能是由於該EC韌體130與該EC韌體108兩者受危害。
雖然在此提到了,在嘗試使用在該共享非依電性記憶體104中的該EC韌體108之前,第一次嘗試使用在該私用非依電性記憶體116中的EC韌體130,不同的實施可在嘗試使用該私用非依電性記憶體116中的EC韌體130之前,第一次嘗試使用在該共享非依電性記憶體104中的該EC韌體108。在其他範例中,EC韌體(或其一部份)可嵌入該嵌入式
控制器102中。該EC韌體嵌入該嵌入是控制器102可為不變的。
根據一些實施,該嵌入式控制器102包括驗證邏輯組件112,其可於該嵌入式控制器的一初始化程序期間,驗證自一非依電性記憶體(116及/或104)提取的該EC韌體(130及/或108)。驗證碼的一片段,諸如該EC韌體,可指加密驗證該碼的片段並未受到改變及/或確認該碼的片段是來自於一信任來源。一初始化程序(或簡單地,一初始化)指的是一程序,其在於該嵌入式控制器102已經重啟之後或者在該嵌入式控制器102的一動力週期之後(在此電力自該嵌入式控制器102移除接著再次施加至該嵌入式控制器102),當該嵌入式控制器102第一次啟動時進行。
此外,一旦EC韌體係受驗證且載入用於在嵌入式控制器102的執行,在藉由該處理器諸如106之該系統韌體之每一重新啟動執行之前,EC韌體可以驗證(在圖2之202執行)系統韌體(例如:來自主要非依電性記憶體104的系統韌體107)。系統韌體之重新啟動的執行可能出現,由於計算系統100的冷重啟、自該計算系統100的一低電力狀態的恢復、一操作系統重新啟動,等等。應注意的是,每次計算系統100進入低電力狀態,系統韌體也可以被EC韌體驗證。在其他範例中,當該處理器106維持供電時,EC韌體也可以驗證系統韌體。
該計算系統100的低電力狀態是指該計算系統100的一狀態,其中該處理器106與系統100的某些其它硬
體組件為關閉時(例如,沒有電力提供給該處理器和該等某些其他硬體組件)。在低電力狀態下,電力仍然可提供予嵌入式控制器102。該計算系統100可以在以下任一情況下轉換到低電力狀態:(1)作為該計算系統100之一個冷重啟的一部分,其造成該系統100被斷電,隨後接通電源,或(2)作為電力節省程序的一部分,其中,該計算系統100可以從一個正常的操作狀態轉換到一睡眠狀態、一休眠狀態,或者在一段時間不活動後、或響應於檢測到電池不足條件的一關閉狀態,或響應於使用者或應用程序命令,或者由於別的原因,或(3)在任何其他情形。
低電力狀態的範例可包括某些先進組態與電力介面(ACPI)狀態,包括:ACPI S3狀態(此是一個待機或睡眠狀態的形式,其中該計算系統100的系統上下文保存在保持供電的依電性存儲器中,同時計算系統100的某些組件被斷電);在ACPI S4狀態(此是休眠狀態的形式,其中該系統的上下文被保存於持續儲存器,以允許電力自附加計算系統的組件,包括依電性存儲器中移除);與ACPI S5狀態(它是系統的一種關閉狀態之形式,其中電力已經從計算系統100的更多組件移除)。
在進一步的範例中,該EC韌體可響應於該計算系統100的一暖重啟以進行該系統韌體的驗證,其中一計算系統100係重新啟動而沒有將予該計算系統100的電力移除。如以下進一步討論者,允許EC韌體響應於該暖重啟以進行該驗證,當偵測到該暖重啟時,該計算系統100可被強制轉
換至一恰當的低電力狀態(諸如以上所列之低電力狀態的特定者)。
在其他實施中,即使當該計算系統並未在一低電力狀態,該EC韌體可在任何時間進行驗證。舉例而言,當該處理器為閒置或者並未存取該共享非依電性記憶體104時,該EC韌體可進行該驗證。當該系統韌體被提取以用於由該處理器之執行時,藉由該EC韌體之驗證亦可「即時」進行。
如圖2中所描述,當系統的部分啟動,該嵌入式控制器102係受允許以進行其操作。圖2中所描述的程序可被認為是該計算系統100的啟動程序的階段1。一般來說階段1涉及了擷取EC韌體進入該嵌入式控制器102、驗證該EC韌體,以及在驗證後執行該EC韌體。該嵌入式控制器102的操作可在該計算系統100係在一低電力狀態時進行。
該嵌入式控制器102首先(於202)提取該私用非依電性記憶體116的該EC韌體130。該驗證邏輯組件112接著(於204)進行該EC韌體130的驗證。該EC韌體的驗證可基於使用基於一加密驗證技術。例如,該驗證可為一Rivest、Shamar及Adleman(RSA)驗證技術,其使用密碼加密。該RSA驗證技術涉及一公鑰與一私鑰的使用。該公鑰對於多個實體為已知,但私鑰僅有單一實體知悉。以一私鑰加密的資料可使用對應公鑰解密。可替代地,資料可使用私鑰加密但使用公鑰解密。
若驗證邏輯組件112(於206)判定來自該私用非
依電性記憶體116的該EC韌體130已經成功地驗證,接著該EC韌體130係(於208)由該嵌入式控制器102執行以進行嵌入式控制器初始化工作。
然而,若該驗證邏輯組件112(於206)判定該EC韌體130未被成功地驗證(諸如由於該EC韌體130有危害或者其他原因),那麼嵌入式控制器102(於210)提取來自該共享非依電性記憶體104的該EC韌體108。該驗證邏輯組件112接著(於212)進行該EC韌體108的驗證(使用一RSA驗證技術或其他驗證技術)。若該EC韌體108成功地驗證(於214處之判定)那麼該EC韌體108(於216)由該嵌入式控制器102執行。然而,若該EC韌體108未由該驗證邏輯組件112驗證,那麼指示一錯誤(於218)。
在階段1成功地完成後(階段1已經進行至工作208或216),可進行下個階段(階段2)。階段2(更詳細地連同圖5描述)大致涉及該EC韌體(130或108)進行在該私用非依電性記憶體116內該啟動方塊132以及在該共享非依電性記憶體104內的啟動方塊110的驗證。階段2可於該計算系統100唯一低電力狀態時進行。若該等啟動方塊132與110由該EC韌體驗證,接著階段2可成功地完成,且該系統係準備好使用該啟動方塊(132或110)啟動。另一方面,若該EC韌體判定在該私用非依電性記憶體116內該啟動方塊132或在該共享非依電性記憶體104內的啟動方塊110任一者受到危害,那麼該EC韌體使用指明之一或多個策略以解決啟動方塊132或啟動方塊110任一者的受危害。若啟動方塊132與啟動
方塊110兩者受到危害,那麼產生一系統錯誤,且該計算系統100不允許被啟動。
圖3為根據一些實施之一驗證程序的一流程圖。該驗證程序可由該嵌入式控制器102進行。於該嵌入式控制器102的初始化期間,該驗證程序(於302)驗證由一非依電性記憶體(例如,圖1中之116或104)提取之該EC韌體,諸如使用一RSA驗證技術或其他驗證技術。該驗證(於302)係在由該處理器106執行任何碼之前進行。
在該EC韌體驗正之後,該EC韌體可載入該嵌入式控制器102以用於執行。響應於驗證該EC韌體,該驗證程序更可(於304)驗證在該非依電性記憶體(例如116或104)內的系統啟動碼。受驗證的該系統啟動碼可包括該啟動方塊132及/或啟動方塊110。更一般地,該系統啟動碼可指用以啟動該計算系統100的任何系統啟動碼或用以將該計算系統100字一低電力狀態恢復者。該驗證(於304)可由該EC韌體在該嵌入式控制器102內進行。
若該系統啟動碼(例如,啟動方塊132及/或啟動方塊110)係受驗證,那麼該計算系統100係準備好啟動。若該等啟動方塊132及110的一者無法被驗證,那麼該EC韌體可使用該等啟動方塊132及110的一者去修理好該等啟動方塊132及110的另一者。該啟動方塊110可接著自該共享非依電性記憶體104提取且載入至該處理器106以供執行。
根據一些實施的該驗證程序因此在該啟動方塊110由該處理器106執行前,可驗證該啟動方塊110係未受危
害(且若受到危害,該啟動方塊110可被修復)。以此方式,可以提供保護免於由於惡意軟體對該系統韌體的內容有危害之可能。此外,保護可提供以免於部分取代攻擊,其涉及了以含有受危害之系統韌體之包含一非依電性記憶體的另一組件取代該共享非依電性記憶體104(或116)。
該系統啟動碼的該驗證可在該計算系統100每次轉換至一低電力狀態時進行。此可確保在從該低電力狀態轉換至一較高電力狀態的期間,系統啟動碼在該系統啟動碼由該處理器106執行前未受危害。更一般地,該系統啟動碼的驗證可在該處理器106的每一實例重新開始該系統啟動碼的執行之前進行。
圖4是根據進一步實施之計算系統100的方塊圖。圖4的該計算系統100包括一個輸入/輸出(I/O)控制器402,其被連接在處理器106和共用匯流排120之間。在一些範例中,I/O控制器402可以是來自英特爾公司的一個平台控制器集線器(PCH)。PCH可包括各種功能,包括:至一圖形子系統的一顯示介面、一系統匯流排介面至各種I/O設備可以連接到的系統匯流排,等等。在其他範例中,可以使用其他類型的I/O控制器。
如圖4所示,嵌入式控制器102耦合至一使用者輸入設備404(例如滑鼠裝置或其他類型的輸入裝置)、一鍵盤406、一風扇408、一電池410和一電源413供應器,以管理各別裝置(例如在EC韌體的控制之下)。
在圖4的範例中,該嵌入式控制器102還包括加密
硬體412,其可進行加密計算,諸如在EC韌體及啟動方塊的驗證所使用的那些。加密硬體412可以是電路的形式,其被配置來進行加密計算。
嵌入式控制器102還包括一個僅讀記憶體(ROM)414,它可以被用來儲存一啟動載入器416以及一加密金鑰418的加密密鑰418可以是用於執行驗證EC韌體(130或108)的金鑰(公鑰或私鑰)。在系統啟動期間,啟動載入器416從ROM 414載入以在嵌入式控制器102中執行,而提取來自私用或共享非依電性記憶體116、104中的EC韌體進入該嵌入式控制器102的一隨機存取記憶體419。,啟動載入器416可以採取措施,以確保除了嵌入式控制器102之外,沒有其他實體在EC韌體載入操作期間存取共享匯流排120。
為了提取用於載入嵌入式控制器102的EC韌體,啟動載入器416可以找到對EC韌體影像的一個指示(或其他參考),其可以儲存在私用或共享非依電性記憶體116或104。
該提取EC韌體係由圖1的驗證邏輯組件112所驗證,其可包括在該啟動載入器416內之功能,該啟動載入器416可調用該加密硬體412以輔助進行加密計算。
在共享非依電性記憶體104中,一簽章422係相關聯於EC韌體108,且一簽章424係相關聯於啟動方塊110。類似地,在該私用非依電性記憶體116中,一簽章440係相關聯於EC韌體130,以及一簽章442係相關聯於啟動方塊132。簽章440或422是在各別的EC韌體108或130之驗證中使用,
而簽章442或424是用在個別的啟動方塊110或132的驗證。在驗證過程中簽章的使用可允許判定各別的EC韌體或啟動方塊的真實性的一判定,以及各別的EC韌體或啟動方塊沒有被破壞的一判定。
在一些實施中,韌體108或130的驗證可以藉由使用儲存在嵌入式控制器ROM 414中的加密金鑰418進行解密各個簽章422或440來完成。解密簽章產生一個個別的值(例如,雜湊值),其可以與EC韌體之一相對應計算出的值(例如,雜湊值)比較。如果上述值匹配,則EC韌體係受驗證。一個類似的過程可用於使用個別數位簽章424或442以驗證BIOS啟動方塊110或132。在一替代性範例中,可使用任何加密技術以進行該驗證。
該私用非依電性記憶體116亦可儲存獨特機器資料430以及策略資訊434。舉例而言,該策略資訊434可包括關於一或一些以下策略的組合之資訊:
●指明是否操作的一積極模式係受使用之一策略,在此,在每一個情況下積極模式能夠驗證系統韌體,在此主機處理器將啟動方塊(在每個冷啟動、暖啟動、從低電力恢復狀態等等)
●指明是否手動或自動恢復模式將受使用之一策略,在此一手動恢復模式涉及在受危害之啟動方塊被允許進行恢復之前的一使用者操作;以及
●指明是否一鎖定或解鎖模式係受使用之一策略,其中鎖定模式導致系統韌體被鎖定到一個特定的版
本,諸如在私用非依電性記憶體116中的版本。
該獨特機器資料430可指對於每一特定計算系統為獨特的任何資料或設定。獨特機器資料的範例可包括以下任何一者或一些的組合:資料名稱、資料行號、庫存單位(SKU)號(用於識別用於販售之該等個別計算系統),該計算系統的一序號、一系統或商品追蹤號碼(用於識別該計算系統的一系統板)、一系統組態識別符(用於識別該計算系統的一組態)、一保固資料(用於描述與該計算系統相關連的一保固)、一通用唯一識別符(UUID)、BIOS碼的一預設值以及等等。前述者係被提供以做為獨特機器資料的範例;在其它實施例中,可以提供其他或附加類型的獨特機器資料。
該共享非依電性記憶體104亦儲存獨特機器資料436,其係與獨特機器資料430為相同或者類似者。
圖5是階段2程序的一流程圖,其係在於圖2中所描述的階段1成功地完成之後進行。圖5的階段2程序可在於階段1程序中(於圖2中工作208或216中)執行之EC韌體的控制之下,由該嵌入式控制器102進行。
如圖5所示,該嵌入式控制器102判定(在502處)是否在該私用非依電性記憶體116中的該啟動方塊130(圖5中表示為EC_BB)係被驗證(基於使用圖4的簽章442進行之驗證)。如果沒有,那麼一個EC_BB_Valid標誌(在504處)係被清除至清除狀態,以指示在私用非依電性記憶體116中的該啟動方塊130沒有被驗證。
然而,如果在502處該判定指示該啟動方塊132
已經被驗證,則EC_BB_Valid標誌係被設置為(在506處)一設定狀態,以指示在該私用非依電性記憶體116中的該啟動方塊132已經被驗證。
接下來,EC韌體判定(在508處)是否在該共享非依電性記憶體104中的該塊啟動方塊110(在圖5中表示為SYS_BB)已被驗證(基於使用圖4的簽章424進行之驗證)。如果沒有,EC韌體下一步檢查(在510處)EC_BB_Valid標誌是否被設定(在510處)。如果沒有,此為一個指示,在該私用與共享非依電性記憶體116、104內此兩個啟動方塊132與110不能被驗證,並指示一個錯誤(在511處)。在此時,因為系統由於受危害之啟動方塊不能被允許啟動,圖5的階段2之進行停止。
如果判定(在510處),該EC_BB_Valid標誌係被設定,那麼此為一個指示,在該私用非依電性記憶體116中的該啟動方塊132已經被驗證,及使在該共享非依電性記憶體104內的該啟動方塊110不能被驗證。在這種情況下,EC韌體判定(在512)是否恢復策略(作為策略資訊434的一部分儲存在圖4的私用非依電性記憶體116中)指明一手動模式或一自動模式。如果自動模式被指示,則在該私用非依電性記憶體116內有效的啟動方塊132被複製(在514處),以取代在共享非依電性記憶體104中無效的啟動方塊110。
然而,如果恢復策略指明了手動模式時,則指示可以輸出(在516),以提示用於使用者輸入,諸如一金鑰序列或其他輸入。在收到使用者輸入將引起工作514待被進行,
在此在共享非依電性記憶體104中的啟動方塊110係以在私用非依電性記憶體116中的有效啟動方塊132之一副本取代。
接下來,EC韌體設定(在518處)的各種狀態資訊以回報所採取的動作,載此的狀態資訊可以在計算系統下次啟動時使用的動作。
EC韌體接著判定(在520)是否在私用非依電性記憶體116中的該啟動方塊132已被更新。如果沒有,那麼計算系統已準備好啟動(522)。但是,如果在私用非依電性記憶體116中的啟動方塊132已經更新,則EC韌體執行(在524)進行一動作,以使計算系統檢查該嵌入式控制器102係運行正確版本的EC韌體,此可以藉由重新設定嵌入式控制器102完成,此將導致圖2之階段1過程將受進行,若該階段1程序成功地驗證,其將接著再次繼續到圖5之階段2過程。
在圖5的工作508中,若EC韌體能夠驗證在共享非依電性記憶體110內的啟動方塊104,則EC韌體檢查(在526)是否該EC_BB_Valid標誌係被設定。如果不是,此為一個指示,在該共享非依電性記憶體110中的啟動方塊110是有效的,但在私用非依電性記憶體116中的啟動方塊132是無效的。在這種情況下,EC韌體判定(在528)鎖定策略(如圖4中的策略資訊434所指示)是否指明一鎖定模式或非鎖定模式。如果指明非鎖定模式,這意味著在私用非依電性記憶體116中的該啟動方塊132可以被更新,在這種情況下,EC韌體副本(在530)複製在共享非依電性記憶體104的啟動
方塊110,至私用非依電性記憶體116以取代該啟動方塊132。
另一方面,如果判定(在528),該鎖策略指明鎖定模式,則此指示該EC韌體不允許更新在私用非依電性記憶體116中的啟動方塊132。在這種情況下,EC韌體可以設置一個標誌(在532),以指示鎖定策略中的改變,此涉及到鎖定策略被改變以指明解鎖模式。將鎖訂策略從鎖定狀態改變到非鎖定模式,允許在私用非依電性記憶體116中的啟動塊啟動方塊132待由在共享非依電性記憶體104中的啟動方塊110取代(於532進行)。此外,資訊可以被添加到稽核日誌(未示出)來指示先前事件(鎖定策略被改變)。
該過程接下來進行到工作518。
在工作526,如果判定該EC_BB_Valid標誌被設定,此指示啟動方塊132和啟動方塊110兩者已經被驗證。在這種情況下,EC韌體判定(在534)是否基於啟動方塊132的內容係相等於基於啟動方塊110所導出的一值。如果是這樣,可以確認啟動方塊132、110兩者是相同的,且因此,該系統已準備好啟動(522)。另一方面,如果基於啟動方塊132、110的內容導出的值是不相等的,(此指示啟動塊啟動方塊132和110是不同的版本),則EC韌體判定(在536)該BIOS鎖定策略是否指明了鎖定模式或非鎖定模式。如果指明非鎖定模式,則EC韌體可以複製(在538)在共享非依電性記憶體104中的啟動方塊110至私用非依電性記憶體116,以取代啟動方塊132。然後,該過程進行到工作518。
如果在536指明鎖定模式,那麼這是一個指示在共享非依電性記憶體104中的啟動方塊110待被鎖定到儲存在私用非依電性記憶體116中之啟動方塊132的版本,在某些情況下,在共享非依電性記憶體104中的啟動方塊110可為已更新到更新的版本。然而,如果鎖策略指明了鎖定模式時,在共享非依電性記憶體104中的啟動方塊110的更新是不被允許的,在此案例中,在共享非依電性記憶體104中的啟動方塊110以在私用非依電性記憶體116內的啟動方塊132(藉由在542進行複製)取代。在複製(於542)啟動方塊132以取代啟動方塊110之前,EC韌體可以檢查(於540)的恢復策略是否指明了一自動模式或手動模式。如果指明了自動模式,則在542之複製可直接執行。然而,如果指明了手動模式,則EC韌體可以提供(在544)一輸出,以提示使用者輸入,在此之後可以進行在542的複製。
該程序接著進行至工作518。
圖6顯示一階段3程序,在於圖5中該階段2程序成功地完成之後(階段2程序已經進行至522)。階段3程序可由該嵌入式控制器102與該處理器106進行。
該嵌入式控制器102偵測(於602)在該計算系統中的一甦醒事件,在此該甦醒是件引起該計算系統字一低電力狀態主換至一較高電力狀態。該甦醒事件可由該計算系統的諸如一鍵盤或滑鼠一使用者輸入裝置啟動、一電力鈕的啟動以及等等而引起。
該嵌入式控制器102從重置釋放(於604)該處理
器106。該處理器106接著開始執行(於606)來自該共享非依電性記憶體104的該啟動方塊110(圖6中以SYS_BB表示)。在該啟動方塊110的控制之下,該處理器106(於608)自該嵌入式控制器102獲得狀態資訊。此狀態資訊為在圖5終於工作518內由嵌入式控制器所設定的狀態資訊。
在一些範例中,該啟動方塊110可(於610)設定該嵌入式控制器策略,其可為任何鎖定策略、恢復策略、或與以上所討論之EC韌體的效能相關連的其他策略。設定該嵌入式控制器策略可涉及發送一指令至嵌入式控制器102,以引起嵌入式控制器102更新在該私用非依電性記憶體116(圖4)內的策略資訊434。
在該啟動方塊通過對該BIOS碼的主要部分之控制之前,該啟動方塊110接著發送(於612)一指令至該嵌入式控制器102,以引起該嵌入式控制器102不再接受任何策略改變。該指令的效果為用以避免來自碼的策略改變,該碼可能遭受到危害且因此不被信任,諸如該BIOS碼的主要部分或操作系統。
該嵌入式控制器102接著(於614)判定是否一暖啟動已經發生。若沒有,該嵌入式控制器102(於616)等待該計算系統以轉換至一低電力狀態,諸如ACPIS3、S4或S5狀態。
在該計算系統已經轉換至一低電力狀態之後,該嵌入式控制器102接著(於618)判定是否該嵌入式控制器具有該共享匯流排120的專用存取。如果有,那麼該程序(於
622)進行至階段4程序(圖7)已引起該等啟動方塊132與110的驗證。自階段4程序成功的返回指示該計算系統已經準備好要啟動(624)且進行至一運行時間狀態(例如,ACPIS0狀態)。
若(於618)判定該嵌入式控制器102對於該共享匯流排120沒有具有專屬存取,即使該計算系統已經轉換至該低電力狀態,那麼該嵌入式控制器102可(於620)自該策略資訊(圖4中434)判定是否已經指明積極模式。
若指明積極模式,那麼該嵌入式控制器102可進行一動作以強迫(於621)該共享匯流排120的專屬存取。此動作可包括強迫該計算系統的核心邏輯組件(例如,包括圖4中I/O控制器402之晶片組)進入一狀態,此狀態允許該嵌入式控制器102獲得對該共享匯流排120的專屬存取。在一些範例中,此可能只會發生在S4或S5狀態中,且不會在S3狀態中,以避免S3上下文(在依電性記憶體中的資訊,其係使用來將該計算系統自S3狀態恢復)的遺失。若該計算系統係在S3狀態中或者沒有設定危機及模式策略,那麼階段4程序622將會省略(bypss),其省略了該等啟動方塊的驗證。
在圖6的工作614中,若該嵌入式控制器102偵測一暖啟動(計算系統的啟動,其中維持予組件的電力,組件包括該計算系統的該處理器106)那麼該嵌入式控制器102(於626)判定一積極模式是否由策略指明。若沒有,那麼該嵌入式控制器102繼續等待(於616)該計算系統進入一低電力狀態。
然而,若積極模式係受指明,那麼該嵌入式控制器102繼續至工作621。由於暖啟動造成該處理器106開始從啟動方塊的最一開始之執行,該嵌入式控制器102需要驗證在每一暖重啟的該啟動方塊真實性。
在一些實施中,即使該計算系統係在一低電力狀態(例如ACPIS3、S4或S5狀態),用以確保該嵌入式控制器102具有該共享匯流排120的專屬存取的該檢查(於618)係由於一實體(諸如圖4的I/O控制器402中的一實體)仍然維持啟用且已在低電力狀態存取該共享匯流排120的可能性而進行。
可維持啟用且於一低電力狀態存取該共享匯流排120的一範例實體,為一管理引擎(ME),其係來自英特爾公司之一晶片組的一部份。該ME提供功能以允許一計算系統的監控、維護、更新、升級以及修護。該ME可被規定已在一低電力狀態操作(例如S3、S4或S5狀態)。根據一些實施,除非該嵌入式控制器102接收來自該ME的一指示(例如,來自在一宣稱狀態的ME之一SLP_A#訊號),該ME係在電力可自該ME移除的一狀態,該嵌入式控制器102將驗證該等啟動方塊132與110。若該嵌入式控制器102未接收到該指示(例如,來自在該宣稱狀態的ME之一SLP_A#訊號),那麼該嵌入式控制器102假設該共享匯流排120係正受該ME使用且該嵌入式控制器102不會意圖存取該共享匯流排102。
當該計算系統係在S4或S5狀態中,若積極模式係受指明(如圖6中於620處所判定),該嵌入式控制器102可藉
由宣稱一重置訊號(例如,至該I/O控制器402的RSMRST#),強迫(於621)該共享匯流排120的專屬存取以強迫該ME進入一關閉狀態。當該系統係在S3狀態中時,由於會導致S3的上下文之遺失,此強迫該共享匯流排120的專屬存取技術不受使用。
在一些案例中,當該系統係在一低電力狀態中(例如用以進行圖2的階段1之程序),同時嵌入式控制器102係存取該共享匯流排120,對於ME自一關閉狀態恢復是可能的。為了避免於該嵌入式控制器102係存取該共享匯流排120時ME的此等恢復,可提供邏輯組件以避免該ME由阻擋一電力佳指示(例如,M_PWRGD)而恢復,由宣稱一訊號BATLOW#至該I/O控制器402而恢復。該電力佳指示為平台主電池(例如,圖4中的410)可能不能供應用於操作的足夠電力的一指示。該嵌入式控制器102可控制此邏輯組件以阻擋該電力佳指示,同時該嵌入式控制器102係存取該共享匯流排120。一旦該嵌入式控制器102已經完成其操作,此操作涉及共享匯流排120之存取,該嵌入式控制器120可停止阻擋對ME的該電力佳指示及/或阻擋BATLOW#訊號的宣稱。
圖7為根據一些實施之階段4程序的一流程圖。注意階段4程序(於圖6中622處初始化)假設該EC_BB_Valid旗標係受設定(其代表在該私用非依電性記憶體116中的該啟動方塊132已經被驗證且因此為有效的)。階段4程序繼續到工作508,其與以上所討論之圖5中的工作508相同。描述於
圖7中剩餘的工作係與圖5中的個別工作完全相同,且因此將不會進一步說明。注意圖7中,由於假設該EC_BB_Valid旗標係受設定,工作502、504、506、510與511係受省略。
藉由使用根據一些實施之技術或機構,系統韌體的完整性係受檢驗以保護系統韌體免於受到由於惡意軟體攻擊之危害,惡意軟體攻擊可破壞一計算系統的保護機制。此外,給予保護對抗一攻擊,此攻擊涉及一部件的實體取代,一部件包括含有該系統韌體的一非依電性記憶體。對抗系統韌體之受危害的該保護不具需要仰賴在核心邏輯組件的保護機制或來自第三方供應商的IO控制器,此可能隨供應商改變而可能會受到危害。系統韌體可以在發生系統韌體受到危害時的恢復,而不必涉及服務人員。不管危害的來源、危害的時間、如何進行危害以及什麼類型危害係被進行,可以給予被危害系統韌體的檢測與恢復。
上述各種模組的機器可讀取指令係被載入以在一處理器電路(例如,嵌入式控制器102或處理器106)上執行。一處理電路可以包括微處理器、微控制器、處理器模組或子系統、可程式化積體電路、可程式化閘陣列,或另一控制或計算裝置。
資料和指令被儲存在個別的儲存裝置中,其係實現為一個或多個電腦可讀或機器可讀存儲媒體。該儲存媒體包括不同形式的記憶體,包括半導體記憶體裝置,諸如動態或靜態隨機存取記憶體(DRAM或SRAM)、可抹除和可程式化僅讀記憶體(EPROM)、電氣可抹除和可程式化僅
讀記憶體(EEPROM)和快閃記憶體;磁碟,諸如固定碟、軟碟和可移動碟;其他磁性媒體,包括磁帶;光學介質,諸如光碟(CD)或數位視頻光碟(DVD);或其它類型的儲存裝置。注意,以上所討論的指令可以被提供於一個電腦可讀或機器可讀取儲存媒體上,或者替代地,可以設置在分佈於可能具有多個節點的大型系統中的多個電腦可讀取或機器可讀取儲存媒體。此等電腦可讀取或機器可讀取儲存媒體或媒體被認為是一種物品(或製品)的一部分。一種製品或物品可以指任何製造的單一個組件或多個組件。儲存媒體或媒體可以位於運行機器可讀取指令的機器,或者位於一遠端站,機器可讀取指令可以透過過網絡自該遠端站下載而用以執行。
在上述描述中,許多細節進行了闡述,以提供在此所揭露之主題的理解。然而,實施方式可以在沒有一些或全部此等細節的情況下實行。其他實施方式可以包括以上討論的細節之修改和變化。附加的申請專利範圍是用於涵蓋此等修改和變型。
202、204、206、208、210、212、214、216、218‧‧‧工作
Claims (15)
- 一種方法,包含以下步驟:於在一系統中的一控制器之一初始化程序期間,藉由與該系統的一處理器分開的該控制器驗證供在該控制器上執行的控制器碼,其中該驗證係在該處理器之執行之前進行;且在驗證該控制器碼之後,由該控制器驗證系統啟動碼,其中該系統啟動碼係供該處理器執行。
- 如請求項1之方法,更包含以下步驟:當該控制器碼受該控制器執行,在每次該處理器重新開始該系統啟動碼之執行之前,驗證該系統啟動碼。
- 如請求項1之方法,其中當該控制器碼受該控制器執行,使得該控制器進行選自以下動作的至少一者:於該系統中的電力供應控制、於該系統中的熱監控、於該系統中的風扇控制、於該系統中的電池充電及控制、以及與一使用者輸入裝置的互動。
- 如請求項1之方法,其中該系統啟動碼包括可在該處理器上執行的用於測量之信任根核(CRTM)邏輯,以在該系統中做出由該系統使用以判定該系統的可信任度之測量。
- 如請求項1之方法,其中驗證該控制器碼包含驗證嵌入式控制器韌體,其為儲存在該記憶體中之基本輸入/輸 出系統(BIOS)碼的一部份。
- 如請求項1之方法,其中該控制器碼係自一私用記憶體提取以進行該控制器碼的該驗證,且其中該私用記憶體可由該控制器存取而不可由該處理器存取,該方法更進一步包含以下步驟:響應於檢測在該私用記憶體中的控制器碼受危害,由該控制器自亦可由該處理器存取之一共享記憶體提取控制器碼,並驗證自該共享記憶體提取的該控制器碼;以及響應於驗證自該共享記憶體提取的該控制器碼,在該控制器中執行自該共享記憶體提取之該控制器碼,以在該私用記憶體及該共享記憶體之一者或兩者中進行該系統啟動碼的該驗證。
- 如請求項6之方法,更進一步包含:響應於判定在該私用記憶體中該系統啟動碼或者在該共享記憶體中的該系統啟動碼的任一者受到危害,以來自該私用記憶體或該共享記憶體的一未受危害之系統啟動碼來更新在該私用記憶體或該共享記憶體中該受危害之系統啟動碼。
- 如請求項6之方法,更進一步包含:由該控制器判定在該共享記憶體中的該系統啟動碼是否與在該私用記憶體中的該系統啟動碼為一不同版本; 響應於判定在該共享記憶體中的該系統啟動碼與在該私用記憶體中的該系統啟動碼為一不同版本,判定一鎖定策略是否被設定為指明系統啟動碼係欲鎖定到在該私用記憶體中之該系統啟動碼之版本;以及響應於判定該鎖定策略係受設定,將在該共享記憶體中之該系統啟動碼更新為在該私用記憶體中的該系統啟動碼。
- 如請求項1之方法,其中該控制器具有儲存有一加密金鑰之唯讀記憶體,且其中該控制器碼的該驗證使用該加密金鑰。
- 一種系統包含:一處理器;儲存控制器韌體以及基本輸入/輸出系統(BIOS)碼之啟動方塊的一第一記憶體;儲存控制器韌體以及BIOS碼之啟動方塊的一第二記憶體;以及一嵌入式控制器用以進行下列動作:在該嵌入式控制器的初始化期間,同時該處理器為關閉時,驗證儲存在該第一記憶體中的該控制器韌體,其中該控制器韌體係供在該控制器中執行,且其中該第一記憶體可由該嵌入式控制器存取但不可由該處理器存取;以及響應於檢測在該第一記憶體中的該控制器韌體 之受危害,提取儲存在該第二記憶體中的該控制器韌體。
- 如請求項10之系統,其中該嵌入式控制器係用以執行該第一記憶體或第二記憶體之該控制器韌體,以驗證在該第一記憶體及該第二記憶體中之該等啟動方塊。
- 如請求項11之系統,其中該嵌入式控制器係用來以該等啟動方塊之一未受危害者取代該等啟動方塊之一受危害者。
- 如請求項11之系統,其中該等啟動方塊之該驗證係響應於該系統轉換至一狀態而進行,轉換至該狀態後該處理器將接著自該第二記憶體中的該啟動方塊重新開始執行。
- 如請求項10之系統,其中該第一記憶體儲存指示以下策略的至少一者或其之組合的策略資訊:一策略指明在每次該處理器重新開始執行來自該第二記憶體中的該啟動方塊之前,一攻擊模式的操作是否要被使用以致能在該第二記憶體中之該啟動方塊的驗證;一策略指明一手動或自動恢復模式是否要被使用,其中手動模式涉及在一受危害之啟動方塊之恢復被允許進行之前的一使用者動作;以及一策略指明一鎖定或非鎖定模式是否要被使用,其中鎖定模式導致系統韌體被鎖定至一特定版本。
- 一種包含儲存有指令之至少一機器可讀取儲存媒體的物件,於該等指令執行時將導致一系統進行以下動作:在該系統的一處理器開始執行一啟動方塊之前,驗證儲存在一第一記憶體中的一控制器碼,其中該控制器碼係用於在一嵌入式控制器中執行,且其中該第一記憶體係可由該嵌入式控制器存取但不可由該系統的該處理器存取;以及響應於檢測在該第一記憶體中的該控制器碼之受危害,提取儲存在可由該嵌入式控制器以及該處理器兩者存取之一第二記憶體內的控制器碼;以及執行該第一記憶體或該第二記憶體的該控制器碼,以進行在該第一及第二記憶體的一者或兩者中之該啟動方塊的驗證。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/037735 WO2014175867A1 (en) | 2013-04-23 | 2013-04-23 | Verifying controller code and system boot code |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201443686A TW201443686A (zh) | 2014-11-16 |
TWI539324B true TWI539324B (zh) | 2016-06-21 |
Family
ID=51792256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103108372A TWI539324B (zh) | 2013-04-23 | 2014-03-11 | 驗證控制器碼及系統啓動碼之技術 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10733288B2 (zh) |
CN (1) | CN105144185B (zh) |
TW (1) | TWI539324B (zh) |
WO (1) | WO2014175867A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014175867A1 (en) * | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Verifying controller code and system boot code |
WO2015016867A1 (en) | 2013-07-31 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Updating boot code |
WO2017012126A1 (en) * | 2015-07-23 | 2017-01-26 | Qualcomm Technologies International, Ltd. | Fast authentication of code in a low-power system |
WO2017058225A1 (en) * | 2015-09-30 | 2017-04-06 | Hewlett-Packard Development Company, L.P. | Runtime verification using external device |
WO2017123225A1 (en) * | 2016-01-14 | 2017-07-20 | Hewlett-Packard Development Company, L.P. | Management with respect to a basic input/output system policy |
EP3314517A4 (en) * | 2016-01-27 | 2019-02-27 | Hewlett-Packard Development Company, L.P. | FUNCTIONAL VERIFICATION |
US11004567B2 (en) | 2017-08-15 | 2021-05-11 | Koko Home, Inc. | System and method for processing wireless backscattered signal using artificial intelligence processing for activities of daily life |
US10839080B2 (en) * | 2017-09-01 | 2020-11-17 | Microsoft Technology Licensing, Llc | Hardware-enforced firmware security |
CN109714303B (zh) | 2017-10-25 | 2022-05-27 | 阿里巴巴集团控股有限公司 | Bios启动方法及数据处理方法 |
CN109710315B (zh) | 2017-10-25 | 2022-05-10 | 阿里巴巴集团控股有限公司 | Bios刷写方法及bios镜像文件的处理方法 |
JP6584487B2 (ja) * | 2017-12-20 | 2019-10-02 | キヤノン株式会社 | 情報処理装置、その制御方法およびプログラム |
JP7134670B2 (ja) * | 2018-03-29 | 2022-09-12 | キヤノン株式会社 | 画像形成装置、及び、画像形成装置の制御方法 |
CN109445874A (zh) * | 2018-11-15 | 2019-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种基于嵌入式Linux系统的带安全认证的多启动系统及方法 |
WO2020159533A1 (en) * | 2019-02-01 | 2020-08-06 | Hewlett-Packard Development Company, L.P. | Security credential derivation |
US11997455B2 (en) | 2019-02-11 | 2024-05-28 | Koko Home, Inc. | System and method for processing multi-directional signals and feedback to a user to improve sleep |
WO2020167283A1 (en) | 2019-02-11 | 2020-08-20 | Hewlett-Packard Development Company, L.P. | Recovery from corruption |
US11971503B2 (en) | 2019-02-19 | 2024-04-30 | Koko Home, Inc. | System and method for determining user activities using multiple sources |
US10810850B2 (en) | 2019-02-19 | 2020-10-20 | Koko Home, Inc. | System and method for state identity of a user and initiating feedback using multiple sources |
US11016755B2 (en) * | 2019-07-31 | 2021-05-25 | Dell Products L.P. | System and method to secure embedded controller flashing process |
CN110795738B (zh) | 2019-09-19 | 2022-05-13 | 超聚变数字技术有限公司 | 一种计算机的启动方法和控制器、存储介质以及系统 |
US11719804B2 (en) | 2019-09-30 | 2023-08-08 | Koko Home, Inc. | System and method for determining user activities using artificial intelligence processing |
CN110737902B (zh) * | 2019-10-10 | 2022-02-11 | 北京智芯微电子科技有限公司 | 嵌入式终端及其可信安全模块的固件设计方法 |
TWI736074B (zh) * | 2019-12-20 | 2021-08-11 | 瑞昱半導體股份有限公司 | 周邊裝置及其驗證更新方法 |
US11314867B2 (en) | 2020-03-26 | 2022-04-26 | Hewlett Packard Enterprise Development Lp | Determinations of compromise of controller code images |
US11240635B1 (en) * | 2020-04-03 | 2022-02-01 | Koko Home, Inc. | System and method for processing using multi-core processors, signals, and AI processors from multiple sources to create a spatial map of selected region |
US11184738B1 (en) | 2020-04-10 | 2021-11-23 | Koko Home, Inc. | System and method for processing using multi core processors, signals, and AI processors from multiple sources to create a spatial heat map of selected region |
FR3110005B1 (fr) * | 2020-05-05 | 2022-05-27 | Thales Sa | Contrôleur de démarrage sécurisé pour un système embarqué, système embarqué et procédé de démarrage sécurisé associés |
TWI749704B (zh) * | 2020-08-13 | 2021-12-11 | 群聯電子股份有限公司 | 韌體碼的執行方法、記憶體儲存裝置及記憶體控制電路單元 |
US11797680B2 (en) * | 2020-08-28 | 2023-10-24 | Micron Technology, Inc. | Device with chain of trust |
KR102395258B1 (ko) * | 2020-10-15 | 2022-05-10 | 한국전자통신연구원 | 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치 |
TWI789142B (zh) * | 2021-12-03 | 2023-01-01 | 新唐科技股份有限公司 | 控制器、計算機裝置、bios復原備份方法 |
Family Cites Families (188)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2772103B2 (ja) | 1990-03-28 | 1998-07-02 | 株式会社東芝 | 計算機システム立上げ方式 |
US5432927A (en) | 1992-06-17 | 1995-07-11 | Eaton Corporation | Fail-safe EEPROM based rewritable boot system |
US5327531A (en) | 1992-09-21 | 1994-07-05 | International Business Machines Corp. | Data processing system including corrupt flash ROM recovery |
US5469573A (en) | 1993-02-26 | 1995-11-21 | Sytron Corporation | Disk operating system backup and recovery system |
US5745669A (en) | 1993-10-21 | 1998-04-28 | Ast Research, Inc. | System and method for recovering PC configurations |
US5713024A (en) | 1994-06-10 | 1998-01-27 | Exabyte Corporation | Cold boot data backup system |
US5564054A (en) | 1994-08-25 | 1996-10-08 | International Business Machines Corporation | Fail-safe computer boot apparatus and method |
JP3088269B2 (ja) | 1995-07-26 | 2000-09-18 | 日本電気通信システム株式会社 | コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法 |
US5822581A (en) | 1995-09-29 | 1998-10-13 | Intel Corporation | Method for CMOS configuration information storage and retrieval in flash |
US5918047A (en) | 1996-01-26 | 1999-06-29 | Texas Instruments Incorporated | Initializing a processing system |
US5778070A (en) | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
JP2940480B2 (ja) | 1996-07-05 | 1999-08-25 | 日本電気株式会社 | コンピュータシステム |
US5819087A (en) | 1996-07-19 | 1998-10-06 | Compaq Computer Corporation | Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events |
US6205527B1 (en) | 1998-02-24 | 2001-03-20 | Adaptec, Inc. | Intelligent backup and restoring system and method for implementing the same |
US5987605A (en) | 1998-02-28 | 1999-11-16 | Hewlett-Packard Co. | Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device |
US6275930B1 (en) | 1998-08-12 | 2001-08-14 | Symantec Corporation | Method, computer, and article of manufacturing for fault tolerant booting |
US6539473B1 (en) | 1999-09-02 | 2003-03-25 | International Business Machines Corporation | Remotely controlled boot manager |
JP3838840B2 (ja) | 2000-01-06 | 2006-10-25 | Necエレクトロニクス株式会社 | コンピュータ |
US7676640B2 (en) | 2000-01-06 | 2010-03-09 | Super Talent Electronics, Inc. | Flash memory controller controlling various flash memory cells |
US20060075395A1 (en) | 2004-10-01 | 2006-04-06 | Lee Charles C | Flash card system |
US8296467B2 (en) | 2000-01-06 | 2012-10-23 | Super Talent Electronics Inc. | Single-chip flash device with boot code transfer capability |
JP2001209543A (ja) | 2000-01-28 | 2001-08-03 | Nec Ic Microcomput Syst Ltd | フラッシュ・マイコンにおけるプログラム書き換え方法 |
US6711675B1 (en) | 2000-02-11 | 2004-03-23 | Intel Corporation | Protected boot flow |
US6665813B1 (en) | 2000-08-03 | 2003-12-16 | International Business Machines Corporation | Method and apparatus for updateable flash memory design and recovery with minimal redundancy |
US6907602B2 (en) | 2000-08-10 | 2005-06-14 | Mustek Systems Inc. | Method for updating firmware of computer device |
GB2367656A (en) | 2000-10-06 | 2002-04-10 | Hewlett Packard Co | Self-repairing operating system for computer entities |
TW480444B (en) | 2000-11-29 | 2002-03-21 | Mitac Technology Corp | Computer system boot-up method capable of completing the startup procedure even the system BIOS code is damaged |
US6807630B2 (en) | 2000-12-15 | 2004-10-19 | International Business Machines Corporation | Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory |
US6976136B2 (en) | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US6651188B2 (en) | 2001-06-29 | 2003-11-18 | Intel Corporation | Automatic replacement of corrupted BIOS image |
US20030079007A1 (en) | 2001-10-22 | 2003-04-24 | Merkin Cynthia M. | Redundant source event log |
US7069445B2 (en) | 2001-11-30 | 2006-06-27 | Lenovo (Singapore) Pte. Ltd | System and method for migration of a version of a bootable program |
TWI251771B (en) | 2001-12-28 | 2006-03-21 | Asustek Comp Inc | Module and method for automatic restoring BIOS device, and the computer-readable recording media of storing the program codes thereof |
JP3863447B2 (ja) * | 2002-03-08 | 2006-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 認証システム、ファームウェア装置、電気機器、及び認証方法 |
EP1345124A1 (en) | 2002-03-14 | 2003-09-17 | Hewlett-Packard Company | Managing boot errors |
EP1372068A3 (en) | 2002-06-11 | 2006-02-08 | Seiko Epson Corporation | System, method and program for rewriting a flash memory |
EP1429224A1 (en) * | 2002-12-10 | 2004-06-16 | Texas Instruments Incorporated | Firmware run-time authentication |
US7143275B2 (en) | 2002-08-01 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | System firmware back-up using a BIOS-accessible pre-boot partition |
US20040030877A1 (en) * | 2002-08-06 | 2004-02-12 | Aleksandr Frid | Using system BIOS to update embedded controller firmware |
US7200758B2 (en) * | 2002-10-09 | 2007-04-03 | Intel Corporation | Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem |
US20040076043A1 (en) | 2002-10-21 | 2004-04-22 | Phoenix Technologies Ltd. | Reliable and secure updating and recovery of firmware from a mass storage device |
KR100532413B1 (ko) | 2002-12-02 | 2005-12-02 | 삼성전자주식회사 | 플래시 메모리 보호 장치 및 방법 |
US6915420B2 (en) | 2003-01-06 | 2005-07-05 | John Alan Hensley | Method for creating and protecting a back-up operating system within existing storage that is not hidden during operation |
US20040193862A1 (en) | 2003-03-31 | 2004-09-30 | Johnson Lin | Device with high storage capacity and several BIOS backup copies |
US7136994B2 (en) | 2003-05-13 | 2006-11-14 | Intel Corporation | Recovery images in an operational firmware environment |
WO2004107168A1 (en) | 2003-06-03 | 2004-12-09 | Koninklijke Philips Electronics N.V. | Booting from non-volatile memory |
US7467417B2 (en) | 2003-06-18 | 2008-12-16 | Architecture Technology Corporation | Active verification of boot firmware |
US20040268079A1 (en) | 2003-06-24 | 2004-12-30 | International Business Machines Corporation | Method and system for providing a secure rapid restore backup of a raid system |
US20050081090A1 (en) | 2003-09-29 | 2005-04-14 | Giga-Byte Technology Co., Ltd. | Method for automatically and safely recovering BIOS memory circuit in memory device including double BIOS memory circuits |
CN1317650C (zh) | 2003-10-27 | 2007-05-23 | 联想(北京)有限公司 | 基于硬盘保护空间自动恢复bios的方法 |
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 |
US20050190699A1 (en) * | 2004-02-26 | 2005-09-01 | Smith Carey W. | Collecting hardware asset information |
US7203808B2 (en) | 2004-03-19 | 2007-04-10 | Intel Corporation | Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware |
US7185191B2 (en) | 2004-05-05 | 2007-02-27 | International Business Machines Corporation | Updatable firmware having boot and/or communication redundancy |
US20050273588A1 (en) | 2004-06-08 | 2005-12-08 | Ong Soo K | Bootstrap method and apparatus with plural interchangeable boot code images |
US7483810B2 (en) | 2004-06-29 | 2009-01-27 | Honeywell International Inc. | Real time event logging system |
KR101038567B1 (ko) | 2004-07-13 | 2011-06-02 | 엘지전자 주식회사 | 시스템 응급 복구 장치 및 방법 |
US20060020844A1 (en) | 2004-07-22 | 2006-01-26 | Gibbons Patrick L | Recovery of custom BIOS settings |
US7409539B2 (en) | 2004-08-06 | 2008-08-05 | International Business Machines Corporation | System design and code update strategy to implement a self-healing, self-verifying system |
US7370234B2 (en) | 2004-10-14 | 2008-05-06 | International Business Machines Corporation | Method for system recovery |
TWI280487B (en) | 2004-12-15 | 2007-05-01 | Via Tech Inc | Power-on method for computer system with hyper-threading processor |
US7373551B2 (en) | 2004-12-21 | 2008-05-13 | Intel Corporation | Method to provide autonomic boot recovery |
US7340595B2 (en) | 2005-01-07 | 2008-03-04 | International Business Machines Corporation | Multiplex execution-path system |
US8028172B2 (en) * | 2005-01-14 | 2011-09-27 | Microsoft Corporation | Systems and methods for updating a secure boot process on a computer with a hardware security module |
US7356680B2 (en) | 2005-01-22 | 2008-04-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader |
WO2006082985A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
US7711989B2 (en) | 2005-04-01 | 2010-05-04 | Dot Hill Systems Corporation | Storage system with automatic redundant code component failure detection, notification, and repair |
US20060225067A1 (en) | 2005-04-05 | 2006-10-05 | Inventec Corporation | Method for automatically updating and backing up the BIOS |
US8006125B1 (en) | 2005-04-29 | 2011-08-23 | Microsoft Corporation | Automatic detection and recovery of corrupt disk metadata |
US7734945B1 (en) | 2005-04-29 | 2010-06-08 | Microsoft Corporation | Automated recovery of unbootable systems |
DE112006001793T5 (de) * | 2005-06-22 | 2008-05-08 | Discretix Technologies Ltd. | System, Gerät und Verfahren des selektiven Erlaubens des Zugriffs durch einen Host-Prozessor auf von einem Host ausführbaren Code |
US7193895B2 (en) | 2005-06-24 | 2007-03-20 | Chingis Technology Corporation | Redundant memory content substitution apparatus and method |
US7500094B2 (en) * | 2005-10-18 | 2009-03-03 | American Megatrends, Inc. | BIOS identification, initialization and management |
US7831821B2 (en) | 2005-12-30 | 2010-11-09 | Intel Corporation | System backup and recovery solution based on BIOS |
US20070226478A1 (en) * | 2006-03-23 | 2007-09-27 | John Rudelic | Secure boot from secure non-volatile memory |
TW200739417A (en) | 2006-04-14 | 2007-10-16 | Benq Corp | Method for software processing and firmware updating in different OS and system thereof |
US8863309B2 (en) * | 2006-04-27 | 2014-10-14 | Hewlett-Packard Development Company, L.P. | Selectively unlocking a core root of trust for measurement (CRTM) |
US7994889B2 (en) * | 2006-06-01 | 2011-08-09 | Taiyo Yuden Co., Ltd. | Multilayer inductor |
US7424398B2 (en) * | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
CN100395733C (zh) | 2006-08-01 | 2008-06-18 | 浪潮齐鲁软件产业有限公司 | 提高金融税控专用soc芯片安全性的方法 |
TW200809489A (en) | 2006-08-01 | 2008-02-16 | Epox Comp Co Ltd | BIOS damage detection and repair method and the motherboard |
TW200809611A (en) | 2006-08-11 | 2008-02-16 | Quanta Comp Inc | Embedded system and the boot code auto-copy method |
US8190917B2 (en) | 2006-09-12 | 2012-05-29 | International Business Machines Corporation | System and method for securely saving and restoring a context of a secure program loader |
DE102006043636A1 (de) | 2006-09-18 | 2008-03-27 | Fujitsu Siemens Computers Gmbh | Computersystem und Verfahren zum Aktualisieren von Programmcode |
US20080126779A1 (en) * | 2006-09-19 | 2008-05-29 | Ned Smith | Methods and apparatus to perform secure boot |
US7886190B2 (en) | 2006-09-29 | 2011-02-08 | Intel Corporation | System and method for enabling seamless boot recovery |
US7987351B2 (en) | 2006-10-06 | 2011-07-26 | Broadcom Corporation | Method and system for enhanced boot protection |
US7934993B2 (en) | 2006-10-16 | 2011-05-03 | Igt | Secure progressive controller |
US7908470B1 (en) | 2006-10-31 | 2011-03-15 | Hewlett-Packard Development Company, L.P. | Multi-processor computer with plural boot memories |
JP4784888B2 (ja) | 2006-11-09 | 2011-10-05 | エスアイアイ・ナノテクノロジー株式会社 | Fibによるアトムプローブ分析用試料の作製方法とそれを実施する装置 |
US7930532B2 (en) | 2006-11-15 | 2011-04-19 | Via Technologies, Inc. | Systems and methods for basic input output system (BIOS) management |
US7613872B2 (en) * | 2006-11-28 | 2009-11-03 | International Business Machines Corporation | Providing core root of trust measurement (CRTM) for systems using a backup copy of basic input/output system (BIOS) |
TW200825915A (en) | 2006-12-07 | 2008-06-16 | Wistron Corp | Computer system and related method for preventing from failing to update BIOS program |
US9166989B2 (en) | 2006-12-28 | 2015-10-20 | Hewlett-Packard Development Company, L.P. | Storing log data efficiently while supporting querying |
KR101605907B1 (ko) | 2007-01-04 | 2016-03-23 | 샌디스크 아이엘 엘티디 | 호스트와 데이터 저장 디바이스 사이의 파일 전송 실패의 복구 |
US20080195750A1 (en) | 2007-02-09 | 2008-08-14 | Microsoft Corporation | Secure cross platform auditing |
US7743424B2 (en) | 2007-02-22 | 2010-06-22 | Inventec Corporation | Method for protecting data in a hard disk |
US8255988B2 (en) | 2007-03-28 | 2012-08-28 | Microsoft Corporation | Direct peripheral communication for restricted mode operation |
US7930576B2 (en) | 2007-04-10 | 2011-04-19 | Standard Microsystems Corporation | Sharing non-sharable devices between an embedded controller and a processor in a computer system |
JP4324810B2 (ja) | 2007-04-10 | 2009-09-02 | セイコーエプソン株式会社 | マイクロコンピュータ、電子機器及びフラッシュメモリのプロテクト方式 |
US8798806B2 (en) * | 2007-04-30 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Electronic device thermal management system and method |
US7870407B2 (en) | 2007-05-18 | 2011-01-11 | Advanced Micro Devices, Inc. | Dynamic processor power management device and method thereof |
US20080307134A1 (en) | 2007-06-05 | 2008-12-11 | Geissler Andrew J | I2C bus interface and protocol for thermal and power management support |
US7886140B2 (en) | 2007-08-16 | 2011-02-08 | International Business Machines Corporation | Booting a computer using a boot list when a non-volatile memory on the computer does not contain the boot list |
US20090063834A1 (en) | 2007-09-05 | 2009-03-05 | Inventec Corporation | Auto-Switching Bios System and the Method Thereof |
US7925877B2 (en) | 2007-09-27 | 2011-04-12 | Texas Instruments Incorporated | Method, system and apparatus for providing a boot loader of an embedded system |
KR101211503B1 (ko) | 2007-10-02 | 2012-12-12 | 삼성전자주식회사 | 부팅 시스템, 그 시스템을 구비한 화상형성장치 및 그제어방법 |
TWI362588B (en) | 2007-10-12 | 2012-04-21 | Asustek Comp Inc | Monitor apparatus, a monitoring method thereof and computer apparatus therewith |
US8082439B2 (en) | 2007-12-06 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Firmware modification in a computer system environment supporting operational state changes |
KR20090060774A (ko) | 2007-12-10 | 2009-06-15 | 한국전자통신연구원 | 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법 |
CN101458648A (zh) | 2007-12-12 | 2009-06-17 | 鸿富锦精密工业(深圳)有限公司 | 双bios电路 |
CN101458743A (zh) | 2007-12-12 | 2009-06-17 | 中国长城计算机深圳股份有限公司 | 一种保护计算机系统安全的方法 |
US8190950B2 (en) | 2007-12-21 | 2012-05-29 | Atmel Corporation | Dynamic column redundancy replacement |
US20090172639A1 (en) | 2007-12-27 | 2009-07-02 | Mahesh Natu | Firmware integrity verification |
TWI368872B (en) | 2008-01-03 | 2012-07-21 | Nuvoton Technology Corp | Systems and methods for bios processing |
US8392762B2 (en) | 2008-02-04 | 2013-03-05 | Honeywell International Inc. | System and method for detection and prevention of flash corruption |
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
DE102008011925B4 (de) | 2008-02-29 | 2018-03-15 | Globalfoundries Inc. | Sicheres Initialisieren von Computersystemen |
TWI411959B (zh) | 2008-03-21 | 2013-10-11 | Asustek Comp Inc | 具雙開機程式碼區之電腦系統及其啟動方法 |
US8082384B2 (en) | 2008-03-26 | 2011-12-20 | Microsoft Corporation | Booting an electronic device using flash memory and a limited function memory controller |
TWI366135B (en) | 2008-03-26 | 2012-06-11 | Asustek Comp Inc | Method for restoring bios and computer thereof |
US20090248955A1 (en) | 2008-03-31 | 2009-10-01 | Satoru Tamada | Redundancy for code in rom |
US8132253B2 (en) | 2008-04-21 | 2012-03-06 | Dell Products L.P. | Memory security override protection for manufacturability of information handling systems |
US7818622B2 (en) | 2008-04-29 | 2010-10-19 | International Business Machines Corporation | Method for recovering data processing system failures |
US7984286B2 (en) * | 2008-06-25 | 2011-07-19 | Intel Corporation | Apparatus and method for secure boot environment |
US8055892B2 (en) | 2008-07-18 | 2011-11-08 | International Business Machines Corporation | Provision of remote system recovery services |
TW201007465A (en) | 2008-08-13 | 2010-02-16 | Ene Technology Inc | A sharable memory architecture of cache in a embedded controller and a method of sharing memory |
TWI460657B (zh) | 2008-09-05 | 2014-11-11 | Asustek Comp Inc | 更新與修復基本輸入輸出系統的方法 |
US8103909B2 (en) | 2008-09-15 | 2012-01-24 | Juniper Networks, Inc. | Automatic hardware-based recovery of a compromised computer |
US20100082960A1 (en) * | 2008-09-30 | 2010-04-01 | Steve Grobman | Protected network boot of operating system |
US8443181B2 (en) | 2008-09-30 | 2013-05-14 | Qualcomm Incorporated | Processor boot security device and methods thereof |
TWI382346B (zh) | 2008-10-20 | 2013-01-11 | Asustek Comp Inc | 保護雙基本輸出入系統程式之電腦系統及其控制方法 |
TWI386852B (zh) | 2008-10-24 | 2013-02-21 | Wistron Corp | 基本輸出入系統之切換系統及其切換方法 |
TW201017407A (en) | 2008-10-31 | 2010-05-01 | Ind Tech Res Inst | Nonvolatile data storage system and method thereof |
US8151101B2 (en) | 2008-11-06 | 2012-04-03 | Lenovo (Singapore) Pte. Ltd. | Method, apparatus, and system for quiescing a boot environment |
TW201020785A (en) | 2008-11-19 | 2010-06-01 | Inventec Corp | Peripheral device initializing method and computer system |
JP5198245B2 (ja) | 2008-12-27 | 2013-05-15 | 株式会社東芝 | メモリシステム |
TW201033808A (en) | 2009-03-10 | 2010-09-16 | Vivotek Inc | System recovery method and embedded system with auto-recovery function |
TWI467375B (zh) | 2009-05-21 | 2015-01-01 | Asustek Comp Inc | 具有修復毀損bios資料功能之電腦系統及其修復方法 |
CN101894054A (zh) | 2009-05-21 | 2010-11-24 | 华硕电脑股份有限公司 | 具有修复毁损bios数据功能的电脑系统及其修复方法 |
US8756391B2 (en) | 2009-05-22 | 2014-06-17 | Raytheon Company | Multi-level security computing system |
US9377960B2 (en) | 2009-07-29 | 2016-06-28 | Hgst Technologies Santa Ana, Inc. | System and method of using stripes for recovering data in a flash storage system |
US8352719B2 (en) | 2009-07-31 | 2013-01-08 | Cleversafe, Inc. | Computing device booting utilizing dispersed storage |
TWI409664B (zh) | 2009-09-09 | 2013-09-21 | Micro Star Int Co Ltd | Personal computer boot authentication method and its boot authentication system |
US8812854B2 (en) | 2009-10-13 | 2014-08-19 | Google Inc. | Firmware verified boot |
TWI399647B (zh) | 2009-10-15 | 2013-06-21 | Wistron Corp | 回復電腦系統之基本輸出入系統之方法及相關電腦系統 |
TW201115341A (en) | 2009-10-20 | 2011-05-01 | Inventec Corp | Method for protecting redundant data |
US8543838B1 (en) | 2009-12-23 | 2013-09-24 | Marvell International Ltd. | Cryptographic module with secure processor |
GB2477774A (en) | 2010-02-12 | 2011-08-17 | Icera Inc | Overriding production processor authentication restrictions through remote security unit for development code testing |
US8838949B2 (en) | 2010-03-22 | 2014-09-16 | Qualcomm Incorporated | Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system |
TW201133342A (en) | 2010-03-30 | 2011-10-01 | Hon Hai Prec Ind Co Ltd | Method for integrating OS into BIOS chip, and method for booting the OS |
US8429391B2 (en) | 2010-04-16 | 2013-04-23 | Micron Technology, Inc. | Boot partitions in memory devices and systems |
US20120011393A1 (en) | 2010-07-06 | 2012-01-12 | Roberts Richard B | Bios recovery |
US9063836B2 (en) | 2010-07-26 | 2015-06-23 | Intel Corporation | Methods and apparatus to protect segments of memory |
US8499295B2 (en) | 2010-09-20 | 2013-07-30 | American Megatrends, Inc. | Microcontroller firmware running from RAM and applications of the same |
WO2012050934A2 (en) | 2010-09-28 | 2012-04-19 | Fusion-Io, Inc. | Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol |
US8489922B2 (en) | 2010-11-17 | 2013-07-16 | Apple Inc. | Networked recovery system |
US8627141B2 (en) | 2011-02-14 | 2014-01-07 | Dell Products L.P. | System and method for auto-failover and version matching of bootloader in an access controller |
TWI459294B (zh) | 2011-03-18 | 2014-11-01 | Phoenix Tech Ltd | Bios程式的更新方法與其電腦系統 |
WO2012148422A1 (en) | 2011-04-29 | 2012-11-01 | Hewlett-Packard Development Company, L.P. | Embedded controller to verify crtm |
CN102789396A (zh) | 2011-05-18 | 2012-11-21 | 鸿富锦精密工业(深圳)有限公司 | Bios配置模式切换系统及方法 |
CN102799497A (zh) | 2011-05-24 | 2012-11-28 | 鸿富锦精密工业(深圳)有限公司 | Nvram数据恢复系统及方法 |
US9015455B2 (en) * | 2011-07-07 | 2015-04-21 | Intel Corporation | Processsor integral technologies for BIOS flash attack protection and notification |
US8732527B2 (en) | 2011-08-16 | 2014-05-20 | Google Inc. | Secure recovery apparatus and method |
JP5476363B2 (ja) * | 2011-12-19 | 2014-04-23 | レノボ・シンガポール・プライベート・リミテッド | 生体認証装置を利用したコンピュータの起動方法およびコンピュータ |
US9672112B2 (en) | 2012-01-03 | 2017-06-06 | Hewlett-Packard Development Company, L.P. | Backing up firmware during initialization of device |
KR101994811B1 (ko) | 2012-03-04 | 2019-07-01 | 삼성전자주식회사 | 전자 장치, mbr 복원 방법 및 컴퓨터 판독가능 기록매체 |
TW201401098A (zh) * | 2012-06-18 | 2014-01-01 | Hon Hai Prec Ind Co Ltd | 固件驗證方法及系統 |
TWI564747B (zh) * | 2012-10-19 | 2017-01-01 | 威盛電子股份有限公司 | 電子裝置與安全開機方法 |
US9575768B1 (en) | 2013-01-08 | 2017-02-21 | Marvell International Ltd. | Loading boot code from multiple memories |
US9558012B2 (en) | 2013-02-21 | 2017-01-31 | Applied Micro Circuits Corporation | System boot with external media |
US9336010B2 (en) | 2013-03-15 | 2016-05-10 | Xilinx, Inc. | Multi-boot or fallback boot of a system-on-chip using a file-based boot device |
CN105122258B (zh) | 2013-04-23 | 2019-03-15 | 惠普发展公司,有限责任合伙企业 | 对系统进行配置的方法、计算系统以及物品 |
WO2014175861A1 (en) | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Recovering from compromised system boot code |
CN105122262B (zh) | 2013-04-23 | 2018-06-05 | 惠普发展公司,有限责任合伙企业 | 辅助非易失性存储器中的冗余系统引导代码 |
WO2014175867A1 (en) * | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Verifying controller code and system boot code |
CN105308609B (zh) | 2013-04-23 | 2017-12-29 | 惠普发展公司,有限责任合伙企业 | 存储事件数据的系统和方法 |
US9542195B1 (en) | 2013-07-29 | 2017-01-10 | Western Digital Technologies, Inc. | Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip |
TW201512831A (zh) | 2013-09-30 | 2015-04-01 | Hon Hai Prec Ind Co Ltd | 電腦開機啟動偵測系統及方法 |
JP6146476B2 (ja) | 2013-09-30 | 2017-06-14 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
TW201520895A (zh) | 2013-11-20 | 2015-06-01 | Hon Hai Prec Ind Co Ltd | Bios自動恢復系統及方法 |
US9411688B1 (en) | 2013-12-11 | 2016-08-09 | Xilinx, Inc. | System and method for searching multiple boot devices for boot images |
US9122893B1 (en) * | 2014-02-24 | 2015-09-01 | International Business Machines Corporation | Trusted platform module switching |
US9262257B2 (en) | 2014-04-21 | 2016-02-16 | Netapp, Inc. | Providing boot data in a cluster network environment |
US9317691B2 (en) | 2014-05-08 | 2016-04-19 | Dell Products L.P. | Pre-boot software verification |
CN107003864B (zh) | 2015-01-29 | 2021-08-20 | 惠普发展公司,有限责任合伙企业 | 恢复片上系统设备 |
US9710651B2 (en) * | 2015-04-10 | 2017-07-18 | Vixs Systems Inc. | Secure processor for SoC initialization |
US9740866B2 (en) | 2015-06-10 | 2017-08-22 | The Boeing Company | Automatic measuring boot process using an automatic measuring processor coupled to a memory |
-
2013
- 2013-04-23 WO PCT/US2013/037735 patent/WO2014175867A1/en active Application Filing
- 2013-04-23 US US14/780,892 patent/US10733288B2/en active Active
- 2013-04-23 CN CN201380075617.3A patent/CN105144185B/zh active Active
-
2014
- 2014-03-11 TW TW103108372A patent/TWI539324B/zh active
-
2020
- 2020-06-08 US US16/895,535 patent/US11520894B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN105144185B (zh) | 2018-06-05 |
WO2014175867A1 (en) | 2014-10-30 |
US20160055332A1 (en) | 2016-02-25 |
US10733288B2 (en) | 2020-08-04 |
US11520894B2 (en) | 2022-12-06 |
CN105144185A (zh) | 2015-12-09 |
TW201443686A (zh) | 2014-11-16 |
US20200302057A1 (en) | 2020-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI539324B (zh) | 驗證控制器碼及系統啓動碼之技術 | |
TWI648652B (zh) | 修復受危害之系統啓動碼之技術 | |
EP2989579B1 (en) | Redundant system boot code in a secondary non-volatile memory | |
JP5767751B2 (ja) | Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム | |
US9734339B2 (en) | Retrieving system boot code from a non-volatile memory | |
US10089472B2 (en) | Event data structure to store event data | |
EP2989547B1 (en) | Repairing compromised system data in a non-volatile memory | |
US10032029B2 (en) | Verifying integrity of backup file in a multiple operating system environment | |
TWI522838B (zh) | 組配系統之技術 | |
US20050210231A1 (en) | Controlling update of content of a programmable read-only memory | |
US9928367B2 (en) | Runtime verification | |
Du et al. | Trusted firmware services based on TPM |