TWI498768B - 具有安全啟動機制之電腦系統、啟動電腦系統的方法、及中央處理單元 - Google Patents

具有安全啟動機制之電腦系統、啟動電腦系統的方法、及中央處理單元 Download PDF

Info

Publication number
TWI498768B
TWI498768B TW098106104A TW98106104A TWI498768B TW I498768 B TWI498768 B TW I498768B TW 098106104 A TW098106104 A TW 098106104A TW 98106104 A TW98106104 A TW 98106104A TW I498768 B TWI498768 B TW I498768B
Authority
TW
Taiwan
Prior art keywords
data
processing unit
central processing
volatile memory
memory
Prior art date
Application number
TW098106104A
Other languages
English (en)
Other versions
TW200943123A (en
Inventor
Ralf Findeisen
Michael Grell
Tim Edward Perley
Marc Edwin Jones
Frank Schuecke
Original Assignee
Globalfoundries Us Inc
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 Globalfoundries Us Inc filed Critical Globalfoundries Us Inc
Publication of TW200943123A publication Critical patent/TW200943123A/zh
Application granted granted Critical
Publication of TWI498768B publication Critical patent/TWI498768B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Description

具有安全啟動機制之電腦系統、啟動電腦系統的方法、及中央處理單元
本發明係關於加強完整性的電腦系統及於其中執行之相關機制;本發明可提升安全標準,進而增進需要安全性電腦平台的應用程式之效能。
隨著電腦系統的普及,於電子計算系統上進行之資訊處理量亦顯著增加,進而導致大量數位資料的產生、分配與處理。以資料儲存容量與增加之處理速度的角度而言,可用之電腦系統資源變大,隨此,越來越多的人能夠進行聲音資料、電影等大型資料組的複製(reproduction),且此等複製係經常地被實施而無視於與以電子形式提供之許多資料結合的保護權利。因此,電子資料之非法複製、儲存及重新分配,會造成重大的經濟損失。再者,應用程式係於諸如網際網路(internet)之分佈廣泛的網路四處散播,此將製造散佈惡意軟體應用程式的機會,其可隨後被用於篡改個別電腦平台之資料及/或組構。舉例而言,由於導入不當的軟體應用程式,使得例如儲存檔案被篡改、資訊在實際使用者不知情的情形下經由網際網路傳播、啟動阻絕服務攻擊從而導致需要在特殊狀態之平台上執行的專屬應用程式無法使用該平台,因而可能對私人環境、特別是對產業造成嚴重傷害。
基於上述原因,已投入相當大的努力在發展各種機制以加強電腦平台之完整性,以降低例如惡意軟體形式、阻 絕服務攻擊、測錄(sniffing)、電子詐欺(spoofing)等「成功的」外部攻擊,並同時增加電腦平台內部調處(internal manipulation)所相關的資料完整性。舉例而言,已有多種加密技術可運用,例如對稱型/非對稱型之加密/解密技術,其可能使資料交換過程中具有高度的抗篡改性,防止第三方在傳輸或儲存資料時篡改資料。舉例而言,以非對稱型加密技術來說,一對私密金鑰和公開金鑰係可用來以其中一金鑰來加密資料,並使用另一金鑰來解密資料,且其中一金鑰為可公開存取。雖然此技術能夠在資料交流及資料儲存方面,提供較佳的完整性,但所考慮之電腦平台之實際組構仍可能遭受複數種攻擊,特別是因為許多意欲提升電腦安全性的應用程式係依賴於可信賴平台組構(trusted platform configuration)之故。
可信賴平台組構可視為一電腦系統,其中的硬體組構硬體組構與軟體應用程式皆被假定為處於專屬組構之狀態。然而安全性平台組構可能僅藉由一連串可信任平台階層的建立而建立,其中,只有當後續階層的完整性經過驗證,才能由前一階層來啟動各後續階層。如此一來,於系統階層的完整性可透過以一連串之完整性驗證步驟維持,而這些一連串驗證步驟的基礎必須具備高度抗篡改性,使得最高階層(例如使用者應用程式)被初始化後,仍能高度信賴系統的完整性。
在典型的電腦平台中,系統初始化需要不同程度的「提取」(abstraction)處理,如關於中央處理單元(central processing unit;CPU)之初始化,系統記憶體的初始化(其通常設置於中央處理單元外部),從外部的大量資料儲存裝置將作業系統載入系統記憶體中,最後再執行使用者應用程式。由加強系統整體的完整性而言,要假定載入作業系統之前的各種系統活動皆具有安全性而可依賴作業系統及使用者應用程式之完整性,可能有所不足之處,這是因為作業系統可能是由「不可信賴」的程序所引動,進而提供藉由更改硬體或軟體元件而篡改基礎平台組構的機會。因此,電腦系統之各種硬體元件(如系統記憶體)的初始化程序以及包含於其中之用以啟動較高系統階層之指令的執行(其可被稱為啟動(boot strapping或booting),皆必須併入一連串「可信賴」的環節中,方可提升系統整體的完整性。
在施加電源後或重置事件後用以初始化電腦系統之典型的第一步驟為使中央處理單元執行「開機自我測試」(power on self-test),於此過程中處理器亦於專屬進入位址(dedicated entry address)開始執行指令,其中該位址係由處理器之重置向量所指示。換句話說,於初始處理器自我測試(initial processor self-test)之後,指令所開始執行的進入位址通常為常被稱為基本輸出入系統(BIOS)之軟體程序的位址,而該BIOS可儲存於電腦平台之專屬外部非揮發性記憶體。在BIOS控制之下,可進行其餘的自我測試步驟,且可判定或「測量」平台的硬體組構。接著,將搜尋如大量資料儲存裝置等可啟動裝置(舉例而 言,電腦系統之硬碟、磁碟、光碟及擴充卡等),並從該可啟動裝置將主要啟動區塊(primary boot block)載入系統記憶體中,同時轉移控制至主要啟動區塊,而該主要啟動區塊可載入作業系統於系統記憶體。
儘管在提升整個啟動過程的安全性方面亦已投入相當大的努力,然而針對啟動程度提供可靠之可信賴測量之核根(core root of trust for measurement;CRTM)仍面臨困難。舉例而言,以平台改變(platform modifications;例如更換包含BIOS軟體之非揮發性記憶體晶片)來說,由於相關的晶片更換可能會因此中斷信任鍊(chain of trust),因此可能使所有之後續驗證步驟成為不可信賴。
本發明揭露的方法及裝置,可避免或至少可減少上述習知技術衍生的問題。
以下之具體實施例,僅係用以例釋本發明之特點及功效,而非用以限定本發明之可實施範疇,在未脫離本發明上揭之精神與技術範疇下,任何運用本發明所揭示內容而完成之等效改變及修飾,均仍應為下述之申請專利範圍所涵蓋。
大致上,本發明係關於加強完整性的電腦系統及其執行之相關機制,藉由建立信賴測量的靜態根(static root of trust for measurement)達成,其中可提供特定資料組,該資料組包含可執行指令及資料值,此指令及資料值由微處理器於開機時存取,並確保任何情況下皆可避免專 屬資料組被入侵的可能性,因此可獲得平台啟動用的定義根(defined root);另外,執行該資料組的方式可達到高度抗篡改性。於包含在該資料組中的指令之執行過程中,不能改變或中斷相關的程序,藉此可提供該組資料之高度完整性,因此其可被考量為預啟動指令及資料值。由於預啟動資料之個別指令的處理於該系統開機時為強制者,故可開始一連串可信賴軟體,從而得以建立高度之系統完整性,這是因為專屬預啟動資料組即表示用於後續驗證步驟之靜態根。為此目的,該預啟動資料組可保存在該中央處理單元核心的非揮發性記憶體中,以實質避免更換BIOS晶片等時的攻擊行為。
本發明之一實施例係關於電腦系統之開啟方法,包括:存取儲存在中央處理單元(CPU)的非揮發性記憶體區之第一組資料,該第一組資料包含第一指令,該第一指令引發該中央處理單元的核心電路初始化該中央處理單元的隨機存取記憶體。該方法復包括從非揮發性記憶體將第二組資料的鏡像(image)載入至該經初始化的隨機存取記憶體,該第二組資料包括用以驗證該第二組資料的完整性之簽章,該第二組資料復包括第二指令,該第二指令引發該中央處理單元初始化該電腦系統之系統記憶體。此外,該方法包括藉由利用該簽章及包含在第一組資料中的解密金鑰而驗證該第二組資料的該完整性。最後,該方法包括於已經成功驗證該第二組資料時,利用該第二指令初始化該系統記憶體。
本發明之另一實施例係關於電腦系統之開啟方法,包括:於開機及重置事件之其中至少一者後,存取中央處理單元的內部非揮發性記憶體,該非揮發性記憶體包含預啟動指令及資料值,用以初始化該中央處理單元的內部揮發性記憶體並驗證儲存於非揮發性記憶體之啟動指令及啟動資料值的至少一部分之完整性。該方法復包括藉由執行該預啟動指令將該啟動指令及啟動資料值的至少一部分從該非揮發性記憶體載入至該內部揮發性記憶體中。此外,藉由執行該預啟動指令驗證該啟動指令及啟動資料值的至少一部分之完整性。最後,於成功驗證該啟動指令及啟動資料值的至少一部分之完整性後,執行該啟動指令。
本發明亦揭露一中央處理單元包括:基板,具有形成於其上的電路元件、揮發性隨機存取記憶體、非揮發性記憶體及匯流排系統,其中,該電路元件定義中央處理單元核心,而該匯流排系統用以連接該中央處理單元核心、該揮發性隨機存取記憶體及該非揮發性記憶體。此外,該中央處理單元包括儲存於該非揮發性記憶體的預啟動資訊,該預啟動資訊包含用以初始化該揮發性隨機存取記憶體與驗證啟動程序的至少一部分而可被該中央處理單元核心執行的指令、以及資料值。
本發明進一步揭露一面向,上述中央處理單元可為電腦系統的一部分,該電腦系統除中央處理單元之外,復包括系統記憶體、包含啟動程序之記憶裝置、以及將該系統記憶體及包含該啟動程序之記憶裝置與該中央處理單元予 以連接之介面系統。
以下將描述多個例舉實施例。為了清楚起見,並未將實際實施之所有特徵皆描述於本說明書中。吾人將當然體會到,於任何此種實際實施例的研發中,必須做出許多特定之實施決定以達到研發人員之特定目標,例如遵從與系統相關或與商業相關之限制條件,該限制條件隨著實施之不同而有所變化。此外,吾人將體會到此種研發之投入非常複雜且耗時,但對於在所屬技術領域中具有通常知識而可由本發明所揭露之內容得益者而言,其僅屬於慣常程序。
本發明之內容將參照附圖進行描述。該等圖示中之多個結構、系統及裝置僅為了說明起見而示意地描繪,以免因所屬技術領域人員所熟知之細節而模糊本發明之內容。但是,該等附圖係被包含以描述並說明本發明內容之說明範例。下文中所用之用字和措辭應被了解及理解為與熟習相關技術領域之人士對於該些字辭的了解具有一致之意義。下文中該等名詞或措辭之一致性用法並不會想意者名詞或措辭之特別定義(亦即與熟習相關技術領域之人士所了解之通常和慣用意義不同之定義)。欲具有特別意義如特別定義之名詞或措辭,也就是不同於熟習此技藝之人士所理解之意義(如特殊定義),將於本說明書中以定義方式特別提出以直接且明確地提供該等名詞或措辭之特殊定義。
大致而言,本發明揭露一種系統及機制,該系統及機制於開機(start up)、重置或其他需要初始化系統之運作 狀態下,執行儲存於非揮發性記憶體之指令及利用儲存於非揮發性記憶體之資料,其中該非揮發性記憶體代表中央處理單元之一部分。藉此,可顯著降低非揮發性記憶體中的資料組遭到篡改之可能性。因而,可確保在開機或CPU的重置後第一個指令係自非揮發性記憶體所提取,藉此在初始化中央處理單元與整體電腦系統的期間,非揮發性記憶體之內容可做為信賴測量的靜態根(static root of trust for measurement)。因此,包含於其中之資料組可作為預啟動或預BIOS元件,其可初始化諸如內部隨機存取記憶體等進一步之系統元件,而這些系統元件可作為儲存用以執行部分BIOS軟體的例如變數、堆疊(stack)或指令等運作資料之用。舉例而言,屬於隨機存取記憶體區域之一部份的資料快取記憶體、以及指令快取記憶體,可藉內部非揮發性記憶體之預啟動資料初始化,以有效避免包含於其中之資料於初始化過程中由外部存取的可能性。也就是說,該隨機存取記憶體區域(即該資料快取記憶體與該指令快取記憶體)為中央處理單元內部元件,因此極難易發生不想要之資料篡改,尤其是此時外部系統記憶體尚未初始化。取決於隨機存取記憶體的儲存容量,BIOS程序可被分割為兩個部分以上,以便可針對該第一部分(其大小係經設計為符合指令快取記憶體之容量)於隨機存取記憶體中執行一或多個簽章的驗證,以確定BIOS之完整性。如此,在完整性的驗證完成後,此部份之啟動資訊可直接從隨機存取記憶體執行。因此,在藉由執行預啟動指令而使隨機存 取記憶體初始化及載入部分啟動資訊之期間,預啟動資訊即無法由外部存取,藉此可實質避免對第一簽章驗證程序進行任何資料篡改的情形。在一些示範性實施例中,預啟動資訊在簽章驗證後可由外部應用程式存取,例如存取解密金鑰,以評估BIOS升級版本等之完整性。
因此,在啟動資訊第一部分的簽章驗證完成後,流程控制可交由該第一部分,使接下來的啟動處理得以繼續,其步驟包括:初始化系統記憶體、複製其餘之啟動資訊,同時驗證該啟動資訊其他部份的完整性。因此,儲存於非揮發性記憶體(其係設置成中央處理單元之必要部分)中之該資料(即指令及資料值)可使用作為信賴測量的靜態根,藉此提供一電腦平台,於其中可達成具有抗篡改性之硬體與軟體組構。特別是,在考慮到諸如更換BIOS晶片等攻擊時,於此所述之實施例之機制可針對依據可信賴電腦平台而以金融交易或數位權限管理為主體使用平台之一般應用程式提供加強之安全性。
第1圖示意性地顯示根據本發明之實施例之中央處理單元(CPU)100,其中可信賴測量之核根(CRTM)以高度抗篡改性的方式實施。中央處理單元100可包括具有用於資料處理之元件之中央處理單元核心102,該資料處理例如為實行算術運算或邏輯運算等。該中央處理單元核心102係功能性地連接於內部隨機存取記憶體101,該內部隨機存取記憶體101可包括複數個靜態隨機存取記憶體單元或其他類似單元,其與中央處理單元100的整體組構相容。於 一示範性實施例中,該內部隨機存取記憶體101可包括第一記憶區(亦表示為資料快取記憶體101A)以及第二記憶區(亦表示為指令快取記憶體101B)。例如,該內部隨機存取記憶體101可利用快速記憶體技術來實施以增加中央處理單元100之整體效能,此技術在複雜積體電路中通常為必要者。然而應當瞭解的是,任何適當的記憶體技術皆可應用於內部隨機存取記憶體101,只要在初始化中央處理單元100之期間可透過中央處理單元核心102達成內部隨機存取記憶體101之直接控制,而無外部存取的可能性即可。
另外,該中央處理單元100可包含內部非揮發性記憶體103,其可利用適當之記憶體技術(例如以快閃記憶體之形式或其他唯讀記憶體技術等)來設置;這些技術可避免外部存取造成之內部非揮發性記憶體103內容之更改。如此一來,內部非揮發性記憶體103可視為一安全的記憶體區域,其內容可因此代表可信賴的靜態根。為此目的,本發明係至少於內部非揮發性記憶體103的一部分之中提供資料組103A,該資料組103A將被理解為可被中央處理單元核心102執行之指令以及代表該指令之運算元或類似資料的資料值資料組,並且,於一旦程式化內部非揮發性記憶體103的各個部分後,該資料組103A不會被新資料覆寫。包含該資料組103A的內部非揮發性記憶體103可透過匯流排系統104與該中央處理單元核心102相連接,俾使於開機或重置後,可跳越至內部非揮發性記憶體103的特定位址。藉此可提供用於中央處理單元核心102之重置向量的 硬連接(hard-wired)目標,以確保至少在開機事件或重置事件時,指令係由具備安全性之內部非揮發性記憶體103開始執行。
應當瞭解的是,該中央處理單元100可基於精密半導體製程技術形成,其中可於半導體基材等適合的載體材料中,容置基於CMOS製程等相關技術形成的複數個電路元件,其中可根據中央處理單元100之特定裝置架構來形成電晶體、電容器、電阻器等元件。於本實施例中,可因而在共通製造流程中在共通基板上形成中央處理單元100的各種元件,以提供內部隨機存取記憶體101及內部非揮發性103作為中央處理單元100之內部或構成整體所必要的構件。例如,能夠與中央處理單元核心102所需之非揮發性記憶體單元及高效能邏輯閘一起形成揮發性及快速記憶體單元的各個製程技術目前已相當成熟。此外,可提供適當的機制以避免在程式化內部非揮發性記憶體103或至少其一部分(包括資料組103A)後,資料位元被進一步之存取更改,而可提供該資料組103A一個受到保護的環境。
第2圖係為包含如上述可提供資料組103A一個受到保護的環境之中央處理單元100的電腦系統150,其中,於所示之實施例中,該中央處理單元100可包括內部隨機存取記憶體101,而該內部隨機存取記憶體101可為資料快取記憶體101A及指令快取記憶體101B之形式,其大小(例如64kB)可容納啟動資訊的部分,並當實行資料組103A的指令時,擔任「系統隨機存取記憶體」之角色。同樣地, 該指令快取記憶體101B可具有64kB之大小,惟應瞭解任何其他適當之記憶體大小皆適用,只要其相容於驗證過程中將由內部隨機存取記憶體101執行之啟動資訊之個別部份的大小即可。類似地,內部非揮發性記憶體103可具有任何適當大小,例如32kB,以相容於代表電腦系統150可信賴測量之核根的資料組103A之需求。舉例而言,資料組103A可包括代表一安全載入程序1031A的指令及資料值,其中該安全載入程序1031A係用於載入啟動資訊個別部分於內部隨機存取記憶體101中以執行驗證程序。此外,該資料組103A可包括一或多個解密金鑰,其可代表非對稱型加密/解密演算法的公開金鑰1302A,以在內部隨機存取記憶體101中驗證啟動資訊之經簽章的部分。應理解的是,資料組103A之公開金鑰1302A的數目可依照安全考量而選擇,例如考量到維持用以提供各金鑰配對之適當架構具備高度完整性等。
電腦系統150可進一步包含系統記憶體110,該系統記憶體可例如為包含隨機存取記憶體單元(例如動態隨機存取記憶體單元等)之任何適當的記憶體裝置。系統記憶體110的大小可調適成符合於考量到該電腦系統150之效能與儲存容量的需求。並且,該電腦系統150可包含如快閃記憶體等之非揮發性記憶體120,其可包含亦稱為BIOS資訊的資訊,其至少一部分可為簽章部分;換句話說,簽章部分可包括基於適當的散列演算法(hash algorithm)並結合加密機制而獲得之簽章,並且如上所述,可在該資料組 103A中包含一個或多個適合的解密金鑰。
於一示範性實施例中,該非揮發性記憶體120可包括分為兩部分的啟動資訊,其中第一部分可包含用於初始化其他系統元件(例如系統記憶體110)的資料及指令,而該其他系統元件係用以容納啟動資訊的第二部分,並於第一部分在該中央處理單元100提供的受保護環境中被驗證後執行該第二部分。關於在非揮發性記憶體120中的啟動資訊之詳細組構將參考第3及4圖稍後描述。
該電腦系統150可另外包含介面系統140,其係設為將該系統記憶體110、非揮發性記憶體120與該中央處理單元100運作性地予以連接。於一示範性實施例中,該電腦系統150可進一步包括一次性程式化記憶體(one-time programmable memory)130,其可包括平台特定性資訊(platform-specific information),例如關於啟動源及相關參數者。舉例而言,如圖所示,一次性程式化記憶體130可包含關於啟動選項1301的資訊,用以指示中央處理單元100自內部非揮發性記憶體103啟動與否。另外,於該一次性程式化記憶體130中所提供之安全位元1302可包括用以判定要將重置後該中央處理單元100的初始指令提取導向何處的個別位元。例如,該位元設為“1”時,可將執行轉移至內部非揮發性記憶體103,從而進入安全啟動處理之程序。某些情況下,例如為了開發程式或除錯,可能需要關閉安全啟動功能。其他情形下,可能根據平台需求,需要關閉或略過可信賴平台功能。此時,於安全啟動處理 期間係不允許該位元狀態的改變。為此目的,所以除錯模式(例如JTAG……)至少在啟動期間將全部被關閉。在關閉個別的除錯模式之後,可執行安全啟動程式,詳細說明如後。同樣地,該一次性程式化記憶體130可包括在安全啟動程序期間控制除錯功能的位元,其中,該除錯功能於開發程式期間係有助益,而在生產時係關閉個別的除錯功能控制。除這些安全位元1302之外,該一次性程式化記憶體130還可包括其他資訊,例如廠商標誌1303或可用於數位權利管理應用程式等之任何獨特數字1304。應理解的是,在其他實施例中,該一次性程式化記憶體130可被省略,或可於開發程式或實際應用時被提供以包含用以控制該安全啟動處理的其他資訊。
第3圖係示意性地顯示啟動資訊121之組構,且該啟動資訊121可儲存於非揮發性記憶體120中。在第3圖所顯示之實施例中,該啟動資訊121(亦可稱為BIOS)可包括第一部分121A,且該第一部分121A可表示包含指令及資料值的資料組,其中該指令及資料值的大小如前述係與內部隨機存取記憶體101之大小相容。舉例而言,就上文中所給定之各資料快取記憶體101A、指令快取記憶體101B為64kB之例示大小而言,第一部分121A容量的極大值係限制為約32kB。然而應理解的是,本發明可依據內部隨機存取記憶體101內可用之儲存容量使用任何其他適合大小之第一部分。另外應理解的是,當啟動資訊121大於內部隨機存取記憶體101之容量時,必須提供第一部分 121A,這是因為一般而言啟動程序可能佔用數十萬個位元或以上之大小,故啟動資訊121超出內部隨機存取記憶體101之容量時整個啟動處理可能無法基於內部隨機存取記憶體101而執行之故。在其他情形,當在儲存容量足夠時,啟動資訊121整體可於安全啟動處理期間使用,詳細內容描述於後。
如第3圖所示,若設置有第一部分121A時,第一部分121A可作為用於第二部分121B的初始BIOS「載入器」,其中該第一部分121A可包含經由整個該第二部分121B所得到之散列值(hash value)。用於該第二部分121B之散列值亦可由基於經由整個第一部分121A所得到之散列值而包含於第一部分121A中的簽章所保護,且此步驟可在一專屬可信賴中心之中完成。因此該第二部分散列值的加密可為非必要。該第一部分121A散列值之簽章可用於在安全啟動處理期間驗證第一部分121A。因此該第一部分121A可設定為實行必要的平台初始化動作,例如記憶體控制器的初始化等,並接著將該第二部分121B自非揮發性記憶體120映照(shadowing)至啟動系統記憶體110。
在執行第一部分121A後,散列值可經由複製至系統記憶體110的第二部分121B計算之,且所得的散列值可與最初包含在第一部分121A的散列值相互比較。如此,可依據包含在第一部分121A之散列值,驗證第二部分121B的完整性,從而提供完整性的信任鍊。因此如第3圖所示,可藉由處理第一部分121A獲得簽章,且此步驟可基於適當的 可信賴環境在適當之信任中心完成。為此,可應用安全散列演算法以提供一或多個散列值,例如散列值0、散列值1、散列值2同時結合適當的控制資料。其後可應用任何適當之加密技術,例如使用合適之私密金鑰的RSA(Rivest,Schamir,Adelman)演算法,以獲得如第3圖右側欄位所示之加密散列值。如前述,合適數目之公開金鑰1302A可包含在資料組103A中,從而在如第3圖所示的流程中所產生之已加密之散列值或簽章可被解密。
第4圖為驗證第一部分121A中所包含的簽章之流程400示意圖;此流程400可於啟動電腦系統150之期間依據資料組103A實行之。該驗證步驟S401可基於例如使用一公開金鑰之RSA演算法完成,以獲得S402經初始地產生之散列值,如散列值0、散列值1、散列值2。該等經初始地產生之散列值可隨後與經由對整個第一部分121A施加適當散列演算法所得到的個別散列值進行比較S403,其中,該第一部分121A係經複製至內部隨機存取記憶體101。若計算所得之散列值與藉由解密第一部分121A之簽章所得之初始產生之散列值匹配S404時,則第一部分121A可視為通過驗證S405,如第4圖左側欄位所示。
以下將參考第5及6圖更詳細地說明依據本發明實施例之於安全啟動處理期間的電腦系統150的運作。如前述,為提供一安全平台,應執行可信賴的靜態根(static root of trust),以使該電腦系統開機或重置後,作業系統能夠安全啟動。舉例而言,可信賴之啟動資訊121之經 定義的執行可藉由根據可信賴資料組103A而驗證至少第一部分121A來完成,其中該可信賴資料組103A實質上可抵抗任何外部篡改。因此每次啟動該系統時,係初始化一安全啟動程序,其中,藉由密碼方法,可達初始硬體及軟體組構的完整性驗證。因此,於通過啟動資訊121(即圖示之第一部分121A與第二部分121B)之完整性驗證後,可確認整體啟動程序之完整性,藉此使作業系統能夠可信賴地被初始化,進而可被用以實行對安全性敏感(security sensitive)之應用程式。另一方面,一旦無法通過完整性測試時,則例如在驗證第一部分121A或第二部分121B期間,可應用合適的政策(policy)以限定由該系統所提供的服務;或在其他實施例中,實際上關閉啟動處理。
本發明所揭露之安全啟動架構可避免「等級突破」(class break)的發生,所謂等級突破係指會與一給定安全系統之每個情況作對的攻擊。舉例而言,由外部來源所產生之軟體片段可視為一等級突破,此軟體片段可輕易安裝且容許對安全/保護措施的規避(circumvention),進而容許平台之未授權使用。在數位版權管理(DRM)的環境中,當經DRM保護之資料檔案曾經被突破時,則等級突破可能已經發生,從而容許未受保護之檔案的重新散佈。本發明所揭露的機制及系統可針對等級突破提高安全性,這是由於可基於中央處理單元本身中之不可或缺的部份而得到受保護環境之故,因此係需要中央處理單元本身之篡改、或用於簽署啟動資訊與維持祕密金鑰之架構上的各個缺陷,而 在上述兩種情形皆需要耗費相當的時間與金錢。
第5圖為示意性地描述該電腦系統150運作之流程圖。在步驟S100中,該電腦系統150可被重置、或電源可被供應至系統、抑或任何其他需要安全啟動處理的事件可能發生。因此可由中央處理單元核心102執行適當的自我測試,且可初始化個別元件(如暫存器等)。應理解的是,在某些實施例中,可能不會進行安全啟動處理,而該電腦系統150可能由處於作業系統仍受控制的作業狀態。在步驟S110中,第一指令係取自內部非揮發性記憶體103,其可藉由映射(mapping)該內部非揮發性記憶體103至相對應之重置向量位址而達成。因此,該中央處理單元100在因任何外部事件導致跳越至重置向量的任何事例中會開始進行依據安全資料組103A之執行。於步驟S120中,會因包含在資料組103A中的指令被執行而使得該內部隨機存取記憶體101被啟動。於步驟S130中,至少一部分之啟動資訊121,例如包含其簽章的第一部分121A,可被載入至該內部隨機存取記憶體101中。於步驟S140,啟動資訊121或第一部分121A的完整性可藉由利用包含在資料組103A中的解密金鑰驗證之。
換句話說,在初始化內部隨機存取記憶體101之後,即開始執行啟動資訊121或至少第一部分121A的簽章檢驗。為此目的,在某些實施例中,可依據安全散列演算法計算散列值,該安全散列演算法係例如SHA1,其中一或多個用於啟動資訊121或第一部分121A的簽章可被略過。另 外,例如包含於一次性程式化記憶體130中之廠商標誌1303等其他資訊可適用於某些情形,且可用於計算一或多個散列值。接著一或多個計算得到的散列值,可與一或多個包含在啟動資訊121或第一部分121A之專屬位址的散列值相比較,如前述參照第2圖之說明。為止目的,來自一或多個簽章之散列值可藉由資料組103A中的公開解密金鑰而取得,以得到初始散列值。若計算所得之散列值與初始散列值匹配,則於步驟S150中將啟動資訊121或第一部分121A視為可信賴,並接著於步驟S160繼續啟動處理。於一示範性實施例中,若於步驟S150中未通過完整性檢驗,則於步驟S170中,可指示相對應之啟動失敗,並伴隨著終止啟動處理且發出相對應之錯誤代碼。
在上述實施例中,在將執行交由啟動資訊121或第一部分121A之前,該安全啟動程序(即步驟S100-S150表示之流程)不會將重置程序適用於該電腦系統150之任何元件,藉此能達成該電腦系統150硬體組構硬體組構之可信賴「測量」。
第6圖為依據本發明其他實施例之安全啟動處理的示意圖。如圖所示,於步驟S101中,將決定一安全啟動處理是否應啟動。可藉由設定被包含在一次性程式化記憶體130中之個別的安全位元1302,而取得個別的指示。如前述,於步驟S200中,由內部非揮發性記憶體103開始執行。在步驟S102中,可提供狀態資訊,以例如用於適當地設定一輸出埠。舉例而言,於步驟S102中,可指示安全啟動處理 係在內部自我測試期間被啟動。於步驟S220中,該電腦系統150、特別是中央處理單元100可被初始化,其可例如包含一或多個步驟S121-S129。例如在步驟S121中,該內部非揮發性記憶體103的位址可作適當的重映射,以確保第一個指令將提取自該內部非揮發性記憶體103。於步驟S122中,可偵測啟動源,並於步驟S123中初始化該啟動源。此外,該內部隨機存取記憶體101(即資料快取記憶體101A及指令快取記憶體101B)可在步驟S124、S125中被初始化,且資料快取記憶體之非真實模式(unreal mode)可於步驟S126中建立。再者,啟動資訊121或第一部分121A之鏡像(image)可複製至資料快取記憶體101A中,且於步驟S128中,資料快取記憶體101A中之儲存空間可指派予變數。最後若需要,可於步驟S129中取得廠商標誌1303。
在步驟S141中讀取啟動資訊121或第一部分121A的區塊,接著在步驟S142中,可執行各個散列演算法以得到第一散列值。於步驟S143中,可決定先前讀取之資料區塊是否為最後的區塊。若否,流程將回到步驟S141以讀取另一資料區塊,並於下一步驟S142中,計算散列值並更新之前取得之散列值。當於步驟S143中讀取最後的區塊時,係於步驟S144中儲存計算得到的散列值,並於步驟S145中讀取啟動資訊121或第一部分121A的相關部分以取得包含於其中之簽章。例如,啟動資訊121或第一部分121A的標頭區塊(header block)可用於此目的。於步驟S146中, 一或多個簽章被取得,並於步驟S147,使用一或多個公開金鑰以辨讀於步驟S146中所取得之簽章。於步驟S250,將在步驟S144中所儲存的散列值與藉由執行步驟S147所得之原始散列值進行比較,以決定啟動資訊121或第一部分121A是否被視為可信賴。
當步驟S250中散列值匹配時,之前所初始化的指令快取記憶體可利用啟動資訊121或第一部分121A被更新(該啟動資料此時儲存於資料快取記憶體101A中),以驗證其中之啟動資料。在步驟S162中,可指示安全啟動程序的狀態,最後於步驟163中,藉由實行來自指令快取記憶體的指令,使啟動程序繼續,其中該指令可包括系統記憶體110之初始化、啟動資訊121任何剩餘部分(如第二部分121B)之取得、以及藉由計算散列值並將所計算之散列值與第一部分121A中所包含的原始散列值相比較而進行其完整性的驗證。當步驟S250中的完整性未確認通過時,於步驟S171將提供一相對應的狀態資訊(例如,0xCD)。於一示範性實施例中,於步驟S172終止執行。
因此,本發明所揭露之系統及機制可藉由提供安全啟動處理,而提升電腦平台之完整性,其中安全啟動處理係基於包含在非揮發性記憶體中的預啟動程序者,且其中,一旦資料被程式化至非揮發性記憶體後即無法被覆寫。由於非揮發性記憶體屬於中央處理單元的一部分,故系統初始化可依據儲存在非揮發性內部記憶體之預啟動資訊而完成,同時其中尚可包含適當之解密金鑰,其可用於已簽章 之啟動資訊、或至少啟動資訊之已簽章的部分。用於計算啟動資訊或其一部分之適當散列值的程序、以及與以加密方式儲存在啟動資訊中的原始散列值的比較,係可藉由使用中央處理單元的內部隨機存取記憶體來完成,藉此可防止外部存取的可能性,進而防止系統設定遭篡改的可能性。因此,儲存在內部的預啟動資訊可使用為系統初始化時的信賴測量之核根。
上文中揭露的特定實施例係僅為例示性者,對該技術領域中具有通常知識者而言,本發明可被更改,且能以不同但等效之方式施行。例如,上述之程序步驟可用不同的順序來執行。再者,除非為於申請專利範圍中所描述者,否則無意限制為於此所示之架構或設計的細節。因此明顯地,該等實施例可能會有變動,而任何的變動或等效性的替換係被視為在本發明之精神及範圍內。因此,於此所尋求之保護係於後述之申請專利範圍中提出。
100‧‧‧中央處理單元
101‧‧‧內部隨機存取記憶體
101A‧‧‧資料快取記憶體
101B‧‧‧指令快取記憶體
102‧‧‧中央處理單元核心
103‧‧‧內部非揮發性記憶體
103A‧‧‧資料組
104‧‧‧匯流排系統
110‧‧‧系統記憶體
120‧‧‧非揮發性記憶體
121‧‧‧啟動資訊
121A‧‧‧第一部分
121B‧‧‧第二部分
130‧‧‧一次性程式化記憶體
140‧‧‧介面系統
150‧‧‧電腦系統
S100、S101、S102、S110、S120、S121、S122、S123、S124、S125、S126、S127、S128、S129、S130、S140、S141、S142、S143、S144、S145、S146、S147、S150、S160、S161、S162、S163、S170、S171、S172、S200、S220、S250、S401、S402、S403、S404、S405‧‧‧步驟
400‧‧‧流程
1301‧‧‧啟動選項
1302‧‧‧安全位元
1303‧‧‧廠商標誌
1304‧‧‧獨特數字
1031A‧‧‧安全載入程序
1032A‧‧‧公開金鑰
本發明所揭露之內容可藉由以下圖示簡單說明配合圖示加以瞭解;各圖示元件符號代表不同元件:第1圖為根據本發明實施例之中央處理單元的示意圖,其中包含隨機存取記憶體(快取記憶體)、中央處理單元核心以及包含預啟動資訊的非揮發性記憶體;第2圖為根據本發明實施例具有中央處理單元之電腦系統的示意圖,該中央處理單元包含內部預啟動資訊;第3圖為根據本發明實施例之用以在製造啟動資訊第 一部分的簽章之程序期間操控啟動資訊步驟的示意圖,該啟動程式資料包含指令及資料值;第4圖為根據本發明實施例驗證該啟動資訊一部分的簽章步驟之示意圖;第5圖為根據本發明實施例之流程圖,描述第1b圖的電腦系統之運作;以及第6圖為根據本發明實施例之流程圖,描述包含中央處理單元的電腦系統之運作,該中央處理單元可為第1a圖的中央處理單元。
雖然本發明可容許各種修飾及替代形式,但在此已經由附圖中之範例顯示並描述特定之實施例。然而,應了解的是,本發明並非意欲限制至所揭露之特定形式。相反地,本發明係意欲涵蓋落在由所附申請專利範圍所界定之精神與範疇內之所有修飾、等效及替代者。
S100‧‧‧步驟
S110‧‧‧步驟
S120‧‧‧步驟
S130‧‧‧步驟
S140‧‧‧步驟
S150‧‧‧步驟
S160‧‧‧步驟
S170‧‧‧步驟

Claims (20)

  1. 一種啟動電腦系統的方法,包括:存取儲存在中央處理單元的非揮發性記憶體之第一組資料,該第一組資料包含第一指令,該第一指令引發該中央處理單元的核心電路初始化該中央處理單元的隨機存取記憶體以及驗證該第一指令的至少第一部分的完整性;執行該第一指令的第二部分以驗證該第一指令的該至少第一部分的該完整性;從非揮發性記憶體將第二組資料的鏡像載入至該經初始化的隨機存取記憶體,以回應驗證該第一指令的該第一部分的該完整性,該第二組資料包括用以驗證該第二組資料的完整性之簽章,該第二組資料復包括第二指令,該第二指令引發該中央處理單元初始化該電腦系統之系統記憶體;藉由利用該簽章及包含在該第一組資料中的解密金鑰而驗證該第二組資料的該完整性;以及利用該第二指令初始化該系統記憶體,以回應驗證該第二組資料。
  2. 如申請專利範圍第1項所述之方法,另包括從該非揮發性記憶體將第三組資料載入至該系統記憶體,並且驗證該第三組資料的完整性。
  3. 如申請專利範圍第2項所述之方法,另包括執行包含於該第三組資料中的第三組指令,該第三組指令引發作業 系統從連接至該電腦系統之可啟動裝置載入至該系統記憶體。
  4. 如申請專利範圍第1項所述之方法,其中,初始化該隨機存取記憶體包括初始化該中央處理單元的資料快取記憶體及指令快取記憶體,且其中,該第二組資料係載入至該資料快取記憶體中。
  5. 如申請專利範圍第4項所述之方法,另包括於已經成功驗證該第二組資料的完整性時將該第二組資料複製至該指令快取記憶體,以執行該第二指令。
  6. 如申請專利範圍第1項所述之方法,其中,載入該第二組資料至該隨機存取記憶體係包括執行散列演算法以判定該第二組資料的散列值。
  7. 如申請專利範圍第6項所述之方法,其中,驗證該第二組資料的完整性係包括將該第二組資料的該散列值與藉由應用該解密金鑰至該簽章所取得之初始散列值相比較。
  8. 如申請專利範圍第1項所述之方法,其中,該第一組資料係每當該中央處理單元重置或開機時被存取。
  9. 如申請專利範圍第1項所述之方法,另包括重映射該第一組資料的位址於該中央處理單元的虛擬位址空間中,以使成功驗證該第二組資料的該完整性後得以從外部存取至少該解密金鑰。
  10. 如申請專利範圍第1項所述之方法,另包括提供至少該第二組資料的驗證狀態之狀態資訊。
  11. 如申請專利範圍第2項所述之方法,其中,驗證該第三組資料的完整性係包括判定該第三組資料的散列值,並且將該判定之散列值與包含於該第二組資料中的該第三組資料之初始散列值相比較。
  12. 如申請專利範圍第2項所述之方法,另包括複製該第一組資料至該系統記憶體。
  13. 一種啟動電腦系統的方法,包括:於開機事件及重置事件之至少一者後,存取中央處理單元的內部非揮發性記憶體,該內部非揮發性記憶體包含預啟動指令及資料值,用以初始化該中央處理單元的內部揮發性記憶體並驗證儲存於非揮發性記憶體之啟動指令及啟動資料值的至少一部分之完整性;藉由執行直接來自於該內部非揮發性記憶體的該預啟動指令,將該啟動指令及啟動資料值的該至少一部分從該非揮發性記憶體載入至該內部非揮發性記憶體中;藉由執行直接來自於該內部非揮發性記憶體的該預啟動指令,驗證該啟動指令及啟動資料值的該至少一部分之完整性;以及於成功驗證該啟動指令及啟動資料值的該至少一部分之完整性後,執行該啟動指令。
  14. 如申請專利範圍第13項所述之方法,其中,執行該啟動指令係包括初始化該電腦系統的系統記憶體,並且將啟動指令及啟動資料值的第二部分載入至該系統記憶 體。
  15. 如申請專利範圍第14項所述之方法,另包括驗證該第二部分之完整性,並且於成功驗證該第二部分的該完整性後,依據該第二部分繼續啟動該電腦系統。
  16. 如申請專利範圍第13項所述之方法,其中,初始化該內部揮發性記憶體係包括初始化該中央處理單元的資料快取記憶體,且其中,該至少一部分係載入至該資料快取記憶體並於其中驗證。
  17. 如申請專利範圍第16項所述之方法,另包括初始化該中央處理單元的指令快取記憶體,且複製該至少一部分至該指令快取記憶體並於已成功驗證該至少一部分時執行該啟動指令。
  18. 如申請專利範圍第13項所述之方法,另包括實行該預啟動指令與資料值之重映射及複製的至少其中一者,以使成功驗證該啟動指令的該完整性與資料值的該至少一部分後得以從外部存取至少該資料值。
  19. 一種中央處理單元(CPU),包括:基板,具有形成於其上的電路元件、內部揮發性記憶體、內部非揮發性記憶體及匯流排系統,其中,該電路元件定義中央處理單元核心,而該匯流排系統用以連接該中央處理單元核心、該內部揮發性記憶體及該內部非揮發性記憶體;以及預啟動資訊,儲存於該內部非揮發性記憶體中,該預啟動資訊包含用以初始化該內部揮發性記憶體與驗 證啟動程序的至少一部分的指令、以及資料值,其中該指令可被該中央處理單元核心執行,其中,該中央處理單元係操作以執行直接來自於該內部非揮發性記憶體的該預啟動指令以初始化該內部揮發性記憶體、驗證該啟動程序的該至少一部分的完整性、以及在驗證該啟動指令的該至少一部分的完整性後將該啟動指令的該至少一部分載入至該初始化的內部揮發性記憶體並且執行該啟動指令。
  20. 如申請專利範圍第19項所述之中央處理單元,其中,該預啟動資訊包含一個或更多個解密金鑰,該等解密金鑰係組構成能夠解譯該啟動程序的該至少一部分之簽章。
TW098106104A 2008-02-29 2009-02-26 具有安全啟動機制之電腦系統、啟動電腦系統的方法、及中央處理單元 TWI498768B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008011925.3A DE102008011925B4 (de) 2008-02-29 2008-02-29 Sicheres Initialisieren von Computersystemen
US12/186,821 US8656146B2 (en) 2008-02-29 2008-08-06 Computer system comprising a secure boot mechanism

Publications (2)

Publication Number Publication Date
TW200943123A TW200943123A (en) 2009-10-16
TWI498768B true TWI498768B (zh) 2015-09-01

Family

ID=40911374

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098106104A TWI498768B (zh) 2008-02-29 2009-02-26 具有安全啟動機制之電腦系統、啟動電腦系統的方法、及中央處理單元

Country Status (8)

Country Link
US (1) US8656146B2 (zh)
EP (1) EP2250599A1 (zh)
JP (1) JP2011527777A (zh)
KR (1) KR101237527B1 (zh)
CN (1) CN101965570B (zh)
DE (1) DE102008011925B4 (zh)
TW (1) TWI498768B (zh)
WO (1) WO2009108371A1 (zh)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582676B2 (en) * 2005-01-31 2017-02-28 Unisys Corporation Adding or replacing disks with re-key processing
US8522066B2 (en) 2010-06-25 2013-08-27 Intel Corporation Providing silicon integrated code for a system
US8812828B2 (en) * 2010-11-16 2014-08-19 Intel Corporation Methods and apparatuses for recovering usage of trusted platform module
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting
US20120204254A1 (en) * 2011-02-04 2012-08-09 Motorola Mobility, Inc. Method and apparatus for managing security state transitions
US9021244B2 (en) * 2011-11-04 2015-04-28 Insyde Software Corp. Secure boot administration in a Unified Extensible Firmware Interface (UEFI)-compliant computing device
JP5441984B2 (ja) * 2011-11-08 2014-03-12 シャープ株式会社 電子機器システム、電子機器及び記憶媒体
US8775784B2 (en) 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US20130173906A1 (en) * 2011-12-29 2013-07-04 Eric T. Obligacion Cloning storage devices through secure communications links
US9262637B2 (en) * 2012-03-29 2016-02-16 Cisco Technology, Inc. System and method for verifying integrity of platform object using locally stored measurement
CN104272250A (zh) * 2012-04-30 2015-01-07 惠普发展公司,有限责任合伙企业 可配置的计算机存储器
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
US9047471B2 (en) * 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
CN102929674B (zh) 2012-11-02 2016-02-10 威盛电子股份有限公司 电子装置以及开机方法
US9881161B2 (en) 2012-12-06 2018-01-30 S-Printing Solution Co., Ltd. System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US20140164753A1 (en) * 2012-12-06 2014-06-12 Samsung Electronics Co., Ltd System on chip for performing secure boot, image forming apparatus using the same, and method thereof
US9785596B2 (en) 2013-04-23 2017-10-10 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9235710B2 (en) 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
KR101656092B1 (ko) * 2013-08-13 2016-09-08 윈본드 일렉트로닉스 코포레이션 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
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
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
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
US9767288B2 (en) * 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based 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
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
TWI560611B (en) * 2013-11-13 2016-12-01 Via Tech Inc Apparatus and method for securing bios
US9507942B2 (en) * 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US9798880B2 (en) * 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US9779243B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US9779242B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9367689B2 (en) * 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
KR20150078644A (ko) * 2013-12-31 2015-07-08 에릭슨엘지엔터프라이즈 주식회사 소프트웨어 이미지 이중화 방법 및 장치
KR102227263B1 (ko) * 2013-12-31 2021-03-15 삼성전자주식회사 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
KR20150085301A (ko) * 2014-01-15 2015-07-23 삼성전자주식회사 메모리 시스템의 동작 방법 및 이를 포함하는 메모리 시스템의 초기화 방법
CN104866757B (zh) * 2014-02-24 2019-01-15 联想(北京)有限公司 一种验证方法及电子设备
CN106104561B (zh) * 2014-03-28 2019-10-22 惠普发展公司,有限责任合伙企业 允许针对bios的安装使用测试密钥的方法和设备
CN105022589A (zh) * 2014-04-29 2015-11-04 光宝科技股份有限公司 电子装置及其操作方法
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US9842212B2 (en) * 2014-11-03 2017-12-12 Rubicon Labs, Inc. System and method for a renewable secure boot
US11456876B2 (en) * 2015-03-26 2022-09-27 Assa Abloy Ab Virtual credentials and licenses
CN104866343A (zh) * 2015-05-15 2015-08-26 长城信息产业股份有限公司 一种嵌入式设备的安全启动方法及启动安全的嵌入式设备
CN104881345B (zh) * 2015-05-25 2018-10-23 上海兆芯集成电路有限公司 中央处理器和计算机开机自检的方法
CN104899524B (zh) * 2015-05-25 2018-11-27 上海兆芯集成电路有限公司 中央处理器和验证主机板数据的方法
US10467418B2 (en) * 2015-08-28 2019-11-05 Ncr Corporation Computer pre-boot security verification, enforcement, and remediation
US9996711B2 (en) * 2015-10-30 2018-06-12 Intel Corporation Asset protection of integrated circuits during transport
CN105681032B (zh) * 2016-01-08 2017-09-12 腾讯科技(深圳)有限公司 密钥存储方法、密钥管理方法及装置
US10242195B2 (en) * 2016-07-22 2019-03-26 Hewlett Packard Enterprise Development Lp Integrity values for beginning booting instructions
CN106484477B (zh) * 2016-10-11 2019-11-12 上海华虹集成电路有限责任公司 安全的软件下载与启动方法
US11455396B2 (en) * 2017-05-12 2022-09-27 Hewlett Packard Enterprise Development Lp Using trusted platform module (TPM) emulator engines to measure firmware images
CA3071288C (en) 2017-08-22 2021-03-09 Absolute Software Corporation Firmware integrity check using silver measurements
CN109710315B (zh) 2017-10-25 2022-05-10 阿里巴巴集团控股有限公司 Bios刷写方法及bios镜像文件的处理方法
CN109714303B (zh) 2017-10-25 2022-05-27 阿里巴巴集团控股有限公司 Bios启动方法及数据处理方法
US10757087B2 (en) * 2018-01-02 2020-08-25 Winbond Electronics Corporation Secure client authentication based on conditional provisioning of code signature
WO2019240759A1 (en) * 2018-06-11 2019-12-19 Hewlett-Packard Development Company, L.P. Overriding sub-system identifiers with protected variable values
JP7059127B2 (ja) * 2018-06-26 2022-04-25 キヤノン株式会社 起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及びその制御方法
CN109446815B (zh) * 2018-09-30 2020-12-25 华为技术有限公司 基本输入输出系统固件的管理方法、装置和服务器
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
US10726133B1 (en) * 2019-02-04 2020-07-28 Dell Products L.P. Securely loading UEFI images at runtime
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
JP7286381B2 (ja) * 2019-04-01 2023-06-05 キヤノン株式会社 情報処理装置とその制御方法
US11347856B2 (en) * 2019-05-24 2022-05-31 Dell Products L.P. Bios method to block compromised preboot features
US11657157B2 (en) * 2019-06-06 2023-05-23 Macronix International Co., Ltd. Secure boot system, method and apparatus
TWI756631B (zh) 2020-02-12 2022-03-01 瑞昱半導體股份有限公司 具有韌體驗證機制的電腦系統及其韌體驗證方法
CN113282930B (zh) * 2020-02-19 2024-03-01 瑞昱半导体股份有限公司 具有固件验证机制的电脑系统及其固件验证方法
US11768611B2 (en) 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
US11263109B2 (en) 2020-04-16 2022-03-01 Bank Of America Corporation Virtual environment system for validating executable data using accelerated time-based process execution
US11425123B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for network isolation of affected computing systems using environment hash outputs
US11481484B2 (en) 2020-04-16 2022-10-25 Bank Of America Corporation Virtual environment system for secure execution of program code using cryptographic hashes
US11423160B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for analysis and authorization for use of executable environment data in a computing system using hash outputs
US11528276B2 (en) 2020-04-16 2022-12-13 Bank Of America Corporation System for prevention of unauthorized access using authorized environment hash outputs
FR3111441B1 (fr) * 2020-06-10 2022-08-05 Proton World Int Nv Démarrage sécurisé d'un circuit électronique
US11372982B2 (en) 2020-07-02 2022-06-28 Bank Of America Corporation Centralized network environment for processing validated executable data based on authorized hash outputs
US20230083979A1 (en) * 2021-09-10 2023-03-16 Ampere Computing Llc Method and system for secure boot and rma intervention

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI238357B (en) * 2002-11-27 2005-08-21 Intel Corp Providing a secure execution mode in a pre-boot environment
US20060107320A1 (en) * 2004-11-15 2006-05-18 Intel Corporation Secure boot scheme from external memory using internal memory
US20060112266A1 (en) * 2004-11-22 2006-05-25 Research In Motion Limited Method and device for authenticating software
WO2006086301A1 (en) * 2005-02-07 2006-08-17 Transmeta Corporation System and method for providing a secure boot architecture
TW200802082A (en) * 2006-03-30 2008-01-01 Silicon Image Inc Shared nonvolatile memory architecture

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146788A (ja) * 1993-11-22 1995-06-06 Fujitsu Ltd ウイルス診断機構の作成システムと作成方法並びにウイルス診断機構と診断方法
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
JPH1139158A (ja) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> 実行プログラムの保護方法およびその装置
US20010007131A1 (en) 1997-09-11 2001-07-05 Leonard J. Galasso Method for validating expansion roms using cryptography
JP2002366748A (ja) * 2001-06-05 2002-12-20 Dainippon Printing Co Ltd Icカードを利用した新規口座開設方式
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
US8332652B2 (en) 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
CN1822013A (zh) * 2006-03-14 2006-08-23 上海一维科技有限公司 基于可信平台模块的指纹生物识别引擎系统及其识别方法
CN100504779C (zh) * 2006-06-30 2009-06-24 联想(北京)有限公司 一种加速bios运行的方法
CN1900939A (zh) * 2006-07-18 2007-01-24 上海一维科技有限公司 安全计算机的指纹生物识别装置及其识别方法
US8068614B2 (en) * 2007-09-28 2011-11-29 Intel Corporation Methods and apparatus for batch bound authentication
US8583908B2 (en) * 2007-12-31 2013-11-12 Intel Corporation Enhanced network and local boot of Unified Extensible Firmware Interface images
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI238357B (en) * 2002-11-27 2005-08-21 Intel Corp Providing a secure execution mode in a pre-boot environment
US20060107320A1 (en) * 2004-11-15 2006-05-18 Intel Corporation Secure boot scheme from external memory using internal memory
US20060112266A1 (en) * 2004-11-22 2006-05-25 Research In Motion Limited Method and device for authenticating software
WO2006086301A1 (en) * 2005-02-07 2006-08-17 Transmeta Corporation System and method for providing a secure boot architecture
TW200802082A (en) * 2006-03-30 2008-01-01 Silicon Image Inc Shared nonvolatile memory architecture

Also Published As

Publication number Publication date
KR20100125371A (ko) 2010-11-30
CN101965570A (zh) 2011-02-02
JP2011527777A (ja) 2011-11-04
DE102008011925B4 (de) 2018-03-15
KR101237527B1 (ko) 2013-02-26
CN101965570B (zh) 2013-09-18
EP2250599A1 (en) 2010-11-17
WO2009108371A1 (en) 2009-09-03
US20090222653A1 (en) 2009-09-03
US8656146B2 (en) 2014-02-18
DE102008011925A1 (de) 2009-09-03
TW200943123A (en) 2009-10-16

Similar Documents

Publication Publication Date Title
TWI498768B (zh) 具有安全啟動機制之電腦系統、啟動電腦系統的方法、及中央處理單元
US8464037B2 (en) Computer system comprising a secure boot mechanism on the basis of symmetric key encryption
JP5378460B2 (ja) 状態検証を使用した保護されたオペレーティングシステムブートのためのシステムおよび方法
US8166304B2 (en) Support for multiple security policies on a unified authentication architecture
US8332636B2 (en) Secure policy differentiation by secure kernel design
US8438658B2 (en) Providing sealed storage in a data processing device
EP2207121B1 (en) Protecting content on virtualized client platforms
US7308576B2 (en) Authenticated code module
US7634661B2 (en) Manifest-based trusted agent management in a trusted operating system environment
US7243230B2 (en) Transferring application secrets in a trusted operating system environment
KR20170095161A (ko) 시큐어 시스템 온 칩
TWI567580B (zh) 用於防止惡意軟體執行的方法與系統
US8261063B2 (en) Method and apparatus for managing a hierarchy of nodes
US20100146295A1 (en) Trusted Computing Entities
US8108905B2 (en) System and method for an isolated process to control address translation
EP3440586B1 (en) Method for write-protecting boot code if boot sequence integrity check fails
Muramoto et al. Improving Hardware Security on Talos II Architecture Through Boot Image Encryption
JP6480403B2 (ja) 装置
Amato et al. Mobile Systems Secure State Management
Ruan et al. The Engine: Safeguarding Itself before Safeguarding Others
GB2397981A (en) method and apparatus for managing a hierarchy of nodes