TWI648652B - 修復受危害之系統啓動碼之技術 - Google Patents

修復受危害之系統啓動碼之技術 Download PDF

Info

Publication number
TWI648652B
TWI648652B TW103106565A TW103106565A TWI648652B TW I648652 B TWI648652 B TW I648652B TW 103106565 A TW103106565 A TW 103106565A TW 103106565 A TW103106565 A TW 103106565A TW I648652 B TWI648652 B TW I648652B
Authority
TW
Taiwan
Prior art keywords
memory
code
controller
copy
firmware
Prior art date
Application number
TW103106565A
Other languages
English (en)
Other versions
TW201506675A (zh
Inventor
傑佛瑞K 珍森納
瓦路汀Y 阿里
王藍
Original Assignee
惠普發展公司有限責任合夥企業
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 惠普發展公司有限責任合夥企業 filed Critical 惠普發展公司有限責任合夥企業
Publication of TW201506675A publication Critical patent/TW201506675A/zh
Application granted granted Critical
Publication of TWI648652B publication Critical patent/TWI648652B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

在一系統的一狀態中,其中該系統的一處理器未存取一第一記憶體,在該系統中的一控制器判定在該系統中來自該第一記憶體的系統啟動碼是否受危害,其中該第一記憶體係可由該處理器與該控制器透過一匯流排存取。響應於判定該系統啟動碼係受危害,該控制器檢索在該計算裝置中來自一第二記憶體的系統啟動碼以取代在該第一記憶體中的該系統啟動碼,其中該第二記憶體係電性地隔離於該匯流排且不可由該處理器存取。

Description

修復受危害之系統啟動碼之技術
本發明係關於一種修復受危害之系統啟動碼之技術。
發明背景
一種計算系統可包括用以執行該計算系統的各種啟動功能之程式碼。此程式碼可包括基本輸入/輸出系統(BIOS)程式碼。BIOS程式碼可遭受在計算系統內或一外部伺服器之惡意軟體的攻擊。作為攻擊的結果,該BIOS程式碼可以變得被危害。
本發明係特地提出一種一種計算裝置,包含:一處理器;一控制器;一第一記憶體儲存有系統啟動碼,其中該第一記憶體係可由該處理器與該控制器兩者透過一匯流排存取;一第二記憶體電性地隔離於該匯流排且儲存有一系統啟動碼副本,其中該第二記憶體係可由該控制器存取但不可由該處理器存取;其中該控制器係在該處理器並未存取該第一記憶體的一期間內,以來自該第二記憶體的該系統啟動碼副本取代在該第一記憶體內的該系統啟動 碼。
100‧‧‧計算系統
102‧‧‧嵌入式控制器
104‧‧‧主要非依電性記憶體
106‧‧‧處理器
107‧‧‧系統韌體
108‧‧‧控制器碼
110、130、132‧‧‧啟動方塊
114‧‧‧系統韌體冗餘副本
116‧‧‧次要依電性記憶體
120‧‧‧共用匯流排
202、204‧‧‧工作
302‧‧‧輸入/輸出(I/O)控制器
304‧‧‧使用者輸入設備
306‧‧‧鍵盤
308‧‧‧風扇
310‧‧‧電池
312‧‧‧加密硬體
313‧‧‧電源供應器
314‧‧‧僅讀記憶體(ROM)
316‧‧‧啟動載入器
318‧‧‧加密金鑰
319‧‧‧隨機存取記憶體
322、324、340、342‧‧‧簽章
334‧‧‧策略資訊
350‧‧‧系統韌體冗餘副本
402、406、408、410、411、412、414、416、418、420、422、424、426、428、430、432‧‧‧工作
關於以下圖式的一些實施將受描述:圖1為根據某些實施的一範例系統的一方塊圖;圖2為根據某些實施的一系統啟動碼回復過程的的一流程圖;圖3為根據進一步的實施的另一範例系統的一方塊圖;以及圖4為根據更進一步的實施之一流程的一流程圖。
較佳實施例之詳細說明
惡意軟體攻擊用於執行一計算系統的啟動之系統程式碼,可導致該計算系統的完整性被危害,因此使得在該計算系統中可發生未經授權的存取和操作。例如,被危害的系統程式碼可以允許由惡意實體隱蔽遠程監控及/或計算系統的控制,未經授權的訪問和/或由惡意修改的計算系統中的數據的惡意軟體,計算系統的功能化等等。受到危害的系統代碼,可以參考已經被破壞,使得該系統的代碼不再可用,或者,受到危害的系統代碼,可以參考已經以某種方式改變系統的代碼,但是,仍然是能夠執行系統代碼。注意,系統代碼,也可以有意或無意地破壞。
雖然可於一計算系統中提供用以保護該系統一保護機制,此等保護機制在特定條件下可能會變的受危害,其可能會使系統碼經受惡意軟體的攻擊。
用於執行一計算系統的啟動系統碼可包括系統韌體,其可為在該計算系統中的一處理器(或多個處理器)上可執行之機器可讀指令的形式。「系統韌體」可涵蓋能夠執行一計算系統的啟動之任何機器可讀指令。計算系統的範例例包括桌上型電腦、筆記型電腦、平板電腦、個人數位助理(PDA)、智慧型電話、遊戲設備、伺服器器計算機、儲存節點、網路通信節點,且依此類推。
系統韌體可以包括基本輸入/輸出系統(BIOS)碼,它可以初始化該計算系統的各種組件,並載入計算系統的一操作系統(OS)。該BIOS碼可以執行硬體組件的檢查,以確保硬體組件為存在且正常地運行。此可例如是一個電力開啟自我測試(POST)程序的一部份。在POST程序後,BIOS碼可以透過一個啟動序列的其餘部分而進展,在此之後,該BIOS碼可以載入並將控制權交給OS。BIOS碼可以包括傳統的BIOS碼或統一可延伸硬體介面(UEFI)的代碼。在一些範例子中,BIOS碼可以包含在OS載入後執行的運行部分。
該系統韌體可儲存在非依電性記憶體中,諸如一快閃記憶體或任何其他可程式化永久記憶體。一旦系統韌體在一非依電性記憶體中受危害,一可能的修復可包括實體地取代包括該非依電性記憶體之一組件。此等處理受危害系統韌體的一技術,可為勞動密集的、昂貴和費時的。
可替代地,其它技術也試圖以來自外部儲存裝置之系統韌體的一有效副本,取代在該非依電性記憶體中受危害的系統韌體,該等外部存儲設備諸如一可移動儲存裝 置(例如,通用串列匯流排或USB儲存裝置或其它類型的可移動存儲設備)。然而,當來自系統韌體危害的修復要發生時,包含一有效的系統韌體的一外部儲存裝置可能無法使用。此外,企業的策略(例如企業的關注、政府機構、教育機構等等)可能禁止涉及在外部存儲設備上之系統韌體的使用之恢復技術。
根據一些實施,除了提供一主要非依電性記憶體,其儲存了由該計算系統的一處理器所執行的系統韌體,若該系統韌體未受危害,一個次要非依電性記憶體亦可提供,其儲存了該系統韌體的「黃金副本」。系統韌體的一黃金副本是指被證實或被信任是有效的。例如,系統韌體的黃金副本可為該系統韌體在製造該計算系統時於工廠提供的的原始副本。可替代地,系統韌體的黃金副本可為在一次要非依電性記憶體中的一副本,其已經以一種安全的方式更新過了。更一般地,不是指的是系統韌體的黃金副本,系統韌體的一冗餘副本可以被儲存在次要非依電性記憶體。
次要非依電性記憶體係獨立於該系統的處理器,以提供增強的安全性,因為惡意軟體在處理器上運行將不能破壞在次要非依電性記憶體中的系統韌體之冗餘副本。更具體地,次要非依電性記憶體隔離於可被處理器以及其他實體使用,以存取該主要非依電性記憶體的匯流排。根據一些實施方式中,一嵌入式控制器可用以執行恢復受損系統韌體,藉由使用在次要非依電性記憶體中的該系統韌體之冗餘副本,以取代在主要非依電性記憶體中受危害的 系統韌體。在系統韌體恢復流程期間使用的嵌入式控制器以進行系統韌體恢復降低了系統損壞的可能性。
在本討論中,雖然提到了「系統韌體」,應該注意的是可以應用至其它類型的系統啟動碼之技術或機制,在此系統啟動碼可指任何代碼,在重新啟動一計算系統之後其可啟動該計算系統,或其可以將該計算系統從一低功率狀態恢復。
圖1是一個範例性計算系統100的方塊圖,其包括一嵌入式控制器102、一主要非依電性記憶體104、一處理器106和一次要依電性記憶體116。主要非依電性記憶體104是一個共享的非依電性記憶體,其可由多個實體存取,實體包括該嵌入式控制器102和至少一個其他實體(包括處理器106)。該次要非依電性記憶體116可由嵌入式控制器102存取,但不能由處理器106或在計算系統100中的其他組件存取(有效地,次要非依電性記憶體116是電性地隔離於除了該遷入是控制器102之外的實體)。使得不可存取次要非依電性記憶體116的處理器106和其他組件可以保護次要非依電性記憶體116免於未經授權的篡改內容。次要非依電性記憶體116可以在任何時候可以由嵌入式控制器102存取。
雖然圖1中未顯示,一輸入/輸出(I/O)控制器可提供於該處理器106與該主非依電性記憶體104之間。
該次要非依電性記憶體116可實體地獨立於該主要非依電性記憶體104(諸如實施為不同實體記憶體裝置)可替代地,該次要非依電性記憶體116與該主要非依電性記憶 體104可實體地存在於一共用記憶體裝置上,但該主要非依電性記憶體104與該次要非依電性記憶體116位於該實體記憶體裝置的不同區段處,在此包含次要非依電性記憶體116的該實體記憶體裝置的區段係僅可由該嵌入式控制器102存取。換句話說,包含次要非依電性記憶體116的該區段係受該嵌入式控制器102專屬控制,且此區段係鎖定從該處理器106或另一實體的存取。
該主要非依電性記憶體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碼被允許在該處理器106上執行前執行。該啟動方塊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),或任何其它類型的可程式化電路來實現。
該次要非依電性記憶體116是電性地隔離於從共用匯流排120,並且儲存系統韌體的一冗餘副本114,在此該系統韌體冗餘副本114包括一啟動方塊132和一EC韌體130。在該次要非依電性記憶體116中的該系統韌體冗餘副本114可為在主要非依電性記憶體104中的系統韌體107的複本。可替代地,該系統韌體冗餘副本114相比於系統韌體107可為一不同的版本(更新版本或更早版本)。
在一些實施方式中,系統韌體冗餘副本114僅包括啟動方塊132,但不包括BIOS碼的主要部分。在其他實施 方式中,系統韌體冗餘副本114可以包括BIOS碼的全部。將在次要非依電性記憶體116中的BIOS碼的完整副本包括在內的一個可能的好處是,計算系統100不必去到一個外部來源(計算系統100之外部)以檢索的BIOS碼的一部分而在被入侵的系統韌體之恢復時使用。
圖2是根據一些實施方式的啟動過程之流程圖,其中系統韌體107係待被從主要非依電性記憶體104中檢索而用以啟動或恢復該計算系統100。在一時間期間內,圖2的過程可由嵌入式控制器102中所執行,於該時間期間內該處理器106係被失能或不能存取該主要非依電性記憶體104。該處理器106被失能指的是該處理器106係在一斷電狀態(沒有電源提供給處理器106的主處理部分)或處於重置狀態(例如,宣稱至處理器106的一個重置訊號,其避免處理器106執行機器可讀指令)。
該嵌入式控制器102判定(在202處)從主要非依電性記憶體中檢索的該系統韌體107(且更具體地,在一些實施例中為啟動方塊110)是否被破壞。此判定可以基於驗證(或執行一個驗證流程)系統韌體107。一段代碼的驗證,諸如系統韌體或其他代碼,可以指加密驗證一段代碼並未改變及/或確認此代碼段是來自受信任的來源。以下將結合圖3進一步討論用於驗證系統韌體的一種技術。
響應於判定系統韌體107被危害,嵌入式控制器102檢索(在204處)來自次要非依電性記憶體116到主要非依電性記憶體104的系統韌體冗餘副本114,以取代受損的系 統韌體107。
如果系統韌體107係受驗證,接著計算系統100準備繼續啟動。
在一些實現中,有可能以安全的方式更新在次要非依電性記憶體116中的系統韌體冗餘副本114。該系統韌體冗餘副本114的更新可以為基於策略的,諸如基於在策略資訊中所指定的一策略,其可例如儲存在次要非依電性記憶體116內。以下將結合圖4進一步討論系統韌體冗餘副本114此等基於策略的更新。
在進一步的實施方案中,次要非依電性記憶體116可儲存系統韌體的兩個冗餘副本。系統韌體的第一冗餘副本是可更新的,諸如,藉由使用基於策略的更新。系統韌體的第二個冗餘副本是計算系統100出廠後未更新之一個不可更新的副本。
根據一些實現,在嵌入式控制器102的初始化程序期間,該嵌入式控制器102能夠驗證自一非依電性記憶體(116及/或104)檢索之EC韌體(130及/或108)。初始化程序是指,該嵌入式控制器102在已被重置後、或在該嵌入式控制器102的一電力循環之後(其中電力係自該嵌入式控制器102移除,然後再重新施加到該嵌入式控制器102)的第一次啟動時,被執行的程序。
在一些實現中,嵌入式控制器102可以先試圖在計算系統100的一重新啟動過程中使用在次要非依電性記憶體116內的EC韌體130。如果嵌入式控制器102無法成功使 用韌體130,那麼該嵌入式控制器102可以在試圖啟動計算系統100中使用主要非依電性記憶體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的執行,在藉由該處理器106之該系統韌體之每一重新啟動執行之前,EC韌體可以驗證(在圖2之202執行)系統韌體(例如:來自主要非依電性記憶體104的系統韌體107)。系統韌體之重新啟動的執行可能出現,由於計算系統100的冷啟動、自該計算系統100的一低電力狀態的恢復、一操作系統重新啟動,等等。應注意的是,每次計算系統100進入低電力狀態,系統韌體也可以被EC韌體驗證。在其他範例中,當該處理器106維持供電時,EC韌體也可以驗證系統韌體。
在進一步的範例中,EC韌體可以響應於該計算系統100的一暖重置而進行系統韌體的驗證,其中,一計算系統100係被重新啟動而不移除至該計算系統100的電力。為了允許EC韌體響應於暖重置而進行驗證,當檢測到暖重 置時,該計算系統100可以被強制轉換到適當的低電力狀態。
在其它範例中,該EC韌體可以在任何時間進行驗證,即使當該計算機系統不處於一低電力狀態。例如,當該處理器為閒置或者沒有存取該共享非依電性記憶體時104,EC韌體可以進行驗證。該EC韌體的驗證亦可為即時進行,如同該系統韌體係受檢索以用於由該處理器之執行。
上述確保,在該處理器106重新啟動該系統韌體107的執行的每個瞬間之前,該系統韌體107未受危害。
該計算系統100的低電力狀態是指該計算系統100的一狀態,其中該處理器106與系統100的某些其它硬體組件為關閉時(例如,沒有電力提供給該處理器和該等某些其他硬體組件)。在低電力狀態下,電力仍然可提供予嵌入式控制器102。該計算系統100可以在以下任一情況下轉換到低電力狀態:(1)作為該計算系統100之一個冷重置的一部分,其造成該系統100被斷電,隨後接通電源,或(2)作為電力節省程序的一部分,其中,該計算系統100可以從一個正常的操作狀態轉換到一睡眠狀態、一休眠狀態,或者在一段時間不活動後、或響應於檢測到電池不足條件的一關閉狀態,或響應於使用者或應用程序命令,或者由於別的原因,或(3)在任何其他情形。
低電力狀態的範例可包括某些先進組態與電力介面(ACPI)狀態,包括:ACPIS3狀態(此是一個待機或睡眠 狀態的形式,其中該計算系統100的系統上下文保存在保持供電的依電性存儲器中,同時計算系統100的某些組件被斷電);在ACPIS4狀態(此是休眠狀態的形式,其中該系統的上下文被保存於持續儲存器,以允許電力自附加計算系統的組件,包括依電性存儲器中移除);與ACPIS5狀態(它是系統的一種關閉狀態之形式,其中電力已經從計算系統100的更多組件移除)。
圖3是根據進一步實施之計算系統100的方塊圖。圖3的該計算系統100包括一個輸入/輸出(I/O)控制器302,其被連接在處理器106和共用匯流排120之間。在一些範例中,I/O控制器302可以是來自英特爾公司的一個平台控制器集線器(PCH)。PCH可包括各種功能,包括:至一圖形子系統的一顯示介面、一系統匯流排介面至各種I/O設備可以連接到的系統匯流排,等等。在其他範例中,可以使用其他類型的I/O控制器。
如該圖3所示,嵌入式控制器102耦合至一使用者輸入設備304(例如滑鼠裝置或其他類型的輸入裝置)、一鍵盤306、一風扇308、一電池310和一電源313供應器,以管理各別裝置(例如在EC韌體的控制之下)。
在圖3的範例中,該嵌入式控制器102還包括加密硬體312,其可進行加密計算,諸如在EC韌體及系統韌體的驗證所使用的那些。加密硬體312可以是電路的形式,其被配置來進行加密計算。
嵌入式控制器102還包括一個僅讀記憶體 (ROM)314,它可以被用來儲存一啟動載入器316以及一加密金鑰318的加密密鑰318可以是用於執行驗證EC韌體(130或108)的金鑰(公鑰或私鑰)。在系統啟動期間,啟動載入器316從ROM314載入以在嵌入式控制器102中執行,而檢索來自次要或主要非依電性記憶體116、104中的EC韌體進入該嵌入式控制器102的一隨機存取記憶體319。啟動載入器316可以採取措施,以確保除了嵌入式控制器102之外,沒有其他實體在EC韌體在載入操作期間存取共用匯流排120。
為了檢索用於載入嵌入式控制器102的EC韌體,啟動載入器316可以找到對EC韌體影像的一個指示(或其他參考),其可以儲存在次要或主要非依電性記憶體116或104。
檢索到的EC韌體由啟動載入器316驗證,其可以調用該加密硬體312以協助進行加密計算驗證。
在主要非依電性記憶體104中,一簽章322係相關聯於EC韌體108,且一簽章324係相關聯於啟動方塊110。類似地,在該次要非依電性記憶體116中,一簽章340係相關聯於EC韌體130,以及一簽章342係相關聯於啟動方塊132。簽章340或322是在各別的EC韌體108或130之驗證中使用,而簽章342或324是用在個別的啟動方塊110或132的驗證。在驗證過程中簽章的使用可允許判定各別的EC韌體或啟動方塊的真實性的一判定,以及各別的EC韌體或啟動方塊沒有被破壞的一判定。
在一些實施中,韌體108或130的驗證可以藉由使 用儲存在嵌入式控制器ROM314中的加密金鑰318進行解密各個簽章322或340來完成。解密簽章產生一個個別的值(例如,雜湊值),其可以與EC韌體之一相對應計算出的值(例如,雜湊值)比較。如果上述值匹配,則EC韌體係受驗證。 一個類似的過程可用於使用個別數位簽章324或342以驗證BIOS啟動方塊110或132。
在一些範例中,次要非依電性記憶體116可儲存另一個系統韌體冗餘副本350。在一些範例中,該系統韌體冗餘副本114可以被更新,但其他系統韌體冗餘副本350是不可更新的(不可變)。
次要非依電性記憶體116亦可以儲存策略資訊334。例如,策略資訊334可以包括有關下列一項或多項策略的組合資訊:
.指明是否操作的一積極模式係受使用之一策略,在此積極模式能夠驗證系統韌體在每一個情況下,在此主機處理器將啟動方塊(在每個冷啟動、暖啟動、從低電力恢復狀態等等)
.指明是否手動或自動恢復模式將受使用,在此一手動恢復模式涉及在受危害啟動方塊被允許進行恢復之前的一使用者操作;以及
.一個策略指明是否一鎖定或解鎖模式係受使用,其中鎖定模式導致系統韌體被鎖定到一個特定的版本,諸如在次要非依電性記憶體116中的版本。
確認是否一鎖定或解鎖模式將被使用的策略,可 控制該系統韌體冗餘副本114之基於策略的更新,如下面進一步解釋。
圖4是根據進一步實施的一過程之流程圖,該實施可以在EC韌體成功的驗證以及在該嵌入式控制器102上之EC韌體的後續執行之後進行。圖4的程序可以由嵌入式控制器102在EC韌體的控制下進行。
如圖4所示,該嵌入式控制器102判定(在402處)是否在該次要非依電性記憶體116中的該啟動方塊130(圖4中表示為EC_BB)係被驗證(基於使用圖3的簽章342進行之驗證)。如果沒有,那麼一個EC_BB_Valid標誌(在404處)係被清除至清除狀態,以指示在次要非依電性記憶體116中的該啟動方塊130沒有被驗證。
然而,如果在402處該判定指示該啟動方塊132已經被驗證,則EC_BB_Valid標誌係被設置為(在406處)一設定狀態,以指示在該次要非依電性記憶體116中的該啟動方塊132已經被驗證。
接下來,EC韌體判定(在408處)是否在該主要非依電性記憶體104中的該塊啟動方塊110(在圖4中表示為SYS_BB)已被驗證(基於使用圖3的簽章324進行之驗證)。如果沒有,EC韌體下一步檢查(在410處)EC_BB_Valid標誌是否被設定(在410處)。如果沒有,也就是一個指示,在該次要與主要非依電性記憶體116、104內此兩個啟動方塊132、110不能被驗證,並指示一個錯誤(在411處)。在此時,因為系統由於受危害之啟動方塊不能被允許啟動,圖4的進行停 止。
如果判定(在410處),該EC_BB_Valid標誌係被設定,那麼此為一個指示,在該次要非依電性記憶體116中的該啟動方塊132已經被驗證,及使在該主要非依電性記憶體104內的該啟動方塊110不能被驗證。在這種情況下,EC韌體判定(在412)是否恢復策略(作為策略資訊334的一部分儲存在圖3的次要非依電性記憶體116中)指明一手動模式或一自動模式。如果自動模式被指示,則在該次要非依電性記憶體116內有效的啟動方塊132被複製(在414處),以取代在主要非依電性記憶體104中無效的啟動方塊110。工作414對應至圖1之在非依電性記憶體116內使用的系統韌體冗餘副本114,以取代至圖1之受危害的系統韌體107。
然而,如果恢復策略指明了手動模式時,則指示可以輸出(在416),以提示用於使用者輸入,諸如一金鑰序列或其他輸入。在收到使用者輸入將引起工作414待被進行,在此在主要非依電性記憶體104中的無效啟動方塊110係以在次要非依電性記憶體116中的有效啟動方塊132之一副本取代。
接下來,EC韌體設定(在418處)的各種狀態資訊以回報所採取的動作,載此的狀態資訊可以在計算系統下次啟動時使用的動作。
EC韌體接著判定(在420)是否在次要非依電性記憶體116中的該啟動方塊132已被更新。如果沒有,那麼計算系統已準備好啟動(422)。但是,如果在次要非依電性記 憶體116中的啟動方塊132已經更新,則EC韌體執行(在424)進行一動作,以使計算系統檢查該嵌入式控制器102係運行正確版本的EC韌體,此可以藉由重新設定嵌入式控制器102完成,此將導致嵌入式控制器102進行其初始化程序,其包括驗證EC韌體,在此之後圖4的過程將再次進行。
在圖4的工作408中,若EC韌體能夠驗證在主要非依電性記憶體110內的啟動方塊104,則EC韌體檢查(在426)是否該EC_BB_Valid標誌係被設定。如果不是,此為一個指示,在該主要非依電性記憶體110中的啟動方塊110是有效的,但在次要非依電性記憶體116中的啟動方塊132是無效的。在這種情況下,EC韌體判定(在428)鎖定策略(如圖4中的策略資訊334所指示)是否指明一鎖定模式或非鎖定模式。如果指明非鎖定模式,這意味著在次要非依電性記憶體116中的該啟動方塊132可以被更新,在這種情況下,EC韌體副本(在430)複製在主要非依電性記憶體104的啟動方塊110,至次要非依電性記憶體116以取代該啟動方塊132。
另一方面,如果判定(在428),該鎖策略指明鎖定模式,則此指示該EC韌體不允許更新在次要非依電性記憶體116中的啟動方塊132。在這種情況下,EC韌體可以設置一個標誌(在432),以指示鎖定策略中的改變,此涉及到鎖定策略被改變以指明解鎖模式。將鎖訂策略從鎖定狀態改變到非鎖定模式,允許在次要非依電性記憶體116中的啟動塊啟動方塊132待由在主要非依電性記憶體104中的啟動 方塊110取代(於432進行)。此外,資訊可以被添加到稽核日誌(未示出)來指示先前事件(鎖定策略被改變)。此外,在由於內部錯誤,鎖定策略不能兌現,以及使用者應檢查鎖定策略,並重新組配平台以確保所需的設置配置的情況下,使用者可以在這種情況下被警告。
工作428、430、432相關聯於在次要非依電性記憶體116中啟動方塊132(或更一般的,系統韌體冗餘副本114)之基於策略的更新。在其它實現中,如果在428處判定鎖策略指明鎖定模式,則嵌入式控制器102可以決定不以在主要非依電性記憶體104中的啟動方塊110取代在次要非依電性記憶體116中的啟動方塊132。
該過程接下來進行到工作418。
在工作426,如果判定該EC_BB_Valid標誌被設定,此指示啟動方塊132和啟動方塊110兩者已經被驗證。在這種情況下,EC韌體判定(在434)是否基於啟動方塊132的內容係相等於基於啟動方塊110所導出的一值。如果是這樣,可以確認啟動方塊132、110兩者是相同的,且因此,該系統已準備好啟動(422)。另一方面,如果基於啟動方塊132、110的內容導出的值是不相等的,(此指示啟動塊啟動方塊132和110是不同的版本),則EC韌體判定(在436)該BIOS鎖定策略是否指明了鎖定模式或非鎖定模式。如果指明非鎖定模式,則EC韌體可以複製(在438)在主要非依電性記憶體104中的啟動方塊110至次要非依電性記憶體116,以取代啟動方塊132。然後,該過程進行到工作418。
如果在436指明鎖定模式,那麼這是一個指示在主要非依電性記憶體104中的啟動方塊110待被鎖定到儲存在次要非依電性記憶體116中之啟動方塊132的版本,在某些情況下,在主要非依電性記憶體104中的啟動方塊110可為已更新到更新的版本。然而,如果鎖策略指明了鎖定模式時,在主要非依電性記憶體104中的啟動方塊110的更新是不被允許的,在此案例中,在主要非依電性記憶體104中的啟動方塊110以在次要非依電性記憶體116內的啟動方塊132(藉由在442進行複製)取代。在複製(於442)啟動方塊132以取代啟動方塊110之前,EC韌體可以檢查(於440)的恢復策略是否指明了一自動模式或手動模式。如果指明了自動模式,則在442之複製可直接執行。然而,如果指明了手動模式,則EC韌體可以提供(在444)一輸出,以提示使用者輸入,在此之後可以進行在442的複製。
然後,該過程進行到工作418。
工作434、436、440、442和444也涉及到在次要非依電性記憶體116中啟動方塊132(或更一般的系統韌體冗餘副本114)的基於策略之更新。
藉由使用根據一些實施的技術或機制,從受危害的系統韌體之更有效和安全的恢復得以實現。從受危害系統韌體之恢復,不依賴於在一處理器上執行的代碼;相反,恢復是由一個嵌入式控制器執行。在一些實施中,可以提供更新一系統韌體冗餘副本的一種安全方式。系統韌體冗餘副本之基於策略的更新可以在執行更新中提供靈活性。
上述各種模組的機器可讀指令係被載入以在一處理器電路(例如,嵌入式控制器102或處理器106)上執行。一處理電路可以包括微處理器、微控制器、處理器模組或子系統、可程式化積體電路、可程式化閘陣列,或另一控制或計算裝置。
資料和指令被儲存在個別的儲存裝置中,其係實現為一個或多個電腦可讀或機器可讀存儲媒體。該儲存媒體包括不同形式的記憶體,包括半導體記憶體裝置,諸如動態或靜態隨機存取記憶體(DRAM或SRAM)、可抹除和可程式化僅讀記憶體(EPROM)、電氣可抹除和可程式化僅讀記憶體(EEPROM)和快閃記憶體;磁碟,諸如固定碟、軟碟和可移動碟;其他磁性媒體,包括磁帶;光學介質,諸如光碟(CD)或數位視頻光碟(DVD);或其它類型的儲存裝置。注意,以上所討論的指令可以被提供於一個電腦可讀或機器可讀儲存媒體上,或者替代地,可以設置在分佈於可能具有多個節點的大型系統中的多個電腦可讀或機器可讀儲存媒體。此等電腦可讀或機器可讀儲存媒體或媒體被認為是一種物品(或製品)的一部分。一種製品或物品可以指任何製造的單一個組件或多個組件。儲存媒體或媒體可以位於運行機器可讀指令的機器,或者位於一遠端站,機器可讀指令可以透過過網絡自該遠端站下載而用以執行。
在上述描述中,許多細節進行了闡述,以提供在此所揭露之主題的理解。然而,實施方式可以在沒有一些或全部此等細節的情況下實行。其他實施方式可以包括以 上討論的細節之修改和變化。附加的申請專利範圍是用於涵蓋此等修改和變型。

