亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

提供安全執(zhí)行環(huán)境的微處理器及其執(zhí)行安全編碼的方法

文檔序號:6578060閱讀:78來源:國知局
專利名稱:提供安全執(zhí)行環(huán)境的微處理器及其執(zhí)行安全編碼的方法
技術(shù)領(lǐng)域
本發(fā)明涉及微電子領(lǐng)域,特別是涉及一種微處理器,其提供一安全執(zhí)行 模式的操作,其允許在微處理器內(nèi)的安全環(huán)境中執(zhí)行運算碼。
背景技術(shù)
桌上型計算機、筆記型計算機、以及手持式計算機與通信裝置可作為機 密或?qū)S脭?shù)據(jù)與數(shù)字權(quán)利控制內(nèi)容的數(shù)字通信平臺,計算機產(chǎn)業(yè)對于這些裝 置的使用持續(xù)地發(fā)展新的安全制度。舉例來說,有許多已建立的應(yīng)用,用以 在因特網(wǎng)上免費下載與管理數(shù)字聲音與影音檔案。通過這些應(yīng)用,使用者被 提供在歌曲、電視節(jié)目以及電影上的有限的權(quán)利。特別注意的是,以上通過 使用建立在這些應(yīng)用中的安全特性來保護這些權(quán)利,而這些安全特性通常依 據(jù)其主機平臺所提供的安全機制。
除了數(shù)字內(nèi)容權(quán)利的保護,持續(xù)驅(qū)動計算機系統(tǒng)安全性的另 一 因素是實 施在主機平臺本身的使用限制。目前已知,手機產(chǎn)業(yè)已提供特定通信裝置中
所謂的"隨用隨付(Pay-as-you-go)"使用。藉由使用此方案,使用者不需 給付月費,但是需預(yù)先給付某通話分鐘數(shù)的金額。當(dāng)用盡通話分鐘數(shù)時,除 了緊急通話以外,使用者被拒絕存取任何關(guān)于通話的手機網(wǎng)絡(luò)存取。
早在2006年,MICROSOFT公司與其合作公司已提供主要指向新興計 算機市場的"隨用隨付"個人計算機。在此體制下,通過預(yù)付卡的購得,當(dāng) 使用這些公司的計算機時使用者則給付費用。此外,歸屬于MICROSOFT公 司的美國專利申請案^^開編號20060282899, ^^開一種用于才莫塊化#:作系統(tǒng) 的傳遞的系統(tǒng)與方法,其包括提供主要操作系統(tǒng)支持的核心功能模塊或基礎(chǔ) 核心,且包括一或多個允許客制化的操作系統(tǒng)定做的附屬模塊。在此應(yīng)用中, 附屬模塊可提供對于計算機(其包括硬件、應(yīng)用軟件、接口設(shè)備、以及支持 設(shè)備)的支持或延伸能力。在設(shè)置之前,數(shù)字簽章可使用來確定附屬模塊的 完整性,且核對證明(certification)以判斷附加模塊的設(shè)置是否經(jīng)過授權(quán)。藉 由此證明,服務(wù)提供者可管理對提供的計算機上的非法或非期望修改。此外,數(shù)字權(quán)利管理可用來執(zhí)行與許可配置相配的附屬模塊的使用項目。
并不意外地,目前已發(fā)展出技術(shù)方法的真正主機,其提供規(guī)避安全措施, 而這些安全措施是適當(dāng)?shù)乇Wo且控制對權(quán)利控制數(shù)字媒體、通信裝置、以及
計算機平臺的存取。最近,"hacking (進行非法入侵,即黑客)"變成研究上 的課題。事實上,本案發(fā)明人已注意到許多用來篡改或完全地使安全管理無 效的作品公開,而這些安全管理用來防護受保護資產(chǎn)的存取及/或使用。由 Andrew Huang, San Francisco: No Starch Press, 2003所4是出的著作Hacking the Xbox: An Introduction to Reverse Engineering則是上述4卡品的 一種。Jt著4乍凈爭 別著重于教導(dǎo)非法入侵技術(shù)以克服MICROSOFT所出產(chǎn)的XBOX游戲平臺 的安全機制,且更提供計算機安全與反向工程的教導(dǎo)主題,并討論所謂"安 全的"計算機平臺的弱點。
因此,平臺建置者與設(shè)計者持續(xù)從事在避免未被授權(quán)的平臺處理上更有 效的技術(shù)與機制,不論此存取是良性的(例如探測或窺察)、惡意的(例如 破壞性的或違背權(quán)利的入侵)、或是介于兩者之間(例如篡改)。這些機制中 許多者用來防止入侵者實際上存取平臺,例如將平臺放置在安全底座上(例 如一上鎖的金屬圍場)或者將有弱點的電路封裝入環(huán)氧化物內(nèi)。但是已知這 些類型的技術(shù)增加了系統(tǒng)成本與復(fù)雜性。其它機制則利用特定計算機架構(gòu)本 身提供的安全特性。
考慮已知x86架構(gòu)所提供的兩個主要安全特性分頁虛擬存儲器(paged virtual memory)以及特許執(zhí)行(privileged execution)。在分頁虛擬存儲器的情 況下,基本的操作系統(tǒng)定義一個分別的虛擬位置空間以及存取權(quán)利(例如只 執(zhí)行、只讀取)給每一正被執(zhí)行的應(yīng)用程序,因此阻止另一秘密鬼祟的應(yīng)用 程序在所定義的區(qū)域內(nèi)執(zhí)行,且阻止其修改數(shù)據(jù)。但是,由于與虛擬地址譯 文相關(guān)(即分頁窗體)的數(shù)據(jù)存在于系統(tǒng)存儲器,且其出現(xiàn)于主機微處理器 外的系統(tǒng)總線上,因此此數(shù)據(jù)可輕易地被窺察且被改變。
在特許執(zhí)行的情況下,x86結(jié)構(gòu)提供數(shù)種階級的執(zhí)行特權(quán)CPL0至CPL3 。 因此,某些系統(tǒng)資源與指令只可由正在較高特權(quán)階級上執(zhí)行的應(yīng)用程序來存 取。 一般得知操作系統(tǒng)組件操作在最高特權(quán)階級CPLO,以及使用者應(yīng)用歸 類于最低特權(quán)階級CPL3。但是,熟知此技術(shù)領(lǐng)域的人士將查知,這些架構(gòu) 特征主要是發(fā)展來阻止軟件錯誤所導(dǎo)致的系統(tǒng)當(dāng)機,且在防止有意或經(jīng)指導(dǎo) 的侵入(directed hacks)而言不是非常有效。因此已發(fā)展多種方法與裝置,其更仔細地集中防止對平臺的有意侵入與
接管。在美國專利編號5615263中,Takahashi教導(dǎo)一種在雙模(dual mode) 處理器中的安全模式。在一般/外部模式中,此雙模處理器執(zhí)行由外部來源所 提供的指令。這些指令通過雙模處理器的輸入/輸出來提供給雙模處理器。當(dāng) 接收到專用軟件或硬件發(fā)出的中斷時,此雙模處理器進入安全/內(nèi)部模式。此 中斷是指儲存在雙模處理器中只讀存儲器內(nèi)的安全功能。根據(jù)此接收的中 斷,雙模處理器的輸入/輸出被禁能。此已確認的安全功能由雙模處理器來執(zhí) 行。在此安全功能的執(zhí)行期間,欲插置非來自只讀存儲器的指令的任何企圖 皆被忽略。然而,雙模處理器可存取由正在執(zhí)行的安全功能所特別確認的數(shù) 據(jù)。當(dāng)安全功能執(zhí)行完成,則執(zhí)行一退出程序,以使能雙模處理器的輸入/ 輸出,并通過輸入/輸出重新開始執(zhí)行由雙模處理器的外部來源所提供的指 令。
Takahashi教導(dǎo)此安全模式是用作加密與解密,且其中雙模處理器處理通 過總線且由外部控制信道(extemal control channel)處理器所提供的正常指令 與數(shù)據(jù),其中,此總線符合一標(biāo)準(zhǔn)總線架構(gòu),例如工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(Industry Standard Architecture, ISA )。此雙模處理器在非安全模式下開啟,且安全模 式通過軟件或硬件發(fā)出的中斷來初始化。在安全模式下,可執(zhí)行關(guān)于加密與 解密的有限數(shù)量的功能(即指令)。這些功能儲存在一個只讀存儲器中 (ROM),其位于雙模處理器的內(nèi)部。本案的發(fā)明人注意到,Takahashi的雙 模處理器并不適當(dāng),因為Takahashi的雙模處理器只能執(zhí)行內(nèi)部ROM所提 供的有限數(shù)量的功能。因此,包括一般目的指令的應(yīng)用程序(即在微處理器 的指令集中任何的指令)則無法在安全模式下執(zhí)行。
在美國專利編號7013484中,Ellison揭露一種建立安全環(huán)境的芯片組, 用于一隔離的儲存器所執(zhí)行的隔離執(zhí)行模式,此儲存器被至少一處理器來存 取。在正常執(zhí)行模式或此隔離執(zhí)行^t式下,此至少一處理器具有多線程與操 作。Ellison的安全環(huán)境依據(jù)一外部芯片組(被隔離的執(zhí)行電路),其提供機 制給一處理器以在隔離執(zhí)行模式下操作。此外部芯片組因此配置一個安全存 儲器區(qū)域,其管理隔離指令的譯碼與轉(zhuǎn)譯、隔離總線周期的產(chǎn)生、以及中斷 的產(chǎn)生。當(dāng)此外部芯片組主動地隔離存儲器區(qū)域、指令執(zhí)行等時,注意到此 外部芯片組通過一般系統(tǒng)總線而耦接此至少 一處理器,因此在任何安全線程 的執(zhí)行期間內(nèi)容許在總線上的窺察與流量篡改。在美國專利編號7130951中,Christie揭露一種方法,用以控制有安全 執(zhí)行模式能力之處理器,此處理器包括多中斷,以使得當(dāng)其正操作在非安全 執(zhí)行模式時,中斷此有安全執(zhí)行模式能力的處理器。此方法包括當(dāng)此有安全 執(zhí)行模式能力的處理器正操作在一安全執(zhí)行模式時,禁能多中斷以避免此處 理器中斷。盡管禁能中斷是在安全執(zhí)行環(huán)境中所期望的安全特性,根據(jù) Christie的處理器處理通過系統(tǒng)總線且由一操作系統(tǒng)所提供的指令與數(shù)據(jù)。 一旦這些指令被提供時,中斷即被禁能。如同Ellison的機制,此一裝置明 確地可被通過總線而提供至處理器的指令來做總線窺察與篡改。
在美國專利編號6983374中,Hashimoto揭露一種抗篡改微處理器,其 保存關(guān)于其執(zhí)行將被中斷的一個程序的內(nèi)容信息,其中,此處理器狀態(tài)被加 密且儲存在系統(tǒng)存儲器。Hashimoto也教導(dǎo)了自系統(tǒng)存儲器擷取加密指令的 技術(shù),以及對加密指令進行解密且執(zhí)行此加密指令的裝置。此外,Hashimoto 教導(dǎo)了使用 一對應(yīng)密鑰來提供在存儲器內(nèi)的加密指令,且接著使用非對稱密 鑰算法來對儲存在存儲器內(nèi)的對稱密鑰加進行加密。對于程序創(chuàng)造者來說, 對稱密鑰是已知的,且使用讀取自處理器的公開密鑰來對此對稱密鑰進行加 密。此處理器包括一獨特私密密鑰,其對應(yīng)此公開密鑰,且使用者無法存取。 因此,根據(jù)分支指令的執(zhí)行,程控被轉(zhuǎn)移成"起始加密執(zhí)行"指令,其傳送 一指標(biāo)至加密對稱密鑰。此處理器擷取加密對稱密鑰,且使用其內(nèi)部私密密 鑰來對其解密。接著,加密程序指令自系統(tǒng)存儲器被擷取,且藉由使用解密 對稱密鑰來被解密,并由處理器來執(zhí)行。假使發(fā)生中斷或異常,處理器的狀 態(tài)則對稱地被加密且儲存至存儲器。Hashimoto揭露了對于非加密與加密編 碼的共通快取機制、中斷邏輯、異常處理邏輯的使用。
本案的發(fā)明人已注意到,Hashimoto的微處理器限定編碼者已知對應(yīng)安 全編碼的對稱密鑰,且對稱密鑰可能被泄漏,因此,將具有此編碼的所有系 統(tǒng)將有被攻擊的風(fēng)險。此外,本案的發(fā)明人已注意到,Hashimoto的微處理 器缺點在于,必須在擷取指令運作中執(zhí)行安全編碼的解密,其花費非常多的 時間,因此導(dǎo)致微處理器的處理能力變?yōu)榫徛?。此外,注意到,Hashimoto 的安全編碼利用現(xiàn)存的非安全資源,例如系統(tǒng)存儲器、分頁窗體、中斷、與 異常機制,這些全部都會遭受到窺察。
因此,本案的發(fā)明人了解,顯然期望提供一種微處理器,其能在安全執(zhí) 行環(huán)境中執(zhí)行包括一般目的指令(即在微處理器的指令集中任何的指令)的應(yīng)用程序或應(yīng)用線程。
此外,同時也期望此安全執(zhí)行環(huán)境隔離于任何已知的窺察與篡改方法。 因此,需要由一安全執(zhí)行模式微處理器來執(zhí)行指令,且此安全執(zhí)行模式微處 理器隔離于處理器中提供存取(例如快取窺察、系統(tǒng)總線流量、中斷、以及 錯誤與追蹤特征)的硬件。
此外,更期望當(dāng)此微處理器加載應(yīng)用程序并安全執(zhí)行時,提供一機制來 混淆來自任何現(xiàn)存監(jiān)控裝置的應(yīng)用的結(jié)構(gòu)與內(nèi)容,且提供一機制來證明此應(yīng) 用的來源且確認其誠實性。

發(fā)明內(nèi)容
本發(fā)明適用于解決前述問題與對付習(xí)知技術(shù)的其它問題、缺點與限制。 本發(fā)明提供較佳的技術(shù),以在一般目的微處理器平臺上使能安全應(yīng)用程序的 執(zhí)行。在一實施例中,提供一種微處理器裝置,用以在安全執(zhí)行環(huán)境中執(zhí)行 安全編碼。此微處理器裝置包括安全非易失性存儲器與微處理器。安全非易 失性存儲器耦接私密總線,用以儲存一安全應(yīng)用程序。微處理器耦接私密總
系統(tǒng)總線而存取自系統(tǒng)存儲器。安全應(yīng)用程序存取自安全非易失性存儲器。 在私密總線上的多個數(shù)據(jù)傳輸隔離于系統(tǒng)總線與微處理器內(nèi)對應(yīng)的多個系 統(tǒng)總線資源。微處理器包括非安全存儲器以及安全易失性存儲器。非安全存 儲器用以儲存多個非安全應(yīng)用程序以由微處理器來執(zhí)行,其中,非安全存儲 器可由非安全應(yīng)用程序以及微處理器內(nèi)的系統(tǒng)總線資源所得知且存取。安全
性存儲器隔離于非安全應(yīng)用程序與微處理器內(nèi)的系統(tǒng)總線資源。
本發(fā)明的又一 實施例提供一種在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法。 此方法包括提供安全非易失性存儲器用以儲存安全編碼;通過多個私密數(shù)據(jù) 傳輸來將安全編碼儲存在安全非易失性存儲器中,其中,私密數(shù)據(jù)傳輸是在
耦接于安全非易失性存儲器的私密總線上執(zhí)行;以及通過私密總線自安全非 易失性存儲器擷取安全編碼,以由微處理器來執(zhí)行,且將安全編碼儲存于安 全易失性存儲器。安全易失性存儲器隔離于非安全編碼與微處理器內(nèi)多個系 統(tǒng)總線資源。私密總線隔離于微處理器中所有的系統(tǒng)總線資源且位于微處理 器的外部。私密總線只可由微處理器內(nèi) 一安全執(zhí)行邏輯電路來得知且存取。關(guān)于產(chǎn)業(yè)應(yīng)用性,本發(fā)明可實現(xiàn)于一微處理器內(nèi),且此微處理器使用于一般 目的或特殊目的的計算機裝置。


