專利名稱:提供安全執(zhí)行環(huán)境的裝置及其執(zhí)行安全編碼的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微電子領(lǐng)域,特別是涉及ー種微處理器,其提供一安全執(zhí)行模式的操作,其允許在微處理器內(nèi)的安全環(huán)境中執(zhí)行運(yùn)算碼。
背景技術(shù):
桌上型計算機(jī)、筆記型計算機(jī)、以及手持式計算機(jī)與通信裝置可作為機(jī)密或?qū)S脭?shù)據(jù)與數(shù)字權(quán)利控制內(nèi)容的數(shù)字通信平臺,計算機(jī)產(chǎn)業(yè)對于這些裝置的使用持續(xù)地發(fā)展新的安全制度。舉例來說,有許多已建立的應(yīng)用,用以在因特網(wǎng)上免費(fèi)下載與管理數(shù)字聲音與 影音檔案。通過這些應(yīng)用,使用者被提供在歌曲、電視節(jié)目以及電影上的有限的權(quán)利。特別注意的是,以上通過使用建立在這些應(yīng)用中的安全特性來保護(hù)這些權(quán)利,而這些安全特性通常依據(jù)其主機(jī)平臺所提供的安全機(jī)制。除了數(shù)字內(nèi)容權(quán)利的保護(hù),持續(xù)驅(qū)動計算機(jī)系統(tǒng)安全性的另一因素是實施在主機(jī)平臺本身的使用限制。目前已知,手機(jī)產(chǎn)業(yè)已提供特定通信裝置中所謂的“隨用隨付(Pay-as-you-go) ”使用。藉由使用此方案,使用者不需給付月費(fèi),但是需預(yù)先給付某通話分鐘數(shù)的金額。當(dāng)用盡通話分鐘數(shù)時,除了緊急通話以外,使用者被拒絕存取任何關(guān)于通話的手機(jī)網(wǎng)絡(luò)存取。早在2006年,MICROSOFT公司與其合作公司已提供主要指向新興計算機(jī)市場的“隨用隨付”個人計算機(jī)。在此體制下,通過預(yù)付卡的購得,當(dāng)使用這些公司的計算機(jī)時使用者則給付費(fèi)用。此外,歸屬于MICROSOFT公司的美國專利申請案公開編號20060282899,公開ー種用于模塊化操作系統(tǒng)的傳遞的系統(tǒng)與方法,其包括提供主要操作系統(tǒng)支持的核心功能模塊或基礎(chǔ)核心,且包括一或多個允許客制化的操作系統(tǒng)定做的附屬模塊。在此應(yīng)用中,附屬模塊可提供對于計算機(jī)(其包括硬件、應(yīng)用軟件、接ロ設(shè)備、以及支持設(shè)備)的支持或延伸能力。在設(shè)置之前,數(shù)字簽章可使用來確定附屬模塊的完整性,且核對證明(certification)以判斷附加模塊的設(shè)置是否經(jīng)過授權(quán)。藉由此證明,服務(wù)提供者可管理對提供的計算機(jī)上的非法或非期望修改。此外,數(shù)字權(quán)利管理可用來執(zhí)行與許可配置相配的附屬模塊的使用項目。并不意外地,目前已發(fā)展出技術(shù)方法的真正主機(jī),其提供規(guī)避安全措施,而這些安全措施是適當(dāng)?shù)乇Wo(hù)且控制對權(quán)利控制數(shù)字媒體、通信裝置、以及計算機(jī)平臺的存取。最近,“hacking(進(jìn)行非法入侵,即黑客)”變成研究上的課題。事實上,本案發(fā)明人已注意到許多用來篡改或完全地使安全管理無效的作品公開,而這些安全管理用來防護(hù)受保護(hù)資產(chǎn)的存取及/或使用。由 Andrew Huang, San Francisco No Starch Press, 2003 所提出的著作 Hacking the Xbox An Introduction to Reverse Engineering 則是上述作品的一種。此著作特別著重于教導(dǎo)非法入侵技術(shù)以克服MICROSOFT所出產(chǎn)的XBOX游戲平臺的安全機(jī)制,且更提供計算機(jī)安全與反向工程的教導(dǎo)主題,并討論所謂“安全的”計算機(jī)平臺的弱點。因此,平臺建置者與設(shè)計者持續(xù)從事在避免未被授權(quán)的平臺處理上更有效的技術(shù)與機(jī)制,不論此存取是良性的(例如探測或窺察)、惡意的(例如破壞性的或違背權(quán)利的入侵)、或是介于兩者之間(例如篡改)。這些機(jī)制中許多者用來防止入侵者實際上存取平臺,例如將平臺放置在安全底座上(例如一上鎖的金屬圍場)或者將有弱點的電路封裝入環(huán)氧化物內(nèi)。但是已知這些類型的技術(shù)增加了系統(tǒng)成本與復(fù)雜性。其它機(jī)制則利用特定計算機(jī)架構(gòu)本身提供的安全特性??紤]已知x86架構(gòu)所提供的兩個主要安全特性分頁虛擬存儲器(paged virtualmemory)以及特許執(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)于主機(jī)微處理器外的系統(tǒng)總線上,因此此數(shù)據(jù)可輕易地被窺察且被改變。
在特許執(zhí)行的情況下,x86結(jié)構(gòu)提供數(shù)種階級的執(zhí)行特權(quán)CPLO至CPL3。因此,某些系統(tǒng)資源與指令只可由正在較高特權(quán)階級上執(zhí)行的應(yīng)用程序來存取。一般得知操作系統(tǒng)組件操作在最高特權(quán)階級CPL0,以及使用者應(yīng)用歸類于最低特權(quán)階級CPL3。但是,熟知此技術(shù)領(lǐng)域的人士將查知,這些架構(gòu)特征主要是發(fā)展來阻止軟件錯誤所導(dǎo)致的系統(tǒng)當(dāng)機(jī),且在防止有意或經(jīng)指導(dǎo)的侵入(directed hacks)而言不是非常有效。因此已發(fā)展多種方法與裝置,其更仔細(xì)地集中防止對平臺的有意侵入與接管。在美國專利編號5615263中,Takahashi教導(dǎo)一種在雙模(dual mode)處理器中的安全模式。在一般/外部模式中,此雙模處理器執(zhí)行由外部來源所提供的指令。這些指令通過雙模處理器的輸入/輸出來提供給雙模處理器。當(dāng)接收到專用軟件或硬件發(fā)出的中斷吋,此雙模處理器進(jìn)入安全/內(nèi)部模式。此中斷是指儲存在雙模處理器中只讀存儲器內(nèi)的安全功能。根據(jù)此接收的中斷,雙模處理器的輸入/輸出被禁能。此已確認(rèn)的安全功能由雙模處理器來執(zhí)行。在此安全功能的執(zhí)行期間,欲插置非來自只讀存儲器的指令的任何企圖皆被忽略。然而,雙模處理器可存取由正在執(zhí)行的安全功能所持別確認(rèn)的數(shù)據(jù)。當(dāng)安全功能執(zhí)行完成,則執(zhí)行一退出程序,以使能雙模處理器的輸入/輸出,并通過輸入/輸出重新開始執(zhí)行由雙模處理器的外部來源所提供的指令。Takahashi教導(dǎo)此安全模式是用作加密與解密,且其中雙模處理器處理通過總線且由外部控制信道(external 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ù)量的功能(即指令)。這些功能儲存在一個只讀存儲器中(R0M),其位于雙模處理器的內(nèi)部。本案的發(fā)明人注意到,Takahashi的雙模處理器并不適當(dāng),因為Takahashi的雙模處理器只能執(zhí)行內(nèi)部ROM所提供的有限數(shù)量的功能。因此,包括一般目的指令的應(yīng)用程序(即在微處理器的指令集中任何的指令)則無法在安全模式下執(zhí)行。在美國專利編號7013484中,Ellison揭露ー種建立安全環(huán)境的芯片組,用于ー隔離的儲存器所執(zhí)行的隔離執(zhí)行模式,此儲存器被至少ー處理器來存取。在正常執(zhí)行模式或此隔離執(zhí)行模式下,此至少ー處理器具有多線程與操作。Ellison的安全環(huán)境依據(jù)一外部芯片組(被隔離的執(zhí)行電路),其提供機(jī)制給ー處理器以在隔離執(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的機(jī)制,此ー裝置明確地可被通過總線而提供至處理器的指令來做總線窺察與篡改。
在美國專利編號6983374中,Hashimoto揭露ー種抗篡改微處理器,其保存關(guān)于其執(zhí)行將被中斷的一個程序的內(nèi)容信息,其中,此處理器狀態(tài)被加密且儲存在系統(tǒng)存儲器。Hashimoto也教導(dǎo)了自系統(tǒng)存儲器擷取加密指令的技木,以及對加密指令進(jìn)行解密且執(zhí)行此加密指令的裝置。此外,Hashimoto教導(dǎo)了使用ー對應(yīng)密鑰來提供在存儲器內(nèi)的加密指令,且接著使用非対稱密鑰算法來對儲存在存儲器內(nèi)的對稱密鑰加進(jìn)行加密。對于程序創(chuàng)造者來說,對稱密鑰是已知的,且使用讀取自處理器的公開密鑰來對此對稱密鑰進(jìn)行加密。此處理器包括一獨特私密密鑰,其對應(yīng)此公開密鑰,且使用者無法存取。因此,根據(jù)分支指令的執(zhí)行,程控被轉(zhuǎn)移成“起始加密執(zhí)行”指令,其傳送一指標(biāo)至加密對稱密鑰。此處理器擷取加密對稱密鑰,且使用其內(nèi)部私密密鑰來對其解密。接著,加密程序指令自系統(tǒng)存儲器被擷取,且藉由使用解密對稱密鑰來被解密,并由處理器來執(zhí)行。假使發(fā)生中斷或異常,處理器的狀態(tài)則對稱地被加密且儲存至存儲器。Hashimoto揭露了對于非加密與加密編碼的共通快取機(jī)制、中斷邏輯、異常處理邏輯的使用。本案的發(fā)明人已注意到,Hashimoto的微處理器限定編碼者已知對應(yīng)安全編碼的對稱密鑰,且對稱密鑰可能被泄漏,因此,將具有此編碼的所有系統(tǒng)將有被攻擊的風(fēng)險。此夕卜,本案的發(fā)明人已注意到,Hashimoto的微處理器缺點在于,必須在擷取指令運(yùn)作中執(zhí)行安全編碼的解密,其花費(fèi)非常多的時間,因此導(dǎo)致微處理器的處理能力變?yōu)榫徛?。此外,注意到,Hashimoto的安全編碼利用現(xiàn)存的非安全資源,例如系統(tǒng)存儲器、分頁窗體、中斷、與異常機(jī)制,這些全部都會遭受到窺察。因此,本案的發(fā)明人了解,顯然期望提供ー種微處理器,其能在安全執(zhí)行環(huán)境中執(zhí)行包括一般目的指令(即在微處理器的指令集中任何的指令)的應(yīng)用程序或應(yīng)用線程。此外,同時也期望此安全執(zhí)行環(huán)境隔離于任何已知的窺察與篡改方法。因此,需要由一安全執(zhí)行模式微處理器來執(zhí)行指令,且此安全執(zhí)行模式微處理器隔離于處理器中提供存取(例如快取窺察、系統(tǒng)總線流量、中斷、以及錯誤與追蹤特征)的硬件。此外,更期望當(dāng)此微處理器加載應(yīng)用程序并安全執(zhí)行時,提供一機(jī)制來混淆來自任何現(xiàn)存監(jiān)控裝置的應(yīng)用的結(jié)構(gòu)與內(nèi)容,且提供一機(jī)制來證明此應(yīng)用的來源且確認(rèn)其誠實性。
發(fā)明內(nèi)容
本發(fā)明適用于解決前述問題與對付習(xí)知技術(shù)的其它問題、缺點與限制。本發(fā)明提供較佳的技木,以在一般目的微處理器平臺上使能安全應(yīng)用程序的執(zhí)行。在一實施例中,揭露ー種提供安全執(zhí)行環(huán)境的微處理器裝置,用以在安全執(zhí)行環(huán)境中執(zhí)行安全編碼,此微處理器裝置包括安全非易失性存儲器以及微處理器。安全非易失性存儲器儲存一安全應(yīng)用程序。微處理器通過私密總線而耦接安全非易失性存儲器,以執(zhí)行多個非安全應(yīng)用程序與此安全應(yīng)用程序。處理器包括總線接ロ単元、安全非易失性存儲器接ロ單元以及安全執(zhí)行模式邏輯電路??偩€接ロ単元完成在系統(tǒng)總線上的多個系統(tǒng)總線數(shù)據(jù)傳輸,以存取系統(tǒng)存儲器內(nèi)的上述非安全應(yīng)用程序。安全非易失性存儲器接ロ単元通過私密總線將微處理器耦接至安全非易失性存儲器。在私密總線上用來存取安全非易失性存儲器的多個私密總線數(shù)據(jù)傳輸被隱藏,以避免被處理器內(nèi)多個系統(tǒng)總線資源以及耦接系統(tǒng)總線的任何裝置所得知察覺。安全執(zhí)行模式邏輯電路提供在微處理器內(nèi)的安全執(zhí)行模式,以執(zhí)行安全應(yīng)用程序。安全執(zhí)行模式邏輯電路根據(jù)微處理器的狀態(tài)是否處于安全執(zhí)行模式,而將微處理器的狀態(tài)記錄在非易失性使能指示寄存器。 本發(fā)明的又一實施例提供ー種在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,包括提供安全非易失性存儲器,以儲存安全編碼;通過實現(xiàn)于私密總線上的多個私密數(shù)據(jù)傳輸來將安全編碼儲存在安全非易失性存儲器,其中,私密總線耦接安全非易失性存儲器;進(jìn)入微處理器內(nèi)的安全執(zhí)行模式,以執(zhí)行安全編碼;通過私密總線自安全非易失性存儲器擷取安全編碼,以由微處理器執(zhí)行;以及在安全執(zhí)行模式內(nèi)執(zhí)行安全編碼。進(jìn)入安全執(zhí)行模式的步驟包括根據(jù)微處理器的狀態(tài)處于安全執(zhí)行模式,將微處理器的狀態(tài)紀(jì)錄至非易失性使能指示寄存器。私密總線隔離于該微處理器內(nèi)的所有系統(tǒng)總線資源且位于微處理器的外部,且私密總線只由微處理器內(nèi)的安全執(zhí)行邏輯電路所得知與存取。關(guān)于產(chǎn)業(yè)應(yīng)用性,本發(fā)明可實現(xiàn)于一微處理器內(nèi),且此微處理器使用于一般目的或特殊目的的計算機(jī)裝置。
圖I表示根據(jù)本發(fā)明的安全執(zhí)行模式(SEM)微處理器的方塊示意圖;圖2表示說明圖I的微處理器中最高階級操作模式的狀態(tài)圖;圖3表示根據(jù)本發(fā)明的微處理器中SEM邏輯電路的方塊示意圖;圖4表示在根據(jù)本發(fā)明的微處理器內(nèi),安全編碼如何被儲存、存取、初始化以及執(zhí)行的方塊示意圖;圖5表示在圖I的微處理器中,SEM監(jiān)控邏輯電路的詳細(xì)方塊示意圖;圖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)安全實時時鐘的詳細(xì)方塊不意圖。主要組件符號說明100 系統(tǒng)板;101 安全執(zhí)行模式微處理器;102 系統(tǒng)總線;103 總線主控裝置;104 總線管理裝置;105 安全執(zhí)行模式邏輯電路;106 私密總線;107 安全非易失性存儲器;
Cl、C2 連接路徑/信號;PSNT 存儲器檢測總線/信號;VP 電池;VPl、VP2 連接路徑/信號;Xl 石英器;200 狀態(tài)圖;201 非安全執(zhí)行模式(原生未受控模式);202 安全執(zhí)行模式(SEM-使能模式);203 降級模式;204 硬件關(guān)機(jī)模式;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)安全編碼的安全數(shù)據(jù);318 授權(quán)的公開密鑰寄存器;319 隨機(jī)數(shù)產(chǎn)生器;320、321、324、326、327 總線;322 電源管理邏輯電路;323 地址邏輯電路;325 非安全存儲器;328 非易失性使能指示寄存器;329 SEM機(jī)械專用寄存器存儲體;400 圖不;401 微處通器;402 安全編碼接ロ邏輯電路;403 總線接ロ單元;
404 授權(quán)的公開密鑰寄存器;405 AES/HASH/RSA 單元;406 安全易失性存儲器;407 安全非易失性存儲器接ロ單元;408 SEM監(jiān)控邏輯電路;409 SEM初始化邏輯電路;410 BIOS存儲器; 411、421 安全編碼;412 隨機(jī)數(shù)產(chǎn)生器;413 處理器密鑰寄存器;420 系統(tǒng)存儲器; 425 系統(tǒng)總線; 430 安全非易失性存儲器;431 私密總線;432 授權(quán)的公開密鑰區(qū)域;CHK、INS 總線;500 SEM監(jiān)控邏輯電路;501 物理環(huán)境監(jiān)控器;502 總線時鐘監(jiān)控器;503 頻率參考單兀;504 處理器電壓監(jiān)控器;505 溫度監(jiān)控器; 506 數(shù)據(jù)監(jiān)控器;507 安全時戳計數(shù)器;508 正常時戳計數(shù)器;509 比率機(jī)械專用寄存器;510 樣式監(jiān)控器; 511 指令監(jiān)控器;512 指令陣列;513 監(jiān)控管理器;BUSTERM、BUS CLK、⑶RE CLK、TEMP、VDD, CLASSl、CLASS2、CLASS3、DISABLE 信號;DESTRUCT、INS、Ν0Β00Τ, PINCHK、TAMPER、CHK 總線;600 詳細(xì)操作模式圖標(biāo);601 原生未受控模式(非安全執(zhí)行模式);602 SEM使能重置模式[I: N];603 SEM使能正常執(zhí)行模式;604 SEM使能安全執(zhí)行模式;605 降級模式;606 硬件關(guān)機(jī)模式;700 流程圖;701. ·· 705 流程步驟;800 流程圖;801. ·· 806 流程步驟;900 流程圖;901. ·· 912 流程步驟;1000 流程圖;1001. . . 1009 流程步驟;1100 流程圖;1101…1112 流程步驟;1200 安全實時時鐘;1201 振蕩器;1202 計數(shù)器;1203 轉(zhuǎn)換邏輯電路;VP、ENV 信號;W、CNTO 輸出信號;CNTO 輸出信號;TEMP、BATT、COMP、XTAL 信號;
ΜΕ 雙向總線。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉ー較佳實施例,并配合所附圖式,作詳細(xì)說明如下。本發(fā)明雖以較佳實施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求書所界定者為準(zhǔn)。鑒于上述關(guān)于在一微處理器中應(yīng)用程序的安全并隔離地執(zhí)行且關(guān)于用來防止窺察、侵入、篡改、或黑客的現(xiàn)今技術(shù)的背景討論,本發(fā)明的討論將通過圖I至12來呈現(xiàn)。參閱圖1,其表示根據(jù)本發(fā)明實施例的安全執(zhí)行模式(secure execution mode,SEM)微處理器101的示意圖。此示意圖描述SEM微處理器101配置所在的系統(tǒng)板100 (或主·機(jī)板)。此微處理器101通過系統(tǒng)總線102稱接ー個或多個總線主控裝置(bus master) 103以及/或者一個或多個總線管理裝置(bus agent) 104。在一實施例中,SEM微處理器101為x86兼容微處理器101,其通過x86兼容系統(tǒng)總線102耦接ー個或多個x86兼容總線主控裝置103以及/或者ー個或多個x86兼容總線管理裝置104。此外,SEM微處理器101耦接ー電池VP,其配置在系統(tǒng)板(主機(jī)板)100上,且通過連接路徑VPl與VP2來耦接至微處理器101。在一實施例中,電池VP的電壓為I. 8V直流電壓(DC)。石英器Xl也配置在系統(tǒng)板100上,且通過連接路徑Cl與Cl來耦接至微處理器101。微處理器101包括SEM邏輯電路105。根據(jù)本發(fā)明的SEM邏輯電路105系配置來提供在微處理器內(nèi)一安全執(zhí)行模式的初始化、操作、以及終止,將于下文詳細(xì)說明。此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í)行所處的層級上的指令。例如,微指令直接由精簡指令集運(yùn)算(Reduced Instruction Set Computing, RISC)微處理器來執(zhí)行。對于復(fù)雜指令集運(yùn)算(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來f禹接至微處理器101。根據(jù)本發(fā)明,安全非易失性存儲器107為ー種經(jīng)過電源的除去與重新施加后其內(nèi)容仍存留的存儲器。即是,當(dāng)提供至系統(tǒng)板的電源關(guān)閉或開啟時,安全非易失性存儲器107的內(nèi)容不會改變。在一實施例中,安全非易失性存儲器107包括快閃只讀存儲器(R0M),其大小相當(dāng)于將在安全執(zhí)行模式中執(zhí)行的安全應(yīng)用程序的大小。在一實施例中,考慮以4MB快閃只讀存儲器來作為安全非易失性存儲器107。在私密總線106上的數(shù)據(jù)傳輸(transactions)完全地隔離于系統(tǒng)總線102、總線主控裝置103以及總線管理裝置104,且私密總線106位于微處理器101的外部。在一實施例中,快閃只讀存儲器107可程序化高達(dá)100000次。在一實施例中,私密總線106考慮以一串行總線來實現(xiàn),其提供介于安全非易失性存儲器107與微處理器101之間的數(shù)據(jù)傳輸。此私密總線106可符合標(biāo)準(zhǔn)界面協(xié)議,例如串行外圍接ロ(SerialPeripheral Interface, SPI)協(xié)議。在操作上,電池VP與石英器Xl提供在SEM邏輯電路105內(nèi)實時時鐘(Real TimeClock,RTC)(未顯示)的持續(xù)操作,其將于下文詳細(xì)說明。包括來自主機(jī)結(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)用程序并確認(rèn)此ー個或多個安全應(yīng)用程序。根據(jù)安全執(zhí)行模式的使能以及依據(jù)一“起始安全執(zhí)行”指令的執(zhí)行,SEM邏輯電路105利用微處理器內(nèi)的多加密資源,以根據(jù)ー對稱密鑰算法并使用處理器獨特加密密鑰來對此ー個或多個安全應(yīng)用程序進(jìn)行加密,此外,SEM邏輯電路105通過私密總線106來將已加密的ー個或多個安全應(yīng)用程序傳送至安全非易失性存儲器107。之后,SEM邏輯電路105利用微處理器101內(nèi)的多加密或其它資源,來對此ー個或多個安全應(yīng)用程序進(jìn)行存取、確認(rèn)以及解密,此ー個或多個安全應(yīng)用程序接著加載至微處理器101內(nèi)的一安全且隔離的隨機(jī)存取存儲器(RAM)或一高速緩存(未顯示)。當(dāng)執(zhí)行起始安全執(zhí)行指令時(當(dāng)進(jìn)入至該安全執(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)機(jī)(硬件關(guān)機(jī)模式)。關(guān)于此ー個或多個安全應(yīng)用程序(或“安全編碼”)的功能類型包括(但不受限于此)執(zhí)行關(guān)鍵安全任務(wù),例如憑證確認(rèn)、數(shù)據(jù)加密以及數(shù)據(jù)解密;監(jiān)控正常系統(tǒng)軟件活動;確認(rèn)正常系統(tǒng)軟件的完整性;追蹤資源使用;新軟件的安裝。在一實施例中,在本發(fā)明的安全處理系統(tǒng)中考慮使用表面黏著式微處理器101、表面黏著式安全非易失性存儲器107、以及表面黏著式石英器XI。這些表面黏著式組件包括球柵陣列(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í)行主機(jī)指令集的所有指令,且能執(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說明在圖I的微處理器中最高階級操作模式。在此最高階級中,微處理器101提供三個主要操作模式201-203與一個硬件關(guān)機(jī)模式204。非安全執(zhí)行模式201是在微處理器101制造后,當(dāng)?shù)谝淮喂┙o電源時所默認(rèn)(default)的第一個狀態(tài)。非安全執(zhí)行模式201也稱為“原生未受控(born 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)以及其它硬件,將于下文詳細(xì)說明。藉由提供原生未受控模式201,可實施與非安全微處理器所共通的制造行動類型(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的次數(shù)是有限的。在一實施例中,處理器轉(zhuǎn)換回原生未受控模式可高達(dá)64次。在另ー實施例中,以可確認(rèn)的授權(quán)者來對特殊(particular)機(jī)械專用寄存器(Machine Specific Register, MSR)進(jìn)行寫入,導(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)由一機(jī)械專用寄存器來執(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é)果紀(jì)錄至安全非易失性存儲器107。根據(jù)該數(shù)據(jù)區(qū)域的成功清除與該偵測結(jié)果的成功紀(jì)錄,SEM邏輯電路105將微處理器轉(zhuǎn)換至降級模式203。此夕卜,執(zhí)行在降級模式203的安全編碼,亦即在一安全應(yīng)用程序的控制下(簡稱為程控),微處理器的狀態(tài)轉(zhuǎn)換回安全執(zhí)行模式202。某些與配置和完整性確認(rèn)有關(guān)的已定義狀態(tài)可導(dǎo)致微處理器101轉(zhuǎn)換為硬件關(guān)機(jī)模式204。在一實施例中,根據(jù)這些已定義狀態(tài)的ー偵測結(jié)果,SEM邏輯電路105試圖清除微處理器內(nèi)一安全易失性存儲器的ー數(shù)據(jù)區(qū)域、試圖將該偵測結(jié)果紀(jì)錄至安全非易失性存儲器107、且使微處理器進(jìn)入至硬件關(guān)機(jī)模式204。在此硬件關(guān)機(jī)模式下,只可藉由重置微處理器來退出此硬件關(guān)機(jī)模式。在安全執(zhí)行模式202或降級模式203中一安全應(yīng)用程序的控制下(簡稱為程控),微處理器202可進(jìn)入硬件關(guān)機(jī)模式204?,F(xiàn)在參閱圖3,其表示在本發(fā)明實施例的微處理器300中的SEM邏輯電路301的詳細(xì)方塊圖。SEM邏輯電路301包括授權(quán)的公開密鑰寄存器318、處理器密鑰寄存器312、SEM初始化邏輯電路305、SEM監(jiān)控邏輯電路306、SEM中斷邏輯電路307、SEM例外(exception)邏輯電路308、SEM定時器309、SEM實時時鐘(RTC) 310、非易失性使能指示寄存器328、SEM機(jī)械專用寄存器存儲體(bank)329以及安全易失性存儲器302。SEM邏輯電路301耦接在 微處理器300中的ー些其它資源,包括通過總線326耦接非安全存儲器325、通過總線324耦接地址邏輯電路323、通過總線320耦接隨機(jī)數(shù)產(chǎn)生器319、通過總線321耦接AES/HASH/RSA單元311、通過總線327耦接其它處理器執(zhí)行單元313 (例如整數(shù)単元、浮點單元、MMX/SSE単元)、耦接正常例外邏輯電路314、耦接正常追蹤/除錯邏輯電路315、耦接正常中斷邏輯電路316以及電源管理邏輯電路322。在一實施例中,由授權(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)進(jìn)安全非易失性存儲器107。因此,利用提供公開密鑰的方法以避免窺察與篡改來控制安全執(zhí)行模式初始化程序。處理器密鑰寄存器312是多熔絲的聚集體,其實際分布在微處理器管芯上。這些熔絲在制造期間以獨特且隨機(jī)產(chǎn)生的狀態(tài)組來編程以形成處理器的獨特密鑰,其只可被AES/HASH/RSA單元311 (也可稱加密單元311)來讀取,并無提供自處理器密鑰寄存器312讀取處理器密鑰的程序接ロ。在一實施例中,處理器密鑰寄存器312包括128個熔絲,這些熔絲被編程為128位的AES (Advanced Encryption Standard, AES)密鑰,而使用此AES密鑰來對安全非易失性存儲器107的內(nèi)容進(jìn)行加密與解密。即是,使用此處理器對稱密鑰來對安全編碼進(jìn)行加密,以儲存在安全非易失性存儲器中。依據(jù)通過私密總線106來對安全編碼的擷取,來自處理器密鑰寄存器312的密鑰被使用來對安全編碼進(jìn)行解密以進(jìn)ー步執(zhí)行。因此,私密總線106的狀態(tài)的觀察者無法決定何者正在微處理器300與非易失性存儲器107之間轉(zhuǎn)移。在一實施例中,處理器密鑰寄存器312包括128熔絲,其隨機(jī)地分布在微處理器300中一熔絲庫內(nèi)的許多其它熔絲之中。此熔絲庫配置在微處理器管芯上ー些金屬層的下方。根據(jù)SEMENABLE指令的執(zhí)行或其它進(jìn)入安全執(zhí)行模式202的預(yù)期機(jī)制,SEM初始化邏輯電路 305提供安全執(zhí)行模式202的初始化。為了詳細(xì)說明,下文將以用來使能且執(zhí)行來自安全執(zhí)行模式202的指令(例如SEMENABLE)執(zhí)行的方式來說明根據(jù)本發(fā)明的微處理器300的操作,然而,此技術(shù)領(lǐng)域的人士將理解有其它方法能使能安全執(zhí)行模式202并執(zhí)行來自安全執(zhí)行模式的安全編碼,例如對ー隱密寄存器(hidden register)寫入等等。根據(jù)SEMENABLE指令的執(zhí)行成功,SEM初始化邏輯電路305將微處理器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ù)進(jìn)入至該安全執(zhí)行模式而對非易失性使能指示寄存器328進(jìn)行第一次寫入,以指示出微處理器處于安全執(zhí)行模式。SEM邏輯電路根據(jù)退出該安全執(zhí)行模式而對非易失性使能指示寄存器328進(jìn)行第二次寫入,以指示出微處理器處于該非安全執(zhí)行模式(原生未受控模式)。SEM監(jiān)控邏輯電路306用來監(jiān)控安全編碼與數(shù)據(jù)的誠實性,以監(jiān)控系統(tǒng)的環(huán)境與物理屬性,包括溫度、電壓、總線時鐘、電池VP的存在、石英器Xl的存在以及安全非易失性存儲器107的存在。SEM監(jiān)控邏輯電路306將篡改或疑似的篡改情況指示給SEM邏輯電路301,其導(dǎo)致微處理器300轉(zhuǎn)換至降級模式203或硬件關(guān)機(jī)模式204。SEM中斷邏輯電路307提供多中斷與相關(guān)的中斷邏輯裝置(例如安全中斷描述符表(Interrupt Descriptor Table, IDT)),這些只顯現(xiàn)給正在安全執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序,且由此安全應(yīng)用程序來存取。中斷安全編碼執(zhí)行的機(jī)制類似于執(zhí)行正常模式的機(jī)制。亦即,依據(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ā)生所述安全中斷的任一者或所述安全例外的任一者,微處理器的狀態(tài)被儲存且微處理器300進(jìn)入安全執(zhí)行模式。這些安全中斷被配置來提供微處理器300外部事件所導(dǎo)致的程控轉(zhuǎn)移,例如鍵盤事件、I/O端ロ事件等等。安全例外是用來提供微處理器300內(nèi)部事件所導(dǎo)致的程控轉(zhuǎn)移,例如非定義的運(yùn)算碼(opcode)、機(jī)械檢查錯誤(machine check errors)、以及在一實施例中對ー個或多個安全機(jī)械專用寄存器存儲體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)安全中斷管理者,以及該微處理器的狀態(tài)無法由所述非安全應(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ù)時間(persistenttime),其只顯現(xiàn)給正在安全執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序且由此安全應(yīng)用程序來存取。SEM實時時鐘310的值無法由不同于操作在安全執(zhí)行模式202下的安全編碼的任何對象來改變。SEM機(jī)械專用寄存器存儲體329包括多機(jī)械專用寄存器,且這些機(jī)械專用寄存器只顯現(xiàn)給正在安全執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序且由此安全應(yīng)用程序來存取。這些機(jī)械專用寄存器用來使能對安全非易失性存儲器107、SEM實時時鐘310以及SEM定時器309的加載/儲存存取。非安全存儲器325作為給正在執(zhí)行的非安全應(yīng)用程序的指令與數(shù)據(jù)高速緩存(instruction and data cache)。非安全存儲器325用以儲存多非安全應(yīng)用程序以由微處理器來執(zhí)行。在微處理器300內(nèi)的這些程序與其它系統(tǒng)總線資源可得知且存取非安全存儲器325。安全易失性存儲器302系作為給正在安全執(zhí)行模式202下執(zhí)行的安全應(yīng)用程序的一指令與數(shù)據(jù)高速緩存。進(jìn)入至安全執(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)存儲器)進(jìn)入至安全執(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包括4K 64位快取線。在安全易失性存儲器302中,一,決取線依據(jù)由將數(shù)據(jù)移動至先前沒有涉及(referenced)的一,決取線來分配。在一實施例中,安全易失性存儲器302包括具有4096個位置的一 64位高速緩存,所述位置的每ー者包括一內(nèi)部屬性,且該內(nèi)部屬性完全地隔離所述位置的每ー者。
在另ー實施例中,安全易失性存儲器302包括隨機(jī)存取存儲器,其與微處理器300內(nèi)的芯片上高速緩存分離。SEMENTER指令的執(zhí)行提供了安全執(zhí)行模式202內(nèi)安全編碼的執(zhí)行。在一 x86相容的實施例中,安全執(zhí)行模式202根據(jù)修改的32位x86真實模式來提供安全編碼的執(zhí)行。在執(zhí)行安全編碼時,禁止由安全執(zhí)行模式202進(jìn)入ー x86保護(hù)模式。在安全執(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、探測模式、快取測試)。否則,電源管理邏輯電路322允許微處理器300進(jìn)入降低功耗狀態(tài),例如在x86兼容實施例中的P狀態(tài)與C狀態(tài)。因此,信號DISPML用來在安全編碼執(zhí)行期間避免功耗狀態(tài)的轉(zhuǎn)換。通過總線320、321及327,安全編碼可存取處理器執(zhí)行単元(處理器300內(nèi)的執(zhí)行單元)313、隨機(jī)數(shù)產(chǎn)生器319與AES/HASH/RSA單元311,以執(zhí)行微處理器指令集的所有指令,其中,這些指令包括真實隨機(jī)數(shù)的硬件產(chǎn)生且可由編程的巨集指令來使用的硬件實施功能,以執(zhí)行RSA加密、解密以及識別核對;AES加密與解密、以及SHA-1/SHA-256哈希產(chǎn)生(Secure Hash Algorithm, SHA,安全哈希算法)。這些硬件實施功能由AES/HASH/RSA單元311來執(zhí)行?,F(xiàn)在參閱圖4,圖示400表示在本發(fā)明的微處理器內(nèi)安全編碼如何被儲存、存取及初始化。圖標(biāo)400說明能進(jìn)行安全執(zhí)行模式(SEM)的微處理器401,其通過系統(tǒng)總線425而耦接BIOS存儲器410與系統(tǒng)存儲器420。根據(jù)本發(fā)明,微處理器401也通過私密總線431而耦接至安全非易失性存儲器430。微處理器401包括安全編碼接ロ邏輯電路402,其耦接至隨機(jī)數(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所示的組件的運(yùn)作,實質(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)于圖1-3的討論。安全編碼411、421只提供給SEM中斷邏輯電路307、SB1例外邏輯電路308,SEM實時時鐘310、SEM定時器310以及只可由安全編碼411、421利用的其它處理器資源獨占存取。此外,微處理器401提供SEM監(jiān)控邏輯電路408,其包括的異步監(jiān)控與監(jiān)視機(jī)制,其中,此異步監(jiān)控與監(jiān)視機(jī)制獨立于安全編碼411、421以及非安全編碼的執(zhí)行。SEM監(jiān)控邏輯電路408監(jiān)控微處理器的環(huán)境(例如電壓、溫度、總線運(yùn)作)與物理特性,也核對安全編碼411、421(安全應(yīng)用程序)與相關(guān)數(shù)據(jù)的誠實性,將于下文詳細(xì)說明。當(dāng)偵測到安全暴露(security exposure)時,SEM監(jiān)控邏輯電路408可通過總線CHK將程控轉(zhuǎn)移至安全編碼411、421的安全編碼錯誤管理裝置(secure-code error handler),或者,在偵測到嚴(yán)重的安全暴露情況下,SEM監(jiān)控邏輯電路408將通過總線CHK來使微處理器401進(jìn)入降級模式 203。在一實施例中,安全編碼接ロ邏輯電路402監(jiān)控存在于安全編碼411、421中的多指令,且通過總線INS將這些指令提供至SEM監(jiān)控邏輯電路408,以支持微處理器401的限定的指令集架構(gòu)(Instruction set Architecture, ISA)操作。根據(jù)此實施例,當(dāng)微處理器401正操作在安全執(zhí)行模式時,本發(fā)明的微處理器401只被允許執(zhí)行主機(jī)ISA中的某些指令。即是,限定的ISA操作使得SEM邏輯電路阻止多非安全指令的執(zhí)行,而此非安全指令的執(zhí)行是授權(quán)者欲阻止的,且該些非安全指令包括取自對應(yīng)微處理器的一指令集架構(gòu)的ー個或多個運(yùn)算碼。舉例來說,在x86相容的實施例中,超過100個微指令的產(chǎn)生與執(zhí)行的指令或某類指令要求會被阻止。另ー方面,當(dāng)微處理器401正操作在安全執(zhí)行模式吋,一授權(quán)者可能期望阻止所有指令的執(zhí)行,例如任務(wù)切換、呼尋閘(call gates)等等。藉由將安全編碼411、421內(nèi)每一指令提供給SEM監(jiān)控邏輯電路408,本發(fā)明的微處理器401使能限定的ISA操作。在一實施例中,在限定的ISA指令集中的指令(即提供在安全執(zhí)行模式下執(zhí)行的指令),由SEM監(jiān)控邏輯電路408內(nèi)指令陣列(未顯示)的值來表示,將于下文詳細(xì)說明。當(dāng)遭遇到上述被阻止的指令吋,SEM監(jiān)控邏輯電路408使微處理器401進(jìn)入降級模式203。在一實施例中,安全編碼接ロ邏輯電路402將安全編碼411、421中的指令提供給SEM監(jiān)控邏輯電路408,提供時將安全編碼411、421加載至安全易失性存儲器406以進(jìn)行后續(xù)執(zhí)行。使能與初始化安全執(zhí)行模式202的能力是非常關(guān)鍵的安全操作,此外,其表示了關(guān)于木馬程序(Trojan Horse)安裝有可能進(jìn)入至包含安全編碼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指令(或相似機(jī)制)。此指令傳送通過授權(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。在一實施例中,無論是否接受進(jìn)入安全執(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開機(jī)(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í)行隨機(jī)數(shù)寫入來清除安全非易失性存儲器430的內(nèi)容。在一實施例中,在安全非易失性存儲器430中的每ー個位置以隨機(jī)數(shù)寫入64次。在一實施例中,毎次寫入的隨機(jī)數(shù)是由隨機(jī)數(shù)產(chǎn)生器412所產(chǎn)生。SEMENABLE指令(或是SEM使能機(jī)制)也傳送關(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ù)被確認(rèn)且證實,安全編碼接ロ邏輯電路402則指示總線接ロ単元403去自BIOS存儲器410以及/或系統(tǒng)存儲器420擷取安全編碼411及421。安全編碼411、421也已藉由使用授權(quán)者的私密密鑰并根據(jù)非對稱密鑰算法而被加密,且必須與預(yù)設(shè)結(jié)構(gòu)相稱。安全編碼接ロ邏輯電路402利用授權(quán)的公開密鑰寄存器404與AES/HASH/RSA単元405來對加密的安全編碼411、421進(jìn)行解密。在核對為正確格式后,安全編碼接ロ邏輯單元402利用AES/HASH/RSA單元405來根據(jù)對稱加密算法并使用處理器密鑰寄存器413的內(nèi)容(作為對稱密鑰)來對安全編碼與數(shù)據(jù)進(jìn)行加密。如前所提及,處理器密鑰寄存器413的內(nèi)容是微處理器401所特有的128位隨機(jī)產(chǎn)生的密鑰,且對稱加密算法包括使用128位模塊(blocks)以及電子密碼書(Electronic Code Book,ECB)模式的高級加密標(biāo)準(zhǔn)(AES)。此對稱加密的安全編碼接著通過安全非易失性存儲器接ロ単元407而被寫入至安全非易失性存儲器430。此外,安全編碼接ロ邏輯電路402利用AES/HASH/RSA單元405與處理器密鑰寄存器413來產(chǎn)生安全編碼中已選擇部分的多個哈希,安全編碼接ロ邏輯電路402對這些哈希進(jìn)行加密編碼并寫入至安全非易失性存儲器430。在一實施例中,這些哈希是根據(jù)SHA-I算法而產(chǎn)生。
此外,SEM初始化邏輯電路409禁能JTAG、探測模式、快取測試、或者禁能通過圖3所討論的機(jī)制而提供安全編碼監(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。以下將進(jìn)一歩詳細(xì)說明,當(dāng)安全編碼將被執(zhí)行時,安全編碼由安全非易失性存儲器接ロ単元407自安全非易失性存儲器430被擷取,且使用存放于處理器密鑰寄存器413的處理器密鑰來譯碼,且安全編碼被寫入至微處理器401內(nèi)的安全易失性存儲器406,其中,安全易失性存儲器406完全隔離于所有可窺探其內(nèi)容的硬件及或軟件。安全易失性存儲器406的功能包含可存放安全應(yīng)用程序執(zhí)行的指令與數(shù)據(jù)高速緩存。在一實施例中,安全非易失性存儲器接ロ単元407包括多機(jī)械專用寄存器,其專有地顯現(xiàn)給安全編碼,這些機(jī)械專用寄存器允許一安全應(yīng)用程序(或安全編碼接ロ邏輯電路402)去執(zhí)行對安全非易失性存儲器430的加載與儲存。即是,根據(jù)此實施例,藉由執(zhí)行對隱藏機(jī)械專用寄存器的讀取與寫入,來執(zhí)行對安全非易失性存儲器403的讀取與寫入。授權(quán)者可有利地將微處理器401的安全操作與安全執(zhí)行模式環(huán)境結(jié)合,且由于通過系統(tǒng)總線425與私密總線431的數(shù)據(jù)傳輸被加密,因此安全編碼的結(jié)構(gòu)與功能則被保護(hù)以避免任何的反向工程與其它窺察/侵入技木?,F(xiàn)在參閱圖5,其表示在圖I的微處理器中的SEM監(jiān)控邏輯電路500的詳細(xì)內(nèi)容。SEM監(jiān)控邏輯電路500包括物理環(huán)境監(jiān)控器501,其通過信號PSNT耦接安全非易失性存儲器107、通過信號VPl與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 stampcounter) 507,其稱接正常時戮計數(shù)器(normal time stamp counter) 508、信號 CORE CLK 以及比率(Ratio)機(jī)械專用寄存器509。安全時戳計數(shù)器507的輸出信號耦接總線TAMPER?!EM監(jiān)控邏輯電路500也包括指令監(jiān)控器511,其耦接指令陣列512與總線INS。如關(guān)于圖4的討論,當(dāng)微處理器正執(zhí)行在安全執(zhí)行模式時,在安全應(yīng)用程序內(nèi)的指令被提供至SEM監(jiān)控邏輯電路500,以支持在主機(jī)ISA內(nèi)限制的指令執(zhí)行。指令監(jiān)控器511的輸出信號耦接至總線TAMPER。最后,SEM監(jiān)控邏輯電路500具有樣式監(jiān)控器510,其耦接總線PINCHK,且在總線DESTRUCT上產(chǎn)生ー輸出信號??偩€N0B00T、TAMPER以及DESTRUCT耦接于監(jiān)控管理器513。在一實施例中,監(jiān)控管理器 513 產(chǎn)生信號 CLASS1、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ā)生對安全編碼本身的過度呼尋· (excessive calls)。因此,當(dāng)操作在安全執(zhí)行模式時,物理環(huán)境監(jiān)控器501耦接安全非易失性存儲器107,藉由監(jiān)控信號PSNT的狀態(tài)來判斷安全非易失性存儲器107是否移除。信號PSNT的禁能(de-assertion)表示移除安全非易失性存儲器107。同樣地,監(jiān)控信號VPl與VP2來判斷電池電壓是否改變或電池被移除或者判斷對應(yīng)該電池的電壓是否被充電。在一實施例中,VPl的值與電池電壓成比例。同樣地,信號Cl與C2的狀態(tài)表示石英器的存在與否。假使物理環(huán)境監(jiān)控器501偵測到上述的任何變化,此變化則輸出至總線Ν0Β00Τ。此外,當(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)致微處理器進(jìn)入降級模式或進(jìn)入硬件關(guān)機(jī)模式204。處理器電壓監(jiān)控器504估計通過信號VDD與BUSTERM來提供且施加于微處理器的電源供應(yīng)電壓與多總線終端電壓。上述電壓的高低限制通過機(jī)械專用寄存器(未顯示)來編程。一但電源供應(yīng)電壓與多總線終端電壓偏離這些編程限制,處理器電壓監(jiān)控器504將通過總線TAMPER來報導(dǎo)(import)此事件給監(jiān)控管理器513。溫度監(jiān)控器505包括精準(zhǔn)的熱監(jiān)控機(jī)制(除了正常熱監(jiān)控功能以外),其在預(yù)設(shè)高與低溫度限制下不斷地監(jiān)控管芯溫度。該管芯溫度的一低溫度限制與一高溫度限制藉由溫 度監(jiān)控器505內(nèi)一機(jī)械專用寄存器來編程。此高與低溫度限制儲存在溫度監(jiān)控器505內(nèi)機(jī)械專用寄存器中,其中,這些機(jī)械專用寄存器可被安全編碼寫入。一旦該管芯溫度偏離上述預(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計算信號C0RECLK的周期數(shù)。安全時戳計數(shù)器507也耦接ー比率機(jī)械專用寄存器509,比率機(jī)械專用寄存器509只由該安全應(yīng)用程序所得知且存取。安全執(zhí)行模式執(zhí)行期間,安全編碼可對比率機(jī)械專用寄存器509執(zhí)行ー機(jī)械專用寄存器寫入,以建立介于正常時戳計數(shù)器508與安全時戳計數(shù)器507的數(shù)值之間的一最大比例(maximum ratio)。此最大比例指示該安全應(yīng)用程序已被呼尋的次數(shù)。假使超過此最大比例,藉此指示出安全編碼已被呼尋多于指定次數(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)的一機(jī)械專用寄存器來編程。指令監(jiān)控器511在與主機(jī)ISA內(nèi)指令子集的對照下用來確認(rèn)在安全應(yīng)用程序內(nèi)的指令,且指示出在此安全應(yīng)用程序內(nèi)且非在此子集內(nèi)的指令何時已被編程以進(jìn)行后續(xù)執(zhí)行。提供來在安全執(zhí)行模式內(nèi)執(zhí)行的指令子集是由指令陣列512的數(shù)值來表示。在ー實施例中,此子集包括在ISA內(nèi)的ー個或多個特殊指令,如運(yùn)算碼(opcode)所識別。在另ー實施例中,此子集包括ー個或多個指令種類,如ー微碼(miCTocode)復(fù)雜數(shù)值所識別。在一第三實施例中,此子集包括ー個或多個卷標(biāo)編碼(tag codes),姆ー者與ー個或多個指令運(yùn)算碼相關(guān)聯(lián)。指令陣列512耦接該指令監(jiān)控器511,用以識別對應(yīng)微處理器的一指令集架構(gòu)內(nèi)的一所有指令的子集,該子集包括允許在一安全執(zhí)行模式內(nèi)執(zhí)行的指令。用來在安全執(zhí)行模式下執(zhí)行的指令子集由指令陣列512的數(shù)值來識別。在一實施例中,此指令陣列512包括一機(jī)械專用暫存器,其初始地由安全應(yīng)用程序來寫入。在另ー實施例中,指令陣列512包括多熔絲,其在制造期間被編程(燒斷)。在安全執(zhí)行模式的初始化期間,當(dāng)安全編碼正由安全非易失性存儲器傳送至安全易失性存儲器以進(jìn)行后續(xù)執(zhí)行時,對應(yīng)安全編碼內(nèi)每ー特定指令的數(shù)值由安全編碼接ロ邏輯電路402通過總線INS而提供至指令監(jiān)控器511。在一實 施例中INS的數(shù)值表示每ー特定指令對應(yīng)微處理器的一指令集架構(gòu)內(nèi)的的特定運(yùn)算碼或是運(yùn)算碼子集。在另ー實施例中,此數(shù)值表示這些指令的種類(例如簡單、復(fù)雜等等)。在又一實施例中,此數(shù)值是對應(yīng)在ISA內(nèi)一或多個指令的卷標(biāo)。在另ー實施例中,于安全編碼的執(zhí)行之前,當(dāng)安全非易失性存儲器正被編程時,在安全編碼內(nèi)每ー指令的數(shù)值由安全編碼接ロ邏輯電路402通過總線INS來提供。指令監(jiān)控器511比較INS的數(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藉由注意與估計通過總線Ν0Β00Τ、TAMPER及DESTRUCT傳遞的數(shù)據(jù),來動態(tài)地監(jiān)控微處理器的物理與操作環(huán)境。監(jiān)控管理器513對上述數(shù)據(jù)進(jìn)行分類以指示出與安全應(yīng)用程序的執(zhí)行相關(guān)的安全層級,且使微處理器內(nèi)的SEM邏輯電路根據(jù)安全層級來執(zhí)行反應(yīng)操作。對安全應(yīng)用程序的執(zhí)行而言,SEM監(jiān)控邏輯電路500包括異步監(jiān)控、監(jiān)視機(jī)制與監(jiān)控器等系獨立地操作。以下某些情況將導(dǎo)致信號CLASSl的設(shè)置,例如通過總線TAMPER報導(dǎo)的總線BUS CLK的頻率的短暫誤差。SEM邏輯電路響應(yīng)于CLASSl的設(shè)置而將此事件紀(jì)錄(log)(偵測信號CLASSl的設(shè)置)至安全易失性存儲器內(nèi)的安全事件紀(jì)錄表,且發(fā)出一中斷給安全編碼。假使此中斷沒有被收到(acknowledged),則監(jiān)控管理器513設(shè)置信號CLASS3。假使偵測到會導(dǎo)致信號CLASSl設(shè)置的多事件(多于ー個事件),例如BUS CLK的誤差與VDD的誤差,監(jiān)控管理器513則設(shè)置信號CLASS2。SEM邏輯電路則試圖清除安全易失性存儲器的數(shù)據(jù)區(qū)域,且試圖將此事件記錄至安全非易失性存儲器。此外,檢查在BIOS的安全編碼的哈希。假使安全易失性存儲器的數(shù)據(jù)區(qū)域成功清除且此事件(偵測信號CLASS2的設(shè)置)被紀(jì)錄,且假使BIOS哈希被正確地證明,SEM邏輯電路則開始轉(zhuǎn)換至降級模式203。此降級模式提供有限的功能、錯誤顯示以及有限的使用者輸入的相關(guān)指令。這些動作中任一者的錯誤會導(dǎo)致信號CLASS3的設(shè)置。信號CLASS3的設(shè)置表示有安全侵害。響應(yīng)于信號CLASS3的設(shè)置,SEM邏輯電路持續(xù)試圖清除安全易失性存儲器且試圖將此事件(偵測信號CLASS3的設(shè)置)記錄至安全非易失性存儲器,此外,使微處理器進(jìn)入硬件關(guān)機(jī)模式204,即微處理器停止操作。在一實施例中,監(jiān)控管理器513判斷樣式監(jiān)控器510是否已設(shè)置信號DESTRUCT,因此指示出本發(fā)明微處理器的非安全版本的安裝。假使信號DESTRUCT被設(shè)置,且假使在總線Ν0Β00Τ上的數(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ù)嘗試迫使微處理器進(jìn)入硬件關(guān)機(jī)模式,即微處理器停止操作。關(guān)于監(jiān)控管理器513設(shè)置信號CLASS I、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詳細(xì)說明本發(fā)明的微處理器的操作模式轉(zhuǎn)換。狀態(tài)圖600包括原生未受控模式601 (或“非安全”執(zhí)行模式601)、降級模式605以及硬件關(guān)機(jī)模式606,如同圖2中相似命名的組件,相異之處在干,更詳細(xì)說明原生未受控模式601在程控下只可返回至此模式的有限次數(shù)。這些返回的有限次數(shù)以原生未受控模式(born free mode,BFM) [1:N]來表示。此外,更詳細(xì)地解釋在圖2的安全執(zhí)行模式202,以說明多SEM使能重置模式[I :N]602、一 SEM使能正常執(zhí)行模式603以及ー SEM使能安全執(zhí)行模式604。即是,當(dāng)安全執(zhí)行模式202通過SEMENABLE指令的執(zhí)行(或者其它使能機(jī)制)而被使能時,本發(fā)明的微處理器被重置(即使能重置[1:N])其可能正在執(zhí)行非安全應(yīng)用程序(使能正常執(zhí)行模式),或者可能正執(zhí)行安全編碼(使能安全執(zhí)行模式)。如上所示,本發(fā)明的微處理器被制造為初始開機(jī)即進(jìn)入原生未受控模式601。且如狀態(tài)圖600所指示,有關(guān)微處理器的安全的不同版本可持續(xù)地被使用于原生未受控模式中。然而,SEMENABLE指令或使能安全執(zhí)行模式的交替機(jī)制(例如SEM ENABLE)的執(zhí)行導(dǎo)致微處理器進(jìn)入SEM使能重置模式602,以迫使微處理器重置,其中可以進(jìn)入SEM使能重置模式602的次數(shù)為[1:N]次,且上述為第一次進(jìn)入SEM使能重置模式602。在SEM使能重置模式602中,在重置序列期間,微處理器執(zhí)行關(guān)于操作在安全環(huán)境的配置與誠實性檢查,如前述關(guān)于圖5的敘述。根據(jù)在SEM使能重置模式下重置的成功執(zhí)行(即通過),微處理器轉(zhuǎn)換至SEM使能正常執(zhí)行模式603,以進(jìn)行非安全應(yīng)用程序的執(zhí)行。然而,假使偵測到某些已定義狀態(tài),例如前述由監(jiān)控管理器513對信號CLASS3與DISABLE的設(shè)置,微處理器將轉(zhuǎn)換至降級模式605 (即由于CLASS2的設(shè)置),或轉(zhuǎn)換至硬件關(guān)機(jī)模式606 (即由于DISABLE的設(shè)置)。從硬件關(guān)機(jī)模式606離開,微處理器可被重置以導(dǎo)致其返回至SEM使能重置模式602中。從降級模式605離開,微處理器通過BIOS提供受限的指令,允許使用者建立用來在程控下使能微處理器以進(jìn)入SEM使能安全執(zhí)行模式604的參數(shù)。從SEM使能重置模式602離開,在重置序列中的硬件呼尋將迫使微處理器直接進(jìn)入SEM使能安全執(zhí)行模式604,于其中執(zhí)行安全編碼。此外,發(fā)生在SEM使能正常執(zhí)行模式603中非安全編碼執(zhí)行期間中或者在SEMENTER指令的執(zhí)行期間中的安全中斷、或者使微處理器開始執(zhí)行安全編碼的交替機(jī)制,將導(dǎo)致微處理器轉(zhuǎn)換至SEM使能安全執(zhí)行模式604。命令微處理器開始執(zhí)行安全編碼的指令與交替機(jī)制都參照狀態(tài)圖600中的“呼尋”。同樣地,SEMEXIT指令的執(zhí)行或命令微處理器終止安全編碼執(zhí)行與開始非安全編碼執(zhí)行的交替機(jī)制,參照“返回(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í)行的安全編碼可藉由寫入一特殊機(jī)械專 用寄存器,來引發(fā)安全機(jī)械檢查例外,其導(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圖來詳細(xì)說明。參閱圖7,流程圖700表示本發(fā)明微處理器中使能安全執(zhí)行模式操作的高階方法。流程圖開始于方塊701,于其中,微處理器處于原生未受控模式601。通過SEMENABLE指令的執(zhí)行或使能安全執(zhí)行模式的交替機(jī)制,例如寫入至ー隱藏機(jī)械專用寄存器,傳送ー使能參數(shù),其中,此使能參數(shù)已藉由使用一對非對稱加密密鑰中的一者并根據(jù)非対稱加密算法來被加密,而ー對非対稱加密密鑰中的另ー者已被編程至微處理器中授權(quán)的公開密鑰寄存器內(nèi)。流程繼續(xù)進(jìn)行至方塊702。在方塊702中,利用在微處理器內(nèi)的加密單元,解密此使能參數(shù)以擷取用來使能安全執(zhí)行模式的一有效指令以及擷取在存儲器內(nèi)加密安全編碼的指針。在BIOS中指向安全編碼的另一指標(biāo)以及任何加密的初始化數(shù)據(jù)也一起被提供。流程繼續(xù)進(jìn)行至方塊703。在方塊703中,加密的安全編碼通過系統(tǒng)總線而被擷取自存儲器/BIOS,且被解密。此安全編碼與數(shù)據(jù)接著藉由使用一處理器密鑰并根據(jù)ー對稱密鑰算法來被加密,其中,此處理器密鑰對于本發(fā)明的每ー處理器而言是獨特的,且在制造時被編程至ー處理器密鑰寄存器。此對稱加密的安全編碼與數(shù)據(jù)接著通過私密總線而被寫入至一安全非易失性存儲器,其中,此私密總線隔離于系統(tǒng)總線資源。寫入至安全非易失性存儲器的部分程序包括在寫入對稱加密編碼與數(shù)據(jù)之前,對存儲器執(zhí)行隨機(jī)寫入。流程繼續(xù)進(jìn)行至方塊704。在方塊704中,微處理器內(nèi)非易失性使能指示寄存器被寫入,以指示出安全執(zhí)行模式被使能。在一實施例中,非易失性使能指示寄存器包括多字元,且這些位中的一者被寫入以在安全執(zhí)行模式毎次被使能時用來指示出安全執(zhí)行模式被使能。這些位中另ー者被寫入以指示出返回至原生未受控模式。因此,根據(jù)本發(fā)明的256位非易失性使能指示寄存器允許了 128次由非安全執(zhí)行模式至安全執(zhí)行模式的轉(zhuǎn)換。流程繼續(xù)進(jìn)行至方塊705。在方塊705中,重置微處理器,即完成本發(fā)明微處理器中使能安全執(zhí)行模式操作的方法。圖8的流程圖800強(qiáng)調(diào)用來在本發(fā)明的微處理器中禁能安全執(zhí)行模式操作的高階方法。即是,流程圖800敘述操作在安全執(zhí)行模式的安全編碼如何命令微處理器返回至原生未受控模式。流程開始于方塊801,于其中,正于安全執(zhí)行模式執(zhí)行安全編碼。流程繼續(xù)進(jìn)行至方塊802。在方塊802中,安全編碼于安全執(zhí)行模式執(zhí)行至非安全執(zhí)行模式的返回(return),亦即執(zhí)行安全執(zhí)行模式禁能指令。在一實施例中,當(dāng)安全編碼執(zhí)行對ー SEM機(jī)械專用寄存器的寫入?yún)?,開始實施至非安全執(zhí)行模式的返回(返回至一非安全執(zhí)行模式),其導(dǎo)致一安全例外(secure exception)。程控接著轉(zhuǎn)移至在于安全編碼內(nèi)一地址上的安全例外管理者,其中,此地址由前述安全中斷描述符號窗體的內(nèi)容來提供。在一實施例中,安全例外管理者對ー機(jī)械專用寄存器執(zhí)行寫入,以指示接受此返回。假使,此機(jī)械專用寄存器沒有被正確地寫入,此返回被忽略,且微處理器維持在安全執(zhí)行模式。假使交握被確認(rèn),則流程繼續(xù)進(jìn)行至方塊803。在判斷方塊803中,評估非易失性使能指示寄存器的內(nèi)容,以判斷是否禁能安全執(zhí)行模式(支持返回至非安全執(zhí)行模式)。假使沒有被禁能(支持返回至非安全執(zhí)行模式),流程繼續(xù)進(jìn)行至方塊806。假使于此非易失性使能指示寄存器的多字元允許至非安全 執(zhí)行模式的返回,流程則繼續(xù)進(jìn)行至方塊804。在方塊806中,維持安全執(zhí)行模式,且控制權(quán)返回至安全編碼。在方塊804中,更新非易失性使能指示寄存器,以指示此微處理器正操作在非安全執(zhí)行模式。流程繼續(xù)進(jìn)行至方塊805。在方塊805中,微處理器的狀態(tài)返回至原生未受控模式,即完成本發(fā)明的微處理器中禁能安全執(zhí)行模式操作的方法。圖9表示流程圖900,其詳細(xì)說明本發(fā)明微處理器內(nèi)初始化安全編碼執(zhí)行的方法。即是,流程圖900的方法包括圖7的流程圖700的更詳細(xì)說明。流程開始于方塊901,于其中,本發(fā)明的微處理器正于原生未受控模式中執(zhí)行非安全應(yīng)用程序。流程繼續(xù)進(jìn)行至方塊902。在方塊902中,在非安全執(zhí)行模式的一操作系統(tǒng)執(zhí)行SEMENABLE指令或交替的機(jī)制(例如寫入至一機(jī)械專用寄存器),其傳送ー個或多個使能參數(shù),其中,此ー個或多個使能參數(shù)是根據(jù)屬于授權(quán)者的私密密鑰來被非対稱地加密。此ー個或多個使能參數(shù)包括用來指向被執(zhí)行的非対稱加密安全編碼的指針,此指針可儲存在系統(tǒng)存儲器以及/或BIOS存儲器。流程繼續(xù)進(jìn)行至方塊903。在方塊903中,微處理器使用一對應(yīng)的授權(quán)的公開密鑰來對傳送的ー個或多個使能參數(shù)進(jìn)行解密。在一實施例中,于微處理器的制造期間,此授權(quán)的公開密鑰被編程至一非易失性授權(quán)的公開密鑰寄存器。在另ー交替的實施例中,此授權(quán)的公開密鑰被編程至本發(fā)明的安全非易失性存儲器內(nèi)的一位置,且根據(jù)微處理器的初始開機(jī),此授權(quán)的公開密鑰自此安全非易失性存儲器被擷取,且此授權(quán)的公開密鑰被編程至非易失性授權(quán)的公開密鑰寄存器,接著,在安全非易失性存儲器內(nèi)的此位置被清除。流程繼續(xù)進(jìn)行至方塊904。在方塊904中,判斷解密的使能參數(shù)是否有效。假使有效,流程繼續(xù)進(jìn)行至方塊905。假使無效,流程則繼續(xù)進(jìn)行至方塊907。在方塊905中,由于已判斷出此使能參數(shù)是有效的,則執(zhí)行多隨機(jī)寫入于安全非易失性存儲器的所有位置以清除安全非易失性存儲器的內(nèi)容。流程則繼續(xù)進(jìn)行至方塊906。在判斷方塊906中,加密的安全編碼自系統(tǒng)存儲器/以及或BIOS存儲器被擷取。接著,使用授權(quán)的公開密鑰并根據(jù)非対稱密鑰算法來對此加密的安全編碼進(jìn)行解密。在一實施例中,在微處理器中執(zhí)行邏輯電路內(nèi)的一加密單元用來解密此加密的安全編碼。在一實施例中,此加密単元能執(zhí)行AES加密操作、SHA-I哈希操作以及RSA加密操作。解密后的安全編碼接著被解壓縮,且被檢查格式是否正確。假使解密后的安全編碼格式正確,流程繼續(xù)進(jìn)行至方塊908。假使解密后的安全編碼格式不正確,流程則繼續(xù)進(jìn)行至方塊907。在方塊907中,由于解密后的使能參數(shù)是無效的,程控則返回至非安全執(zhí)行模式。在方塊908中,解密的安全編碼(以及對應(yīng)的初始數(shù)據(jù),若有的話)藉由使用處理器密鑰并根據(jù)對稱密鑰算法來加密,其中,此處理器密鑰是此微處理器所獨有的,且在制造時編程至一非易失性處理器密鑰暫存器內(nèi)。在一實施例中,此對稱密鑰為128位的AES密鑰,且此微處理器利用其加密單元來對安全編碼執(zhí)行AES加密。流程繼續(xù)進(jìn)行至方塊909。在方塊909中,此微處理器建立加密安全編碼中ー個或多個段落的ー個或多個哈希。在一實施例中,微處理器內(nèi)的加密單元用來建立加密編碼的ー個或多個SHA-I哈希。流程繼續(xù)進(jìn)行至方塊910。 在方塊910中,微處理器通過私密總線將加密的安全編碼(以及數(shù)據(jù),若有的話)以及此一個或多個哈希寫入至安全非易失性存儲器,其中,此私密總線隔離于系統(tǒng)總線資源。此安全編碼與數(shù)據(jù)被加密,因此阻止了安全編碼內(nèi)容的偵測。流程繼續(xù)進(jìn)行至方塊911。在步驟911中,設(shè)定非易失性使能指示寄存器以指示安全執(zhí)行模式被使能。流程繼續(xù)進(jìn)行至方塊912。在方塊912中,于微處理器內(nèi)執(zhí)行安全執(zhí)行模式使能重置序列(resetsequence) 0此重置序列包括硬件檢查(如同圖5中相關(guān)的討論)以及初始化安全易失性存儲器為多隨機(jī)數(shù),即完成本發(fā)明的微處理器內(nèi)初始化安全編碼執(zhí)行的方法。接著參閱圖10,流程圖1000表示本發(fā)明微處理器中執(zhí)行安全執(zhí)行模式使能重置操作的方法,其中,此微處理器已使能安全執(zhí)行模式的操作。流程開始于方塊1001,其中,當(dāng)微處理器完成安全執(zhí)行模式的初始化吋,微處理器執(zhí)行安全執(zhí)行模式使能重置串行。流程繼續(xù)進(jìn)行至方塊1002。在方塊1002中,微處理器執(zhí)行多處理器誠實性檢查,包括安全非易失性存儲器、電池與石英器的偵測與確認(rèn)。此外,核對總線時鐘的存在與頻率誠實性,并確認(rèn)提供給總線終端與微處理器供應(yīng)電源的適當(dāng)電壓。微處理器的溫度確認(rèn)處于一可接受的范圍內(nèi)。流程繼續(xù)進(jìn)行至方塊1003。在方塊1003中,微處理器執(zhí)行非易失性存儲器連結(jié)(connectivity)與哈希檢查。自安全非易失性存儲體內(nèi)一位置讀取安全簽章,并對此安全簽章進(jìn)行解密。解密后的簽章被核對以證實非易失性存儲器沒有被泄漏。此外,微處理器亦讀取安全非易失性存儲器的特定位置與對應(yīng)的哈希。通過加密(即AES/HASH/RSA)單元,產(chǎn)生被選擇位置的確認(rèn)哈希,且與被讀取的哈希進(jìn)行比較。流程繼續(xù)進(jìn)行至方塊1004。在方塊1004中,微處理器執(zhí)行安全實時時鐘的確認(rèn)。在一實施例中,安全執(zhí)行模式實時時鐘估計石英器的狀態(tài),以偵測在頻率上大于百分的五的改變,因此表示出石英器與在電池電壓上大于百分的五的改變,且表不出潛在的安全威脅征兆。假使上述確認(rèn)檢查的任一者產(chǎn)生不利的結(jié)果,根據(jù)偵測到事件的嚴(yán)重性與次數(shù),安全執(zhí)行模式使能重置串行將使此事件被記錄下來,或者迫使微處理器進(jìn)入降級模式,或硬件關(guān)機(jī)模式。流程繼續(xù)進(jìn)行至方塊1005。在方塊1005中,自非易失性存儲器(系統(tǒng)存儲器以及/或BIOS存儲器)擷取加密的安全編碼以及數(shù)據(jù)。流程繼續(xù)進(jìn)行至方塊1006。在方塊1006中,譯碼與解壓縮加密的安全編碼,且確認(rèn)格式正確后,安全編碼接著被加載至微處理器內(nèi)的安全易失性存儲器。流程繼續(xù)進(jìn)行至方塊1007。在方塊1007中,初始化微處理器內(nèi)的安全資源。這些安全資源無法被非安全編碼所得知或存取,且只對于在安全執(zhí)行模式中執(zhí)行的安全編碼而言是可利用的。這些資源包括安全定時器、安全中斷以及安全例外,且包括安全中斷描述符號窗體、以及任何安全機(jī)械專用寄存器或為了安全編碼的執(zhí)行而必須被初始化的其它寄存器。初始化包括非安全中斷、非安全例外、非安全追蹤以及除錯邏輯電路的禁能,也包括微處理器的任何電源管理邏輯電路的禁能,其中包括導(dǎo)致核心電壓、核心時鐘頻率的變化或者使能或禁能其它組件(例如高速緩存、分支預(yù)測單元等等)的任何組件。流程繼續(xù)進(jìn)行至方塊1008。在方塊1008中,初始化微處理器內(nèi)的非安全的高速緩存(即LI高速緩存、L2高速緩存)為亂數(shù)。流程繼續(xù)進(jìn)行至方塊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)移至安全編碼,非常類似X86SYSENTER指令的操作。第二種方法是,當(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)。在x86實施例中,此SRESUME指令以與x86 RESUME相似的方法來操作。即是,預(yù)先儲存在安全易失性存儲器中的程序狀態(tài)被恢復(fù)(restored),且程控轉(zhuǎn)移至操作系統(tǒng)或非安全編碼。第二種方法是考慮強(qiáng)迫一安全例外,其中,藉由對只可由安全編碼來存取的一機(jī)械專用寄存器執(zhí)行寫入,微處理器的安全組件可存取此安全例外。假使確認(rèn)微處理器將返回至非安全執(zhí)行模式,接著產(chǎn)生被操作系統(tǒng)指明且處理的一非安全機(jī)械檢查例外,因此影響至非安全執(zhí)行模式的返回。圖11的流程圖1100提出強(qiáng)迫此安全例外以返回至非安全執(zhí)行模式,而此技術(shù)領(lǐng)域中具有通常知識者將理解,SRESUME指令的執(zhí)行導(dǎo)致微處理器去執(zhí)行下文所述的相似步驟。因此,流程持續(xù)于方塊1102,于其中,將安全編碼寫入至安全執(zhí)行模式機(jī)械專用寄、存器(SEM MSR)。SEM MSR即是,只可被執(zhí)行在安全執(zhí)行模式下的安全編碼所存取且得知的多機(jī)械專用寄存器中的一者。流程繼續(xù)進(jìn)行至方塊1103。在方塊1103中,寫入至安全執(zhí)行模式機(jī)械專用寄存器產(chǎn)生了由SEM邏輯電路內(nèi)安全例外邏輯電路所處理的安全例外。流程繼續(xù)進(jìn)行至方塊1104。在方塊1104中,安全例外邏輯電路(例如安全中斷描述符號窗體)導(dǎo)致程控分支至安全編碼內(nèi)的安全例外管理者。流程繼續(xù)進(jìn)行至方塊1105。在方塊1105中,安全例外管理者響應(yīng)一授權(quán)的例外編碼。此安全例外管理者執(zhí)行至安全編碼的返回,藉以將一授權(quán)的例外編碼傳送回安全編碼。流程繼續(xù)進(jìn)行至方塊1106。在方塊1106中,判斷由安全例外管理者所響應(yīng)的例外編碼是否正確。假使此例外編碼不正確,則假設(shè)有一安全風(fēng)險,且流程繼續(xù)進(jìn)行至方塊1112。假使此例外編碼正確,則安全編碼與安全例外管理者之間的交握則被確認(rèn)以指示返回至非安全執(zhí)行模式,且流程繼續(xù)進(jìn)行至方塊1107。 在方塊1112中,維持安全執(zhí)行模式,且控制權(quán)返回至安全編碼。在方塊1107中,微處理器執(zhí)行多隨機(jī)寫入于安全非易失性存儲器的所有位置以清除安全非易失性存儲器的內(nèi)容。安全應(yīng)用程序利用微處理器內(nèi)的一隨機(jī)數(shù)產(chǎn)生器來產(chǎn)生隨機(jī)數(shù)數(shù)據(jù)且對安全非易失性存儲器內(nèi)的所有位置執(zhí)行隨機(jī)寫入。流程繼續(xù)進(jìn)行至方塊1108。在方塊1108中,微處理器藉由將“O”寫入至安全非易失性存儲器的每一位置,來清除安全非易失性存儲器的每一位置。流程繼續(xù)進(jìn)行至方塊1109。在方塊1109中,設(shè)定非易失性使能指示寄存器以指示安全執(zhí)行模式被禁能,亦即,微處理器正操作在一非安全執(zhí)行模式中。其受限于安全執(zhí)行模式可被禁能的次數(shù),如同前文關(guān)于圖8的說明。流程繼續(xù)進(jìn)行至方塊1110。在方塊1110中,安全例外邏輯電路產(chǎn)生一機(jī)械檢查例外,此外回應(yīng)一狀態(tài)參數(shù)(亦即例外編碼指示狀態(tài))來將程控轉(zhuǎn)移至非安全應(yīng)用程序中之一。因此,在非安全執(zhí)行模式下的操作系統(tǒng)處理此機(jī)械檢查例外,且完成返回至非安全執(zhí)行模式。流程繼續(xù)進(jìn)行至方塊 1111。在方塊1111中,即完成本發(fā)明微處理器中終止安全執(zhí)行模式操作的方法。圖12表不一安全實時時鐘1200的詳細(xì)方塊圖,其位于本發(fā)明的微處理中的SEM邏輯電路內(nèi)。安全實時時鐘1200只可由正操作在安全執(zhí)行模式下的安全編碼來得知且存取。安全實時時鐘包括振蕩器1201,其通過信號VP耦接電池且通過信號Cl及C2來耦接石英器。此振蕩器產(chǎn)生振蕩輸出電壓信號V0,且信號VO耦接計數(shù)器1202。此計數(shù)器產(chǎn)生輸出信號CNT0,且輸出信號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、XTAL以及雙向總線 ΜΕ來提供的多輸出。此微處理器通過雙向總線 ΜΕ提供輸入至此安全實時時鐘。振蕩器1201與計數(shù)器1202是專用的,即是除了被提供來允許微處理器通過雙向總線TIME對安全實時時鐘進(jìn)行讀取和寫入的組件以外,他們無法共享其它電路系統(tǒng)或微處理器的其它組件。此外,只要電池通過信號VP提供可接受的電壓時,安全實時時鐘持續(xù)其計數(shù)。在一交替的實施例中,電池電壓信號VP是由系統(tǒng)板上的電容器所產(chǎn)生,以代替只要系統(tǒng)板開機(jī)而持續(xù)被充電的電池。在操作上,振蕩器1201產(chǎn)生振蕩輸出電壓信號V0,其與石英器的頻率成比例,且此振蕩輸出電壓被提供至計數(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也包括多寄存器(未顯示),其可通過雙向總線 ΜΕ而被微處理器來讀取與寫入。此外,轉(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ā)明的一目的是修改負(fù)責(zé)安全編碼的微處理器,這是因為,相對于著重在修改芯片組或其它組件的其它技術(shù),只有微處理器可提供及時執(zhí)行安全。使用隔離芯片來監(jiān)控微處理器的方法有許多的內(nèi)在安全性缺陷,且對于安全相關(guān)的執(zhí)行而言效能也明顯地降低。根據(jù)本發(fā)明中以x86為基礎(chǔ)的實施例,由于x86程序化技術(shù)的普遍性,安全編碼的發(fā)展相當(dāng)?shù)仄揭住86架構(gòu)已被得知,且對于精通非安全x86應(yīng)用發(fā)展的任何程序設(shè)計者而言,機(jī)械專用指令的附加與專用指令(例如SEMENABLE、SEMENTER、及SRESUME指令)僅提供較少的學(xué)習(xí)挑戰(zhàn)。此外,對于微處理器的附加安全執(zhí)行能力的成本遠(yuǎn)小于額外芯片組被加至系統(tǒng)設(shè)計所呈現(xiàn)的成本。此外,由于安全執(zhí)行環(huán)境被提供至微處理器本身之內(nèi),因此內(nèi)在地對抗那些物理或從屬通道攻擊,其不需要附加外部電路。此處所揭露的技術(shù)非常有利地提供安全的微處理器操作環(huán)境,在此環(huán)境中,會被泄漏的一般機(jī)密(例如一般加密密鑰或程序架構(gòu))不會儲存于其中。即是,本發(fā)明的每ー處理器只具有需要被特定處理器或系統(tǒng)授權(quán)、控制等等的機(jī)密。來自ー處理器/系統(tǒng)的機(jī)密不會破壞在另ー處理器/系統(tǒng)的安全性。此外,得知如何破壞在ー處理器的安全性,應(yīng)當(dāng)不會使其更容易地去破壞其它處理器上的安全性。即是,這是由于獨特的處理器密鑰,此獨特的處理器密鑰是由在安全非易失性存儲器總線上的數(shù)據(jù)傳輸所提供且導(dǎo)致的,其中,這些數(shù)據(jù)傳輸系使用此密鑰來加密。與提供對抗俗稱拒絕服務(wù)攻擊(denial-of-service attack)的保護(hù)的習(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ā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求書所界定者為準(zhǔn)。
權(quán)利要求
1.ー種微處理器裝置,用以在一安全執(zhí)行環(huán)境中執(zhí)行安全編碼,該微處理器裝置包括 一微處理器,用于執(zhí)行多個非安全應(yīng)用程序與一安全應(yīng)用程序,該微處理器包括 一安全執(zhí)行模式邏輯電路,用以提供在該微處理器內(nèi)的一安全執(zhí)行模式,以執(zhí)行該安全應(yīng)用程序,其中,在進(jìn)入該安全執(zhí)行模式時以及在退出該安全執(zhí)行模式時,該安全執(zhí)行模式邏輯電路根據(jù)該微處理器的狀態(tài)是否處于該安全執(zhí)行模式,而將該微處理器的狀態(tài)記錄在一非易失性使能指示寄存器;以及 一安全非易失性存儲器,通過ー私密總線而耦接該微處理器,用以儲存該安全應(yīng)用程序,其中該微處理器與該安全非易失性存儲器之間通過該私密總線的傳輸與該微處理器內(nèi)的所有系統(tǒng)總線以及位于該微處理器的系統(tǒng)總線資源相隔離, 其中,在該安全執(zhí)行模式中,安全應(yīng)用程序與非安全應(yīng)用程序都可執(zhí)行,但是非安全應(yīng)用程序無法存取安全資源。
2.如權(quán)利要求I所述的微處理器裝置,其中,該安全執(zhí)行模式邏輯電路利用該微處理器內(nèi)的多個加密資源,以使用一處理器獨特加密密鑰并根據(jù)ー對稱密鑰演算法來對該安全應(yīng)用程序進(jìn)行加密,以儲存在該安全非易失性存儲器內(nèi)。
3.如權(quán)利要求I所述的微處理器裝置,其中,該安全執(zhí)行模式邏輯電路利用該微處理器內(nèi)的多個加密資源來對該安全應(yīng)用程序進(jìn)行存取、確認(rèn)以及解密。
4.如權(quán)利要求I所述的微處理器裝置,其中,該微處理器的一安全編碼接ロ邏輯電路將該安全應(yīng)用程序加載至一安全隨機(jī)存取存儲器,以由該微處理器執(zhí)行。
5.如權(quán)利要求I所述的微處理器裝置,其中,當(dāng)進(jìn)入至該安全執(zhí)行模式時,該安全執(zhí)行模式邏輯電路根據(jù)禁能該安全應(yīng)用程序得知察覺的所有系統(tǒng)資源。
6.如權(quán)利要求5所述的微處理器裝置,其中,該安全執(zhí)行模式邏輯電路監(jiān)控該微處理器與潛在篡改相關(guān)的狀態(tài),且該安全執(zhí)行模式邏輯電路根據(jù)所述狀態(tài)之一使該微處理器轉(zhuǎn)換至ー降級模式或一硬件關(guān)機(jī)模式。
7.如權(quán)利要求6所述的微處理器裝置,其中,該安全執(zhí)行模式邏輯電路包括 一安全執(zhí)行模式監(jiān)控邏輯電路,用以監(jiān)控該安全應(yīng)用程序與相關(guān)數(shù)據(jù)的誠實性,且監(jiān)控該微處理器的環(huán)境與物理特性 一安全執(zhí)行模式中斷邏輯電路,用以提供多個中斷,其中,當(dāng)該安全應(yīng)用程序執(zhí)行在該安全執(zhí)行模式時,所述中斷只由該安全應(yīng)用程序所得知及存取以及 一安全執(zhí)行模式實時時鐘,該安全執(zhí)行模式實時時鐘為持續(xù)操作的,且當(dāng)該安全應(yīng)用程序執(zhí)行在該安全執(zhí)行模式時,該安全執(zhí)行模式實時時鐘只由該安全應(yīng)用程序所得知及存取。
8.如權(quán)利要求I所述的微處理器裝置,其中,在該安全應(yīng)用程序執(zhí)行之前,該安全執(zhí)行模式邏輯電路禁能該微處理器內(nèi)的一非安全中斷邏輯電路、一非安全例外邏輯電路以及一電源管理邏輯電路。
9.ー種在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,包括 提供一安全非易失性存儲器,以儲存一安全編碼; 通過實現(xiàn)于ー私密總線上的多個私密數(shù)據(jù)傳輸來將該安全編碼儲存在該安全非易失性存儲器,其中,該私密總線耦接該安全非易失性存儲器;進(jìn)入ー微處理器內(nèi)的一安全執(zhí)行模式,以執(zhí)行該安全編碼,其中,進(jìn)入該安全執(zhí)行模式的步驟包括 根據(jù)該微處理器的狀態(tài)處于該安全執(zhí)行模式,將該微處理器的狀態(tài)記錄至一非易失性使能指不寄存器; 通過該私密總線自該安全非易失性存儲器擷取該安全編碼,以由該微處理器執(zhí)行;以及 在該安全執(zhí)行模式內(nèi)執(zhí)行該安全編碼; 其中,該私密總線隔離于該微處理器內(nèi)的所有系統(tǒng)總線資源且位于該微處理 器的外部,且該私密總線只由該微處理器內(nèi)的一安全執(zhí)行邏輯電路所得知與存取,以及 其中,在該安全執(zhí)行模式中,安全應(yīng)用程序與非安全應(yīng)用程序都可執(zhí)行,但是非安全應(yīng)用程序無法存取安全資源。
10.如權(quán)利要求9所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中,將該安全編碼儲存在該安全非易失性存儲器的步驟更包括 利用該微處理器內(nèi)的多個加密資源,以藉由使用一處理器獨特加密密鑰并根據(jù)ー對稱密鑰算法來對該安全編碼進(jìn)行加密,以儲存在該安全非易失性存儲器內(nèi)。
11.如權(quán)利要求9所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中,擷取該安全編碼的步驟包括 利用該微處理器內(nèi)的多個加密資源來對該安全編碼進(jìn)行存取、確認(rèn)以及解密。
12.如權(quán)利要求9所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中,擷取該安全編碼的步驟包括 將該安全編碼加載至一安全隨機(jī)存取存儲器,以由該微處理器執(zhí)行。
13.如權(quán)利要求9所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中,進(jìn)入該安全執(zhí)行模式的步驟包括 當(dāng)進(jìn)入至該安全執(zhí)行模式吋,禁能該安全編碼得知察覺的所有系統(tǒng)資源。
14.如權(quán)利要求13所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中,在該安全執(zhí)行模式內(nèi)執(zhí)行該安全編碼的步驟更包括 監(jiān)控該微處理器與潛在篡改相關(guān)的狀態(tài),且根據(jù)所述狀態(tài)之ー使該微處理器轉(zhuǎn)換至ー降級模式或一硬件關(guān)機(jī)模式。
15.如權(quán)利要求14所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中,在該安全執(zhí)行模式內(nèi)執(zhí)行該安全編碼的步驟更包括 監(jiān)控該安全編碼與相關(guān)數(shù)據(jù)的誠實性,且監(jiān)控該微處理器的環(huán)境與物理特性; 提供多個中斷,其中,在該安全執(zhí)行模式內(nèi)執(zhí)行該安全編碼的期間,所述中斷只由該安全編碼所得知及存??;以及 提供ー持續(xù)操作的安全執(zhí)行模式實時時鐘,其中,在該安全執(zhí)行模式內(nèi)執(zhí)行該安全編碼的期間,該安全執(zhí)行模式實時時鐘只由該安全編碼所得知及存取。
16.如權(quán)利要求9所述的在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,其中,在該安全執(zhí)行模式內(nèi)執(zhí)行該安全編碼的步驟更包括 在該安全應(yīng)用程序執(zhí)行之前,禁能該微處理器內(nèi)的一非安全中斷邏輯電路、一非安全例外邏輯電路以及ー電源管理邏輯電路。
全文摘要
一種提供安全執(zhí)行環(huán)境的微處理器裝置,其包括微處理器及安全非易失性存儲器。微處理器執(zhí)行多個非安全應(yīng)用程序與一安全應(yīng)用程序。非安全應(yīng)用程序通過系統(tǒng)總線而存取自系統(tǒng)存儲器。微處理器包括安全執(zhí)行模式邏輯電路,其在微處理器內(nèi)提供安全執(zhí)行模式以執(zhí)行安全應(yīng)用程序。安全執(zhí)行模式邏輯電路根據(jù)微處理器的狀態(tài)是否處于安全執(zhí)行模式,而將微處理器的狀態(tài)記錄在非易失性使能指示寄存器。安全非易失性存儲器通過私密總線而耦接微處理器以儲存安全應(yīng)用程序。在私密總線上微處理器與安全非易失性存儲器的間的數(shù)據(jù)傳輸,隔離于系統(tǒng)總線以及微處理器內(nèi)的對應(yīng)系統(tǒng)總線資源。
文檔編號G06F21/02GK102722675SQ20121007586
公開日2012年10月10日 申請日期2009年4月29日 優(yōu)先權(quán)日2008年5月24日
發(fā)明者G.葛蘭.亨利, 泰瑞.派克斯 申請人:威盛電子股份有限公司