Claims (14)

  1. 一種運算裝置,包含:一處理器;一控制器;儲存有系統啟動碼之一第一記憶體,其中該第一記憶體可由該處理器與該控制器兩者透過一匯流排存取;電性地隔離於該匯流排且儲存有一系統啟動碼副本之一第二記憶體,其中該第二記憶體可由該控制器存取但不可由該處理器存取;其中該控制器用以在該處理器並未存取該第一記憶體的一期間內,以來自該第二記憶體的該系統啟動碼副本取代該第一記憶體內的該系統啟動碼;其中該第二記憶體內的該系統啟動碼副本係為可更新的一第一系統啟動碼副本,且其中該第二記憶體更儲存有不可變的一第二系統啟動碼副本,該第二系統啟動碼副本是該系統啟動碼以及該第一系統啟動碼副本之外的額外者。
  2. 如請求項1的運算裝置,其中該控制器係用以藉由自該第二記憶體取回該系統啟動碼副本來進行該取代,而不存取在該運算裝置外部的任何裝置。
  3. 如請求項1的運算裝置,其中該控制器係一嵌入式控制器。
  4. 如請求項1的運算裝置,其中該系統啟動碼包括一啟動區塊。
  5. 如請求項1的運算裝置,其中該控制器係用以存取策略資訊以判定是否要允許該第二記憶體內之該系統啟動碼副本的更新。
  6. 如請求項5的運算裝置,其中該策略資訊係儲存在該第二記憶體內。
  7. 如請求項6的運算裝置,其中該策略資訊可在允許該系統啟動碼副本更新的一第一設定、與不允許該系統啟動碼副本更新的一第二設定之間更新。
  8. 一種方法,其包含以下步驟:在一運算裝置的一處理器沒有在存取該運算裝置內的一第一記憶體的一運算裝置狀態中,由該運算裝置內的一控制器判定來自該第一記憶體的系統啟動碼是否受危害,其中該第一記憶體係可由該處理器與該控制器透過一匯流排存取;以及響應於判定該系統啟動碼係受危害,由該控制器自該運算裝置中之一第二記憶體取回一系統啟動碼,以取代該第一記憶體中的該系統啟動碼,其中該第二記憶體係電性地隔離於該匯流排且不可由該處理器存取;其中來自該第二記憶體的該系統啟動碼副本係為可更新的一第一系統啟動碼副本,且其中該第二記憶體更儲存有不可變的一第二系統啟動碼副本,該第二系統啟動碼副本是該系統啟動碼以及該第一系統啟動碼副本之外的額外者。
  9. 如請求項8的方法,其中判定該系統啟動碼是否受危害包含判定該第一記憶體中的一啟動區塊是否受危害。
  10. 如請求項9的方法,其中自該第二記憶體取回該系統啟動碼包含自該第二記憶體取回一啟動區塊以取代該第一記憶體中的該啟動區塊。
  11. 如請求項10的方法,其中該啟動區塊係為一基本輸入/輸出系統(BIOS)碼的一部分,且其中該第二記憶體中的該系統啟動碼更包括該BIOS碼的一剩餘部份。
  12. 如請求項8的方法,其中判定該第一記憶體內的該系統啟動碼是否受危害,係在每次該處理器重新啟動該系統啟動碼的執行前,由該控制器進行。
  13. 如請求項8的方法,進一步包含以下步驟:在該控制器的一初始化程序期間,驗證控制器碼;以及響應於驗證該控制器碼,將該控制器碼載入該控制器供由該控制器執行,其中該判定與該取回係由在該控制器中執行的該控制器碼進行。
  14. 一種包含儲存有指令的至少一機器可讀儲存媒體之物件,該等指令在由一系統中的一控制器執行時,致使該控制器進行以下動作:在該系統內的一處理器停止運作之該系統的一狀態中,判定來自該系統中之一第一記憶體的一啟動區塊是否受危害,其中該第一記憶體係可由該處理器與該控制器透過一匯流排存取;以及響應於判定系統啟動碼有受危害,由該控制器自運算裝置中之一第二記憶體取回一啟動區塊,以取代該第一記憶體中的該啟動區塊,其中該第二記憶體係電性隔離於該匯流排且不可由該處理器存取;其中該第二記憶體內的系統啟動碼副本係為可更新的一第一系統啟動碼副本,且其中該第二記憶體更儲存有不可變的一第二系統啟動碼副本,該第二系統啟動碼副本是該系統啟動碼以及該第一系統啟動碼副本之外的額外者。
