TW202318196A - 韌體映像檢查系統、韌體映像檢查方法及電腦系統 - Google Patents

韌體映像檢查系統、韌體映像檢查方法及電腦系統 Download PDF

Info

Publication number
TW202318196A
TW202318196A TW111110793A TW111110793A TW202318196A TW 202318196 A TW202318196 A TW 202318196A TW 111110793 A TW111110793 A TW 111110793A TW 111110793 A TW111110793 A TW 111110793A TW 202318196 A TW202318196 A TW 202318196A
Authority
TW
Taiwan
Prior art keywords
firmware image
project name
firmware
bmc
bios
Prior art date
Application number
TW111110793A
Other languages
English (en)
Inventor
溫子恒
董彥屏
林威宏
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 TW202318196A publication Critical patent/TW202318196A/zh

Links

Images

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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • 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/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

一種用於確保電腦系統中正確韌體映像的執行的方法及系統。此電腦系統具有處理器,執行基本輸入/輸出系統(BIOS)及基板管理控制器(BMC)。第一快閃記憶體裝置耦接至處理器,其儲存BIOS韌體映像及專案名稱。第二快閃記憶體裝置耦接至BMC,其儲存BMC韌體映像及專案名稱。可程式化邏輯裝置耦接至第一及第二快閃記憶體裝置。可程式化邏輯裝置包括非揮發性記憶體,儲存專案名稱。可程式化邏輯裝置被配置為執行平台韌體保護與恢復(PFR)常式,以在處理器啟動BMC或執行BIOS韌體映像之前,將BIOS韌體映像的專案名稱及BMC韌體映像的專案名稱與儲存的專案名稱進行比較。

Description

韌體映像檢查系統、韌體映像檢查方法及電腦系統
總體而言,本揭露係關於在電腦系統啟動(boot-up)時,確保適當的韌體映像。特定而言,本揭露之各態樣係關於一種系統,其確保平台韌體保護與恢復(FPR)執行時,硬體平台上所存取的韌體正確。
電腦系統(例如桌上型電腦、刀鋒伺服器、機架伺服器等)在各種應用中被大量使用。電腦系統可進行一般的運算操作。典型的電腦系統(例如伺服器)一般而言包括硬體部件,例如處理器、記憶體裝置、網路介面卡、電源供應器、以及其他專用硬體。
伺服器被大量使用在高需求的應用中,例如基於網路(network based)的系統或資料中心。雲端(cloud)運算應用程式的出現,增加了對資料中心的需求。資料中心具有大量的伺服器,儲存資料並運行應用程式,由遠端連接的電腦裝置使用者存取。典型的資料中心具有實體的機殼(chassis)結構,並伴隨有電源及通訊連接。每一機架(rack)可固定多個運算伺服器及儲存伺服器。每一個別伺服器具有多個相同的硬體部件,例如處理器、儲存卡、網路介面控制器等。
電腦系統(例如伺服器)具有基本輸入/輸出系統(BIOS),通常儲存於序列周邊介面(SPI) 電子抹除式可複寫唯讀記憶體(EEPROM)型式的快閃記憶體(flash)中,並由處理器在電腦系統開機(start-up)時執行。BIOS被用於在電腦系統啟動(boot up)前測試來自硬體部件的基本輸入及輸出。BIOS韌體(firmware,或稱BIOS映像(image))通常儲存於主機板上的快閃記憶體中。
伺服器亦使用基板管理控制器(BMC)來管理背景運作,例如電源及散熱。BMC將電腦系統的運作資料收集至多個記錄(log)中。例如,關聯於不同硬體部件的資料,被儲存於系統事件記錄(SEL)中,該SEL亦可被寫入快閃記憶體裝置中。因此,嵌入式系統韌體(BMC韌體)亦儲存系統執行記錄,其有助於供應商在錯誤發生時分析系統狀況。因此,電腦系統依賴可靠的非揮發性記憶體裝置,例如快閃記憶體裝置,來儲存處理器及BMC基本運作的韌體映像。
由於伺服器通常連接至網路,因此惡意的使用者可能試圖以各種方式攻擊,以阻止伺服器正確運作。例如,永久阻斷服務(DOS)攻擊會改變伺服器的韌體,以阻止伺服器運作。此種攻擊可能導致資料中心數日至數週的停機時間(downtime),並可能影響數以百萬計的使用者。一種執行此種永久DOS攻擊的方法,包括攻擊者將關鍵系統(例如伺服器中的BIOS或BMC)的韌體映像替換為損毀的韌體映像的操作。
永久DOS攻擊的一種解決方案為平台韌體保護與恢復(PFR),其為英特爾(Intel)所提供的常式(routine),運作於現場可程式化邏輯閘陣列(FPGA)上。PFR監控並過濾電腦系統的系統匯流排上的惡意資訊流。PFR亦在任何韌體程式碼被執行之前,驗證(verify)平台韌體映像的完整性。PFR可自動將損毀的韌體回復為受保護的已知復原映像。因此,PFR可防止損毀韌體的插入,進而防止永久DOS攻擊。
當進行硬體平台的初始電源啟動(power-on)時,PFR進入啟動前(pre-boot)環境,稱為T-1模式。在T-1模式中,PFR透過簽章(signature),對關鍵韌體(例如BMC及BIOS的韌體映像)進行認證(authentication)。BMC及BIOS的韌體映像皆具有簽章,該等簽章由根金鑰(root key)及代碼簽章金鑰(code signing key、CSK)所認證。根金鑰為被指定為用於認證的主要及常數值的金鑰,用以對其他金鑰進行簽章,形成所有金鑰鏈(key chain)的根。此一配置提供二層安全性,因根金鑰被用於存取CSK。此種金鑰可由中立第三方(例如亞馬遜網路服務(AWS),須付費)所產生。然而,一問題為原始設備製造商(OEM)通常對用於不同硬體平台的多個版本的韌體使用相同的根金鑰及CSK,而非付出額外費用,以對每一硬體平台使用專用金鑰。通常,每一不同硬體平台會被給定不同的專案名稱(project name),供OEM識別平台之用。因此,對一特定硬體平台為不正確的韌體,仍可能具有正確的簽章以進行認證。當由相同根金鑰及CSK簽章的不同硬體平台,在平台上使用不正確的韌體映像時,PFR仍可成功進行認證,並允許不正確的韌體映像被存取。然而,載入不正確的韌體映像可能會阻止硬體平台成功啟動。相同的結果亦可能在使用不正確的專案韌體映像更新現有韌體映像時發生。
因此,吾人亟需一常式,其可使PFR得以在進行認證程序時,恰當地識別正確的韌體。吾人亦亟需一種便利的方法,以在進行平台的硬體配置(hardware provisioning)程序時,提供硬體平台的專案名稱至PFR。吾人亦亟需一種系統及方法,其使用專案名稱,確保韌體更新正確匹配韌體平台。
「實施例」一詞及相似之詞彙,例如「實施」、「配置」、「態樣」、「範例」及「選項」,乃意圖廣泛指稱本揭露及下列請求項之所有標的。包含此等詞彙之陳述,應被理解為並非用以限定本說明書中所述之標的、或用以限定下列請求項的意義或範圍。本揭露所涵蓋的各實施例乃由下列請求項定義,而非以本節內容定義。本節內容乃本揭露各態樣之總體概述,並介紹部分概念,該等概念將於「實施方式」一節中進一步敘述。本節內容並非意圖識別請求項所請標的之關鍵或必要特徵。本節內容亦非意圖單獨用於決定請求項所請標的之範圍。對該標的之理解,應參照本揭露說明書全文中之適當部分、任何或全部圖式及每一請求項進行。
揭露之一範例為一種韌體映像檢查系統,用以確保電腦系統中的正確韌體映像的執行。此系統包括可程式化邏輯裝置,其執行平台韌體保護與恢復(PFR)常式。可程式化邏輯裝置包括非揮發性記憶體,其具有現用(active)區域,儲存第二專案名稱。快閃記憶體儲存韌體映像,包括第一專案名稱。可程式化邏輯裝置被配置為比較韌體映像的第一專案名稱及儲存於非揮發性記憶體中的第二專案名稱。當專案名稱不匹配時,可程式化邏輯裝置防止對快閃記憶體中的韌體映像的存取。
上述範例系統的一種進一步實施為一實施例,其中該系統包括基板管理控制器(BMC),且韌體映像為BMC韌體映像。另一實施為其中可程式化邏輯裝置為現場可程式化邏輯閘陣列(FPGA)。另一實施為其中韌體映像為基本輸入/輸出系統(BIOS)韌體映像。另一實施為其中可程式化邏輯裝置以儲存的公開金鑰(public key)認證韌體映像的簽章。另一實施為其中韌體映像的專案名稱儲存於平台韌體清單(PFM)資料結構的一個欄位(field)中,該PFM資料結構儲存於快閃記憶體中。另一實施為其中當電腦系統被初始配置(initially provisioned)時,第二專案名稱被儲存於非揮發性記憶體中。另一實施為其中可程式化邏輯裝置比較韌體更新映像的第三專案名稱與儲存的第二專案名稱,並在專案名稱不匹配時,防止載入韌體更新映像。
揭露之另一範例為一種韌體映像檢查方法,其確保電腦系統中的韌體映像正確。第二專案名稱被儲存於可程式化邏輯裝置的記憶體中,該可程式化邏輯裝置執行平台韌體保護與恢復(PFR)常式。儲存的第二專案名稱及韌體映像的第一專案名稱被比較。當儲存的第二專案名稱與韌體映像的第一專案名稱不匹配時,對韌體映像的存取被防止。
上述範例方法的一種進一步實施為一實施例,其中韌體映像為基板管理控制器(BMC)韌體映像,其可由BMC執行。另一實施為其中程式化邏輯裝置為現場可程式化邏輯閘陣列(FPGA)。另一實施為其中韌體映像為基本輸入/輸出系統(BIOS)韌體映像。另一實施為其中此方法更包括透過可程式化邏輯裝置,以儲存的公開金鑰認證韌體映像的簽章。另一實施為其中韌體映像的第一專案名稱儲存於平台韌體清單(PFM)資料結構的一個欄位(field)中。另一實施為其中此方法更包括在進行電腦系統的配置(provisioning)程序時,儲存第二專案名稱。另一實施為其中此方法更包括透過可程式化邏輯裝置,比較韌體更新的第三專案名稱與儲存的第二專案名稱。此方法在專案名稱不匹配時,防止載入韌體更新。
揭露之另一範例為一種電腦系統,具有處理器,執行基本輸入/輸出系統(BIOS)及基板管理控制器(BMC)。第一快閃記憶體裝置耦接至處理器,並儲存BIOS韌體映像及BIOS韌體映像的第一BIOS專案名稱。第二快閃記憶體裝置耦接至BMC,並儲存BMC韌體映像及BMC韌體映像的第一BMC專案名稱。可程式化邏輯裝置耦接至第一快閃記憶體裝置及第二快閃記憶體裝置。可程式化邏輯裝置包括非揮發性記憶體,儲存第二專案名稱。可程式化邏輯裝置被配置為執行平台韌體保護與恢復(PFR)常式,以在處理器啟動BMC或執行BIOS韌體映像之前,將BIOS韌體映像的第一BIOS專案名稱及BMC韌體映像的第一BMC專案名稱與儲存的第二專案名稱進行比較。
本節上述內容並非意圖表示本揭露的每一實施例或每一態樣。反之,本節上述內容僅針對部分本說明書中所述的新穎態樣及特徵提供範例。上述特徵及優點、及本揭露的其他特徵及優點,於閱讀下文用以實施本發明的代表實施例及模式之詳述、並搭配附隨之圖式及附錄之請求項一同閱讀後,乃為明白易懂。本揭露的額外態樣,對本揭露所屬領域具技術之人而言,於閱讀下文「實施方式」中各實施例,並參見圖式一同閱讀後,乃為明白易懂。該等圖式之簡述見下文「圖式簡單說明」一節。
各實施例係參照附錄之圖式敘述,其中在不同圖式中的相同標號係用於表示相似或等效的元件。各圖式未必照比例繪製,且僅用於繪示本揭露之態樣及特徵。文中述及之多種特定細部特徵、關係及方法,係用於提供對本揭露之某些態樣及特徵的完整理解,而本揭露所屬領域具技術之人將可認識到,該等態樣及特徵無需該等特定細部特徵即可實施,或可以其他關係及方法實施。在部分範例中,為圖示清晰起見,並未詳細繪示習知結構或操作。本文所揭露之各實施例,無需限制於所述之操作或事件順序,因部分操作可以不同順序進行,及/或與其他操作或事件同時進行。此外,並非全部所述之操作或事件皆必須實施本揭露的某些態樣或特徵。
在本節中,除非另有明確指示,否則在適當情況下,單數詞彙皆包括複數詞彙,反之亦然。「包括」一詞係指稱「包括但不限於」。此外,表近似之詞彙,例如「約」、「近乎」、「大致上」、「約略」等,可於本節中用於表示「位於」、「接近」、「近於」、「在3-5%誤差範圍內」、「在容許製造誤差範圍內」或上述各詞彙的邏輯組合。相似地,「垂直」或「水平」等詞彙,係分別意圖更包括在垂直或水平方向上的「3-5%誤差範圍內」。此外,表方向之詞彙,例如「頂部」、「底部」、「左側」、「右側」、「上方」、「下方」,係意圖指稱參考圖式中所繪示的等效方向;依據參考物件或元件之脈絡解讀,例如自物件或元件通常的使用位置解讀;或依據文中所述的其他方式解讀。
本揭露係關於一種改良式平台韌體保護與恢復(PFR)常式,其包含特定硬體平台的專案名稱,用以檢查韌體映像與硬體平台的相容性。範例PFR常式執行對專案名稱的檢查,以在PFR處於T-1階段時,驗證(validate)正確的韌體映像,並在更新韌體之前,執行更新韌體映像驗證。範例常式可避免PFR平台允許不正確的韌體映像(此一允許將造成啟動失敗),並進而使PFR所執行的安全性功能維持有效,而仍確保所提供的韌體恰當。
第1圖為一方塊圖,顯示硬體平台(例如電腦系統100)中的部件,該硬體平台運行來自PFR的常式,以確保載入來自電腦系統100的正確韌體映像。此一範例常式確保已認證的韌體映像為對該硬體平台而言係正確的韌體映像。在本範例中,電腦系統100為伺服器,然而任何合適之電腦裝置皆可包含本揭露所述之原則。電腦系統100具有二個中央處理器(CPU)110及112。儘管圖中僅繪示二個CPU,然而電腦系統100亦可支援更多額外的CPU。專用功能可由專用處理器執行,例如裝設於主機板上的圖形處理器(GPU),或電腦系統100中的擴充卡(expansion card)。
平台路徑控制器(PCH)114促進CPU 110及112與其他硬體部件(例如序列先進技術附件(SATA)裝置、開放運算計劃(OCP)裝置、以及通用序列匯流排(USB)裝置)之間的通訊。SATA裝置可包括硬碟(HDD)。或者,其他記憶儲存裝置,例如固態硬碟(SSD)亦可使用。其他硬體部件,例如高速外設組件互連標準(PCIe)裝置,可直接由CPU 110及112透過擴充插槽(未圖示)存取。額外的PCIe裝置可包括網路介面卡(NIC)、磁碟陣列(RAID)卡、以及處理器卡(例如圖形處理器(GPU)卡)。直接媒體介面(DMI)匯流排116使CPU 110及112與PCH 114之間得以通訊。
基板管理控制器(BMC)120管理電腦系統100的運作,例如電源管理及溫度管理。在本範例中,低接腳數/加強型序列周邊介面(LPC/eSPI)匯流排122使PCH 114及BMC 120之間得以通訊。一分離的系統管理匯流排SM (system management、SM)124使管理指令得以在CPU 110及112、BMC 120、以及現場可程式化邏輯閘陣列(FPGA)130之間交換。快閃記憶體裝置132儲存基本輸入/輸出系統(BIOS)韌體映像。分離的快閃記憶體裝置134儲存BMC韌體映像。在本範例中,PCH 114可透過耦接至多工器(multiplexer)138的序列周邊介面(SPI)136存取快閃記憶體裝置132。相似地,BMC 120可透過另一SPI 140經由多工器142存取快閃記憶體裝置134。
快閃記憶體裝置132中的區塊(blocks)促進電腦系統100的開機常式(start-up routine)。PCH 114促進儲存於快閃記憶體裝置132中的BIOS映像的載入,用以啟動(boot-up)電腦系統100。在本範例中,快閃記憶體裝置134儲存BMC韌體映像,供BMC 120運作之用。BMC 120執行BMC韌體映像,該BMC韌體映像使電腦系統100中的硬體部件的監控及控制得以進行。
FPGA 130包括接腳(pins),用以對多工器138及142進行控制,使PCH 114及BMC 120得以透過SPI 136及140,對個別的快閃記憶體裝置132及134進行存取。在本範例中,FPGA 130的硬體被程式化,以執行PFR 150。FPGA 130包括內部的非揮發性隨機存取記憶體(NVRAM)152,用於儲存支援PFR常式的資料,例如關聯於電腦系統100的專案名稱。在本範例中,快閃記憶體裝置132及134皆儲存平台韌體清單(Platform Firmware Manifest、PFM)資料結構154,該PFM資料結構154包括關聯儲存於個別快閃記憶體裝置132及134中的韌體映像的專案名稱。在配置程序中,BIOS向FPGA 130的硬體提供根金鑰雜湊(root key hash)156。根金鑰雜湊156儲存於NVRAM 152中。代碼簽章金鑰(CSK)由根金鑰對其進行簽章(sign),以在PFR常式執行時,認證(authenticate)韌體及快閃記憶體。
FPGA 130亦耦接至電源供應單元(PSU)160、數位穩壓器(digital VR)162、以及熱插拔背板(HSBP)164。在認證來自PFR常式的韌體映像後,FPGA 130允許BMC 120對該等部件進行存取。FPGA 130隨後在電腦系統100運作時,過濾來自BMC 120及傳送至BMC 120的指令。
在本範例中,FPGA 130作為信任根(Root of Trust 、RoT),啟用PFR 150的韌體安全性功能。RoT包括協助PFR執行安全性功能的特徵,例如防止載入或執行未獲認證的程式碼或設計;防止由軟體所試圖進行的破壞性操作;或防止執行具有已知程式錯誤(bugs)或弱點(vulnerabilities)的較舊程式碼或設計。PFR 150使BMC 120得以撤銷認證,以提供電腦系統100的安全運作。
在本範例中,FPGA 130執行PFR 150,以認證儲存的韌體映像,並防止損毀的韌體映像下載至電腦系統100中。在本範例中,FPGA 130為英特爾Max 10 FPGA,其被專用程式化以執行PFR 150。然而,任何可程式化控制器或其他FPGA亦可用於執行安全性功能。
在本範例中,公開根金鑰(public root key)、私有根金鑰(private root key)及CSK由第三方供應商(例如亞馬遜網路服務(AWS))建立。或者,各金鑰可由硬體安全模組(HSM)或開放安全通訊端層(OpenSSL)建立。該等金鑰中之一者被指定為根金鑰,而另一金鑰被指定為代碼簽章金鑰(CSK)。該等金鑰為非對稱金鑰,亦即該等金鑰包含公開金鑰及私有金鑰的潛在配對(underlying pair)。CSK金鑰被用於對物件(例如韌體映像)建立簽章,其中該等韌體映像係由硬體平台的製造商所發佈,其可由被根金鑰簽章的對應CSK金鑰所驗證。
第2圖顯示由原始設備製造商(OEM)所生產的一範例平台序列。在本範例中,OEM對每一硬體平台指定不同的專案名稱。因此,電腦系統100為第一硬體平台,具有12個擴充卡,其被指定的專案名稱為「綠」。第二硬體平台210具有10個擴充卡,其被指定的專案名稱為「藍」。第三硬體平台220具有12個擴充卡,其被指定的專案名稱為「棕」。第四硬體平台230具有20個擴充卡,其被指定的專案名稱為「黃」。第2圖中的每一硬體平台具有相同的根金鑰及CSK,以供運行已知PFR的個別FPGA進行認證。然而,由於不同硬體平台100、210、220及230使用的所有韌體映像亦具有相同的簽章,故不正確的韌體映像可能被認證及載入。例如,用於第二硬體平台210的韌體映像可能被錯誤地載入至第四硬體平台230。此等韌體映像可能具有恰當的簽章,但可能導致第四硬體平台230在啟動時當機(crash),因該等韌體映像與第四硬體平台230並不相容。
在電腦系統100中,根金鑰及CSK的公開金鑰被OEM用於建立簽章,其中OEM具有對私有金鑰的專屬持有權。簽章被建立以用於儲存在快閃記憶體134中的BMC韌體映像、儲存在快閃記憶體裝置132中的BIOS韌體映像、以及任何其他韌體映像。如前文所述,FPGA 130儲存根金鑰雜湊156。根金鑰雜湊156被用於簽章CSK,以認證任何韌體映像的簽章。在本範例中,PFR 150亦自硬體平台的配置常式接收配置資料。配置資料包括專案名稱。
在配置後,進行BMC及BIOS的建立程序。在此一程序中,平台韌體清單(PFM)資料結構154被建立,並被儲存於快閃記憶體裝置132及134中。資料值被儲存在儲存韌體映像的快閃記憶體中的PFM資料結構154之中。例如,儲存於快閃記憶體裝置132中的PFM資料結構154包括關聯於儲存在快閃記憶體裝置132中的BIOS映像的專案名稱資料。相似地,儲存於快閃記憶體裝置134中的PFM資料結構154包括關聯於儲存在快閃記憶體裝置134中的BMC映像的專案名稱資料。在本範例中,若對應的韌體映像正確,則PFM資料結構154應包含對硬體平台(電腦系統100)為唯一的專案名稱,例如「綠」。
NVRAM 152中儲存的專案名稱,被PFR 150用於檢查儲存在PFM資料結構154中、且關聯於儲存的韌體映像的專案名稱,是否對硬體平台而言為正確的。第3圖為表格300,顯示第1圖中由範例常式所使用的PFM資料結構154。PFM資料結構154的表格300包括標籤(tag)欄位310、安全版本編號(SVN)欄位312、已知最佳配置(best known configuration、BKC)版本欄位314、PFM修訂欄位316、保留欄位318、OEM專用資料欄位320、長度欄位322、PFM本體欄位324、以及填補(padding)欄位326。PFM資料結構154中各欄位的值在BMC及BIOS韌體建立程序進行時被寫入至PFM資料結構154。在本範例中,OEM專用資料欄位320包括由OEM對硬體平台所指定的專案名稱。因此,對電腦系統100而言,專案名稱「綠」被寫入至OEM專用資料欄位320,以供關聯於電腦系統100的韌體映像使用。
在配置程序後,FPGA 130在硬體平台(例如電腦系統100)開機時執行PFR 150。當PFR 150處於T-1階段時,PFR 150會存取第1圖中的快閃記憶體裝置132及134,以透過認證由根金鑰及CSK配對的公開金鑰所建立的簽章,對每一快閃記憶體裝置132及134的現用(active)區域及復原(recovery)區域進行認證。若認證成功,則所有韌體映像皆可自快閃記憶體裝置132及134被載入。在本範例中,PFR 150亦在允許載入韌體映像之前,驗證關聯於韌體映像的專案名稱,該專案名稱儲存於快閃記憶體的現用區域內的PFM資料結構154的OEM專用資料欄位中。若來自PFM資料結構154的韌體映像專案名稱匹配NVRAM 152中儲存的專案名稱,則由於韌體映像正確,故PFR 150將繼續電腦系統100的認證常式。若韌體映像的專案名稱不匹配NVRAM 152中儲存的專案名稱,則PFR 150將阻止對儲存不正確韌體映像的個別快閃記憶體的存取,並防止作業系統啟動。
相似地,當更新韌體映像時,BMC 120或BIOS會傳送請求,以更新個別韌體映像。FPGA 130會接收請求,並認證更新的韌體映像。PFR 150會認證快閃記憶體及更新的韌體映像。PFR 150亦會以NVRAM 152中儲存的專案名稱,對關聯於更新的韌體映像的專案名稱進行驗證。若專案名稱正確,則PFR 150會繼續更新流程,並允許更新的韌體映像在快閃記憶體中被存取。不正確的專案名稱會導致PFR 150拒絕本次更新。以此種方式,範例常式可確保載入的韌體映像正確,以使電腦系統100得以正確運作。
第4圖為一流程圖,顯示配置程序,用以將專案名稱寫入至第1圖中的PFM資料結構154。BIOS透過預啟動執行環境(pre-boot execution environment、PXE)常式,對配置程序進行初始化(步驟410)。外部伺服器透過PXE建立通訊(步驟412)。範本(template)被載入,以對硬體平台的部件進行配置(步驟414)。BIOS接收根金鑰雜湊156、現用區域、復原區域及暫存區域(staging region)的SPI偏移值(offset)、以及專案名稱(步驟416)。BIOS使用SPI偏移值決定現用區域、復原區域及暫存區域在快閃記憶體中的位置。BIOS傳送根金鑰雜湊156、現用區域、復原區域及暫存區域的SPI偏移值、以及專案名稱至FPGA 130(步驟418)。隨後,PFR 150儲存根金鑰雜湊156、現用區域、復原區域及暫存區域的SPI偏移值、以及專案名稱(步驟420)。在本範例中,根金鑰雜湊156被程式化至FPGA 130中,而根金鑰雜湊156、現用區域、復原區域及暫存區域的SPI偏移值、以及專案名稱被儲存至NVRAM 152中。
第5A圖顯示PFR常式,該PFR常式使用關聯於硬體平台的專案名稱認證BIOS韌體。第1圖中的PFR 150首先保持BMC 120及BIOS不重置(reset)(步驟510)。PFR 150讀取指向儲存在NVRAM 152中的專案名稱的指標(pointer)以讀取儲存的專案名稱,並讀取儲存在快閃記憶體裝置132內的PFM資料結構154中的專案名稱(步驟512)。隨後,PFR 150比較儲存的專案名稱與儲存在快閃記憶體裝置132內的PFM資料結構154中的BIOS韌體映像的專案名稱(或稱「BIOS專案名稱」)。PFR 150藉由決定BIOS韌體映像的BIOS專案名稱是否匹配儲存的專案名稱,來決定BIOS專案名稱是否正確(步驟514)。若BIOS韌體映像的BIOS專案名稱不正確,則PFR 150防止啟動(步驟516)。若BIOS專案名稱正確,PFR 150讀取BIOS韌體映像的簽章(步驟518)。PFR 150使用根金鑰雜湊156決定BIOS韌體映像的簽章是否已獲認證(步驟520)。若簽章未獲認證(步驟520),則PFR 150防止對快閃記憶體裝置132的存取,並防止啟動(步驟516)。若簽章自根金鑰雜湊156獲得認證,則PFR 150隨後釋放(release)BIOS並允許BIOS重置,以開始啟動程序(步驟522)。
第5B圖顯示PFR常式,該PFR常式使用關聯於硬體平台的專案名稱認證BMC韌體。第1圖中的PFR 150首先保持BMC 120及BIOS不重置(步驟550)。PFR 150讀取指向儲存在NVRAM 152中的專案名稱的指標以讀取儲存的專案名稱,並讀取儲存在快閃記憶體裝置134內的PFM資料結構154中的專案名稱(步驟552)。隨後,PFR 150比較儲存的專案名稱與儲存在快閃記憶體裝置134內的PFM資料結構154中的BMC韌體映像的專案名稱(或稱「BMC專案名稱」)。PFR 150藉由決定BMC韌體映像的BMC專案名稱是否匹配儲存的專案名稱,來決定專案名稱是否正確(步驟554)。若BMC韌體映像的BMC專案名稱不正確,則PFR 150防止啟動(步驟556)。若BMC專案名稱正確,PFR 150讀取BMC韌體映像的簽章(步驟558)。PFR 150使用根金鑰雜湊156決定BMC韌體映像的簽章是否已獲認證(步驟560)。若簽章未獲認證(步驟560),則PFR 150防止對快閃記憶體裝置134的存取,並防止啟動(步驟556)。若簽章自根金鑰雜湊156獲得認證,則PFR 150隨後釋放BMC 120並允許BMC 120重置,以開始啟動程序(步驟562)。
第6圖顯示一常式,其更新韌體映像,透過執行第1圖中的PFR 150,存取專案名稱以確保正確系統運作。針對外部的更新韌體映像,PFR 150自BMC 120或BIOS接收請求,以存取第1圖中的快閃記憶體裝置132或134中之一者(步驟610)。PFR 150以根金鑰雜湊156認證接收的更新韌體映像的簽章(步驟612)。隨後,PFR 150決定更新韌體映像的簽章是否已獲認證(步驟614)。若更新韌體映像未獲認證(步驟614),則PFR 150傳回拒絕韌體之訊號,並防止載入韌體映像的更新(步驟616)。若認證成功,則PFR 150讀取指向專案名稱的指標,以自NVRAM 152讀取專案名稱(步驟618)。PFR 150自NVRAM 152讀取儲存的專案名稱,並將其與接收的韌體映像的專案名稱進行比較,以決定韌體映像的專案名稱是否正確(步驟620)。若專案名稱正確,則PFR 150繼續更新流程(步驟622)。若專案名稱不正確,則PFR 150傳回拒絕韌體之訊號,並防止載入韌體映像的更新(步驟616)。
前述第4圖至第6圖中所繪示的常式,係代表範例機器可讀指令,供BIOS將專案名稱提供至第2圖中的FPGA 130、並檢查韌體映像或更新韌體映像之用,以確保所存取的韌體對電腦系統而言為正確的。在本範例中,該等機器可讀指令包括一演算法,供下列裝置執行:(a)處理器;(b)控制器;及/或(c)一個或多個其他合適的處理裝置。該演算法可以軟體實施,該軟體儲存於有形媒體中,例如快閃記憶體、CD-ROM、軟碟(floppy disk)、硬碟、DVD、或其他記憶體裝置。然而,於本揭露所屬領域具技術之人,當可輕易知悉該演算法之整體及/或部分亦可由處理器以外之裝置執行,及/或由韌體或專用硬體以習知方式實施(例如其可由特定應用積體電路(ASIC)、可程式化邏輯元件(PLD)、現場可程式化邏輯元件(FPLD)、現場可程式化邏輯閘陣列(FPGA)、離散邏輯裝置等實施)。例如,該等常式之任何或全部部件可以軟體、硬體及/或韌體實施。又,由流程圖所代表的該等機器可讀指令之部分或全部可以人工方式實施。此外,儘管本揭露敘述了範例常式,然而於本揭露所屬領域具技術之人當可輕易知悉,其人亦可替換使用多種其他方法,以實施該等範例機器可讀指令。
儘管本揭露的一種或多種實施已被圖示及敘述,然而於本揭露所屬領域具技術之人當可於閱讀並理解本說明書及附隨之圖式後,知悉等效之改造或改良。此外,儘管本揭露的一特定特徵可能僅揭露於數種實施中之一,然而若對於任何給定或特定之應用為所欲或有利,則該特徵亦可與一種或多種其他實施中的其他特徵合併。
儘管上文敘述了本揭露的多個實施例,然而應注意,該等實施例之呈現僅作為範例之用,而非限制。依據本文之揭露,可對揭露之實施例進行多種變更,而不脫離本揭露的精神及範圍。因此,本揭露之廣度及範圍,不應限制於任何前述實施例之內。反之,本揭露的範圍應依據下列請求項及其等效敘述而定義。
100:電腦系統 110, 112:中央處理器(CPU) 114:平台路徑控制器(PCH) 116:直接媒體介面(DMI)匯流排 120:基板管理控制器(BMC) 122:低接腳數/加強型序列周邊介面(LPC/eSPI)匯流排 124:系統管理(SM)匯流排 130:現場可程式化邏輯閘陣列(FPGA) 132, 134:快閃記憶體裝置 136:序列周邊介面(SPI) 138:多工器 140:序列周邊介面(SPI) 142:多工器 150:平台韌體保護與恢復(PFR) 152:非揮發性隨機存取記憶體(NVRAM) 154:平台韌體清單(PFM)資料結構 156:根金鑰雜湊 160:電源供應單元(PSU) 162:數位穩壓器 164:熱插拔背板(HSBP) 210:第二硬體平台 220:第三硬體平台 230:第四硬體平台 300:表格 310:標籤(tag)欄位 312:安全版本編號(SVN)欄位 314:已知最佳配置(BKC)版本欄位 316:PFM修訂欄位 318:保留欄位 320:OEM專用資料欄位 322:長度欄位 324:PFM本體欄位 326:填補(padding)欄位 410, 412, 414, 416, 418, 420:步驟 510, 512, 514, 516, 518, 520, 522:步驟 550, 552, 554, 556, 558, 560, 562:步驟 610, 612, 614, 616, 618, 620, 622:步驟
本揭露及其優點與圖式,於閱讀下文代表實施例之敘述,並參見附隨之圖式一同閱讀後,可達較佳之理解。此等圖式僅繪示代表實施例,故不應視為各實施例或請求項範圍之限制。 第1圖為一方塊圖,依據本揭露的某些態樣,顯示一電腦系統,其包含改良式PFR常式,以確保韌體映像正確; 第2圖為一圖表,依據本揭露的某些態樣,顯示包括第1圖中的電腦系統的不同平台,該等平台具有不同的專案名稱,但認證金鑰相同; 第3圖為一表格,依據本揭露的某些態樣,顯示平台韌體清單(PFM)資料結構,用於儲存專案名稱,並可存取PFR; 第4圖為一流程圖,依據本揭露的某些態樣,顯示由BIOS執行的配置常式,用以設置(set up)硬體,並對PFR提供專案名稱; 第5A圖為一流程圖,顯示一種用於BIOS映像的範例認證常式,其確保載入的BIOS韌體映像正確; 第5B圖為一流程圖,顯示一種用於BMC映像的範例認證常式,其確保載入的BMC韌體映像正確;以及 第6圖為一流程圖,依據本揭露的某些態樣,顯示一種範例常式,用於認證更新的韌體映像。
100:電腦系統
110,112:中央處理器(CPU)
114:平台路徑控制器(PCH)
116:直接媒體介面(DMI)匯流排
120:基板管理控制器(BMC)
122:低接腳數/加強型序列周邊介面(LPC/eSPI)匯流排
124:系統管理(SM)匯流排
130:現場可程式化邏輯閘陣列(FPGA)
132,134:快閃記憶體裝置
136:序列周邊介面(SPI)
138:多工器
140:序列周邊介面(SPI)
142:多工器
150:平台韌體保護與恢復(PFR)
152:非揮發性隨機存取記憶體(NVRAM)
154:平台韌體清單(PFM)資料結構
156:根金鑰雜湊
160:電源供應單元(PSU)
162:數位穩壓器
164:熱插拔背板(HSBP)