圖1表示根據(jù)本發(fā)明的安全執(zhí)行模式(SEM)微處理器的方塊示意圖; 圖2表示說明圖1的微處理器中最高階級操作模式的狀態(tài)圖; 圖3表示根據(jù)本發(fā)明的微處理器中SEM邏輯電路的方塊示意圖; 圖4表示在根據(jù)本發(fā)明的微處理器內(nèi),安全編碼如何被儲存、存取、初 始化以及執(zhí)行的方塊示意圖5表示在圖1的微處理器中,SEM監(jiān)控邏輯電路的詳細方塊示意圖6表示在根據(jù)本發(fā)明的微處理器內(nèi)操作模式轉(zhuǎn)換的狀態(tài)圖7表示在本發(fā)明的微處理器中使能安全執(zhí)行模式操作的高階方法流程
圖8表示在本發(fā)明的微處理器中禁能安全執(zhí)行模式操作的高階方法流程
圖9表示在本發(fā)明的微處理器內(nèi)初始化安全編碼執(zhí)行的方法流程圖; 圖10表示本發(fā)明微處理器中執(zhí)行安全執(zhí)行模式使能重置操作的方法流 程圖11表示在本發(fā)明微處理器中終止安全執(zhí)行模式操作的方法流程以及
圖12表示在本發(fā)明的微處理器內(nèi)安全實時時鐘的詳細方塊示意圖。 主要組件符號說明
100 ~系統(tǒng)板; 101 ~安全執(zhí)行模式微處理器;
102 ~系統(tǒng)總線; 103 ~總線主控裝置; 104 總線管理裝置;
105 ~安全執(zhí)行模式邏輯電路;
106 ~私密總線; 107 ~安全非易失性存儲器; Cl、 C2 連接路徑/信號;
PSNT ~存儲器檢測總線/信號;
VP ~電池; VP 1 、 VP2 ~連接^各徑/信號;Xl 石英器; 200~狀態(tài)圖;
201-非安全執(zhí)行模式(原生未受控模式);
202 ~安全執(zhí)行模式(SEM-使能模式);
203 ~降級模式; 204 ~硬件關(guān)機模式;
300 ~安全執(zhí)行模式微處理器;
301 ~ SEM邏輯電路; 302 ~安全易失性存儲器; 303 ~處理器狀態(tài); 304~安全編碼;
305 ~ SEM初始化邏輯電路;
306 ~ SEM監(jiān)控邏輯電路;
307 ~ SEM中斷邏輯電路;
308 ~ SEM例外邏輯電路;
309 SEM定時器; 310 SEM實時時鐘; 311 ~ AES/HASH/RSA單元; 312 處理器密鑰寄存器;
313 ~處理器執(zhí)行單元; 314 ~正常例外邏輯電路; 315 ~正常追蹤/除錯邏輯電路; 316 正常中斷邏輯電路;
317 ~對應(yīng)安全編碼的安全^:據(jù);
318 ~授權(quán)的公開密鑰寄存器; 319~隨機數(shù)產(chǎn)生器;
320、 321、 324、 326、 327~總線;
322 ~電源管理邏輯電路;
323 ~地址邏輯電路; 325 ~非安全存儲器;
328 ~非易失性使能指示寄存器;
329 ~ SEM機械專用寄存器存儲體;
400 ~圖示; 401 ~樣i處理器;
402 ~安全編碼接口邏輯電^各; 403 總線接口單元;
404 ~授權(quán)的公開密鑰寄存器;
405 ~ AES/HASH/RSA單元;406 安全易失性存儲器;
407 ~安全非易失性存儲器接口單元;
408 ~ SEM監(jiān)控邏輯電路;409 - SEM初始化邏輯電3各;
411、 421 安全編碼; 413~處理器密鑰寄存器; 425 ~系統(tǒng)總線;
授權(quán)的公開密鑰區(qū)域;
物理環(huán)境監(jiān)控器;
處理器電壓監(jiān)控器; 數(shù)據(jù)監(jiān)控器;
410-BIOS存儲器; 412 隨機數(shù)產(chǎn)生器; 420 ~系統(tǒng)存儲器; 430 安全非易失性存儲器; 431~私密總線; 432 CHK、 INS 總線; 500 ~ SEM監(jiān)控邏輯電^各;501 502 總線時鐘監(jiān)控器; 503 ~頻率參考單元; 504 505 溫度監(jiān)控器; 506 507 安全時戳計數(shù)器; 508 正常時戳計數(shù)器; 509~比率機械專用寄存器; 510 ~樣式監(jiān)控器; 511 ~指令監(jiān)控器;
512 ~指令數(shù)組; 513 ~監(jiān)控管理器;
BUSTE腹、BUSCLK、 CORE CLK、 TEMP、 VDD、 CLASS 1、 CLASS2、 CLASS3、 DISABLE ~信號;
DESTRUCT、 INS、 NOBOOT、 PINCHK、 TAMPER、 CHK 總線; 600 詳細操作模式圖標(biāo);
原生未受控模式(非安全執(zhí)行模式); SEM使能重置模式[1:N]; SEM使能正常執(zhí)行模式; SEM使能安全執(zhí)行模式;
606 硬件關(guān)機模式; 701…705 流程步驟; 801...806~流程步驟; 卯1...912~流程步驟; 1001... 1009 流程步驟;
601 ~
602 ~
603 ~
604 ~
605 ~降級模式; 700~流程圖 800~流程圖 900~流程圖 1000 ~流程圖1100~流程圖; 1200 安全實時時鐘; 1202~計數(shù)器; VP、 ENV 信號;
1101…1112 流程步驟; 1201~振蕩器; 1203 轉(zhuǎn)換邏輯電路; VO、 CNTO 輸出信號;
CNTO 輸出信號;
TEMP、 BATT、 COMP、 XTAL 信號; TIME -雙向總線。
具體實施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉一較佳實 施例,并配合所附圖式,作詳細說明如下。
本發(fā)明雖以較佳實施例揭露如上,然其并非用以限定本發(fā)明的范圍,任 何所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可 做些許的更動與潤飾,因此本發(fā)明的保護范圍當(dāng)視后附的權(quán)利要求書所界定 者為準(zhǔn)。
鑒于上述關(guān)于在一微處理器中應(yīng)用程序的安全并隔離地執(zhí)行且關(guān)于用 來防止窺察、侵入、篡改、或黑客的現(xiàn)今技術(shù)的背景討論,本發(fā)明的討論將 通過圖1至12來呈現(xiàn)。
參閱圖1,其表示根據(jù)本發(fā)明實施例的安全執(zhí)行模式(secure execution mode, SEM)微處理器101的示意圖。此示意圖描述SEM微處理器101配 置所在的系統(tǒng)板100(或主機板)。此微處理器101通過系統(tǒng)總線102耦接一 個或多個總線主控裝置(bus master)103以及/或者一個或多個總線管理裝置 (bus agent) 104。在一實施例中,SEMj敖處理器101為x86兼容微處理器101, 其通過x86兼容系統(tǒng)總線102耦接一個或多個x86兼容總線主控裝置103以 及/或者一個或多個x86兼容總線管理裝置104。
此外,SEM微處理器101耦接一電池VP,其配置在系統(tǒng)板(主機板)100 上,且通過連接路徑VP1與VP2來耦接至微處理器101。在一實施例中, 電池VP的電壓為1.8V直流電壓(DC)。
石英器XI也配置在系統(tǒng)板100上,且通過連接路徑Cl與Cl來耦接至 微處理器101。微處理器101包括SEM邏輯電路105。根據(jù)本發(fā)明的SEM 邏輯電路105系配置來提供在微處理器內(nèi)一安全執(zhí)行模式的初始化、操作、以及終止,將于下文詳細說明。此SEM邏輯電路105包括邏輯、電路、裝 置、或微碼(即微指令或原生指令)、或者是邏輯、電路、裝置、或微碼的
結(jié)合、又或者是用來初始化安全執(zhí)行模式的等效組件,使得SEM邏輯電路 105可加載安全應(yīng)用程序來執(zhí)行、在一安全環(huán)境中執(zhí)行這些應(yīng)用程序、為了 偵測且阻止篡改而監(jiān)控一些微處理器與系統(tǒng)特性、在適當(dāng)情況下終止安全執(zhí) 行模式、且假使偵測到篡改則暫停處理。用來執(zhí)行這些功能與SEM邏輯電 路105內(nèi)其它功能的組件,可共享用來執(zhí)行微處理器101內(nèi)其它功能的其它 電路、微碼等等。根據(jù)本申請案的范圍,微碼是涉及多個微指令的名詞。一 微指令(也稱為原生指令)是在一單元執(zhí)行所處的層級上的指令。例如,微 指令直接由精簡指令集運算(Reduced Instruction Set Computing, RISC)微 處理器來執(zhí)行。對于復(fù)雜指令集運算(Complex Instruction Set Computing, CISC)微處理器(例如x86兼容微處理器)而言,x86指令首先轉(zhuǎn)譯為相關(guān) 的微指令,且此相關(guān)的微指令接著直接由CISC微處理器中一單元或多單元 來執(zhí)行。
安全非易失性存儲器107也配置在系統(tǒng)板100上,其通過私密總線(PVT BUS ) 106與存儲器檢測總線(presence detection bus)PSNT來耦接至微處理器 101。根據(jù)本發(fā)明,安全非易失性存儲器107為一種經(jīng)過電源的除去與重新 施加后其內(nèi)容仍存留的存儲器。即是,當(dāng)提供至系統(tǒng)板的電源關(guān)閉或開啟時, 安全非易失性存儲器107的內(nèi)容不會改變。在一實施例中,安全非易失性存 儲器107包括快閃只讀存儲器(ROM),其大小相當(dāng)于將在安全執(zhí)行模式中 執(zhí)行的安全應(yīng)用程序的大小。在一實施例中,考慮以4MB快閃只讀存儲器 來作為安全非易失性存儲器107。在私密總線106上的數(shù)據(jù)傳輸(transactions) 完全地隔離于系統(tǒng)總線102、總線主控裝置103以及總線管理裝置104,且 私密總線106位于微處理器101的外部。在一實施例中,快閃只讀存儲器107 可程序化高達100000次。在一實施例中,私密總線106考慮以一串行總線 來實現(xiàn),其提供介于安全非易失性存儲器107與微處理器101之間的數(shù)據(jù)傳 輸。此私密總線106可符合標(biāo)準(zhǔn)界面協(xié)議,例如串行外圍接口 (Serial Peripheral Interface, SPI)協(xié)議。
在操作上,電池VP與石英器X1提供在SEM邏輯電路105內(nèi)實時時鐘 (Real Time Clock, RTC)(未顯示)的持續(xù)操作,其將于下文詳細說明。包 括來自主機結(jié)構(gòu)指令集的一或多個安全應(yīng)用程序,通過系統(tǒng)總線102而擷取自系統(tǒng)存儲器(未顯示),且儲存在安全非易失性存儲器107。在一實施例中,
使用屬于授權(quán)者(authorizing party)的一私密非對稱密鑰并通過非對稱加密演 算規(guī)則來加密一個或多個安全應(yīng)用程序,且安全應(yīng)用程序以其非對稱加密格 式而被存取自系統(tǒng)存儲器。在一實施例中,考慮通過RSA演算規(guī)則來加密 一個或多個安全應(yīng)用程序。在此一個或多個安全應(yīng)用程序擷取自系統(tǒng)存儲器 后,微處理器101利用一對應(yīng)的公開密鑰來解碼此一個或多個安全應(yīng)用程序 并確認此一個或多個安全應(yīng)用程序。根據(jù)安全執(zhí)行模式的使能以及依據(jù)一 "起始安全執(zhí)行,,指令的執(zhí)行,SEM邏輯電路105利用微處理器內(nèi)的多加 密資源,以根據(jù)一對稱密鑰算法并使用處理器獨特加密密鑰來對此一個或多 個安全應(yīng)用程序進行加密,此外,SEM邏輯電^各105通過私密總線106來 將已加密的 一個或多個安全應(yīng)用程序傳送至安全非易失性存儲器107。之后, SEM邏輯電路105利用孩史處理器101內(nèi)的多加密或其它資源,來對此一個 或多個安全應(yīng)用程序進行存取、確認以及解密,此一個或多個安全應(yīng)用程序 接著加載至微處理器101內(nèi)的一安全且隔離的隨機存取存儲器(RAM)或一 高速緩存(未顯示)。
當(dāng)執(zhí)行起始安全執(zhí)行指令時(當(dāng)進入至該安全執(zhí)行模式),SEM邏輯電路 105禁能安全應(yīng)用程序得知察覺所有的系統(tǒng)資源,而這些系統(tǒng)資源提供了包 括非安全中斷、非安全例外邏輯以及追蹤/除錯邏輯電路等等的監(jiān)視以及或篡 改。儲存在隔離的內(nèi)部RAM的一個或多個安全應(yīng)用程序藉由使用SEM邏 輯電路105內(nèi)的專用安全執(zhí)行資源來被執(zhí)行。此一個或多個安全應(yīng)用程序接 著可將處理器狀態(tài)由安全操作模式恢復(fù)至正常執(zhí)行;模式,或者假使偵測到潛 在的篡改,他們可將微處理器轉(zhuǎn)換至具有有限的功能的降級模式。假使確定 發(fā)生篡改,SEM邏輯電路105接著使微處理器完全地關(guān)機(硬件關(guān)機模式)。
關(guān)于此一個或多個安全應(yīng)用程序(或"安全編碼")的功能類型包括(但 不受限于此)執(zhí)行關(guān)鍵安全任務(wù),例如憑證確認、數(shù)據(jù)加密以及數(shù)據(jù)解密; 監(jiān)控正常系統(tǒng)軟件活動;確認正常系統(tǒng)軟件的完整性;追蹤資源使用;新軟 件的安裝。
在一實施例中,在本發(fā)明的安全處理系統(tǒng)中考慮使用表面黏著式微處理 器IOI、表面黏著式安全非易失性存儲器107、以及表面黏著式石英器X1。 這些表面黏著式組件包括球柵陣列(ball-grid array )組件或焊接在系統(tǒng)板100 上的其它相似技術(shù)。本發(fā)明的微處理器101也執(zhí)行儲存在系統(tǒng)存儲器內(nèi)(未顯示)的非安全 應(yīng)用程序,這些非安全應(yīng)用程序的指令通過系統(tǒng)總線102來提供。在本發(fā)明
的觀念中,微處理器101能如中央處理單元(Centralized Processing Unit, CPU)般操作,而不用因應(yīng)協(xié)同處理器(coprocessor)的要求。即是,本發(fā)明 的微處理器101能執(zhí)行主機指令集的所有指令,且能執(zhí)行全部的應(yīng)用程序。 與只能執(zhí)行自一主要CPU轉(zhuǎn)移的單一指令、程序線程或程序片斷的類似功 能協(xié)同處理器與處理器比較起來,本發(fā)明的微處理器101直接執(zhí)行在對應(yīng)應(yīng) 用程序中的所有指令,不論此應(yīng)用程序是否是儲存安全非易失性存儲器107 的安全應(yīng)用程序或者是通過系統(tǒng)總線102擷取的非安全應(yīng)用程序。
接著參閱圖2,狀態(tài)圖200說明在圖1的微處理器中最高階級操作模式。 在此最高階級中,微處理器101提供三個主要操作模式201-203與一個硬件 關(guān)機模式204。非安全執(zhí)行模式201是在微處理器101制造后,當(dāng)?shù)谝淮喂?給電源時所默認(default)的第一個狀態(tài)。非安全執(zhí)行模式201也稱為"原生 未受控(bom free)"模式201。原生未受控模式201是微處理器101的制造 狀態(tài),其提供非安全應(yīng)用程序的正常執(zhí)行,其中,這些非安全應(yīng)用程序通過 系統(tǒng)總線102而于系統(tǒng)存儲器中存取。在此狀態(tài)中,無法得知且無法操作任 何與安全應(yīng)用程序的安全執(zhí)行相關(guān)聯(lián)的資源。這些資源包括SEM邏輯電路 105、安全非易失性存儲器107以及一些其它專用寄存器,這些專用寄存器 包括含有對稱與非對稱加密密鑰、安全中斷、安全存儲器(RAM)以及其它
硬件,將于下文詳細說明。藉由提供原生未受控模式201,可實施與非安全 孩i處理器所共通的制造4亍動類型(type of manufacturing activities)。此夕卜,由 于原生未受控模式201提供非安全應(yīng)用程序的執(zhí)行,因此本發(fā)明的微處理器 101的相同的管芯設(shè)計(the same die design)可實施在非安全微處理器。在一實 施例中,非安全微處理器的接腳配置(pinout)不同于SEM微處理器101, 且假使非安全微處理器配置在安全系統(tǒng)板100時,非安全微處理器的SEM 邏輯電路105將因電源應(yīng)用不同而無法操作。
在一實施例中,SEMENABLE(SEM使能)指令的執(zhí)行導(dǎo)致微處理器101 的模式轉(zhuǎn)換為安全執(zhí)行模式202。在安全執(zhí)行模式202下,安全與非安全應(yīng) 用程序都可執(zhí)行,但是非安全應(yīng)用程序無法存取安全資源。安全執(zhí)行模式202 也稱為SEM-使能模式202。在一安全應(yīng)用程序的控制下(簡稱為程控),微處 理器的狀態(tài)可轉(zhuǎn)換回原生未受控模式201,然而,轉(zhuǎn)換為原生未受控模式201在一實施例中,處理器轉(zhuǎn)換回原生未受控模式可高達64
次。在另一實施例中,以可確認的授權(quán)者來對特殊(particular)機械專用寄存 器(Machine Specific Register, MSR)進行寫入,導(dǎo)致微處理器101的模式 轉(zhuǎn)換為安全執(zhí)行模式202。
SEM邏輯電路105監(jiān)控對應(yīng)微處理器且與潛在篡改相關(guān)的狀態(tài),并根 據(jù)這些狀態(tài)的一使微處理器自安全執(zhí)行模式202轉(zhuǎn)換至降級(操作)模式203。 假使某些已定義的狀態(tài)被SEM邏輯電路105偵測到,微處理器101自動地 轉(zhuǎn)換為降級模式203。在降級模式203中,允許執(zhí)行BIOS指令,以提供使 用者輸入與信息的顯示的功能,但是更多復(fù)雜的軟件(例如操作系統(tǒng))的執(zhí) 行則不被允許。在降級模式203中,在微處理器101的安全執(zhí)行模式202的 安全編碼操作被關(guān)閉,但是仍允許執(zhí)行BIOS指令。在一實施例中,BIOS 指令通過發(fā)出 一外部中斷與傳遞狀態(tài)給該微處理器且經(jīng)由一機械專用寄存 器來執(zhí)行。在x86兼容的實施例中,在此降級模式203中實施SMI中斷以執(zhí) 行BIOS指令。
這些導(dǎo)致微處理器由安全執(zhí)行模式202轉(zhuǎn)換為降級模式203的已定義狀 態(tài)可以是執(zhí)行安全編碼的結(jié)果、或是多硬件偵測狀態(tài)、或是安全編碼執(zhí)行結(jié) 果與硬件偵測狀態(tài)的結(jié)合。此硬件偵測狀態(tài)包括與潛在安全暴露或篡改相關(guān) 聯(lián)的監(jiān)控狀態(tài)。在一實施例中,根據(jù)這些已定義狀態(tài)的一偵測結(jié)果,SEM邏 輯電路105試圖清除微處理器內(nèi)一安全易失性存儲器的一數(shù)據(jù)區(qū)域,且試圖 將偵測結(jié)果紀錄至安全非易失性存儲器107。根據(jù)該數(shù)據(jù)區(qū)域的成功清除與 該偵測結(jié)果的成功紀錄,SEM邏輯電路105將微處理器轉(zhuǎn)換至降級模式203。 此外,執(zhí)行在降級^t式203的安全編碼,亦即在一安全應(yīng)用程序的控制下(簡 稱為程控),微處理器的狀態(tài)轉(zhuǎn)換回安全執(zhí)行模式202。
硬件關(guān)機模式204。在一實施例中,根據(jù)這些已定義狀態(tài)的一偵測結(jié)果,SEM 邏輯電路105試圖清除微處理器內(nèi)一安全易失性存儲器的一數(shù)據(jù)區(qū)域、試圖 將該偵測結(jié)果紀錄至安全非易失性存儲器107、且使微處理器進入至硬件關(guān) 機模式204。在此硬件關(guān)機模式下,只可藉由重置微處理器來退出此硬件關(guān) 機模式。在安全執(zhí)行模式202或降級模式203中一安全應(yīng)用程序的控制下(簡 稱為程控),微處理器202可進入硬件關(guān)機模式204。
現(xiàn)在參閱圖3,其表示在本發(fā)明實施例的微處理器300中的SEM邏輯電路301的詳細方塊圖。SEM邏輯電路301包括授權(quán)的公開密鑰寄存器318、 處理器密鑰寄存器312、 SEM初始化邏輯電路305、 SEM監(jiān)控邏輯電路306、 SEM中斷邏輯電路307、 SEM例外(exception)邏輯電路308、 SEM定時 器309、 SEM實時時鐘(RTC)310、非易失性使能指示寄存器328、 SEM機 械專用寄存器存儲體(bank) 329以及安全易失性存儲器302。 SEM邏輯電 路301耦接在微處理器300中的一些其它資源,包括通過總線326耦接非安 全存儲器325、通過總線324耦接地址邏輯電路323、通過總線320耦接隨 機數(shù)產(chǎn)生器319、通過總線321耦接AES/HASH/RSA單元311、通過總線 327耦接其它處理器執(zhí)行單元313 (例如整數(shù)單元、浮點單元、MMX/SSE 單元)、耦接正常例外邏輯電路314、耦接正常追蹤/除錯邏輯電路315、耦接
在一實施例中,由授權(quán)者提供公開密鑰,且微處理器300的制造期間中, 公開密鑰永久地編程在授權(quán)的公開密鑰寄存器318。在一實施例中,此公開 密鑰為1024位的RSA密鑰,且授權(quán)的公開密鑰寄存器318包括1024位的 熔絲庫(fuse bank)。因此,此公開密鑰可在微處理器300的制造期間被編程, 而不是在制造之后。或者,公開密鑰藉由離線(off-line)大規(guī)模的初始化而 被編程至安全非易失性存儲器107,其中,此離線大規(guī)才莫的初始化是用來編 程一些安全非易失性存儲器107。使能與初始化安全執(zhí)行模式202的能力是 非常關(guān)鍵的安全操作,且木馬程序(Trojan Horse)有可能被安裝(installation) 進安全非易失性存儲器107。因此,利用提供公開密鑰的方法以避免窺察與 篡改來控制安全執(zhí)行模式初始化程序。
處理器密鑰寄存器312是多熔絲的聚集體,其實際分布在微處理器管芯
獨特密鑰,其只可被AES/HASH/RSA單元311(也可稱加密單元311)來讀取, 并無提供自處理器密鑰寄存器312讀取處理器密鑰的程序接口。在一實施例 中,處理器密鑰寄存器312包括128個熔絲,這些熔絲被編程為128位的 AES ( Advanced Encryption Standard, AES )密鑰,而使用此AES密鑰來對 安全非易失性存儲器107的內(nèi)容進行加密與解密。即是,使用此處理器對稱 密鑰來對安全編碼進行加密,以儲存在安全非易失性存儲器中。依據(jù)通過私 密總線106來對安全編碼的擷取,來自處理器密鑰寄存器312的密鑰被使用 來對安全編碼進行解密以進一步執(zhí)行。因此,私密總線106的狀態(tài)的觀察者無法決定何者正在微處理器300與非易失性存儲器107之間轉(zhuǎn)移。
在一實施例中,處理器密鑰寄存器312包括128熔絲,其隨機地分布在
微處理器300中一熔絲庫內(nèi)的許多其它熔絲之中。此熔絲庫配置在微處理器
管芯上一些金屬層的下方。
根據(jù)SEMENABLE指令的執(zhí)行或其它進入安全執(zhí)行模式202的預(yù)期機
制,SEM初始化邏輯電路305提供安全執(zhí)行模式202的初始化。為了詳細
說明,下文將以用來使能且執(zhí)行來自安全執(zhí)行模式202的指令(例如此技術(shù)領(lǐng)域的人士將理解有其它方法能使能安全執(zhí)行模式202并執(zhí)行來自安 全執(zhí)行模式的安全編碼,例如對一隱密寄存器(hidden register)寫入等等。根 據(jù)SEMENABLE指令的執(zhí)行成功,SEM初始化邏輯電^各305將孩i處理器300 的狀態(tài)記錄在非易失性使能指示寄存器328。由安全執(zhí)行模式202轉(zhuǎn)換至原 生未受控模式201時,SEM初始化邏輯電路305將微處理器300的狀態(tài)(安 全執(zhí)行模式被使能的狀態(tài))記錄在非易失性使能指示寄存器328。亦即,非易 失性使能指示寄存器328用以指示微處理器300是否處于安全執(zhí)行模式或一 非安全執(zhí)行模式。在微處理器的電源移除與重新施加的期間,非易失性使能 指示寄存器328的內(nèi)容持續(xù)存在。在一實施例中,非易失性使能指示寄存器 328包括配置在微處理器300內(nèi)的多熔絲,且微處理器300可由安全執(zhí)行模 式202轉(zhuǎn)換至原生未受控模式201的次數(shù)對應(yīng)在這些熔絲中的一特定熔絲數(shù) 量。微處理器300包括配置在一單一管芯上的一單一集成電路。在一實施例 中,SEM邏輯電路根據(jù)進入至該安全執(zhí)行模式而對非易失性使能指示寄存 器328進行第一次寫入,以指示出微處理器處于安全執(zhí)行模式。SEM邏輯 電路根據(jù)退出該安全執(zhí)行模式而對非易失性使能指示寄存器328進行第二次 寫入,以指示出微處理器處于該非安全執(zhí)行才莫式(原生未受控模式)。
SEM監(jiān)控邏輯電路306用來監(jiān)控安全編碼與數(shù)據(jù)的誠實性,以監(jiān)控系 統(tǒng)的環(huán)境與物理屬性,包括溫度、電壓、總線時鐘、電池VP的存在、石英 器XI的存在以及安全非易失性存儲器107的存在。SEM監(jiān)控邏輯電路306 將篡改或疑似的篡改情況指示給SEM邏輯電路301,其導(dǎo)致微處理器300 轉(zhuǎn)換至降級模式203或硬件關(guān)機模式204。
SEM中斷邏輯電路307提供多中斷與相關(guān)的中斷邏輯裝置(例如安全 中斷描述符表(Interrupt Descriptor Table, IDT)),這些只顯現(xiàn)給正在安全執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序,且由此安全應(yīng)用程序來存取。中斷安全
編碼執(zhí)行的機制類似于執(zhí)行正常模式的機制。亦即,依據(jù)SEM中斷的設(shè)置 (assertion),且藉由SEM IDT的出現(xiàn)使得安全編碼狀態(tài)被保存并轉(zhuǎn)移至安全 中斷管理者(secure interrupt handler)。由中斷指令的恢復(fù)(return)執(zhí)行將控制權(quán) 恢復(fù)至安全編碼中的斷點。當(dāng)微處理器300正操作在安全執(zhí)行模式時,SEM 中斷邏輯電路307提供安全中斷以中斷安全應(yīng)用程序。SEM中斷邏輯電路 307不被系統(tǒng)總線資源或非安全應(yīng)用程序所得知或存取。當(dāng)微處理器300正 操作在非安全執(zhí)行模式時,微處理器300的正常中斷邏輯電路316提供非安 全中斷以中斷非安全應(yīng)用程序。
同樣地,SEM例外邏輯電路308提供多安全例外與相關(guān)的例外管理邏 輯裝置。當(dāng)該微處理器正操作在安全執(zhí)行模式202時,SEM例外邏輯電路 308提供多安全例外并禁能多非安全例外。SEM例外邏輯電路308無法被所 述系統(tǒng)總線資源或所述非安全應(yīng)用程序所得知或存取,其只顯現(xiàn)給正在安全 執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序,且由此安全應(yīng)用程序來存取。所有安 全編碼程序例外與中斷利用預(yù)設(shè)的IDT,此預(yù)設(shè)IDT存在于SEM中斷邏輯 電路307內(nèi),以在中斷與例外期間內(nèi)控制分支。在一實施例中,根據(jù)所述安 全例外的一者的使能,微處理器的狀態(tài)被儲存且程控轉(zhuǎn)移至一對應(yīng)安全例外 管理者,其中微處理器的狀態(tài)無法被所述非安全應(yīng)用程序所存取。在安全應(yīng) 用程序執(zhí)行之前,SEM邏輯電路301禁能正常例外邏輯電路314,以及當(dāng)微 處理器300正操作在非安全執(zhí)行模式時,正常例外邏輯電路314提供對應(yīng)所 述非安全應(yīng)用程序的多非安全例外。在一實施例中,假使在所述非安全應(yīng)用 程序的任一者執(zhí)行的期間發(fā)生所述安全中斷的任一者或所述安全例外的任
這些安全中斷被配置來提供微處理器300外部事件所導(dǎo)致的程控轉(zhuǎn)移, 例如鍵盤事件、1/0端口事件等等。安全例外是用來提供微處理器300內(nèi)部 事件所導(dǎo)致的程控轉(zhuǎn)移,例如非定義的運算碼(opcode )、機械檢查錯誤 (machine check errors)、以及在一實施例中對一個或多個安全機械專用寄存器 存儲體329的安全編碼寫入。IDT包括多安全寄存器,其被加載多指標(biāo),而 這些指標(biāo)是指向在安全編碼中的安全中斷管理者與安全例外管理者(secure exception handler)。 IDT提供轉(zhuǎn)移至該安全應(yīng)用程序內(nèi)的多安全中斷管理者 與多安全例外管理者)的程控。此預(yù)設(shè)IDT包括關(guān)于程控轉(zhuǎn)移至該微處理器將執(zhí)行的一安全執(zhí)行模式重置操作的數(shù)據(jù)。在一實施例中,根據(jù)所述安全中 斷的一者的使能,該微處理器的狀態(tài)被儲存且程控轉(zhuǎn)移至一對應(yīng)安全中斷管
例中,根據(jù)所述非安全中斷的一者的使能,該微處理器的狀態(tài)被儲存且程控 轉(zhuǎn)移至一對應(yīng)非安全中斷管理者,以及該微處理器的狀態(tài)無法由所述非安全 應(yīng)用程序來存取。
SEM定時器309是只顯現(xiàn)給正行在安全執(zhí)行模式202下執(zhí)行的安全應(yīng) 用程序且由此安全應(yīng)用程序來存取的多定時器。SEM定時器309包括多中 斷,而這些中斷可由操作在安全執(zhí)行模式202下的安全編碼來存取。SEM實 時時鐘310其提供持續(xù)時間(persistent time),其只顯現(xiàn)給正在安全執(zhí)行模式 202下執(zhí)行的安全應(yīng)用程序且由此安全應(yīng)用程序來存取。SEM實時時鐘310 的值無法由不同于操作在安全執(zhí)行模式202下的安全編碼的任何對象來改 變。SEM機械專用寄存器存儲體329包括多機械專用寄存器,且這些機械 專用寄存器只顯現(xiàn)給正在安全執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序且由此安 全應(yīng)用程序來存取。這些機械專用寄存器用來使能對安全非易失性存儲器 107 、 SEM實時時鐘310以及SEM定時器309的加載/儲存存取。
緩存(instruction and data cache)。非安全存儲器325用以儲存多非安全應(yīng)用程 序以由微處理器來執(zhí)行。在微處理器300內(nèi)的這些程序與其它系統(tǒng)總線資源 可得知且存取非安全存儲器325。安全易失性存儲器302系作為給正在安全 執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序的一指令與數(shù)據(jù)高速緩存。進入至安全 執(zhí)行模式202,安全易失性存儲器302的一堆棧(stack)提供來儲存處理器 狀態(tài)303,其用于對應(yīng)所述非安全應(yīng)用程序的該微處理器的狀態(tài)的儲存與取 回。安全易失性存儲器302的其它堆棧提供來儲存安全編碼304與對應(yīng)安全 編碼的安全數(shù)據(jù)317。安全易失性存儲器302根據(jù)微處理器的重置而被清除, 且其完全地隔離于系統(tǒng)總線,因此,安全易失性存儲器302無法被非安全系 統(tǒng)資源窺察、加載、除錯或其它方法的存取。安全編碼(安全應(yīng)用程序)可使 用正常處理器加載與儲存指令來存取安全易失性存儲器302,以加載/儲存安 全數(shù)據(jù)317,其中,這些正常處理器加載與儲存指令是參考地址邏輯電路323 內(nèi)的正常片段寄存器(normal segment register),此正常片段寄存器是當(dāng)于安 全易失性存儲器302 (而不是正常系統(tǒng)存儲器)進入至安全執(zhí)行時而被初始化。此正常系統(tǒng)存儲器也被執(zhí)行在安全執(zhí)行模式的安全編碼,通過地址邏輯 電路323且使用正常加載與儲存指令來存取。然而,根據(jù)安全編碼的執(zhí)行,
SEM邏輯電路301通過總線324來命令地址邏輯電路323以停止虛擬地址 轉(zhuǎn)譯。亦即,因為虛擬-實體地址轉(zhuǎn)譯為了指令與數(shù)據(jù)而被禁能,因此,通
過總線324且由安全編碼所提供的地址必須為實體地址。藉由這種作法, SEM邏輯電路阻止了分頁錯誤,藉以消除此篡改來源。
在一實施例中,安全易失性存儲器302完全地屬于在微處理器300內(nèi)的 芯片上(on-chip)高速緩存,但安全易失性存儲器302快取線具有將這些快 取線完全地隔離于微處理器總線的特定內(nèi)部屬性。這些快取線沒'有耦接至外 部系統(tǒng)存儲器,因此這些快取線無法自系統(tǒng)存儲器裝載或存入至系統(tǒng)存儲 器,這些快取線也無法被任何匯流窺探資源來外部地或內(nèi)部地窺察。
在一實施例中,安全易失性存儲器302包括4K64位快取線。在安全易 失性存儲器302中, 一快取線依據(jù)由將數(shù)據(jù)移動至先前沒有涉及(referenced) 的一快取線來分配。在一實施例中,安全易失性存儲器302包括具有4096 個位置的一 64位高速緩存,所述位置的每一者包括一內(nèi)部屬性,且該內(nèi)部 屬性完全地隔離所述位置的每一者。
在另一實施例中,安全易失性存儲器302包括隨機存取存儲器,其與微 處理器300內(nèi)的芯片上高速緩存分離。
SEMENTER指令的執(zhí)行提供了安全執(zhí)行模式202內(nèi)安全編碼的執(zhí)行。 在一 x86相容的實施例中,安全執(zhí)行模式202根據(jù)修改的32位x86真實模 式來提供安全編碼的執(zhí)行。在執(zhí)行安全編碼時,禁止由安全執(zhí)行模式202進 入一 x86保護模式。在安全執(zhí)行模式執(zhí)行之前,SEM初始化邏輯電路305 藉由設(shè)置一使能信號DISIL來禁能正常(即非安全)中斷邏輯電路316。在 安全執(zhí)行模式執(zhí)行之前,SEM初始化邏輯電路305也藉由設(shè)置一使能信號 DISEL來禁能正常(即非安全)例外邏輯電路314,也藉由設(shè)置一使能信號 DISDL來禁能正常(即非安全)追蹤/除錯邏輯電路315。此外,在安全執(zhí)行 模式執(zhí)行之前,電源管理邏輯電路322藉由信號DISPML的設(shè)置而被禁能。 通過這些安全措施,不會發(fā)生正常總線中斷,阻止了除錯例外、避免總線追 蹤周期、且禁能除錯輸出入埠。此外,信號DISIL用來在安全編碼的執(zhí)行期 間內(nèi)禁能所有的剩余處理器資源(例如JTAG、探測模式、快取測試)。否貝'J, 電源管理邏輯電路322允許樣i處理器300進入降低功耗狀態(tài),例如在x86兼容實施例中的P狀態(tài)與C狀態(tài)。因此,信號DISPML用來在安全編碼執(zhí)行
期間避免功耗狀態(tài)的轉(zhuǎn)換。
通過總線320、 321及327,安全編碼可存取處理器執(zhí)行單元(處理器300 內(nèi)的執(zhí)行單元)313、隨機數(shù)產(chǎn)生器319與AES/HASH/RSA單元311,以執(zhí)行 微處理器指令集的所有指令,其中,這些指令包括真實隨機數(shù)的硬件產(chǎn)生且 可由編程的巨集指令來使用的硬件實施功能,以執(zhí)行RSA加密、解密以及 識別核對;AES加密與解密、以及SHA-1/SHA-256哈希產(chǎn)生(Secure Hash Algorithm, SHA,安全哈希算法)。這些硬件實施功能由AES/HASH/RSA單 元311來執(zhí)行。
現(xiàn)在參閱圖4,圖示400表示在本發(fā)明的微處理器內(nèi)安全編碼如何被儲 存、存取及初始化。圖標(biāo)400說明能進行安全執(zhí)行模式(SEM)的微處理器 401,其通過系統(tǒng)總線425而耦接BIOS存儲器410與系統(tǒng)存儲器420。根據(jù) 本發(fā)明,微處理器401也通過私密總線431而耦接至安全非易失性存儲器 430。微處理器401包括安全編碼接口邏輯電路402,其耦接至隨機數(shù)產(chǎn)生器 412、處理器密鑰寄存器413、授權(quán)的公開密鑰寄存器404、 AES/HASH/RSA 單元405 (或稱加密單元405 )、安全易失性存儲器406、 SEM監(jiān)控邏輯電^各 408以及SEM初始化邏輯電路409。安全編碼接口邏輯電路402另外耦接總 線接口單元403與安全非易失性存儲器接口單元407。
圖標(biāo)400也表示儲存在系統(tǒng)存儲器420與BIOS存儲器410的安全編碼 411及421。在一實施例中,儲存在BIOS存儲器410的安全編碼411主要是 用來提供微處理器401在降級模式203中的操作,而儲存在系統(tǒng)存儲器420 的安全編碼421是用來提供微處理器401在安全執(zhí)行模式202中的操作。
在操作上,圖標(biāo)400所示的組件的運作,實質(zhì)上相似于先前參閱第1-3 圖而已敘述的相似名稱組件。參閱圖4的討論目的是為了更加明確集中注意 在那些組件與技術(shù),而那些組件與技術(shù)是用來儲存、存取、初始化、執(zhí)行在 本發(fā)明的安全環(huán)境中的安全編碼。
此外,關(guān)于安全編碼執(zhí)行的環(huán)境是隔離于非安全編碼執(zhí)行的環(huán)境。如先 前所述,原生未受控模式201只允許非安全編碼的執(zhí)行。安全執(zhí)行模式則允 許非安全編碼與安全編碼兩者的執(zhí)行。在安全編碼421執(zhí)行之前,微處理器 401的狀態(tài)被保存。根據(jù)回到非安全編碼的執(zhí)行的轉(zhuǎn)換,此狀態(tài)恢復(fù) (restored)。此狀態(tài)儲存在安全易失性存儲器406內(nèi)的一個區(qū)域,且此狀態(tài)不會出現(xiàn)在微處理器總線425上。此外,安全編碼411、 421是執(zhí)行自安全易 失性存儲器406。除了將安全易失性存儲器406隔離于與微處理器總線425 聯(lián)系的硬件與軟件,所有其它"從屬通道(side channels)"(例如除錯例外與 執(zhí)行追蹤特征)被禁能,如關(guān)于圖l-3的討論。安全編碼411、 421只提供給 SEM中斷邏輯電路307、 SEM例外邏輯電路308、 SEM實時時鐘310、 SEM 定時器310以及只可由安全編碼411、 421利用的其它處理器資源獨占存取。
此外,微處理器401提供SEM監(jiān)控邏輯電路408,其包括的異步監(jiān)控 與監(jiān)視機制,其中,此異步監(jiān)控與監(jiān)視機制獨立于安全編碼411、 421以及 非安全編碼的執(zhí)行。SEM監(jiān)控邏輯電路408監(jiān)控微處理器的環(huán)境(例如電 壓、溫度、總線運作)與物理特性,也核對安全編碼411、 421(安全應(yīng)用程 序)與相關(guān)數(shù)據(jù)的誠實性,將于下文詳細說明。當(dāng)偵測到安全暴露(security exposure)時,SEM監(jiān)控邏輯電路408可通過總線CHK將程控轉(zhuǎn)移至安全編 碼411、 421的安全編碼錯誤管理裝置(secure-code error handler),或者,在 偵測到嚴重的安全暴露情況下,SEM監(jiān)控邏輯電路408將通過總線CHK來 使微處理器401進入降級模式203。
在一實施例中,安全編碼接口邏輯電路402監(jiān)控存在于安全編碼411、 421中的多指令,且通過總線INS將這些指令提供至SEM監(jiān)控邏輯電路408, 以支持孩i處理器401的限定的指令集架構(gòu)(Instruction set Architecture, ISA) 操作。根據(jù)此實施例,當(dāng)微處理器401正操作在安全執(zhí)行模式時,本發(fā)明的 微處理器401只被允許執(zhí)行主機ISA中的某些指令。即是,限定的ISA操作 使得SEM邏輯電路阻止多非安全指令的執(zhí)行,而此非安全指令的執(zhí)行是授 權(quán)者欲阻止的,且該些非安全指令包括取自對應(yīng)微處理器的一指令集架構(gòu)的 一個或多個運算碼。舉例來說,在x86相容的實施例中,超過100個微指令 的產(chǎn)生與執(zhí)行的指令或某類指令要求會被阻止。另一方面,當(dāng)微處理器401 正操作在安全執(zhí)行模式時, 一授權(quán)者可能期望阻止所有指令的執(zhí)行,例如任 務(wù)切換、呼尋閘(callgates)等等。藉由將安全編碼411、 421內(nèi)每一指令提供 給SEM監(jiān)控邏輯電路408,本發(fā)明的微處理器401使能限定的ISA操作。 在一實施例中,在限定的ISA指令集中的指令(即提供在安全執(zhí)行模式下執(zhí) 行的指令),系由SEM監(jiān)控邏輯電路408內(nèi)指令數(shù)組(未顯示)的值來表示, 將于下文詳細說明。當(dāng)遭遇到上述被阻止的指令時,SEM監(jiān)控邏輯電路408 使微處理器401進入降級模式203。在一實施例中,安全編碼接口邏輯電3各402將安全編碼411、 421中的 指令提供給SEM監(jiān)控邏輯電路408,提供時將安全編碼411、 421加載至安 全易失性存儲器406以進行后續(xù)執(zhí)行。
使能與初始化安全執(zhí)行模式202的能力是非常關(guān)鍵的安全操作,此外, 其表示了關(guān)于木馬程序(Trojan Horse)安裝有可能進入至包含安全編碼411、 421的存儲器410、 420的區(qū)域。通過非對稱加密算法與一組對應(yīng)的非對稱加 密密鑰的使用,本發(fā)明的微處理器401藉由控制安全執(zhí)行模式初始化程序而 有利地阻止此暴露。在一實施例中,非對稱密鑰算法是RSA算法,且對應(yīng) 密鑰則是由授權(quán)者所產(chǎn)生的1024位RSA公開與私密密鑰。在一實施例中, 此授權(quán)者或授權(quán)實體(entity)提供執(zhí)行的安全編碼411、 421。如前文關(guān)于圖3 的說明,在微處理器401的制造期間,兩密鑰中的一者儲存在授權(quán)的公開密 鑰寄存器318,且用來根據(jù)非對稱密鑰算法來對數(shù)據(jù)解密,其中,此數(shù)據(jù)已 由授權(quán)者的其它非對稱密鑰(即私密密鑰)來加密。
因此,在一實施例中,此操作系統(tǒng)執(zhí)行SEMENABLE指令(或相似機 制)。此指令傳送通過授權(quán)者的私密密鑰來加密的一SEM使能參數(shù)。安全編 碼接口邏輯電路402接著通過授權(quán)的公開密鑰寄存器404來存取公開密鑰, 且利用AES/HASH/RSA單元405來對此SEM使能參數(shù)解密。根據(jù)核對SEM 使能參數(shù),SEM初始化邏輯電路409初始化安全執(zhí)行模式202,亦即使能安 全執(zhí)行模式202以執(zhí)行安全應(yīng)用程序。除此之外,SEM初始化邏輯電路409 指示微處理器401自SEMENABLE指令恢復(fù)(return)后,微處理器401保持 在非安全執(zhí)行模式201。在一實施例中,無論是否接受進入安全執(zhí)行模式202 的授權(quán)(以及有 一對應(yīng)錯誤狀態(tài)時,假使有的話)都會提供一 響應(yīng)編碼(return code)。
相對于在微處理器401的制造期間將授權(quán)的公開密鑰直接編程至授權(quán)的 公開密鑰寄存器404,在另一實施例中,授權(quán)者將授權(quán)的公開密鑰編程至安 全非易失性存儲器430的授權(quán)的公開密鑰區(qū)域432。因此,當(dāng)微處理器401 開機(power up)時,安全非易失性存儲器接口單元407自此區(qū)域432偵測并 擷取此公開密鑰。安全編碼接口邏輯電路402接著將此密鑰以及之后指示此 密鑰已被燒錄的參數(shù),燒錄至授權(quán)的公開密鑰寄存器404。此供選擇的實施 例在安全非易失性存儲器430的制造階段上,提供了更彈性地公開密鑰配置。 安全非易失性存儲器接口單元407通過私密總線431將微處理器401耦接至安全非易失性存儲器430,其中,在私密總線431上用來存取安全非易失性 存儲器430的多私密總線數(shù)據(jù)傳輸被隱藏,以避免被微處理器401內(nèi)多系統(tǒng) 總線資源以及耦接該系統(tǒng)總線的任何裝置所得知察覺。
安全非易失性存儲器接口單元407是由安全編碼接口邏輯電路402所管 理。根據(jù)核對一 SEM使能參數(shù),安全非易失性存儲器接口單元407藉由執(zhí) 行隨機數(shù)寫入來清除安全非易失性存儲器430的內(nèi)容。在一實施例中,在安 全非易失性存儲器430中的每一個位置以隨機數(shù)寫入64次。在一實施例中, 每次寫入的隨機數(shù)是由隨機數(shù)產(chǎn)生器412所產(chǎn)生。
SEMENABLE指令(或是SEM使能機制)也傳送關(guān)于安全編碼411、 421在BIOS存儲器410或系統(tǒng)存儲器420的位置的指針和任何初始安全數(shù) 據(jù)(亦即使能參數(shù))。此指針與數(shù)據(jù)(亦即使能參數(shù))是根據(jù)一預(yù)設(shè)結(jié)構(gòu)來被格 式化,且根據(jù)非對稱密鑰算法而被加密。被加密的指針與數(shù)據(jù)被解密,且格 式化被核對。不成功的核對導(dǎo)致錯誤碼的回應(yīng)。
假使在結(jié)構(gòu)方面此指針與數(shù)據(jù)被確認且證實,安全編碼接口邏輯電路 402則指示總線接口單元403去自BIOS存儲器410以及/或系統(tǒng)存儲器420 擷耳又安全編碼411及421 。安全編碼411、 421也已藉由4吏用4受權(quán)者的私密密 鑰并根據(jù)非對稱密鑰算法而被力。密,且必須與預(yù)設(shè)結(jié)構(gòu)相稱。安全編碼接口 邏輯電路402利用授權(quán)的公開密鑰寄存器404與AES/HASH/RSA單元405 來對加密的安全編碼411、 421進行解密。在核對為正確4各式后,安全編碼 接口邏輯單元402利用AES/HASH/RSA單元405來根據(jù)對稱加密算法并使 用處理器密鑰寄存器413的內(nèi)容(作為對稱密鑰)來對安全編碼與數(shù)據(jù)進行 加密。如前所提及,處理器密鑰寄存器413的內(nèi)容是微處理器401所特有的 128位隨機產(chǎn)生的密鑰,且對稱加密算法包括使用128位模塊(blocks)以及電 子密碼書(Electronic Code Book, ECB )模式的高級加密標(biāo)準(zhǔn)(AES )。此對 稱加密的安全編碼接著通過安全非易失性存儲器接口單元407而被寫入至安 全非易失性存儲器430。此外,安全編碼接口邏輯電路402利用 AES/HASH/RSA單元405與處理器密鑰寄存器413來產(chǎn)生安全編碼中已選 擇部分的多個哈希,安全編碼接口邏輯電路402對這些哈希進行加密編碼并 寫入至安全非易失性存儲器430。在一實施例中,這些哈希是根據(jù)SHA-1算 法而產(chǎn)生。
此外,SEM初始化邏輯電路409禁能JTAG、探測模式、快取測試、或者禁能通過圖3所討論的機制而提供安全編碼監(jiān)視的其它處理器特性。
當(dāng)被編碼且被哈希的安全編碼已寫入至安全非易失性存儲器430,微處
理器401設(shè)定非易失性使能指示寄存器(如圖3中328所示)指示出處理器 401正操作于安全執(zhí)行模式202且SEM初始化邏輯電路409迫使微處理器 401執(zhí)行一 重置序列(RESET sequence)。
部分的重置序列導(dǎo)致非易失性使能指示寄存器的內(nèi)容被讀取,且假使這 些內(nèi)容指示出處理器401處于安全執(zhí)行模式202中,則執(zhí)行安全執(zhí)行模式202 所特有的額外操作。
因此,安全編碼411、 421起初被加密,且由授權(quán)者加載至存儲器410、 420。當(dāng)安全執(zhí)行模式被使能時,微處理器401根據(jù)非對稱密鑰算法并使用 授權(quán)者所提供的密鑰來擷取且核對安全編碼。接著使用處理器獨特密鑰并根 據(jù)對稱密鑰算法來加密且哈希此編碼,且對稱加密的編碼通過私密總線431 而被寫入至安全非易失性存儲器430。
以下將進一步詳細說明,當(dāng)安全編碼將^皮執(zhí)行時,安全編碼由安全非易 失性存儲器接口單元407自安全非易失性存儲器430被擷取,且使用存放于 處理器密鑰寄存器413的處理器密鑰來譯碼,且安全編碼被寫入至微處理器 401內(nèi)的安全易失性存儲器406,其中,安全易失性存儲器406完全隔離于 所有可窺探其內(nèi)容的硬件及或軟件。安全易失性存儲器406的功能包含可存 放安全應(yīng)用程序執(zhí)行的指令與數(shù)據(jù)高速緩存。
在一實施例中,安全非易失性存儲器接口單元407包括多機械專用寄存 器,其專有地顯現(xiàn)給安全編碼,這些機械專用寄存器允許一安全應(yīng)用程序(或 安全編碼接口邏輯電路402 )去執(zhí)行對安全非易失性存儲器430的加載與儲 存。即是,根據(jù)此實施例,藉由執(zhí)行對隱藏機械專用寄存器的讀取與寫入, 來執(zhí)行對安全非易失性存儲器403的讀取與寫入。
授權(quán)者可有利地將微處理器401的安全操作與安全執(zhí)行模式環(huán)境結(jié)合, 且由于通過系統(tǒng)總線425與私密總線431的數(shù)據(jù)傳輸被加密,因此安全編碼 的結(jié)構(gòu)與功能則被保護以避免任何的反向工程與其它窺察/侵入技術(shù)。
現(xiàn)在參閱圖5,其表示在圖1的微處理器中的SEM監(jiān)控邏輯電路500 的詳細內(nèi)容。SEM監(jiān)控邏輯電路500包括物理環(huán)境監(jiān)控器501,其通過信號 PSNT耦接安全非易失性存儲器107、通過信號VP1與VP2耦接電池VP, 且通過信號Cl與C2耦接石英器。此物理環(huán)境監(jiān)控器501通過總線NOBOOT提供一輸出信號。
SEM監(jiān)控邏輯電路500也包括總線時鐘監(jiān)控器502,其具有頻率參考單 元503??偩€時鐘監(jiān)控器502通過信號BUS CLK耦接提供至微處理器的總 線時鐘,且總線時鐘監(jiān)控器502的輸出系耦接總線TAMPER。
SEM監(jiān)控邏輯電路500也包括處理器電壓監(jiān)控器504,其通過信號VDD 與BUSTERM耦接電源供應(yīng)電壓與多總線終端電壓,其中,電源供應(yīng)電壓與 總線終端電壓由系統(tǒng)板提供至微處理器。SEM監(jiān)控邏輯電路500也包括溫 度監(jiān)控器505,其通過信號TEMP耦接至處理器溫度感測邏輯電路(未顯示)。 SEM監(jiān)控邏輯電路500更包括數(shù)據(jù)監(jiān)控器506,其通過總線CHK耦接至安 全編碼接口邏輯電路402。總線時鐘監(jiān)控器502、處理器電壓監(jiān)控器504、溫 度監(jiān)控器505以及數(shù)據(jù)監(jiān)控器506的輸出信號則耦接至總線TAMPER。
SEM監(jiān)控邏輯電路500更包括安全時戳計數(shù)器(security time stamp counter)507,其耦接正常時戳計數(shù)器(normal time stamp counter)508、信號 CORE CLK以及比率(Ratio )機械專用寄存器509。安全時戳計數(shù)器507的 輸出信號耦接總線TAMPER。
SEM監(jiān)控邏輯電路500也包括指令監(jiān)控器511,其耦接指令數(shù)組512與 總線INS。如關(guān)于圖4的討論,當(dāng)微處理器正執(zhí)行在安全執(zhí)行模式時,在安 全應(yīng)用程序內(nèi)的指令被提供至SEM監(jiān)控邏輯電路500,以支持在主機ISA 內(nèi)限制的指令執(zhí)行。指令監(jiān)控器511的輸出信號耦接至總線TAMPER。
最后,SEM監(jiān)控邏輯電路500具有樣式監(jiān)控器510,其耦接總線 PINCHK,且在總線DESTRUCT上產(chǎn)生 一輸出信號。
總線NOBOOT、 TAMPER以及DESTRUCT耦接于監(jiān)控管理器513。在 一實施例中,監(jiān)控管理器513產(chǎn)生信號CLASSl、 CLASS2、 CLASS3以及 DISABLE 。
在操作上,SEM監(jiān)控邏輯電路500用來執(zhí)行硬件與軟件檢驗,其監(jiān)控 本發(fā)明微處理器的物理與暫時的屬性,以偵測、識別以及分類操作事件 (operating events),其中,操作事件是表示對于安全編碼而言不安全的操作環(huán) 境,例如改變或移除電池、石英器或者安全非易失性存儲器;以本發(fā)明的不 安全的微處理器來取代本發(fā)明的安全微處理器;修改總線時鐘;篡改微處理 器電源供應(yīng)電壓VDD;修改在系統(tǒng)存儲器、BIOS存儲器或安全非易失性存 儲器內(nèi)的加密安全編碼;以及發(fā)生對安全編碼本身的過度呼尋(excessivecalls)。
因此,當(dāng)操作在安全執(zhí)行模式時,物理環(huán)境監(jiān)控器501耦接安全非易失 性存儲器107,藉由監(jiān)控信號PSNT的狀態(tài)來判斷安全非易失性存儲器107 是否移除。信號PSNT的禁能(de-assertion)表示移除安全非易失性存儲器 107。同樣地,監(jiān)控信號VP1與VP2來判斷電池電壓是否改變或電池被移除 或者判斷對應(yīng)該電池的電壓是否被充電。在一實施例中,VP1的值與電池電 壓成比例。同樣地,信號Cl與C2的狀態(tài)表示石英器的存在與否。假使物 理環(huán)境監(jiān)控器501偵測到上述的任何變化,此變化則輸出至總線NOBOOT。
此外,當(dāng)操作在安全執(zhí)行模式202時,總線時鐘監(jiān)控器502估計信號 BUS CLK的頻率,以判斷系統(tǒng)總線時鐘的短期與長期完整性,其中,系統(tǒng) 總線時鐘通過系統(tǒng)板而提供至微處理器。此總線時鐘通過信號BUS CLK被 路由(routed)至總線時鐘監(jiān)控器502,總線時鐘監(jiān)控器502使用內(nèi)部相位鎖相 回路(未顯示)來檢驗短期總線時鐘誤差,其中,內(nèi)部相位鎖相回路與總線 時鐘同步化且用來產(chǎn)生內(nèi)部時鐘給微處理器??偩€時鐘監(jiān)控器502判斷總線 時鐘于不適當(dāng)?shù)闹芷谑欠窬S持平坦,或者判斷時鐘變化是否已超出可接受的 程度(例如一特定范圍)。在一實施例中,超過百分的六的變化視為是無法接 受的。此外,總線時鐘監(jiān)控器502使用頻率參考單元503來作為溫度與電壓 非相依的中間速度振蕩器電路。頻率參考單元503產(chǎn)生與系統(tǒng)總線時鐘成比 例的一參考頻率。總線時鐘監(jiān)控器502比較系統(tǒng)總線時鐘的衍生(derivative) 與頻率參考單元503的輸出(參考頻率),以判斷總線時鐘的頻率是否已經(jīng)歷 逐步(gradual)的頻率變化。假使任何上述事件發(fā)生,此事件通過總線TAMPER 報導(dǎo)給監(jiān)控管理器513(SEM邏輯電路301),其將導(dǎo)致微處理器進入降級模 式或進入硬件關(guān)機模式204。
處理器電壓監(jiān)控器504估計通過信號VDD與BUSTERM來提供且施加 于微處理器的電源供應(yīng)電壓與多總線終端電壓。上述電壓的高低限制通過機 械專用寄存器(未顯示)來編程。 一但電源供應(yīng)電壓與多總線終端電壓偏離 這些編程限制,處理器電壓監(jiān)控器504將通過總線TAMPER來報導(dǎo)(report) 此事件給監(jiān)控管理器513。
溫度監(jiān)控器505包括精準(zhǔn)的熱監(jiān)控機制(除了正常熱監(jiān)控功能以外), 其在預(yù)設(shè)高與低溫度限制下不斷地監(jiān)控管芯溫度。該管芯溫度的 一低溫度限 制與一高溫度限制藉由溫度監(jiān)控器505內(nèi)一機械專用寄存器來編程。此高與低溫度限制儲存在溫度監(jiān)控器505內(nèi)機械專用寄存器中,其中,這些機械專 用寄存器可被安全編碼寫入。 一旦該管芯溫度偏離上述預(yù)設(shè)高與低溫度限
制,溫度監(jiān)控器505將通過總線TAMPER來報導(dǎo)此事件給監(jiān)控管理器513。 數(shù)據(jù)監(jiān)控器506用來當(dāng)自安全非易失性存儲器擷取該安全應(yīng)用程序時, 用以偵測與報導(dǎo)與安全編碼和安全數(shù)據(jù)相關(guān)的多加密與配置錯誤。這些多加 密與配置錯誤通過總線TAMPER來報導(dǎo)給監(jiān)控管理器513。舉例來說,這些 錯誤為與SEMENABLE及SEMENTER指令的執(zhí)行相關(guān)的錯誤、當(dāng)自存儲器 擷取安全編碼時所偵測到的解密錯誤、以及在安全編碼中哈希與格式錯誤。
安全時戳計數(shù)器507耦接一核心時鐘信號CORE CLK,用來計算當(dāng)安全 編碼正執(zhí)行時的核心時鐘信號CORE CLK的周期數(shù)。安全時戳計數(shù)器507 耦接一正常時戳計數(shù)器508。正常時戳計數(shù)器508則是在非安全編碼或安全 編碼執(zhí)行期間內(nèi)計算信號CORE CLK的周期數(shù)。當(dāng)安全應(yīng)用程序正在執(zhí)行 時或當(dāng)安全應(yīng)用程序非正在執(zhí)行時,正常時戳計數(shù)器508計算信號CORE CLK的周期數(shù)。安全時戳計數(shù)器507也耦接一比率機械專用寄存器509,比 率機械專用寄存器509只由該安全應(yīng)用程序所得知且存取。安全執(zhí)行模式執(zhí) 行期間,安全編碼可對比率機械專用寄存器509執(zhí)行一機械專用寄存器寫入, 以建立介于正常時戳計數(shù)器508與安全時戳計數(shù)器507的數(shù)值之間的一最大 比例(maximum ratio)。此最大比例指示該安全應(yīng)用程序已^皮呼尋的次凄t。布I 使超過此最大比例,藉此指示出安全編碼已被呼尋多于指定次數(shù),接著,安 全時戳計數(shù)器507通過總線TAMPER報導(dǎo)此事件(最大比例何時被超過)給監(jiān) 控管理器513。亦即,安全時戳計數(shù)器507用以比較信號CORE CLK周期數(shù) 與正常時戳計數(shù)器508的數(shù)值、且將上述最大比例被超過的事件報導(dǎo)給監(jiān)控 管理器513。上述最大比例藉由SEM邏輯電路內(nèi)的一機械專用寄存器來編 程。
指令監(jiān)控器511在與主機ISA內(nèi)指令子集的對照下用來確認在安全應(yīng)用 程序內(nèi)的指令,且指示出在此安全應(yīng)用程序內(nèi)且非在此子集內(nèi)的指令何時已 被編程以進行后續(xù)執(zhí)行。提供來在安全執(zhí)行模式內(nèi)執(zhí)行的指令子集是由指令 數(shù)組512的數(shù)值來表示。在一實施例中,此子集包括在ISA內(nèi)的一個或多個 特殊指令,如運算碼(opcode)所識別。在另一實施例中,此子集包括一個或 多個指令種類,如一微碼(microcode)復(fù)雜數(shù)值所識別。在一第三實施例中, 此子集包括一個或多個巻標(biāo)編碼(tag codes),每一者與一個或多個指令運算碼相關(guān)聯(lián)。
指令數(shù)組512耦接該指令監(jiān)控器511,用以識別對應(yīng)微處理器的一指令 集架構(gòu)內(nèi)的一所有指令的子集,該子集包括允許在一安全執(zhí)行模式內(nèi)執(zhí)行的
指令。用來在安全執(zhí)行模式下執(zhí)行的指令子集由指令數(shù)組512的數(shù)值來識別。 在一實施例中,此指令數(shù)組512包括一機械專用暫存器,其初始地由安全應(yīng) 用程序來寫入。在另一實施例中,指令數(shù)組512包括多熔絲,其在制造期間 被編程(燒斷)。
在安全執(zhí)行模式的初始化期間,當(dāng)安全編碼正由安全非易失性存儲器傳 送至安全易失性存儲器以進行后續(xù)執(zhí)行時,對應(yīng)安全編碼內(nèi)每一特定指令的 數(shù)值由安全編碼接口邏輯電路402通過總線INS而提供至指令監(jiān)控器511。 在一實施例中INS的數(shù)值表示每一特定指令對應(yīng)微處理器的一指令集架構(gòu) 內(nèi)的的特定運算碼或是運算碼子集。在另一實施例中,此數(shù)值表示這些指令 的種類(例如筒單、復(fù)雜等等)。在又一實施例中,此數(shù)值是對應(yīng)在ISA內(nèi) 一或多個指令的巻標(biāo)。
在另一實施例中,于安全編碼的執(zhí)行之前,當(dāng)安全非易失性存儲器正被 編程時,在安全編碼內(nèi)每一指令的數(shù)值由安全編碼接口邏輯電^各402通過總 線INS來提供。
指令監(jiān)控器511比較INS的數(shù)值與指令數(shù)組512的數(shù)值,以判斷是否允 許執(zhí)行特定指令。假使不允許的話,指令監(jiān)控器511則設(shè)置信號于總線 TAMPER。
樣式監(jiān)控器510,耦接總線DESTRUCT,是偵測本發(fā)明的微處理器的非 安全版本對系統(tǒng)板的安裝,其中,此系統(tǒng)板是配置給本發(fā)明的安全微處理器。
(pinout )。在此兩版本之間相異的特定腳位的狀態(tài)系通過總線PINCHK作為 樣式監(jiān)控器510的輸入信號。樣式監(jiān)控器估計總線PINCHK的狀態(tài),且假使 判斷出此非安全版本被安裝時,則通過總線DESTRUCT來報導(dǎo)此事件給監(jiān) 控管理器513。亦即,總線DESTRUCT提供對應(yīng)微處理器的特定多接腳配 置的多狀態(tài),且樣式監(jiān)控器510則估計上述多狀態(tài)以判斷微處理器是否配置 一安全版本來操作在該安全執(zhí)行模式中。
監(jiān)控管理器513藉由注意與估計通過總線NOBOOT、 TAMPER及 DESTRUCT傳遞的數(shù)據(jù),來動態(tài)地監(jiān)控微處理器的物理與操作環(huán)境。監(jiān)控管理器513對上述數(shù)據(jù)進行分類以指示出與安全應(yīng)用程序的執(zhí)行相關(guān)的安全
層級,且使微處理器內(nèi)的SEM邏輯電路根據(jù)安全層級來執(zhí)行反應(yīng)操作。對 安全應(yīng)用程序的執(zhí)行而言,SEM監(jiān)控邏輯電路500包括異步監(jiān)控、監(jiān)視機 制與監(jiān)控器等系獨立地操作。以下某些情況將導(dǎo)致信號CLASS1的設(shè)置,例 如通過總線TAMPER報導(dǎo)的總線BUS CLK的頻率的短暫誤差。SEM邏輯 電路響應(yīng)于CLASS1的設(shè)置而將此事件紀錄(log)(偵測信號CLASS1的設(shè)置) 至安全易失性存儲器內(nèi)的安全事件紀錄表,且發(fā)出一中斷給安全編碼。假使 此中斷沒有被收到(acknowledged),則監(jiān)控管理器513設(shè)置信號CLASS3。
假使偵測到會導(dǎo)致信號CLASS1設(shè)置的多事件(多于一個事件),例如 BUS CLK的誤差與VDD的誤差,監(jiān)控管理器513則i殳置信號CLASS2。SEM 邏輯電路則試圖清除安全易失性存儲器的數(shù)據(jù)區(qū)域,且試圖將此事件記錄至 安全非易失性存儲器。此外,檢查在BIOS的安全編碼的哈希。假使安全易 失性存儲器的數(shù)據(jù)區(qū)域成功清除且此事件(偵測信號CLASS2的設(shè)置)被紀 錄,且假使BIOS哈希被正確地證明,SEM邏輯電路則開始轉(zhuǎn)換至降級模式 203。此降級模式提供有限的功能、錯誤顯示以及有限的使用者輸入的相關(guān) 指令。這些動作中任一者的錯誤會導(dǎo)致信號CLASS3的設(shè)置。
信號CLASS3的設(shè)置表示有安全侵害。響應(yīng)于信號CLASS3的設(shè)置,SEM 邏輯電路持續(xù)試圖清除安全易失性存儲器且試圖將此事件(偵測信號 CLASS3的設(shè)置)記錄至安全非易失性存儲器,此外,使微處理器進入硬件關(guān) 機模式204,即微處理器停止操作。
在一實施例中,監(jiān)控管理器513判斷樣式監(jiān)控器510是否已設(shè)置信號 DESTRUCT,因此指示出本發(fā)明微處理器的非安全版本的安裝。假使信號 DESTRUCT被設(shè)置,且假使在總線NOBOOT上的數(shù)據(jù)指示出石英器與安全 非易失性存儲器存在時,信號DISABLE則被設(shè)置。響應(yīng)于信號DISABLE 的設(shè)置,SEM邏輯電路使非安全的微處理器停止操作。
以上關(guān)于監(jiān)控管理器513設(shè)置信號CLASS1、 CLASS2、 CLASS3以及 DISABLE皆用來將程控轉(zhuǎn)移至安全應(yīng)用程序內(nèi)多事件管理者之一,例如有 安全侵害時,信號CLASS3被設(shè)置,SEM邏輯電路則持續(xù)嘗試清除安全易 失性存儲器且將此事件記錄至安全非易失性存儲器,持續(xù)嘗試迫使微處理器 進入硬件關(guān)機模式,即微處理器停止操作。關(guān)于監(jiān)控管理器513設(shè)置信號 CLASS1、 CLASS2、 CLASS3以及DISABLE的上述情況僅為范例,是用來教導(dǎo)本發(fā)明的安全環(huán)境管理。此技術(shù)領(lǐng)域中具有通常知識者能理解,安全事 件類別以及適當(dāng)反應(yīng)是受到所需的特定安全環(huán)境所約束,因此,本發(fā)明包含 了上述安全事件類別與適當(dāng)反應(yīng)的其它方法。
現(xiàn)在參閱圖6,狀態(tài)圖600詳細說明本發(fā)明的微處理器的操作模式轉(zhuǎn)換。
狀態(tài)圖600包括原生未受控模式601 (或"非安全"執(zhí)行模式601)、降級模 式605以及硬件關(guān)機模式606,如同圖2中相似命名的組件,相異之處在于, 更詳細說明原生未受控模式601在程控下只可返回至此模式的有限次數(shù)。這 些返回的有限次數(shù)以原生未受控模式(born free mode, BFM)[l :N]來表示。此 外,更詳細地解釋在圖2的安全執(zhí)行模式202,以說明多SEM使能重置模 式[1:N]602、 一 SEM使能正常執(zhí)行模式603以及一 SEM使能安全執(zhí)行模式 604。即是,當(dāng)安全執(zhí)行模式202通過SEMENABLE指令的執(zhí)行(或者其它 使能機制)而被使能時,本發(fā)明的微處理器被重置(即使能重置[1:N])其可 能正在執(zhí)行非安全應(yīng)用程序(使能正常執(zhí)行模式),或者可能正執(zhí)行安全編 碼(使能安全執(zhí)行模式)。
如上所示,本發(fā)明的微處理器被制造為初始開機即進入原生未受控模式 601。且如狀態(tài)圖600所指示,有關(guān)微處理器的安全的不同版本可持續(xù)地被 使用于原生未受控模式中。然而,SEMENABLE指令或使能安全執(zhí)行模式的 交替機制(例如SEMENABLE)的執(zhí)行導(dǎo)致微處理器進入SEM使能重置模 式602,以迫使微處理器重置,其中可以進入SEM使能重置模式602的次 數(shù)為[1:N]次,且上述為第一次進入SEM使能重置模式602。在SEM使能重 置模式602中,在重置序列期間,微處理器執(zhí)行關(guān)于操作在安全環(huán)境的配置 與誠實性檢查,如前述關(guān)于圖5的敘述。根據(jù)在SEM使能重置模式下重置 的成功執(zhí)行(即通過),微處理器轉(zhuǎn)換至SEM使能正常執(zhí)行模式603,以進 行非安全應(yīng)用程序的執(zhí)行。然而,假使偵測到某些已定義狀態(tài),例如前述由 監(jiān)控管理器513對信號CLASS3與DISABLE的設(shè)置,微處理器將轉(zhuǎn)換至降 級模式605 (即由于CLASS2的設(shè)置),或轉(zhuǎn)換至硬件關(guān)機模式606 (即由于 DISABLE的設(shè)置)。從硬件關(guān)機模式606離開,微處理器可被重置以導(dǎo)致其 返回至SEM使能重置模式602中。從降級模式605離開,微處理器通過BIOS 提供受限的指令,允許使用者建立用來在程控下使能微處理器以進入SEM 使能安全執(zhí)行模式604的參數(shù)。
從SEM使能重置模式602離開,在重置序列中的硬件呼尋將迫使微處理器直接進入SEM使能安全執(zhí)行模式604,于其中執(zhí)行安全編碼。此外, 發(fā)生在SEM使能正常執(zhí)行模式603中非安全編碼執(zhí)行期間中或者在 SEMENTER指令的執(zhí)行期間中的安全中斷、或者使微處理器開始執(zhí)行安全 編碼的交替機制,將導(dǎo)致微處理器轉(zhuǎn)換至SEM使能安全執(zhí)行模式604。命 令微處理器開始執(zhí)行安全編碼的指令與交替機制都參照狀態(tài)圖600中的"呼 尋"。同樣地,SEMEXIT指令的執(zhí)行或命令微處理器終止安全編碼執(zhí)行與開 始非安全編碼執(zhí)行的交替機制,參照"返回(RETURN)",此返回導(dǎo)致微處理 器轉(zhuǎn)換為SEM使能正常執(zhí)行模式603。如上所述,安全編碼可導(dǎo)致微處理 器由SEM使能安全執(zhí)行模式604轉(zhuǎn)換為降級模式605。 BIOS內(nèi)的安全編碼 允許微處理器由降級模式605返回至SEM使能安全執(zhí)行模式604。
最后,在SEM使能安全執(zhí)行模式604中執(zhí)行的安全編碼可藉由寫入一 特殊機械專用寄存器,來引發(fā)安全機械檢查例外,其導(dǎo)致微處理器轉(zhuǎn)換回 SEM使能正常執(zhí)行模式603以執(zhí)行非安全編碼。此外,假使在SEM使能正 常執(zhí)行模式603中發(fā)生一安全中斷,微處理器的狀態(tài)自動地改變至SEM使 能安全執(zhí)行模式604。這些執(zhí)行在本發(fā)明微處理器范例中用來導(dǎo)致狀態(tài)圖所 述的狀態(tài)變化的不同的步驟,將通過第7-11圖來詳細說明。
參閱圖7,流程圖700表示本發(fā)明微處理器中使能安全執(zhí)行模式操作的 高階方法。流程圖開始于方塊701,于其中,微處理器處于原生未受控模式 601 。通過SEMENABLE指令的執(zhí)行或使能安全執(zhí)行才莫式的交替機制,例如 寫入至一隱藏機械專用寄存器,傳送一使能參數(shù),其中,此使能參數(shù)已藉由 使用 一對非對稱加密密鑰中的一者并根據(jù)非對稱加密算法來被加密,而一對 非對稱加密密鑰中的另一者已被編程至微處理器中授權(quán)的公開密鑰寄存器 內(nèi)。流程繼續(xù)進4亍至方塊702。
在方塊702中,利用在微處理器內(nèi)的加密單元,解密此使能參數(shù)以擷取 用來使能安全執(zhí)行模式的 一有效指令以及擷取在存儲器內(nèi)加密安全編碼的 指針。在BIOS中指向安全編碼的另一指標(biāo)以及任何加密的初始化數(shù)據(jù)也一 起#皮提供。流程繼續(xù)進行至方塊703。
在方塊703中,加密的安全編碼通過系統(tǒng)總線而被擷取自存儲器/BIOS, 且被解密。此安全編碼與數(shù)據(jù)接著藉由使用一處理器密鑰并根據(jù)一對稱密鑰 算法來被加密,其中,此處理器密鑰對于本發(fā)明的每一處理器而言是獨特的, 且在制造時被編程至一處理器密鑰寄存器。此對稱加密的安全編碼與數(shù)據(jù)接著通過私密總線而^C寫入至一安全非易失性存^f渚器,其中,此私密總線隔離 于系統(tǒng)總線資源。寫入至安全非易失性存儲器的部分程序包括在寫入對稱加 密編碼與數(shù)據(jù)之前,對存儲器執(zhí)行隨機寫入。流程繼續(xù)進行至方塊704。
在方塊704中,微處理器內(nèi)非易失性使能指示寄存器被寫入,以指示出 安全執(zhí)行模式被使能。在一實施例中,非易失性使能指示寄存器包括多字元, 且這些位中的一者被寫入以在安全執(zhí)行模式每次被使能時用來指示出安全 執(zhí)行模式被使能。這些位中另 一者被寫入以指示出返回至原生未受控模式。
因此,根據(jù)本發(fā)明的256位非易失性使能指示寄存器允許了 128次由非安全 執(zhí)行模式至安全執(zhí)行模式的轉(zhuǎn)換。流程繼續(xù)進行至方塊705。
在方塊705中,重置微處理器,即完成本發(fā)明微處理器中使能安全執(zhí)行 模式操作的方法。
圖8的流程圖800強調(diào)用來在本發(fā)明的微處理器中禁能安全執(zhí)行模式操 作的高階方法。即是,流程圖800敘述操作在安全執(zhí)行模式的安全編碼如何 命令微處理器返回至原生未受控模式。流程開始于方塊801,于其中,正于 安全執(zhí)行模式執(zhí)行安全編碼。流程繼續(xù)進行至方塊802。
在方塊802中,安全編碼于安全執(zhí)行模式執(zhí)行至非安全執(zhí)行模式的返回 (return),亦即執(zhí)行安全執(zhí)行模式禁能指令。在一實施例中,當(dāng)安全編碼執(zhí)行 對一 SEM機械專用寄存器的寫入時,開始實施至非安全執(zhí)行模式的返回(返 回至一非安全執(zhí)行才莫式),其導(dǎo)致一安全例外(secure exception)。程控^妄著轉(zhuǎn) 移至在于安全編碼內(nèi)一地址上的安全例外管理者,其中,此地址由前述安全 中斷描述符號窗體的內(nèi)容來提供。在一實施例中,安全例外管理者對一機械 專用寄存器執(zhí)行寫入,以指示接受此返回。假使,此機械專用寄存器沒有被 正確地寫入,此返回被忽略,且微處理器維持在安全執(zhí)行模式。假使交握被 確i/v,則流程繼續(xù)進行至方塊803。
在判斷方塊803中,評估非易失性使能指示寄存器的內(nèi)容,以判斷是否 禁能安全執(zhí)行模式(支持返回至非安全執(zhí)行模式)。假使沒有被禁能(支持返回 至非安全執(zhí)行模式),流程繼續(xù)進行至方塊806。假使于此非易失性使能指示 寄存器的多字元允許至非安全執(zhí)行模式的返回,流程則繼續(xù)進行至方塊804。
在方塊806中,維持安全執(zhí)行模式,且控制權(quán)返回至安全編碼。
在方塊804中,更新非易失性使能指示寄存器,以指示此微處理器正操 作在非安全執(zhí)行模式。流程繼續(xù)進行至方塊805。在方塊805中,;敞處理器的狀態(tài)返回至原生未受控模式,即完成本發(fā)明 的微處理器中禁能安全執(zhí)行模式操作的方法。
圖9表示流程圖900,其詳細說明本發(fā)明微處理器內(nèi)初始化安全編碼執(zhí) 行的方法。即是,流程圖900的方法包括圖7的流程圖700的更詳細說明。 流程開始于方塊901,于其中,本發(fā)明的微處理器正于原生未受控模式中執(zhí) 行非安全應(yīng)用程序。流程繼續(xù)進行至方塊902。
在方塊902中,在非安全執(zhí)行模式的一操作系統(tǒng)執(zhí)行SEMENABLE指 令或交替的機制(例如寫入至一機械專用寄存器),其傳送一個或多個使能 參數(shù),其中,此一個或多個使能參數(shù)是根據(jù)屬于授權(quán)者的私密密鑰來被非對 稱地加密。此一個或多個使能參數(shù)包括用來指向被執(zhí)行的非對稱加密安全編 碼的指針,此指針可儲存在系統(tǒng)存儲器以及/或BIOS存儲器。流程繼續(xù)進行 至方塊903。
在方塊903中,微處理器使用一對應(yīng)的授權(quán)的公開密鑰來對傳送的一個 或多個使能參數(shù)進行解密。在一實施例中,于微處理器的制造期間,此授權(quán) 的公開密鑰被編程至一非易失性授權(quán)的公開密鑰寄存器。在另一交替的實施 例中,此授權(quán)的公開密鑰被編程至本發(fā)明的安全非易失性存儲器內(nèi)的一位 置,且根據(jù)微處理器的初始開機,此授權(quán)的公開密鑰自此安全非易失性存儲 器被擷取,且此授權(quán)的公開密鑰被編程至非易失性授權(quán)的公開密鑰寄存器, 接著,在安全非易失性存儲器內(nèi)的此位置被清除。流程繼續(xù)進行至方塊904。
在方塊904中,判斷解密的使能參數(shù)是否有效。假使有效,流程繼續(xù)進 行至方塊905?!㎏吏無效,流程則繼續(xù)進4于至方塊907。
在方塊905中,由于已判斷出此使能參數(shù)是有效的,則執(zhí)行多隨機寫入 于安全非易失性存儲器的所有位置以清除安全非易失性存儲器的內(nèi)容。流程 則繼續(xù)進行至方塊906。
在判斷方塊906中,加密的安全編碼自系統(tǒng)存儲器/以及或BIOS存儲器 被擷取。接著,使用授權(quán)的公開密鑰并根據(jù)非對稱密鑰算法來對此加密的安 全編碼進行解密。在一實施例中,在微處理器中執(zhí)行邏輯電路內(nèi)的一加密單 元用來解密此加密的安全編碼。在一實施例中,此加密單元能執(zhí)行AES加 密操作、SHA-1哈希操作以及RSA加密操作。解密后的安全編碼接著被解 壓縮,且被檢查格式是否正確。假使解密后的安全編碼格式正確,流程繼續(xù) 進行至方塊908。假使解密后的安全編碼格式不正確,流程則繼續(xù)進行至方塊卯7。
在方塊907中,由于解密后的使能參數(shù)是無效的,程控則返回至非安全 執(zhí)行模式。
在方塊908中,解密的安全編碼(以及對應(yīng)的初始數(shù)據(jù),若有的話)藉 由使用處理器密鑰并根據(jù)對稱密鑰算法來加密,其中,此處理器密鑰是此微 處理器所獨有的,且在制造時編程至一非易失性處理器密鑰暫存器內(nèi)。在一 實施例中,此對稱密鑰為128位的AES密鑰,且此微處理器利用其加密單 元來對安全編碼執(zhí)行AES加密。流程繼續(xù)進行至方塊909。
在方塊909中,此微處理器建立加密安全編碼中一個或多個段落的一個 或多個哈希。在一實施例中,微處理器內(nèi)的加密單元用來建立加密編碼的一 個或多個SHA-1哈希。流程繼續(xù)進行至方塊910。
在方塊910中,微處理器通過私密總線將加密的安全編碼(以及數(shù)據(jù), 若有的話)以及此一個或多個哈希寫入至安全非易失性存儲器,其中,此私 密總線隔離于系統(tǒng)總線資源。此安全編碼與數(shù)據(jù)-故加密,因此阻止了安全編 碼內(nèi)容的偵測。流程繼續(xù)進行至方塊911。
在步驟911中,設(shè)定非易失性使能指示寄存器以指示安全執(zhí)行模式被使 能。流程繼續(xù)進行至方塊912。
在方塊912中,于微處理器內(nèi)執(zhí)行安全執(zhí)行模式使能重置序列(reset sequence)。此重置序列包括硬件檢查(如同圖5中相關(guān)的討論)以及初始化 安全易失性存儲器為多隨機數(shù),即完成本發(fā)明的微處理器內(nèi)初始化安全編碼 4丸4亍的方法。
接著參閱圖10,流程圖IOOO表示本發(fā)明微處理器中執(zhí)行安全執(zhí)行模式 使能重置操作的方法,其中,此微處理器已使能安全執(zhí)行模式的操作。流程 開始于方塊IOOI,其中,當(dāng)微處理器完成安全執(zhí)行模式的初始化時,微處理 器執(zhí)行安全執(zhí)行模式使能重置串行。流程繼續(xù)進行至方塊1002。
在方塊1002中,微處理器執(zhí)行多處理器誠實性檢查,包括安全非易失 性存儲器、電池與石英器的偵測與確認。此外,核對總線時鐘的存在與頻率 誠實性,并確認提供給總線終端與微處理器供應(yīng)電源的適當(dāng)電壓。微處理器 的溫度確認處于一可接受的范圍內(nèi)。流程繼續(xù)進行至方塊1003。
在方塊1003中,微處理器執(zhí)行非易失性存儲器連結(jié)(connectivity)與哈希 檢查。自安全非易失性存儲體內(nèi)一位置讀取安全簽章,并對此安全簽章進行解密。解密后的簽章被核對以證實非易失性存儲器沒有被泄漏。此外,微處 理器亦讀取安全非易失性存儲器的特定位置與對應(yīng)的哈希。通過加密(即
AES/HASH/RSA)單元,產(chǎn)生被選擇位置的確認哈希,且與被讀取的哈希進 行比較。流程繼續(xù)進行至方塊1004。
在方塊1004中,;微處理器^l行安全實時時鐘的確^人。在一實施例中, 安全執(zhí)行模式實時時鐘估計石英器的狀態(tài),以偵測在頻率上大于百分的五的 改變,因此表示出石英器與在電池電壓上大于百分的五的改變,且表示出潛 在的安全威脅征兆。假使上述確認檢查的任一者產(chǎn)生不利的結(jié)果,根據(jù)偵測 到事件的嚴重性與次數(shù),安全執(zhí)行模式使能重置串行將使此事件被記錄下 來,或者迫使微處理器進入降級模式,或硬件關(guān)機模式。流程繼續(xù)進行至方 塊1005。
在方塊1005中,自非易失性存儲器(系統(tǒng)存儲器以及/或BIOS存儲器) 擷取加密的安全編碼以及數(shù)據(jù)。流程繼續(xù)進行至方塊1006。
在方塊1006中,澤碼與解壓縮加密的安全編碼,且確^4各式正確后, 安全編碼接著被加載至微處理器內(nèi)的安全易失性存儲器。流程繼續(xù)進行至方 塊1007。
在方塊1007中,初始化微處理器內(nèi)的安全資源。這些安全資源無法被 非安全編碼所得知或存取,且只對于在安全執(zhí)行模式中執(zhí)行的安全編碼而言 是可利用的。這些資源包括安全定時器、安全中斷以及安全例外,且包括安
而必須被初始化的其它寄存器。初始化包括非安全中斷、非安全例外、非安 全追蹤以及除錯邏輯電路的禁能,也包括微處理器的任何電源管理邏輯電路 的禁能,其中包括導(dǎo)致核心電壓、核心時鐘頻率的變化或者使能或禁能其它 組件(例如高速緩存、分支預(yù)測單元等等)的任何組件。流程繼續(xù)進行至方 塊1008。
在方塊1008中,初始化微處理器內(nèi)的非安全的高速緩存(即Ll高速緩 存、L2高速緩存)為亂lt。流程繼續(xù)進行至方塊1009。
在方塊1009中,產(chǎn)生一安全執(zhí)行模式中斷,且根據(jù)存在于安全中斷描 述符表內(nèi)的數(shù)據(jù)來呼尋(call)安全執(zhí)行模式重置功能,其中,此安全中斷描述 符白在方塊1007中被初始化,即完成本發(fā)明微處理器中執(zhí)行安全執(zhí)行模式 使能重置操作的方法。接著參閱圖11,流程圖1100表示本發(fā)明微處理器中終止安全執(zhí)行模式 操作的方法。此方法開始于方塊1101,于其中,安全編碼正執(zhí)行于安全執(zhí)行 模式。概括上,根據(jù)本發(fā)明,具有三種方法使微處理器由非安全執(zhí)行模式轉(zhuǎn) 換為安全執(zhí)行模式,并開始安全編碼的執(zhí)行。第一種方法允許程控轉(zhuǎn)移為安
全編碼的執(zhí)行。即是,在安全執(zhí)行才莫式下的非安全應(yīng)用程序如同SEMENTER 指令般執(zhí)行。在一實施例中,SEMENTER指令導(dǎo)致微處理器的狀態(tài)被儲存 在安全易失性存儲器內(nèi)的堆棧,且程控轉(zhuǎn)移至安全編碼,非常類似x86 SYSENTER指令的操作。第二種方法是,當(dāng)執(zhí)行非安全或安全重置序列時, 導(dǎo)致安全編碼的執(zhí)行是由于一中斷或例外所致。導(dǎo)致安全編碼執(zhí)行的最后一 個方法,是起因于來自任何數(shù)量的安全監(jiān)控邏輯組件的中斷,就像關(guān)于圖5 的討論。
如上所述,執(zhí)行在安全執(zhí)行模式的安全編碼,永久地存在于安全非易失 性存儲器,但是在一安全執(zhí)行模式使能重置串行的期間,其已被加載至安全 易失性存儲器。即是,此安全編碼不再自非安全存儲器中執(zhí)行,例如系統(tǒng)存 儲器或非安全的處理器高速緩存。因此,藉由兩種方法,執(zhí)行控制由安全執(zhí) 行模式轉(zhuǎn)換回非安全執(zhí)行模式。第一種方法包括執(zhí)行SRESUME指令,其引 起來自SEMENTER指令的響應(yīng)(return)。在x^實施例中,此SRESUME指 令以與x86 RESUME相似的方法來操作。即是,預(yù)先儲存在安全易失性存 儲器中的程序狀態(tài)被恢復(fù)(restored),且程控轉(zhuǎn)移至操作系統(tǒng)或非安全編碼。 第二種方法是考慮強迫一安全例外,其中,藉由對只可由安全編碼來存取的 一機械專用寄存器執(zhí)行寫入,微處理器的安全組件可存取此安全例外。假使 確認微處理器將返回至非安全執(zhí)行模式,接著產(chǎn)生被操作系統(tǒng)指明且處理的 一非安全機械檢查例外,因此影響至非安全執(zhí)行模式的返回。圖11的流程 圖1100提出強迫此安全例外以返回至非安全執(zhí)行模式,而此技術(shù)領(lǐng)域中具 有通常知識者將理解,SRESUME指令的執(zhí)行導(dǎo)致微處理器去執(zhí)行下文所述 的相似步驟。
因此,流程持續(xù)于方塊1102,于其中,將安全編碼寫入至安全執(zhí)行模式 機械專用寄存器(SEM MSR)。 SEM MSR即是,只可被執(zhí)行在安全執(zhí)行才莫 式下的安全編碼所存取且得知的多機械專用寄存器中的 一者。流程繼續(xù)進行 至方塊1103。
在方塊1103中,寫入至安全執(zhí)行模式機械專用寄存器產(chǎn)生了由SEM邏輯電路內(nèi)安全例外邏輯電路所處理的安全例外。流程繼續(xù)進行至方塊1104。在方塊1104中,安全例外邏輯電路(例如安全中斷描述符號窗體)導(dǎo)致程控分支至安全編碼內(nèi)的安全例外管理者。流程繼續(xù)進行至方塊1105。
在方塊1105中,安全例外管理者響應(yīng)一4受4又的例外編碼。此安全例外
管理者執(zhí)行至安全編碼的返回,藉以將一授權(quán)的例外編碼傳送回安全編碼。
流程繼續(xù)進行至方塊1106。
在方塊1106中,判斷由安全例外管理者所響應(yīng)的例外編碼是否正確。假使此例外編碼不正確,則假設(shè)有一安全風(fēng)險,且流程繼續(xù)進行至方塊1112。假使此例外編碼正確,則安全編碼與安全例外管理者之間的交握則被確認以指示返回至非安全執(zhí)行模式,且流程繼續(xù)進行至方塊1107。
在方塊1112中,維持安全執(zhí)行模式,且控制權(quán)返回至安全編碼。
在方塊1107中,微處理器執(zhí)行多隨機寫入于安全非易失性存儲器的所有位置以清除安全非易失性存儲器的內(nèi)容。安全應(yīng)用程序利用微處理器內(nèi)的一隨機數(shù)產(chǎn)生器來產(chǎn)生隨機數(shù)數(shù)據(jù)且對安全非易失性存儲器內(nèi)的所有位置執(zhí)行隨機寫入。流程繼續(xù)進行至方塊1108。
在方塊1108中,微處理器藉由將"0"寫入至安全非易失性存儲器的每一位置,來清除安全非易失性存儲器的每一位置。流程繼續(xù)進行至方塊1109。
在方塊1109中,設(shè)定非易失性使能指示寄存器以指示安全執(zhí)行模式被禁能,亦即,微處理器正操作在一非安全執(zhí)行模式中。其受限于安全執(zhí)行模式可一皮禁能的次數(shù),如同前文關(guān)于圖8的說明。流程繼續(xù)進行至方塊1110。
在方塊1110中,安全例外邏輯電路產(chǎn)生一機械檢查例外,此外回應(yīng)一狀態(tài)參數(shù)(亦即例外編碼指示狀態(tài))來將程控轉(zhuǎn)移至非安全應(yīng)用程序中之一。因此,在非安全執(zhí)行模式下的操作系統(tǒng)處理此機械檢查例外,且完成返回至非安全執(zhí)行模式。流程繼續(xù)進行至方塊1111。
在方塊1111中,即完成本發(fā)明微處理器中終止安全執(zhí)行模式操作的方法。
圖12表示一安全實時時鐘1200的詳細方塊圖,其位于本發(fā)明的微處理中的SEM邏輯電路內(nèi)。安全實時時鐘1200只可由正操作在安全執(zhí)行模式下的安全編碼來得知且存取。安全實時時鐘包括振蕩器1201,其通過信號VP耦接電池且通過信號Cl及C2來耦接石英器。此振蕩器產(chǎn)生振蕩輸出電壓信號VO,且信號VO耦接計數(shù)器1202。此計數(shù)器產(chǎn)生輸出信號CNTO,且輸出信號CNTO被路由至轉(zhuǎn)換邏輯電路1203。信號VP、 Cl、及C2也輸入至轉(zhuǎn)換邏輯電路1203,此外,信號ENV同樣輸入至轉(zhuǎn)換邏輯電路,其中,信號ENV載有對應(yīng)管芯溫度的數(shù)值。轉(zhuǎn)換邏輯電路1203產(chǎn)生通過信號TEMP、 BATT、 COMP、 X丁AL以及雙向總線TIME來提供的多輸出。此微處理器通過雙向總線TIME提供輸入至此安全實時時鐘。
振蕩器1201與計數(shù)器1202是專用的,即是除了被提供來允許微處理器通過雙向總線TIME對安全實時時鐘進行讀取和寫入的組件以外,他們無法共享其它電路系統(tǒng)或微處理器的其它組件。此外,只要電池通過信號VP提供可接受的電壓時,安全實時時鐘持續(xù)其計數(shù)。在一交替的實施例中,電池電壓信號VP是由系統(tǒng)板上的電容器所產(chǎn)生,以代替只要系統(tǒng)板開機而持續(xù)凈皮充電的電〖也。
在操作上,振蕩器1201產(chǎn)生振蕩輸出電壓信號VO,其與石英器的頻率成比例,且此振蕩輸出電壓被提供至計數(shù)器1202。計數(shù)器1202包括多組件,用來計算通過信號VO所提供的周期數(shù),并將此周期數(shù)轉(zhuǎn)換為一計數(shù)數(shù)值。此計數(shù)數(shù)值被提供至信號CNTO上。轉(zhuǎn)換邏輯電路1203包括多電路,用將CNTO的數(shù)值轉(zhuǎn)換為持續(xù)時間數(shù)值,此外,轉(zhuǎn)換邏輯電路1203也包括多寄存器(未顯示),其可通過雙向總線TIME而被微處理器來讀取與寫入。
此外,轉(zhuǎn)換邏輯電路1203用來偵測電壓信號VP的顯著變化,指示出潛在的篡改,且此一事件由信號BATT的設(shè)置來表示,其中,信號BATT的設(shè)置系用來中斷正執(zhí)行的安全編碼。在一實施例中,大于百分的五的變化導(dǎo)致BATT中斷被設(shè)置。
轉(zhuǎn)換邏輯電路1203也用來通過信號Cl與C2來偵測石英器頻率的顯著變化,因此指示潛在的篡改,且此一事件藉由信號XTAL的設(shè)置來表示。信號XTAL的設(shè)置系用來中斷正執(zhí)行的安全編碼。在一實施例中,大于百分的五的變化導(dǎo)致XTAL中斷被設(shè)置。
信號ENV系由轉(zhuǎn)換邏輯電路1203來估計,以判斷因溫度偏離而使計數(shù)器1202產(chǎn)生不精準(zhǔn)的計數(shù)。假使判斷出溫度偏離,信號TEMP則被設(shè)置,其用來中斷正執(zhí)行的安全編碼。
轉(zhuǎn)換邏輯電路1203也用來估計上述情況中任一者是否足夠顯著,以指示安全實時時鐘已被泄漏,例如電池的移動與取代。假使被判斷出,信號COMP也被設(shè)置,因此中斷安全編碼的執(zhí)行。本發(fā)明提供一些高于現(xiàn)今技術(shù)的優(yōu)點以在安全環(huán)境中執(zhí)行應(yīng)用程序。例如,根據(jù)本發(fā)明的設(shè)計是以微處理器為基礎(chǔ)。即是,本發(fā)明的一目的是修改負責(zé)安全編碼的微處理器,這是因為,相對于著重在修改芯片組或其它組件的其它技術(shù),只有微處理器可提供及時執(zhí)行安全。使用隔離芯片來監(jiān)控微處理器的方法有許多的內(nèi)在安全性缺陷,且對于安全相關(guān)的執(zhí)行而言效能也明顯地降低。
根據(jù)本發(fā)明中以x86為基礎(chǔ)的實施例,由于x86程序化技術(shù)的普遍性,安全編碼的發(fā)展相當(dāng)?shù)仄揭?。x86架構(gòu)已被得知,且對于精通非安全x86應(yīng)用發(fā)展的任何程序設(shè)計者而言,機械專用指令的附加與專用指令(例如SEMENABLE、 SEMENTER、及SRESUME指令)僅提供較少的學(xué)習(xí)挑戰(zhàn)。
此外,對于微處理器的附加安全執(zhí)行能力的成本遠小于額外芯片組被加至系統(tǒng)設(shè)計所呈現(xiàn)的成本。
此外,由于安全執(zhí)行環(huán)境被提供至微處理器本身之內(nèi),因此內(nèi)在地對抗那些物理或從屬通道攻擊,其不需要附加外部電路。
此處所揭露的技術(shù)非常有利地提供安全的微處理器操作環(huán)境,在此環(huán)境中,會被泄漏的一般機密(例如一般加密密鑰或程序架構(gòu))不會儲存于其中。即是,本發(fā)明的每一處理器只具有需要被特定處理器或系統(tǒng)授權(quán)、控制等等的機密。來自一處理器/系統(tǒng)的機密不會破壞在另一處理器/系統(tǒng)的安全性。此外,得知如何破壞在一處理器的安全性,應(yīng)當(dāng)不會使其更容易地去破壞其它處理器上的安全性。即是,這是由于獨特的處理器密鑰,此獨特的處理器密鑰是由在安全非易失性存儲器總線上的數(shù)據(jù)傳輸所提供且導(dǎo)致的,其中,這些數(shù)據(jù)傳輸系使用此密鑰來加密。
與4是供對抗4谷稱拒絕服務(wù)攻擊(denial-of-service attack)的保護的習(xí)知技術(shù)比較起來,根據(jù)本發(fā)明的微處理器具有更多的優(yōu)點。例如,如圖5所討論,提供安全監(jiān)控組件以偵測并取得在事件上的活動,例如持續(xù)對安全執(zhí)行環(huán)境的呼尋(例如來自惡意裝置驅(qū)動器),實時時鐘電池、石英器的持續(xù)移除等等。
本發(fā)明雖以較佳實施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動與潤飾,因此本發(fā)明的保護范圍當(dāng)視后附的權(quán)利要求書所界定者為準(zhǔn)。
權(quán)利要求
1. 一種微處理器裝置,用以在一安全執(zhí)行環(huán)境中執(zhí)行安全編碼,該微處理器裝置包括一安全非易失性存儲器,耦接一私密總線,用以儲存一安全應(yīng)用程序;以及一微處理器,耦接該私密總線,用以執(zhí)行多個非安全應(yīng)用程序與該安全應(yīng)用程序,其中,所述非安全應(yīng)用程序通過一系統(tǒng)總線而存取自一系統(tǒng)存儲器,該安全應(yīng)用程序存取自該安全非易失性存儲器,且在該私密總線上的多個數(shù)據(jù)傳輸隔離于該系統(tǒng)總線與該微處理器內(nèi)對應(yīng)的多個系統(tǒng)總線資源,該微處理器包括一非安全存儲器,用以儲存所述非安全應(yīng)用程序以由該微處理器來執(zhí)行,該非安全存儲器可由所述非安全應(yīng)用程序以及該微處理器內(nèi)的所述系統(tǒng)總線資源所得知且存??;以及一安全易失性存儲器,用以儲存該安全應(yīng)用程序以由該微處理器來執(zhí)行,該安全易失性存儲器隔離于所述非安全應(yīng)用程序與該微處理器內(nèi)所述系統(tǒng)總線資源。
2. 如權(quán)利要求1所述的微處理器裝置,其中,該安全易失性存儲器為該 安全應(yīng)用程序的 一指令與數(shù)據(jù)高速緩存。
3. 如權(quán)利要求1所述的微處理器裝置,其中,該安全易失性存儲器包括
4. 如權(quán)利要求1所述的微處理器裝置,其中,該安全應(yīng)用程序存取該安 全易失性存儲器,以藉由利用多個加載與儲存指令來讀取與寫入安全數(shù)據(jù), 所述加載與儲存指令是參考在一地址邏輯電路內(nèi)的多個片段寄存器,所述片 段寄存器是當(dāng)于該安全易失性存儲器進入至安全執(zhí)行時而被初始化。
5. 如權(quán)利要求1所述的微處理器裝置,更包括一安全執(zhí)行模式邏輯電路, 耦接該安全易失性存儲器與該微處理器中一地址邏輯電路,其中,當(dāng)該微處 理器正執(zhí)行該安全應(yīng)用程序時,該安全執(zhí)行模式邏輯電路用以禁能該地址邏 輯電路執(zhí)行虛擬地址轉(zhuǎn)譯。
6. 如權(quán)利要求5所述的微處理器裝置,其中,根據(jù)該微處理器執(zhí)行一安 全執(zhí)行模式使能重置序列,該安全執(zhí)行模式邏輯電路將該安全易失性存儲器初始化為多個隨才幾數(shù)。
7. —種在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,包括 提供一安全非易失性存儲器用以儲存一安全編碼; 通過多個私密數(shù)據(jù)傳輸來將該安全編碼儲存在該安全非易失性存儲器中,其中,所述私密數(shù)據(jù)傳輸是在耦接于該安全非易失性存儲器的一私密總 線上執(zhí)行;以及通過該私密總線自該安全非易失性存儲器擷取該安全編碼,以由一微處 理器來執(zhí)行,且將該安全編碼儲存于一安全易失性存儲器,其中,該安全易 失性存儲器隔離于 一 非安全編碼與該微處理器內(nèi)多個系統(tǒng)總線資源;該私密總線隔離于該微處理器中所有的所述系統(tǒng)總線資源且位于該微 處理器的外部,且該私密總線只可由該微處理器內(nèi) 一安全執(zhí)行邏輯電路來得 知且存取。
8. 如權(quán)利要求7所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中, 將該安全編碼儲存于該安全易失性存儲器的步驟包括使用該安全易失性存 儲器以作為 一指令與數(shù)據(jù)高速緩存。
9. 如權(quán)利要求7所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中, 該安全易失性存儲器包括一堆棧,用于對應(yīng)所述非安全編碼的該微處理器的 狀態(tài)的儲存與取回。
10. 如權(quán)利要求7所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中, 該安全編碼存取該安全易失性存儲器,以藉由利用多個加載與儲存指令來讀 取與寫入安全數(shù)據(jù),所述加載與儲存指令是參考在一地址邏輯電路內(nèi)的多個 片段寄存器,所述片段寄存器是當(dāng)于該安全易失性存儲器進入至安全執(zhí)行時 而被j刀始4匕。
11. 如權(quán)利要求7所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,更包括 當(dāng)該微處理器正執(zhí)行該安全編碼時,通過耦接該安全易失性存儲器與耦接該 微處理器中一地址邏輯電路的一安全執(zhí)行模式邏輯電路,來禁能該地址邏輯 電聘4丸行虛擬地址轉(zhuǎn)i,。
12. 如權(quán)利要求11所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中, 根據(jù)該微處理器執(zhí)行一安全執(zhí)行模式使能重置序列,將該安全易失性存儲器 初始化為多個隨機數(shù)。
全文摘要
一種提供安全執(zhí)行環(huán)境的微處理器裝置。此裝置包括微處理器。微處理器用來執(zhí)行多個非安全應(yīng)用程序與一安全應(yīng)用程序,其中,這些非安全應(yīng)用程序通過系統(tǒng)總線而存取自系統(tǒng)存儲器。微處理器包括非安全存儲器以及安全易失性存儲器。非安全存儲器用以儲存多個非安全應(yīng)用程序以由微處理器來執(zhí)行。非安全存儲器可由非安全應(yīng)用程序以及微處理器內(nèi)的多個系統(tǒng)總線資源所得知且存取。安全易失性存儲器用以儲存安全應(yīng)用程序以由微處理器來執(zhí)行。安全易失性存儲器隔離于非安全應(yīng)用程序與微處理器內(nèi)的系統(tǒng)總線資源。
文檔編號G06F21/02GK101533450SQ20091013775
公開日2009年9月16日 申請日期2009年4月29日 優(yōu)先權(quán)日2008年5月24日
發(fā)明者G·葛蘭·亨利, 泰瑞·派克斯 申請人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1