TWI528281B - 平臺韌體防護方法、設備、系統以及相關的機器可讀媒體 - Google Patents
平臺韌體防護方法、設備、系統以及相關的機器可讀媒體 Download PDFInfo
- Publication number
- TWI528281B TWI528281B TW100133375A TW100133375A TWI528281B TW I528281 B TWI528281 B TW I528281B TW 100133375 A TW100133375 A TW 100133375A TW 100133375 A TW100133375 A TW 100133375A TW I528281 B TWI528281 B TW I528281B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- platform
- controller
- storage location
- acm
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 69
- 230000015654 memory Effects 0.000 claims description 74
- 230000007246 mechanism Effects 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000001727 in vivo Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 65
- 238000010586 diagram Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2137—Time limited access, e.g. to a computer or data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Description
本發明係有關安全地更新電腦平臺韌體之技術。
可操作於一個電腦系統上的第一組指令係源自於平臺韌體。平臺韌體可包括與基本輸入/輸出系統相關連的韌體、可擴充韌體、嵌入式控制器和微控制器韌體、以及任何其他此種常駐於電腦平臺之儲存位置內的韌體。平臺韌體在一個電腦系統的壽命當中並不常為靜態的。只要有對操作系統和軟體應用程式的更新,就會有對平臺韌體的更新。由於韌體指令對於許多電腦系統的成功操作來說是很關鍵性的,所以有必要使得在韌體被更新時,這樣的更新是以一種安全的方式發生。
依據本發明之一實施例,係特地提出一種方法,其包含下列步驟:於一個電腦平臺之一啟動上,將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式,其中該電腦平臺包括儲存有一第一平臺韌體的一個平臺韌體儲存位置;反應於該平臺韌體更新機構被切換至該PFAT模式,而持續地鎖定該平臺韌體儲存位置,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的一個經認證碼模組(ACM)以外的任何實體對該平臺韌體儲存位置之寫入。
依據本發明之另一實施例,係特地提出一種設備,其包含:用於於一個電腦平臺之一啟動上將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式的邏輯,其中該電腦平臺包括儲存有一第一平臺韌體的一個平臺韌體儲存位置;反應於該平臺韌體更新機構被切換至該PFAT模式,用於持續地鎖定該平臺韌體儲存位置的邏輯,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的一個經認證碼模組(ACM)以外的任何實體對該平臺韌體儲存位置之寫入。
依據本發明之又一實施例,係特地提出一種具有儲存在內之指令的機器可讀媒體,該等指令在由一個機器執行時致使該機器執行一種方法,該方法包含下列步驟:於一個電腦平臺之一啟動上,將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式,其中該電腦平臺包括儲存有一第一平臺韌體的一個平臺韌體儲存位置;反應於該平臺韌體更新機構被切換至該PFAT模式,而持續地鎖定該平臺韌體儲存位置,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的一個經認證碼模組(ACM)以外的任何實體對該平臺韌體儲存位置之寫入。
依據本發明之再一實施例,係特地提出一種系統,其包含:一個平臺部件集線器;一個平臺韌體儲存體,用以儲存一個平臺韌體;一個系統記憶體,用以儲存一個經認證碼模組(ACM);用於於一個電腦平臺之一啟動上將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式的邏輯;反應於該平臺韌體更新機構被切換至該PFAT模式,該平臺部件集線器持續地鎖定該平臺韌體儲存位置,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的該ACM以外的任何實體對該平臺韌體儲存位置之寫入。
本發明係藉由示範方式來例示,且並不受限於圖式,於此等圖式中,相似的參考號碼可指示出類似元件,並且其中:
第1圖例示能夠安全地更新一個電腦平臺的一個電腦系統之一實施例。
第2圖為用於鎖住一個平臺部件集線器以使得對系統管理韌體儲存空間之寫入不被允許的一個處理程序之一實施例的流程圖。
第3A圖例示用於開始一個安全平臺韌體更新程序的一個處理程序之一實施例的流程圖。
第3B圖例示用於繼續一個安全平臺韌體更新程序的一個處理程序之一實施例的流程圖。
第4圖為用於安全地更新一個電腦系統中之控制器韌體的一個處理程序之一實施例的流程圖。
本文揭露能夠安全地更新平臺韌體之設備、系統、方法和電腦可讀媒體的數個實施例。
在一個電腦系統中的韌體可提供許多類型的初始化、管理和操作指令給在一個電腦系統中的一或多個裝置。對於韌體的更新通常會帶有安全漏洞。如果惡意實體能夠將被破解的韌體片段提供給電腦系統,那麼這樣的破壞可能會是很嚴重的,因為在電腦系統的操作期間,韌體通常是在低於標準病毒保護等級的等級上。因此,在平臺韌體之更新期間的安全是極其重要的。
在許多實施例中,係在一個電腦系統中致能一種平臺韌體防護技術(platform firmware armoring technology,PFAT)模式。此PFAT模式限制大部分的實體之能力,使其無法更新平臺韌體。具體而言,此PFAT模式可要求系統管理韌體更新必需係於一種安全經認證程式碼(authenticated code,AC)模式中由經認證程式碼模組(authenticated code module,ACM)更新。在標準操作模式中,平臺部件集線器(platform component hub,PCH)可停止任何寫入動作,使寫入無法接觸儲存體。為了使韌體能夠更新,邏輯可調用ACM,並且ACM可接著將此韌體儲存體解鎖,以藉由對一個CPU暫存器執行一個特殊寫入循環來作寫入。在許多實施例中,ACM為唯一能夠執行特殊寫入循環的實體,並且接著當韌體儲存體被解鎖後,ACM為唯一能夠執行實際韌體更新的實體。此外,ACM尚可衡量所更新的韌體影像,以利用被提供給CPU的一個公用金鑰來驗證其真實性。
第1圖例示能夠安全地更新一個平臺韌體的一個電腦系統之一實施例。
圖中係示出一個電腦系統100。此電腦系統可為一個桌上型電腦、伺服器、工作站、膝上型電腦、手持電腦、電視機上盒、媒體中心、遊戲控制台、整合系統(像是在一台車內的),或其他類型的電腦系統。在數個實施例中,電腦系統100包括有一或多個中央處理單元(central processing unit,CPU),亦稱為「處理器」。雖然在許多實施例中,可能會有許多CPU,但於示於第1圖中的此實施例中,係只有示出CPU 102,以求簡明。CPU 102可為英特爾公司(Intel Corporation)的任何CPU或是其他牌子的CPU。在不同的數個實施例中,CPU 102可包括有一或多個核心。圖中係將CPU 102示為包括有四個核心(核心104、106、108和110)。
在許多實施例中,各個核心係包括有內部功能區塊,像是一或多個執行單元、退休單元(retirement unit)、一組一般用途和特殊用途暫存器等等。在一個單緒核心中,各個核心可被稱為是一個硬體緒。當一個核心為多緒或為超緒時,操作於各個核心內的各個緒可亦被稱為是一個硬體緒。因此,運行於電腦系統100內的任何一個執行緒皆可被稱為是一個硬體緒。例如,在第1圖中,若各個核心為單緒,則於此系統(四個核心)中會存在有四個硬體緒。另一方面,若各個核心為多緒,並且具有同時維持兩個緒之狀態的能力,則於此系統(四個核心,每個核心兩個緒)中會存在有八個硬體緒。
CPU 102可亦包括有一或多個快取記憶體,像是快取記憶體112。在未示於圖中的許多實施例中,係實施有除了快取記憶體112以外的其他額外快取記憶體,以使得在各個核心中之執行單元和記憶體之間存在有多階的快取記憶體。在不同的數個實施例中,係可以不同方式來分配快取記憶體112。此外,在不同的實施例中,快取記憶體112可係許多種不同大小當中的一個大小。例如,快取記憶體112可為一個8兆位元組(MB)的快取記憶體、一個16 MB的快取記憶體等等。此外,在不同的數個實施例中,此快取記憶體可為一個直接映對快取記憶體、一個完全關聯快取記憶體、一個多路集合關聯快取記憶體、或是具有任何類型之對映的一個快取記憶體。在許多實施例中,快取記憶體112可係包括有在所有核心之間共享的一個大部分,或者是被分割成數個分開的功能切片(例如,各個核心各一個切片)。快取記憶體112可亦包括有在所有核心之間共享的一個部份、以及為各個核心之分開功能切片的數個其他部份。
在許多實施例中,CPU 102包括有一個整合系統記憶體控制器114,用以提供一個介面,以與系統記憶體116通訊。在未示於圖中的其他實施例中,記憶體控制器114可係位於電腦系統100中的其他分散處。
系統記憶體116可包含動態隨機存取記憶體(dynamic random access memory,DRAM),像是一種雙資料率(double data rate,DDR)DRAM,非依電性記憶體,像是快閃記憶體,相變記憶體(phase change memory,PCM),或其他類型的記憶體技術。系統記憶體116可為一個一般用途記憶體,用以儲存要由CPU 102據以操作的資料和指令。此外,電腦系統100內亦可有其他具有讀取和寫入系統記憶體能力的潛在裝置,像是能夠做直接記憶體存取(direct memory access,DMA)的I/O(輸入/輸出)裝置。
耦接CPU 102與系統記憶體116的鏈路(即,匯流排、互連等等)可包括能夠運輸資料、位址、控制和時鐘資訊的一或多個光學的、金屬的、或其他電線(即,線路)。
平臺控制器集線器118(例如,一個I/O控制器集線器)包括有一個I/O介面,其致能在CPU 102與外部I/O裝置之間的通訊。此集線器可包括有一或多個I/O轉接器,像是I/O轉接器120。I/O轉接器將在CUP 102內所用的一個主通訊協定翻譯成能與一個特定I/O裝置,例如I/O裝置122,相容的一個協定。一個給定轉接器能夠翻譯的一些協定當中,包括一個週邊組件互連(Peripheral Component Interconnect,PCI)、通用串列匯流排(Universal Serial Bus,USB)、IDE、SCSI和1394「火線(Firewire)」。此外,係可有一或多個無線協定I/O轉接器。在無線協定的一些範例當中,係包括有藍牙(Bluetooth)、IEEE 802.11型無線協定和蜂巢式協定。
於許多實施例中,控制器裝置124係常駐於電腦系統100中。控制器裝置124可整合許多功能。例如,在電腦系統100內可有一個RAID儲存體控制器裝置。此RAID控制器可管理一個硬碟驅動器或固態磁碟(solid state disk,SSD)陣列。控制器裝置的其他例子可為離散型帶外可管理引擎、嵌入式微控制器、或其他類型的控制器。
CPU間高速介面126可提供一個介面到耦接至一或多個額外CPU的一個鏈路,並容許CPU間通訊的發生。例如,CPU間高速介面可為一個快速路徑互連(quick path interconnect,QPI)或其他類似介面。
雖然並未於圖中示出,但在許多實施例中,電腦系統100係包括有能夠提供具有運行於虛擬機器(virtual machine,VM)環境中之一或多個客作業系統(operating system,OS)的虛擬化環境之硬體和軟體邏輯。係可在此系統內的邏輯中實施一個虛擬機器監控器(virtual machine monitor,VMM)或超管理器,以隔離各個VM的作業環境(即,使得各個VM及運行於其中的OS和應用程式與此系統內之其他VM隔離並且對此系統內之其他VM毫無知覺)。
在許多實施例中,於系統100中係有一個可管理性引擎128。此可管理性引擎可包括有多個特徵,包括關於遠端管理、安全管理和功率管理的管理邏輯。在許多實施例中,可管理性引擎128係利用操作於低於運行於電腦系統100上的作業系統(OS)之等級的一個帶外(out-of-band,OOB)通訊頻道。此OOB頻道通常會具有無論OS之狀態為何均能夠維持與一個遠端系統之通訊的能力。在許多實施例中,OOB頻道亦能夠在電腦系統100處於低功率狀態中或完全關機時繼續通訊。在一些實施例中,可管理性引擎128包含Intel®主動式管理技術(Intel® Active Management Technology)硬體邏輯。在其他數個實施例中,係利用其他形式的硬體邏輯。
在許多實施例中,韌體係儲存在電腦系統100中。儲存在電腦系統100中之任何一處的韌體皆可被稱為「平臺韌體」。更具體而言,係可存在有許多類型的韌體。例如,一個系統管理韌體儲存位置130可儲存有系統管理韌體132。此系統管理韌體130可包含可擴充韌體、基本輸入/輸出系統(basic input/output system,BIOS)和/或其他類型的可,例如在啟動程序期間,用來提供關鍵指令給電腦系統100的韌體。在此電腦系統中的其他韌體可包括用於控制器裝置124的平臺控制器韌體134。此韌體可係儲存在耦接至控制器裝置124的平臺控制器韌體儲存體136中。平臺控制器韌體134可提供有關對於控制器裝置124之特徵的管理之指令。
在許多不同的實施例中,於系統中的各個韌體儲存位置(例如,系統管理韌體儲存位置130、控制器韌體儲存位置136等等)係包含一種非依電性記憶體,像是NAND快閃記憶體、NOR快閃記憶體、相變記憶體或其他型式的非依電性記憶體等。
雖然為求簡明而未於圖中示出,然而,CPU係可具有額外的介面,像是用於處置圖形和網路流量的高速I/O介面等。在許多實施例中,這些高速I/O介面可包括一或多個週
邊組件互連快捷(PCI-Express)介面。
電腦系統100儲存程式碼,以安全地發動經認證程式碼模組(ACM)138,ACM 138為一個軟體模組,其由CPU 102調用和簽署(即,對此模組的安全衡量)。可藉由利用到私用金鑰的非同步密碼術來簽署ACM 138,此私用金鑰係由CPU 102之製造商管理。當CPU 102調用ACM 138時,它首先利用對儲存在CPU 102、晶片組相關電路,像是離散PCH,或在此電腦系統中之其他硬體中的已獲提供之公用金鑰做雜湊而被認證。此公用金鑰被用來解密由內部私用金鑰所加密的資訊。一般而言,此公用金鑰會是恆久不變的。藉由利用這些習知安全程序來衡量ACM 138,此模組可被驗證為是一個可信賴執行環境。為求安全,ACM可係運行於一個經認證程式碼(AC)模式中。在處於AC模式中時,所有的系統中斷和事件皆不可中斷ACM,並且ACM被保護以免受其他系統和DMA代理器侵擾。當運行於AC模式中時,只有一個硬體緒是作動的,因此,所有的其他硬體緒都被會合(rendezvoused)並帶入一種靜止/休眠狀態。
可在電腦系統100之第一啟動期間或之前提供一個韌體更新公用金鑰140,並將其儲存在系統管理韌體儲存體130中。韌體更新公用金鑰140可被用來認證韌體影像資訊。在一些實施例中,公用金鑰140係專獨地用於對韌體影像之認證。雖然係使用「公用金鑰」一詞,並且一些實施例係儲存實際的文數的、未加密的金鑰,但在其他數個實施例中,「公用金鑰」可係指涉公用金鑰之雜湊。公用金鑰可被儲存在處理器之唯讀記憶體(read-only memory,ROM)中或者是其他地方。有可能可係儲存一個雜湊來取代完整的公用金鑰,以節省儲存空間。要被寫入到此電腦系統中的一個韌體影像可包括有公用金鑰。在此影像中之公用金鑰可接著被雜湊,並與已儲存在系統ROM中的公用金鑰之雜湊作比較。在某些實施例中,此雜湊可被加密,以求額外的安全性。
在許多實施例中,電腦系統100能夠進入一個平臺韌體防護技術(PFAT)模式。此PFAT模式致使一或多個平臺韌體被鎖住。當處於PFAT模式中時,只有運行於AC模式中的ACM被容許執行對在電腦系統100中之韌體儲存位置的更新(即,寫入)。並且甚至ACM係被要求執行特殊處理程序來容許對平臺韌體儲存體作寫入。一旦處於PFAT模式中,電腦系統便無法離開此模式。在許多實施例中,是在每次啟動電腦系統時便進入PFAT模式,使得任何韌體所位在的記憶體位址空間皆被鎖住。例如,由於系統管理韌體儲存體130係透過平臺控制器集線器118而耦接至CPU 102,所以目標為系統管理韌體儲存體130的任何寫入都會在路線上經過平臺控制器集線器118。當此系統正處於PFAT模式中時,對於保留給系統管理韌體儲存體130之記憶體位置的任何試圖寫入(而沒有先運用一個安全ACM式解鎖程序)都會被平臺控制器集線器118拒絕。有關以ACM為基礎的安全解鎖程序將於下文中討論。
在許多實施例中,於啟動程序期間在韌體裡所執行的程式碼會設定可致能PFAT模式的一個單次寫入暫存器。例如,位於平臺中的一個PFAT管理暫存器可具有一個PFAT致能位元,用以致能PFAT模式。在一些實施例中,此PFAT管理暫存器係位於平臺控制器集線器118中(PFAT暫存器142A)。在其他數個實施例中,此PFAT管理暫存器係位在CPU非核心(uncore)中的其他地方(PFAT暫存器142B)。此暫存器可具有與管理PFAT模式相關聯的數個位元。例如,此PFAT暫存器可包括有一個PFAT模式致能位元,其在被設定時會致能PFAT模式。同樣地,此PFAT暫存器可亦包括有一個PFAT模式鎖住位元,其在被設定時會不容許對PFAT模式致能位元做更進一步的更新(至少到此平臺被完全重置之前)。此鎖住位元可消滅惡意實體之在電腦系統100之正常操作期間對PFAT模式去能的能力。
如於本文中所論述的,一旦處於PFAT模式中,便不允許對代表系統管理韌體儲存體130的記憶體位址空間之正常寫入。在許多實施例中,當電腦系統100進入PFAT模式時,平臺控制器集線器118會設定一個內部PCH鎖定暫存器144,其指出對系統管理韌體儲存體130的寫入不被允許。當PCH鎖定暫存器144被設定時,任何試圖要寫入韌體儲存體130的異動都會被平臺控制器集線器118廢除。
此外,在許多實施例中,於系統記憶體116中係存在有運行於OS頂端的韌體更新邏輯146。韌體更新邏輯146可接收要更新電腦系統100內之特定韌體的一個請求。此更新請求可係來自於網路上的一個系統管理者,其可係來自於系統內部(例如,來自於補救OS之修改),或來自於其他地方。在許多實施例中,要更新韌體的請求係伴同實際更新之影像而來。此韌體更新影像可係直接與請求一同到來,抑或是稍後在請求被接收並同意時才到來。此韌體影像可以是對韌體之完全重寫(例如,新版本),或可能是較小的更新(例如,對整個韌體之一小部份的重寫。在一些時候,韌體更新邏輯146會接收更新之實際影像。此韌體更新影像被儲存在系統記憶體116內的韌體影像測試儲存體148中。一旦韌體更新邏輯146已將整個影像儲存到測試儲存體中,ACM 138便被調用,並且系統進入AC模式。在從運行韌體更新邏輯146的標準模式轉變成運行於AC模式中的ACM 138期間,韌體更新邏輯146將指向系統記憶體116中之韌體影像測試儲存體148位置的一個指標遞交給ACM 138。此項交遞係利用在CPU 102內一個暫存器來儲存指標,或者是,可將此指標儲存在系統記憶體116中的一個已知交遞位置中。
一旦係處於AC模式中且握有已儲存之韌體影像的位置,ACM 138便起始利用公用金鑰140之對於此韌體影像的一個認證程序。此認證程序利用非同步加密來解密和衡量所接收到的韌體影像。在許多實施例中,係可利用儲存在電腦系統中的此恆定不變的公用金鑰,來驗證出接收自一個供應商的一個韌體影像是可靠的。在許多實施例中,此公用金鑰對任何實體來說皆為可取用的,而在其他數個實施例中,是有受限的一組實體具有讀取儲存有此公用金鑰之儲存位置的取用權。例如,在一些實施例中,處於AC模式中的ACM 138為唯一一個能夠取用儲存在CPU 102中之公用金鑰140的的實體。
ACM 138執行公用金鑰衡量來認證儲存在韌體影像測試儲存體148中的韌體影像。若此韌體影像可被成功認證(即,此影像的安全性沒有被破解),則ACM 138對CPU 102中之鎖定暫存器150執行一個特殊寫入週期。在許多實施例中,CPU 102中之鎖定暫存器150為僅可由處於AC模式中之ACM寫入的一個特殊MSR(特定模型暫存器(model-specific register))。因此,此暫存器對於標準模式OS或其他類似實體而言是個禁區。對鎖定暫存器150的此特殊寫入週期致使CPU 102產生被傳送給平臺控制器集線器118的以ACM為基礎的一個安全解鎖命令。當此安全解鎖命令抵達時,平臺控制器集線器118內的邏輯會清除PCH鎖定暫存器144。當PCH鎖定暫存器144被清除時,平臺控制器集線器118會容許對系統管理韌體儲存體130位址空間之寫入。
一旦對韌體儲存體之寫入被容許,ACM 138便將經認證的韌體影像從韌體影像測試儲存體148位置複製到系統管理韌體儲存體130。一旦複製完成,則ACM 138可藉由發出對CPU鎖定暫存器150的另一個特殊寫入週期而發出一個接下來的鎖定命令,CPU鎖定暫存器150轉而致使被發送至平臺控制器集線器118之以ACM為基礎的一個鎖定命令被產生。當平臺部件集線器118接收到此鎖定命令時,於此集線器內的邏輯會設定PCH鎖定暫存器144,並且系統管理韌體儲存體130又再次被阻擋使其不能接收任何寫入。
前面在第1圖中的範例係處理對系統管理韌體132之更新。在另一個實施例中,此更新可係有關平臺控制器韌體134。
在電腦系統100的各次啟動期間,係可產生一個短暫的(即,暫時的)通行密碼。被用來產生此短暫通行密碼的邏輯可係位於CPU 102中、系統管理韌體132中、或者是在電腦系統100內的其他地方。此短暫通行密碼通常是由一個作業系統在先於電腦系統之正常操作的一個早期啟動序列中產生。所產生的短暫通行密碼被內部地儲存在CPU 102內的一個暫時通行密碼暫存器152中。同一個通行密碼也被分散到此電腦系統中之在正常操作期間需要與CPU安全交握的任何控制器或其他裝置。可有一個控制器,像是控制器裝置124,具有一個內部暫時通行密碼儲存位置154,用以儲存在啟動時間通行密碼分散期間內所接收到的通行密碼。此短暫通行密碼大體上係在一個安全啟動處理程序期間被創造、分散並儲存,以顧及高安全性。此安全啟動處理程序比在正常操作期間更不可能被破解,因此,於此時期內分散短暫通行密碼會使得此通行密碼比較不可能被竊取。
接著,在電腦系統100可完全操作(例如,運行一個OS)之後,可由韌體更新邏輯146接收要更新平臺控制器韌體134的一個請求。當此請求被接收時,便進行關於複製更新影像至韌體影像測試儲存位置148的相同處理程序。韌體更新邏輯146調用ACM 138,並將對系統的控制權傳遞給ACM 138。ACM 138轉而認證此影像,並且若此影像被成功認證,則試圖要執行韌體更新。雖然,不同於系統管理韌體132的情況,ACM 138對平臺控制器韌體134並沒有完全的控制權。
控制器裝置124可具有它自己的異於CPU 102之安全程序和不同操作要求。基本上,控制器裝置124想要確實知道對於控制器韌體儲存體136空間的寫入請求真的是源自於ACM 138。為了創造一個更為安全的驗證處理程序,ACM 138可傳送一個請求給控制器裝置124執行對控制器韌體儲存體136中之位址空間的韌體更新。此以ACM為基礎的請求可係連同短暫通行密碼抵達。
為了驗證所接收到的ACM 138請求之確實性,控制器裝置124可將所接收到的於此請求中之短暫通行密碼與所儲存的原本係於電腦系統100之目前啟動期間抵達的短暫通行密碼做比較。在許多實施例中,在控制器裝置124內的更新邏輯156會執行這項比較。若這兩個通行密碼相等,則控制器裝置124可開放控制器韌體儲存體136位址空間給源自於ACM 138的寫入。否則的話,控制器韌體儲存體136維持鎖定,且控制器裝置124可產生某種指出此安全問題的錯誤訊息。在許多實施例中,為了在CPU 102內之暫時通行密碼暫存器152中保持短暫通行密碼的安全,此暫存器係僅可由處於AC模式中的ACM 138存取。同樣的,在許多實施例中,一旦ACM 138已結束對控制器韌體儲存體136寫入經認證韌體影像,ACM 138便可傳送一個接下來的通訊信息給控制器裝置124來表示更新已完成,以使控制器裝置124曉得要不容許對控制器韌體儲存空間136的更進一步的寫入。
在許多實施例中,ACM可實施針對韌體更新的回轉保護。回轉保護將對平臺韌體之更新只限制於較新版本的韌體更新影像。在一些實施例中,此韌體更新影像可具有指出韌體版本的一個標頭,且目前常駐韌體也具有一個類似的標頭。ACM可讀取這兩種標頭,且只在新的韌體影像是比目前常駐於平臺中之韌體更近期的韌體版本時才容許新的韌體影像被寫入到韌體儲存位置。
第2圖為用於鎖住平臺部件集線器以防容許對系統管理韌體儲存空間之寫入的一個處理程序之一實施例的流程圖。此處理程序可係由處理邏輯執行,處理邏輯可包含硬體電路、軟體碼、韌體碼、或任何這三種處理邏輯類型的組合。在這整份文件中,任何使用處理邏輯一詞的東西皆可係有效地實施於上面所述的邏輯及甚至是其他形式的邏輯之任何組合中。
此處理程序從在一個處理器之啟動期間由處理邏輯設定一個PFAT模式致能位元處理邏輯開始(處理方塊200),以作動此電腦系統中的一個韌體更新保護機構。此PFAT模式致能碼可係位在此電腦系統中的一個PCH裝置內的一個韌體管理暫存器中。一旦此PFAT模式致能碼被設定來致能PFAT,處理邏輯便設定一個PFAT模式致能鎖住位元(處理方塊202)。此PFAT模式致能鎖住位元並不容許對PFAT模式致能碼之更進一步的修改。在許多實施例中,PFAT模式致能鎖住位元是在此電腦系統之每次啟動中可作單次寫入的一個位元。在這些實施例中,在此電腦系統的完全重置期間,此PFAT模式鎖住位元可再次為可修改的。因此,致能PFAT模式並接著鎖住PFATA模式的此處理程序會在每次啟動期間發生。
雖然在未示於圖2中的其他數個實施例中,PFAT模式致能位元是在寫入後於電腦系統之餘生中就不能再被修改的一個單次寫入暫存器。但在這些實施例中,PFAT模式致能位元會在此電腦系統的每次啟動期間被寫入一次,且在這之後(直到此電腦系統被重新啟動之前)指出此電腦系統是否已致能PFAT模式。同樣地,在這些實施例中,PFAT模式致能鎖住位元並不必然要如同PFAT模式致能位元一般,在啟動處理程序期間內的第一次寫入後就永遠不可再被重新寫入。因此,處理方塊202在這些替代實施例中並不是必然的。
一旦此處理程序結束,電腦平臺便繼續其啟動程序。
第3A圖例示用於開始一個安全平臺韌體更新程序的一個處理程序之一實施例之流程圖。
處理邏輯從接收要更新平臺韌體的一個請求開始(處理方塊300)。此請求可係有關在整個電腦系統中的任何類型的可更新韌體。因此,在一些實施例中,這可係指系統管理韌體,在其他數個實施例中,這可係指平臺控制器韌體,而又在其他數個實施例中,儲存在電腦系統/平臺中之韌體甚至有其他的類型和位置。
此處理程序繼續前進,處理邏輯將與此請求相關聯的一個韌體影像複製到系統記憶體中的一個位置(處理方塊302)。依更新之類型而定,此影像可為整個韌體之影像,或者只是一部分的影像。在許多實施例中,此影像可被加密。經加密的影像可係已藉由利用公用金鑰的一個非同步加密演算法而被解密。此公用金鑰可係在電腦系統被建造時或在之後的時間被提供給此系統。此公用金鑰可被安全地儲存在一個不可寫入記憶體位置,像是在系統管理韌體儲存體的一個安全部份中。回到第3A圖,一旦韌體影像已被複製到系統記憶體,處理邏輯便利用儲存在電腦系統內的一個安全位置中之可取得的公用金鑰來認證此影像(處理方塊304)。
在第3A圖中的方塊304及以上係可由在被調用入此系統並運行於AC模式中的一個ACM中之邏輯處理。對ACM之調用已於上文中配合第1圖論述。在許多實施例中,此認證處理過程包括驗證出儲存在系統中的不可複製公用金鑰符合被包括在影像內之公用金鑰。可利用電腦系統中的一個安全處理程序來衡量此影像。用來判定此影像之真實性的處理程序可採取數種形式,但所欲結果係要確認此影像並未被破解。處理邏輯會做檢查,以看出此影像是否已被驗證為是真實的(處理方塊306)。另外,雖然未示於圖中,但韌體影像可能係以一種經加密形式被傳送,這會需要可由ACM取用的額外的解密金鑰,以使得能夠在認證之前對影像解密。
若對影像之認證失敗,則處理邏輯傳送一個錯誤訊息給CPU(處理方塊308)。例如,處理邏輯可起始用於傳遞關於影像之認證的失敗/問題的一個中斷。另一方面,若此影像之認證成功(即,此影像被驗證為真實的),則處理邏輯可前進到例示於第3B圖中的處理程序。
第3B圖例示用於繼續一個安全平臺韌體更新程序的一個處理程序之一實施例之流程圖。
於此處理流的這個時點,處理邏輯(例如,ACM中之邏輯)將平臺韌體儲存位置解鎖,以容許發生寫入(處理方塊310)。在平臺韌體儲存位置為一個系統管理韌體儲存位置的數個實施例中(如上文中參考第1圖所述的),ACM內的邏輯在驗證影像之真實性(第3A圖中之方塊306)後,即向前進來解鎖PCH,以容許對系統管理韌體儲存位置之寫入。在平臺韌體常駐於控制器儲存體中的其他數個實施例中,係需要另一個處理程序來繼續對韌體儲存體作寫入(以控制器韌體為基礎的處理程序係描述於第4圖中)。
請回到第3B圖,一旦平臺韌體儲存位置被解鎖,處理邏輯便將韌體影像複製到平臺韌體儲存位置(處理方塊312)。最後,在經認證的影像被複製到平臺韌體儲存位置後,處理邏輯便將韌體儲存位置鎖定以不再容許任何寫入(處理方塊314),且此處理程序結束。
如於上文中更進一步論述的,平臺韌體儲存解鎖處理程序係取決於韌體儲存體所位在之處。在平臺韌體儲存體為系統管理韌體儲存位置的情況中,解鎖處理程序可能會需要運行於AC模式中的一個ACM(第1圖中之138)來寫入到一個CPU鎖定暫存器(第1圖中之150)。在許多實施例中,CPU鎖定暫存器為在CPU(第1圖中之102)非核心中的一個MSR。僅可由AC模式中之ACM起始的一個特殊寫入MSR(write MSR,WRMSR)命令對CPU鎖定暫存器作寫入。此處理程序接著產生一個特殊寫入,其目標為駐於PCH(第1圖中之118)中的一個PCH鎖定暫存器(第1圖中之144)。目標為PCH鎖定暫存器的此寫入命令可致使PCH開啟對系統管理韌體儲存體(第1圖中之130)之寫入能力,這會容許ACM將新的系統管理韌體影像寫入正確的儲存位置。於完成影像之寫入之後,可即接著起始一個類似的WRMSR命令至相同的CPU鎖定暫存器,以將系統管理韌體儲存體重新鎖定。
第4圖為用於安全地更新一個電腦系統中之控制器韌體的一個處理程序之一實施例之流程圖。在許多實施例中,例示於第4圖中的此處理流包括用於ACM/CPU的處理邏輯以及用於所論控制器的處理邏輯。因此,為了使此處理程序可明白示出邏輯處理各個方塊之處,第4圖左側(粗虛線左邊)可係表示與CPU/ACM有關的邏輯,而第4圖右側(粗虛線右邊)可係表示與控制器有關的邏輯。
以CPU為基礎的處理邏輯在此電腦平臺的一個啟動序列期間,藉由創造一個短暫通行密碼而開始(處理方塊400)此短暫通行密碼可為藉目前的系統管理韌體或藉此電腦系統內的其他邏輯所隨機產生的。此隨機通行密碼接著會由處理邏輯本地地儲存在CPU中之僅可由ACM取用的一個儲存位置中或是在可由CPU取用的另一個安全儲存位置中(處理方塊402)。例如,CPU中之暫時通行密碼暫存器(第1圖中之152)可儲存所產生的此短暫通行密碼,並且此暫存器可係僅可由處於AC模式中之ACM取用。
以CPU為基礎的處理邏輯接著將此暫時通行密碼傳送至控制器(處理方塊404)。控制器處理邏輯,仍然是在此系統啟動序列期間中,接收此暫時通行密碼(處理方塊406)。在這個時候,控制器處理邏輯假定此暫時通行密碼是有效的,因為系統尚未進入正常操作,且應該還沒有機會被破解。處理邏輯接著本地地儲存所接收到的暫時通行密碼(處理方塊408)(例如,其可被儲存在暫時通行密碼儲存體154中)。此時,於控制器中的處理邏輯會等待,直到接收到韌體更新請求。
同時,請回到第3A圖,一個實體可能會請求要更新平臺韌體(第3A圖中之300),且以CPU/ACM為基礎的處理邏輯將會穿越與第3A圖相關聯的這些方塊來認證新的特定控制器平臺韌體影像。一旦此影像已被認證,ACM處理邏輯便處理第4A圖中的下一個方塊,並將要更新控制器韌體的一個請求傳送給控制器(處理方塊410)。控制器邏輯接收此韌體更新請求,連同由CPU所儲存的目前短暫通行密碼(處理方塊412)。接下來,控制器處理邏輯將剛剛和請求一起接收到的目前短暫通行密碼與在啟動處理程序期間所接收到的可信賴短暫通行密碼作比較(處理方塊414)。
若符合(處理方塊416),則控制器處理邏輯接著容許來自於ACM的對此控制器之韌體儲存體之寫入,並且傳送一個接受更新響應給ACM(處理方塊418)。以ACM為基礎的此處理邏輯可接著藉由繼續在第3B圖中之處理方塊內的控制器更新而繼續其更新處理。否則的話,若並不符合,控制器處理邏輯便傳送一個拒絕響應給ACM(同時繼續不容許對控制器之韌體儲存體的寫入。以ACM為基礎的此處理邏輯接收此拒絕響應並起始一個錯誤序列(處理方塊422)。此錯誤序列可如同中斷之產生而多變,在其他響應當中,還有設定錯誤旗標、致使系統關機、或透過一個管理引擎(第1圖中之128)將與此誤差有關的帶外資訊傳送給一個資訊技術管理者等等。
本發明之數個實施例的數個元件可亦係提供為用於儲存機器可執行指令的一個機器可讀媒體。此機器可讀媒體可包括,但不受限於,快閃記憶體、光學碟片、緊密光碟唯讀記憶體(compact disks-read only memory,CD-ROM)、數位多媒體/視訊碟片(digital versatile/video disks,DVD)ROM、隨機存取記憶體(random access memory,RAM)、可拭除可規劃唯讀記憶體(erasable programmable read-only memory,EPROM)、可電氣式拭除可規劃唯讀記憶體(electrically erasable programmable read-only memory,EEPROM)、磁性或光學卡、傳播媒體或其他類型的適於儲存電子指令的機器可讀媒體。
在上文中之說明與在申請專利範圍中,可能有使用「包括」和「包含」等詞語及其衍生詞,此等詞語係意欲要被當作是彼此同義的。此外,於後文中之說明與申請專利範圍中,可能有使用「耦接」和「連接」等詞語及其衍生詞。應瞭解,這些詞語並不被預期為彼此同義的。相反地,在數個特定實施例中,「連接」係可被用來指出二或更多個元件係直接實體上或電氣式地彼此接觸。「耦接」可係指二或更多個元件係直接實體上或電氣式地接觸。然而,「耦接」可亦係指二或更多個元件並不直接彼此接觸,但仍彼此協作、互動或通訊。
在上文中之說明中,係使用某些措辭來描述本發明的數個實施例。例如,「邏輯」一詞係表示用來執行一或多個功能的硬體、韌體、軟體(或當中之任何組合)。例如,「硬體」的範例包括但不受限於積體電路、有限狀態機、或甚至是組合邏輯。積體電路可係採取處理器之形式,像是微處理器、特定應用積體電路、數位信號處理器、微處理器、或其他諸如此類者。
應可識出,於本說明書通篇中對於「一個實施例」或「一實施例」的指涉係指配合此實施例所說明的一個特定特徵、結構或特性係被包括在本發明的至少一個實施例中。因此,要強調,並且應可識出,在本說明書之多處中對於「一實施例」或「一個實施例」或「一替代實施例」的二或更多個指涉並不必然全係指同一個實施例。此外,特定特徵、結構或特性係可被組合,以適於本發明之一或更多個實施例中。
同樣地,應識出,在前文中之對本發明的數個實施例之說明中,許多特徵有時候是集結在單一個實施例、圖式或其說明中,以簡化本揭露內容,而協助瞭解多個發明觀點中之一或多者。然而,此揭露方法並不應該被解讀為反映出意欲要使所請求之標的需要比在各個請求項中所明顯記載的更多個特徵。相反地,如後文中之申請專利範圍所反映的,發明觀點係存於前文中所揭露的單一個實施例中之不到所有的特徵當中。因此,在詳細說明之後的申請專利範圍特此明顯被併入此詳細說明中。
100...系統
102...中央處理單元(CPU)
104~110...核心
112...快取記憶體
114...記憶體控制器
116...系統記憶體
118...平臺控制器集線器
120...輸入/輸出(I/O)轉接器
122...輸入/輸出(I/O)
124...控制器裝置
126...中央處理單元(CPU)間高速介面
128...可管理性引擎
130...系統管理韌體儲存體/系統管理韌體儲存位置
132...系統管理韌體
134...平臺控制器韌體
136...控制器韌體儲存體/控制器韌體儲存位置
138...經認證程式碼模組(ACM)
140...公用金鑰
142A、142B...平臺韌體防護技術(PFAT)暫存器
144...平臺部件集線器(PCH)鎖定暫存器
146...韌體更新邏輯
148...韌體影像測試儲存體/韌體影像測試儲存位置
150...鎖定暫存器
152...暫時通行密碼暫存器
154...暫時通行密碼儲存體/暫時通行密碼儲存位置
156...更新邏輯
200~202、300~314、400~420...方塊
第1圖例示能夠安全地更新一個電腦平臺的一個電腦系統之一實施例。
第2圖為用於鎖住一個平臺部件集線器以使得對系統管理韌體儲存空間之寫入不被允許的一個處理程序之一實施例的流程圖。
第3A圖例示用於開始一個安全平臺韌體更新程序的一個處理程序之一實施例的流程圖。
第3B圖例示用於繼續一個安全平臺韌體更新程序的一個處理程序之一實施例的流程圖。
第4圖為用於安全地更新一個電腦系統中之控制器韌體的一個處理程序之一實施例的流程圖。
100‧‧‧系統
102‧‧‧中央處理單元(CPU)
104~110‧‧‧核心
112‧‧‧快取記憶體
114‧‧‧記憶體控制器
116‧‧‧系統記憶體
118‧‧‧平臺控制器集線器
120‧‧‧輸入/輸出(I/O)轉接器
122‧‧‧輸入/輸出(I/O)
124‧‧‧控制器裝置
126‧‧‧中央處理單元(CPU)間高速介面
128‧‧‧可管理性引擎
130‧‧‧系統管理韌體儲存體/系統管理韌體儲存位置
132‧‧‧系統管理韌體
134‧‧‧平臺控制器韌體
136‧‧‧控制器韌體儲存體/控制器韌體儲存位置
138‧‧‧經認證程式碼模組(ACM)
140‧‧‧公用金鑰
142A、142B‧‧‧平臺韌體防護技術(PFAT)暫存器
144‧‧‧平臺部件集線器(PCH)鎖定暫存器
146‧‧‧韌體更新邏輯
148‧‧‧韌體影像測試儲存體/韌體影像測試儲存位置
150‧‧‧鎖定暫存器
152‧‧‧暫時通行密碼暫存器
154‧‧‧暫時通行密碼儲存體/暫時通行密碼儲存位置
156‧‧‧更新邏輯
Claims (25)
- 一種用於平臺韌體防護的方法,其包含下列步驟:於一個電腦平臺之一啟動上,將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式,其中該電腦平臺包括儲存有一第一平臺韌體的一個平臺韌體儲存位置;反應於該平臺韌體更新機構被切換至該PFAT模式,而持續地鎖定該平臺韌體儲存位置,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的一個經認證碼模組(ACM)以外的任何實體對該平臺韌體儲存位置之寫入。
- 如申請專利範圍第1項之方法,其中該解鎖程序進一步包含:該平臺韌體更新機構起始對一個PFAT保護控制暫存器的一個特殊記憶體寫入週期,其中對該PFAT保護控制暫存器的該特殊記憶體寫入週期致使耦接至該平臺韌體儲存位置的一個控制器接受來自於該平臺韌體更新機構的對該平臺韌體儲存位置的一個位址空間之寫入命令。
- 如申請專利範圍第2項之方法,其進一步包含下列步驟:提供一個公用加密金鑰至該平臺韌體儲存位置;接收要以經更新的一個韌體影像來更新該第一平臺韌體的一個不安全請求;反應於該不安全請求,將經更新的該韌體影像載入至 該電腦平臺中的一個系統記憶體中;一旦該韌體影像已完全載入至系統記憶體內,便調用該ACM;利用該公用加密金鑰而執行對經更新之該韌體影像之認證;反應於經更新之該韌體影像被成功認證,執行對於該平臺韌體儲存位置的該解鎖程序;以及將經認證之該韌體影像從該系統記憶體複製至該平臺韌體儲存位置。
- 如申請專利範圍第3項之方法,其進一步包含下列步驟:在對該韌體影像之認證失敗時,發出一個錯誤。
- 如申請專利範圍第3項之方法,其中該第一平臺韌體包含一個系統管理韌體,並且其中該控制器包含一個平臺部件集線器。
- 如申請專利範圍第3項之方法,其中該第一平臺韌體包含一個控制器管理韌體,並且其中該控制器包含位於該電腦平臺內的一個控制器。
- 如申請專利範圍第6項之方法,其進一步包含下列步驟:在該電腦平臺的各次啟動時,產生一個短暫通行密碼;將該短暫通行密碼儲存在只能由該ACM取用的一個安全位置中;以及 將該短暫通行密碼至少分散至耦接至該平臺韌體儲存位置的該控制器處。
- 如申請專利範圍第7項之方法,其進一步包含下列步驟:反應於利用該公用加密金鑰而對經更新之該韌體影像之成功認證,該ACM傳送一個安全請求至該控制器而請求允許更新該控制器管理韌體,其中該安全請求包括該短暫通行密碼;該控制器將從該安全請求中所接收的該短暫通行密碼與在該電腦平臺之最近期啟動期間所接收到的該短暫通行密碼作比較;以及反應於該等二短暫通行密碼相等之情形,該控制器容許該ACM執行對該控制器管理韌體之更新。
- 一種用於平臺韌體防護的設備,其包含:用於於一個電腦平臺之一啟動上將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式的邏輯,其中該電腦平臺包括儲存有一第一平臺韌體的一個平臺韌體儲存位置;反應於該平臺韌體更新機構被切換至該PFAT模式,用於持續地鎖定該平臺韌體儲存位置的邏輯,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的一個經認證碼模組(ACM)以外的任何實體對該平臺韌體儲存位置之寫入。
- 如申請專利範圍第9項之設備,其進一步包含用 於進行下列動作的邏輯:起始對一個PFAT保護控制暫存器的一個特殊記憶體寫入週期,其中對該PFAT保護控制暫存器的該特殊記憶體寫入週期致使耦接至該平臺韌體儲存位置的一個控制器接受來自於該平臺韌體更新機構的對該平臺韌體儲存位置的一個位址空間之寫入命令。
- 如申請專利範圍第10項之設備,其進一步包含用於進行下列動作的邏輯:提供一個公用加密金鑰至該平臺韌體儲存位置;接收要以經更新的一個韌體影像來更新該第一平臺韌體的一個不安全請求;反應於該不安全請求,將經更新的該韌體影像載入至該電腦平臺中的一個系統記憶體中;一旦該韌體影像已完全載入至系統記憶體內,便調用該ACM;利用該公用加密金鑰而執行對經更新之該韌體影像之認證;反應於經更新之該韌體影像被成功認證,執行對於該平臺韌體儲存位置的該解鎖程序;以及將經認證之該韌體影像從該系統記憶體複製至該平臺韌體儲存位置。
- 如申請專利範圍第11項之設備,其進一步包含用於進行下列動作的邏輯:在對該韌體影像之認證失敗時,發出一個錯誤。
- 如申請專利範圍第11項之設備,其中該第一平臺韌體包含一個系統管理韌體,並且其中該控制器包含一個平臺部件集線器。
- 如申請專利範圍第11項之設備,其中該第一平臺韌體包含一個控制器管理韌體,並且其中該控制器包含位於該電腦平臺內的一個控制器。
- 如申請專利範圍第14項之設備,其進一步包含:在該電腦平臺的各次啟動時,用於進行下列動作的邏輯:產生一個短暫通行密碼;將該短暫通行密碼儲存在只能由該ACM取用的一個安全位置中;以及將該短暫通行密碼至少分散至耦接至該平臺韌體儲存位置的該控制器處。
- 如申請專利範圍第15項之設備,其進一步包含:反應於利用該公用加密金鑰而對經更新之該韌體影像之成功認證,用於傳送一個安全請求至該控制器而請求允許更新該控制器管理韌體的邏輯,其中該安全請求包括該短暫通行密碼;在該控制器內之用於將接收自該安全請求的該短暫通行密碼與在該電腦平臺之最近期啟動期間所接收到的該短暫通行密碼作比較的邏輯;以及在該控制器內之用於反應於該等二短暫通行密碼相等之情形而容許該ACM執行對該控制器管理韌體之更新的 邏輯。
- 一種用於平臺韌體防護的具有儲存在內之指令的機器可讀媒體,該等指令在由一個機器執行時致使該機器執行一種方法,該方法包含下列步驟:於一個電腦平臺之一啟動上,將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式,其中該電腦平臺包括儲存有一第一平臺韌體的一個平臺韌體儲存位置;反應於該平臺韌體更新機構被切換至該PFAT模式,而持續地鎖定該平臺韌體儲存位置,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的一個經認證碼模組(ACM)以外的任何實體對該平臺韌體儲存位置之寫入。
- 如申請專利範圍第17項之機器可讀媒體,其中該解鎖程序進一步包含:該平臺韌體更新機構起始對一個PFAT保護控制暫存器的一個特殊記憶體寫入週期,其中對該PFAT保護控制暫存器的該特殊記憶體寫入週期致使耦接至該平臺韌體儲存位置的一個控制器接受來自於該平臺韌體更新機構的對該平臺韌體儲存位置的一個位址空間之寫入命令。
- 如申請專利範圍第18項之機器可讀媒體,其中所執行之該方法進一步包含下列步驟:提供一個公用加密金鑰至該平臺韌體儲存位置;接收要以經更新的一個韌體影像來更新該第一平臺韌 體的一個不安全請求;反應於該不安全請求,將經更新的該韌體影像載入至該電腦平臺中的一個系統記憶體中;一旦該韌體影像已完全載入至系統記憶體內,便調用該ACM;利用該公用加密金鑰而執行對經更新之該韌體影像之認證;反應於經更新之該韌體影像被成功認證,執行對於該平臺韌體儲存位置的該解鎖程序;以及將經認證之該韌體影像從該系統記憶體複製至該平臺韌體儲存位置。
- 如申請專利範圍第19項之機器可讀媒體,其中所執行之該方法進一步包含下列步驟:在對該韌體影像之認證失敗時,發出一個錯誤。
- 如申請專利範圍第19項之機器可讀媒體,其中該第一平臺韌體包含一個系統管理韌體,並且其中該控制器包含一個平臺部件集線器。
- 如申請專利範圍第19項之機器可讀媒體,其中該第一平臺韌體包含一個控制器管理韌體,並且其中該控制器包含位於該電腦平臺內的一個控制器。
- 如申請專利範圍第22項之機器可讀媒體,其中所執行之該方法進一步包含下列步驟:在該電腦平臺的各次啟動時,產生一個短暫通行密碼; 將該短暫通行密碼儲存在只能由該ACM取用的一個安全位置中;以及將該短暫通行密碼至少分散至耦接至該平臺韌體儲存位置的該控制器處。
- 如申請專利範圍第23項之機器可讀媒體,其中所執行之該方法進一步包含下列步驟:反應於利用該公用加密金鑰而對經更新之該韌體影像之成功認證,該ACM傳送一個安全請求至該控制器而請求允許更新該控制器管理韌體,其中該安全請求包括該短暫通行密碼;該控制器將接收自該安全請求的該短暫通行密碼與在該電腦平臺之最近期啟動期間所接收到的該短暫通行密碼作比較;以及反應於該等二短暫通行密碼相等之情形,該控制器容許該ACM執行對該控制器管理韌體之更新。
- 一種用於平臺韌體防護的系統,其包含:一個平臺部件集線器;一個平臺韌體儲存體,用以儲存一個平臺韌體;一個系統記憶體,用以儲存一個經認證碼模組(ACM);用於於一個電腦平臺之一啟動上將位於該電腦平臺中的一個平臺韌體更新機構切換至一個平臺韌體防護技術(PFAT)模式的邏輯;反應於該平臺韌體更新機構被切換至該PFAT模式, 該平臺部件集線器持續地鎖定該平臺韌體儲存位置,其中,當被持續地鎖定時,並不容許由除了在一個平臺韌體更新機構解鎖程序後的該ACM以外的任何實體對該平臺韌體儲存位置之寫入。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/887,866 US8522322B2 (en) | 2010-09-22 | 2010-09-22 | Platform firmware armoring technology |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201218079A TW201218079A (en) | 2012-05-01 |
TWI528281B true TWI528281B (zh) | 2016-04-01 |
Family
ID=45818803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100133375A TWI528281B (zh) | 2010-09-22 | 2011-09-16 | 平臺韌體防護方法、設備、系統以及相關的機器可讀媒體 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8522322B2 (zh) |
JP (2) | JP5643901B2 (zh) |
CN (1) | CN107092495B (zh) |
GB (1) | GB2497224B (zh) |
TW (1) | TWI528281B (zh) |
WO (1) | WO2012039971A2 (zh) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
US9405668B1 (en) * | 2011-02-15 | 2016-08-02 | Western Digital Technologies, Inc. | Data storage device initialization information accessed by searching for pointer information |
WO2012139026A2 (en) * | 2011-04-08 | 2012-10-11 | Insyde Software Corp. | System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device |
US9331855B2 (en) | 2011-07-01 | 2016-05-03 | Intel Corporation | Apparatus, system, and method for providing attribute identity control associated with a processor |
US8863109B2 (en) * | 2011-07-28 | 2014-10-14 | International Business Machines Corporation | Updating secure pre-boot firmware in a computing system in real-time |
KR101636816B1 (ko) | 2011-09-29 | 2016-07-20 | 인텔 코포레이션 | 메모리 액세스 제어를 제공하는 장치, 시스템, 및 방법 |
US9596082B2 (en) * | 2011-12-15 | 2017-03-14 | Intel Corporation | Secure debug trace messages for production authenticated code modules |
US9369867B2 (en) * | 2012-06-29 | 2016-06-14 | Intel Corporation | Mobile platform software update with secure authentication |
US8898654B2 (en) * | 2012-08-29 | 2014-11-25 | Microsoft Corporation | Secure firmware updates |
US9519786B1 (en) * | 2012-10-05 | 2016-12-13 | Google Inc. | Firmware integrity ensurance and update |
US9910659B2 (en) * | 2012-11-07 | 2018-03-06 | Qualcomm Incorporated | Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory |
CN104238954A (zh) * | 2013-06-20 | 2014-12-24 | 联想(北京)有限公司 | 一种电子设备及信息处理方法 |
US9983886B2 (en) * | 2013-07-31 | 2018-05-29 | Hewlett-Packard Development Company, L.P. | Updating boot code |
US10095868B2 (en) | 2013-11-13 | 2018-10-09 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9183394B2 (en) | 2013-11-13 | 2015-11-10 | Via Technologies, Inc. | Secure BIOS tamper protection mechanism |
US9779242B2 (en) | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Programmable secure bios mechanism in a trusted computing system |
US9547767B2 (en) | 2013-11-13 | 2017-01-17 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9767288B2 (en) | 2013-11-13 | 2017-09-19 | Via Technologies, Inc. | JTAG-based secure BIOS mechanism in a trusted computing system |
US9507942B2 (en) | 2013-11-13 | 2016-11-29 | Via Technologies, Inc. | Secure BIOS mechanism in a trusted computing system |
US9129113B2 (en) | 2013-11-13 | 2015-09-08 | Via Technologies, Inc. | Partition-based apparatus and method for securing bios in a trusted computing system during execution |
US9367689B2 (en) | 2013-11-13 | 2016-06-14 | Via Technologies, Inc. | Apparatus and method for securing BIOS in a trusted computing system |
US10055588B2 (en) | 2013-11-13 | 2018-08-21 | Via Technologies, Inc. | Event-based apparatus and method for securing BIOS in a trusted computing system during execution |
US9798880B2 (en) | 2013-11-13 | 2017-10-24 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism with override feature |
US10049217B2 (en) | 2013-11-13 | 2018-08-14 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9779243B2 (en) | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Fuse-enabled secure BIOS mechanism in a trusted computing system |
US10776457B1 (en) * | 2014-07-22 | 2020-09-15 | Epic Games, Inc. | System and method for preventing execution of unauthorized code |
GB201413836D0 (en) | 2014-08-05 | 2014-09-17 | Arm Ip Ltd | Device security apparatus and methods |
WO2016076880A1 (en) * | 2014-11-14 | 2016-05-19 | Hewlett Packard Enterprise Development Lp | Secure update of firmware and software |
US10374805B2 (en) * | 2015-07-20 | 2019-08-06 | Intel Corporation | Technologies for trusted I/O for multiple co-existing trusted execution environments under ISA control |
US11200345B2 (en) * | 2015-07-29 | 2021-12-14 | Hewlett Packard Enterprise Development Lp | Firewall to determine access to a portion of memory |
GB2540965B (en) | 2015-07-31 | 2019-01-30 | Arm Ip Ltd | Secure configuration data storage |
GB2540961B (en) * | 2015-07-31 | 2019-09-18 | Arm Ip Ltd | Controlling configuration data storage |
US20170046152A1 (en) * | 2015-08-12 | 2017-02-16 | Quanta Computer Inc. | Firmware update |
WO2017034008A1 (ja) * | 2015-08-25 | 2017-03-02 | 株式会社Seltech | ハイパーバイザーを有するシステム |
US9767318B1 (en) * | 2015-08-28 | 2017-09-19 | Frank Dropps | Secure controller systems and associated methods thereof |
CN105138378B (zh) * | 2015-09-15 | 2019-06-25 | 联想(北京)有限公司 | 一种bios刷写方法及电子设备 |
CN105335659B (zh) * | 2015-12-04 | 2018-09-14 | 上海兆芯集成电路有限公司 | 计算机系统以及计算机系统操作方法 |
CN105468964B (zh) * | 2015-12-04 | 2018-09-14 | 上海兆芯集成电路有限公司 | 计算机系统以及计算机系统操作方法 |
JP6394999B2 (ja) * | 2016-02-29 | 2018-09-26 | 京セラドキュメントソリューションズ株式会社 | 電子機器および接続情報管理プログラム |
US10042571B2 (en) * | 2016-03-31 | 2018-08-07 | Intel Corporation | Techniques to provide run-time protections using immutable regions of memory |
CN106339740B (zh) * | 2016-06-08 | 2019-05-31 | 陈时军 | 一种物品唯一标识管控方法和应用该方法的管控系统 |
KR102617354B1 (ko) * | 2017-01-05 | 2023-12-26 | 삼성전자주식회사 | 보안 부트 시퀀서 및 보안 부트 장치 |
WO2018209513A1 (zh) * | 2017-05-15 | 2018-11-22 | 华为技术有限公司 | 操作硬盘的方法和硬盘管理器 |
US11231448B2 (en) | 2017-07-20 | 2022-01-25 | Targus International Llc | Systems, methods and devices for remote power management and discovery |
US11030316B2 (en) * | 2018-09-20 | 2021-06-08 | Samsung Electronics Co., Ltd. | System and method for providing security protection for FPGA based solid state drives |
US10846162B2 (en) * | 2018-11-29 | 2020-11-24 | Oracle International Corporation | Secure forking of error telemetry data to independent processing units |
WO2020128639A1 (en) * | 2018-12-19 | 2020-06-25 | Telit Communications S.P.A. | Systems and methods for managing a trusted application in a computer chip module |
JP7138043B2 (ja) * | 2018-12-28 | 2022-09-15 | 日立Astemo株式会社 | 情報処理装置 |
US10963592B2 (en) | 2019-02-05 | 2021-03-30 | Western Digital Technologies, Inc. | Method to unlock a secure digital memory device locked in a secure digital operational mode |
JP2020149236A (ja) * | 2019-03-12 | 2020-09-17 | キオクシア株式会社 | 電子機器及び電子機器の制御方法 |
FR3094520B1 (fr) * | 2019-03-25 | 2021-10-22 | St Microelectronics Rousset | Clé de chiffrement et/ou de déchiffrement |
US11232210B2 (en) | 2019-03-26 | 2022-01-25 | Western Digital Technologies, Inc. | Secure firmware booting |
US10839877B1 (en) * | 2019-04-23 | 2020-11-17 | Nxp Usa, Inc. | Register protection circuit for hardware IP modules |
US10776102B1 (en) * | 2019-05-10 | 2020-09-15 | Microsoft Technology Licensing, Llc | Securing firmware installation on USB input device |
US11016755B2 (en) * | 2019-07-31 | 2021-05-25 | Dell Products L.P. | System and method to secure embedded controller flashing process |
TWI714220B (zh) * | 2019-08-16 | 2020-12-21 | 致伸科技股份有限公司 | 通用串列匯流排裝置及其韌體更新方法 |
JP2022545157A (ja) | 2019-08-22 | 2022-10-26 | ターガス インターナショナル エルエルシー | 参加者制御型ビデオ会議のためのシステム及び方法 |
TWI720694B (zh) * | 2019-11-18 | 2021-03-01 | 中華電信股份有限公司 | 具時間序列演算之燒錄認證裝置及方法 |
US10997297B1 (en) | 2019-12-06 | 2021-05-04 | Western Digital Technologies, Inc. | Validating firmware for data storage devices |
US11477033B2 (en) * | 2020-02-05 | 2022-10-18 | Nxp B.V. | Authentication without pre-known credentials |
US11294582B2 (en) * | 2020-09-08 | 2022-04-05 | Micron Technology, Inc. | Customer-specific activation of functionality in a semiconductor device |
CN112764785B (zh) * | 2020-12-24 | 2021-10-29 | 江苏云涌电子科技股份有限公司 | 一种自动升级多级控制器的方法 |
US11741232B2 (en) * | 2021-02-01 | 2023-08-29 | Mellanox Technologies, Ltd. | Secure in-service firmware update |
US12111958B2 (en) * | 2021-05-13 | 2024-10-08 | AO Kaspersky Lab | Systems and methods for verifying the integrity of a software installation image |
US12073205B2 (en) | 2021-09-14 | 2024-08-27 | Targus International Llc | Independently upgradeable docking stations |
US12020021B2 (en) * | 2022-06-13 | 2024-06-25 | Xilinx, Inc. | Impactless firmware update |
TWI807947B (zh) * | 2022-08-01 | 2023-07-01 | 精英電腦股份有限公司 | 多顆嵌入式控制器的更新和檢驗方法與其電子設備 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210854A (en) * | 1989-06-14 | 1993-05-11 | Digital Equipment Corporation | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version |
JP3561211B2 (ja) * | 2000-06-27 | 2004-09-02 | 株式会社東芝 | 情報処理装置および不揮発性記憶装置の書き換え制御方法 |
US20040076043A1 (en) * | 2002-10-21 | 2004-04-22 | Phoenix Technologies Ltd. | Reliable and secure updating and recovery of firmware from a mass storage device |
US7109092B2 (en) * | 2003-05-19 | 2006-09-19 | Ziptronix, Inc. | Method of room temperature covalent bonding |
US7546596B2 (en) * | 2004-03-29 | 2009-06-09 | International Business Machines Corporation | Non-disruptive method, system and program product for overlaying a first software module with a second software module |
TWI259974B (en) | 2004-09-16 | 2006-08-11 | Mediatek Inc | Optical disk drive capable of updating firmware and firmware updating method thereof |
US20060140399A1 (en) * | 2004-12-28 | 2006-06-29 | Young David W | Pre-calculation mechanism for signature decryption |
US8181020B2 (en) * | 2005-02-02 | 2012-05-15 | Insyde Software Corp. | System and method for securely storing firmware |
JP2007172062A (ja) * | 2005-12-19 | 2007-07-05 | Toshiba Corp | 情報処理装置およびアクセス制御方法 |
US8429418B2 (en) * | 2006-02-15 | 2013-04-23 | Intel Corporation | Technique for providing secure firmware |
US8423794B2 (en) * | 2006-12-28 | 2013-04-16 | Sandisk Technologies Inc. | Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications |
US20080244553A1 (en) * | 2007-03-28 | 2008-10-02 | Daryl Carvis Cromer | System and Method for Securely Updating Firmware Devices by Using a Hypervisor |
US7827371B2 (en) * | 2007-08-30 | 2010-11-02 | Intel Corporation | Method for isolating third party pre-boot firmware from trusted pre-boot firmware |
US20090172639A1 (en) * | 2007-12-27 | 2009-07-02 | Mahesh Natu | Firmware integrity verification |
US7984286B2 (en) * | 2008-06-25 | 2011-07-19 | Intel Corporation | Apparatus and method for secure boot environment |
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
-
2010
- 2010-09-22 US US12/887,866 patent/US8522322B2/en active Active
-
2011
- 2011-09-12 CN CN201611007938.1A patent/CN107092495B/zh active Active
- 2011-09-12 GB GB1302491.4A patent/GB2497224B/en not_active Expired - Fee Related
- 2011-09-12 WO PCT/US2011/051160 patent/WO2012039971A2/en active Application Filing
- 2011-09-12 JP JP2013529215A patent/JP5643901B2/ja not_active Expired - Fee Related
- 2011-09-16 TW TW100133375A patent/TWI528281B/zh active
-
2013
- 2013-03-15 US US13/836,092 patent/US9092632B2/en active Active
-
2014
- 2014-10-31 JP JP2014223026A patent/JP6137499B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB201302491D0 (en) | 2013-03-27 |
US20120072734A1 (en) | 2012-03-22 |
TW201218079A (en) | 2012-05-01 |
JP5643901B2 (ja) | 2014-12-17 |
US9092632B2 (en) | 2015-07-28 |
GB2497224A (en) | 2013-06-05 |
WO2012039971A3 (en) | 2012-07-19 |
CN107092495A (zh) | 2017-08-25 |
US8522322B2 (en) | 2013-08-27 |
CN107092495B (zh) | 2020-09-22 |
US20130219191A1 (en) | 2013-08-22 |
JP2015057722A (ja) | 2015-03-26 |
JP6137499B2 (ja) | 2017-05-31 |
JP2013537343A (ja) | 2013-09-30 |
CN103119553A (zh) | 2013-05-22 |
GB2497224B (en) | 2018-08-01 |
WO2012039971A2 (en) | 2012-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI528281B (zh) | 平臺韌體防護方法、設備、系統以及相關的機器可讀媒體 | |
JP6404283B2 (ja) | 安全な環境を初期化する命令を実行するシステムおよび方法 | |
KR102244645B1 (ko) | 인증된 변수의 관리 | |
JP4982825B2 (ja) | コンピュータおよび共有パスワードの管理方法 | |
KR101636816B1 (ko) | 메모리 액세스 제어를 제공하는 장치, 시스템, 및 방법 | |
US8332604B2 (en) | Methods to securely bind an encryption key to a storage device | |
US9183390B2 (en) | Systems and methods for providing anti-malware protection on storage devices | |
US20080134321A1 (en) | Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates | |
US20030196100A1 (en) | Protection against memory attacks following reset | |
TW201224759A (en) | Providing fast non-volatile storage in a secure environment | |
TWI582632B (zh) | 使用多重鑑別碼模組以進入安全計算環境之方法及系統、以及處理器 | |
US20080168545A1 (en) | Method for Performing Domain Logons to a Secure Computer Network | |
JP2016025616A (ja) | ディスク・ドライブが記憶するデータを保護する方法および携帯式コンピュータ | |
TWI542992B (zh) | 用以確保平臺矽組態完整性之方法與設備 | |
CN116049825A (zh) | 管理基板管理控制器的存储器中的秘密的存储 |