Claims (9)

  1. 一種韌體映像檢查系統,用於確保一電腦系統中一正確韌體映像的執行,該韌體映像檢查系統包括: 一快閃記憶體,用於儲存一韌體映像,該韌體映像包括一第一專案名稱;以及 一可程式化邏輯裝置,執行一平台韌體保護與恢復(PFR)常式,該可程式化邏輯裝置包括一非揮發性記憶體,該非揮發性記憶體具有一現用區域,該現用區域儲存一第二專案名稱,其中該可程式化邏輯裝置被配置為比較該韌體映像的該第一專案名稱及儲存於該非揮發性記憶體中的該第二專案名稱,並在該第一專案名稱及該第二專案名稱不匹配時,防止對該快閃記憶體中的該韌體映像的存取。
  2. 如請求項1之韌體映像檢查系統,更包括一基板管理控制器(BMC),其中該韌體映像為一BMC韌體映像。
  3. 如請求項1之韌體映像檢查系統,其中該韌體映像為一基本輸入/輸出系統(BIOS)韌體映像。
  4. 如請求項1之韌體映像檢查系統,其中該可程式化邏輯裝置更被配置為比較一韌體更新的一第三專案名稱與儲存的該第二專案名稱,並在該韌體更新的該第三專案名稱與儲存的該第二專案名稱不匹配時,防止載入該韌體更新。
  5. 一種韌體映像檢查方法,用於確保一電腦系統中的韌體映像正確,該韌體映像檢查方法包括: 在一可程式化邏輯裝置的一記憶體中儲存一第二專案名稱,該可程式化邏輯裝置執行一平台韌體保護與恢復(PFR)常式; 比較儲存的該第二專案名稱與一韌體映像的一第一專案名稱;以及 若儲存的該第二專案名稱與該韌體映像的該第一專案名稱不匹配,則防止對該韌體映像的存取。
  6. 如請求項5之韌體映像檢查方法,其中該韌體映像為一基板管理控制器(BMC)韌體映像,該BMC韌體映像可由一BMC執行。
  7. 如請求項5之韌體映像檢查方法,其中該韌體映像為一基本輸入/輸出系統(BIOS)韌體映像。
  8. 如請求項5之韌體映像檢查方法,更包括: 透過該可程式化邏輯裝置,比較一韌體更新映像的一第三專案名稱與儲存的該第二專案名稱;以及 若該第三專案名稱與該第二專案名稱不匹配,則防止載入該韌體更新映像。
  9. 一種電腦系統,包括: 一處理器,執行一基本輸入/輸出系統(BIOS); 一基板管理控制器(BMC); 一第一快閃記憶體裝置,耦接至該處理器,該第一快閃記憶體裝置儲存一BIOS韌體映像、以及該BIOS韌體映像的一第一BIOS專案名稱; 一第二快閃記憶體裝置,耦接至該BMC,該第二快閃記憶體裝置儲存一BMC韌體映像、以及該BMC韌體映像的一第一BMC專案名稱;以及 一可程式化邏輯裝置,耦接至該第一快閃記憶體裝置及該第二快閃記憶體裝置,該可程式化邏輯裝置包括一非揮發性記憶體,該非揮發性記憶體儲存一第二專案名稱,且該可程式化邏輯裝置被配置為執行一平台韌體保護與恢復(PFR)常式,以在該處理器啟動該BMC或執行該BIOS韌體映像之前,將關聯於該BIOS韌體映像的該第一BIOS專案名稱及關聯於該BMC韌體映像的該第一BMC專案名稱與儲存於該非揮發性記憶體中的該第二專案名稱進行比較。
