用於可信賴行動電話的簡單可伸縮和可配置安全啟動的製作方法
2023-05-31 20:24:41
專利名稱:用於可信賴行動電話的簡單可伸縮和可配置安全啟動的製作方法
用於可信賴行動電話的簡單可伸縮和可配置安全啟動
背景技術:
一般地,為了提供安全性,現有的啟動框架通常在不可變的存 儲器內放置公鑰和用於強制執行的可信根。接著它們要求系統從其 (例如,作業系統)啟動的任何映像使用對應於公鑰的私鑰以數字 籤名進行了籤名。公鑰和私鑰是全局的。
該系統的缺陷在於其是不靈活的。其不允許啟動進程的精細控 制,並且不能適應於與第三方管理系統一起工作,因為不能在設備 上安全地對新的映像/事件授權。另外,映像不是設備專用的。例如, 可將一個映像從一個設備傳輸到另 一個設備並且仍由同 一個籤名來 驗證,因為儘管映像已經被授權在一個設備上運行,但籤名也將在 另 一個設備上驗證該映像。
由Siani Pearson等人在"Trusted Computing Platforms: TCPA Technology in Context,,(ISBN 0-13-009220-7) ("[TPCA]")中簡要地介紹了 使用所謂設備完整性寄存器的基於TCG技術的安全啟動機制。總體 上,在[TPCA]中介紹的機制是受限的,因為其既不可伸縮,也不靈 活。該機制既不允許啟動對進程的精細控制,也不允許指定大量的 安全配置。另外,TCG需要平臺識別信息不被放置在平臺配置寄存 器(PCR)中(以下討論)。其中當遵照該要求時,在[TCPA]中提 出的解決方案不允許將安全啟動配置綁定到各個系統。
因此存在這樣的 一種需要,即 一種創建改進的安全啟動機制的 方法,該機制是可配置的並且筒單的。特別地,需要在設置中創建 此類安全啟動機制,在該設置中使用可信賴計算組織(TCG)技術 (例如,可信賴平臺模塊(TPM))。
發明內容
總體而言,本發明的示例性實施方式提供對公知現有技術的改 進,其中通過提供用於向行動裝置(例如蜂窩電話、個人數字助理
(PDA)、個人計算機(PC)、膝上型計算機、尋呼機等)添加筒 單、可伸縮、可配置和安全的啟動機制的裝置,這些行動裝置可以 已經包含以可信賴的方式來處理敏感信息(例如,密碼密鑰)和/或 測量系統狀態和歷史的特徵。此類特徵可包括由TCG在2003年10 月的TCG "TPM Main Part 1: Design Principles Version 1.2 Revision 62"中規定的那些特徵,其可在
https:〃www加stedcomputinge:roup.org/downloads/tpmwg-mainrev62 Parti Design Principles.pdf( "[TPM1]")處獲得;在2003年10月的 TCG "TPM Main Part 2: TPM Structures Specification Version 1.2 Revision 62"中規定的那些特徵,其可在
https :〃www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62_ Part2 TPM—Structures.pdf: ( "「TPM21")處獲得:以及在2003年10 月的TCG "TPM Main Part 3: Commands Specification Version 1.2 Revision 62"中規定的那些特徵,其可在
https :〃www.trustedcomputinggroup.org/downloads/tpmwg-mainrev62 Part3 Commands.pdf ( "[TPM3]")處獲得。
不像當前已知的安全啟動機制,本發明的示例性實施方式提供 一種安全啟動機制(即,強制僅認證的程序和/或事件運行在特定的 平臺上的機制),該安全啟動機制具有不限數量的授權啟動配置, 而同時僅需要最小量的安全/機密存儲器。示例性實施方式另外提供 運行時和管理功能性的分隔,其允許其他的授權機制可以稍後插入。 此外,根據示例性實施方式,授權的安全啟動配置(即,安全啟動 狀態的定義)可以被保持在不安全的存儲器中,例如系統盤(例如, 快閃記憶體)。本發明的示例性實施方式具有另外的益處,因為它們基於 現有的TCG技術構建,使得它們在實施TCG技術中需要最小限度 的實現。根據本發明的一個方面,提供一種用於使用安全啟動框架來啟 動系統的方法。根據一個示例性實施方式,系統包括計算引擎和操 作在計算引擎內的安全環境,並且該安全環境與操作在該安全環境 外的一個或多個程序、功能和資源隔離。該示例性實施方式的方法 可包括(1 )執行位於安全環境外部的安全強制功能,所述安全強
制功能被配置成確保僅授權的程序模塊在該系統上執行;以及(2) 如果在執行之前對至少一個程序模塊進行了授權,則使用安全強制 功能來執行所述程序模塊。
在一個示例性實施方式中,執行安全強制功能可包括創建與安 全強制功能的執行關聯的事件,該事件包括與執行對應的代碼,並 且定位與事件關聯的事件證書,其中該事件證書包括對事件的指示 以及對其中事件被授權的系統狀態的指示。執行安全強制功能可另 外包括首先確定事件證書是否是可信的,並且接著至少部分地基於 事件證書來確定事件是否被授權。最後,根據一個實施方式,如果 事件證書被定位並且是可信的,並且事件被授權,則將控制轉交給 安全強制功能。
在另一個實施方式中,事件證書可另外包括密鑰庫綁定,其被 配置成將事件證書綁定到安全環境,並且特別地,綁定到安全環境 內的密鑰庫。在該示例性實施方式中,確定事件證書是否可信的步 驟可包括訪問密鑰庫並且至少部分地基於密鑰庫綁定來確定事件證 書的完整性和真實性。
在另 一個示例性實施方式中,方法可進一步包括確定系統的當 前狀態。根據該示例性實施方式,確定事件是否被授權的步驟可包 括至少部分地基於系統的當前狀態來確定事件是否被授權。
在一個示例性實施方式中,使用安全強制功能來執行至少一個 程序模塊的步驟可類似地包括創建與該程序模塊的執行關聯的事件 並且該事件包括與該程序模塊的執行對應的代碼;定位與事件關聯 的事件證書,其中事件證書包括對事件的指示以及對其中事件被授 權的系統狀態的指示;確定事件證書是否是可信的;確定事件是否被授權;以及如果事件證書被定位並且是可信的,並且事件被授鬥又, 則執行該程序模塊。
根據本發明的另 一個方面,提供一種配置成使用安全啟動框架 來啟動的設備。在一個示例性實施方式中,該設備包括計算引擎和 操作在計算引擎內的安全環境並且與操作在該安全環境外的一個或 多個程序、功能和資源隔離。該設備可另外包括處理器和與該處理 器通信的存儲器,其中存儲器存儲可由處理器執行的應用。該示例 性實施方式的應用可以在執行時被配置成(1 )執行位於安全環境 外部的安全強制功能並且將所述安全強制功能配置成確保僅授權的 程序模塊在該設備上執行;以及(2)如果在執行之前對至少一個程 序模塊進行了授權,則使用安全強制功能來執行所述程序模塊。
根據本發明的另 一個方面,提供一種配置成使用安全啟動框架 來啟動的系統。在一個示例性實施方式中,系統包括操作在系統的 安全環境外部的安全強制功能並且該系統被配置成確定程序模塊是 否被授權在系統上執行並且如果程序模塊被授權,則執行該程序模 塊。
根據本發明的另一方面,提供一種用於使用安全啟動框架來啟 動系統的電腦程式產品。 一 個示例性實施方式的系統包括計算引 擎和操作在計算引擎內的安全環境並且與操作在該安全環境外的一 個或多個程序、功能和資源隔離。該示例性實施方式的電腦程式 產品包括至少一個計算機可讀存儲介質,該計算機可讀存儲介質具 有存儲在其中的計算機可讀程序代碼。在一個示例性實施方式中, 計算機可讀程序代碼部分可包括(l)第一可執行部分,用於執行 位於安全環境外部的安全強制功能,所述安全強制功能被配置成確 保僅授權的程序模塊在該系統上執行;以及(2)第二可執行部分, 用於如果在執行之前對至少一個程序模塊進行了授權,則使用安全 強制功能來執行所述程序模塊。
根據本發明的另 一個方面,提供一種用於使用安全啟動框架來 啟動的設備。在一個示例性的實施方式中,該設備包括計算引擎和操作在計算引擎內的安全環境並且與操作在該安全環境外的一個或 多個程序、功能和資源隔離。該示例性實施方式的設備可另外包括 用於執行位於安全環境外部的安全強制功能的裝置,所述安全強制
功能被配置成確保僅授權的程序模塊在該系統上執行;以及用於如
果在執行之前對至少一個程序模塊進行了授權,則使用安全強制功 能來執行程序模塊的裝置。
已經大體地描述了本發明,現在將參考不必按比例繪製的附圖,
並且在附圖中
圖1是根據本發明的示例性實施方式的安全啟動框架的框圖; 圖2是示出根據本發明的示例性實施方式的在實施安全啟動進 程的第 一 階段時可以採取的步驟的流程程的第二階段時可以採取的步驟的流程圖4是根據本發明的示例性實施方式的事件證書和事件授權的 框圖5是能夠根據本發明的示例性實施方式操作的行動裝置的框
圖6是根據本發明的示例性實施方式的與TCG兼容的事件授權 和證書的框圖7示出根據本發明的示例性實施方式的強制功能的與TCG兼 容的啟動;以及
圖8示出根據本發明的示例性實施方式的在與TCG兼容的環境 中操作強制功能中可以採取的步驟。
具體實施例方式
以下將參考附圖來更全面地描述本發明,其中附圖中示出本發 明的一些但非所有的實施方式。事實上,這些發明可以以許多不同 的形式來實現並且不應認為是對這裡所提出的實施方式的限制;相反,提供這些實施方式從而本公開內容將滿足可適用的法律要求。 通篇,同樣的編號指代同樣的元件。
部分I: 一般性的描述 安全啟動一匡架
圖1根據本發明的示例性實施方式提供安全啟動框架的主要結 構單元的圖示,該安全啟動框架可以實施在例如行動裝置上,以偵_
提供安全啟動進程。如圖所示,該架構本質上可包括計算引擎,該 計算引擎大體上包括具有易失性或非易失性的存儲器(例如,只讀
存儲器(ROM)、隨機存取存儲器(RAM)、電可擦可編程ROM (EEPROM)、快閃記憶體存儲器、硬碟等)、中央處理單元(CPU)以 及本領域技術人員認為必要或有用的任意其他資源的通用計算機。 在計算引擎內的是安全環境,其與位於或操作在該安全環境外部的 程序、功能或資源隔離。如這裡所用,術語"安全"(當用作修飾 語時)指示修飾的程序、功能、存儲器或其他的對象是不可變的和/
或保密的。由TCG創建的安全環境是可信賴平臺模塊(TPM),其 基本上是附加的晶片,該晶片可以與計算設備包括在一起以支持可 信賴計算特徵。在示例性實施方式中,隔離可以單獨基於硬體,單 獨基於軟體,或它們的某種組合。操作在計算引擎內的功能和程序 可以調用在安全環境內操作的某些定義的功能,並且安全環境可與 計算引擎內的程序共享CPU。然而,在共享CPU的情況下,當該 CPU正在執行來自安全環境內的程序代碼時,位於安全環境內的資 源必須僅可由功能和程序來訪問。在這種情況下,當共享CPU時, 必須以這樣的方式來實施隔離,即位於安全環境外的程序和功能不 能夠影響該安全環境內的資源和程序,除非通過明確定義的功能。
針對強制的可信根(RTE)被包括在安全環境中。RTE是整個系 統內執行的第 一個程序並且它必須是可信的,但其不需要是保密的。. 換句話說,儘管任何人可以看到RTE,但其必須被設置成使得沒有 人可以對其做出改變。為了確保真實性,應該使RTE是不可變的。 在一個示例性實施方式中,這可以通過將RTE程序存儲在只讀存儲器(ROM)中來完成。 一般地,RTE的目的是確保在安全環境的外 部執行安全強制功能(以下將詳細描述)。
安全環境中也包括事件驗證器,其基於事件證書和當前系統狀態 來檢查事件是否被允許。 一般地,事件是影響啟動進程的安全性的 事件的描述。特別地,事件是代表可影響布置在系統中的安全性的 事件的代碼。此類事件的例子可以是程序、設備驅動或作業系統的 加載,或將系統置入到調試或維護模式中。在常見的情形中,事件 是代碼映像的加載和執行的編碼代表。例如,事件可以是將要被執 行的代碼映像的密碼散列(例如,安全散列算法l (SHA1)),可 能具有例如"加載,,的字符串前綴。在其中某些代碼段被加載的情 形中,代碼(並且通常其配置)被包括在事件的語法中。然而,在 其他情形中,例如進入到調試模式,事件可以由例如SHAl("進入 調試模式")來表示。由於例如進入調試模式的事件將被記錄在系 統歷史中,其將造成一組事件證書無法成為有效並且其也將造成加 密數據(下面將討論)不可解密。
事件證書是認證的數據結構,其允許在某個系統狀態下執行某個 事件,二者都被定義在證書內(參見圖4和下面的相關描述)。一 般地,期望事件證書綁定於安全環境的單個實例。
為了檢查事件證書是否允許事件,事件驗證器檢查事件證書的真 實性並且接著分析當前系統狀態(如在系統歷史中指示,下面將討 論)、事件和事件證書。如果允許事件,則控制經由事件記錄器(下 面將討論)交回給強制功能。當不允許事件時,系統可以被停止(例 如,關機)或可以通知強制功能不執行或不允許事件。在一個示例 性實施方式中,是否允許事件的判定基於由事件驗證器所使用的事 件證書。通常以這樣的方式來設置事件證書,從而僅允許授權的映 像啟動。例如,將要發生的未授權事件(即,存在不可信的事件證 書)可以代表嘗試啟動未授權的作業系統或以未授權的方式來啟動 作業系統。
安全環境另外包括密鑰庫和系統歷史。密鑰庫可以用於檢查事件證書的真實性和完整性以及可能的事件授權。可以使用任何的消息 認證機制來檢查事件證書的真實性和完整性以及事件授權,該消息 機制例如數字籤名、消息認證碼等,其可以用於認證事件。系統歷 史包含對當前系統狀態和歷史的表示。這是由事件記錄器(下面將 討論)更新並且在當確定是否允許事件時由事件驗證器來使用。
在本發明示例性的實施方式中,事件記錄器也包括在安全環境 中。事件記錄器記錄事件驗證器已經允許的事件。事件也被記錄進 系統歷史中,並且事件記錄器將控制交回給強制功能。
在示例性的實施方式中,強制功能、事件證書倉庫和事件管理器 每個都位於安全環境的外部,而事件授權器可以位於安全環境內部 (如圖所示)或安全環境外部(未示出)。強制功能是運行在安全 環境外部的程序,其在事件被創建之前確保使用事件驗證器對它們 進行授權。在將事件和事件證書傳送到事件驗證器以進行授權前, 強制功能可以從事件證書倉庫查找正確的事件證書。強制功能也可 以處理來自安全環境(即,事件驗證器和/或事件記錄器)的返回並 且遵守任何批准/拒絕的判定。在事件被接受的實例中,強制功能將 控制交回給生成事件的調用方。可選地,當事件被拒絕時,強制功 能可以確定停止正在生成事件的整個系統或子系統,或其可以與事 件生成器一起來確保事件被中止。當生成事件時,可用於強制功能 的選項取決於事件生成器和強制功能之間的協作等級。通常假設強
制功能、RTE和事件證書確保僅與強制功能正確地協作的那些代碼 模塊被執行。此外,當系統啟動時,RTE確保僅正確動作的強制功 能被啟動。系統可以具有若干個強制功能,例如, 一個用於操作系 統,而一個用於虛擬才幾,例如Java。
在一個示例性實施方式中,事件證書倉庫包括用於計算引擎內的 事件證書的存儲器。每個單獨的事件證書可以由密鑰庫來認證,使 得其可以存儲在安全環境外部。強制功能和RTE可以接著訪問事件 證書倉庫以便獲得單獨的事件證書。
在一個示例性實施方式中,事件授權器接受來自事件管理器的事件授權,驗證它們是來自於可信的源,並且接著將它們傳送到事件' 證書倉庫以存儲。事件授權器可通過諮詢系統歷史來檢查由認證的 事件管理器(例如,使用強制功能和事件證書倉庫來批准)提供的 事件授權。可選地,事件授權器可以檢查已經由某些第三方使用例 如數字籤名或消息認證碼來進行授權的事件授權。可以以這樣的方 式使密鑰庫用於將事件認證符綁定到安全環境,即當事件驗證器通 過RTE或強制功能來檢查賦予它的事件時,可以稍後由密鑰庫來檢 查真實性和完整性。
根據本發明的示例性實施方式,事件管理器接收事件授權,檢查 它們是否是可信的,並且如果可信,則將它們傳送到事件授權器,
以便加入到事件證書倉庫。事件管理器可以經由空中下載(OTA) 設備管理協議(例如OMA設備管理)來接收事件授權。
儘管事件授權類似於事件證書,但是與事件證書不同,其不綁定 到安全環境的單個實例。相比之下,事件授權可以綁定到例如第三 方管理代理。在該情形下,事件管理器將檢查事件授權並且使用事 件授權器將其傳輸到事件證書。在一些實例中,事件授權也可以是 有效的事件證書。 通用啟動和管理進程
下面描述根據本發明的示例性實施方式的啟動進程,其中使用上 面討論的安全啟動機制框架。啟動進程可以劃分成兩個階段(1) 啟動強制功能;和(2)在系統的整個有效期執行強制功能。 啟動第一強制功能
參考圖2,其提供了流程圖,該流程圖示出了當在根據本發明的 一個示例性實施方式的啟動進程的第一階段內啟動強制功能時採取 的步驟。如圖所示,進程開始於步驟201,其中計算引擎和安全環境 加電。在步驟202中,系統歷史(SH)被初始化以表示系統已經加 電。接下來,在安全環境的上下文中執行RTE功能(步驟203和204 )。
特別地,RTE首先檢查將要被執行的強制功能,並且接著創建 其執行的事件(例如,EF1 BOOT)(步驟203 )。在步驟204中,RTE在事件證書倉庫(EC)中查找對應於事件(EF1—BOOT)的事 件證書(例如,EF1—CRED)。如果在EC中沒有找到事件證書 (EF1—CRED)(基於在步驟205中所做出的確定),系統啟動^皮中 止(步驟206)。相反,當在EC中找到事件證書(EF1—CRED)時, RTE將事件證書(EF1—CRED)傳送到密鑰庫(KS )以確定事件證 書是否是可信的(步驟207、 208和209 )。
如果事件證書(EF1—CRED)不是可信的,則系統啟動再次:帔中 止(步驟210)。可選地,當由KS認證了事件證書,事件驗證器(EV) 確定事件證書(EF1—CRED)是否授權給出在SH中提供的當前系統 狀態的事件(EF1_B00T)(步驟211)。當事件(EF1—BOOT)沒 有被授權(即,其中EF1—CRED不允許EF1—BOOT處於當前的狀態), 在步驟212中系統啟動^皮中止。可選地,當EF1—CRED (事件證書) 是可信的(如在步驟209中所確定)並且允許EF1—BOOT (事件), 則將控制交給事件記錄器(ER),其將事件(EF1—BOOT)記錄在 SH中(步驟213)。最後,在步驟214中,ER將控制交給EF,並. 且安全環境內部的資源是不可訪問的,直到執行安全環境。 執行強制功能
強制功能,連同上面討論的安全環境的元素確保僅啟動這樣的程 序,其從強制功能正確地請求用於事件的授權。不執行此的程序必 須被隔離,例如由作業系統來隔離,使得它們不能訪問到可以影響 計算環境的安全性或可信賴性的敏感資源。強制功能和作業系統可 以使用標準的技術,例如虛擬存儲器和CPU特權級,以確保不與強 制功能協作的程序和代碼訪問不了敏感資源或功能。
當強制功能初始啟動時(例如,以上述的方式),以一組程序來 配置進行啟動(例如,引導程序加載器或啟動加載器、作業系統等)。 強制功能接著負責針對每個加載生成事件並且執行影響安全啟動的 代碼。圖3提供根據本發明的示例性實施方式的流程圖,其示出當 加載和執行代碼模塊"X"、或執行事件"X"(例如進入調試模塊) 時可以採取的步驟。換句話說,圖3示出啟動進程的第二階段,其示出在系統的整個有效期如何執行強制功能。
在步驟301中,強制功能(EF)首先生成用於加載和執行模塊X 的事件(例如,EV—X)。接下來,EF在事件證書倉庫(EC)中查 找對應於事件(EV_X)的事件證書(例如,X_CRED)(步驟302 )。 當沒有找到事件證書(X_CRED )時,拒絕模塊X的執行(步驟304, 基於步驟303中做出的確定)。可選地,在EC中找到事件證書
(X—CRED),進程進入到步驟305,其中EF將事件證書(XJ^RED) 傳送到密鑰庫(KS)以確定事件證書是否是可信的(步驟306 )。 如果事件證書(X—CRED)不是可信的,則再次拒絕模塊X的執行
(步驟307 )。
當KS確定事件證書(X_CRED )是可信的,則事件驗證器(EV ) 檢查事件證書是否授權給出在系統歷史(SH)中提供的系統狀態的 事件(即,EV確定X—CRED是否授權給出該系統狀態的EV—X )(步 驟308 )。如果事件證書(X_CRED)不允許給出該狀態的事件 (EV—X),則X的執行被拒絕(步驟309 )。然而,當X—CRED是 可信的(如在步驟306中所確定)並且其允許事件EV_X,則將控制 交給事件記錄器(ER),該事件記錄器將事件(EV_X)記錄在SH 中(步驟310)。
在步驟311中,控制接著被交回給強制功能(EF),強制功能 接著加載和執行模塊X (步驟312) 。 EF可接著在另一事件需要授 權時重新開始步驟301中的執行。當事件已經被拒絕(例如,步驟 304、 307或309中),如果EF不具有可用於執行代碼的備用,則 其將可能沒有選擇而自行關機,或開始等待未來的事件。當預計沒 有未來事件,EF可能再次沒有選擇而自行關機。有效地,這將意味 著關閉系統或令其不可用。 管理事件證書
圖4是根據本發明的示例性實施方式的事件證書410和事件授權 420的框圖。如圖所示,事件證書410可包括事件先決條件域412、 事件域414和密鑰庫(KS)綁定域416。在一個示例性實施方式中,事件域提供事件的定義。如上所述,事件可以是代碼映像的加載和 執行的編碼表示(例如,將要被執行的代碼映像的密碼散列)。事 件先決條件域描述了事件被允許的條件(例如,該事件僅在某些其 他事件已經被執行的情況下才允許),並且在一個示例性實施方式 中可以被集成進事件域。KS綁定域將事件證書和其內容綁定到密鑰
庫。如上所討論,這允許KS來檢查事件證書的真實性和完整性。正
如本領域技術人員將理解的,任意數量的協議和方法可以用於提供 該綁定特徵。
事件授權420主要在如何檢查結構的真實性和完整性上不同於 事件證書410。因為期望任何安全設備管理解決方案可以被部署用於 此目的,事件授權的形式主要取決於事件管理器如何具體實現。例 如,為了尋址(即,識別行動電話), 一個系統可使用國際移動設 備標識(IMEI)碼來對設備尋址,另一個可使用私有代碼。為了保 護安全啟動配置, 一些系統可使用基於^^鑰基礎設施(PKI)的數字 籤名,而另 一個系統可使用存儲在防篡改的存儲器中的共享秘密。 可包括安全啟動框架的行動裝置
現在參考圖5,其示出將從本發明的實施方式獲益的一種類型的 行動裝置。特別地,圖5示出行動裝置,在該設備上能夠操作上述 的安全啟動框架。然而,應該理解示出的和以下將描述的行動裝置 僅僅是將從本發明獲益的 一種類型的行動裝置的示例,並且因此不 應被視為限制本發明的範圍。儘管示出並且將在下文為了示例而描 述行動裝置的若干實施方式,但其他類型的行動裝置可以輕易地使 用本發明的實施方式,例如個人數字助理(PDA)、尋呼機、膝上 型計算機和其他類型的電子系統,包括移動、無線設備和固定、有 線設備。
行動裝置包括用於執行 一 個或多個根據本發明的示例性實施方 式的功能的各種裝置,包括在這裡特別示出和描述的那些裝置。然 而,應該理解,在不脫離本發明的精神和範圍的情況下, 一個或多.. 個實體可以包括用於執行一個或多個類似功能的可選裝置。更具體
2地,例如,如圖5中所示,除了天線12、行動裝置10還包括發射器 204、接收器206和裝置,例如處理設備208 (例如處理器、控制器 等)其分別向發射器204提供信號並且從接收器206接收信號。這 些信號包括根據可應用蜂窩系統的空中接口標準的信令信息以及用 戶語音和/或用戶生成的數據。在這點上,可以利用一個或多個空中 接口標準、通信協議、調製類型和接入類型操作行動裝置。更特別 地,行動裝置能夠根據任何數量的第二代(2G) 、 2.5G和/或第三代 (3G)通信協議等來操作。另外,例如,行動裝置能夠根據任何數 量的不同無線網絡互聯技術進行操作,這些無線網絡互聯技術包括 藍牙、IEEE 802.11 WLAN(或Wi-Fi )、 IEEE 802.16 WiMAX、超寬 帶(UWB)等。
應該理解,處理設備208(諸如處理器、控制器或其他計算設備) 包括實現移動臺的視頻、音頻和邏輯功能所需的電路,並且該處理 設備208能夠執行用於實現這裡討論的功能性的應用程式。例如, 處理設備可以包括各種裝置,這些裝置包括數位訊號處理器設備、 微處理器設備以及各種模數轉換器、數模轉換器以及其他支持電路。 行動裝置的控制和信號處理功能根據這些設備的各自能力在它們之 間進行分配。因此,該處理設備208還包括在調製和傳輸之前對消 息和數據進行巻積編碼和交織的功能。該處理設備可以額外地包括 內部語音編碼器(VC) 208A,並且可以包括內部數據數據機 (DM)208B。而且,處理設備208可以包括操作可以存儲在存儲器 中的一個或多個軟體應用的功能性。例如,控制器能夠操作連接程 序,諸如傳統的Web瀏覽器。接著例如根據HTTP和/或無線應用協 議(WAP),連接程序可以允許行動裝置發射和接收Web內容。
行動裝置還可以包括諸如用戶接口的裝置,該用戶接口包括例 如常規耳機或揚聲器210、振鈴器212、麥克風214、顯示器216, 所有的這些都連接到控制器208。允許行動裝置接收數據的用戶輸入 接口可包括允許行動裝置接收數據的多個設備中的任意 一個,例如 小鍵盤218、觸控螢幕(未示出)、麥克風214或其他輸入設備。在包括小鍵盤的實施方式中,小鍵盤可以包括常規數字(0-9)和相關鍵 (#, *)以及用於操作移動臺的其他鍵,並且可以包括全套的字母 鍵或可以被激活以提供全套字母鍵的一組按鍵。儘管沒有示出,但 是移動臺可包括電池,例如震動電池組,從而為操作移動臺所需的 各種電路提供電源,以及可選地提供機械振動作為可一企測的輸出。 行動裝置還可包括諸如存儲器之類的裝置,該存儲器例如包括訂戶身份模塊(SIM) 220、可移除用戶身份模塊(R-UIM)(未示 出)等,其通常存儲涉及移動訂戶的信息元素。除了 SIM,移動設 備可包括其他存儲器。在這點上,行動裝置可包括易失性存儲器222, 以及其他非易失性存儲器224,其可以被嵌入和/或可以是可移除的。 例如,其他非失性存儲器可以被嵌入或可以是可移除的多媒體存儲 卡(MMC)、如Sony公司製造的存儲棒、EEPROM,快閃記憶體、硬碟 等。存儲器可存儲多個或大量行動裝置所使用的信息和數據中的任 意一個以實現行動裝置的功能。例如,存儲器可存儲能夠唯一地標 識行動裝置的標識符,例如國際行動裝置識別(IMEI)碼、國際移 動訂戶識別(IMSI)碼、行動裝置綜合業務數字網絡(MSISDN)碼 等。存儲器還可以存儲內容。例如,存儲器可以存儲用於應用和其 他電腦程式的電腦程式代碼。例如,在本發明的一個實施方式 中,存儲器可以存儲電腦程式代碼,其用於執行事件授權器、事 件驗證器、事件記錄器、針對強制的可信根、事件管理器和/或強制 功能的功能性,如上面詳細討論的。
在示例性實施方式中,行動裝置可另外包括用於實施這裡所述 的安全環境的隔離的安全環境。該隔離的安全環境可以使用專用的 硬體、軟體或硬體和軟體的組合來實施。此類環境的例子包括由各 個製造商(例如,Infineon和Atmel)構建的TPM或"安全才莫式" 虛擬化技術,例如在ARMTrustZone解決方案中存在的。
主要結合移動通信應用來描述本發明的示例性實施方式的移動 設備。然而,應該理解本發明的實施方式的行動裝置可以結合移動 通信行業內和移動通信行業外的各種其他應用來使用。例如,本發明的示例性實施方式的行動裝置可結合有線和/或無線網絡(例如, 網際網路)應用來使用。
部分II:示例性可兼容可信賴工作組織(TCG)的實施方式
下文提供本發明的示例性實施方式的描述,其中上述的安全啟 動框架實施在具有TCG式的特徵的行動裝置上,例如TCG可信賴 平臺模塊(TPM)。 TCG定義的系統歷史
一般地,TCGTPM使用一組平臺配置寄存器(PCR)來測量系 統的狀態,該寄存器是包含在TPM中的160位寄存器。包含在TPM 中的PCR的數目(例如,16或24)取決於實施的TPM的版本。每 個PCR包含事件的安全散列算法1 (SHA1),其可以使用所謂的 TPM—Extend指令來更新。下文提供TPM_Extend指令的描述
令PCR[]表示存儲在TPM內的PCR數組(例如,PCR[O]是PCR 寄存器0, PCR[1]是寄存器1並且依次類推)。令SHAl(x)表示比特 串x的SHA1散列。令/為有效的PCR索引並且令ev為代表將要被 記錄的事件的160位值。令oW-PCR[i]為PCR寄存器/的當前值。 TPM—Extend向PCR[i]分配值SHAl(o/^| ev),即,PCR[i]:= SHAl(o/d II ev)。
假設SHA1函數是強加密散列函數。基於此,假設下面的兩個 屬性(1 )假設PCR寄存器狀態PCR[/]並且160比特值X,找到使 得TPM—Extend將;c分配給PCR[/]的值ev是不可行的;(2 )找到這 樣的兩個事件序列是不可行的,即通過以TPM—Extend來對它們進 行迭代,使得將相同的值分配給PCR寄存器的兩個事件序列。
基於上述內容,這意味著一組PCR寄存器按照TPM一Extend操 作(即,已經被記錄的事件序列)來描述系統狀態。意圖在於由系 統的不同方面生成或涉及系統的不同方面的事件將擴展到不同的 PCR,儘管這取決於系統軟體。
與TCG兼容的事件、系統歷史和事件證書 ; 假設PCR寄存器的數量是n。安全啟動框架內的對象現為(1 )系統歷史是一組PCR寄存器(例如16或24) ; (2)事件是成對的 (即,PCR索引/, 160比特整數ev) ; (3)事件證書也是成對的-狀態描述符和密鑰庫(KS)綁定;以及(4)事件授權是成對的, 包括狀態描述符和認證符。狀態描述符是n個PCR寄存器值的數組 PCR[]以及n個比較操作定義的數組PCR—CMP[]。 PCR—CMP[i]對應 於具有索引i的pcr。 pcr—cmp[]的值可以是"相等"或"不關心"。
由於對前段落中所述的tpm一Extend所進行的假設(例如,假 設SHA1函數是強加密散列函數),所以沒有必要將單獨的事件先 決條件存儲在事件證書或認證符中,因為假設狀態描述符標識了系 統歷史。
圖6示出如上所討論的與tcg兼容的事件證書和4受斥又。 與TCG兼容的RTE、事件驗證器和強制功能 事件證書倉庫
假設事件包括對〈PCR索引,160比特整數〉,事件證書包括,並且狀態描述符包括如上所討論的PCR數組、 以及比較操作數組。ec—LOOKUP (事件,系統歷史)操作試圖找到 授權事件證書。本質上,該過程模擬執行在pcr[]數組上的 TPM—Extend操作,並且接著基於PCR—CMP[]數組中的指示將結果 與狀態描述符pcr值進行比較。
在一個示例性實施方式中,EC一LOOKUP以下文所述進行。首 先,令事件為<,事件〉並且系統歷史是大小為n的數組PCR[]。對 於事件證書中的每個事件證書EC二〈狀態描述符,KS綁定、執行下 面的操作(1 )令EC中的狀態描述符包括PCR值的數組SD—PCR[] 以及比較操作的數組SD—CMP[]; ( 2 )創建臨時數組TMP—PCR[]: 二PCR[]作為當前系統歷史的副本;(3 )令TMP—PCR[i]: 二SHAl(PCR[i]H事件);(4)對於索引-0到n-l,如果SD—CMP[索,並且SD—PCR[索引]! -TMP—PCR[索引],則接著前 進到下一個證書並且去往(1);以及(5)如果上述的檢查沒有造 成到(1)的跳轉,則返回證書ec。最終,如果沒有更多的事件證書要檢查並且沒有返回匹配的一個,則返回失敗。為了清楚,如果
SD—CMP[索引]等於"相等",那麼在由事件啟動(fire)後,狀態 描述符要求具有索引"index"的PCR以值SD—PCR[索引]結束。如 果SD—CMP[索引]不等於"相等,,,則意味著"不關心,,的值(由於 只有兩種選擇),並且因此具有索引"index"的PCR可以被略過以 便前進到下一個。 強制功能的與TCG兼容的啟動
下文根據本發明的一個示例性實施方式描述在TCG兼容方式下 RTE可以如何啟動強制功能(EF)。在圖7中示出進程的步驟。一 般地,RTE僅需定位合適的證書並且4妻著允許啟動繼續。
更具體地,當計算引擎和安全環境加電時,進程在步驟701中 開始。接下來,系統歷史(SH)被初始化並且所有的PCR值被設置 成0(步驟702)。接著可在安全環境的上下文中執行RTE功能。特 別地,在步驟703中,RTE創建代表EF的啟動的事件EF1—BOOT。 該事件例如可以是PCR索引0和與EF代碼映4象連接的串"boot"的 SHA1散列,例如<0, SHAl("boot"IIEF代碼)〉。
下面在步驟704中,RTE從SH查找PCR[]數組並且在步驟705 中,查找事件證書EF1—CRED:=EC—LOOKUP(EF1—BOOT,PCR[])。如 果EC—LOOKUP返回失敗,則系統啟動#:中止(步驟707)。可選 地,當找到EF1—CRED並且允許EF1—BOOT,則密鑰庫(KS)和 KS綁定用於檢查EFl—BOOT證書是可信的(步驟708 )。如果事件 證書是不可信的,則系統啟動再次被中止(步驟710),並且RTE 可從事件證書倉庫(EC)移除該證書。當事件證書是可信的,則基 於事件證書和系統狀態來確定事件是否被允許(步驟711 )。如果事 件不被允許或不被授權,則系統啟動在步驟712中被中止。然而, 當找到的EF1_CRED是可信的時,並且允許EF1—BOOT,則控制被 轉交給事件記錄器(ER),該事件記錄器將EF1—BOOT記錄在系統 歷史(SH)中(步驟713)。最後,在步驟714中,ER將控制轉交 給EF並且安全環境內的資源將不再可訪問。強制功能操作
一般地,本發明的示例性實施方式的強制功能(EF)以直接的方式 來操作。然而,兩個值得注意的點在於針對真實性的檢查可以在事 件驗證器(EV)內執行,並且狀態歷史和狀態描述符比較可以在安
全環境外部(由EF)執行也可以在安全環境內部(由EV)執行。
下文根據本發明的示例性實施方式提供在操作EF中可採取的步 驟。首先,在步驟801中,EF創建加教/執行模塊X的事件(EV—X)。 接下來,在步驟802中,EF從SH查找PCR[]數組。EF接著查找事 件證書X—CRED: =EC—LOOKUP(EV—X,PCR[])(步驟803 )。如果 EC—LOOKUP返回失敗,則拒絕X的執行(步驟805 )。可選地, 當找到X一CRED, EF將X一CRED傳送到KS以檢查X—CRED是否是 可信的(步驟806)。如果X一CRED是不可信的,則X的執行將再 次被拒絕(步驟808 )。當由KS對X—CRED認證時,事件驗證器(EV ) 檢查事件證書是否允許EV—X (步驟809 )。
為了檢查事件證書(X—CRED)是否允許事件(EV—X),則可 以實施下面的操作令Xj:RED中的狀態描述符包括PCR值的數組 SD—PCR[]以及比較操作的數組SD—CMP[];創建臨時數組 TMP—PCR[]: 二PCR[]作為當前SH的副本;令TMP—PCR[i]: =SHA1 (PCR[i]ll事件);對於索引二0到n-l:如果SD—CMP[索引]="相 等,,並且SD—PCR[索引]! =TMP—PCR[索引],則拒絕X的才丸行。為 了清楚起見,因為在安全環境的外部執行EC一LOOKUP操作,除了 是可信的以外,EV功能也必須檢查事件證書授權事件。這意味著檢 查系統將從執行事件獲得期望的狀態。上述的循環如此執行並且基 本上是EC一LOOKUP原語內的功能性副本。假設X一CRED是可信 的並且允許EV一X,則將控制轉交給事件記錄器(ER),其將EV—X 記錄在系統歷史中(步驟811)。最後,ER將控制交回給EF (步驟 812),並且EF加載和執行代碼模塊X (步驟813 )。當下一事件 需要授一又時,EF返回到步驟801。 KS綁定和事件認證符根據本發明的各種示例性實施方式,下文提供用於實施KS綁定 和事件認證符的若千備選方案。
KS綁定
如上所述,假設本發明的示例性實施方式的KS綁定將事件證書 倉庫(EC)證書綁定到安全環境和密鑰庫的單個實例。這與事件授 權中的認證符相反,其被假設將事件授權綁定到允許管理安全啟動 功能的具有特權的第三方。
用於提供KS綁定的一個備選方案是使用基於SHA1的密鑰散列 報文認證碼(HMAC)以創建和驗證KS綁定。在該示例性實施方式 中,令(1)事件證書EC二〈狀態描述符,KS綁定〉;以及(2) EC 中的狀態描述符包括PCR值的數組SD—PCR[]以及比較操作的數組 SD_CMP[]。創建包括SD—PCR[]和SD—CMP[]的比特串。稱該先後順 序為匯集MARSHAL(EC)。令HMAC—SHAl(yb乂WW"g)包括使用比特 串j力、g上的密鑰計算的HMAC_SHA 1 。令秘密密鑰 ROOT—EC—KEY是160比特的秘密。該密鑰應該被秘密保存。EC的 KS綁定現在可以是定義的
HMACSHAl(ROOT一EC一KEY,MARSHAL(EC))。 EC的真實性可以 通過計算TMP:=HMAC_SHAl(ROOT_EC—KEY,MARSHAL(EC))並 且接著比較TMP和EC中的KS綁定來驗證。如果它們相等,則EC 是真實的。
備選的KS綁定是基於數字籤名的KS綁定。在該示例性實施方 式中,令(1 )對於任何的安全數字籤名方案,Sign{SecretKey}(x) 是x上基於公鑰的數字籤名操作;(2 )Verify{PublicKey}(x,signature) 是相應的驗證操作;以及(3)如先前的段落定義MARSHAL(EC)。 KS綁定現在可以被定義為Sign{Secretkey}(MARSHAL(ec))。驗證將 是Verify{PublicKey}(MARSHAL(ec),ks binding)。
在該方法中,不需要在安全環境內部存儲秘密密鑰,但公鑰操 作更為複雜並且昂貴。數字籤名也往往在比特長度上比 HMAC SHA1消息認證碼更長。事件認證符
假設事件授權中的認證符將事件授權綁定到允許管理安全啟動 功能的具有特權的第三方。這與假設將EC證書綁定到安全環境和密 鑰庫的單個實例的K S綁定是不同的。在架構層處的該解耦合是有意 的,因為其允許獨立於它們的尋址和密鑰分發機制來插入任意第三 方管理框 架。
該段落根據本發明的 一 個示例性實施方式來描述如何使用該框
架和基於TCGTPM的加密來實施任意的第三方機制。
在一個示例性實施方式中,TCG TPM允許將對數據的訪問加密 到平臺的某種狀態,其中利用類似於描述的事件證書中的狀態描述 符的機制來定義平臺。加密可以通過令TPM加密數據並且接著將加 密的數據綁定到狀態描述符來執行。數據僅可在如果PCR[]數組匹配 綁定到加密的數據的狀態描述符時才可被啟封(解密)。
存在有許多種方式來實際地實施管理/配置功能性。 一些可能需 要事件授權器位於安全環境內部(有效地組合事件管理器和事件授 權器),而一些可能不需要。這通常意味著需要什麼級別的防篡改 來處理密鑰庫中的密鑰。
該段落中的方法描述示例性的情況,其中事件管理器和事件授 權器在安全環境的上下文的外部執行,但提供的TCGTPM的加密被 用於確保密鑰不會洩密。該段落使用術語事件授權器來描述事件管. 理器和事件授權器二者。在該情況下,安全環境包含在 [TPM 1 ] [TPM2] [TPM3 ]中所述的加密和密鑰管理功能性。
對於每個安全啟動管理系統X,假設在平臺上存在下列內容 (1 )代理AGENT—X,其可驗證進入的事件授權和狀態,以驗證a) 它們是否是對代理在其上執行的系統的尋找以及b )事件授權是否是 有效的;以及(2)事件證書EV—AGENT_X,用於以定義的配置來 執行該代理。另外假設存在倉庫(事件授權倉庫),其中未決的事 件授權可以被放置在其中直到創建相應的事件證書,並且使用基於 HMAC_SHA1的KS綁定,儘管其他系統將以類似的方式來工作。根據一個示例性實施方式,在引導時,RTE必須檢查事件授權 倉庫是否為空。如果其為空,則EF的啟動如所述那樣繼續。如果事 件授權倉庫不為空,則RTE替代EF來執行事件授權器功能。為了 執行事件授權功能,RTE必然需要有效的事件證書。
創建用於事件證書的有效KS綁定所需的秘密密鑰(在該情況下 為ROOT—EC_KEY )已經加密為(使用TPM_Seal) —組PCR值, 這些值在事件授權器功能已經由RTE測量和執行並且所有的管理代 理(EV—AGENT—X)已經由事件授權器加載後存在。如此,如果系 統處於任意其他的狀態,則TPM將不對其進行解密。稱該加密對象 為SEALED一EC—KEY。
在一個示例性實施方式中,事件授權器功能(EA)如下操作。 首先,對於出現在平臺上的每個EV_AGENT, EA執行並且加載這 些代理。對於加載代理和它們的配置,必須存在有效的事件證書, 並且測量每個加載。在該意義上,EA的功能非常類似於EF。安全 環境中的PCR[]數組現在應該處於ROOT—EC—KEY被加密到的狀態。 EA現在使用SEALED—EC—KEY上的TPM—Unseal來啟封 ROOT—EC一KEY。
對於每個事件授權E—AUTH,下面的情況將發生(1 ) EA查 找進程E—AUTH所需的EV—AGENT_X; ( 2 ) EV_AGENT—X驗證 E_AUTH; ( 3 )如果EV_AGENT—X返回E—AUTH是可信的並且是 有效的,則EA通過以使用ROOT—EC—KEY創建的KS綁定來替代 認證符欄位,從E—AUTH創建事件證書。EA接著從存儲器擦除 ROOT—EC—KEY,並且重啟系統和執行RTE。
系統允許任何密鑰分發和尋址方法使用在EA代理中。事件證書 和加密可以用於保護由EV—AGENT—X使用的任何驗證密鑰。 結論
如上所述,本發明的示例性實施方式提供一種安全啟動機制, 該安全啟動機制是最低限度的、具有魯棒性的、靈活的、可伸縮的 並且簡單的。該框架是最低限度的(並且因此具有成本效益),因為僅需要一個秘密(即,針對KS綁定)。此外,安全啟動狀態的定 義可以保存在不安全的存儲器中(例如,硬驅動器或快閃記憶體),並且
秘密可以是針對對稱密碼的密鑰;因此這造成其比基於公鑰的方案 更快。為了減小成本並且進一步最小化框架,在一個示例性實施方 式中,事件授權和事件管理功能可以被保留不實施。結果僅在於不 可能更新事件證書。
因為事件證書倉庫(EC)位於安全環境外部,EC可以使用常規 的備份機制來進行備份,消除了對任何額外的備份機制的需求。至 少就這個原因而言,本發明的示例性實施方式的安全啟動框架具有 魯棒性。此外,根據上述的示例性實施方式,安全啟動框架的管理 和運行時行為被解耦合。結果是,獨立於安全環境的屬性,可以使 用任何的尋址和密鑰分發框架、以安全的方式來執行管理。這導致 框架比現有的框架更為靈活。有利地,示例性實施方式的安全啟動 框架也是可伸縮的,因為其可以被伸縮至處理任意量的被允許的配 置以啟動。最後,示例性的實施方式的框架是簡單的,因為安全環 境內所需的特徵是低複雜度的。
啟動進程的精細粒度也允許以密鑰K來加密單獨的事件證書。 這將阻止它們的使用直到密鑰K被分發到設備。這也可被實施以限 制能夠啟動進入某些配置的人群數量。另外,因為系統允許事件證 書本身在設備上是具體實現的,這就允許軟體稍後被構建,該軟體 將允許用戶來控制安全啟動配置。用戶例如可以試圖配置系統,使 得其不完全啟動除非反病毒代理存在。最後,所提出的解決方案允 許將單獨的事件證書綁定到單個平臺,而不需系統歷史專用於單個
的平臺。這意味著在不需要損害匿名或隱私的情況下仍可執行遠程 證明(例如由在[TPM3]中定義的TPM_QUOTE操作來執行)。
如上所述並且如本領域技術人員將理解的,本發明的實施方式 可以被配置成系統、方法、行動裝置或其他裝置。因此,本發明的 實施方式可以包括各種裝置,這些裝置包括全部硬體、全部軟體、 或軟體和硬體的任何組合。另外,本發明的實施方式可以採用計算機可讀存儲介質上的電腦程式產品的形式,該計算機可讀存儲介 質具有包括在存儲介質中的計算機可讀程序指令(例如,計算機軟 件)。任何合適的計算機可讀存儲介質可以被使用,包括硬碟、
CD-ROM、光學存儲設備或磁性存儲設備。
已經參考方法、設備(即,系統)和電腦程式產品的框圖和 流程圖來描述了本發明的示例性實施方式。應該理解框圖和流程圖
的每個框以及框圖和流程圖的框的組合可以分別由包括電腦程式 指令的各種裝置來實施。這些電腦程式指令可以被加載到通用計
算機、專用計算機、或其他可編程數據處理設備以製造出一種機器, 使得在計算機或其他可編程數據處理設備上執行的指令創建一種用 於實施流程框或多個框中指定的功能的裝置。
這些電腦程式指令也可以存儲在計算機可讀存儲器中,該計 算機程序指令可引導計算機或其他可編程數據處理設備以特定的方 式來工作,使得存儲在計算機可讀存儲中的指令生產出 一種產品, 其包括用於實施在流程框或多個框中指定的功能的計算機可讀指 令。電腦程式指令也可以被加載到計算機或其他可編程數據處理 設備上以使得一 系列操作性步驟在計算機或其他可編程設備上執 行,從而生產出計算機實施的處理,使得在計算機或其他可編程設 備上執行的指令提供用於實施在流程框或多個框中指定的功能的步 驟。
因此,框圖和流程圖的框支持用於執行指定功能的裝置的組合, 用於執行指定功能的步驟的組合,以及用於執行指定功能的程序指 令裝置。還應該理解框圖和流程圖的每個框,以及框圖和流程圖中 的框的組合可以由基於硬體的專用計算機系統或專用硬體和計算機 指令的組合來實施,該基於硬體的專用計算機系統執行指定的功能 或步驟。
所提供的教導下將構思出這裡所提出的本發明的許多修改和其他實 施方式。因此,應該理解本發明不限於這裡所^^開的特定實施方式,並且修改和其他實施方式旨在被包括在所附權利要求書的範圍內。 儘管在這裡使用了特定的術語,但是它們僅在一般和描述性意義上 使用而不用於限制的目的。
權利要求
1.一種使用安全啟動框架來啟動系統的方法,所述系統包括計算引擎和操作在所述計算引擎內的安全環境,並且所述安全環境與操作在所述安全環境外的一個或多個程序、功能和資源隔離,所述方法包括執行位於所述安全環境外部的安全強制功能,所述安全強制功能被配置成確保僅授權的程序模塊在所述系統上執行;以及如果在執行之前對至少一個程序模塊進行了授權,則使用所述安全強制功能來執行所述程序模塊。
2. 根據權利要求1所述的方法,其中執行所述安全強制功能包括創建與所述安全強制功能的執行關聯的事件,所述事件包括與 所述執行對應的代碼;定位與所述事件關聯的事件證書,所述事件證書包括對所述事 件的指示以及對其中所述事件被授權的系統狀態的指示;確定所述事件證書是否是可信的;至少部分地基於所述事件證書來確定所述事件是否被授權;以及如果所述事件證書被定位並且是可信的,並且所述事件被授權, 則將控制轉交給所述安全強制功能。
3. 根據權利要求2所述的方法,其中定位事件證書包括訪問位 於所述安全環境外部的事件證書倉庫,所述事件證書倉庫包括多個 事件證書。
4. 根據權利要求2所述的方法,其中所述事件證書進一步包括 密鑰庫綁定,其被配置成將所述事件證書綁定到所述安全環境並且 綁定到位於所述安全環境內的密鑰庫。
5. 根據權利要求4所述的方法,其中確定所述事件證書是否是可信的包括訪問所述密鑰庫並且至少部分地基於所述密鑰庫綁定來 確定所述事件證書的完整性和真實性。
6. 根據權利要求2所述的方法,進一步包括確定所述系統的當前狀態,其中確定所述事件是否被授權包括 至少部分地基於所述系統的所述當前狀態來確定所述事件是否被授 權。
7. 根據權利要求1所述的方法,其中執行安全強制功能包括用 於執行所述安全強制功能的強制程序模塊的可信根,所述強制程序 模塊的所述可信根操作在所述安全環境的內部。
8. 根據權利要求1所述的方法,其中使用所述安全強制功能來 執行至少 一個程序模塊包括創建與所述程序模塊的執行關聯的事件,所述事件包括與所述 程序模塊的所述執行對應的代碼;定位與所述事件關聯的事件證書,所述事件證書包括對所述事 件的指示以及對其中所述事件被授權的系統狀態的指示;確定所述事件證書是否是可信的;確定所述事件是否,皮授外又;以及如果所述事件證書被定位並且是可信的,並且所述事件被授權, 則執行所述程序模塊。
9. 根據權利要求8所述的方法,其中定位事件證書包括訪問位 於所述安全環境外部的事件證書倉庫,所述事件證書倉庫包括多個. 事件證書。
10. 根據權利要求8所述的方法,其中所述事件證書進一步包括 密鑰庫綁定,其被配置成將所述事件證書綁定到所述安全環境並且 綁定到位於所述安全環境內的密鑰庫。
11. 根據權利要求IO所述的方法,其中確定所述事件證書是否 是可信的包括訪問所述密鑰庫並且至少部分地基於所述密鑰庫綁定 來確定所述事件證書的完整性和真實性。
12. 根據權利要求8所述的方法,進一步包括確定所述系統的當前狀態,其中確定所述事件是否#皮授權包括 至少部分地基於所述系統的所述當前狀態來確定所述事件是否被授 權。
13. —種配置成使用安全啟動框架來啟動的設備,該設備包括計 算引擎和操作在所述計算引擎內的安全環境,並且所述安全環境與 操作在所述安全環境外的一個或多個程序、功能和資源隔離,所述 設備包括處理器;以及與所述處理器通信的存儲器,所述存儲器存儲可由所述處理器 執行的應用,其中所述應用可以在執行時被配置成執行位於所述安全環境外部的安全強制功能,所述安全強制功 能配置成確保僅授權的程序模塊在所述設備上執行;以及如果在執行之前對至少一個程序模塊進行了授權,則使用所述 安全強制功能來執行所述程序模塊。
14. 根據權利要求13所述的設備,其中為了執行所述安全強制 功能,所述應用被進一步配置成,在執行時創建與所述安全強制功能的執行關聯的事件,所述事件包括與 所述執行對應的代碼;定位與所述事件關聯的事件證書,所述事件證書包括對所述事 件的指示以及對其中所述事件被授權的系統狀態的指示;確定所述事件證書是否是可信的;至少部分地基於所述事件證書來確定所述事件是否被授權;以及如果所述事件證書被定位並且是可信的,並且所述事件被授權, 則將控制轉交給所述安全強制功能。
15. 根據權利要求14所述的設備,其中為了定位事件證書,所 述應用被進一步配置成在執行時訪問位於所述安全環境外部的事件 證書倉庫,所述事件證書倉庫包括多個事件證書。
16. 根據權利要求14所述的設備,其中所述事件證書進一步包括密鑰庫綁定,其被配置成將所述事件證書綁定到所述安全環境並 且綁定到位於所述安全環境內的密鑰庫。
17. 根據權利要求16所述的設備,其中為了確定所述事件證書 是否是可信的,所述應用被進一步配置成在執行時訪問所述密鑰庫 並且至少部分地基於所述密鑰庫綁定來確定所述事件證書的完整性 和真實性。
18. 根據權利要求14所述的設備,其中所述應用進一步配置成, 在^丸行時確定所述設備的當前狀態,其中確定所述事件是否被授權包括 至少部分地基於所述設備的所述當前狀態來確定所述事件是否被授 權。
19. 根據權利要求13所述的設備,其中為了執行所述安全強制 功能,所述應用包括配置成執行所述安全強制功能的強制程序模塊 的可信根,強制程序模塊的所述可信根操作在所述安全環境的內部。
20. 根據權利要求13所述的設備,其中為了使用所述安全強制 功能來執行至少一個程序模塊,所述應用被進一步配置成,在執行 時創建與所述程序模塊的執行關聯的事件,所述事件包括與所述 程序模塊的所述執行對應的代碼;定位與所述事件關聯的事件證書,所述事件證書包括對事件的 指示以及對其中所述事件被授權的系統狀態的指示;確定所述事件證書是否是可信的;至少部分地基於所述事件證書來確定所述事件是否被授權;以及如果所述事件證書被定位並且是可信的,並且所述事件被授權, 則執行所述程序模塊。
21. 根據權利要求20所述的設備,其中為了定位事件證書,所 述應用被進一 步配置成在執行時訪問位於所述安全環境外部的事件 證書倉庫,所述事件證書倉庫包括多個事件證書。
22. 根據權利要求20所述的設備,其中所述事件證書進一步包 括密鑰庫綁定,其被配置成將所述事件證書綁定到所述安全環境並 且綁定到位於所述安全環境內的密鑰庫。
23. 根據權利要求22所述的設備,其中為了確定所述事件證書 是否是可信的,所述應用被進一步配置成在執行時訪問所述密鑰庫 並且至少部分地基於所述密鑰庫綁定來確定所述事件證書的完整性 和真實性。
24. 根據權利要求20所述的設備,其中所述應用被進一步配置 成在執行時確定所述設備的當前狀態,其中為了確定所述事件是否 被授權,所述應用被進一 步配置成在執行時至少部分地基於所述設 備的所述當前狀態來確定所述事件是否被授權。
25. —種配置成使用安全啟動框架來啟動的系統,所述系統包括安全強制功能,其被配置成確定程序模塊是否被授權在所述系 統上執行並且如果所述程序模塊被授權,則執行所述程序模塊,所 述安全強制功能操作在所述系統的安全環境的外部。
26. 才艮據權利要求26所述的系統,進一步包^": 事件證書倉庫,其操作在所述安全環境外部並且包括多個事件證書,其中為了確定程序模塊是否被授權,所述安全強制功能被進 一步配置成創建與所述程序模塊的執行關聯的事件,所述事件包 括與所述執行對應的代碼,以及在所述事件證書倉庫的所述多個事 件證書中定位與所述事件關聯的事件證書。
27. 根據權利要求26所述的系統,其中為了確定程序模塊是否 被授權,所述安全強制功能被進一步配置成確定所述事件證書是否 是可信的,所述系統進一步包括密鑰庫,其位於所述安全環境內部並且可由所述安全強制功能 所訪問,其中所述事件證書倉庫的相應事件證書包括對所述相應事 件的指示,對其中所述事件被授權的系統狀態的指示,以及密鑰庫 綁定,其被配置成將所述事件證書綁定到所述安全環境,並且特別綁定到所述密鑰庫,使得確定所述事件證書是否是可信的包括訪問 所述密鑰庫並且至少部分地基於所述密鑰庫綁定來確定所述事件證 書的完整性和真實性。
28. 根據權利要求27所述的系統,進一步包括狀態歷史資料庫,其操作在所述安全環境的內部並且可由所述 安全強制功能來訪問,所述狀態歷史資料庫包括對當前系統狀態的 以及一個或多個先前系統狀態的指示,其中所述安全強制功能被進 一步配置成訪問所述狀態歷史資料庫以便確定所述當前系統狀態。
29. 根據權利要求28所述的系統,進一步包括 事件驗證器,其操作在所述安全環境的內部並且可由所述安全強制功能訪問,所述事件驗證器被配置成至少部分地基於所述相應 的事件證書和所述當前系統狀態來確定所述事件是否被授權。
30. 根據權利要求29所述的系統,進一步包括 事件記錄器,其操作在所述安全環境的內部並且可由所述安全強制功能訪問,所述事件記錄器配置成將所述程序模塊的所述執行 記錄在所述狀態歷史資料庫中。
31. 根據權利要求25所述的系統,進一步包括 可信根強制程序模塊,其操作在所述安全環境內部,所述可信根強制程序模塊被配置成執行所述安全強制功能。
32. —種用於使用安全啟動框架來啟動系統的電腦程式產品, 所述系統包括計算引擎和操作在所述計算引擎內的安全環境,並且 所述安全環境與操作在所述安全環境外的一個或多個程序、功能和 資源隔離,其中所述電腦程式產品包括至少一個計算機可讀存儲 介質,該計算機可讀存儲介質具有存儲在其中的計算機可讀程序代 碼部分,所述計算機可讀程序代碼部分包括第 一可執行部分,用於執行位於所述安全環境外部的安全強制 功能,所述安全強制功能被配置成確保僅授權的程序模塊在所述系 統上執4亍;以及第二可執行部分,用於如果在執行之前對至少一個程序模塊進行了授權,則使用所述安全強制功能來執行所述程序模塊。
33. 根據權利要求32所述的電腦程式產品,其中所述第一可 執行部分進一步包括第三可執行部分,用於創建與所述安全強制功能的執行關聯的 事件,所述事件包括與所述執行對應的代碼;第四可執行部分,用於定位與所述事件關聯的事件證書,所述 事件證書包括對所述事件的指示以及對其中所述事件被授權的系統 狀態的指示;第五可執行部分,用於確定所述事件證書是否是可信的;第六可執行部分,用於至少部分地基於所述事件證書來確定所述事件是否被授權;以及第七可執行部分,用於如果所述事件證書被定位並且是可信的,並且所述事件被授權,則將控制轉交給所述安全強制功能。
34. 根據權利要求33所述的電腦程式產品,其中所述第四可 執行部分被配置成訪問位於所述安全環境外部的事件證書倉庫以便 定位所述事件證書,所述事件證書倉庫包括多個事件證書。
35. 根據權利要求33所述的電腦程式產品,其中所述事件證 書包括密鑰庫綁定,其被配置成將所述事件證書綁定到所述安全環 境並且綁定到位於所述安全環境內的密鑰庫。
36. 根據權利要求35所述的電腦程式產品,其中所述第五可 執行部分被進一 步配置成訪問所述密鑰庫並且至少部分地基於所述 密鑰庫綁定來確定所述事件證書的完整性和真實性。
37. 根據權利要求33所述的電腦程式產品,其中所述計算機 可讀程序代碼部分進一步包括第八可執行部分,用於確定所述系統的當前狀態,並且其中所 述第六可執行部分被進一步配置成至少部分地基於所述系統的所述 當前狀態來確定所述事件是否被授權。
38. 根據權利要求32所述的電腦程式產品,其中所述第一可 執行部分包括配置成執行所述安全強制功能的強制程序模塊的可信根,所述強制程序模塊的可信根操作在所述安全環境的內部。
39. 根據權利要求32所述的電腦程式產品,其中所述第二可 執行部分進一步包括第三可執行部分,用於創建與所述程序模塊的執行關聯的事件, 所述事件包括與所述程序模塊的所述執行對應的代碼;第四可執行部分,用於定位與所述事件關聯的事件證書,所述 事件證書包括對所述事件的指示以及對其中所述事件被授權的系統 狀態的指示;第五可執行部分,用於確定所述事件證書是否是可信的; 第六可執行部分,用於確定所述事件是否被授權;以及 第七可執行部分,用於如果所述事件證書被定位並且是可信的, 並且所述事件被授權,則執行所述程序模塊。
40. 根據權利要求39所述的電腦程式產品,其中所述第四可 執行部分被配置成訪問位於所述安全環境外部的事件證書倉庫以便 定位所述事件證書,所述事件證書倉庫包括多個事件證書。
41. 根據權利要求39所述的電腦程式產品,其中所述事件證 書進一步包括密鑰庫綁定,其被配置成將所述事件證書綁定到所述 安全環境並且綁定到位於所述安全環境內的密鑰庫。
42. 根據權利要求41所述的電腦程式產品,其中所述第五可 執行部分進一步配置成訪問所述密鑰庫並且至少部分地基於所述密 鑰庫綁定來確定所述事件證書的完整性和真實性。
43. 根據權利要求39所述的電腦程式產品,其中所述計算機 可讀程序代碼部分進一步包括第八可執行部分,用於確定所述系統的當前狀態,並且其中所 述第六可執行部分進一步配置成至少部分地基於所述系統的所述當 前狀態來確定所述事件是否被授權。
44. 一種配置成使用安全啟動框架來啟動的設備,所述設備包括 計算引擎和操作在所述計算引擎內的安全環境,並且所述安全環境 與操作在所述安全環境外的一個或多個程序、功能和資源隔離,所述設備包括用於執行位於所述安全環境外部的安全強制功能的裝置,所述 安全強制功能配置成確保僅授權的程序模塊在所述系統上執行;以 及用於如果在執行之前對至少一個程序模塊進行了授權,則使用 所述安全強制功能來執行所述程序模塊的裝置。
全文摘要
提供用於使用安全啟動框架來啟動系統的方法、設備、系統和電腦程式產品。具體地,提供具有不限數量的授權啟動配置的安全啟動機制(即,強制僅授權的程序和/或事件在特定的平臺上執行的機制),同時僅需要最少量的安全的/機密的存儲器。安全啟動機制進一步提供運行時間和管理功能性的分隔,這允許其他的授權機制被稍後插入。此外,授權的安全啟動配置(即,安全啟動狀態的定義)可以保持在不安全的存儲器中,例如系統盤(例如,快閃記憶體)。最後,公開的安全啟動機制具有其他益處,因為其建立在現有的TCG技術上,這使得其需要最小限度的實現,在該實現中TCG技術被實施。
文檔編號G06F21/06GK101300583SQ200680040523
公開日2008年11月5日 申請日期2006年9月7日 優先權日2005年9月16日
發明者L·塔爾卡拉 申請人:諾基亞公司