TW103106565A 2013-04-23 2014-02-26 修復受危害之系統啓動碼之技術 TWI648652B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??PCT/US13/37724 2013-04-23
PCT/US2013/037724 WO2014175861A1 (en) 2013-04-23 2013-04-23 Recovering from compromised system boot code

Publications (2)

Publication Number Publication Date
TW201506675A TW201506675A (zh) 2015-02-16
TWI648652B true TWI648652B (zh) 2019-01-21

Family

ID=51792250

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103106565A TWI648652B (zh) 2013-04-23 2014-02-26 修復受危害之系統啓動碼之技術

Country Status (4)

Country Link
US (1) US9880908B2 (zh)
CN (1) CN105122261B (zh)
TW (1) TWI648652B (zh)
WO (1) WO2014175861A1 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144185B (zh) 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 验证控制器代码和系统启动代码
TW201616273A (zh) * 2014-10-30 2016-05-01 鴻海精密工業股份有限公司 電腦bios資料恢復系統及方法
CN105607929B (zh) * 2015-12-18 2019-02-19 合肥联宝信息技术有限公司 对计算机设备上的ec进行烧录的系统及方法
CN105446322B (zh) * 2015-12-21 2019-03-01 浙江中控研究院有限公司 一种控制代码异常检测方法及装置
US10885196B2 (en) 2016-04-29 2021-01-05 Hewlett Packard Enterprise Development Lp Executing protected code
TWI607381B (zh) * 2016-08-10 2017-12-01 神雲科技股份有限公司 用於電腦裝置的系統資訊存取方法
US10241803B2 (en) * 2016-10-03 2019-03-26 Schneider Electric It Corporation System and method for updating device software
CN106569912B (zh) * 2016-11-02 2020-08-11 惠州Tcl移动通信有限公司 一种移动终端恢复出厂设置的方法及系统
CN106648632A (zh) * 2016-12-02 2017-05-10 英业达科技有限公司 计算机系统
CN106874801B (zh) * 2017-01-20 2020-04-03 维沃移动通信有限公司 一种数据处理方法及移动终端
US10997296B2 (en) * 2017-03-22 2021-05-04 Oracle International Corporation System and method for restoration of a trusted system firmware state
DE102017207871A1 (de) * 2017-05-10 2018-11-15 Tridonic Gmbh & Co Kg Firmware-Update-Over-The Air (FOTA) in der Gebäudetechnik
US10824724B2 (en) * 2017-06-02 2020-11-03 Dell Products, L.P. Detecting runtime tampering of UEFI images in an information handling system
US10540501B2 (en) * 2017-06-02 2020-01-21 Dell Products, L.P. Recovering an information handling system from a secure boot authentication failure
US10802916B2 (en) * 2017-08-04 2020-10-13 Dell Products, L.P. System and method to enable rapid recovery of an operating system image of an information handling system after a malicious attack
US10534936B2 (en) * 2017-08-30 2020-01-14 Dell Products, Lp System and method for enabling and disabling of baseboard management controller configuration lockdown
US10715321B2 (en) 2017-12-22 2020-07-14 Micron Technology, Inc. Physical unclonable function using message authentication code
US10906506B2 (en) 2017-12-28 2021-02-02 Micron Technology, Inc. Security of user data stored in shared vehicles
US10924277B2 (en) * 2018-01-25 2021-02-16 Micron Technology, Inc. Certifying authenticity of stored code and code updates
US10778661B2 (en) 2018-04-27 2020-09-15 Micron Technology, Inc. Secure distribution of secret key using a monotonic counter
KR102612842B1 (ko) * 2018-09-17 2023-12-13 에스케이하이닉스 주식회사 메모리 시스템 내 펌웨어를 유지하는 방법 및 장치
US11100228B2 (en) * 2018-10-25 2021-08-24 Dell Products, L.P. System and method to recover FPGA firmware over a sideband interface
US10795746B2 (en) 2018-12-13 2020-10-06 Micron Technology, Inc. Automated power down based on state of firmware
US10853179B2 (en) * 2018-12-21 2020-12-01 Dell Products L.P. Information handling system and method for restoring firmware in one or more regions of a flash memory device
US11550593B2 (en) * 2019-01-08 2023-01-10 Dell Products L.P. Information handling system quick boot
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11947675B2 (en) * 2019-02-11 2024-04-02 Hewlett-Packard Development Company, L.P. Restoration of firmware subsystems based on manufacturing states
US11029965B2 (en) * 2019-03-15 2021-06-08 Intel Corporation Booting firmware from expansion block storage devices
TWI751962B (zh) * 2019-04-07 2022-01-01 新唐科技股份有限公司 安全裝置、安全方法、安全系統以及安全設備
JP7184188B2 (ja) * 2019-06-27 2022-12-06 京セラドキュメントソリューションズ株式会社 画像形成装置、ファームウェアの改竄防止方法及び改竄防止プログラムを記憶したコンピューター読取可能な非一時的な記録媒体
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
CN112817619B (zh) * 2019-11-17 2023-07-28 新唐科技股份有限公司 电脑系统及其安全管理方法以及电脑软件产品
US11385902B2 (en) * 2019-11-17 2022-07-12 Nuvoton Technology Corporation Secure firmware management with hierarchical boot sequence using last known good firmware
WO2021194501A1 (en) * 2020-03-27 2021-09-30 Hewlett-Packard Development Company, L.P. Alternate operating systems
US20200226260A1 (en) * 2020-03-27 2020-07-16 Intel Corporation Firmware resiliency mechanism
JP2022071954A (ja) 2020-10-29 2022-05-17 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
US11928217B2 (en) 2020-11-18 2024-03-12 Canon Kabushiki Kaisha Information processing apparatus, control method of information processing apparatus, and storage medium
US20220197746A1 (en) * 2020-12-18 2022-06-23 Advanced Micro Devices, Inc. Combination bios with a/b recovery
JP2022135443A (ja) * 2021-03-05 2022-09-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11907071B2 (en) * 2022-05-09 2024-02-20 Dell Products L.P. Storage failover protocol for secure and seamless extended firmware load

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033954A1 (en) * 2003-08-05 2005-02-10 Cheng-Fan Wang Computer system having BIOS with multiple memory block
US20060225067A1 (en) * 2005-04-05 2006-10-05 Inventec Corporation Method for automatically updating and backing up the BIOS
US20110009374A1 (en) * 2009-07-09 2011-01-13 Keller Brian C Method of wound healing and scar modulation
US20120072897A1 (en) * 2010-09-20 2012-03-22 American Megatrends, Inc. Microcontroller firmware running from ram and applications of the same

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 日本電気通信システム株式会社 コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法
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
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エレクトロニクス株式会社 コンピュータ
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US7676640B2 (en) * 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
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 フラッシュ・マイコンにおけるプログラム書き換え方法
US6651188B2 (en) * 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
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 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
EP1372068A3 (en) * 2002-06-11 2006-02-08 Seiko Epson Corporation System, method and program for rewriting a flash memory
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
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
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
CN1799028A (zh) * 2003-06-03 2006-07-05 皇家飞利浦电子股份有限公司 从非易失性存储器引导
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
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
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
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
US7734945B1 (en) * 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
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)
CN100395733C (zh) * 2006-08-01 2008-06-18 浪潮齐鲁软件产业有限公司 提高金融税控专用soc芯片安全性的方法
TW200809611A (en) * 2006-08-11 2008-02-16 Quanta Comp Inc Embedded system and the boot code auto-copy method
US7908470B1 (en) * 2006-10-31 2011-03-15 Hewlett-Packard Development Company, L.P. Multi-processor computer with plural boot memories
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
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
US8798806B2 (en) 2007-04-30 2014-08-05 Hewlett-Packard Development Company, L.P. Electronic device thermal management system and method
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
TWI362588B (en) * 2007-10-12 2012-04-21 Asustek Comp Inc Monitor apparatus, a monitoring method thereof and computer apparatus therewith
CN101458648A (zh) * 2007-12-12 2009-06-17 鸿富锦精密工业(深圳)有限公司 双bios电路
US8392762B2 (en) * 2008-02-04 2013-03-05 Honeywell International Inc. System and method for detection and prevention of flash corruption
TWI366135B (en) * 2008-03-26 2012-06-11 Asustek Comp Inc Method for restoring bios and computer thereof
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
TWI460657B (zh) * 2008-09-05 2014-11-11 Asustek Comp Inc 更新與修復基本輸入輸出系統的方法
US20100082960A1 (en) 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
TWI382346B (zh) * 2008-10-20 2013-01-11 Asustek Comp Inc 保護雙基本輸出入系統程式之電腦系統及其控制方法
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
TWI399647B (zh) * 2009-10-15 2013-06-21 Wistron Corp 回復電腦系統之基本輸出入系統之方法及相關電腦系統
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
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
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
US8732527B2 (en) 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
JP5476363B2 (ja) 2011-12-19 2014-04-23 レノボ・シンガポール・プライベート・リミテッド 生体認証装置を利用したコンピュータの起動方法およびコンピュータ
KR101994811B1 (ko) * 2012-03-04 2019-07-01 삼성전자주식회사 전자 장치, mbr 복원 방법 및 컴퓨터 판독가능 기록매체
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
CN105308609B (zh) * 2013-04-23 2017-12-29 惠普发展公司,有限责任合伙企业 存储事件数据的系统和方法
US9785596B2 (en) * 2013-04-23 2017-10-10 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory
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 電腦開機啟動偵測系統及方法
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
EP3201763A4 (en) * 2015-01-29 2018-07-11 Hewlett-Packard Development Company, L.P. Resuming a system-on-a-chip device
US9740866B2 (en) * 2015-06-10 2017-08-22 The Boeing Company Automatic measuring boot process using an automatic measuring processor coupled to a memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033954A1 (en) * 2003-08-05 2005-02-10 Cheng-Fan Wang Computer system having BIOS with multiple memory block
US20060225067A1 (en) * 2005-04-05 2006-10-05 Inventec Corporation Method for automatically updating and backing up the BIOS
US20110009374A1 (en) * 2009-07-09 2011-01-13 Keller Brian C Method of wound healing and scar modulation
US20120072897A1 (en) * 2010-09-20 2012-03-22 American Megatrends, Inc. Microcontroller firmware running from ram and applications of the same

Also Published As

Publication number Publication date
TW201506675A (zh) 2015-02-16
US20160055068A1 (en) 2016-02-25
CN105122261B (zh) 2020-04-24
US9880908B2 (en) 2018-01-30
WO2014175861A1 (en) 2014-10-30
CN105122261A (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
TWI648652B (zh) 修復受危害之系統啓動碼之技術
US11520894B2 (en) Verifying controller code
US9785596B2 (en) Redundant system boot code in a secondary non-volatile memory
US10089472B2 (en) Event data structure to store event data
CN103718165B (zh) Bios闪存攻击保护和通知
US9734339B2 (en) Retrieving system boot code from a non-volatile memory
TWI522838B (zh) 組配系統之技術
US9735960B2 (en) Method for protecting data stored within a disk drive of a portable computer
EP3028147B1 (en) Updating boot code
EP2989547B1 (en) Repairing compromised system data in a non-volatile memory
US10032029B2 (en) Verifying integrity of backup file in a multiple operating system environment

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees