專利名稱:安全及后向兼容處理器以及在其上的安全軟件的執(zhí)行的制作方法
安全及后向兼容處理器以及在其上的安全軟件的執(zhí)行
背景技術:
1. 發(fā)明領域
本發(fā)明涉及安全處理器,并涉及在其上的安全軟件的執(zhí)行,例如涉及能夠安全執(zhí)行 應用軟件的安全處理器。
2. 相關技術
在已知的計算系統(tǒng)中,當考慮計算系統(tǒng)的價值時,處理能力的可用性不再是重要的 限制,所述處理能力例如由微處理器和其它處理設備所提供。而由那些處理器來執(zhí)行(并 由那些處理器來呈現(xiàn))的應用軟件和多媒體內容的可用性,或者更準確地說,授權來使 用該應用軟件和多媒體內容己成為實際上的限制。這種情況的一個結果是許多計算系統(tǒng) 的實際價值在于在該設備或平臺上所執(zhí)行的應用軟件和多媒體內容。應用軟件和多媒體 內容變得更容易傳播,例如使用通信網(wǎng)絡,或通過使用廉價的CD-ROM介質進行傳播, 從而導致防止未授權復制和傳播(有時稱作"軟件私有權")具有經(jīng)濟上的重要意義。 因此,現(xiàn)有技術中的一個問題是確保這種有價值的應用軟件和多媒體內容只有在被授權 時才可以在處理器上使用,例如已經(jīng)對這種權利付費,或內容的真實性已經(jīng)根據(jù)來自可 信的內容發(fā)布實體的信息而得到驗證。
現(xiàn)有技術的另一問題在于,希望向應用軟件和多媒體內容提供這樣的特性,使得在 沒有授權或更改的情況下不能在處理器上使用該應用軟件和多媒體內容,而同時卻不希 望重新設計或重新編寫該應用軟件或多媒體內容以提供該特性。存在大量的可用應用軟 件和多媒體內容集,并且應用軟件和多媒體內容的價值相當大,所以改變該應用軟件或 該多媒體內容的方案可能很昂貴,不可靠并且不實用。
因此,無需實質性地改變原應用軟件或多媒體內容,而將應用軟件和多媒體內容限 制到那些授權有該應用軟件和多媒體內容的處理器是很有利的。
發(fā)明內容
本發(fā)明提供了一種安全處理器,和一種使用該安全處理器的方法和系統(tǒng),其能夠確 保應用軟件安全地執(zhí)行,并能夠確保只執(zhí)行被授權的應用軟件和只顯示被授權的多媒體 內容。另外,確保被授權內容只能在已經(jīng)購買該內容的權利或許可的設備上播放并能夠
被驗證也是重要的。所述安全處理器包括兩種工作模式,監(jiān)視模式和安全模式。前者對 該應用軟件透明地執(zhí)行應用軟件。后者驗證所述應用軟件的執(zhí)行(和多媒體內容的顯示) 是得到授權的,并執(zhí)行由該應用軟件所需的任何特別服務。所述安全處理器對于該應用 軟件可以呈現(xiàn)為與普通的處理器相同的硬件,從而,為普通處理器編寫的應用軟件無需 實質改變就可以在該安全處理器上執(zhí)行。所述安全處理器在其呈現(xiàn)為與普通處理器硬件 相同的部分上只需要附加很少的硬件,從而該安全處理器可以運行而在實際上不會降低 速度和對于應用軟件可用的其它資源。在一個實施例中,所述安全處理器的一部分實際 上與原普通處理器的半導體芯片相同(除了使用不同的芯片尺寸和制造技術的情況), 從而實際上確保了所述應用軟件在所述安全處理器上的執(zhí)行就如同在原普通處理器上 的執(zhí)行一樣。
在一個實施例中,安全處理器以安全模式加電啟動執(zhí)行。在該啟動運行階段,安全 處理器以安全模式執(zhí)行安全代碼。該安全代碼被保存在安全處理器芯片內部的永久存儲 器中并因此是可信的。該安全代碼從一個或多個可信的源加載附加的源代碼,從而參考 也保存在安全處理器芯片內部的永久存儲器中的并且是可信的安全信息,來驗證這些源 的可信性和附加源代碼的真實性。所述安全信息可以包括但不必限于加密密鑰、安全
散列值(secure hash value),或其它用來驗證可信源和驗證附加源代碼的真實性的數(shù)據(jù)。 一旦被加載,所述附加源代碼就能使安全處理器從可信源請求應用軟件,驗證該安 全處理器是否有權執(zhí)行所請求的應用軟件,驗證該應用軟件是否己經(jīng)被正確加載,并檢 查該應用軟件的完整性。在本發(fā)明的環(huán)境中,并不特別要求所述永久存儲器或是可信源 具有在此所述的特定實現(xiàn)方式。例如,但不是為了以任何方式進行限定,永久存儲器或 一個或多個可信源可以使用連接到安全處理器的硬件設備來代替或補充(例如,由用 戶)。在該例子中,安全處理器在信任由該源加載的任何代碼之前,將驗證該連接的完 整性,驗證其真實性,并校正該硬件設備的操作。
所述安全處理器能夠退出安全模式并執(zhí)行己經(jīng)以監(jiān)視模式被正確加載的應用軟件。 應用軟件無需進行實質性的改變就可以以該應用軟件原來的代碼執(zhí)行,從而該應用軟件 處于實質上與普通處理器沒有顯著不同的處理器環(huán)境。當應用軟件需要安全處理器監(jiān)視 的服務時,應用軟件產(chǎn)生中斷,從而使得重新進入安全模式,并將這些服務傳送給應用 軟件,并退出安全模式,從而該應用軟件可以繼續(xù)以監(jiān)視模式執(zhí)行。例如,但不以任何 方式限于,該應用軟件可以請求要被請求、加載和執(zhí)行的額外的應用軟件模塊。其它的 服務還包括,安全處理器可以監(jiān)視i/o操作,所述應用軟件可以使用提供給可由安全處
理器執(zhí)行的安全代碼的API (應用程序編程接口)來請求該I/0操作。
所述安全處理器還可以使用定時器來中斷應用軟件,進入安全模式,執(zhí)行任何所希 望的歩驟,和重新進入監(jiān)視模式。其中,可以使用不只一種技術來進入安全模式,所述 安全處理器能夠確定通過哪一種技術來進入安全模式。所述安全處理器還能夠記錄對外 部存儲器的訪問,從而能夠驗證應用軟件的正確執(zhí)行。其它的特征還包括,安全處理器 還具有監(jiān)視(即,檢査并確認其屬性)I/O操作的能力,或者,安全處理器還具有在應 用軟件的請求下執(zhí)行(優(yōu)選地,在檢查和確認其屬性之后)安全操作的能力。
例如,但不是為了以任何方式進行限制,所述安全處理器能夠檢查在外部存儲器中 應用軟件打算訪問的那些位置。如果應用軟件打算訪問由安全處理器所允許的位置范圍 之外的任何位置,那么安全處理器對此做出響應,確定應用軟件沒有正確執(zhí)行。例如, 但不是為了以任何方式進行限制,在這種例子中,應用軟件可能具有軟件錯誤,或可能 包括軟件病毒,或可能是故意惡意設計的情況。響應于此,安全處理器可以采用合適的 行動來限制任何這種不正確的影響。例如,但仍然不是為了以任何方式進行限制,在這 種例子中,安全處理器可以釆取行動限制應用軟件訪問到那些外部存儲器位置,可能采 取行動停止應用軟件的操作,或可能采取行動對應用軟件執(zhí)行軟件病毒檢査或軟件病毒 清除。
所述安全處理器還能夠代表應用軟件執(zhí)行加密或解密,從而應用軟件無需知曉,對 于其普通操作,正在執(zhí)行加密、解密,或其它安全特征。作為第一個例子,但不是為了 以任何方式進行限制,應用軟件可以執(zhí)行對從服務器、從外部海量存儲器或從外部存儲 器所加載的附加代碼或多媒體內容的真實性檢査,而無需訪問安全處理器的唯一的ID 或密鑰,但是仍然使用安全處理器的安全特征的全部能力。作為第二個例子,但仍然不 是為了以任何方式進行限制,應用軟件可以加密或解密其與外部實體通信的安全信息, 仍然不需要訪問安全處理器的唯一的ID或加密密鑰或解密密鑰,但是仍然使用安全處 理器的安全特征的全部能力。
在一個實施例中,所述安全處理器包括唯一的ID,并能夠使用該唯一的ID (以及 與該唯一的ID相關的唯一的加密或解密密鑰)來特定地識別安全處理器的特定情況。 在這些實施例中,當代表應用軟件執(zhí)行加密或解密時,安全處理器使用該唯一的ID和 唯一的加密或解密密鑰。例如,但不是為了以任何方式進行限制,安全處理器可以代表 應用軟件執(zhí)行加密或解密,從而在與外部實體進行通信時使用該唯一的ID和唯一的加 密或解密密鑰。在一個這樣的例子中,安全處理器可以與外部實體進行通信來進行確認、
交換、或獲得DRM (數(shù)字版權管理)信息。
所述安全處理器在非易失性存儲器(例如,NVROM)中保存著所述唯一的ID、代 碼簽名或密碼散列值(cryptographic hash),和唯一的加密或解密密鑰,以及任何其他的 安全處理器的特殊情況的特異性信息。所述NVROM包括一個非連接(non-bonded)的 引腳,在制造或配置安全處理器期間使用,以記錄安全處理器的特殊情況的特異性信息, 該引腳在制造或配置安全處理器之后保持非連接,從而使NVROM不能被進行第二次擦 寫。
由于具有唯一的ID (和唯一的加密或解密密鑰),包括安全處理器的系統(tǒng)具有多個 優(yōu)點
*使用安全處理器與服務器進行通信是可以追蹤的,因此,嘗試未授權下載應用軟 件或多媒體內容的用戶可以被通知進行付帳。
*由于安全嵌入了唯一的ID和唯一的加密或解密密鑰,所以允許服務器信任安全 處理器,而無需驗證或信任安全處理器的嘗試下載應用軟件或多媒體內容的部分,例如 其安全引導代碼。服務器只需信任制造商來安全嵌入唯一的ID和唯一的加密或解密密 鑰。
*包括安全處理器的系統(tǒng)對于用戶擅改以嘗試截取發(fā)向和來自安全處理器的信號 或在系統(tǒng)中出現(xiàn)的信號具有抵抗力,這是因為與安全處理器進行通信的敏感數(shù)據(jù)為了安 全可以被加密。嘗試危害敏感數(shù)據(jù)的安全將會涉及到對安全處理器芯片的困難的解構過 程。
*在所述安全處理器中,執(zhí)行應用軟件或呈現(xiàn)多媒體內容的CPU基本上與原非安 全處理器相同,因此,嘗試使該安全處理器的安全特征失效也將使得該CPU的所需功 能失效。
*所述安全處理器可以通過CPU安全地驗證執(zhí)行應用軟件或顯示多媒體內容的權 利。例如,但不是為了以任何方式進行限制,可信的服務器(或其它可信的實體,例如 認證機構)可能發(fā)布能夠通過安全處理器驗證其真實性的安全數(shù)字購買收據(jù),例如通過 使用唯一的ID和唯一的加密或加密密鑰。在這些例子中,所述安全數(shù)字購買收據(jù)可唯 一地識別有權執(zhí)行應用軟件或顯示多媒體內容的特定設備(或設備種類)。
*所述安全處理器可以對應用軟件和多媒體內容實施復制禁止或復制保護。例如, 但不是為了以任何方式進行限制,這種內容可以包括(1) 一組允許CPU執(zhí)行的已購買 的應用軟件,或允許CPU呈現(xiàn)的已購買的多媒體內容,(2)能夠使該執(zhí)行或顯示進行
的數(shù)字版權,(3)用于CPU和其它設備之間的信息,例如,對等層消息,但不是為了 限于特定的設備(或設備種類)。
附圖簡述
圖1顯示了一個系統(tǒng)框圖,所述系統(tǒng)包括能夠進行安全執(zhí)行的安全處理器。 圖2a和2b顯示了操作能夠進行安全執(zhí)行的安全處理器的方法流程圖。 圖3顯示了一個電路框圖,所述電路包括用來以實際上非可擦除方式編程非易失性 存儲器的設備。
圖4顯示了操作電路的方法流程圖,所述電路包括用來以實際上非可擦除方式編程 非易失性存儲器的設備。
優(yōu)選實施例的詳細描述 在此說明書中,描述了本發(fā)明的優(yōu)選實施例,包括優(yōu)選的處理歩驟和數(shù)據(jù)結構。本 領域的熟練技術人員將意識到,在熟讀該申請之后,無需過多的實驗或進一步的創(chuàng)新, 有可能使用多種沒有具體描述的其它技術來實現(xiàn)本發(fā)明的實施例,并且這些其它技術將 落入本發(fā)明的范圍和精神內。 詞匯
下面的術語涉及或參考本發(fā)明或其實施例的多個方面。每個術語的一般意義的目的 在于進行說明,而不是為了限制。
*短語"安全處理器"描述了一種設備,所述設備具有確保只有可信的軟件才可以 在子單元上執(zhí)行的能力,所述子單元包括"處理器"或"處理單元"(在此有時稱為 "CPU")。在所述安全處理器內,處理器或處理單元的概念是寬泛的,并且至少包括以
下設備具有通用指令集的通用處理器,具有有限指令集的專用處理器, 一組能夠執(zhí)行 或中斷程序指令的專用電路, 一組能夠仿真任何類型的安全處理器的硬件程序指令,及 其任何合理的概括,等等。
*短語"應用軟件"描述了一組能夠由處理器執(zhí)行或中斷的指令或參數(shù)。在此應注 意,應用軟件的概念是寬泛的,并且至少包括以下項目軟件或硬件程序指令,軟件或 硬件程序參數(shù)值,能夠通過編程語言編譯器編譯或通過編程語言解釋器解釋的源代碼, 用于編譯或解釋編程語言的宏定義,由應用程序接收并對其采取行動的命令或請求,及 其任何合理的概括,等等。
*短語"多媒體內容"描述了能夠呈現(xiàn)給用戶的一組信息或參數(shù)。在此應注意,多 媒體內容的概念是寬泛的,并且至少包括以下項目動畫,視聽電影,靜態(tài)圖片,或聲 音,其或者嵌入在用于通過軟件或硬件程序指令進行解釋和顯示的數(shù)據(jù)中;或者嵌入在 用來產(chǎn)生這些數(shù)據(jù)本身的軟件或硬件程序指令中;或者嵌入在用于多媒體內容的標記語 言中,例如DHTML、 SGML、 VRML、 Macromedia Flash等等;由應用程序接收并對其 進行動作的命令或請求;及其任何合理的概括;等等。
*短語"監(jiān)視模式"和"安全模式"描述了安全處理器的可能的工作狀態(tài)。在此應 注意,監(jiān)視模式和安全模式的概念是寬泛的,并且至少包括以下項目任何可區(qū)別的狀 態(tài),其中由安全處理器執(zhí)行或解釋的指令具有對處理器能力的可區(qū)別的訪問度,并且其 中安全處理器在處于安全模式時能夠執(zhí)行安全處理器處于監(jiān)視模式時的任何類型的監(jiān) 視或限制,等等。
* (由安全處理器對應用軟件)進行透明執(zhí)行和(由處理器對應用軟件)的明顯硬 件識別的概念描述了安全處理器執(zhí)行應用軟件的能力,就該應用軟件來說,就像是該應 用軟件正在普通處理器上執(zhí)行那樣。這具有這樣的效果,即,安全處理器可以執(zhí)行該應 用軟件,而無需對該應用軟件做任何修改,但是仍然能夠保持如在此所描述的安全特征。 僅僅作為一個例子,并不是以任何方式進行限制,安全處理器的一部分可能實際上與原 普通處理器的半導體芯片相同,從而實際上確保了應用軟件如同其在原普通處理器上那 樣在安全處理器上同樣地執(zhí)行。
*短語"加電"描述了處理單元的啟動操作階段,無論其在電源實際變化之后發(fā)生、 在復位信號之后發(fā)生,或者在安全處理器的任何其它實際初始化狀態(tài)之后發(fā)生。如在此 所描述的那樣,加電的概念是寬泛的,并且意圖包括在此所描述的任何啟動操作狀態(tài), 及其概括。
*短語"安全代碼"和"安全引導加載程序代碼"描述了可以由安全處理器解釋或 執(zhí)行的程序指令,并且安全處理器已知該指令是可信的。安全代碼例如可能由于已經(jīng)被 保持在安全處理器芯片的永久存儲器中而被認為是可信的,但不限于此。從這些可信的 安全代碼開始,由于已經(jīng)從可信資源接收并被先前建立的"安全代碼"或"安全引導加 載程序代碼"鑒別為正確,所以附加安全代碼可以被建立為"安全代碼"。在此應注意, 安全代碼的概念是寬泛的,并且意圖包括安全處理器可以信任該代碼的任何程序代碼, 該代碼包括例如用來執(zhí)行安全功能。
*短語"安全功能"和"安全核心軟件"描述了可以由安全處理器解釋或可執(zhí)行的
程序指令,該指令對安全處理器來說已知是可以驗證的,并能夠實現(xiàn)與安全、認證或驗 證相關的功能。例如,但不是為了以任何方式進行限制,包括數(shù)字簽名、加密和解密、 數(shù)字簽名的驗證等的功能可以通過安全功能或安全核心軟件來實現(xiàn)。在一個實施例中, 這種安全功能或安全核心軟件可以使用API (應用程序編程接口)而可以由應用軟件來 使用。在一個實施例中,安全核心軟件通過安全引導加載程序代碼加載并在執(zhí)行之前對 完整性和/或真實性進行驗證。與安全有關的軟件部分包括在"安全代碼"的概念內,所 述軟件部分己經(jīng)被驗證并保存在安全處理器芯片的存儲器內(可能是易失的)。
*短語"安全處理器芯片"(在此有時稱作"芯片")描述了在其上實施安全處理器 的物理硬件。如在此所描述的那樣,安全處理器芯片包括硬件結構和程序指令,對于安 全處理器來說已知是可信的,并且其他人難于干擾或破壞其安全性。
本發(fā)明的范圍和精神并不局限于這些定義中的任何一種,也不局限于在此所提到的 具體例子,相反,本發(fā)明意圖包括由這些和其它術語所體現(xiàn)的最一般的概念。 系統(tǒng)單元
圖1顯示了一個系統(tǒng)框圖,所述系統(tǒng)包括能夠進行安全執(zhí)行的安全處理器。 系統(tǒng)100包括安全處理器110、通信鏈路120、和至少一個軟件或內容發(fā)布器130。
可選地,軟件或內容發(fā)布器130 (在此有時稱為可信的服務器130)可以包括可信的服
務器,所述可信的服務器能夠在線或離線傳送附加內容到安全處理器110或到由安全處
理器110所控制的設備。
在一個實施例中,系統(tǒng)IOO還包括應用設備140,包括至少一個輸入設備141和至
少一個輸出設備142,這些設備在由安全處理器110執(zhí)行的應用軟件143的控制下進行工作。
當安全處理器工作在監(jiān)視模式時,應用設備140可以執(zhí)行任何所需的應用程序。作 為一個例子,但不是以任何方式進行限制,應用設備140可以包括用來播放或參與實時 視聽游戲的設備,例如,可以安裝在電玩機(arcade)或個人計算機中。然而,在本發(fā) 明的上下文中對應用設備140并沒有如此特定的要求。相反,應用設備140通??梢园?括游戲設備;個人計算機或個人工作站;任何手持設備,例如尋呼機,PDA (個人數(shù)字 助理)或其它手持計算機,筆記本或膝上計算機,電話,手表,位置或條件傳感器,生 物測定傳感或報告設備,起博器,電話設備,或遠程尋的設備(remote homing device)。
更概括地說,只要安全處理器110能夠執(zhí)行在此描述的功能,應用設備MO可以包 括遵循計算規(guī)范的任何設備。
為了向芯片附加傳送真實的應用或內容,通信鏈路120可以包括從可信的服務器 130到安全處理器110的通信鏈路。例如,但不是為了以任何方式進行限制,通信鏈路 120可以包括使用因特網(wǎng)或其一部分的通信鏈路,或實時,或使用一個或多個存儲和轉 發(fā)設備,或使用一個或多個中間緩存設備,或通過存儲介質進行物理傳送。然而,在可 選實施例中,通信鏈路120可以包括到專用或公共交換電話網(wǎng)絡的通信鏈路,租用線路 或其它專用通信鏈路,射頻收發(fā)信機,微波收發(fā)信機,無線或有線調制解調器,或其它 能夠代表安全處理器110與可信的服務器130進行通信的設備或系統(tǒng)。更概括地說,通 信鏈路120可以包括任何用來傳送內容的可想象到的技術,例如,從可信的服務器130 物理運送并傳送的存儲介質(例如,CD-ROM)。
可信的服務器130包括例如作為電子分布系統(tǒng)的一部分的內容發(fā)布、傳送或服務實 體。在一個實施例中,可信的服務器130 (可選地)能夠為其分布的任何內容產(chǎn)生數(shù)字 簽名,所述內容例如應用軟件或多媒體內容,從而安全處理器110能夠驗證該內容的真 實性。在一個實施例中,可以使用數(shù)字簽名技術來產(chǎn)生該數(shù)字簽名,所述數(shù)字簽名技術 帶有公用密鑰密碼系統(tǒng),類似屬性的系統(tǒng),或能夠產(chǎn)生可以用來驗證內容的真實性的信 息的其它類型的系統(tǒng)。
在可選實施例中,可信的服務器130可以包括能夠接收包括信息請求的消息并產(chǎn)生 包括對于那些信息請求的響應的消息的邏輯遠程設備。例如,但不是為了以任何方式進 行限制,可信的服務器130可以包括包含高端PC或工作站的因特網(wǎng)服務器。雖然在一 個實施例中,可信的服務器130包括單機服務器,但是,在本發(fā)明的上下文中對可信的 服務器130并沒有如此特定的要求。相反,可信的服務器130通??梢园軌蛉缭诖?所描述那樣進行動作的任何設備,并可以包括硬件元件或軟件元件,或包括兩者。而且, 在本發(fā)明的上下文中,對可信的服務器130包括任何特定元件的組合,或對可信的服務 器130是單個設備,或甚至其包括任何特定設備的全部,并沒有如此特定的要求。相反, 可信的服務器130通??梢园硪粋€設備的一個或多個部分,并通常可以包括不只一 個聯(lián)合或合作工作的設備(或其部分)。更概括地說,如上所述,可信的服務器130可 以包括任何用來產(chǎn)生或封裝傳送內容的可能想到的設備,例如用來寫存儲器介質(例如, CD-ROM)的設備,所述存儲器介質有待于物理運送并傳送到安全處理器110。
如上面所注意的那樣,更概括地說,可信的服務器130可以包括用來傳送內容的任 何可能想到的技術。在本發(fā)明的上下文中,對于任何實際在線內容傳送或甚至對于任何 在安全處理器110和可信的服務器130之間的任何現(xiàn)場或實時鏈路來說,不存在特定要
求。例如,但不是為了以任何方式進行限定,應用軟件或多媒體內容可以通過任何下面 的技術或它們的某些組合或聯(lián)合,從可信的服務器130傳送到安全處理器110: *所述應用軟件或多媒體內容可以使用交互或交換通信系統(tǒng)進行傳送。 *所述應用軟件或多媒體內容可以使用物理存儲介質進行傳送。
*所述應用軟件或多媒體內容可以通過任何技術從第三方以編碼或加密形式進行 傳送,并可以通過任何技術從可信的服務器130傳送用來解密或解密的密鑰。
*所述應用軟件或多媒體內容可以通過任何技術從第三方進行傳送,并且可以通過 任何技術從可信的服務器130傳送證書或其它真實性的保證。
*所述應用軟件或多媒體內容可以通過任何技術,使用中間存儲設備或其它類型的 緩存設備,使用因特網(wǎng)或任何其它分布技術進行傳送。
所述安全處理器IIO包括監(jiān)視處理器1U、一組安全邏輯112、和一組安全信息113。 安全處理器110可以工作在監(jiān)視模式或安全模式。當工作在監(jiān)視模式時,安全處理器110 使用包括監(jiān)視處理器111的電路。當工作在安全模式時,安全處理器110使用包括監(jiān)視 處理器111和安全邏輯112的電路,并且還使用包括安全信息113的數(shù)據(jù)。 1.監(jiān)視處理器
監(jiān)視處理器111包括內部總線114、 CPUAIOO、 CPU存儲器接口 A103、海量存儲 器接口 A 135、存儲器接口 A 140、 一組專用電路A 145、海量存儲設備A 150、 一組RAM A155。
內部總線114在監(jiān)視處理器111的各部分之間能夠傳輸信號,該信號包括對于數(shù)據(jù) 的請求和包括數(shù)據(jù)的響應。內部總線114連接到CPU存儲器接口 A103,海量存儲器接 口A135、存儲器接口A140、專用電路A145、和海量存儲設備A150。
CPU A100可以包括任何能夠執(zhí)行在此所述的功能的通用處理器或專用處理器。例 如,CPU A IOO可以包括例如那些由AMD或Intel制造的通用處理器,或例如DSP或 嵌入的微控制器那樣的專用處理器。
CPU存儲器接口 A103連接到CPU A 100。 CPU存儲器接口 A 103從CPU A100接 收存儲器訪問請求并記錄CPU A 100對RAMA 155的訪問。雖然在一個實施例中,CPU 存儲器接口 A103記錄所有的這些訪問,在可選實施例中,CPU存儲器接口 A103可以 選擇只記錄這些訪問中的一些,例如,只是那些在由安全邏輯112或安全信息113指定 的選定組的存儲器位置中指定的訪問。
海量存儲器接口 A 135執(zhí)行與海量存儲器設備A 150相適合的接口功能。所述海量
存儲設備A150可以包括硬盤,軟盤,磁帶,或其他類型的海量存儲器。
存儲器接口 A140執(zhí)行與外部存儲器相適合的接口功能(g卩,RAM A 155)。 RAMA
155包括所有形式的隨機訪問存儲器,既可以是可擦寫的也可以是不可擦寫的,并且如
果可擦寫,既可以是可擦寫多次,也可以是僅可擦寫一次。
專用電路A145執(zhí)行任何其它對于具體的監(jiān)視處理器111的特定的功能,而不是己
經(jīng)由CPU A100執(zhí)行的功能。CPU A 100和專用電路A 145可以聯(lián)合或合作執(zhí)行所選的功能。
2.安全邏輯
安全邏輯112包括安全模式開關電路A105、安全定時器電路AllO、 一組安全引導 代碼A115、訪問控制電路A133、安全模式激活信號A160、 一組訪問控制信號A 163、 NMI(不可屏蔽中斷)信號A165、和用來接收外部復位信號A170的端口 A171。此外, 帶有安全功能的一組安全代碼A 120可以保存在海量存儲器A150中。
安全處理器110能夠響應于外部復位信號A 170。響應于復位信號A 170, CPU A100 傳送控制到(即,開始在新的位置執(zhí)行指令)安全引導代碼A115中的預先選擇的復位 位置。預先選擇的復位位置以及安全引導代碼A 115都不能被CPU A100或任何其它應 用軟件改變。
響應于復位信號A 170,安全模式開關電路A105產(chǎn)生安全模式激活信號A160,該 信號建立訪問權利以便允許CPU AIOO訪問安全引導代碼A115,執(zhí)行其指令,并使用 該安全信息113讀寫數(shù)據(jù)。 一旦復位,安全處理器110就傳送控制到復位^t置,并執(zhí)行 所述安全引導代碼A115,并(所述安全模式激活信號A 160為邏輯TRUE)允許CPU A100訪問芯片的限制安全部分。在一個實施例中,安全引導代碼A115被保存在分離的 非易失性存儲器A115中,其位置及其內容都不能由任何應用軟件改變。
在執(zhí)行完任何必需的安全檢査之后,安全引導代碼A115從外部海量存儲器A150 中査找并加載任何被包括在安全核心代碼A120中的附加的軟件和安全功能,并加載到 內部RAMA 120中。
在查找并加載任何附加的安全代碼A120之后,CPU A 100傳送控制到該安全代碼 A120,并開始執(zhí)行該安全代碼。安全代碼A120使得CPUA100準備鑒證并執(zhí)行該應用 程序代碼143。 一旦完成準備執(zhí)行該應用程序代碼143,安全代碼A 120就使安全處理 器110退出安全模式。
安全處理器IIO還能夠響應于NMI信號A165。 NMI信號A165例如可以通過應用
程序代碼143產(chǎn)生(例如,通過由CPUA100可以執(zhí)行的程序指令)來請求要以安全模 式執(zhí)行的業(yè)務。這種業(yè)務的例子可以是執(zhí)行安全功能或其它只有安全代碼A 120才有權 執(zhí)行的功能。為了請求這種業(yè)務,應用程序代碼143在安全邏輯112中設置選定的比特。 安全模式邏輯將安全模式激活信號A160設置為邏輯TRUE,從而使CPU A100能夠訪 問安全處理器110的安全部分。同時,安全邏輯112發(fā)送NMI信號A 165給CPU AIOO, 使得CPU A100傳送控制給芯片內部的安全引導代碼A 115。安全引導代碼115執(zhí)行應 用程序的業(yè)務,將結果呈遞給在RAMA155中的某些共享存儲器位置,并使用安全邏輯 112退出監(jiān)視模式。預先選擇的NMI處理器位置、安全引導代碼A120和用來加載和驗 證安全核心軟件的技術不能由CPUA100或任何應用軟件來改變。
如上所述,安全核心代碼A120被保存在內部存儲器中(非易失性存儲器中,或易 失性存儲器中,在該情況下,其從外部儲存器加載并驗證)。安全代碼開關電路A 105 產(chǎn)生安全模式激活信號A 160,其使得CPU A 100能夠訪問包括安全引導代碼A 115的 非易失性存儲器CIOO,從而CPU AIOO可以執(zhí)行其指令,并使用安全信息113讀寫數(shù) 據(jù)。
安全定時器電路A110能夠響應于由安全模式開關電路A 105設置的參數(shù)而產(chǎn)生 CPU A100的定時器中斷信號。安全邏輯112還可以響應于來自安全定時器的時間限制 已到的信號(timeout)而產(chǎn)生到CPUAIOO的NMI信號A165。作為響應,CPU A100 傳送控制到安全核心代碼A120中預先選擇的定時器中斷處理器位置。預先選擇的定時 器中斷位置和安全核心代碼A 120都不能由CPU A100或任何應用軟件(或保存在外部 存儲器A150中的任何其它軟件)來改變。
響應于定時器中斷信號A165,并類似于進入安全模式的其它方法,安全處理器110 將安全模式激活信號A160設置為邏輯TRUE,從而能夠訪問安全芯片的安全部分。
訪問控制電路A133響應于安全模式激活信號A 160,通過產(chǎn)生訪問控制信號A 163 來控制到安全處理器110的單元的訪問,該控制電路連接到執(zhí)行訪問控制的安全處理器 110的每一個單元。當安全模式激活信號A 160指示安全處理器110處于安全模式時, 訪問控制電路A 133允許CPU A 100訪問安全處理器110的所有單元。當安全模式激活 信號A 160指示安全處理器110處于監(jiān)視模式時,訪問控制電路A 133允許CPU A100 只訪問安全處理器110的后向兼容監(jiān)視模式部分。在優(yōu)選實施例中,這種后向兼容模式 部分不包括安全邏輯112 (除非指示進入安全模式)和安全數(shù)據(jù)113。
更具體來說,當安全模式激活信號A160指示安全處理器110處于監(jiān)視模式時,訪
問控制電路A 133防止CPU A100訪問安全模式開關電路A105 (除非指示進入安全模 式)、安全定時器電路A110,安全引導代碼A115、安全核心代碼A120、訪問控制電路 A133本身、安全模式激活信號A160、訪問控制信號A163、只讀安全數(shù)據(jù)A125、 R/W 易失性安全狀態(tài)值A130、加密/解密鍵B101、和許可信息B102。 3、安全信息
安全信息113包括一組只讀安全數(shù)據(jù)A125、 RAV易失性安全狀態(tài)值A 130、 一組私 密鑰(例如來自公共密鑰加密系統(tǒng))、 一組加密/解密密鑰、 一組可選的唯一的ID和一 組簽名信息BIOI。
只讀安全數(shù)據(jù)A125包括一組安全代碼,如上所述,例如響應于復位信號A170,可 選地響應于NMI信號A165,響應于定時器中斷信號A165,能夠由CPU A100執(zhí)行的 可用的代碼,或當進入安全模式時的能夠由CPUA100執(zhí)行的可用的代碼。
在一個實施例中,只讀安全數(shù)據(jù)A 125包括一組一個或多個私密鑰,和一組加密/ 解密密鑰BIOI,優(yōu)選地對于各個安全處理器110來說是唯一的。在這種實施例中,安 全處理器110使用加密/解密密鑰B101通過使用公共密鑰加密系統(tǒng)(例如通過使用在公 共密鑰加密系統(tǒng)中的私密/公共密鑰對的私密密鑰)來解密來自可信源的消息。可選地, 安全處理器110可以具有另一組代碼簽名B103,其不同于加密/解密密鑰B101,通過使 用該代碼,使用其它認證技術認證可信源。類似地,在這種實施例中,安全處理器110 使用代碼簽名B101來驗證要加載到存儲器中的附加安全代碼的準確性,例如當從已認 證的可信源接收到附加安全代碼時,通過標注與該附加安全代碼相關的數(shù)字簽名或安全 散列值的正確性的方式來進行。
在一個實施例中,只讀安全數(shù)據(jù)A125還包括一組密鑰信息B102,通過該信息,各
個安全處理器110能夠認證源并驗證各個安全處理器110是否有權接收并執(zhí)行相關的應 用軟件。例如,許可信息B102可以包括來自可信權利機構的簽署證明,指示許可各個 安全處理器110執(zhí)行相關的專用軟件。在這些實施例中,響應于許可信息B102,所認 證的可信源提供了安全處理器110可以加載并執(zhí)行應用軟件的相關能力。在一個實施例 中,這些能力包括應用軟件本身,或授權安全處理器110加載并執(zhí)行應用軟件的DRM (數(shù)字版權管理)證明。
R/W易失性安全狀態(tài)值A 130包括安全處理器110需要來執(zhí)行安全代碼的任何讀/ 寫易失性存儲器。在一個實施例中,安全處理器110在R/W易失性安全狀態(tài)值A130中 保存了其所有的易失狀態(tài),從而應用程序代碼不能訪問由安全代碼所使用的任何狀態(tài)信
息。安全處理器110在安全核心代碼A120中還包括可以由CPUAIOO執(zhí)行的指令,來 對將由CPUAIOO執(zhí)行的任何軟件進行相關的認證和有效檢查。通過在R7W易失性安全 狀態(tài)值A130中保存安全處理器110的所有易失狀態(tài),還能夠增加用戶嘗試讀取該狀態(tài) 并違反安全處理器110的安全模式操作的安全性的工作因數(shù)。然而,在可選實施例中, 安全處理器110可以至少將其易失狀態(tài)的一些保存在普通存儲器中,從而應用程序代碼 可以訪問與該狀態(tài)相關的某些值。 操作方法
圖2顯示了操作能夠進行安全執(zhí)行的安全處理器的方法流程圖。 方法200由系統(tǒng)100來執(zhí)行。雖然方法200以串行方式進行描述,但是方法200的
流程點和步驟可以通過聯(lián)合或并行的分離單元異步或同步地執(zhí)行,以管道方式或其他方
式進行。沒有特定要求所述方法200必須以本說明書所列出的流程點或歩驟相同的順序
來執(zhí)行,除非有明確的指出。
1、加電
在流程點210,安全處理器110準備好加電。 在步驟211,安全處理器110被加電。
在步驟212,產(chǎn)生復位信號A170,從而指示安全處理器110已經(jīng)剛剛被復位。當安 全處理器UO被復位時,產(chǎn)生安全模式激活信號A160 (即,設置為邏輯TRUE),并且 CPUAIOO跳轉到(即,傳送執(zhí)行控制到)安全引導代碼A115。
在步驟213,安全模式開關電路A 105產(chǎn)生安全模式激活信號A 160,其指示非易 失性存儲器CIOO (圖3)允許CPU A100訪問安全引導代碼A115,執(zhí)行其指令,并使 用安全信息113讀寫數(shù)據(jù)。然后,CPUAIOO傳送控制到安全引導代碼A115中的預先選 擇的復位位置。
在步驟2M, CPUA100執(zhí)行來自安全引導代碼A115的指令。 在步驟215, CPU A 100執(zhí)行安全引導代碼A 115。
在一個實施例中, 一旦復位,下面在MIPS或MIPS兼容處理器上示例性的實現(xiàn)方 式導致進入安全模式。該示例性實現(xiàn)方式開始于流程點250,并包含本應包括在步驟214 和步驟215中的動作。
*在步驟251,復位信號產(chǎn)生進入安全模式的請求。
*在歩驟252,如果并且只有做出到復位位置OxlfbcOOOO的后續(xù)未緩存的讀取,那 么安全邏輯112就準備將安全模式信號A 165設置為邏輯TRUE。*在步驟253, CPUA100中斷正常執(zhí)行來響應于復位信號。
*在步驟254, CPU A100嘗試從位置Oxlfbc0000取回下一個指令,從而調用復位 中斷處理程序或NMI中斷處理程序。
*在步驟255,安全邏輯112將安全模式信號A165設置為邏輯TRUE,從而能夠 訪問芯片的安全部分并執(zhí)行引導安全代碼。
*在步驟256, CPU A 100繼續(xù)執(zhí)行在安全引導代碼A 120中的復位中斷處理程序 或NMI中斷處理程序。
在執(zhí)行安全引導代碼A 120之后,如果存在,下面的步驟就從海量存儲器A150加 載安全核心或安全功能。
安全引導代碼AU5讀取安全信息113,接收附加密碼簽署或可驗證的指令,并將 那些附加指令記錄在內部RAMA155中。為了執(zhí)行該歩驟,CPUA100執(zhí)行下面的子步 驟
*在子步驟215,工作在安全模式的CPUAIOO,在已經(jīng)加載并通過安全引導代碼 A120認證之后,執(zhí)行來自外部海量存儲器A150的軟件(可以從服務器設備獲得)。在 一個實施例中,消息被使用來自只讀安全數(shù)據(jù)A125的加密/解密密鑰B101加密,并在 工作于安全模式時只有CPU A100能夠訪問。
雖然在一個實施例中,CPU A100使用通信鏈路120獲得附加指令,在可選實施例 中,系統(tǒng)100可以通過其它手段獲得附加指令(它們的全部或部分)。在此所述的一些 例子但不是為了以任何方式進行限制,包括獲得此類附加指令的可能性,或者(1)通 過物理介質,或(2)從第三方獲得,具有DRM (數(shù)字版權管理)證明或從服務器設備 獲得的其它能力。
而且,雖然在一個實施例中,附近指令被以加密形式進行發(fā)送,但是在可選實施例 中,系統(tǒng)100也可以非加密形式獲得這些附加指令(它們的全部或部分),來實施使用 那些附加指令的權利,所述附加指令使用DRM證書、其它能力或其它技術來管理。
*在子步驟216,工作于安全模式的CPU A100也認證所述的軟件,并根據(jù)安全信 息驗證其完整性,所述安全信息或者來自芯片內,或已經(jīng)根據(jù)來自可信的服務器的消息 而被驗證,所述可信的服務器的可信性已經(jīng)通過安全軟件或數(shù)據(jù)而建立。在一個實施例 中,CPUA100使用公共密鑰加密系統(tǒng)執(zhí)行該認證子步驟,所述加密系統(tǒng)包括來自只讀 安全數(shù)據(jù)A 125的加密密鑰或代碼簽名B101,并使用包括在加密/解密密鑰B101或其它 只讀安全數(shù)據(jù)A125中的有關可信的服務器130的信息(例如,可信的服務器130的公
共密鑰)。
*在子步驟216,可信的服務器130可選地驗證安全處理器110是否有權從可信的 服務器130接收應用軟件或其它附加指令。在一個實施例中,CPU A100使用公共密鑰 加密系統(tǒng),使用來自只讀安全數(shù)據(jù)A125的加密/解密密鑰BlOl,并使用來自只讀安全 數(shù)據(jù)A 125的許可信息B102或其它信息執(zhí)行該認證子步驟。
本領域普通技術人員將認識到,在熟讀本申請之后,可以使用很多其它的技術來使 用加密簽名和可信的根密鑰來認證來自服務器的軟件或數(shù)據(jù)。而且,并沒有特定要求是 否只需要對可信的服務器130進行認證。在可選實施例中,可以是服務器和客戶相互進 行認證。
*在子步驟217,工作在安全模式的CPUA100從可信的服務器130接收應用軟件 或其它附加指令,并驗證該應用軟件或那些附加指令的準確性。在一個實施例中,CPU A100使用公共密鑰加密系統(tǒng),使用來自只讀安全數(shù)據(jù)A125的加密/解密密鑰B101,或 使用來自只讀安全數(shù)據(jù)A125的應用軟件或其它附加指令的安全散列值來執(zhí)行該驗證子 歩驟。
*在子步驟218,工作在安全模式的CPU A100將應用軟件或其它附加指令記錄在 RAMA155中。該子步驟的結果是應用軟件或其它附加指令準備好以由CPUA100執(zhí)行。
雖然在此描述了一個用來認證和加載應用軟件的示例方法,但是其它和進一步的技 術也可能完成這些任務。如上所述,在本發(fā)明的上下文中,對于應用軟件的認證是否涉 及任何特定的技術并無要求,尤其是,對于應用軟件的認證是否涉及與可信的服務器130 的交互通信更無要求。
在一個實施例中,通過安全處理器IIO獲得至少安全核心代碼A120自身的某些部 分來作為這些附加指令。在一個實施例中,可以使用下面的技術
*在啟動(加電或接收到復位信號)時,CPUA100被迫執(zhí)行安全核心代碼A120, 所述安全核心代碼由安全引導代碼驗證為正確和安全的。
*在通過自舉加載程序(bootstrap loader)加載程序代碼之后,CPUA100執(zhí)行安全 核心代碼A120,從而從海量存儲器A150或其它外部設備向內部存儲器加載并復制用來 執(zhí)行安全功能的代碼。在一個實施例中,所述內部存儲器是芯片上的易失性存儲器,例 如,SRAM存儲器。
*非易失性可一次性擦寫的存儲器CllO (圖3)在制造安全處理器芯片時,使用強 加密的簽名值進行初始化,所述強加密的簽名值例如為160比特的安全散列值或文摘值。
在一個實施例中,安全散列值或文摘值可以包括SHAI安全散列值或其它已知的強加密 簽名值。如在此所描述的那樣,非易失性可一次性擦寫存儲器的構造和初始化防止其在 制造安全處理器芯片之后被應用軟件修改。
*安全核心代碼A120的自舉加載程序部分計算新加載程序代碼的簽名,并比較所 計算的簽名和已經(jīng)內部存儲在非易失性存儲器CllO中的預先計算的簽名。如果所計算 的簽名和預先計算的簽名匹配,那么安全核心代碼A120的自舉加載程序部分就得出結 論,新加載的程序代碼是正確可信的。 一旦得到這樣的結論,就允許CPUAIOO以安全 模式執(zhí)行新加載的程序代碼。
*在一個實施例中,在每次嘗試加載打算以安全模式執(zhí)行的附加軟件時,CPU A 100 重新驗證新加載的程序代碼是否正確可信。例如,而不是以任何方式進行限制,這些情 況可以包括(1)每次從RAMA155、海量存儲器AI50、或任何其它外部設備加載安全 核心代碼A 120的一部分時,(2)每次希望加載附加軟件并添加到安全核心代碼A 120 時,例如需要由安全核心代碼A120所提供的新的安全功能或新功能。
*如在此所注釋的那樣,在一個實施例中,CPU A100單獨驗證新加載的程序代碼 是否正確可信。例如,但不是以任何方式進行限制,這些情況可以包括(1)當從RAM A155、海量存儲器A150、或任何其它外部設備加載多個模塊時,為每個模塊保存一個 單獨的預先計算的簽名,(2)當希望在一系列模塊中加載附加軟件時,在每個模塊中為 下一個種模塊找到新的預先計算的簽名,(3)既為每個模塊保存單獨的預先計算的簽 名,又為一組這種模塊保存預先計算的簽名。
*在步驟219,安全處理器IIO從安全模式退出到監(jiān)視模式。在此,后面將略述從 安全模式退出的一般示例方法。 2.業(yè)務請求
在流程點220,安全處理器110以監(jiān)視模式執(zhí)行應用軟件。該安全模式準備好從應 用軟件接收業(yè)務請求。
在步驟221,應用軟件向安全處理器IIO提出業(yè)務請求。
在步驟222,在一個實施例中,應用軟件將業(yè)務請求的參數(shù)放置在安全模式邏輯中
的一組選定的寄存器中。
在步驟223,安全代碼邏輯112將安全模式信號A 160設置為邏輯TRUE。
在步驟224,安全模式邏輯112產(chǎn)生到CPU A100的NMI中斷信號A165,從而CPU
A100傳送控制到安全核心代碼A120來滿足業(yè)務請求。
在步驟225,類似于步驟213, CPUA100以安全模式跳轉到預先選擇的中斷處理程 序位置。安全模式開關電路負責A105產(chǎn)生安全模式激活信號A160,其使得CPUAIOO 能夠訪問所述安全代碼,執(zhí)行其指令,并使用安全信息113讀寫數(shù)據(jù)。
在步驟226,類似于步驟214, CPUA100執(zhí)行來自安全代碼的指令。安全代碼處理 NMI中斷。
在一個實施例中,下面在MIPS或MIPS兼容處理器上的示例性實現(xiàn)方式導致在應 用程序代碼143的請求下進入安全模式。該示例性實現(xiàn)方式開始于流程點250。
*所述應用程序對安全模式邏輯中的寄存器執(zhí)行未緩存的讀取。如果并且只要遇到
NMI復位位置OxlbfcOOOO的隨后讀取,那么這就"裝備"了所述安全模式邏輯來 條件性地進入安全模式。
*在歩驟252,如果并且只要對復位位置OxlfbcOOOO做出后續(xù)未緩存的讀取,那么 安全邏輯112就準備將安全模式信號A165設置為邏輯TRUE。
*在步驟253,安全邏輯112使得產(chǎn)生到CPU A100的NMI信號。
*在步驟254, CPU A100嘗試從位置OxlftcOOOO取回下一個指令,從而調用復位 中斷處理程序或NMI中斷處理程序。
*在步驟255,安全邏輯H2將安全模式信號A165設置為邏輯TRUE,從而能夠訪 問芯片的安全部分并執(zhí)行引導安全代碼。
*在步驟256, CPU A100繼續(xù)執(zhí)行安全代碼A120中的復位中斷處理程序或NMI 中斷處理程序。
在一個實施例中,安全模式邏輯中的寄存器被預定來指示進入安全模式的原因;例 如,由于復位,由于來自應用程序代碼的請求,等等。
安全核心確定進入安全模式的原因,并可能通過讀取芯片的限制區(qū)域來執(zhí)行由應用 程序請求的業(yè)務,并將結果返回給與該應用程序共享的存儲器區(qū)域。
在執(zhí)行完所請求的操作之后,安全核心通過安全模式邏輯觸發(fā)確定的退出順序(如 下面所述的那樣),并返回到應用程序代碼143。
在步驟227,安全處理器110將所請求操作的結果保存在共享的存儲器中,例如RAM A155。
在一個實施例中,由應用軟件提交的業(yè)務請求可以包括執(zhí)行I/0操作的請求。在這 些實施例中,安全處理器110保留至少一些I/O操作以在安全模式執(zhí)行,從而在沒有安 全代碼的幫助下,應用軟件就不能執(zhí)行那些I/O操作。
應用軟件提出業(yè)務請求,由與該請求相關的參數(shù)指示所請求的業(yè)務是I/0操作。與 該請求相關的參數(shù)遵循由其設計人員為安全處理器110所選擇的API (應用程序編程接 口),優(yōu)選地與應用軟件合作進行工作,而無需對應用軟件進行實質性改變。
在一個實施例中,由應用軟件所提出的業(yè)務請求可以包括加載附加軟件的請求。在 這些實施例中,安全處理器110執(zhí)行類似于步驟214的歩驟及其子步驟。從而,在系統(tǒng) 100中,在類似于步驟214的那些子步驟中,CPU A100認證服務器設備作為可信的服 務器130, CPU AI00從海量存儲器AI50或從可信的服務器130接收或加載附加軟件, 并在驗證這些軟件的真實性和完整性之后,CPU A100將這些附加軟件記錄在RAM A155中。
可以通過安全模式邏輯以上面所示相同的機制來處理錯誤捕捉或I/O仿真。在這些 情況下,安全模式邏輯迫使CPU進入安全模式,并根據(jù)需要執(zhí)行預先認證的軟件來處 理錯誤捕捉或I/0請求。
在步驟228,安全處理器110從安全模式退出到監(jiān)視模式。在此,后面略述從安全 模式退出的一般示例方法。 3.定時器中斷
在流程點230,安全處理器110設置可以中斷在監(jiān)視模式中執(zhí)行的應用軟件的定時 器,并且定時器已準備好時間已到(gooff)。
在步驟231,類似于步驟221,定時器時間己到,應用軟件被中斷。
在步驟232,類似于步驟222,產(chǎn)生定時器中斷信號A165,從而指示在安全處理器 110上的處理剛剛被中斷。
在MIPS或MIPS兼容處理器上的安全定時器捕捉的實現(xiàn)方式的一個示例性方法如 下面那樣。該示例方法類似于開始于流程點250的步驟。
*安全定時器被編程在CPU復位安全引導軟件中來倒計時到零,并復位到確定安 全時間捕捉周期的值。該機制不能被任何應用軟件屏蔽或中斷,并在應用程序繼續(xù)執(zhí)行 時連續(xù)運行。
*定時器從已編程的設置開始倒計時,并且一旦達到零,就觸發(fā)一個到CPU的NMI 信號A165 (中斷其執(zhí)行路徑),如果并且只要向NMI路徑位置做出后續(xù)的未緩存讀取 請求,那么就裝備安全模式邏輯來有條件地產(chǎn)生安全模式激活信號。
* 一旦定時器中斷,CPU就跳轉來執(zhí)行安全核心所駐留的NMI路徑,以執(zhí)行所需 的動作。
* 一旦知道了對NMI位置的讀取,安全模式邏輯就將安全模式激活信號設置為真, 并允許訪問芯片的安全區(qū)域。
*負責處理定時器捕捉的安全核心路徑執(zhí)行其操作并再次通過安全模式邏輯最后 退出安全模式。
在步驟236, CPU A100退出安全代碼,并返回到應用軟件執(zhí)行點。安全模式開關 電路A105取消產(chǎn)生安全模式激活信號A160,從而指示不再允許CPU A100訪問安全代 碼,執(zhí)行其指令,或使用安全信息113進行讀寫數(shù)據(jù)。 4.被監(jiān)視的存儲器訪問
在流程點240,安全處理器110準備好通過在監(jiān)視模式執(zhí)行的應用軟件來記錄到外 部存儲器的訪問。
在歩驟241, CPUA100嘗試從RAMA155進行讀取或向其寫入。為了執(zhí)行該步驟, CPU A100發(fā)送存儲器地址到CPU存儲器接口 A103。
在步驟242, CPU存儲器接口 A 103將該存儲器地址連接到內部總線114,該總線 將該存儲器地址連接到存儲器接口 A140,并連接到安全邏輯112。
在步驟243,包含訪問控制電路A133的安全邏輯112確定是否允許CPU A100訪 問在RAMA155中的該存儲器地址。在一個實施例中,通??偸窃试SCPUAIOO訪問在 RAM A155中的任何存儲器地址。然而,在可選實施例中,訪問控制電路A133可以限 制CPU A100訪問所選的存儲器地址,從而當CPU A100工作在監(jiān)視模式時將RAM A155 的所選部分隔離。
在步驟244,包括訪問控制電路Al33的安全邏輯112通過CPU A100來在RAM Al55 中記錄對存儲器地址的訪問嘗試。在一個實施例中,CPU A100只記錄所選的這些存儲 器地址。例如,但不是以任何方式進行限制,當CPUA100工作在監(jiān)視模式時,訪問控 制電路A133可以選擇用來記錄訪問的RAMA155的一個或多個部分。然而,在可選實 施例中,訪問控制電路A133可以嘗試記錄所有的這些存儲器訪問,可以嘗試記錄響應 于其模式的存儲器訪問,或可以嘗試記錄響應于由工作在安全模式的CPUA100所選擇 的某些其它標準的存儲器訪問。在隨著對限制的通常認證檢查而啟動的應用期間,可以 通過安全軟件加載專用限制信息。
在一個實施例中,以上述任何一種機制來實現(xiàn)退出安全模式的方法。
*指示進入安全模式的原因的寄存器被清除。
*軟件清除所有用來執(zhí)行安全核心軟件的緩存或內部存儲器區(qū)域。
*安全核心軟件從NMI路徑返回。 非易失性存儲器
圖3顯示了一個電路框圖,所述電路包括用來以實際上非可擦除方式編程非易失性 存儲器的設備。
電路300包括非易失性存儲器C100、無效邏輯電路C110、外部程序邏輯電路C120、 非連接引腳C130、和一組外部編程引腳340。
在一個實施例中,非易失性存儲器C100包括閃存或其它能夠電編程并能夠進行讀 取的存儲器,從而電路300可以確定非易失性存儲器C100是否已經(jīng)用數(shù)據(jù)進行了編程。 在本發(fā)明的上下文中,對于非易失性存儲器C100包含什么樣的特定存儲器技術并沒有 特定要求,只要其可以執(zhí)行在此所描述的功能就可以。
無效邏輯電路C110被連接到外部編程邏輯電路C120,從而,當來自無效邏輯電路 C110的程序使能信號(program enable signal)被關閉時,就不能輸入到外部程序邏輯電 路C120,并且非易失性存儲器C100也不能從外部編程引腳進行電編程。
無效邏輯電路C1I0還連接到非易失性存儲器CIOO,并能夠從非易失性存儲器CIOO 讀取值并將這些值與程序使能簽名值進行比較,從而無效邏輯電路C110可以確定非易 失性存儲器CIOO是否己經(jīng)被初始編程。如果非易失性存儲器CIOO已經(jīng)使用程序使能 簽名值進行初始編程,那么無效邏輯電路C110就能夠使到外部程序邏輯電路C120的 輸入能夠進行,從而可以電編程非易失性存儲器CIOO。如果程序使能簽名值沒有出現(xiàn), 那么來自無效邏輯CllO的程序使能輸出將無效。
非連接引腳C130包括電可導墊,其位于安全處理器芯片上,并能夠在封裝芯片之 前被探測,但是并未連接到任何外部線路或包裝上。這具有這樣的效果,當制造安全處 理器芯片時,非連接引腳C130可以電連接到外部電路,但在制造和封裝之后,非連接 引腳C130實際上就不能再電連接到任何外部電路。因此,在制造安全處理器芯片之后 和在封裝安全處理器芯片之前,當編程非易失性存儲器CIOO時,可以使用非連接引腳 C130,但是當完成制造和封裝之后,在編程非易失性存儲器C100時,就不能夠再使用 非連接引腳C130,從而非易失性存儲器CIOO就不能夠被外部編程。
在制造之后進行晶片測試時,非連接引腳C130被連接到所選的電壓(邏輯"O"), 從而使能外部編程邏輯電路C120,并且非易失性存儲器C100可以被電編程,而不管來 自無效邏輯C110的程序使能輸出的狀態(tài)。 記錄唯一信息的方法
圖4顯示了操作電路的方法流程圖,所述電路包括用來以實際上非可擦除方式編程 非易失性存儲器的設備。
當構造安全處理器110時,根據(jù)電路300來執(zhí)行方法400。雖然方法400被描述為 串行的,但是方法400的流程點和步驟也可以聯(lián)合或并行地由單獨的單元異步或同步地 執(zhí)行,以管道方式或其他方式。并沒有特別要求必須以與本說明書所列出的流程點或步 驟相同的順序來執(zhí)行方法400,除非有明確指出。
在流程點410,在安全處理器110中的非易失性存儲器C100準備好被編程。在一 個實施例中,該方法的結果能使得對于該特定安全處理器IIO唯一的安全信息被記錄在 非易失性存儲器中。
在歩驟411,非連接引腳C130被連接到所選電壓(邏輯"0"),從而外部程序邏輯 電路C120能夠工作,并可以電編程該非易失性存儲器CIOO。
在步驟412,非易失性存儲器C100使用初始程序使能簽名值(設置在其最后的存 儲器位置中)進行電編程,從而,非易失性存儲器C100準備好被進一步編程。
在步驟413,電路300被封裝,從而非連接引腳C130不再能夠用來連接到外部電路。
在歩驟414,非易失性存儲器C100被電編程。
在一個實施例中,當執(zhí)行該步驟時,對于安全處理器110的特定情況為唯一的安全 信息1I3被記錄在非易失性存儲器C100中。這具有這樣的效果,安全處理器110的特 定情況變得能夠唯一地區(qū)別于安全處理器的每個其它情況,并可以唯一地將自身標示為 可信的服務器130。
在步驟415,非易失性存儲器C100進一步被電編程來擦除編程使能簽名值。當編 程使能簽名值不再存在時,無效邏輯電路C110確定非易失性存儲器C100不再能夠用 于編程,并使得外部程序邏輯電路C120無效。這具有這樣的效果,非易失性存儲器C100 不再能夠通過外部編程引腳被進一步電編程。
在流程點420,非易失性存儲器C100不再包括程序使能簽名值,無效邏輯電路C110 確定非易失性存儲器C100不再能夠用于編程,并且無效邏輯電路C110能夠使得外部 編程邏輯電路C120無效。 一旦對安全處理器110加電,非易失性存儲器C100就不能 再進一步從外部編程引腳被電編程。 可選實施例
雖然在此描述了優(yōu)選的實施例,但是可能有多種變換,這些變換仍然處于本發(fā)明的
原理、范圍和精神之內。在熟讀本申請之后,這些變體對于本領域熟練技術人員來說將 變得清楚。
*對于所有可執(zhí)行的代碼、或甚至所有安全代碼是否需要出現(xiàn)在集成了安全處理器 110的芯片上并無特定要求。在可選實施例中,安全處理器110可以涉及保存在外部RAM A155、海量存儲器A150、或其它外部設備中的安全代碼或其它可執(zhí)行代碼。
*對于是否需要將安全處理器110作為單個集成芯片來實現(xiàn)并無特定要求。在可選 實施例中,安全處理器110可以包括多個設備,這些設備使用加密或反監(jiān)聽或破壞保護 的信號進行連接。
*對于是否需要同時加載所有安全代碼并無特定要求。在可選實施例中,安全處理 器110可以涉及多個片段的安全代碼,這些代碼以不同的時間進行加載和驗證,例如按 順序,或例如根據(jù)需要而進行。作為第一個例子,但不是為了以任何方式進行限制,當 工作在安全模式時,安全核心代碼A120可以包括要加載并集成到由CPU A100執(zhí)行的 指令中的附加軟件的一個或多個模塊的簽名。作為第二個例子,但不是為了以任何方式 進行限制,所述安全核心代碼A120可以包括要加載的附加軟件的一個或多個模塊的簽 名,其自身的每一個包括要加載的附加軟件的一個或多個模塊的簽名。
*存儲器和海量存儲器訪問檢查可以響應于所選的事件來執(zhí)行。作為第一個例子, 但不是為了以任何方式進行限制,這種所選的事件可以包括應用軟件對于加密/解密業(yè) 務、I/O業(yè)務、或安全簽名或驗證業(yè)務的任何請求。作為第二個例子,但不是為了以任 何方式進行限制,這些所選的事件可以包括海量存儲器訪問的周期性截取(例如,對于 所選值為N來說,每隔N次的訪問)、周期性定時器中斷,等等。
*認證和驗證檢査可以響應于所選的事件來執(zhí)行,這類似于存儲器或海量存儲器訪 問的檢查。作為第一個例子,但不是為了以任何方式進行限制,這些所選的事件可以包 括應用軟件對加密/解密業(yè)務、1/0業(yè)務、或安全簽名或驗證業(yè)務的任何請求。作為第二 個例子,但不是為了以任何方式進行限制,這些所選的事件可以包括對海量存儲器方法 的存儲器的周期性截取(例如,對于所選值為N的情況,每隔N次的訪問),周期性定 時器中斷,等等。
*除了在此上面所提到的那些之外,安全核心代碼A120還可以提供附加的安全業(yè) 務給應用軟件。例如,但不是為了以任何方式進行限制,這些附加業(yè)務可以包括對來自 服務器(而不是上面所描述的可信的服務器130)和其它消息方(例如在對等協(xié)議和應 用軟件具有服務器角色的協(xié)議中)的消息的認證和驗證,對與服務器(而不是上面所描
述的可信的服務器130)和其它消息方交換的消息進行加密/解密,對與服務器(而不是 上面所描述的可信的服務器130)和其它消息方交換消息進行公共密鑰簽名,對從輔助 的可信服務器130加載并執(zhí)行的其它附加軟件進行認證和驗證,對DRM許可信息的管 理,對由CPUA100執(zhí)行加載的軟件的周期性(或響應于所選事件,如上所述)的認證 和驗證,等等。
*除了那些在此上面所提到的之外,安全核心代碼A120還可以提供與安全相關的 業(yè)務之外的附加業(yè)務給應用軟件。例如,但不是為了以任何方式進行限制,這些附加業(yè) 務可以包括應用軟件被許可操作的特定設備驅動器或對特定硬件的操作,等等。
在熟讀本申請之后,本領域熟練技術人員將認識到,那些可選實施例和變化僅僅是 示例性的,而不是為了以任何方式進行限制。
權利要求
1、一種方法,包括以下步驟通過處理單元執(zhí)行應用軟件;驗證所述處理單元是否有權執(zhí)行所述應用軟件;和在監(jiān)視模式和安全模式之間區(qū)別所述處理單元;其中,在所述監(jiān)視模式,所述處理單元能夠相對于所述應用軟件透明地執(zhí)行所述應用軟件,和在所述安全模式,所述處理單元能夠驗證所述處理單元是否有權執(zhí)行所述應用軟件。
2、 如權利要求1所述的方法,包括在所述監(jiān)視模式中的步驟通過所述處理單元 的一部分來執(zhí)行指令,所述指令實質上與那些可以由普通處理器的半導體芯片執(zhí)行的指 令相同,所述指令不響應于所述安全模式。
3、 如權利要求1所述的方法,包括在所述安全模式中的步驟通過所述處理單元 來執(zhí)行由所述應用軟件請求并得到授權的額外業(yè)務。
4、 如權利要求1所述的方法,包括以下步驟響應于多種技術中的至少一個,中斷所述監(jiān)視模式并進入所述安全模式;和 在所述安全模式時,確定采用哪一種技術進入所述安全模式。
5、 如權利要求1所述的方法,包括以下歩驟響應于中斷、復位信號或定時器中 的至少一種,中斷所述監(jiān)視模式并進入所述安全模式。
6、 如權利要求1所述的方法,包括以下步驟在所述安全模式中,退出所述安全 模式并以所述監(jiān)視模式來執(zhí)行所述應用軟件。
7、 如權利要求6所述的方法,包括以下步驟在實質上不改變該應用軟件的源代碼的情況下執(zhí)行所述應用軟件, 從而該應用軟件得到與普通處理器實際上相同的處理器環(huán)境。
8、 如權利要求6所述的方法,包括以下步驟當所述應用軟件需要安全處理器所 監(jiān)視的業(yè)務時,應用軟件產(chǎn)生中斷,從而使得重新進入安全模式,將所述業(yè)務傳送到應 用軟件,并退出安全模式,從而該應用軟件可以繼續(xù)以監(jiān)視模式執(zhí)行。
9、 如權利要求1所述的方法,包括在加電狀態(tài)下以所述安全模式來執(zhí)行指令的步驟。
10、 如權利要求9所述的方法,包括響應于所述加電狀態(tài),執(zhí)行保存在包括所述處 理單元的芯片內部的永久存儲器中的安全代碼的步驟,所述執(zhí)行安全代碼的步驟包括以 下步驟從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性。
11、 如權利要求9所述的方法,包括響應于所述加電狀態(tài),執(zhí)行保存在包括所述處 理單元的芯片內部的永久存儲器中的安全代碼的步驟,所述執(zhí)行安全代碼的步驟包括以 下步驟從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性;其中所述驗證真實性和內容完整性的步驟是響應于所述芯片內部的永久存儲器而 執(zhí)行的。
12、 如權利要求9所述的方法,包括響應于所述加電狀態(tài),執(zhí)行保存在包括所述處 理單元的芯片內部的永久存儲器中的安全代碼的步驟,所述執(zhí)行安全代碼的步驟包括以 下步驟從一個或多個可信源加載附加代碼;驗證所述可信源的真實性;驗證所述附加代碼的內容完整性的步驟;其中所述驗證真實性和內容完整性的步驟是響應于所述芯片內部的永久存儲器而 執(zhí)行的,并且所述芯片內部的所述永久存儲器的至少包括以下項的其中之一加密密鑰、安全散 列值、或其它用來驗證所述可信源和認證所述附加代碼的其它數(shù)據(jù)。
13、 如權利要求l所述的方法,其中所述應用軟件包括至少一個以所述安全模式執(zhí) 行的指令。
14、 如權利要求13所述的方法,其中所述至少一個以所述安全模式執(zhí)行的指令包 括可以由所述處理單元代表一組安全核心代碼來執(zhí)行的附加功能。
15、 如權利要求13所述的方法,其中所述至少一個以所述安全模式執(zhí)行的指令包 括可以由所述處理單元代表一組安全核心代碼來執(zhí)行的附加功能,所述附加功能包括認 證附加的安全核心代碼。
16、 如權利要求l所述的方法,其中所述驗證步驟包括執(zhí)行一組安全軟件,該組安 全軟件包括確定所述處理單元是否有權執(zhí)行一組以所述安全模式執(zhí)行的附加安全軟件。
17、 如權利要求16所述的方法,其中所述附加安全軟件包括 至少一個用來加載附加安全軟件的功能;和至少一個用來驗證所述處理器有權執(zhí)行所述附加安全軟件的功能。
18、 如權利要求16所述的方法,其中所述附加安全軟件包括 至少一個用來加載應用軟件的功能;和至少一個用來驗證所述處理單元有權執(zhí)行所述應用軟件的功能。
19、 一種方法,包括以下步驟通過處理單元執(zhí)行指令,所述處理單元包括至少具有安全模式和監(jiān)視模式的安全信 號;禾口當所述安全信號指示所述安全模式時,響應于所述安全信號,由所述處理單元訪問 至少一個安全功能,和當所述安全信號指示所述監(jiān)視模式時,拒絕響應于所述安全信號 訪問所述安全功能;其中所述安全功能包括響應于外部源而記錄外部指令的步驟,對所述外部源的可信 性的測量是可以由所述處理單元驗證的。
20、 如權利要求19所述的方法,包括以下步驟只有當所述安全信號指示所述安 全模式時,才允許所述處理單元訪問連接到所述處理單元的至少一個安全電路。
21、 如權利要求19所述的方法,包括執(zhí)行保存在存儲器或海量存儲器中的一組應用程序代碼的步驟,所述存儲器或海量存儲器連接到所述處理單元,所述執(zhí)行應用程序 代碼的步驟的進行,對比于所述應用代碼在實質上相同的不響應于所述安全信號的非安 全處理單元上被執(zhí)行的情況,沒有實質上的改變。
22、 如權利要求19所述的方法,包括以下步驟當所述處理單元工作在所述監(jiān)視模式時,由所述處理單元執(zhí)行一組保存在連接到所述處理單元的存儲器或海量存儲器中 的應用程序代碼。
23、 如權利要求19所述的方法,其中所述一個安全功能包括以下步驟 從所述外部源接收所述外部指令;和 驗證所述外部指令實質上是準確的。
24、 如權利要求19所述的方法,包括由所述處理單元監(jiān)視到外部設備的訪問的步驟; 所述監(jiān)視步驟響應于所述安全信號并響應于一組訪問規(guī)則,其中當所述處理單元嘗 試違反所述訪問規(guī)則訪問所述外部設備時,響應于此而執(zhí)行至少一個安全功能。
25、 如權利要求24的方法,其中,所述監(jiān)視步驟響應于由所述處理單元的訪問, 響應于以下項的至少其中之一由所述處理單元請求的多個訪問; 所述處理單元執(zhí)行的多個指令;由工作在所述安全模式的所述處理單元所設置的參數(shù);或 所述處理單元正在工作的間隔。
26、 如權利要求19所述的方法,包括由所述處理單元保存用于只讀訪問的一組安 全信息的步驟。
27、 如權利要求26所述的方法,其中所述保存步驟包括從非易失性存儲器讀取所 述安全信息組的步驟。
28、 如權利要求26所述的方法,其中所述保存步驟包括從非易失性存儲器讀取所 述安全信息組的步驟,并包括當所述安全處理器被封裝時,使得對所述非易失性存儲器 的寫入無效的步驟。
29、 如權利要求26所述的方法,其中所述保存步驟包括從非易失性存儲器讀取所 述安全信息組的步驟,并包括當所述安全處理器被封裝時,使得對所述非易失性存儲器 的寫入無效的步驟,所述無效的步驟包括制作實質上不可訪問的非連接引腳。
30、 如權利要求26所述的方法,其中所述保存步驟包括從非易失性存儲器讀取所 述安全信息組的步驟,并且其中所述安全信息組對于所述安全處理器是唯一的。
31、 如權利要求19所述的方法,其中所述一個安全功能包括以下步驟 從所述外部源接收所述外部指令; 構造響應于所述外部指令的數(shù)據(jù);和比較響應于所述外部指令的所述數(shù)據(jù)和至少一些所述安全信息,從而所述處理單元 能夠驗證所述外部指令是準確的。
32、 如權利要求31所述的方法,其中所述構造步驟包括響應于所述外部指令來確定一個計算的簽名值;和 所述比較步驟包括嘗試匹配所計算的簽名值和包括在所述安全信息中的記錄的簽 名值。
33、 如權利要求31所述的方法,其中所述接收步驟包括以下步驟的至少其中之一 接收一組消息,所述消息組整體包括所述外部指令;或 接收一組存儲器介質,所述存儲介質組整體包括所述外部指令。
34、 如權利要求19所述的方法,其中所述一個安全功能包括以下步驟 從所述外部源請求所述外部指令;發(fā)送響應于所述安全信息的數(shù)據(jù)到所述外部源,從而所述外部源能夠驗證所述處理 單元有權執(zhí)行所述外部指令;和從所述外部源接收所述外部指令。
35、 如權利要求34所述的方法,其中所述外部指令至少包括應用軟件、附加安全 代碼的其中一個。
36、 一種方法,包括以下步驟在處理器上執(zhí)行指令,所述處理器具有安全模式和監(jiān)視模式;其中當所述處理器以所述安全模式執(zhí)行時,所述處理器具有到至少一個安全功能的 入口,當所述處理器以所述監(jiān)視模式執(zhí)行時,所述處理器沒有到該安全功能的入口;其中,在啟動狀態(tài)、中斷狀態(tài)的至少其中一個狀態(tài)期間,所述處理器以所述安全模 式執(zhí)行,所述中斷狀態(tài)響應于非屏蔽中斷或定時器中斷;其中當所述處理器進入所述安全模式時,所述處理器傳送控制到一組安全代碼,當 所述處理器以所述監(jiān)視模式執(zhí)行時,所述安全代碼不能改變;和其中與所述啟動狀態(tài)相關的一組所述安全代碼包括可以由所述處理器執(zhí)行的指令, 并且所述指令響應于所述外部指令的外部源而引導所述處理器來向安全代碼添加外部 指令,所述外部源的可信性的測量可以由所述處理器響應于一組安全信息來驗證。
37、 一種裝置,包括處理單元,所述處理單元能夠執(zhí)行應用軟件,并能夠驗證所述處理器單元有權執(zhí)行 所述應用軟件;所述處理單元具有監(jiān)視模式和安全模式,其中在所述監(jiān)視模式,所述處理單元能夠 相對于所述應用軟件透明地執(zhí)行所述應用軟件,和其中在所述安全模式,所述處理單元 能夠驗證所述處理單元有權執(zhí)行所述應用軟件。
38、 如權利要求37所述的裝置,其中能夠以所述監(jiān)視模式執(zhí)行指令的所述處理單 元的一部分實質上與不響應于所述安全模式的普通處理器的半導體芯片相同。
39、 如權利要求37所述的裝置,其中在所述安全模式,所述處理單元能夠執(zhí)行由 所述應用程序軟件請求并得到授權的額外業(yè)務。
40、 如權利要求37所述的裝置,其中所述處理單元能夠響應于多種技術中的至少 一個來中斷所述監(jiān)視模式并進入所述安全模式,其中當處于所述安全模式時,所述處理 單元能夠確定通過哪種技術進入所述安全模式。
41、 如權利要求37所述的裝置,其中所述處理器單元能夠響應于中斷、復位信號、 或定時器中的至少其中一個,來中斷所述監(jiān)視模式并進入所述安全模式。
42、 如權利要求37所述的裝置,其中在所述安全模式,所述處理單元能夠退出所 述安全模式,并以所述監(jiān)視模式執(zhí)行所述應用軟件。
43、 如權利要求42所述的裝置,其中所述應用軟件在不對該應用軟件的源代碼作 實質改變的情況下執(zhí)行,從而所述應用軟件得到實質上與普通處理器相同的處理器環(huán) 境°
44、 如權利要求42所述的裝置,其中當所述應用軟件需要安全處理監(jiān)視的業(yè)務時, 應用軟件產(chǎn)生中斷,從而使得重新進入安全模式,將業(yè)務傳送到應用軟件,并退出所述 安全模式,從而所述應用軟件可以繼續(xù)以監(jiān)視模式執(zhí)行。
45、 如權利要求37所述的裝置,其中所述應用軟件包括至少一個以所述安全模式 執(zhí)行的指令。
46、 如權利要求45的裝置,其中所述至少一個以所述安全模式執(zhí)行的指令包括可 以由所述處理單元代表一組安全核心代碼執(zhí)行的附加功能。
47、 如權利要求45的裝置,其中所述至少一個以所述安全模式執(zhí)行的指令包括可 以由所述處理單元代表一組安全核心代碼執(zhí)行的附加功能,所述附近功能包括認證附加 的安全核心代碼。
48、 如權利要求37所述的裝置,其中所述處理單元能夠執(zhí)行安全軟件,所述安全 軟件包括至少一個用來認證以所述安全模式執(zhí)行的附加軟件的功能。
49、 如權利要求48所述的裝置,其中所述安全軟件包括 至少一個用來加載附加安全軟件的功能;和至少一個用來驗證所述處理單元有權執(zhí)行所述附加安全軟件的功能。
50、 如權利要求48所述的裝置,其中所述安全軟件包括 至少一個用來加載應用軟件的功能;和至少一個用來驗證所述處理單元有權執(zhí)行所述應用軟件的功能。
51、 如權利要求37所述的裝置,其中所述處理單元在加電狀態(tài)下以所述安全模式 執(zhí)行指令。
52、 如權利要求51所述的裝置,其中響應于所述加電狀態(tài),所述處理單元執(zhí)行保 存在包括所述處理單元的芯片的內部的永久存儲器中的安全代碼,其中所述安全代碼包 括引導所述處理單元執(zhí)行以下步驟的指令,所述步驟如下從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性。
53、 如權利要求51所述的裝置,其中響應于所述加電狀態(tài),所述處理單元執(zhí)行保 存在包括所述處理單元的芯片的內部的永久存儲器中的安全代碼,其中所述安全代碼包 括引導所述處理單元執(zhí)行以下步驟的指令,所述步驟如下從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性,-其中所述驗證真實性和內容完整性的步驟是響應于所述芯片內部的所述永久存儲 器而執(zhí)行的。
54、 如權利要求51所述的裝置,其中響應于所述加電狀態(tài),所述處理單元執(zhí)行保 存在包括所述處理單元的芯片的內部的永久存儲器中的安全代碼,其中所述安全代碼包 括引導所述處理單元執(zhí)行以下步驟的指令,所述步驟如下從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性; 其中所述驗證真實性和內容完整性的步驟是響應于所述芯片內部的所述永久存儲器而 執(zhí)行的,并且所述芯片內部的所述永久存儲器包括以下項中的至少其中之一加密密鑰、安全散 列值、或其它用來驗證所述可信源和認證所述附加代碼的數(shù)據(jù)。
55、 一種裝置,包括能夠執(zhí)行指令的處理單元;和 至少具有安全模式和監(jiān)視模式的安全信號;所述處理單元響應于所述安全信號,其中當以所述安全模式執(zhí)行指令時,所述處理 單元具有到至少一個安全功能的入口,當以所述監(jiān)視模式執(zhí)行指令時,所述處理單元沒 有到安全功能的入口;其中,至少一個所述安全功能包括引導所述處理單元響應于外部源而記錄外部指令 的指令,所述外部源的可信性的測量可以由所述處理單元進行驗證。
56、 如權利要求55所述的裝置,包括響應于所述安全信號的安全單元,并且所述 安全單元連接到連接于所述處理單元的至少一個安全電路,其中只有當所述安全信號指 示所述安全模式時,所述安全單元才允許所述處理單元訪問所述安全電路。
57、 如權利要求55所述的裝置,包括一組保存在連接到所述處理單元的存儲器或海量存儲器中的應用程序代碼; 從而所述處理單元以所述監(jiān)視模式執(zhí)行所述應用代碼。
58、 如權利要求55所述的裝置,包括一組保存在連接到所述處理單元的存儲器或海量存儲器中的應用程序代碼,所述應 用程序代碼能夠在不響應于所述安全信號的實質上相同的非安全處理器上被執(zhí)行;從而,所述處理單元能夠在不進行實質改變的情況下執(zhí)行所述應用代碼,以響應指 示所述安全模式的所述安全信號。
59、 如權利要求55所述的裝置,其中所述一個安全功能包括引導所述處理單元執(zhí) 行以下步驟的指令,所述步驟如下從所述外部源接收所述外部指令;和 驗證所述外部指令是準確的。
60、 如權利要求55所述的裝置,包括連接到所述處理單元的監(jiān)視電路,所述監(jiān)視電路能夠監(jiān)視由所述處理單元到外部設 備的訪問;所述監(jiān)視電路響應于所述安全信號并響應于一組訪問規(guī)則,其中當所述處理單元嘗 試以違反所述訪問規(guī)則來訪問所述外部設備時,所述監(jiān)視電路能夠響應于此而執(zhí)行至少 一個安全功能。
61、 如權利要求60所述的裝置,其中,所述監(jiān)視電路響應于由所述處理單元的訪問,響應于以下項的至少其中之一 由所述處理單元請求的多個訪問; 所述處理單元執(zhí)行的多個指令;由工作于所述安全模式的所述處理單元所設置的參數(shù);或 所述處理單元運行期間的間隔。
62、 如權利要求55所述的裝置,包括能夠由所述處理單元用于只讀訪問的一組安 全信息。
63、 如權利要求62所述的裝置,其中所述安全信息組包括保存在非易失性存儲器 中的信息。
64、 如權利要求62所述的裝置,其中所述安全信息組包括保存在非易失性存儲器 中并對于所述安全處理器唯一的信息。
65、 如權利要求62所述的裝置,其中所述安全信息組包括保存在非易失性存儲器 中的信息,所述非易失性存儲器具有能夠使所述非易失性存儲器能夠進行寫入的電路, 當所述安全處理器被封裝時,所述電路被無效。
66、 如權利要求62所述的裝置,其中所述安全信息組包括保存在非易失性存儲器 中的信息,所述非易失性存儲器具有能夠使所述非易失性存儲器能夠進行寫入的電路, 所述電路包括當所述安全處器被封裝時實質上不可以被訪問的引腳。
67、 如權利要求66所述的裝置,其中,所述安全信息組包括實質上對于所述芯片 唯一的標識值,或實質上對于所述芯片唯一的一組私密密鑰信息;從而,當所述芯片有 權使用所述內容并執(zhí)行所述軟件時,所述芯片可以確保所選的一組內容或軟件只可以由 所述芯片執(zhí)行。
68、 如權利要求67所述的裝置,其中所述芯片可以驗證購買收據(jù)或許可或其它數(shù) 字版權管理數(shù)據(jù)的真實性,從而所述芯片可以驗證所選的內容或軟件組是真實的,并且 是所述芯片得到授權的。
69、 如權利要求68所述的裝置,其中所述安全芯片能夠允許響應于對購買收據(jù)或 許可或其它數(shù)字版權管理數(shù)據(jù)的真實性驗證的嘗試,而使用所述內容或執(zhí)行所述軟件。
70、 如權利要求68所述的裝置,其中所述收據(jù)包括 足以實質上標識所述芯片的信息;足以實質上識別標識值實質上對于所述內容或軟件是唯一的信息。
71、 如權利要求66所述的裝置,包括用來組合所述密鑰信息和所述實質上唯一的 標識值的裝置,從而可以為實施知識產(chǎn)權保護來實施數(shù)字版權管理方案。
72、 如權利要求66所述的裝置,其中所述安全信息的至少一部分使用公共密鑰/秘 密私鑰系統(tǒng)或均衡加密/解密密鑰來進行數(shù)字簽名。
73、 如權利要求72所述的裝置,其中所述安全芯片能夠響應于驗證所述數(shù)字簽名 而允許使用所述內容或執(zhí)行所述軟件。
74、 如權利要求66所述的裝置,其中所述安全信息的至少一部分使用公共密鑰/秘 密私鑰系統(tǒng)或均衡加密/解密密鑰來加密。
75、 如權利要求74所述的裝置,其中所述安全芯片能夠允許響應于加密所述安全 信息的所述部分的嘗試,來允許使用所述內容或執(zhí)行所述軟件。
76、 如權利要求55所述的裝置,其中所述一個安全功能包括引導所述處理單元來 執(zhí)行以下步驟的指令,所述步驟如下從所述外部源接收外部指令; 構造響應于所述外部指令的數(shù)據(jù);和比較響應于所述外部指令的所述數(shù)據(jù)和至少一些所述安全信息,從而所述處理單元 能夠驗證所述外部指令是準確的。
77、 如權利要求76所述的裝置,其中所述構造步驟包括響應于所述外部指令來確定一個計算的簽名值;和 所述比較步驟包括嘗試匹配所計算的簽名值和包括在所述安全信息中的記錄的簽 名值。
78、 如權利要求76所述的裝置,其中所述接收步驟包括以下項的至少其中之一 接收一組消息,所述消息組整體包括所述外部指令;或 接收一組存儲器介質,所述存儲介質組整體包括所述外部指令。
79、 如權利要求55所述的裝置,其中所述一個安全功能包括引導所述處理單元執(zhí) 行以下步驟的指令,所述步驟如下從所述外部源請求所述外部指令;發(fā)送響應于所述安全信息的數(shù)據(jù)到所述外部源,從而所述外部源能夠驗證所述處理 單元是否有權執(zhí)行所述外部指令;和 從所述外部源接收所述外部指令。
80、 如權利要求79所述的方法,其中所述外部指令包括應用軟件、附加安全代碼 的至少其中一個。
81、 如權利要求55所述的裝置,其中所述安全信號響應于復位狀態(tài)或中斷狀態(tài),所述中斷狀態(tài)響應于非可屏蔽中斷或定 時器中斷;和響應于所述安全信號,所述處理單元傳送控制到所述安全功能,當所述處理單元在 所述監(jiān)視模式執(zhí)行指令時,所述安全功能不能被改變。
82、 如權利要求81所述的裝置,其中,響應于所述安全功能,所述處理單元傳送 控制到退出功能,所述退出功能能夠在所述安全模式時,移除任何安全信息而不為所述 處理單元所使用。
83、 如權利要求81所述的裝置, 其中所述處理單元能夠傳遞所述安全功能的參數(shù),從而,響應于所述非可屏蔽中斷,所述安全功能在應用軟件的要求下執(zhí)行至少一個 所述的安全功能,所述應用軟件由所述處理單元以所述監(jiān)視模式來執(zhí)行。
84、 如權利要求81所述的裝置, 其中所述處理單元能夠傳遞所述安全功能的參數(shù),從而,響應于所述非可屏蔽中斷,所述安全功能在應用軟件的要求下執(zhí)行至少一個 所述的安全功能,所述應用軟件由所述處理單元以所述監(jiān)視模式來執(zhí)行;和其中所述安全功能包括以下功能的至少其中之一密碼認證功能、密碼簽名功能、 密碼安全功能、加密或解密功能、包括加密或解密密鑰的功能,安全散列值功能。
85、 一種存儲器或海量存儲器,其包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述歩驟如下由處理單元執(zhí)行應用軟件;驗證所述處理單元是否有權執(zhí)行所述應用軟件;和在監(jiān)視模式和安全模式之間區(qū)別所述處理單元;其中,在所述監(jiān)視模式,所述處理 單元能夠相對于所述應用軟件透明地執(zhí)行所述應用軟件,和在所述安全模式,所述處理 單元能夠驗證所述處理單元是否有權執(zhí)行所述應用軟件。
86、 如權利要求85所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來執(zhí) 行以下步驟的指令,所述步驟如下在所述監(jiān)視模式中,由所述處理單元的一部分來執(zhí)行指令,所述指令實質上與那些 可以由普通處理器的半導體芯片執(zhí)行而不響應于所述安全模式的指令相同。
87、 如權利要求85所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述步驟如下在所述安全模式中,由所述處理單元執(zhí)行由所述應用軟件請求并得到授權的額外業(yè)務。
88、 如權利要求85所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述步驟如下. 響應于多種技術中的至少其中一個,來中斷所述監(jiān)視模式并進入所述安全模式;和 在所述安全模式時,確定采用哪一種技術進入所述安全模式。
89、 如權利要求85所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來執(zhí) 行以下步驟的指令,所述步驟如下響應于中斷、復位信號或定時器至少其中的一個,來中斷所述監(jiān)視模式并進入所述 安全模式。
90、 包括能夠由計算設備解釋來執(zhí)行權利要求85中的步驟的指令的存儲器或海量 存儲器,包括以下步驟在所述安全模式中,退出所述安全模式并以所述監(jiān)視模式執(zhí)行所述應用軟件。
91、 如權利要求90所述的存儲器或海量存儲器,包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述步驟如下在實質上不改變應用軟件的源代碼的情況下執(zhí)行所述應用軟件,從而該應用軟件可 以得到實質上與普通處理器相同的處理器環(huán)境。
92、 如權利要求卯所述的存儲器或海量存儲器,包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述步驟如下當所述應用軟件需要安全處理器所監(jiān)視的業(yè)務時,應用軟件產(chǎn)生中斷,從而使得重 新進入安全模式,將業(yè)務傳送到應用軟件,并退出安全模式,從而應用軟件可以繼續(xù)以 監(jiān)視模式來執(zhí)行。
93、 如權利要求85所述的存儲器或海量存儲器,包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述步驟如下在加電狀態(tài)下以所述安全模式執(zhí)行指令。
94、 如權利要求93所述的存儲器或海量存儲器,包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述步驟如下響應于所述加電狀態(tài),執(zhí)行保存在包括所述處理單元的芯片內部的永久存儲器中的安全代碼,所述執(zhí)行安全代碼的步驟包括以下步驟從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性。
95、 如權利要求93所述的存儲器或海量存儲器,包括能夠由計算設備解釋來執(zhí)行 以下步驟的指令,所述步驟如下響應于所述加電狀態(tài),執(zhí)行保存在包括所述處理單元的芯片內部的永久存儲器中的 安全代碼,所述執(zhí)行安全代碼的步驟包括以下步驟 從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性;其中所述驗證真實性和內容完整性的步驟是響應于所述芯片內部的永久存儲器而 執(zhí)行的。
96、 如權利要求93所述的存儲器或海量存儲器,包括能夠由計算設備解釋來執(zhí)行 以下步驟的指令,所述步驟如下響應于所述加電狀態(tài),執(zhí)行保存在包括所述處理單元的芯片內部的永久存儲器中的 安全代碼,所述執(zhí)行安全代碼的步驟包括以下步驟 從一個或多個可信源加載附加代碼; 驗證所述可信源的真實性;和 驗證所述附加代碼的內容完整性; 其中所述驗證真實性和內容完整性的步驟是響應于所述芯片內部的永久存儲器而執(zhí)行 的;并且所述芯片內部的所述永久存儲器的包括以下項的至少其中之一加密密鑰、安全散 列值、或用來驗證所述可信源和認證所述附加代碼的其他數(shù)據(jù)。
97、 如權利要求85所述的存儲器或海量存儲器,其中所述應用軟件包括至少一個 用來在所述安全模式中執(zhí)行的指令。
98、 如權利要求97所述的存儲器或海量存儲器,其中所述至少一個用來在所述安 全模式中執(zhí)行的指令包括可以由所述處理單元代表一組安全核心代碼來執(zhí)行的附加功 能。
99、 如權利要求97所述的存儲器或海量存儲器,其中所述至少一個用來在所述安 全模式中執(zhí)行的指令包括可以由所述處理單元代表一組安全核心代碼來執(zhí)行的附加功 能,所述附加功能包括認證附加安全核心代碼。
100、 一種存儲器或海量存儲器,其包括能夠由計算設備解釋來執(zhí)行以下步驟的指 令,所述步驟如下由處理單元執(zhí)行指令,所述處理單元包括至少具有安全模式和監(jiān)視模式的安全信 號;禾口當所述安全信號指示所述安全模式時,由所述處理單元響應于所述安全信號,訪問 至少一個安全功能,和當所述安全信號指示所述監(jiān)視模式時,拒絕響應于所述安全信號 訪問所述安全功能;其中所述安全功能包括響應于外部源而記錄外部指令的步驟,所述外部源的可信性 可以由所述處理單元驗證。
101、 如權利要求100所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來 執(zhí)行以下步驟的指令,所述步驟如下只有當所述安全信號指示所述安全模式時,才允許所述處理單元訪問連接到所述處 理單元的至少一個安全電路。
102、 如權利要求100所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來 執(zhí)行以下步驟的指令,所述步驟如下執(zhí)行保存在存儲器或海量存儲器中的一組應用程序代碼,所述存儲器或海量存儲器 連接到所述處理單元,所述執(zhí)行應用程序代碼的步驟的進行,對比于所述應用程序代碼 在實質上相同的非安全處理單元上被執(zhí)行而不響應于所述安全信號,沒有實質上的改 變。
103、 如權利要求100所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來執(zhí)行以下步驟的指令,所述步驟如下當所述處理單元工作在所述監(jiān)視模式時,由所述處理單元執(zhí)行保存在連接到所述處 理單元的存儲器或海量存儲器中的 一組應用程序代碼。
104、 如權利要求100所述的存儲器或海量存儲器,其中所述一個安全功能包括以下步驟從所述外部源請求所述外部指令;發(fā)送響應于所述安全信息的數(shù)據(jù)到所述外部源,從而所述外部源能夠驗證所述處理單元有權執(zhí)行所述外部指令;并且 從所述外部源接收所述外部指令。
105、 如權利要求100所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來 執(zhí)行以下步驟的指令,所述步驟如下由所述處理單元監(jiān)視到外部設備的訪問;所述監(jiān)視步驟響應于所述安全信號并響應于一組訪問規(guī)則,其中當所述處理單元嘗 試違反所述訪問規(guī)則而訪問所述外部設備時,響應于此而執(zhí)行至少一個安全功能。
106、 如權利要求105所述的存儲器或海量存儲器,其中,所述監(jiān)視步驟響應于由 所述處理單元的訪問,響應于以下項的至少其中之一由所述處理單元請求的多個訪問; 所述處理單元執(zhí)行的多個指令;由工作在所述安全模式的所述處理單元所設置的參數(shù);或 所述處理單元正在工作的間隔。
107、 如權利要求100所述的存儲器或海量存儲器,其包括能夠由計算設備解釋來 執(zhí)行由所述處理單元保存用于只讀訪問的一組安全信息的步驟的指令。
108、 如權利要求107所述的存儲器或海量存儲器,其中所述保存步驟包括從非易 失性存儲器讀取所述安全信息組的步驟。
109、 如權利要求107所述的存儲器或海量存儲器,其中所述保存步驟包括從非易 失性存儲器讀取所述安全信息組的步驟,并包括當所述安全處理器被封裝時使得對所述 非易失性存儲器的寫入無效的步驟。
110、 如權利要求107所述的存儲器或海量存儲器,其中所述保存歩驟包括從非易 失性存儲器讀取所述安全信息組的步驟,并包括當所述安全處理器被封裝時使得對所述 非易失性存儲器的寫入無效的步驟,所述無效的步驟包括制作實質上不可訪問的非連接 引腳。
111、 如權利要求107所述的存儲器或海量存儲器,其中所述保存步驟包括從非易 失性存儲器讀取所述安全信息組的步驟,并且其中所述安全信息組對于所述安全處理器 是唯一的。
112、 如權利要求100所述的存儲器或海量存儲器,其中所述一個安全功能包括以 下步驟從所述外部源接收所述外部指令; 構造響應于所述外部指令的數(shù)據(jù);和比較響應于所述外部指令的數(shù)據(jù)和至少一些所述安全信息,從而所述處理單元能夠 驗證所述外部指令是準確的。
113、 如權利要求112所述的存儲器或海量存儲器,其中 所述構造步驟包括響應于所述外部指令來確定一個計算的簽名值;和 所述比較步驟包括嘗試匹配所計算的簽名值和包括在所述安全信息中的記錄的簽 名值。
114、 如權利要求112所述的存儲器或海量存儲器,其中所述接收步驟包括以下項 的至少其中之一接收一組消息,所述消息組整體包括所述外部指令;或 接收一組存儲器介質,所述存儲介質組整體包括所述外部指令。
115、 一種存儲器或海量存儲器,包括能夠由計算設備解釋來執(zhí)行以下步驟的指令, 所述步驟如下在處理器上執(zhí)行指令,所述處理器具有安全模式和監(jiān)視模式;其中當所述處理器以所述安全模式執(zhí)行時,所述處理器具有到至少一個安全功能的 入口,其中當所述處理器以所述監(jiān)視模式執(zhí)行時,所述處理器沒有到安全功能的入?yún)[l;其中在啟動狀態(tài)、中斷狀態(tài)的其中一個的期間,所述處理器以所述安全模式執(zhí)行, 所述中斷狀態(tài)響應于非可屏蔽中斷或定時器中斷;其中當所述處理器進入所述安全模式時,所述處理器傳送控制到一組安全代碼,當 所述處理器以所述監(jiān)視模式執(zhí)行時,所述安全代碼不可以被改變;和其中,與所述啟動狀態(tài)相關的一組所述安全代碼包括可以由所述處理器執(zhí)行的指 令,并且所述指令引導所述處理器響應于所述外部指令的外部源,而將外部指令添加到 安全代碼,所述外部源的可信性可以由所述處理器響應于一組安全信息而進行驗證。
全文摘要
一種安全處理器(110),確保應用軟件被安全執(zhí)行,并確保只有授權的軟件才可被執(zhí)行,以監(jiān)視模式或安全模式操作。在前者模式下,相對于軟件透明地執(zhí)行應用軟件。在后者模式下,驗證應用軟件的執(zhí)行是否被授權,執(zhí)行由應用軟件所需的任何額外業(yè)務,并驗證所述處理器是否獲得執(zhí)行該內容的權利。所述安全處理器(110)在硬件上看起來與普通處理器相同,從而為普通處理器所編寫的應用軟件,無需實質上的改變,而可以在該安全處理器(110)上執(zhí)行,在表現(xiàn)為與普通處理器硬件相同的那些部分上,只需要很少的附加硬件。所述安全處理器(110)實質上不降低速度或其它應用軟件可用的資源。安全模式的功能可能駐留在芯片上的非易失存儲器中,或可從外部存儲器認證加載。
文檔編號G06F12/14GK101103584SQ200480003750
公開日2008年1月9日 申請日期2004年2月6日 優(yōu)先權日2003年2月7日
發(fā)明者大衛(wèi)·巴萊斯, 威廉姆·斯帕瑞斯坦, 弗蘭克·貝恩特, 普拉米拉·斯瑞尼瓦桑, 約翰·普瑞森, 維 顏 申請人:Broadon通信公司