TWI643070B - 安全地啓動一運算裝置之技術 - Google Patents

安全地啓動一運算裝置之技術 Download PDF

Info

Publication number
TWI643070B
TWI643070B TW104109408A TW104109408A TWI643070B TW I643070 B TWI643070 B TW I643070B TW 104109408 A TW104109408 A TW 104109408A TW 104109408 A TW104109408 A TW 104109408A TW I643070 B TWI643070 B TW I643070B
Authority
TW
Taiwan
Prior art keywords
block
hash value
firmware
memory
initial boot
Prior art date
Application number
TW104109408A
Other languages
English (en)
Other versions
TW201602786A (zh
Inventor
卡魯納卡拉 柯塔利
尼可拉斯J 猶克
王鵬
刑根流
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 TW201602786A publication Critical patent/TW201602786A/zh
Application granted granted Critical
Publication of TWI643070B publication Critical patent/TWI643070B/zh

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/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/72Protecting 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 cryptographic circuits
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/068Hybrid storage device
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

用於安全地啟動一運算裝置之技術包括該運算裝置之一安全性引擎,該安全性引擎連續地判定用於初始啟動韌體之每一區塊的一雜湊值且自針對該等區塊中之每一者所判定的該雜湊值產生一聚合雜湊值。該運算裝置之一處理器判定該聚合雜湊值是否匹配於一參考核對和值。回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化。在一些實施例中,該安全性引擎自該運算裝置之一記憶體連續地擷取該初始啟動韌體之每一區塊,將每一經擷取區塊儲存於該安全性引擎之一安全記憶體中,且判定用於每一經儲存區塊之該雜湊值。將儲存於該安全記憶體中之每一區塊複製至經初始化為RAM快取記憶體的該處理器之一快取記憶體之一部分。

Description

安全地啟動一運算裝置之技術
本發明係有關於安全地啟動一運算裝置之技術。
發明背景
電腦安全性之一個態樣涉及保護電腦系統免於亦被稱作「惡意程式碼(malware)」之惡意軟體。惡意程式碼呈許多形式;然而,許多常見種類之惡意程式碼執行對電腦記憶體中之未經授權位置的寫入或其他存取。舉例而言,某些惡意程式碼在啟動程序之初始階段期間攻擊低層級系統程式碼(例如,平台初始化韌體、啟動載入器、作業系統內核等等)。此等攻擊可由所謂的「bootkit」或「rootkit」使用以取得系統控制且躲避偵測。
典型的電腦系統嘗試藉由執行「安全啟動(secure boot)」或「安全起動(secure launch)」來偵測及防止惡意程式碼之執行。為此,運算系統可包括經組配以在啟動程序期間載入之前驗證低層級系統程式碼之完整性的安全性引擎或安全性共處理器。舉例而言,在初始化啟動程序後,運算系統之安全性引擎就可產生初始化運算系統之主處理器所需要之韌體的雜湊。隨後,安全性引擎可比較彼雜湊 與對應於該韌體之未摻雜版本的已知良好雜湊或核對和值(checksum value)。若該兩個雜湊被判定為匹配,則可准許執行該韌體,從而致使運算系統之主處理器或其他組件初始化。
嵌入式及系統單晶片(system-on-a-chip,SoC)系統在運算生態系統中正變得愈來愈盛行。在典型的SoC系統中,安全啟動程序係由整合式安全性引擎或安全性共處理器管理,該整合式安全性引擎或安全性共處理器具有其自己的嵌入於SoC中之靜態隨機存取記憶體(static random-access memory,SRAM)。為了澈底地確保安全啟動,必須在被准許執行之前由整合式安全性引擎驗證低層級系統程式碼。通常,必須首先將此低層級系統程式碼儲存於整合式安全性引擎之SRAM中。因此,待由整合式安全性引擎驗證之任何低層級系統程式碼的大小實際上受到嵌入至SoC中之SRAM的大小限制。另外,增加SoC上之SRAM的總大小以實現較大大小之低層級系統程式碼的驗證通常歸因於SoC上之額外SRAM組(bank)的關聯成本、晶粒大小及電力消耗而不切實際。
依據本發明之一實施例,係特地提出一種用以執行一安全啟動之運算裝置,該運算裝置包含:該運算裝置之一安全性引擎,其包含一安全啟動模組,該安全啟動模組用以:(i)連續地判定用於初始啟動韌體之多個區塊中之每一區塊的一雜湊值,其中連續地判定該等雜湊值包含(a) 自該運算裝置之一記憶體擷取該等多個區塊中之每一區塊,(b)將每一經擷取區塊儲存於該安全性引擎之一安全記憶體中,及(c)判定用於儲存於該安全記憶體中之每一區塊的該雜湊值;及(ii)自針對該初始啟動韌體之每一區塊所判定的該雜湊值產生一聚合雜湊值;及一處理器,其包含一RAM快取記憶體及一處理器初始化模組,該處理器初始化模組用以:(i)比較該聚合雜湊值與關聯於該初始啟動韌體之一參考核對和值以判定該聚合雜湊值是否匹配於該參考核對和值;及(ii)回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化,其中該安全啟動模組或該處理器初始化模組用以將儲存於該安全記憶體中之每一區塊複製至該處理器之該RAM快取記憶體。
100‧‧‧用於執行安全啟動之系統
102‧‧‧運算裝置
110‧‧‧處理器
112‧‧‧快取記憶體
114‧‧‧RAM快取記憶體(CAR)
120‧‧‧輸入/輸出(I/O)子系統
130‧‧‧記憶體
132‧‧‧韌體
134‧‧‧平台初始化韌體/階段0韌體
136‧‧‧初始啟動韌體/階段1韌體
140‧‧‧安全性引擎
142‧‧‧安全記憶體
144‧‧‧BUFFER_1緩衝器
146‧‧‧BUFFER_2緩衝器
150‧‧‧通訊電路系統
160‧‧‧資料儲存體
200‧‧‧環境
202‧‧‧安全啟動模組
204‧‧‧鑑認模組
206‧‧‧區塊擷取模組
208‧‧‧雜湊產生模組
210‧‧‧區塊傳輸模組
212‧‧‧處理器初始化模組
214‧‧‧快取記憶體初始化模組
216‧‧‧雜湊比較模組
300、400、500‧‧‧方法
302、304、306、308、310、312、314、316、318、320、322、324、326、328、402、404、406、408、502、504、506、508、510、512、514、516‧‧‧區塊
在附圖中作為實例而非作為限制來說明本文中描述之概念。出於說明簡單及清晰起見,諸圖所說明之元件未必係按比例繪製。在認為適當的情況下,已在諸圖當中重複參考標記以指示對應或類似元件。
圖1為用於使用運算裝置以執行安全啟動之系統之至少一個實施例的簡化方塊圖;圖2為圖1之系統之運算裝置的環境之至少一個實施例的簡化方塊圖;圖3為用於執行安全啟動之方法之至少一個實施例的簡化流程圖,該方法可由圖1及圖2之運算裝置執行;圖4為用於連續地判定用於初始啟動韌體之區塊之雜 湊值的圖3之方法之次常式之至少一個實施例的簡化流程圖,該方法可由圖1及圖2之運算裝置執行;及圖5為用於連續地判定用於初始啟動韌體之區塊之雜湊值的圖3之方法之次常式之至少一個其他實施例的簡化流程圖,該方法可由圖1及圖2之運算裝置執行。
較佳實施例之詳細說明
雖然本發明之概念容許各種修改及替代形式,但該等概念之特定實施例已在圖式中作為實例予以展示,且將在本文中予以詳細地描述。然而,應理解,不希望將本發明之概念限於所揭示之特定形式,而相反地,意圖係涵蓋與本發明及所附申請專利範圍一致之所有修改、等效者及替代例。
在本說明書中對「一個實施例」、「一實施例」、「一說明性實施例」等等之參考指示所描述實施例可包括一特定特徵、結構或特性,但每一實施例可或可未必包括彼特定特徵、結構或特性。此外,此等片語未必指代同一實施例。另外,當結合一實施例來描述一特定特徵、結構或特性時,應認為,無論是否予以明確地描述,結合其他實施例來實現此特徵、結構或特性皆係在熟習此項技術者之認識範圍內。另外,應瞭解,以「A、B及C中之至少一者」之形式包括於清單中的項目可意謂:(A);(B);(C);(A及B);(A及C);(B及C);或(A、B及C)。相似地,以「A、B或C中之至少一者」之形式列出的項目可意謂:(A);(B); (C);(A及B);(A及C);(B及C);或(A、B及C)。
在一些狀況下,所揭示實施例可以硬體、韌體、軟體或其任何組合而實施。所揭示實施例亦可被實施為由一或多個暫時性或非暫時性機器可讀(例如,電腦可讀)儲存媒體攜載或儲存於一或多個暫時性或非暫時性機器可讀(例如,電腦可讀)儲存媒體上之指令,該等指令可由一或多個處理器讀取及執行。機器可讀儲存媒體可被體現為用於儲存或傳輸呈可由機器讀取之形式之資訊的任何儲存裝置、機構或其他實體結構(例如,依電性或非依電性記憶體、媒體光碟,或其他媒體裝置)。
在圖式中,可以特定配置及/或排序來展示一些結構或方法特徵。然而,應瞭解,可無需此等特定配置及/或排序。更確切地,在一些實施例中,可以不同於說明性諸圖所展示之方式及/或次序的方式及/或次序來配置此等特徵。另外,在特定圖中包括結構或方法特徵並不意欲暗示在所有實施例中需要此特徵,且在一些實施例中,可不包括此特徵或可將此特徵與其他特徵進行組合。
現在參看圖1,在一說明性實施例中,用於執行安全啟動之系統100包括運算裝置102。在使用中,運算裝置102之安全性引擎140擷取及鑑認儲存於運算裝置102之記憶體130中的平台初始化韌體134(例如,階段0(STAGE-0)韌體134)。運算裝置102之處理器110可執行經鑑認平台初始化韌體136以將處理器110之快取記憶體112之一部分初始化為RAM快取記憶體(Cache as RAM,CAR) 114。運算裝置102之記憶體130亦可儲存初始啟動韌體136(例如,階段1(STAGE-1)韌體136),其可被需要來完成處理器110之初始化(例如,啟動等等)。在一些實施例中,初始啟動韌體136之總儲存大小可超過安全性引擎140之安全記憶體142中可用之儲存容量的量。在此等實施例中,可將初始啟動韌體136分解成多個區塊(例如,區段、二進位大型物件(blob)、部分、子集等等),該等區塊中之每一者可由安全性引擎140自記憶體130擷取且隨後儲存於安全記憶體142中。安全性引擎140可判定用於儲存於安全記憶體142中的初始啟動韌體136之每一經擷取區塊的雜湊值。在產生用於初始啟動韌體136之經擷取區塊的雜湊值之後,安全性引擎140可將彼區塊複製至在處理器110之快取記憶體112中初始化的CAR 114。在一些實施例中,代替安全性引擎140,處理器110可將初始啟動韌體136之每一區塊複製至CAR 114。可由安全性引擎140基於針對初始啟動韌體136之經擷取區塊中之每一者所判定的雜湊值而產生聚合雜湊值。可比較聚合雜湊值與對應於用於初始啟動韌體136之原始或未摻雜版本之已知雜湊值的參考雜湊值或核對和值。可回應於聚合雜湊值匹配於參考雜湊值的判定而完成處理器初始化。在一些實施例中,可回應於判定聚合雜湊值不匹配於參考雜湊值而執行一或多個安全性功能。應瞭解,藉由將初始啟動韌體136(例如,階段1韌體136)分解成多個區塊,將每一區塊連續地儲存於安全記憶體142中,且在產生雜湊值之後將每一區塊自安全記憶體142複製至CAR 114, 初始啟動韌體136(例如,階段1韌體136)之總儲存大小可超過安全性引擎140之安全記憶體142中可用之儲存容量的量。亦即,安全性引擎140之安全記憶體142之儲存容量的量不限制初始啟動韌體136(例如,階段1韌體136)之總儲存大小。
在一些實施例中,安全性引擎140之安全記憶體142包括多個緩衝器144、146(例如,BUFFER_1 144及BUFFER_2 146)。在此等實施例中,安全性引擎140可自記憶體130擷取初始啟動韌體136(例如,階段1韌體136)之初始區塊(例如,第一區塊),且將彼區塊儲存於安全記憶體142之緩衝器144(例如,BUFFER_1 144)中。與判定用於初始區塊(例如,第一區塊)之雜湊值同時地,安全性引擎140可自記憶體130擷取初始啟動韌體136(例如,階段1韌體136)之下一區塊(例如,第二區塊),且將彼區塊儲存於安全記憶體142之另一緩衝器146(例如,BUFFER_2 146)中。在判定初始區塊之雜湊值後,安全性引擎140或處理器110就可將彼區塊複製至在處理器110之快取記憶體112中初始化的CAR 114。在此等實施例中,安全性引擎140可繼續擷取初始啟動韌體136之額外區塊,且基於哪一緩衝器144、146可用(例如,已自緩衝器144、146複製前一區塊且將該前一區塊複製至CAR 114中)而以交替方式將該等額外區塊儲存於緩衝器144、146中之一者中。如所論述,藉由將初始啟動韌體136(例如,階段1韌體136)分解成多個區塊,將每一區塊連續地儲存於安全記憶體142中,且在產生雜湊值之後將 每一區塊自安全記憶體142複製至CAR 114,初始啟動韌體136(例如,階段1韌體136)之總儲存大小可大於安全性引擎140之安全記憶體142中可用之儲存容量的量。
運算裝置102可被體現為或以其他方式包括能夠執行本文中描述之功能的任何類型之運算裝置,包括但不限於桌上型電腦、膝上型運算裝置、伺服器電腦、消費型電子裝置、行動運算裝置、行動電話、智慧型電話、平板運算裝置、個人數位助理、可穿戴式運算裝置、智慧型電視、智慧型器具,及/或其他類型之運算裝置。說明性運算裝置102包括處理器110、記憶體130、輸入/輸出(I/O)子系統120、安全性引擎140、通訊電路系統150及資料儲存體160。當然,在其他實施例中,運算裝置102可包括其他或額外組件,諸如,通常在電腦中發現之組件(例如,各種輸入/輸出裝置)。另外,在一些實施例中,該等說明性組件中之一或多者可併入於另一組件中或以其他方式形成另一組件之一部分。舉例而言,在一些實施例中,記憶體130或其部分可併入於處理器110中。
處理器110可被體現為能夠執行本文中描述之功能的任何類型之處理器。舉例而言,處理器110可被體現為單或多核心處理器、數位信號處理器、微控制器,或其他處理器或處理/控制電路。處理器110可包括用於儲存指令及/或資料以供執行之快取記憶體112。在一些實施例中,如下文更詳細地所論述,快取記憶體112之一部分可被初始化為RAM快取記憶體(CAR)114。在此等實施例中,在記憶 體130(例如,主裝置記憶體)已被初始化之前,CAR 114可由運算裝置102之組件使用以儲存在啟動程序期間所需要之資料及/或變數。舉例而言,在一些實施例中,處理器110可自安全性引擎140之安全記憶體142複製(例如,擷取、移動、重新定位、獲得等等)初始啟動韌體136(例如,階段1韌體136)之一或多個區塊,且將該等一或多個區塊複製至CAR 114中以供儲存。
記憶體130可被體現為能夠執行本文中描述之功能的任何類型之依電性或非依電性記憶體或資料儲存體。在操作中,記憶體130可儲存在運算裝置102之操作期間所使用的各種資料及軟體,諸如,作業系統、應用程式、程式、程式庫及驅動程式。記憶體130經由I/O子系統120而以通訊方式耦接至處理器110,I/O子系統120可被體現為電路系統及/或組件以運用運算裝置102之處理器110、記憶體130及其他組件來促進輸入/輸出操作。舉例而言,I/O子系統120可被體現為或以其他方式包括記憶體控制器集線器、輸入/輸出控制集線器、韌體裝置、通訊鏈路(亦即,點對點鏈路、匯流排鏈路、電線、纜線、光導、印刷電路板跡線等等)及/或其他組件及子系統以促進輸入/輸出操作。在一些實施例中,I/O子系統120可形成系統單晶片(SoC)之一部分,且連同運算裝置102之處理器110、記憶體130及其他組件一起併入於單一積體電路晶片上。
在一些實施例中,記憶體130包括經組配以促進啟動或以其他方式初始化運算裝置102之平台及/或作業系 統(OS)的韌體132。韌體132可被體現為硬體組件、軟體組件,或其組合(例如,系統韌體、系統初始化資料等等)。在一些實施例中,韌體132包括在由處理器110及/或安全性引擎140執行時致使運算裝置102之一或多個組件被初始化及/或一或多個平台初始化功能被執行的低層級系統程式碼。舉例而言,在一些實施例中,韌體132包括平台初始化韌體134(例如,階段0韌體134),其在由處理器110執行時致使處理器110將快取記憶體112之一部分初始化為CAR 114。另外,在一些實施例中,在產生對應雜湊值之後,平台初始化韌體134(例如,階段0韌體134)之執行可致使處理器110自安全性引擎140之安全記憶體142複製(例如,擷取、移動、重新定位、獲得等等)初始啟動韌體136(例如,階段1韌體136)之一或多個區塊,且將該等一或多個區塊複製至CAR 114中。在一些實施例中,韌體132亦包括初始啟動韌體136(例如,階段1韌體136),其在執行時致使處理器110完成其初始化程序。應理解,在執行平台初始化韌體134(例如,階段0韌體134)期間,處理器110可不為完全操作的(例如,功能的)。亦即,處理器110可包括如由平台初始化韌體134界定之基本及/或縮減功能性。如下文所論述,可在執行初始啟動韌體136(例如,階段1韌體136)之後啟用處理器110之完全功能性。應瞭解,在一些實施例中,平台初始化韌體134可被體現為階段0啟動載入器,且初始啟動韌體136可被體現為階段1啟動載入器。
安全性引擎140可被體現為能夠執行本文中描述 之功能的任何硬體組件或電路系統。在一些實施例中,安全性引擎140可被體現為能夠獨立於處理器110進行操作而不管處理器110之操作狀態(例如,處理器110可處於待用或斷電狀態)的安全性共處理器或微控制器。另外或替代地,在一些實施例中,安全性引擎140可被體現為相異於處理器110之一般用途處理器(例如,第二處理器)。在操作中,安全性引擎140可執行運算裝置102之「安全啟動」或「受信任啟動」。為此,安全性引擎140包括安全記憶體142,其可為與記憶體130分離之內部或本機受保護記憶體。儲存於安全記憶體142中之資料可為安全性引擎140所存取且不可為運算裝置102之其他組件所存取。在一些實施例中,安全記憶體142可經組配以儲存初始啟動韌體136(例如,階段1韌體136)之一或多個區塊,其可由安全性引擎140自記憶體130擷取。安全記憶體142可根據先進先出程序來儲存初始啟動韌體136之區塊,在該先進先出程序中,在已將先前儲存之區塊複製(例如,移動、重新定位、傳輸等等)至另一記憶體(例如,CAR 114)之後擷取初始啟動韌體136之下一區塊且將該下一區塊儲存於安全記憶體142中。
另外或替代地,在一些實施例中,安全記憶體142可包括多個緩衝器144、146(例如,BUFFER_1 144及BUFFER_2 146),其可經組配以共同地操作為「乒乓緩衝器(ping-pong buffer)」。在此等實施例中,可將初始啟動韌體136之區塊(例如,第一區塊)儲存於第一緩衝器144(例如,BUFFER_1 144)中。在處理彼區塊(例如,第一區塊) 期間,可將另一區塊(例如,第二區塊)儲存於第二緩衝器146(例如,BUFFER_2 146)中。在第一區塊之處理已完成之後,可將第一區塊自第一緩衝器144(例如,BUFFER_1 144)複製(例如,移動、重新定位、傳輸等等)至CAR 114。可接著將下一區塊(例如,第三區塊)儲存於現在可用之第一緩衝器144(例如,BUFFER_1 144)中且進行相應地處理。可基於哪一緩衝器144、146可用(例如,先前儲存之區塊已被複製至CAR 114)而以交替方式將初始啟動韌體136(例如,階段1韌體136)之剩餘區塊儲存於緩衝器144、146(例如,BUFFER_1 144及BUFFER_2 146)中。應瞭解,儘管安全記憶體142說明性地包括兩個緩衝器144、146(例如,BUFFER_1 144及BUFFER_2 146),但安全記憶體142可包括任何數目個緩衝器(例如,一個緩衝器、兩個緩衝器、三個緩衝器、四個緩衝器等等)。另外或替代地,緩衝器144、146(例如,BUFFER_1 144、BUFFER_2 146,及任何其他緩衝器)可經組配以操作為「乒乓緩衝器」、操作為「環形緩衝器(ring buffer)」,或根據任何其他緩衝程序及/或緩衝類型而操作。
運算裝置102之通訊電路系統150可被體現為能夠實現運算裝置102與一或多個其他運算裝置之間的通訊的任何類型之通訊電路、裝置或其集合。通訊電路系統150可經組配以使用任何一或多種通訊技術(例如,無線或有線通訊)及關聯協定(例如,乙太網路、Wi-Fi®、WiMAX等等)以實現此通訊。
資料儲存體160可被體現為經組配以用於資料之短期或長期儲存的任何類型之一或若干裝置,諸如,記憶體裝置及電路、記憶卡、硬碟機、固態磁碟機或其他資料儲存裝置。舉例而言,資料儲存體160可經組配以儲存待由運算裝置102初始化及/或執行之一或多個作業系統。在一些實施例中,可在操作期間出於較快處理及/或任何其他原因而將該(該等)作業系統之部分複製至記憶體130。
現在參看圖2,在使用中,運算裝置102在操作期間建立環境200。說明性環境200包括安全啟動模組202及處理器初始化模組212。安全啟動模組202可由安全性引擎140建立,且在一些實施例中可包括鑑認模組204、區塊擷取模組206、雜湊產生模組208及區塊傳輸模組210。處理器初始化模組212可由處理器110建立,且在一些實施例中可包括快取記憶體初始化模組214及雜湊比較模組216。在一些實施例中,處理器初始化模組212可由處理器110回應於由處理器110執行經鑑認平台初始化韌體134(例如,階段0韌體134)而建立。環境200之模組、邏輯及其他組件中的每一者可被體現為硬體、軟體、韌體或其組合。應瞭解,運算裝置102可包括通常在運算裝置中發現之其他組件、子組件、模組及裝置,其係出於描述清晰起見而在圖2中未說明。
安全啟動模組202可經組配以鑑認平台初始化韌體134(例如,階段0韌體134),其可被體現為經組配以由安全性引擎140及/或處理器110執行以用於在啟動程序之初始階段期間(例如,在初始化硬體組件、作業系統等等之前) 初始化運算裝置102之一或多個組件的低層級程式碼及/或指令。為此,安全啟動模組202可包括鑑認模組204。在一些實施例中,鑑認模組204可經組配以自運算裝置102之記憶體130或其他韌體儲存體擷取或以其他方式獲得平台初始化韌體134(例如,階段0韌體134)。另外,鑑認模組204可經組配以使用任何合適程序以用於鑑認平台初始化韌體134。舉例而言,在一些實施例中,鑑認模組204可驗證關聯於平台初始化韌體134之數位簽名,及/或比較自平台初始化韌體134產生之雜湊與對應於平台初始化韌體134之參考(例如,未修改、未摻雜、原始等等)版本的已知雜湊。在一些實施例中,鑑認模組204可經組配以回應於判定平台初始化韌體134已被鑑認而通知處理器初始化模組212(或其組件)。
如所論述,運算裝置之記憶體130可儲存初始啟動韌體136(例如,階段1韌體136),其在執行時致使處理器110完成初始化程序。在一些實施例中,初始啟動韌體136之儲存大小可超過由安全性引擎140之安全記憶體142可用或以其他方式提供的儲存量。因而,為了實現運算裝置102之安全啟動,可將初始啟動韌體136分解成多個區塊(例如,區段、二進位大型物件、部分、子集等等)。每一區塊可在大小上小於安全記憶體142及/或多個緩衝器144、146(例如,BUFFER_1 144、BUFFER_2 146等等)中之每一者中可用的儲存量。另外,每一區塊可在記憶體中具有相對於彼此相等之大小。在此等實施例中,安全啟動模組202可經 組配以連續地判定用於初始啟動韌體136(例如,階段1韌體136)之每一區塊的雜湊值。為此,安全啟動模組202可包括區塊擷取模組206、雜湊產生模組208及區塊傳輸模組210。
區塊擷取模組206可經組配以自運算裝置102之記憶體130或其他韌體儲存體連續地擷取初始啟動韌體136(例如,階段1韌體136)之每一區塊。另外,區塊擷取模組206可經組配以將經擷取區塊儲存於安全性引擎140之安全記憶體142中。在安全記憶體142經組配以根據先進先出程序來儲存經擷取區塊的實施例中,區塊擷取模組206可在已自安全記憶體142複製初始啟動韌體136之前一區塊且將該前一區塊複製至CAR 114中之後擷取及儲存初始啟動韌體136之後續區塊。在安全記憶體142包括經組配以操作為「乒乓緩衝器」之多個緩衝器144、146(例如,BUFFER_1 144及BUFFER_2 146)的實施例中,區塊擷取模組206可基於哪一緩衝器144、146可用(例如,先前儲存之區塊已被複製至CAR 114)而連續地擷取及儲存初始啟動韌體136之區塊。在此等實施例中,與處理當前儲存於緩衝器144、146中之一者(例如,BUFFER_1 144或BUFFER_2 146)中的前一區塊同時地,區塊擷取模組206可自記憶體130擷取每一後續區塊。
雜湊產生模組208可經組配以產生用於自記憶體130擷取且隨後儲存於安全記憶體142中的初始啟動韌體136(例如,階段1韌體136)之每一區塊的雜湊值。為此,雜湊產生模組208可將密碼編譯雜湊函數(cryptographic hash function)應用於每一區塊以判定對應雜湊值。在一些實施例 中,密碼編譯雜湊函數可被體現為安全雜湊演算法(例如,SHA-0、SHA-1、SHA-2、SHA-3等等)。然而,應瞭解,密碼編譯雜湊函數可被體現為任何其他類型之函數或演算法以用於驗證初始啟動韌體136(例如,階段1韌體136)之完整性。
另外,雜湊產生模組208可經組配以基於針對初始啟動韌體136(例如,階段1韌體136)之區塊中之每一者所產生的雜湊值來產生聚合雜湊值。為此,雜湊產生模組208可將所判定之雜湊值加在一起(例如,產生該等雜湊值之總和,等等)以產生聚合雜湊值。如所論述,可比較聚合雜湊值與對應於初始啟動韌體136之已知(例如,預定、預運算、參考等等)雜湊值及/或核對和。
區塊傳輸模組210可經組配以在對應雜湊值已被產生之後自安全記憶體142複製(例如,移動、重新定位、傳輸等等)初始啟動韌體136之每一區塊且將該每一區塊複製至CAR 114中。在一些實施例中,區塊傳輸模組210可經組配以回應於初始啟動韌體136之區塊被複製至CAR 114而自安全記憶體142及/或緩衝器144、146(例如,BUFFER_1 144或BUFFER_2 146)清除(例如,重設、抹除、刪除等等)該區塊。應瞭解,藉由在對應雜湊值已被產生之後自安全記憶體142及/或緩衝器144、146複製初始啟動韌體136之每一區塊,使安全記憶體142可用於儲存另一區塊(例如,下一區塊)。如所論述,在一些實施例中,處理器110而非安全性引擎140可在對應雜湊值已被產生之後自安全記憶體 142複製(例如,擷取、移動、重新定位、傳輸、獲得等等)初始啟動韌體136之每一區塊且將該每一區塊複製至CAR 114中。在此等實施例中,處理器初始化模組212而非安全啟動模組202可包括區塊傳輸模組210。
處理器初始化模組212可經組配以基於自安全啟動模組202接收或以其他方式獲得之韌體來初始化處理器110之全部或一部分。舉例而言,在一些實施例中,處理器初始化模組212可經組配以自安全記憶體142擷取平台初始化韌體134(例如,階段0韌體134),其係由鑑認模組204鑑認。在此等實施例中,處理器初始化模組212可實現如由平台初始化韌體134界定的用於處理器110之基本及/或縮減功能性。
處理器初始化模組212亦可經組配以在初始化記憶體130(例如,主裝置記憶體)之前初始化處理器110之快取記憶體112的全部或一部分以用於儲存在啟動程序期間所需要之資料及/或變數。為此,在一些實施例中,處理器初始化模組212可包括快取記憶體初始化模組214。快取記憶體初始化模組214可經組配以初始化處理器110之快取記憶體112的全部或一部分以用作RAM快取記憶體(CAR)114。如上所論述,CAR 114可用以在雜湊產生模組208已判定對應雜湊值之後儲存初始啟動韌體136(例如,階段1韌體136)之區塊。
另外,在一些實施例中,處理器初始化模組212可經組配以在對應雜湊值已被產生之後自安全記憶體142 複製(例如,擷取、移動、重新定位、傳輸等等)初始啟動韌體136(例如,階段1韌體136)之每一區塊且將該每一區塊複製至CAR 114中。在此等實施例中,處理器初始化模組212而非安全啟動模組202可包括區塊傳輸模組210。在一些實施例中,處理器初始化模組212之區塊傳輸模組210可回應於自安全性引擎140(或其組件)接收到對應雜湊值之產生已完成的訊息(例如,信號或任何其他類型之通知)而自安全記憶體142複製(例如,擷取、移動、重新定位、傳輸、獲得等等)初始啟動韌體136之每一區塊且將該每一區塊複製至CAR 114中。
處理器初始化模組212亦可經組配以比較聚合雜湊值與對應於初始啟動韌體136(例如,階段1韌體136)之參考雜湊值(例如,預運算雜湊值、預定雜湊值、已知雜湊值等等)。為此,處理器初始化模組212可包括雜湊比較模組216。雜湊比較模組216可經組配以判定聚合雜湊值是否匹配於參考雜湊值或核對和值,或是否以其他方式實質上相似於該值或在其預界定(例如,參考)容限內。亦即,雜湊比較模組216可判定聚合雜湊值是否匹配於對應於初始啟動韌體136(例如,階段1韌體136)之未摻雜(例如,未修改、原始等等)版本的已知良好雜湊或核對和值。
在一些實施例中,處理器初始化模組212亦可經組配以回應於由雜湊比較模組216判定聚合雜湊值匹配於參考(例如,預運算、預定、已知等等)雜湊值或核對和值,或以其他方式實質上相似於該值或在其預界定(例如,參考) 容限內而完成處理器110之初始化。在此等實施例中,可啟用處理器110之完全操作及/或功能性,且可初始化運算裝置之額外組件(例如,硬體組件、周邊裝置、作業系統等等)。另外或替代地,處理器初始化模組212亦可經組配以基於判定聚合雜湊值不匹配於參考雜湊值或核對和值,或以其他方式不實質上相似於該值或在其預界定(例如,參考)容限內而執行一或多個安全性功能。舉例而言,在一些實施例中,處理器初始化模組212可回應於判定聚合雜湊值不匹配於參考雜湊值或核對和值而執行致使運算裝置102關閉或重啟之一或多個安全性功能。另外或替代地,處理器初始化模組212可回應於判定聚合雜湊值不匹配於參考雜湊值或核對和值而執行停用運算裝置102及/或運算裝置102之一或多個組件或服務的一或多個安全性功能。應瞭解,處理器初始化模組212可回應於判定聚合雜湊值不匹配於參考雜湊值或核對和值而執行任何其他類型之安全性功能。
現在參看圖3,運算裝置102可執行用於執行安全啟動之方法300。方法300自區塊302開始,在區塊302中,運算裝置102之安全性引擎140鑑認平台初始化韌體134(例如,階段0韌體134)。平台初始化韌體134可被體現為經組配以由安全性引擎140及/或處理器110執行以用於在啟動程序之初始階段期間(例如,在初始化硬體組件、作業系統等等之前)初始化運算裝置102之一或多個組件的低層級程式碼及/或指令。舉例而言,在一些實施例中,平台初始化韌體134可經組配以使處理器110能夠將快取記憶體112之 一部分初始化為CAR 114。另外,平台初始化韌體134亦可經組配以使處理器110能夠自安全性引擎140之安全記憶體142複製(例如,擷取、移動、重新定位、獲得等等)初始啟動韌體136(例如,階段1韌體136)之一或多個區塊且將該等一或多個區塊複製至CAR 114中。在操作中,安全性引擎140可使用任何合適程序以用於鑑認平台初始化韌體134。舉例而言,在一些實施例中,安全性引擎140可驗證關聯於平台初始化韌體134之數位簽名,及/或比較自平台初始化韌體134產生之雜湊與對應於平台初始化韌體134之原始(例如,未修改、未摻雜等等)版本的參考(例如,預運算、預定、已知等等)雜湊值。在一些實施例中,在區塊304中,安全性引擎140自運算裝置102之記憶體130擷取平台初始化韌體134(例如,階段0韌體134)。在自記憶體130擷取平台初始化韌體134後,安全性引擎140就將平台初始化韌體134儲存於安全記憶體142中。在一些實施例中,在區塊306中,安全性引擎140亦可向處理器110通知平台初始化韌體134已被鑑認。
在區塊308中,運算裝置102之處理器110將快取記憶體112之一部分初始化為RAM快取記憶體(CAR)114。為此,處理器110可執行經鑑認平台初始化韌體134。在完成記憶體130(例如,主裝置記憶體)之初始化之前,CAR 114可由運算裝置102之組件使用以儲存在啟動程序期間所需要之資料及/或變數。在一些實施例中,在區塊310中,處理器110可自安全性引擎140之安全記憶體142擷取經鑑認 平台初始化韌體134。在此等實施例中,處理器110可回應於自安全性引擎140接收到通知而擷取經鑑認平台初始化韌體134。
在區塊312中,安全性引擎140可連續地判定用於初始啟動韌體136(例如,階段1韌體136)之每一區塊的雜湊值。如所論述,初始啟動韌體136可最初儲存於運算裝置102之記憶體130中,且可經組配以使處理器110之初始化能夠完成。在一些實施例中,初始啟動韌體136之儲存大小可超過由安全性引擎140之安全記憶體142及/或緩衝器144、146(例如,BUFFER_1 144及BUFFER_2 146)中之一或多者可用或以其他方式提供的儲存量。因而,為了實現運算裝置102之安全啟動,可將初始啟動韌體136分解成多個區塊(例如,區段、二進位大型物件、部分、子集等等)。每一區塊可在大小上小於安全記憶體142及/或緩衝器144、146中之一或多者中可用的儲存量。在此等實施例中,可將密碼編譯雜湊函數應用於每一區塊以判定對應雜湊值。在一些實施例中,密碼編譯雜湊函數可被體現為安全雜湊演算法(例如,SHA-0、SHA-1、SHA-2、SHA-3等等)。然而,應瞭解,密碼編譯雜湊函數可被體現為任何其他類型之函數或演算法以用於驗證初始啟動韌體136(例如,階段1韌體136)之完整性。
在一些實施例中,安全性引擎140可使用先進先出程序來連續地判定用於初始啟動韌體136(例如,階段1韌體136)之每一區塊的雜湊值。在此等實施例中,安全性 引擎140之安全記憶體142可經組配以在任何給定時間儲存初始啟動韌體136之單一區塊。因而,初始啟動韌體136之下一區塊將不被擷取及複製至安全記憶體142直至先前儲存之區塊已由安全性引擎140或處理器110複製至CAR 114為止。舉例而言,現在參看圖4,運算裝置102可執行用於連續地判定用於初始啟動韌體136(例如,階段1韌體136)之每一區塊的雜湊值的方法400。方法400自區塊402開始,在區塊402中,運算裝置102之安全性引擎140自記憶體130擷取初始啟動韌體136之下一區塊且將該下一區塊儲存於安全記憶體142中。應瞭解,在方法400之第一反覆期間,安全性引擎140可自記憶體130擷取初始啟動韌體136之第一區塊且將該第一區塊儲存於安全記憶體142中。
在區塊404中,安全性引擎140接著運算及/或判定儲存於安全記憶體142中的初始啟動韌體136之第一/下一區塊的雜湊值。為此,安全性引擎140可將密碼編譯雜湊函數應用於第一/下一區塊以產生對應雜湊值。如所論述,每一區塊可在大小上小於安全記憶體142中可用之儲存量。另外,在一些實施例中,初始啟動韌體136之區塊中的每一者可在記憶體中具有相等大小。因此,在此等實施例中,針對該等區塊中之每一者所產生的雜湊值亦可具有相等大小。然而,應瞭解,亦可產生具有不同大小之區塊的雜湊值。
在區塊406中,安全性引擎140或處理器110可自安全記憶體142複製(例如,擷取、移動、重新定位、傳輸、 獲得等等)初始啟動韌體136之第一/下一區塊且將該第一/下一區塊複製至CAR 114中。在一些實施例中,安全性引擎140及/或處理器110可經組配以自安全記憶體142清除(例如,重設、抹除、刪除等等)初始啟動韌體136之第一/下一區塊,使得安全記憶體142可用於儲存自記憶體130擷取的初始啟動韌體136之下一區塊(例如,後續區塊)。
在決策區塊408中,安全性引擎140判定自安全記憶體142複製至CAR 114的初始啟動韌體136之第一/下一區塊是否為初始啟動韌體136之最後區塊。亦即,安全性引擎140可判定是否存在仍需要自記憶體130擷取、儲存於安全記憶體142中、具有自其產生之對應雜湊值且複製至CAR 114的初始啟動韌體136之任何剩餘區塊。在決策區塊408中,若安全性引擎140判定第一/下一區塊不為初始啟動韌體136之最後區塊,則方法400循環回至區塊402以自記憶體130擷取初始啟動韌體136之下一區塊(例如,後續區塊)以供儲存於安全記憶體142中。然而,若安全性引擎140代替地在決策區塊408中判定第一/下一區塊為初始啟動韌體136之最後區塊,則方法400結束且處理繼續進行圖3之區塊314。
另外或替代地,在一些實施例中,安全性引擎140可使用安全記憶體142之多個緩衝器144、146(例如,BUFFER_1 144及BUFFER_2 146)來連續地判定用於初始啟動韌體136(例如,階段1韌體136)之每一區塊的雜湊值。在此等實施例中,安全記憶體142之每一緩衝器144、146(例 如,BUFFER_1 144及BUFFER_2 146)可各自經組配以在任何給定時間儲存初始啟動韌體136之單一區塊。舉例而言,現在參看圖5,運算裝置102可執行用於使用安全記憶體142之多個緩衝器144、146來連續地判定用於初始啟動韌體136(例如,階段1韌體136)之每一區塊的雜湊值的方法500。方法500自區塊502開始,在區塊502中,運算裝置102之安全性引擎140自記憶體130擷取初始啟動韌體136之第一/下一區塊且將該第一/下一區塊儲存於安全記憶體142之第一緩衝器144(例如,BUFFER_1 144)中。
在區塊504中,安全性引擎140接著運算及/或判定儲存於第一緩衝器144(例如,BUFFER_1 144)中的初始啟動韌體136之第一/下一區塊的雜湊值。為此,安全性引擎140可將密碼編譯雜湊函數應用於第一/下一區塊以產生對應雜湊值。在一些實施例中,每一區塊可在大小上小於安全記憶體142之緩衝器144、146中之每一者中可用的儲存量。另外,在一些實施例中,初始啟動韌體136之區塊中的每一者可在記憶體中具有相等大小。因此,在此等實施例中,針對該等區塊中之每一者所產生的雜湊值亦可具有相等大小。然而,應瞭解,亦可產生具有不同大小之區塊的雜湊值。
在區塊506中,在一些實施例中,安全性引擎140或處理器110可自第一緩衝器144(例如,BUFFER_1 144)複製(例如,擷取、移動、重新定位、傳輸、獲得等等)初始啟動韌體136之第一/下一區塊且將該第一/下一區塊複製至 CAR 114中。在一些實施例中,安全性引擎140及/或處理器110可經組配以自第一緩衝器144清除(例如,重設、抹除、刪除等等)初始啟動韌體136之第一/下一區塊,使得第一緩衝器144再次可用於儲存自記憶體130擷取的初始啟動韌體136之另一區塊(例如,後續區塊)。
在決策區塊508中,安全性引擎140判定自第一緩衝器144複製至CAR 114的初始啟動韌體136之第一/下一區塊是否為初始啟動韌體136之最後區塊。亦即,安全性引擎140可判定是否存在仍需要自記憶體130擷取、儲存於安全記憶體142之可用緩衝器144、146中、具有自其產生之對應雜湊值且複製至CAR 114的初始啟動韌體136之任何剩餘區塊。在決策區塊508中,若安全性引擎140判定第一/下一區塊不為初始啟動韌體136之最後區塊,則方法500循環回至區塊502以自記憶體130擷取初始啟動韌體136之另一區塊(例如,第三區塊、下一區塊、後續區塊等等)以供儲存於第一緩衝器144中。然而,若安全性引擎140代替地在決策區塊508中判定第一/下一區塊為初始啟動韌體136之最後區塊,則方法500結束且處理繼續進行圖3之區塊314。
在一些實施例中,在區塊510中,安全性引擎140自記憶體130擷取初始啟動韌體136之第二/下一區塊且將該第二/下一區塊儲存於安全記憶體142之第二緩衝器146(例如,BUFFER_2 146)中。應瞭解,運算裝置102及/或安全性引擎140可與執行區塊504同時地區塊510。亦即,安全性引擎140可在與判定儲存於第一緩衝器146中之第一區塊 的雜湊值之時間相同的時間或重疊的時間自記憶體130擷取初始啟動韌體136之第二區塊且將該第二區塊儲存於第二緩衝器146中。方法500接著前進至區塊512。
在區塊512中,安全性引擎140接著運算及/或判定儲存於第二緩衝器146(例如,BUFFER_2 146)中的初始啟動韌體136之第二/下一區塊的雜湊值。為此,安全性引擎140可將密碼編譯雜湊函數應用於第二/下一區塊以產生對應雜湊值。方法500接著前進至區塊514,在區塊514中,安全性引擎140或處理器110自第二緩衝器146(例如,BUFFER_2 146)複製(例如,擷取、移動、重新定位、傳輸、獲得等等)初始啟動韌體136之第二/下一區塊且將該第二/下一區塊複製至CAR 114中。在一些實施例中,安全性引擎140及/或處理器110可經組配以自第二緩衝器146清除(例如,重設、抹除、刪除等等)初始啟動韌體136之第二/下一區塊,使得第二緩衝器146再次可用於儲存自記憶體130擷取的初始啟動韌體136之另一區塊(例如,下一區塊或後續區塊)。
在決策區塊516中,安全性引擎140判定自第二緩衝器146複製至CAR 114的初始啟動韌體136之第二/下一區塊是否為初始啟動韌體136之最後區塊。亦即,安全性引擎140可判定是否存在仍需要自記憶體130擷取、儲存於安全記憶體142之可用緩衝器144、146中、具有自其產生之對應雜湊值且複製至CAR 114的初始啟動韌體136之任何剩餘區塊。在決策區塊516中,若安全性引擎140判定第二/下一區 塊不為初始啟動韌體136之最後區塊,則方法500循環回至區塊510以自記憶體130擷取初始啟動韌體136之另一區塊(例如,第四區塊、下一區塊、後續區塊等等)以供儲存於第二緩衝器146中。然而,若安全性引擎140代替地在決策區塊516中判定第二/下一區塊為初始啟動韌體136之最後區塊,則方法500結束且處理繼續進行圖3之區塊314。
返回參看圖3,在區塊314中,安全性引擎140可自針對初始啟動韌體136(例如,階段1韌體136)之區塊中之每一者所產生的雜湊值產生聚合雜湊值。為此,雜湊產生模組208可將所判定之雜湊值加在一起(例如,產生該等雜湊值之總和,等等)以產生聚合雜湊值。雜湊產生模組208可使用任何合適程序以將所判定之雜湊值加在一起。
在區塊316中,處理器110比較聚合雜湊值與對應於初始啟動韌體136(例如,階段1韌體136)之參考(例如,預定、預運算、已知等等)雜湊值或核對和值。方法300前進至決策區塊318,在決策區塊318中,處理器110判定聚合雜湊值是否匹配於對應於初始啟動韌體136之參考雜湊值或核對和值,或是否以其他方式實質上相似於該值或在其預界定(例如,參考)容限內。在決策區塊318中,若處理器110判定聚合雜湊值匹配於參考雜湊值或核對和值,或以其他方式實質上相似於該值或在其預界定(例如,參考)容限內,則方法300前進至區塊320。然而,若處理器110代替地判定聚合雜湊值不匹配於參考雜湊值或核對和值,或以其他方式不實質上相似於該值或在其預界定(例如,參考)容限 內,則方法300前進至區塊324。
在區塊320中,可回應於判定聚合雜湊值匹配於用於初始啟動韌體136(例如,階段1韌體136)之參考(例如,已知、預運算、預定等等)雜湊值及/或核對和值而完成處理器110之初始化。舉例而言,在區塊322中,處理器可跳轉至儲存於CAR 114中的初始啟動韌體136(例如,階段1韌體136)之開頭且開始自其執行。藉此,可啟用處理器110之完全操作。
在區塊324中,處理器110基於判定聚合雜湊值不匹配於用於初始啟動韌體136(例如,階段1韌體136)之參考(例如,已知、預運算、預定等等)雜湊值或核對和值來執行一或多個安全性功能。舉例而言,在區塊326中,處理器110可關閉及/或停用運算裝置102或其任何組件。另外或替代地,在區塊328中,處理器110可回應於此判定而重啟運算裝置102。
實例
下文提供本文中揭示之技術的說明性實例。該等技術之實施例可包括下文所描述之實例中的任何一或多者及其任何組合。
實例1包括一種用以執行一安全啟動之運算裝置,該運算裝置包括:該運算裝置之一安全性引擎,其包括一安全啟動模組,該安全啟動模組用以:(i)連續地判定用於初始啟動韌體之多個區塊中之每一區塊的一雜湊值,其中連續地判定該等雜湊值包括(a)自該運算裝置之一記憶 體擷取該等多個區塊中之每一區塊,(b)將每一經擷取區塊儲存於該安全性引擎之一安全記憶體中,及(c)判定用於儲存於該安全記憶體中之每一區塊的該雜湊值;及(ii)自針對該初始啟動韌體之每一區塊所判定的該雜湊值產生一聚合雜湊值;及一處理器,其包括一RAM快取記憶體及一處理器初始化模組,該處理器初始化模組用以:(i)比較該聚合雜湊值與關聯於該初始啟動韌體之一參考核對和值以判定該聚合雜湊值是否匹配於該參考核對和值;及(ii)回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化,其中該安全啟動模組或該處理器初始化模組用以將儲存於該安全記憶體中之每一區塊複製至該處理器之該RAM快取記憶體。
實例2包括實例1之主題,且其中該安全性引擎包括不同於該運算裝置之該處理器的一安全性共處理器。
實例3包括實例1及實例2中之任一者之主題,且其中判定用於儲存於該安全記憶體中之每一區塊的該雜湊值包括運用一密碼編譯雜湊函數來判定用於儲存於該安全記憶體中之每一區塊的該雜湊值。
實例4包括實例1至實例3中之任一者之主題,且其中該密碼編譯雜湊函數包括一安全雜湊演算法。
實例5包括實例1至實例4中之任一者之主題,且其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有相等大小。
實例6包括實例1至實例5中之任一者之主題,且 其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有小於或等於該安全性引擎之該安全記憶體之一記憶體儲存容量的一大小。
實例7包括實例1至實例6中之任一者之主題,且其中完成該處理器初始化之初始化包括(i)跳轉至儲存於該RAM快取記憶體中的該初始啟動韌體之一開頭,及(ii)執行該初始啟動韌體。
實例8包括實例1至實例7中之任一者之主題,且其中該安全啟動模組進一步用以將該聚合雜湊值傳輸至該處理器。
實例9包括實例1至實例8中之任一者之主題,且其中該處理器進一步用以回應於該聚合雜湊值不匹配於該參考核對和值的一判定而執行安全性功能。
實例10包括實例1至實例9中之任一者之主題,且其中執行安全性功能包括以下各者中之至少一者:關閉該運算裝置,停用該運算裝置,或重啟該運算裝置。
實例11包括實例1至實例10中之任一者之主題,且其中該安全啟動模組進一步用以鑑認用於該運算裝置之平台初始化韌體;且其中該處理器進一步用以執行該經鑑認平台初始化韌體以將該處理器之一快取記憶體之一部分初始化為該RAM快取記憶體。
實例12包括實例1至實例11中之任一者之主題,且其中鑑認該平台初始化韌體包括(i)自該運算裝置之該記憶體擷取該平台初始化韌體,及(ii)向該處理器通知該平台 初始化韌體被鑑認。
實例13包括實例1至實例12中之任一者之主題,且其中該處理器進一步用以自該安全性引擎之該安全記憶體擷取該經鑑認平台初始化韌體;且其中執行該經鑑認平台初始化韌體包括執行自該安全性引擎之該安全記憶體擷取的該經鑑認平台初始化韌體。
實例14包括實例1至實例13中之任一者之主題,且其中該初始啟動韌體包括一階段1啟動載入器;且其中該平台初始化韌體包括在執行該階段1啟動載入器之前由該處理器執行之一階段0啟動載入器。
實例15包括實例1至實例14中之任一者之主題,且其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包括:(i)自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取第一區塊儲存於該安全性引擎之該安全記憶體中,(iii)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)回應於將該初始啟動韌體之該第一區塊儲存於該RAM快取記憶體中而自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎之該安全記憶體中,及(vi)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包括(i)回應於該第一 雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包括自該等所判定之第一及第二雜湊值產生該聚合雜湊值。
實例16包括實例1至實例15中之任一者之主題,且其中該安全啟動模組進一步用以判定該初始啟動韌體之該第二區塊是否為該初始啟動韌體之該等多個區塊中的一最後區塊。
實例17包括實例1至實例16中之任一者之主題,且其中回應於該初始啟動韌體之該第二區塊不為該最後區塊的一判定:(i)該安全啟動模組進一步用以(a)連續地擷取該初始啟動韌體之該等多個區塊中的每一剩餘區塊,及(b)判定用於所擷取之每一剩餘區塊的一雜湊值,且(ii)該安全啟動模組或該處理器初始化模組用以將所擷取之每一剩餘區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包括自該所判定之第一雜湊值、該所判定之第二雜湊值及針對所擷取之該等剩餘區塊中之每一者所判定的該雜湊值產生該聚合雜湊值。
實例18包括實例1至實例17中之任一者之主題,且其中產生該聚合雜湊值包括回應於該初始啟動韌體之該第二區塊為該最後區塊的一判定而產生該聚合雜湊值。
實例19包括實例1至實例18中之任一者之主題, 且其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包括:(i)自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取第一區塊儲存於該安全性引擎之該安全記憶體之一第一緩衝器中,(iii)判定對應於儲存於該安全記憶體之該第一緩衝器中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)與對應於該初始啟動韌體之該第一區塊的該第一雜湊值之一判定同時地自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎之該安全記憶體之一第二緩衝器中,及(vi)判定對應於儲存於該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包括(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體之該第一緩衝器中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包括自該等所判定之第一及第二雜湊值產生該聚合雜湊值。
實例20包括一種用於安全地啟動一運算裝置之方法,該方法包括:由該運算裝置之一安全性引擎連續地地判定用於初始啟動韌體之多個區塊中之每一區塊的一雜 湊值,其中連續地判定該等雜湊值包括(i)自該運算裝置之一記憶體擷取該等多個區塊中之每一區塊,(ii)將每一經擷取區塊儲存於該安全性引擎之一安全記憶體中,及(iii)判定用於儲存於該安全記憶體中之每一區塊的該雜湊值;由該運算裝置之該安全性引擎或一處理器將儲存於該安全記憶體中之每一區塊複製至該處理器之一RAM快取記憶體;由該安全性引擎自針對該初始啟動韌體之每一區塊所判定的該雜湊值產生一聚合雜湊值;由該處理器比較該聚合雜湊值與關聯於該初始啟動韌體之一參考核對和值以判定該聚合雜湊值是否匹配於該參考核對和值;及回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化。
實例21包括實例20之主題,且其中該安全性引擎包括不同於該運算裝置之該處理器的一安全性共處理器。
實例22包括實例20及實例21中之任一者之主題,且其中判定用於儲存於該安全記憶體中之每一區塊的該雜湊值包括運用一密碼編譯雜湊函數來判定用於儲存於該安全記憶體中之每一區塊的該雜湊值。
實例23包括實例20至實例22中之任一者之主題,且其中該密碼編譯雜湊函數包括一安全雜湊演算法。
實例24包括實例20至實例23中之任一者之主題,且其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有相等大小。
實例25包括實例20至實例24中之任一者之主 題,且其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有小於或等於該安全性引擎之該安全記憶體之一記憶體儲存容量的一大小。
實例26包括實例20至實例25中之任一者之主題,且其中完成該處理器初始化之初始化包括(i)跳轉至儲存於該RAM快取記憶體中的該初始啟動韌體之一開頭,及(ii)執行該初始啟動韌體。
實例27包括實例20至實例26中之任一者之主題,且其進一步包括由該安全性引擎將該聚合雜湊值傳輸至該處理器。
實例28包括實例20至實例27中之任一者之主題,且其進一步包括回應於該聚合雜湊值不匹配於該參考核對和值的一判定而執行安全性功能。
實例29包括實例20至實例28中之任一者之主題,且其中執行安全性功能包括以下各者中之至少一者:關閉該運算裝置,停用該運算裝置,或重啟該運算裝置。
實例30包括實例20至實例29中之任一者之主題,且其進一步包括:由該安全性引擎鑑認用於該運算裝置之平台初始化韌體;及由該處理器執行該經鑑認平台初始化韌體以將該處理器之一快取記憶體之一部分初始化為該RAM快取記憶體。
實例31包括實例20至實例30中之任一者之主題,且其中鑑認該平台初始化韌體包括(i)自該運算裝置之該記憶體擷取該平台初始化韌體,及(ii)向該處理器通知該 平台初始化韌體被鑑認。
實例32包括實例20至實例31中之任一者之主題,且其進一步包括由該處理器自該安全性引擎之該安全記憶體擷取該經鑑認平台初始化韌體;且其中執行該經鑑認平台初始化韌體包括執行自該安全性引擎之該安全記憶體擷取的該經鑑認平台初始化韌體。
實例33包括實例20至實例32中之任一者之主題,且其中該初始啟動韌體包括一階段1啟動載入器;且其中該平台初始化韌體包括在執行該階段1啟動載入器之前由該處理器執行之一階段0啟動載入器。
實例34包括實例20至實例33中之任一者之主題,且其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包括:(i)自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取第一區塊儲存於該安全性引擎之該安全記憶體中,(iii)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)回應於將該初始啟動韌體之該第一區塊儲存於該RAM快取記憶體中而自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎之該安全記憶體中,及(vi)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包括(i)回應於 該第一雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包括自該等所判定之第一及第二雜湊值產生該聚合雜湊值。
實例35包括實例20至實例34中之任一者之主題,且其進一步包括判定該初始啟動韌體之該第二區塊是否為該初始啟動韌體之該等多個區塊中的一最後區塊。
實例36包括實例20至實例35中之任一者之主題,其中回應於該初始啟動韌體之該第二區塊不為該最後區塊的一判定:(i)由該安全性引擎連續地擷取該初始啟動韌體之該等多個區塊中的每一剩餘區塊,且判定用於所擷取之每一剩餘區塊的一雜湊值,及(ii)由該安全性引擎或該處理器將所擷取之每一剩餘區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包括自該所判定之第一雜湊值、該所判定之第二雜湊值及針對所擷取之該等剩餘區塊中之每一者所判定的該雜湊值產生該聚合雜湊值。
實例37包括實例20至實例36中之任一者之主題,其中產生該聚合雜湊值包括回應於該初始啟動韌體之該第二區塊為該最後區塊的一判定而產生該聚合雜湊值。
實例38包括實例20至實例37中之任一者之主題,且其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包括:(i)自該運算裝置之該記憶 體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取第一區塊儲存於該安全性引擎之該安全記憶體之一第一緩衝器中,(iii)判定對應於儲存於該安全記憶體之該第一緩衝器中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)與判定對應於該初始啟動韌體之該第一區塊的該第一雜湊值同時地自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎之該安全記憶體之一第二緩衝器中,及(vi)判定對應於儲存於該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包括(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體之該第一緩衝器中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包括自該等所判定之第一及第二雜湊值產生該聚合雜湊值。
實例39包括一種用以執行一安全啟動之運算裝置,該運算裝置包括:一處理器;及一記憶體,其中儲存有多個指令,該等多個指令在由該處理器執行時致使該運算裝置執行實例20至實例38中之任一者之方法。
實例40包括一種一或多個機器可讀媒體,其包括 儲存於其上之多個指令,該等多個指令回應於被執行而引起一運算裝置執行實例20至實例38中之任一者之方法。
實例41包括一種用以執行一安全啟動之運算裝置,該運算裝置包括:用於由該運算裝置之一安全性引擎連續地判定用於初始啟動韌體之多個區塊中之每一區塊的一雜湊值的構件,其中該用於連續地判定該等雜湊值的構件包括:(i)用於自該運算裝置之一記憶體擷取該等多個區塊中之每一區塊的構件,(ii)用於將每一經擷取區塊儲存於該安全性引擎之一安全記憶體中的構件,及(iii)用於判定用於儲存於該安全記憶體中之每一區塊的該雜湊值的構件;用於由該運算裝置之該安全性引擎或一處理器將儲存於該安全記憶體中之每一區塊複製至該處理器之一RAM快取記憶體的構件;用於由該安全性引擎自針對該初始啟動韌體之每一區塊所判定的該雜湊值產生一聚合雜湊值的構件;用於由該處理器比較該聚合雜湊值與關聯於該初始啟動韌體之一參考核對和值以判定該聚合雜湊值是否匹配於該參考核對和值的構件;及用於回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化的構件。
實例42包括實例41之主題,且其中該安全性引擎包括不同於該運算裝置之該處理器的一安全性共處理器。
實例43包括實例41及實例42中之任一者之主題,且其中該用於判定用於儲存於該安全記憶體中之每一區塊的該雜湊值的構件包括用於運用一密碼編譯雜湊函數來判定用於儲存於該安全記憶體中之每一區塊的該雜湊值 的構件。
實例44包括實例41至實例43中之任一者之主題,且其中該密碼編譯雜湊函數包括一安全雜湊演算法。
實例45包括實例41至實例44中之任一者之主題,且其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有相等大小。
實例46包括實例41至實例45中之任一者之主題,且其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有小於或等於該安全性引擎之該安全記憶體之一記憶體儲存容量的一大小。
實例47包括實例41至實例46中之任一者之主題,且其中該用於完成該處理器初始化之初始化的構件包括(i)用於跳轉至儲存於該RAM快取記憶體中的該初始啟動韌體之一開頭的構件,及(ii)用於執行該初始啟動韌體的構件。
實例48包括實例41至實例47中之任一者之主題,且其進一步包括用於由該安全性引擎將該聚合雜湊值傳輸至該處理器的構件。
實例49包括實例41至實例48中之任一者之主題,且其進一步包括用於回應於該聚合雜湊值不匹配於該參考核對和值的一判定而執行安全性功能的構件。
實例50包括實例41至實例49中之任一者之主題,且其中該用於執行安全性功能的構件包括用於以下各者中之至少一者的構件:關閉該運算裝置,停用該運算裝 置,或重啟該運算裝置。
實例51包括實例41至實例50中之任一者之主題,且其進一步包括:用於由該安全性引擎鑑認用於該運算裝置之平台初始化韌體的構件;及用於由該處理器執行該經鑑認平台初始化韌體以將該處理器之一快取記憶體之一部分初始化為該RAM快取記憶體的構件。
實例52包括實例41至實例51中之任一者之主題,且其中該用於鑑認該平台初始化韌體的構件包括(i)用於自該運算裝置之該記憶體擷取該平台初始化韌體的構件,及(ii)用於向該處理器通知該平台初始化韌體被鑑認的構件。
實例53包括實例41至實例52中之任一者之主題,且其進一步包括用於由該處理器自該安全性引擎之該安全記憶體擷取該經鑑認平台初始化韌體的構件;且其中該用於執行該經鑑認平台初始化韌體的構件包括用於執行自該安全性引擎之該安全記憶體擷取的該經鑑認平台初始化韌體的構件。
實例54包括實例41至實例53中之任一者之主題,且其中該初始啟動韌體包括一階段1啟動載入器;且其中該平台初始化韌體包括在執行該階段1啟動載入器之前由該處理器執行之一階段0啟動載入器。
實例55包括實例41至實例54中之任一者之主題,且其中該用於連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值的構件包括:(i)用於自該 運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊的構件,(ii)用於將該初始啟動韌體之該經擷取第一區塊儲存於該安全性引擎之該安全記憶體中的構件,(iii)用於判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第一區塊的一第一雜湊值的構件,(iv)用於回應於將該初始啟動韌體之該第一區塊儲存於該RAM快取記憶體中而自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊的構件,(v)用於將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎之該安全記憶體中的構件,及(vi)用於判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第二區塊的一第二雜湊值的構件;其中該用於將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體的構件包括:(i)用於回應於該第一雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體的構件,及(ii)用於回應於該第二雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體的構件;且其中該用於產生該聚合雜湊值的構件包括用於自該等所判定之第一及第二雜湊值產生該聚合雜湊值的構件。
實例56包括實例41至實例55中之任一者之主題,且其進一步包括用於判定該初始啟動韌體之該第二區塊是否為該初始啟動韌體之該等多個區塊中的一最後區塊的構件。
實例57包括實例41至實例56中之任一者之主 題,且其中回應於該初始啟動韌體之該第二區塊不為該最後區塊的一判定,該運算裝置進一步包括:(i)用於由該安全性引擎連續地擷取該初始啟動韌體之該等多個區塊中的每一剩餘區塊的構件,(ii)用於由該安全性引擎判定用於所擷取之每一剩餘區塊的一雜湊值的構件,及(iii)用於由該安全性引擎或該處理器將所擷取之每一剩餘區塊複製至該RAM快取記憶體的構件;且其中該用於產生該聚合雜湊值的構件包括用於自該所判定之第一雜湊值、該所判定之第二雜湊值及針對所擷取之該等剩餘區塊中之每一者所判定的該雜湊值產生該聚合雜湊值的構件。
實例58包括實例41至實例57中之任一者之主題,且其中該用於產生該聚合雜湊值的構件包括用於回應於該初始啟動韌體之該第二區塊為該最後區塊的一判定而產生該聚合雜湊值的構件。
實例59包括實例41至實例58中之任一者之主題,且其中該用於連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值的構件包括:(i)用於自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊的構件,(ii)用於將該初始啟動韌體之該經擷取第一區塊儲存於該安全性引擎之該安全記憶體之一第一緩衝器中的構件,(iii)用於判定對應於儲存於該安全記憶體之該第一緩衝器中的該初始啟動韌體之該第一區塊的一第一雜湊值的構件,(iv)用於與判定對應於該初始啟動韌體之該第一區塊的該第一雜湊值同時地自該運算裝置之該記憶 體擷取初始啟動韌體之該等多個區塊中的一第二區塊的構件,(v)用於將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎之該安全記憶體之一第二緩衝器中的構件,及(vi)用於判定對應於儲存於該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊的一第二雜湊值的構件;其中該用於將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體的構件包括(i)用於回應於該第一雜湊值之判定而將儲存於該安全記憶體之該第一緩衝器中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體的構件,及(ii)用於回應於該第二雜湊值之判定而將儲存於該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體的構件;且其中該用於產生該聚合雜湊值的構件包括用於自該等所判定之第一及第二雜湊值產生該聚合雜湊值的構件。

Claims (24)

  1. 一種用以執行一安全啟動之運算裝置,該運算裝置包含:一安全性引擎,其包含一安全啟動模組,該安全啟動模組用以:(i)連續地判定用於初始啟動韌體之多個區塊中之每一區塊的一雜湊值,其中連續地判定該等雜湊值包含(a)自該運算裝置的一記憶體擷取該等多個區塊中之每一區塊,(b)將每一經擷取的區塊儲存於該安全性引擎的一安全記憶體中,及(c)判定用於儲存在該安全記憶體中之每一區塊的該雜湊值;(ii)自針對該初始啟動韌體之每一區塊所判定的該雜湊值產生一聚合雜湊值;以及(iii)鑑認用於該運算裝置之平台初始化韌體;及一處理器,其包含一RAM快取記憶體及一處理器初始化模組,該處理器初始化模組用以:(i)自該安全性引擎的該安全記憶體擷取該經鑑認的平台初始化韌體;(ii)執行自該安全性引擎的該安全記憶體擷取的該經鑑認的平台初始化韌體,以將該處理器的一快取記憶體的一部分初始化為該RAM快取記憶體;(iii)比較該聚合雜湊值與關聯於該初始啟動韌體之一參考核對和值,以判定該聚合雜湊值是否匹配於該參考核對和值;及(iv)回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化, 其中該安全啟動模組或該處理器初始化模組係用以將儲存於該安全記憶體中之每一區塊複製至該處理器之該RAM快取記憶體。
  2. 如請求項1之運算裝置,其中判定用於儲存在該安全記憶體中之每一區塊的該雜湊值包含以一密碼編譯雜湊函數來判定用於儲存在該安全記憶體中之每一區塊的該雜湊值。
  3. 如請求項1之運算裝置,其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有相等大小。
  4. 如請求項1之運算裝置,其中該初始啟動韌體之該等多個區塊中的每一區塊在記憶體中具有小於或等於該安全性引擎的該安全記憶體之記憶體儲存容量的大小。
  5. 如請求項1之運算裝置,其中完成該處理器初始化之初始化包含(i)跳轉至儲存於該RAM快取記憶體中的該初始啟動韌體之一開頭,及(ii)執行該初始啟動韌體。
  6. 如請求項1之運算裝置,其中該安全啟動模組進一步用以將該聚合雜湊值傳輸至該處理器。
  7. 如請求項1之運算裝置,其中該處理器進一步用以回應於該聚合雜湊值不匹配於該參考核對和值的一判定而執行安全性功能。
  8. 如請求項7之運算裝置,其中執行安全性功能包含關閉該運算裝置、停用該運算裝置、或重啟該運算裝置其中至少一者。
  9. 如請求項1之運算裝置,其中鑑認該平台初始化韌體進 一步包含(i)自該運算裝置的該記憶體擷取該平台初始化韌體,及(ii)向該處理器通知該平台初始化韌體被鑑認。
  10. 如請求項1之運算裝置,其中該初始啟動韌體包含一階段1啟動載入器;且其中該平台初始化韌體包含在該階段1啟動載入器的執行之前由該處理器執行的一階段0啟動載入器。
  11. 如請求項1之運算裝置,其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包含:(i)自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取的第一區塊儲存於該安全性引擎的該安全記憶體中,(iii)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)回應於將該初始啟動韌體之該第一區塊儲存於該RAM快取記憶體中而自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎的該安全記憶體中,及(vi)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包含(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二 雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包含自該等所判定之第一及第二雜湊值產生該聚合雜湊值。
  12. 如請求項11之運算裝置,其中該安全啟動模組進一步用以判定該初始啟動韌體之該第二區塊是否為該初始啟動韌體之該等多個區塊中的一最後區塊。
  13. 如請求項12之運算裝置,其中回應於該初始啟動韌體之該第二區塊不為該最後區塊的一判定:(i)該安全啟動模組進一步用以(a)連續地擷取該初始啟動韌體之該等多個區塊中的每一剩餘區塊,及(b)判定用於所擷取之每一剩餘區塊的一雜湊值,且(ii)該安全啟動模組或該處理器初始化模組用以將所擷取之每一剩餘區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包含自該所判定之第一雜湊值、該所判定之第二雜湊值、及針對所擷取之該等剩餘區塊中之每一者所判定的該雜湊值來產生該聚合雜湊值。
  14. 如請求項12之運算裝置,其中產生該聚合雜湊值包含回應於該初始啟動韌體之該第二區塊為該最後區塊的一判定而產生該聚合雜湊值。
  15. 如請求項1之運算裝置,其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包含:(i)自該運算裝置的該記憶體擷取初始啟動韌體之該等多 個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取的第一區塊儲存於該安全性引擎的該安全記憶體的一第一緩衝器中,(iii)判定對應於儲存在該安全記憶體的該第一緩衝器中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)與對應於該初始啟動韌體之該第一區塊的該第一雜湊值之判定同時地自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取的第二區塊儲存於該安全性引擎的該安全記憶體的一第二緩衝器中,及(vi)判定對應於儲存在該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包含(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體的該第一緩衝器中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體的該第二緩衝器中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包含自該等所判定之第一及第二雜湊值來產生該聚合雜湊值。
  16. 一種包含一或多個機器可讀媒體的機器可讀媒體,其包含儲存於其上之多個指令,該等多個指令回應於由一運算裝置執行而致使該運算裝置: 由該運算裝置的一安全性引擎來鑑認用於該運算裝置之平台初始化韌體;由該運算裝置的一處理器自該安全性引擎的一安全記憶體擷取該經鑑認的平台初始化韌體;由該處理器執行自該安全性引擎的該安全記憶體擷取的該經鑑認的平台初始化韌體,以將該處理器的一快取記憶體的一部分初始化為一RAM快取記憶體;由該安全性引擎連續地判定用於初始啟動韌體之多個區塊中之每一區塊的一雜湊值,其中連續地判定該等雜湊值包含(i)自該運算裝置的一記憶體擷取該等多個區塊中之每一區塊,(ii)將每一經擷取的區塊儲存於該安全性引擎的該安全記憶體中,及(iii)判定用於儲存在該安全記憶體中之每一區塊的該雜湊值;由該安全性引擎或該處理器將儲存於該安全記憶體中之每一區塊複製至該處理器的該RAM快取記憶體;由該安全性引擎自針對該初始啟動韌體之每一區塊所判定的該雜湊值產生一聚合雜湊值;由該處理器比較該聚合雜湊值與關聯於該初始啟動韌體之一參考核對和值,以判定該聚合雜湊值是否匹配於該參考核對和值;及回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化。
  17. 如請求項16之一或多個機器可讀媒體,其中完成該處理器初始化之初始化包含(i)跳轉至 儲存於該RAM快取記憶體中的該初始啟動韌體之一開頭,及(ii)執行該初始啟動韌體。
  18. 如請求項16之一或多個機器可讀媒體,其中該等多個指令進一步致使該運算裝置回應於該聚合雜湊值不匹配於該參考核對和值的一判定而執行安全性功能。
  19. 如請求項16之一或多個機器可讀媒體,其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包含:(i)自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取的第一區塊儲存於該安全性引擎的該安全記憶體中,(iii)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)回應於將該初始啟動韌體之該第一區塊儲存於該RAM快取記憶體中而自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎的該安全記憶體中,及(vi)判定對應於儲存在該安全記憶體中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包含(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體中的該初始啟 動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包含自該等所判定之第一及第二雜湊值產生該聚合雜湊值。
  20. 如請求項16之一或多個機器可讀媒體,其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包含:(i)自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取的第一區塊儲存於該安全性引擎的該安全記憶體的一第一緩衝器中,(iii)判定對應於儲存在該安全記憶體的該第一緩衝器中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)與對應於該初始啟動韌體之該第一區塊的該第一雜湊值之判定同時地自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取的第二區塊儲存於該安全性引擎的該安全記憶體的一第二緩衝器中,及(vi)判定對應於儲存在該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包含(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體的該第一緩衝器中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體的該第二緩衝器中的該初始啟動韌體之該第二區塊 複製至該RAM快取記憶體;且其中產生該聚合雜湊值包含自該等所判定之第一及第二雜湊值來產生該聚合雜湊值。
  21. 一種用於安全地啟動一運算裝置之方法,該方法包含:由該運算裝置的一安全性引擎來鑑認用於該運算裝置之平台初始化韌體;由該運送裝置的一處理器自該安全性引擎的該安全記憶體擷取該經鑑認的平台初始化韌體;由該處理器執行自該安全性引擎的該安全記憶體擷取的該經鑑認的平台初始化韌體,以將該處理器的一快取記憶體的一部分初始化為該RAM快取記憶體;由該安全性引擎連續地判定用於初始啟動韌體之多個區塊中之每一區塊的一雜湊值,其中連續地判定該等雜湊值包含(i)自該運算裝置的一記憶體擷取該等多個區塊中之每一區塊,(ii)將每一經擷取的區塊儲存於該安全性引擎的該安全記憶體中,及(iii)判定用於儲存在該安全記憶體中之每一區塊的該雜湊值;由該安全性引擎或該處理器將儲存於該安全記憶體中之每一區塊複製至該處理器的該RAM快取記憶體;由該安全性引擎自針對該初始啟動韌體之每一區塊所判定的該雜湊值產生一聚合雜湊值;由該處理器比較該聚合雜湊值與關聯於該初始啟動韌體之一參考核對和值,以判定該聚合雜湊值是否匹配於該參考核對和值;及 回應於該聚合雜湊值匹配於該參考核對和值的一判定而完成該處理器之初始化。
  22. 如請求項21之方法,其中完成該處理器初始化之初始化包含(i)跳轉至儲存於該RAM快取記憶體中的該初始啟動韌體之一開頭,及(ii)執行該初始啟動韌體。
  23. 如請求項21之方法,其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包含:(i)自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取的第一區塊儲存於該安全性引擎的該安全記憶體中,(iii)判定對應於儲存於該安全記憶體中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)回應於將該初始啟動韌體之該第一區塊儲存於該RAM快取記憶體中而自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取第二區塊儲存於該安全性引擎的該安全記憶體中,及(vi)判定對應於儲存在該安全記憶體中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包含(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體中的該初始啟 動韌體之該第二區塊複製至該RAM快取記憶體;且其中產生該聚合雜湊值包含自該等所判定之第一及第二雜湊值產生該聚合雜湊值。
  24. 如請求項21之方法,其中連續地判定用於初始啟動韌體之該等多個區塊中之每一區塊的該雜湊值包含:(i)自該運算裝置的該記憶體擷取初始啟動韌體之該等多個區塊中的一第一區塊,(ii)將該初始啟動韌體之該經擷取的第一區塊儲存於該安全性引擎的該安全記憶體的一第一緩衝器中,(iii)判定對應於儲存在該安全記憶體的該第一緩衝器中的該初始啟動韌體之該第一區塊的一第一雜湊值,(iv)與對應於該初始啟動韌體之該第一區塊的該第一雜湊值之判定同時地自該運算裝置之該記憶體擷取初始啟動韌體之該等多個區塊中的一第二區塊,(v)將該初始啟動韌體之該經擷取的第二區塊儲存於該安全性引擎的該安全記憶體的一第二緩衝器中,及(vi)判定對應於儲存在該安全記憶體之該第二緩衝器中的該初始啟動韌體之該第二區塊的一第二雜湊值;其中將儲存於該安全記憶體中之每一區塊複製至該RAM快取記憶體包含(i)回應於該第一雜湊值之判定而將儲存於該安全記憶體的該第一緩衝器中的該初始啟動韌體之該第一區塊複製至該RAM快取記憶體,及(ii)回應於該第二雜湊值之判定而將儲存於該安全記憶體的該第二緩衝器中的該初始啟動韌體之該第二區塊複製至該RAM快取記憶體;且 其中產生該聚合雜湊值包含自該等所判定之第一及第二雜湊值來產生該聚合雜湊值。
TW104109408A 2014-04-28 2015-03-24 安全地啓動一運算裝置之技術 TWI643070B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??PCT/CN2014/076348 2014-04-28
PCT/CN2014/076348 WO2015165000A1 (en) 2014-04-28 2014-04-28 Securely booting a computing device

Publications (2)

Publication Number Publication Date
TW201602786A TW201602786A (zh) 2016-01-16
TWI643070B true TWI643070B (zh) 2018-12-01

Family

ID=54357968

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104109408A TWI643070B (zh) 2014-04-28 2015-03-24 安全地啓動一運算裝置之技術

Country Status (6)

Country Link
US (1) US10248428B2 (zh)
EP (1) EP3138040B1 (zh)
KR (1) KR101846427B1 (zh)
CN (2) CN106462707B (zh)
TW (1) TWI643070B (zh)
WO (1) WO2015165000A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482275B2 (en) * 2014-01-27 2019-11-19 Cryptography Research, Inc. Implementing access control by system-on-chip
US10223294B2 (en) * 2015-09-01 2019-03-05 Nxp Usa, Inc. Fast secure boot from embedded flash memory
KR101816022B1 (ko) * 2015-11-19 2018-01-31 시큐리티플랫폼 주식회사 장치 및 이의 제어 방법
US10747884B2 (en) 2015-12-24 2020-08-18 Intel Corporation Techniques for coordinating device boot security
EP3291087A1 (en) * 2016-09-01 2018-03-07 Nxp B.V. Apparatus and associated method for authenticating firmware
GB2554940B (en) 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
US10346071B2 (en) * 2016-12-29 2019-07-09 Western Digital Technologies, Inc. Validating firmware for data storage devices
US10664413B2 (en) 2017-01-27 2020-05-26 Lear Corporation Hardware security for an electronic control unit
JP6884600B2 (ja) * 2017-03-02 2021-06-09 任天堂株式会社 無線通信システム、通信方法、情報処理装置、および、情報処理プログラム
US10902126B2 (en) * 2017-03-10 2021-01-26 International Business Machines Corporation Verification of a boot loader program at a control unit to be provided to a host system to load an operating system
FR3075420B1 (fr) * 2017-12-20 2020-01-10 Thales Systeme et procede de demarrage securise d'un processeur
US10860238B2 (en) * 2017-12-27 2020-12-08 Intel Corporation Method and apparatus for improving firmware loading
US11088842B1 (en) 2018-01-30 2021-08-10 State Farm Mutual Automobile Insurance Company Vehicle configuration verification using cryptographic hash chains
WO2019217929A1 (en) 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Failure characterization systems and methods for programmable logic devices
KR102286794B1 (ko) * 2018-08-16 2021-08-06 경희대학교 산학협력단 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 부트 방법
CN109997140B (zh) * 2018-09-10 2023-03-24 深圳市汇顶科技股份有限公司 使用一次写入寄存器从设备的睡眠状态加速安全启动的低功耗嵌入式设备
US10776493B2 (en) 2018-10-12 2020-09-15 Hewlett Packard Enterprise Development Lp Secure management and execution of computing code including firmware
CN109445705B (zh) * 2018-10-29 2022-03-22 湖南国科微电子股份有限公司 固件认证方法及固态硬盘
KR102567097B1 (ko) * 2018-12-05 2023-08-14 삼성전자주식회사 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법
US11017090B2 (en) * 2018-12-17 2021-05-25 Hewlett Packard Enterprise Development Lp Verification of a state of a platform
US10824501B2 (en) 2019-01-07 2020-11-03 Mellanox Technologies, Ltd. Computer code integrity checking
DE112019006221T5 (de) * 2019-02-11 2021-11-04 Intel Corporation Virtueller Flash
US11360784B2 (en) 2019-09-10 2022-06-14 Hewlett Packard Enterprise Development Lp Integrity manifest certificate
US11238159B1 (en) * 2019-11-08 2022-02-01 Facebook Technologies, Llc Artificial reality system with verified boot sequences
GB2589877B (en) * 2019-12-10 2022-01-12 Advanced Risc Mach Ltd An apparatus and method of controlling access to data stored in a non-trusted memory
CN111736763B (zh) * 2020-05-25 2022-05-13 瑞芯微电子股份有限公司 一种存储数据读取控制方法和装置
US11636210B2 (en) 2020-07-01 2023-04-25 Meta Platforms Technologies, Llc Artificial reality system with multi-stage boot process
CN112491812B (zh) 2020-07-08 2022-03-01 支付宝(杭州)信息技术有限公司 区块链一体机的哈希更新方法及装置
CN113971289A (zh) * 2020-07-08 2022-01-25 支付宝(杭州)信息技术有限公司 区块链一体机的可信启动方法及装置
US11269637B2 (en) * 2020-07-23 2022-03-08 Hewlett Packard Enterprise Development Lp Validating machine-readable instructions using an iterative validation process
CN114115506A (zh) * 2020-08-28 2022-03-01 瑞昱半导体股份有限公司 计算机系统、电子装置及状态还原方法
US20220180005A1 (en) * 2020-12-03 2022-06-09 Seagate Technology Llc Secure system-on-a-chip (soc) bootup
US20210110043A1 (en) * 2020-12-23 2021-04-15 Intel Corporation Platform firmware boot mechanism
US11741232B2 (en) 2021-02-01 2023-08-29 Mellanox Technologies, Ltd. Secure in-service firmware update

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022108A1 (en) * 2006-06-27 2008-01-24 Brannock Kirk D Method and apparatus for verifying authenticity of initial boot code
CN102325025A (zh) * 2011-05-25 2012-01-18 北京数码视讯科技股份有限公司 提供源真实性的数据处理方法及系统
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9626241D0 (en) 1996-12-18 1997-02-05 Ncr Int Inc Secure data processing method and system
US6735696B1 (en) 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US20050204155A1 (en) * 2004-03-09 2005-09-15 Nec Laboratories America, Inc Tamper resistant secure architecture
JP4489030B2 (ja) * 2005-02-07 2010-06-23 株式会社ソニー・コンピュータエンタテインメント プロセッサ内にセキュアな起動シーケンスを提供する方法および装置
US8429418B2 (en) * 2006-02-15 2013-04-23 Intel Corporation Technique for providing secure firmware
KR101209252B1 (ko) * 2007-02-02 2012-12-06 삼성전자주식회사 전자기기의 부팅 방법 및 부팅 인증 방법
US9959404B2 (en) * 2007-10-01 2018-05-01 Symantec Corporation Methods and systems for creating and updating approved-file and trusted-domain databases
US7971048B2 (en) * 2008-03-27 2011-06-28 Intel Corporation System and method for establishing a trust domain on a computer platform
US9747340B2 (en) * 2008-06-19 2017-08-29 Microsoft Technology Licensing, Llc Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic
US9792439B2 (en) * 2012-09-19 2017-10-17 Nxp B.V. Method and system for securely updating firmware in a computing device
US9747450B2 (en) * 2014-02-10 2017-08-29 Facebook, Inc. Attestation using a combined measurement and its constituent measurements
CA2874277C (en) * 2014-10-04 2015-08-18 2381371 Ontario Inc. Tamper-evident network messaging method and system, and device configured therefor
US9965270B2 (en) * 2015-07-01 2018-05-08 Quanta Computer Inc. Updating computer firmware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080022108A1 (en) * 2006-06-27 2008-01-24 Brannock Kirk D Method and apparatus for verifying authenticity of initial boot code
US7757098B2 (en) * 2006-06-27 2010-07-13 Intel Corporation Method and apparatus for verifying authenticity of initial boot code
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate
CN102325025A (zh) * 2011-05-25 2012-01-18 北京数码视讯科技股份有限公司 提供源真实性的数据处理方法及系统

Also Published As

Publication number Publication date
TW201602786A (zh) 2016-01-16
EP3138040B1 (en) 2020-12-09
US20170147356A1 (en) 2017-05-25
KR101846427B1 (ko) 2018-04-06
CN110263541A (zh) 2019-09-20
CN106462707B (zh) 2019-06-14
WO2015165000A1 (en) 2015-11-05
CN106462707A (zh) 2017-02-22
KR20160126067A (ko) 2016-11-01
US10248428B2 (en) 2019-04-02
CN110263541B (zh) 2023-05-12
EP3138040A4 (en) 2017-12-13
EP3138040A1 (en) 2017-03-08

Similar Documents

Publication Publication Date Title
TWI643070B (zh) 安全地啓動一運算裝置之技術
CN103718165B (zh) Bios闪存攻击保护和通知
US9589138B2 (en) Computing device boot software authentication
KR101359841B1 (ko) 신뢰성 있는 부트 최적화를 위한 방법 및 장치
TWI643130B (zh) 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法
JP6319609B2 (ja) 信頼できるカーネル起動方法および装置
EP2962241B1 (en) Continuation of trust for platform boot firmware
CN111630513B (zh) 认证所存储代码和代码更新的真实性
US9286468B2 (en) Option read-only memory use
US9135435B2 (en) Binary translator driven program state relocation
JP2007525774A (ja) ランタイム・セキュリティ保証用の自律型メモリ・チェッカ
US10803176B2 (en) Bios security
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
US20170185771A1 (en) Techniques for monitoring integrity of os security routine
JP2019071053A (ja) 認証の加速のための信頼できるストレージデバイスでのチェックサムの生成
US10019577B2 (en) Hardware hardened advanced threat protection
CN114756905B (zh) 主板防伪及bios防护实现方法、装置和控制主板
RU129674U1 (ru) Компьютер с защитой от несанкционированного доступа
US11928210B2 (en) Module and method for monitoring systems of a host device for security exploitations

Legal Events

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