TW111110793A 2021-10-28 2022-03-23 韌體映像檢查系統、韌體映像檢查方法及電腦系統 TW202318196A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/513,548 US12001560B2 (en) 2021-10-28 2021-10-28 Method and system for avoiding boot failure from platform firmware resilience execution
US17/513,548 2021-10-28

Publications (1)

Publication Number Publication Date
TW202318196A true TW202318196A (zh) 2023-05-01

Family

ID=80933835

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111110793A TW202318196A (zh) 2021-10-28 2022-03-23 韌體映像檢查系統、韌體映像檢查方法及電腦系統

Country Status (5)

Country Link
US (1) US12001560B2 (zh)
EP (1) EP4174698A1 (zh)
JP (1) JP7382446B2 (zh)
CN (1) CN116049824A (zh)
TW (1) TW202318196A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989305B2 (en) * 2022-07-21 2024-05-21 Dell Products L.P. Automated update of a customized secure boot policy

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3863118B2 (ja) * 2002-04-01 2006-12-27 松下電器産業株式会社 受信装置、印刷装置およびファームウェア更新システム
US7475236B2 (en) 2002-05-16 2009-01-06 Via Technologies, Inc. Method for ensuring correct sub-system bios for specified system
US7908469B2 (en) 2005-03-30 2011-03-15 Inventec Corporation Method for executing power on self test on a computer system and updating SMBIOS information partially
TW200813775A (en) 2006-09-05 2008-03-16 Inventec Corp Method for creating unique identification information for computer system
TW200844858A (en) 2007-05-09 2008-11-16 Mitac Int Corp Verification device of updating mapping files and the method thereof
RU2011149630A (ru) * 2009-06-05 2013-07-20 Шарп Кабусики Кайся Система обновления программного обеспечения, электронные устройства и способ обновления программного обеспечения
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US8984502B2 (en) * 2011-10-28 2015-03-17 Hewlett-Packard Development Company, L.P. Systems and methods for composing or decomposing a composite image for firmware update images
TWI617946B (zh) 2015-05-25 2018-03-11 Insyde Software Corp Device and method for safely starting embedded controller
JP2017173893A (ja) * 2016-03-18 2017-09-28 株式会社リコー 情報処理システム、更新方法、情報機器およびプログラム
US10089101B2 (en) * 2016-05-11 2018-10-02 Haier Us Appliance Solutions, Inc. Updating a software configuration of an appliance
US10489136B2 (en) * 2017-04-27 2019-11-26 Quanta Computer Inc. Automatic firmware and custom setting provision for server device
US20190236279A1 (en) 2018-01-31 2019-08-01 Hewlett Packard Enterprise Development Lp Perform security action based on inventory comparison
US10725746B2 (en) * 2018-03-05 2020-07-28 Stmicroelectronics, Inc. Method and apparatus for quick prototyping of embedded peripherals
US10496395B2 (en) * 2018-03-07 2019-12-03 Haier Us Appliance Solutions, Inc. Methods and systems for intelligent software updates of an appliance
US10564858B2 (en) * 2018-05-02 2020-02-18 Nyquist Semiconductor Limited Data storage device with selective connection to non-volatile memories
US10489338B1 (en) 2018-09-05 2019-11-26 Quanta Computer Inc. Method and system for streamlined server design
US11238159B1 (en) * 2019-11-08 2022-02-01 Facebook Technologies, Llc Artificial reality system with verified boot sequences
US11349733B2 (en) * 2020-03-23 2022-05-31 Quanta Computer Inc. Method and system for automatic detection and alert of changes of computing device components
US12039323B2 (en) * 2020-04-21 2024-07-16 Hewlett-Packard Development Company, L.P. BIOS updates

