TWI676889B - 開機啟動資料有效性技術 - Google Patents

開機啟動資料有效性技術 Download PDF

Info

Publication number
TWI676889B
TWI676889B TW107101714A TW107101714A TWI676889B TW I676889 B TWI676889 B TW I676889B TW 107101714 A TW107101714 A TW 107101714A TW 107101714 A TW107101714 A TW 107101714A TW I676889 B TWI676889 B TW I676889B
Authority
TW
Taiwan
Prior art keywords
nvram
boot
data structure
startup
validity
Prior art date
Application number
TW107101714A
Other languages
English (en)
Other versions
TW201837708A (zh
Inventor
克里斯多夫 H. 史圖華
Christopher H. Stewart
巴拉德哈倫 安巴拉根
Baraneedharan Anbazhagan
史考特 B. 馬卡克
Scott B. Marcak
羅西雷特 R. 布拉杜克
Rosilet Retnamoni BRADUKE
Original Assignee
美商惠普發展公司有限責任合夥企業
Hewlett-Packard Development Company, L.P.
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 美商惠普發展公司有限責任合夥企業, Hewlett-Packard Development Company, L.P. filed Critical 美商惠普發展公司有限責任合夥企業
Publication of TW201837708A publication Critical patent/TW201837708A/zh
Application granted granted Critical
Publication of TWI676889B publication Critical patent/TWI676889B/zh

Links

Classifications

    • 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/575Secure boot
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

本文描述與開機啟動資料有效性相關聯的範例。一範例包括判定NVRAM開機啟動資料結構是否為有效。當該NVRAM開機啟動資料結構為有效,則將NVRAM開機啟動資料結構有效性旗標設定成指出該開機啟動資料結構為無效。在抵達啟動程序中指出該啟動程序將會成功地完成的一時刻時,此有效性旗標被設定成指出該NVRAM開機啟動資料結構為有效。當該NVRAM開機啟動資料結構為無效時,該NVRAM開機啟動資料結構中所識別的錯誤被修復,以及重新開始該啟動程序。

Description

開機啟動資料有效性技術
本發明大體上係有關於開機啟動資料有效性技術。
當一系統啟動時,該系統最終從基本輸入/輸出系統(BIOS)模式轉換到作業系統模式。在BIOS模式下,系統會進行幾次完整性(integrity)檢查,以確保系統能夠成功及安全地啟動到作業系統模式。其中一些檢查是針對儲存在系統的非依電性隨機存取記憶體(NVRAM)中的開機啟動資料。
依據本發明之一可行實施例,係特地提出一種電腦可讀媒體,該電腦可讀媒體儲存有由處理器於一啟動程序期間執行的處理器可執行指令,此等指令控制該處理器進行以下動作:在判定一非依電性隨機存取記憶體(NVRAM)開機啟動有效性旗標指出有效的NVRAM開機啟動資料結構時:設定此NVRAM開機啟動有效性旗標成指出該NVRAM開機啟動資料結構為無效;及在抵達該啟動程序中指出該啟動程序將會成功地完成的一時刻時,設定該NVRAM開機啟動有效性旗標成指出該NVRAM開機啟動資料結構為有效;及在判定該NVRAM開機啟動有效性旗標指出無效的NVRAM開機啟動資料結構時:修復在該NVRAM開機啟動資料結構中所識別的錯誤;及在該NVRAM開機啟動資料結構中的錯誤被修復時,重新開始該啟動程序。
本文描述與開機啟動資料有效性相關聯的系統、方法和等效者。如上所述,在系統的啟動過程中會進行許多次完整性檢查,以確保能成功及安全地將該系統啟動到可供此系統設計之對象的使用者操作的模式。雖然個別的檢查可能只花很少的時間,但最終這些檢查仍可能會在系統啟動過程中增加達致明顯的延遲。此外,常有完整性檢查未發現錯誤的情況。因此,可能期望在每次系統的啟動期間跳過檢查,但仍然可追踪查看是否出現問題,從而可以執行完全的完整性檢查。
因此,為能跳過非依電性隨機存取記憶體(NVRAM)開機啟動資料結構完整性檢查,本文揭露的系統和方法教示使用以基本輸入/輸出系統(BIOS)可存取的方式儲存、且允許追踪系統最近一次啟動是否成功的旗標或其它有效性指標。在啟動期間,此有效性指標被檢查,而且當有效性指標指出該NVRAM開機啟動資料結構為有效時,完整性檢查則於此次啟動被跳過。反之,該有效性指標被設置成指出NVRAM開機啟動資料結構是無效的,直到系統達到其啟動過程中本身可用作為該NVRAM開機啟動資料結構為有效的證據的時刻為止。到達此執行時刻後,該有效性指標可以恢復到指出NVRAM開機啟動資料結構有效的狀態,以及該系統可以完成啟動。
如果系統反而在其啟動過程中當機,則該NVRAM有效性指標可以將其無效狀態維持到下一次的啟動,此時該有效性指標可以指出該NVRAM開機啟動資料結構可能是無效的。這樣就可以促動NVRAM開機啟動資料結構的徹底的完整性檢查,此時如果檢測到該NVRAM開機啟動資料結構有損壞,則可以對NVRAM開機啟動資料及/或其結構進行修復。
圖1繪示出與開機啟動資料有效性相關聯的範例系統。應知,圖1中所描繪的項目為例示性範例,以及許多不同的系統、裝置等等可以根據各種範例來操作。當系統100啟動時,系統100會經歷一系列的階段,直到例如載入作業系統以及進入其一般操作可以開始的模式為止。這些階段之一可以是基本輸入/輸出系統(BIOS)階段,在此BIOS階段期間,與控制各種運算元件相關聯的啟動指令被載入,以及作業系統被載入和準備啟始。由BIOS載入的一些開機啟動資料可以儲存在非依電性隨機存取記憶體(NVRAM)資料儲存器120中。儲存在NVRAM中的開機啟動資料120可以包括各種BIOS特定持久資料,包括與啟動系統100相關聯的指令和組態。在一些範例中,此NVRAM開機啟動資料120可以儲存在包括描述NVRAM開機啟動資料結構120的特徵的標頭、以及各種原子NVRAM開機啟動資料的連結列表之資料結構中,該等原子NVRAM開機啟動資料的連結列表有時稱為可延伸韌體介面EFI變數。NVRAM開機啟動資料120的其它資料結構可以在其他狀況下使用。
標頭和EFI變數兩者都可能受到惡意實體的攻擊,而可能導致系統100的損害。因此,一些系統100可能包括在啟動期間使用NVRAM開機啟動資料120之前,用來判定NVRAM開機啟動資料120是否未被危害的各種檢查。這些有效性檢查之一可以由有效性檢查模組130針對資料結構本身來進行。當有效性檢查模組130檢測到損壞時,NVRAM修復模組140能夠將NVRAM開機啟動資料120回復到已知的有效狀態。然而,在啟動過程中執行的每個有效性檢查會花費時間進行預先成形,以及可能需要減少整體啟動時間,因為使用者不喜歡在開啟裝置電源之後等待裝置啟動。
因此,系統100包括安全儲存器110,其含有指出NVRAM開機啟動資料結構是否有效的有效性指標。安全儲存器110可以是例如互補金屬氧化物半導體(CMOS)積體電路。在其他範例中,安全儲存器110可以是安全嵌入式控制器,該安全嵌入式控制器使用專用安全設置用於儲存特別敏感資料用來防止惡意攻擊及/或非惡意錯誤對系統100發生損害或危害。例如,將有效性指標儲存在安全儲存器110中,能有助於從因啟動失敗、NVRAM更新期間的電源故障等等,而導致在系統100的啟動期間使用的資料之非惡意破壞而生的資料損壞中恢復。
當有效性指標在啟動期間指出NVRAM開機啟動資料結構是有效的時,有效性檢查模組130可以啟用啟動模組150,該啟動模組150即可以開始進行系統100之啟動。然而,為了檢測該NVRAM開機啟動資料結構的損壞是否已經出現,啟動模組150可以先設定該有效性指標來指出該NVRAM開機啟動資料結構是無效的。在到達指出系統100的啟動將會成功的啟動過程中之執行時刻時,啟動模組150即可以把有效性指標設定回來表示NVRAM開機啟動資料結構是有效的。這可確保有效性檢查模組130看到NVRAM開機啟動資料在系統100下一次啟動期間為有效的。範例執行時刻可包括例如在將系統100的控制交給作業系統之前、驅動程式執行環境階段的完成等等。
在啟動失敗的情況下,啟動模組150可能不會到達觸發將有效性指標恢復到指出該NVRAM開機啟動資料結構為有效的狀態之動作的執行時刻。因此,在故障之後下一次系統100啟動時,有效性檢查模組130可以看到NVRAM開機啟動資料結構可能是無效的。這可使得有效性檢查模組130執行該NVRAM開機啟動資料結構的檢查,以及在檢測到NVRAM開機啟動資料結構的損壞的情況下觸發NVRAM修復模組140。NVRAM修復模組140接著可以藉由將NVRAM開機啟動資料120或其一部分恢復到已知的有效的先前狀態來修補開機啟動資料結構中的錯誤。
值得認知的是,跳過NVRAM開機啟動資料結構的完整性檢查與跳過NVRAM開機啟動資料120本身的完整性檢查是不同的。檢查該NVRAM開機啟動資料的完整性看看有無損壞的項目,可為一個用來確保恰當的啟動、安全等等的各別步驟,當該有效性指標指出NVRAM開機啟動資料結構為有效時,並不會跳過該步驟。當NVRAM開機啟動資料結構損壞時,由於可能有一段資料沒有達到,啟動動作最終可能會停擺,以及上述技術可能在下一次系統啟動時檢測到此故障。當NVRAM開機啟動資料120本身被惡意攻擊危害時,攻擊者可能會取得系統100的控制權及/或從系統100竊取資料。檢查NVRAM開機啟動資料120的操作本身可包括一些動作,此等動作係於啟動模組150將資料儲存器110中的有效性指標設定為無效狀態、和啟動模組150在其到達啟動過程中指出系統100啟動成功的執行時刻時將有效性指標設定為有效狀態之間執行。實際上,啟動模組150將到達啟動過程中的此執行時刻視為NVRAM開機啟動資料結構有效的暗示性證明,並且啟動過程不需要重新啟動來讓該NVRAM開機啟動資料結構可以被修復。
在一些範例中,儘管安全儲存器110中的該有效性指標指出NVRAM開機啟動資料結構是有效的,可能期望有效性檢查模組驗證該NVRAM開機啟動資料結構。例如當安全儲存器110是CMOS時,可能由於例如惡意行為者、從系統100移除CMOS電池等等而損壞CMOS。為了檢查出無效的CMOS,有效性檢查模組可以針對CMOS計算查核和以及將其與CMOS中儲存的查核和進行比較。如果它們不匹配,則有效性檢查模組130可花費時間來驗證該NVRAM開機啟動資料結構的完整性。或者,試圖阻止系統100被使用的複雜的拒絕服務型攻擊可能會操縱完整性值,同時維持損壞的NVRAM開機啟動資料結構。因此,有效性檢查模組130可以在系統100電源開啟之後花費短暫的一段時間週期,監控打算要觸發NVRAM開機啟動資料結構的更徹底檢查的使用者輸入。當檢測到此種使用者輸入時,有效性檢查模組130可以驗證NVRAM開機啟動資料結構。該使用者輸入可以是例如雙擊系統100的電源按鈕、附接到系統100的鍵盤按鍵的按壓組合等等。包括這種類型的使用者輸入監控能有助於使用技術支援服務來解開當掉的系統而不用更換系統100的實體元件。
應該理解的是,在以下描述中,列舉了許多具體的細節以供徹底理解此等範例。然而,可以理解的是,這些範例可以在不限於這些具體細節的狀況下實行。在其他情況下,方法和結構可能不會詳細描述,以避免範例的描述被不必要地模糊了。另外,該等範例可以互相組合使用。
當在本文中使用時,“模組”可包括但不限於硬體、韌體、儲存在電腦可讀媒體上或在機器上執行的軟體、及/或每一個的組合,用來執行功能或動作,及/或促使來自另一個模組、方法及/或系統的功能或動作。模組可以包括軟體控制的微處理器、分立模組、類比電路、數位電路、程控模組裝置、含有指令的記憶體裝置等。模組可以包括閘、閘的組合或其他電路元件。在描述多個邏輯模組的情況下,可以將多個邏輯模組合併成一個實體模組。相似地,在描述到單一邏輯模組的情況下,可以將該單一邏輯模組分配給多個實體模組。
圖2繪示範例方法200。方法200可以體現在儲存有處理器可執行指令的非暫態處理器可讀媒體上。該等指令在由處理器執行時可以讓處理器執行方法200。在其它範例中,方法200能存在於特定應用積體電路(ASIC)的邏輯閘及/或RAM之中。
方法200可以執行與開機啟動資料有效性相關聯的各種工作。在各種範例中,方法200可以由在基本輸入/輸出系統(BIOS)模式下操作的系統或裝置來執行,而作為用以啟始該系統或裝置上的作業系統之啟動程序的一部分。方法200包括在動作210判定非依電性隨機存取記憶體(NVRAM)開機啟動有效性旗標是否指出有效的NVRAM開機啟動資料結構。該NVRAM開機啟動資料可以包括儲存有與啟動作業系統相關聯的NVRAM執行時期資料及組態的資料結構。在一些範例中,資料結構可以是標頭和連結列表。當此開機啟動有效性旗標指出有效的NVRAM開機啟動資料結構時,方法200會進行動作220,並設定該NVRAM開機啟動有效性旗標成指出該NVRAM開機啟動資料結構為無效。然後,方法200可以繼續進行啟動程序,直到達到啟動程序中指出該啟動程序將會成功的時刻為止。在動作230達到此時刻時,方法200會前進到動作240並設定該NVRAM開機啟動有效性旗標成指出該NVRAM開機啟動資料結構為有效。而若該啟動程序失敗而未達到該啟動程序將會成功的時刻,則該NVRAM開機啟動有效性旗標將維持在指出該NVRAM開機啟動資料結構為無效的狀態。這會在隨後的啟動時促使不同的動作被採取。
例如若在動作210判定NVRAM開機啟動有效性旗標指出無效的NVRAM開機啟動資料結構,則方法200可以前進到動作250並修復在NVRAM開機啟動資料結構中所識別的錯誤。修復該等錯誤可能包括例如藉由取代至少一部份的NVRAM開機啟動資料來恢復該NVRAM開機啟動資料到已知的先前有效狀態。方法200接著可進行動作260並重新開始啟動程序。
在某些範例中,啟動程序可能只會在NVRAM開機啟動資料中的錯誤被修復時被重新開始。因此,在某些範例中,動作250可包括檢查NVRAM開機啟動資料結構找出錯誤的檢驗階段,接著才是修復那些錯誤的修復階段。當沒有發現錯誤時,方法200即可繼續進行(例如隨著啟動程序到動作210,直到抵達啟動將會成功的時刻),就好像該NVRAM開機啟動有效性旗標指出有效的NVRAM開機啟動資料結構一樣。或者,當沒有發現錯誤時,該NVRAM開機啟動有效性旗標可被設定成指出該NVRAM開機啟動資料結構為有效,且啟動程序可以繼續進行。
圖3繪示出與開機啟動資料有效性相關聯的方法300。方法300包括於動作330判定有效性指標的狀態。該有效性指標可以指出系統的非依電性隨機存取記憶體(NVRAM)開機啟動資料結構之有效性。該有效性指標可儲存於例如互補式金屬氧化物半導體(CMOS)積體電路、安全儲存器等等上。該NVRAM開機啟動資料可以包括與把儲存在該系統中之作業系統啟動起來相關聯的NVRAM執行時期資料及組態的資料結構(例如頭標和連結列表)。當該有效性指標的狀態具有第一狀態時,方法300會前進到動作340,並將該有效性指標的狀態設定成第二狀態。方法300接著前進到動作345,並繼續使用該NVRAM開機啟動資料來進行系統的開機啟動動作。當該系統的開機啟動動作到達指出其將會成功的時刻時,方法300可以前進到動作350並將有效性指標設定回第一狀態。方法300接著即可於動作355完成該系統的開機啟動。
當該有效性指標的狀態於動作330中被發現有該第二狀態時,方法300即可以前進到動作360並判定該NVRAM開機啟動資料結構是否有效。當該NVRAM開機啟動資料結構於動作360中被發現是有效時,則方法300即可以前進到動作340,並好像該指標的狀態有該第一狀態一樣地繼續進行。當該NVRAM開機啟動資料結構於動作360中被發現是無效(例如由於損壞),方法300即可前進到動作370並將該NVRAM開機啟動資料回復到已知的有效狀態。方法300接著即可於動作380把該系統重新開機啟動。
圖4繪示出與開機啟動資料有效性相關聯的方法400。方法400包括相似於上文針對方法300(圖3)所述者的數個動作。例如方法400包括於動作430中判定有效性指標的狀態、於動作440中設定該有效性指標成第二狀態、於動作445中繼續進行到經過指出開機啟動將會成功的時刻、於動作450中設定該有效性指標成第一狀態、及於動作455中完成該開機啟動動作。當該有效性指標在動作430中被發現處於該第二狀態時,則方法400也於動作460中包括使該NVRAM開機啟動資料結構有效化、於動作470中回復NVRAM開機啟動資料到已知的有效狀態、以及於動作480中把系統重新開機啟動。方法400也包括在動作475中於回復該NVRAM開機啟動資料到已知的有效狀態之後,設定該指標的狀態到該第一狀態。
方法400也包括於動作420中額外的有效性檢查。例如若執行方法400之系統依賴用以儲存有效性指標的CMOS晶片,則方法400包括於動作410中計算CMOS完整性值。該CMOS完整性值接著會於動作420中與查核和進行比較。若CMOS完整性值與該查核和匹配,則方法400會前進到動作430並如上所述的來檢查有效性指標的狀態。若此完整性值與該查核和不匹配,則會認為該NVRAM開機啟動資料結構必須被檢查,且因此方法400可前進到動作460並使該NVRAM開機啟動資料結構有效化。雖然不匹配的查核和可能有良性的原因(例如CMOS的電源故障),在其它範例中不匹配的查核和也可能指出有對NVRAM的攻擊,而可能致使要對該NVRAM開機啟動資料結構的完整性作檢查。相似地,於動作420中方法400可尋找指出使用者試圖讓該NVRAM開機啟動資料結構有效化的使用者輸入。當接收到該使用者輸入時,方法400即可前進到動作460;且若未接收到該使用者輸入,則方法400可前進到動作430。這會有助於解決當該NVRAM開機啟動資料結構實際上係被危害時,卻把該有效性指標設定成指出該NVRAM開機啟動資料結構為有效的某些攻擊。
圖5繪示出與開機啟動資料有效性相關聯的系統500。系統500包括第一資料儲存器510。第一資料儲存器510可以用一NVRAM開機啟動資料結構來儲存一組非依電性隨機存取記憶體(NVRAM)開機啟動資料。
系統500也包括第二資料儲存器520。第二資料儲存器520可以儲存用於該NVRAM開啟啟動資料結構的有效性指標。第二資料儲存器520可能為例如互補式金屬氧化物半導體(CMOS)積體電路、嵌入式控制器及安全儲存器等等。
系統500也包括開機啟動模組530。開機啟動模組530可以將第二資料儲存器520中的該有效性指標設定成無效狀態。開機啟動模組530可以繼續進行系統500的開機啟動至已知的執行點。該系統的開機啟動動作可以使用來自第一資料儲存器510的該NVRAM開機啟動資料。抵達該已知的執行點,可以指出該NVRAM開機啟動資料結構的有效性。在抵達該已知的執行點之後,開機啟動模組530可以設定該有效性指標為有效狀態,然後完成系統500的開機啟動動作。在一個範例中,指出該NVRAM開機啟動資料結構的有效性之該已知的執行點,可以為系統500的開機啟動動作的驅動機執行環境階段之完成。
系統500也包括NVRAM修復模組540。NVRAM修復模組540可以將第一資料儲存器510中的該NVRAM開機啟動資料回復到已知的有效狀態。然後NVRAM修復模組即可讓系統500重新開機啟動。
系統500也包括NVRAM有效性檢查模組550。NVRAM有效性檢查模組可以使第一資料儲存器510中的該NVRAM開機啟動資料結構有效化。當該NVRAM開機啟動資料結構被NVRAM有效性檢查模組550發現係無效時,NVRAM有效性檢查模組550即可起動NVRAM修復模組540。當該NVRAM開機啟動資料結構被發現為有效時,NVRAM有效性檢查模組550即可起動開機啟動模組530。
系統500也包括旗標檢查模組560。在該系統的開機啟動期間,當第二資料儲存器520中的該有效性指標具有無效狀態時,旗標檢查模組560即可起動NVRAM有效性檢查模組550。當該有效性指標具有有效狀態時,旗標檢查模組560則可以換成起動開機啟動模組530。
在某些範例中,系統500也可以包括中斷模組(未圖示)。響應於使用者輸入,該中斷模組可以控制NVRAM有效性檢查模組的起動。該輸入可例如經由系統500的電源按鈕來接收。
圖6繪示出可讓前述範例系統與方法及等效者用得上的範例運算裝置。該範例運算裝置可為包括藉由匯流排630連接的處理器610及記憶體620之電腦600。電腦600包括開機啟動資料有效性模組640。開機啟動資料有效性模組640可以單獨或組合執行上文針對該等範例系統、方法等等所述之各種功能。在不同的範例中,開機啟動資料有效性模組640可以作為儲存處理器可執行指令之非暫態電腦可讀媒體用硬體、軟體、韌體、特定應用積體電路及/或其組合予以實施。
該等指令也可以當作資料650及/或程序660被呈送到電腦600,它們被暫時地儲存在記憶體620中,以及會接著由處理器610來執行。該處理器610可以為包括雙微處理器及其它多重處理器架構的多種處理器。記憶體620可包括非依電性記憶體(例如唯讀記憶體)及/或依電性記憶體(例如隨機存取記憶體)。記憶體620也可為例如磁碟驅動機、固態硬碟機、軟式磁碟機、磁帶驅動機、快閃記憶卡及光碟等等。因此,記憶體620可以儲存程序660及/或資料650。電腦600也可與包括其他電腦、裝置及周邊設備等等的其它裝置以許多種組態(未圖示)相聯結。
應該理解的是,所揭露之範例的以上描述內容係提供來使任何熟於此技者可製造或使用本揭露內容。針對這些範例的各種修改將可為熟於此技者明顯看出,而且本文定義的廣義原理可以在不違反本揭露內容的精神或範圍之情況下被應用於其它範例。因此,本揭露內容不打算限制於本文所示之該等範例,而是要給予符合本文所揭露之原理及新穎特徵的最廣泛範圍。
100、500‧‧‧系統
110‧‧‧安全儲存器/資料儲存器
120‧‧‧NVRAM資料儲存器/NVRAM開機啟動資料(結構)
130‧‧‧有效性檢查模組
140‧‧‧NVRAM修復模組
150‧‧‧啟動模組
200、300、400‧‧‧方法
210、220、230、240、250、260、330、340、345、350、355、360、370、380、410、420、430、440、445、450、455、460、470、475、480‧‧‧動作
510‧‧‧第一資料儲存器
520‧‧‧第二資料儲存器
530‧‧‧開機啟動模組
540‧‧‧NVRAM修復模組
550‧‧‧NVRAM有效性檢查模組
560‧‧‧旗標檢查模組
600‧‧‧電腦
610‧‧‧處理器
620‧‧‧記憶體
630‧‧‧匯流排
640‧‧‧開機啟動資料有效性模組
650‧‧‧資料
660‧‧‧程序
本申請案搭配結合附圖所進行的下列詳細描述,即可以更充分地理解。
圖1繪示與開機啟動資料有效性相關聯的範例裝置。
圖2繪示與開機啟動資料有效性相關聯的範例系統的範例操作之流程圖。
圖3繪示與開機啟動資料有效性相關聯的範例操作之另一個流程圖。
圖4繪示與開機啟動資料有效性相關聯的範例操作之另一個流程圖。
圖5繪示與開機啟動資料有效性相關聯的範例系統。
圖6繪示可以供範例系統與方法、以及等效者發揮作用的範例運算裝置。

Claims (15)

  1. 一種儲存有處理器可執行指令之電腦可讀媒體,該等指令在由處理器於一啟動程序期間執行時,控制該處理器進行下列動作:在判定一非依電性隨機存取記憶體(NVRAM)開機啟動有效性旗標指出有效的NVRAM開機啟動資料結構時:設定此NVRAM開機啟動有效性旗標成指出該NVRAM開機啟動資料結構為無效;及在抵達該啟動程序中指出該啟動程序將會成功地完成的時刻時,設定該NVRAM開機啟動有效性旗標成指出該NVRAM開機啟動資料結構為有效,及在判定該NVRAM開機啟動有效性旗標指出無效的NVRAM開機啟動資料結構時:修復在該NVRAM開機啟動資料結構中所識別的錯誤;及在該NVRAM開機啟動資料結構中的一錯誤被修復時,重新開始該啟動程序。
  2. 如請求項1之電腦可讀媒體,其中該等指令控制該處理器在該NVRAM開機啟動資料結構中未識別出錯誤時,恰如該NVRAM開機啟動有效性旗標指出有效的NVRAM開機啟動資料結構地繼續進行。
  3. 如請求項1之電腦可讀媒體,其中該NVRAM開機啟動資料結構為用來儲存與藉由該處理器啟動一作業系統相關聯的NVRAM執行時期資料及組態之一資料結構。
  4. 如請求項1之電腦可讀媒體,其中修復該NVRAM開機啟動資料結構中的錯誤,包括回復該NVRAM開機啟動資料到一已知的有效狀態。
  5. 一種與開機啟動資料有效性相關聯之方法,包含:當一系統的非依電性隨機存取記憶體(NVRAM)開機啟動資料結構的一有效性指標之一狀態具有一第一狀態時:設定該有效性指標之該狀態成一第二狀態;使用該開機啟動資料結構中的NVRAM開機啟動資料來繼續進行該系統之開機啟動動作,直到通過指出該系統之開機啟動將會成功的時刻;設定該有效性指標的該狀態成該第一狀態;及完成該系統之開機啟動,及當該有效性指標之該狀態具有該第二狀態時:將該NVRAM開機啟動資料結構有效化;當該NVRAM開機啟動資料結構之有效化指出有效的NVRAM開機啟動資料結構時,恰如該有效性指標的狀態具有該第一狀態一樣地繼續進行;以及當該NVRAM開機啟動資料結構之有效化指出該NVRAM開機啟動資料結構的損壞時,回復該NVRAM開機啟動資料結構到一已知的有效狀態並將該系統重新開機啟動。
  6. 如請求項5之方法,包含:在回復該NVRAM開機啟動資料結構到該已知的有效狀態之後,設定該有效性指標的狀態成該第一狀態。
  7. 如請求項5之方法,其中該NVRAM開機啟動資料結構包含用來儲存與將該系統中所儲存之一作業系統開機啟動之動作相關聯的NVRAM執行時期資料及組態的一標頭和一連結列表。
  8. 如請求項5之方法,其中該有效性指標係儲存在一互補式金屬氧化物半導體(CMOS)積體電路中。
  9. 如請求項8之方法,包含:該算該CMOS積體電路的一完整性值;及當有該完整性值未與針對該CMOS所儲存的一查核和匹配、及收到控制該NVRAM開機啟動資料結構之有效化的一使用者輸入這兩種狀況之一時,恰如該指標具有該第二狀態地繼續進行。
  10. 如請求項5之方法,其中該指標係儲存在一安全儲存器中。
  11. 一種與開機啟動資料有效性相關聯之系統,包含:一第一資料儲存器,用於以一NVRAM開機啟動資料結構儲存一組NVRAM開機啟動資料;一第二資料儲存器,用以儲存用於該NVRAM開機啟動資料結構的一有效性指標;一開機啟動模組,用以將該有效性指標設定成一無效狀態、繼續進行該系統之開機啟動動作至指出該NVRAM開機啟動資料結構的有效性之一已知的執行時刻、將該有效性指標設定成一有效狀態、以及完成該系統的開機啟動動作;一NVRAM修復模組,用以將該NVRAM開機啟動資料回復至一已知的有效狀態及將該系統重新開機啟動;一NVRAM有效性檢查模組,用以將該NVRAM開機啟動資料結構有效化、當該NVRAM開機啟動資料結構被發現為無效時啟始該NVRAM修復模組、以及當該NVRAM開機啟動資料結構被發現為有效時啟始該開機啟動模組;及一旗標檢查模組,用以在該系統的開機啟動期間該有效性指標具有該無效狀態時啟始該NVRAM有效性檢查模組,以及在該有效性指標具有該有效狀態時啟始該開機啟動模組。
  12. 如請求項11之系統,其中指出該NVRAM開機啟動資料結構的有效性之該已知的執行時刻,係為完成一驅動程式執行環境階段。
  13. 如請求項11之系統,其中該第二資料儲存器為互補式金屬氧化物半導體(CMOS)積體電路以及嵌入式控制器之一。
  14. 如請求項11之系統,其包含一中斷模組,用以響應於一使用者輸入而控制該NVRAM有效性檢查模組的啟始。
  15. 如請求項14之系統,其中該輸入係經由該系統的一電源按鈕來接收。
TW107101714A 2017-04-13 2018-01-17 開機啟動資料有效性技術 TWI676889B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
WOPCT/US17/27418 2017-04-13
PCT/US2017/027418 WO2018190846A1 (en) 2017-04-13 2017-04-13 Boot data validity
??PCT/US17/27418 2017-04-13

Publications (2)

Publication Number Publication Date
TW201837708A TW201837708A (zh) 2018-10-16
TWI676889B true TWI676889B (zh) 2019-11-11

Family

ID=63793502

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107101714A TWI676889B (zh) 2017-04-13 2018-01-17 開機啟動資料有效性技術

Country Status (3)

Country Link
US (1) US11163643B2 (zh)
TW (1) TWI676889B (zh)
WO (1) WO2018190846A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6775651B1 (ja) * 2019-08-07 2020-10-28 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、制御方法、及びプログラム
US11605095B1 (en) 2020-03-23 2023-03-14 Patreon, Inc. Systems and methods to facilitate resolution of work items in a fraud resolution workflow
US11836756B1 (en) 2021-12-17 2023-12-05 Patreon, Inc. Systems and methods to generate a user interface conveying subscriber behavior of subscribers within a membership platform

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
US20070174705A1 (en) * 2005-12-14 2007-07-26 Inventec Corporation Post (power on self test) debug system and method
TW200821822A (en) * 2006-11-15 2008-05-16 Inventec Corp Power on self test method
TW201333684A (zh) * 2012-01-03 2013-08-16 Hewlett Packard Development Co 於裝置初始化期間備份韌體之技術
TW201342049A (zh) * 2012-03-04 2013-10-16 Samsung Electronics Co Ltd 回存主開機記錄的電子裝置及其方法
CN105487956A (zh) * 2014-10-09 2016-04-13 纬创资通股份有限公司 开机自我测试中的除错方法及开机自我测试中的除错装置
TW201640363A (zh) * 2015-05-11 2016-11-16 廣達電腦股份有限公司 自動硬體恢復方法及自動硬體恢復系統

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355489A (en) * 1989-08-25 1994-10-11 International Business Machines Corp. Bios load for a personal computer system having a removable processor card
US6795835B2 (en) * 2000-05-19 2004-09-21 Centerbeam, Inc. Migration of computer personalization information
US6640316B1 (en) 2000-05-23 2003-10-28 Dell Products L.P. Boot recovery of simple boot BIOS
US7100031B1 (en) 2002-03-27 2006-08-29 Hewlett-Packard Development Company, L.P. Detector and operational method for a firmware interface
US7089414B2 (en) * 2003-04-10 2006-08-08 International Business Machines Corporation Method and apparatus for updating a microcode image in a memory
US7398382B2 (en) * 2004-12-29 2008-07-08 Intel Corporation Method and apparatus to enhance platform boot efficiency
CN100428157C (zh) 2005-10-19 2008-10-22 联想(北京)有限公司 一种可进行完整性检测的计算机系统和方法
GB0620928D0 (en) 2006-10-20 2006-11-29 Vodafone Plc Boot process
JP5519712B2 (ja) 2012-01-20 2014-06-11 レノボ・シンガポール・プライベート・リミテッド コンピュータをブートする方法およびコンピュータ
WO2014175866A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Retrieving system boot code from a non-volatile memory
US9886580B2 (en) 2014-12-23 2018-02-06 Dell Products, L.P. Method for optimizing boot time of an information handling system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
US20070174705A1 (en) * 2005-12-14 2007-07-26 Inventec Corporation Post (power on self test) debug system and method
TW200821822A (en) * 2006-11-15 2008-05-16 Inventec Corp Power on self test method
TW201333684A (zh) * 2012-01-03 2013-08-16 Hewlett Packard Development Co 於裝置初始化期間備份韌體之技術
TW201342049A (zh) * 2012-03-04 2013-10-16 Samsung Electronics Co Ltd 回存主開機記錄的電子裝置及其方法
CN105487956A (zh) * 2014-10-09 2016-04-13 纬创资通股份有限公司 开机自我测试中的除错方法及开机自我测试中的除错装置
TW201640363A (zh) * 2015-05-11 2016-11-16 廣達電腦股份有限公司 自動硬體恢復方法及自動硬體恢復系統

Also Published As

Publication number Publication date
WO2018190846A1 (en) 2018-10-18
TW201837708A (zh) 2018-10-16
US11163643B2 (en) 2021-11-02
US20210200640A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US11520894B2 (en) Verifying controller code
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
US9785596B2 (en) Redundant system boot code in a secondary non-volatile memory
TWI522838B (zh) 組配系統之技術
TWI676889B (zh) 開機啟動資料有效性技術
TWI672634B (zh) 基本輸入輸出系統(bios)保全技術
WO2014175861A1 (en) Recovering from compromised system boot code
WO2020239060A1 (zh) 错误恢复的方法和装置
WO2006086302A1 (en) Method and system for validating a computer system
CN107766102B (zh) 双基本输出入系统(bios)的开机方法及具有其的电子装置
US20090271660A1 (en) Motherboard, a method for recovering the bios thereof and a method for booting a computer
WO2016206514A1 (zh) 启动处理方法及装置
US11599426B2 (en) Recovery via backups of recovery information
US8838952B2 (en) Information processing apparatus with secure boot capability capable of verification of configuration change
US9448888B2 (en) Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
CN110334486B (zh) 应用程序完整性校验方法及设备
JP2020095470A (ja) 情報処理装置及びその制御方法
JP5561791B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US20200159929A1 (en) Basic input/output system updates
US9766928B1 (en) Recycling tool using scripts to stop middleware instances and restart services after snapshots are taken
US20220261316A1 (en) Information processing apparatus
CN117648697A (zh) 一种固件管理方法、装置、设备及机器可读存储介质
CN117093399A (zh) 系统启动方法、片上系统、计算机设备及存储介质
JPH02183821A (ja) 外部情報記憶装置

Legal Events

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