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

提供安全執(zhí)行環(huán)境的裝置及其執(zhí)行安全編碼的方法

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

發(fā)明內(nèi)容
本發(fā)明適用于解決前述問題與對付習知技術的其他問題、缺點與限制。本發(fā)明提供較佳的技術,以在一般目的微處理器平臺上使能安全應用程序的執(zhí)行。在一實施例中,揭露一種提供安全執(zhí)行環(huán)境的裝置,包括微處理器以及安全非易失性存儲器。微處理器執(zhí)行多個非安全應用程序與 一安全應用程序。這些非安全應用程序透過系統(tǒng)總線而存取自系統(tǒng)存儲器,且此安全應用程序在安全執(zhí)行模式中執(zhí)行。微處理器包括安全監(jiān)控邏輯電路,用來監(jiān)控對應微處理器與安全應用程序的多個環(huán)境屬性,且將程序控制轉移至安全應用
程序內(nèi)多個事件管理者之一。安全非易失性存儲器透過私密總線耦接^:處理
器,用以儲存安全應用程序。在私密總線上微處理器與安全非易失性存儲器之間的多個數(shù)據(jù)傳輸,隔離于系統(tǒng)總線以及微處理器內(nèi)的多個對應系統(tǒng)總線資源。
本發(fā)明的又一 實施例提供一種在安全執(zhí)行環(huán)境中執(zhí)行安全編碼的方法,包括提供安全非易失性存儲器,以儲存一安全編碼。安全編碼藉由實現(xiàn)在私密總線上的多個私密數(shù)據(jù)傳輸而存取自安全非易失性存儲器,且私密總線耦接安全非易失性存儲器與微處理器之間。私密總線隔離于微處理器內(nèi)的所有系統(tǒng)總線資源且配置在微處理器的外部,且私密總線只由微處理器的安全執(zhí)行邏輯電路所得知及存取。此方法更包括監(jiān)控對應^f鼓處理器該安全編碼的多
個環(huán)境屬性;以及將程序控制轉移至安全編碼內(nèi)多個事件管理者之一。
關于產(chǎn)業(yè)應用性,本發(fā)明可實現(xiàn)于一微處理器內(nèi),且此微處理器系使用于一般目的或特殊目的之電腦裝置。


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