Also Published As

Publication number Publication date
CN116049824A (zh) 2023-05-02
US12001560B2 (en) 2024-06-04
JP7382446B2 (ja) 2023-11-16
EP4174698A1 (en) 2023-05-03
JP2023066353A (ja) 2023-05-15
US20230133726A1 (en) 2023-05-04

Similar Documents

Publication Publication Date Title
US11520894B2 (en) Verifying controller code
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
US10740468B2 (en) Multiple roots of trust to verify integrity
US8904162B2 (en) Methods and apparatus for performing secure BIOS upgrade
US9880908B2 (en) Recovering from compromised system boot code
US7921286B2 (en) Computer initialization for secure kernel
US9703635B2 (en) Method, computer program, and computer for restoring set of variables
JP2010524123A (ja) トラステッドコンポーネント更新システム及びトラステッドコンポーネント更新方法
US20110320798A1 (en) Providing Silicon Integrated Code For A System
US10181956B2 (en) Key revocation
WO2020037613A1 (zh) 嵌入式程序的安全升级方法、装置、设备及存储介质
CN108345805B (zh) 验证固件的方法及装置
US11907375B2 (en) System and method for signing and interlocking a boot information file to a host computing system
TW202318196A (zh) 韌體映像檢查系統、韌體映像檢查方法及電腦系統
US20200143058A1 (en) Operational verification
US12056262B2 (en) Applying trusted backup configuration to a node
US20230297682A1 (en) Computing device quarantine action system
US11921858B2 (en) System and method for protecting against alterations in chain of trust sequences
CN112817619A (zh) 电脑系统及其安全管理方法以及电脑软件产品