專利名稱:保護從中央處理器發(fā)送的以供處理的安全數(shù)據(jù)的安全性的制作方法
技術領域:
本發(fā)明的領域涉及數(shù)據(jù)處理,并且更具體地涉及使用附加的處理裝
置處理安全數(shù)據(jù)和不安全(non-secure)數(shù)椐,以在第一數(shù)據(jù)處理器的 控制下執(zhí)行任務。
背景技術:
與主處理器相結合使用加速器或協(xié)處理器來增強性能是已知的,加 速器或協(xié)處理器執(zhí)行主處理器請求的任務。盡管通過提供附加的處理能 力可以增強性能是顯然的,但這類系統(tǒng)可能存在的缺陷是與處理器和加 速器之間的通信相關的開銷。例如在安全操作系統(tǒng)和不安全操作系統(tǒng)的 控制下處理安全數(shù)據(jù)和不安全數(shù)據(jù)兩者的情況下,與管理在處理器和加 速器之間傳送的數(shù)據(jù)的安全性狀態(tài)相關的通信開銷可能是非常高的。在 這種情況下,將大任務發(fā)送給加速器來執(zhí)行才可能是有利的,只占用幾 十個或甚至幾百個周期(cycle)的任務所具有的與之關聯(lián)的通信開銷 如同它們增進的處理性能 一 樣多或更多。
發(fā)明內容
本發(fā)明的第一方面提供了一種數(shù)據(jù)處理設備,包括數(shù)據(jù)處理器和另 一 (further)處理裝置,所迷數(shù)據(jù)處理器用于在安全模式和不安全模式 下處理數(shù)據(jù),在所述安全才莫式下處理數(shù)據(jù)的所述數(shù)據(jù)處理器可以訪問安 全數(shù)據(jù),所述數(shù)據(jù)處理器在所述不安全模式下不可以訪問所述安全數(shù) 據(jù),并且在所述安全模式下處理數(shù)據(jù)是在安全操作系統(tǒng)的控制下進行 的,在所述不安全模式下處理數(shù)據(jù)是在不安全操作系統(tǒng)的控制下進行 的;所述另一處理裝置用于響應于來自所述數(shù)據(jù)處理器的請求而執(zhí)行任 務,所述任務包括處理至少其中一些是安全數(shù)據(jù)的數(shù)據(jù);其中所述另一 處理裝置響應于接收到暫停所述任務的信號,以啟動使用安全密鑰處 理所述安全數(shù)據(jù);和將所述處理過的安全數(shù)據(jù)存儲到不安全數(shù)據(jù)儲存器 (store)中;所述另 一處理裝置還響應于接收到繼續(xù)所迷任務的信號,以啟動從所述不安全數(shù)據(jù)儲存器中檢索(retrieval)所述處理過的 安全數(shù)據(jù);以及使用所述安全密鑰恢復所述處理過的安全數(shù)據(jù);其中所 述安全密鑰是安全地存儲的,使得其不能被工作在所述不安全模式下的 其它進程訪問。
本發(fā)明認識到在另一處理裝置處理的數(shù)據(jù)包括安全數(shù)據(jù)的情況下, 使用該另一處理裝置為可以在安全或不安全模式下操作的數(shù)據(jù)處理器 執(zhí)行特定任務的通信開銷可能巨大。原因是該安全數(shù)據(jù)必須與數(shù)據(jù)處理 器的不安全^t式保持隔離,并且安全數(shù)據(jù)的管理通常是由數(shù)據(jù)處理器的 安全操作系統(tǒng)完成的。然而,無論何時正由另一處理裝置執(zhí)行的任務被 中斷并且需要被暫停時,調用安全操作系統(tǒng)來管理由該另 一處理裝置正 在處理的安全數(shù)據(jù)將需要許多操作周期,因此在性能方面代價會非常 高。本發(fā)明通過提供所述另一處理裝置解決了此問題,該另一處理裝置 本身具有的功能使得其能夠使它正在處理的安全數(shù)據(jù)在存儲到數(shù)椐處 理器可以訪問的不安全數(shù)據(jù)儲存器之前被處理。該處理是使用其它不安 全進程不能訪問的密鑰完成的。通過提供本身具有這種功能的所述另一 處理裝置,提供了在無需安全操作系統(tǒng)介入的情況下維持安全數(shù)據(jù)的安 全性的可能性。而且,在所述另一處理裝置原本處理的任務要被繼續(xù)時, 可以使用其它不安全進程不能訪問的安全密鑰在另一處理裝置的控制 下恢復安全數(shù)椐,然后可以恢復所述另一處理裝置的狀態(tài),并且繼續(xù)讀 任務,其中可以在不安全模式下操作的數(shù)據(jù)處理器本身只能受控訪問安 全數(shù)據(jù)。
因此,所述另一處理裝置本身以有效方式維持了由所述另一處理裝 置處理的數(shù)據(jù)的安全性,并且與發(fā)送任務給另 一處理裝置相關的開銷被 降低,因此可以發(fā)送輕小的任務,獲得性能益處(performance benef i O 。
在一些實施例中,所述安全數(shù)據(jù)的所述處理包括使用所述安全密鑰 加密所述安全數(shù)據(jù),并且所述處理過的安全數(shù)據(jù)的所迷恢復包括使用所 迷安全密鑰解密所述加密的安全數(shù)據(jù),所述安全密鑰被安全地存儲在執(zhí) 行所述加密和解密的裝置中。
保護安全數(shù)據(jù)的一種高效方式是在將其存儲到不安全儲存器之前 在所述另一處理裝置的控制下對其加密。這樣數(shù)據(jù)處理器本身不能訪問該安全數(shù)據(jù)。
在一些實施例中,在啟動所述數(shù)椐的加密之前,所述另一處理裝置 啟動從所述數(shù)據(jù)中生成安全簽名,并啟動所述安全簽名的加密以及將所
述安全簽名連同所述安全數(shù)據(jù)一起存儲;并且響應于接收到繼續(xù)所述任 務的所述信號,所述另一處理裝置啟動所述加密的安全簽名的檢索以及 所述加密的安全簽名的解密,并且在所述加密的安全數(shù)據(jù)的解密之后, 啟動從所述解密的加密數(shù)椐中生成所述安全簽名,并將所述生成的安全 簽名和所述解密的安全簽名進行比較;并且響應于所述生成的安全簽名 與所述解密的安全簽名不匹配,所述另一處理裝置向所述數(shù)據(jù)處理器發(fā) 出信號以表明所述數(shù)據(jù)已經被篡改;并且響應于所述生成的安全簽名與 所述解密的安全簽名相匹配,所述另一處理裝置使用所述解密的數(shù)椐繼 續(xù)所述任務。
盡管可以僅對安全數(shù)據(jù)加密以保護其不被不安全進程訪問,但從所 述數(shù)據(jù)中生成安全簽名,然后用數(shù)據(jù)加密該安全簽名可能是有利的。該 簽名然后可用在解密上,以確定所存儲的加密數(shù)據(jù)是否已經被篡改。如 果解密后生成的安全簽名與存儲的加密的安全簽名不匹配,則可向數(shù)據(jù) 處理器發(fā)出中止(abort)信號以通知數(shù)據(jù)處理器該數(shù)據(jù)已經被篡改。 如果安全簽名確實匹配,則處理可以繼續(xù)。這樣,不僅可以安全地存儲 安全數(shù)椐,而且在進程被中斷時,其完整性可被驗證。
在其它實施例中,安全簽名是通過以下方式從加密的數(shù)據(jù),而不是 從解密的數(shù)據(jù)中生成的加密所述數(shù)據(jù)之后,所述另一處理裝置啟動從 所述加密的數(shù)據(jù)中生成安全簽名,并且啟動所述安全簽名連同所述加密 的安全數(shù)據(jù)的加密和存儲;以及響應于接收到繼續(xù)所述任務的所述信 號,所述另一處理裝置啟動所述加密的安全簽名的檢索和所述加密的安 全簽名的解密,并啟動從所迷加密的數(shù)據(jù)中生成所述安全簽名,將所述 生成的安全簽名和所迷解密的安全簽名進行比較;并且響應于所述生成 的安全簽名與所述解密的安全簽名不匹配,所述另 一處理裝置向所述數(shù) 據(jù)處理器發(fā)出信號以表明所述數(shù)據(jù)已經被篡改;以及響應于所述生成的 安全簽名與所述解密的安全簽名相匹配,所述另一處理裝置解密所述加 密的數(shù)據(jù),并使用所述解密的數(shù)據(jù)繼續(xù)所述任務。
在一些實施例中,所述安全數(shù)據(jù)的所述處理包括從所述數(shù)據(jù)中生成安全簽名以及使用所述安全密鑰加密所述安全簽名,所述處理過的安全 數(shù)據(jù)的所迷恢復包括解密所述加密的安全簽名,并且從所述檢索的數(shù)據(jù)
名進行比較;并且響應于所述生成的安全簽名與所述解密的:全簽名不 匹配,所述另一處理裝置向所述數(shù)據(jù)處理器發(fā)出信號以表明所述數(shù)據(jù)已 經被篡改;并且響應于所述生成的安全簽名與所述解密的安全簽名相匹 配,所述另一處理裝置使用所述檢索的數(shù)據(jù)繼續(xù)所述任務。
由于在所述另一處理裝置之外,安全數(shù)據(jù)是不能被理解的,所以正 在被處理的安全數(shù)據(jù)可能不需要保護其自身不被查看。然而,安全數(shù)據(jù) 不被篡改可能是重要的,因為墓改安全數(shù)椐可能是試圖訪問安全信息的 方式。在這種情況下,數(shù)據(jù)本身沒有被加密,不過生成了安全簽名,并 且該安全簽名可用來檢查數(shù)據(jù)是否已經被篡改過。
在一些實施例中,所述安全數(shù)據(jù)的所述加密和所述簽名的所述生成 是使用相同的算法進行的。
在安全數(shù)據(jù)的加密是使用專門為此功能產生的加解密引擎 (crypto-engine)完成的情況下,為了降低添加此引擎的開銷,使用 與用來加密安全數(shù)據(jù)相同的算法來產生簽名(例如哈希)可能是有利的。
在一些實施例中,執(zhí)行所述加密和解密的所述裝置是所述另一處理 裝置。
如果所述另 一處理裝置本身執(zhí)行加密和解密,則顯然安全數(shù)據(jù)的安 全性被增強,因為安全數(shù)據(jù)沒有離開該裝置,直到它本身被加密,因此 對安全數(shù)據(jù)的訪問是容易控制的。
在 一 些實施例中,所述另 一 處理裝置包括加解密處理 (cryptography processing)裝置,所述加解密處理裝置使用至少一 個密鑰執(zhí)行數(shù)據(jù)的加解密處理,所述安全數(shù)據(jù)是由包括所述至少一個密 鑰的所述安全密鑰來加密的。
該技術在應用于加解密處理裝置時特別有用。這些裝置使用密鑰加 密和解密數(shù)據(jù),并且顯然重要的是,這些密鑰不能被不安全模式訪問。 因此,對這些另一處理裝置來說,重要的是包括這些加解密密鑰 (cryptography key)的安全數(shù)據(jù)被保持安全。而且,這些裝置已經包括加解密功能性,因此,可以使用這些裝置及所迷另一處理裝置用于此 功能的安全密鑰來執(zhí)行加密安全數(shù)據(jù)(在處理過程中用來加密數(shù)據(jù)的加 解密密鑰)。這樣,可以使用所述另一處理裝置本身的功能性,來加密 和解密安全數(shù)椐。因此,與包括該功能有關的面積開銷很小。
在一些實施例中,執(zhí)行所述加密和解密的所迷裝置是通過專用數(shù)據(jù) 通信路徑連接到所述另一處理裝置的加解密處理裝置,其它裝置不可以 訪問該專用數(shù)椐通信路徑。
盡管在一些實施例中,該另一處理裝置本身執(zhí)行加解密功能,但在 其它實施例中,可以由單獨的加解密裝置來執(zhí)行此功能。在這種情況下, 用來將安全數(shù)據(jù)傳送到此加解密裝置的數(shù)據(jù)路徑必須是專用于此目的 且不可被其它處理器訪問的安全數(shù)據(jù)路徑。
在一些實施例中,所述另 一處理裝置包括用來執(zhí)行除加解密以外的 功能的電路,所迷另一處理裝置包括附加的加解密電路以加密和解密所 述安全數(shù)據(jù),所述另一處理裝置包括所述安全密鑰的安全存儲位置。
如果該另 一處理裝置不是加解密處理裝置,則其可以象以前提到的 那樣使用單獨的加解密處理裝置,或者可以給予其附加的加解密電路, 使得其可以在安全數(shù)據(jù)除了在加密狀態(tài)外根本不離開所述另一處理裝 置的情況下加密和解密所述安全數(shù)據(jù)。在這種情況下,該另一處理裝置 包括安全密鑰的存儲位置,使得該安全密鑰在該裝置內可用于加密和解 密,但不可用于任何其它裝置。
在一些實施例中,所述另 一處理裝置包括所迷安全密鑰的只寫存儲 位置。
將安全密鑰存儲在該另一處理裝置上的只寫存儲位置可能是有利 的。這樣,安全密鑰可被其它裝置更新,但不能被其它裝置讀取。
在一些實施例中,所述安全密鑰是在操作在安全模式下的所述數(shù)據(jù) 處理器的控制下,存儲在所述數(shù)據(jù)處理設備中的,使得只有操作在安全 -漠式下的所述數(shù)椐處理器才可以訪問所述安全密鑰。
例如可以在操作在安全模式下的數(shù)據(jù)處理器的控制下從數(shù)據(jù)處理 設備的安全儲存器中檢索安全密鑰。在希望不時地更新安全密鑰的情況 下這可能是有利的。從安全性的觀點來看,這是可接受的,只要其存儲
10在安全存儲位置,使得其只能由其它裝置在安全模式下操縱。在一些實 施例中,可能只能在安全特權模式下訪問安全密鑰,這樣安全性會更高。
在一些實施例中,所述安全密鑰是在制造時被設定的,并永久地安 全存儲在執(zhí)行所述安全數(shù)據(jù)的所述加密和解密的所述裝置中,使得其不 可被其它裝置訪問。
在安全模式下訪問密鑰的一種替代方式是將密鑰永久地存儲在加 密安全數(shù)據(jù)的裝置內,并使其不能被其它裝置訪問。這是保證安全密鑰 在該裝置內保持安全并且不能被外界訪問的一種簡單方式。不過,這意 味著密鑰永遠不能被改變或更新。
生成并存儲安全密鑰的一種可替代方式是在加密和解密裝置內具
有隨機數(shù)生成器,該隨機數(shù)生成器在復位時(at reset)生成并存儲安 全密鑰。在其它實施例中,可以使用偽隨機數(shù)生成器,其中現(xiàn)有信號或 值的秘密集合被組合,并從該組合中生成一數(shù)。
盡管不安全數(shù)據(jù)儲存器可包括許多不同的東西,但在一些實施例 中,它包括存儲器(memory)的不安全部分。
在一些實施例中,暫停所述任務的所述信號是由所述數(shù)據(jù)處理器響 應于中斷或異常而生成的。
盡管暫停任務的信號可以響應于多種情況而生成,但在一些實施例 中,暫停任務的信號是響應于中斷或異常而生成的。
在一些實施例中,暫停所述任務的所述信號是由所述數(shù)椐處理器響 應于表示所述數(shù)據(jù)處理器從操作在所述安全模式或不安全模式中的一 種切換到所述安全模式或不安全模式中的另一種的上下文切換的信號 而生成的。
數(shù)據(jù)處理器從安全模式到不安全模式的上下文切換涉及其它數(shù)據(jù) 處理裝置暫停另一處理裝置的處理,并將其狀態(tài)存儲在存儲器中,使得 當數(shù)據(jù)處理器切換回它之前所在的模式時可以重新開始處理。
在這種情況下,重要的是維持它之前正在處理的安全數(shù)據(jù)的安全 性。這是通過使用加密和解密裝置而不使用數(shù)據(jù)處理器的安全操作系統(tǒng) 來完成的,所述加密和解密裝置是由該另一處理裝置本身控制的。因此, 數(shù)據(jù)的安全性是通過該另 一處理裝置本身維持的,并且不需要調用安全操作系統(tǒng)來控制數(shù)據(jù)的安全性,調用安全操作系統(tǒng)在性能上是高代價 的。
在一些實施例中,執(zhí)行所述任務的所述請求是從操作在所述不安全 模式下的所述數(shù)據(jù)處理器中發(fā)出的。
如果執(zhí)行任務的請求是從不安全模式下的數(shù)據(jù)處理器中發(fā)出的,那 么該另一處理裝置對安全數(shù)據(jù)的處理必須明確地與數(shù)據(jù)處理器本身保 持隔離,因為數(shù)據(jù)處理器本身操作在不安全模式。在這種情況下,響應
于暫停處理的請求在將安全數(shù)據(jù)從該另一處理裝置中存儲出去(stored out of the further processing means)之前對所述安全數(shù)據(jù)的力口密 在維持安全性而不涉及數(shù)據(jù)處理器本身方面是重要的。
在一些實施例中,所迷數(shù)據(jù)處理器被配置成響應于所述數(shù)據(jù)處理器 在不安全模式下正執(zhí)行的程序代碼向所述另一處理裝置發(fā)出執(zhí)行所述 任務的所述請求。
本發(fā)明的實施例允許由數(shù)據(jù)處理器在諸如不安全用戶模式之類的 不安全模式下執(zhí)行的諸如用戶代碼之類的代碼,調用該另 一處理裝置本 身來執(zhí)行包括安全數(shù)據(jù)的代碼,而不需要涉及安全操作系統(tǒng)。在允許以 高效方式處理安全數(shù)椐時這是非常有利的。這可用在例如使用安全密鑰 對數(shù)據(jù)進行的加解密處理中,而不需要涉及安全操作系統(tǒng)。
在一些實施例中,所述另一處理裝置包括不可編程硬件。
該另一處理裝置可包括簡單的不可編程硬件裝置,由于其不能被用 戶軟件攻擊,因而特別安全。因此,只要安全數(shù)據(jù)保持在該裝置內,并 且僅以加密形式離開該裝置,其安全性可以被保證。
在一些實施例中,所迷另 一處理裝置被配置成不在操作系統(tǒng)的控制 下處理程序代碼。
該另 一處理裝置可以是不包括操作系統(tǒng)的簡單裝置,這使得裝置內 的安全數(shù)據(jù)的控制更直接。它還使該裝置成為能非常高效地執(zhí)行預定處 理步驟的高效裝置。
本發(fā)明的另一方面提供一種在數(shù)據(jù)處理設備上處理數(shù)據(jù)的方法,該 數(shù)據(jù)處理設備包括數(shù)據(jù)處理器和另 一處理裝置;所述數(shù)據(jù)處理器用于在 安全模式和不安全;f莫式下處理數(shù)據(jù),在所迷安全^f莫式下處理數(shù)據(jù)的所述
12數(shù)據(jù)處理器可以訪問安全數(shù)據(jù),所述數(shù)據(jù)處理器在所述不安全模式下是 不能訪問所述安全數(shù)據(jù)的,所述數(shù)據(jù)處理器在所述安全模式下處理數(shù)據(jù) 是在安全操作系統(tǒng)的控制下進行的,在所迷不安全模式下處理數(shù)據(jù)是在
不安全操作系統(tǒng)的控制下進行的;所述另一處理裝置用來響應于來自所 迷數(shù)據(jù)處理器的請求而執(zhí)行任務,所述任務包括處理至少其中一些是安 全數(shù)據(jù)的數(shù)據(jù);所述方法包括以下步驟在所述數(shù)椐處理器上處理數(shù)椐; 將來自所述數(shù)據(jù)處理器的請求發(fā)送到所述另一處理裝置以執(zhí)行任務,所 述任務包括處理至少其中一些是安全數(shù)據(jù)的數(shù)據(jù);在所述另一處理裝置 上開始所述任務;向所述另一處理裝置發(fā)送暫停所述任務的信號;響應 于接收到暫停所述任務的所述信號,所迷另一處理裝置暫停所述任務, 并且啟動使用安全密鑰對所述安全數(shù)據(jù)的加密以及將所述加密的安全 數(shù)據(jù)存儲到不安全數(shù)據(jù)儲存器中;從所述數(shù)據(jù)處理器生成指示所述另一 處理裝置繼續(xù)所述任務的信號;響應于所述信號,所述另一處理裝置從 所述不安全數(shù)椐儲存器中檢索所述加密的安全數(shù)據(jù),并使用所述安全密 鑰解密所述加密的安全數(shù)據(jù),所述安全密鑰被安全地存儲在執(zhí)行所述加 密和解密的所述裝置內,使得其不能由其它裝置訪問。
結合附圖閱讀下文的示例性實施例的詳細描述,本發(fā)明的上述目 標、特征和優(yōu)點以及其它的目標、特征和優(yōu)點將變得顯而易見。
圖1示意性地顯示了根據(jù)本發(fā)明的實施例的數(shù)據(jù)處理設備;
圖2示意性地顯示了根據(jù)本發(fā)明的實施例的數(shù)據(jù)處理設備,該數(shù)據(jù)
處理設備具有處理器,加速器和分離的加解密裝置;
圖3示意性地顯示了根椐本發(fā)明另一實施例的數(shù)據(jù)處理設備;
圖4顯示了圖解說明根據(jù)本發(fā)明的實施例的方法的流程圖5顯示了用來在中斷時暫停和繼續(xù)硬件輔助(hardware assist)
的控制流程;
圖6顯示了用于上下文切出(switch out)的流程圖; 圖7顯示了用于將進程上下文切換到硬件輔助模塊的流程圖;和 圖8顯示了圖解說明延遲硬件輔助狀態(tài)保存直到第一新進程訪問的 流程圖。
具體實施例方式
圖1示意性地顯示了處理器核心IO和加速器20。該系統(tǒng)配備有監(jiān) 控程序12,監(jiān)控程序12至少部分地在監(jiān)控模式下執(zhí)行。安全性狀態(tài)標 志只在監(jiān)控模式下是可寫訪問的,并且可以被監(jiān)控程序寫入。監(jiān)控程序 負責管理安全域和不安全域之間的在任一方向上的所有變化。從該核心 的外部看,監(jiān)控模式總是安全的,并且監(jiān)控程序處于安全存儲器中。監(jiān) 控模式12可以被認為是安全處理模式,因為安全狀態(tài)標志在這種模式 下可以被改變,并且監(jiān)控模式12下的監(jiān)控程序有能力自身設置安全性 狀態(tài)標志,這總體上有效地提供了系統(tǒng)內的最終安全性等級。
監(jiān)控模式在該系統(tǒng)中具有最高等級的安全性訪問,而且是有權在不 安全域和安全域之間在任一方向切換該系統(tǒng)的唯一模式。因此,所有的 域切換都是通過切換到監(jiān)控模式并且在監(jiān)控模式內執(zhí)行監(jiān)控程序進行 的。
在不安全域中提供了不安全操作系統(tǒng)14,它運行多個不安全應用程 序,所述不安全應用程序與不安全操作系統(tǒng)"協(xié)同執(zhí)行。在安全域中, 提供了安全內核程序??梢哉J為安全內核程序16形成安全操作系統(tǒng)。 一般地,這樣的安全內核程序16被設計成只提供對必須提供在安全域 中的處理活動是必需的那些功能,使得安全內核16可以盡可能地小和 簡單,因為這往往使其更加安全。
當在安全模式和不安全模式之間切換時,總是調用(invoke)監(jiān)控 模式以控制數(shù)據(jù)的安全性,并確保安全的數(shù)據(jù)永遠不用于不安全側。為 了進入安全模式,首先要進入安全特權模式。除了響應于安全中斷,從 非特權安全模式不能進入監(jiān)控模式。
圖1還顯示了鏈接到核心10的加速器20它,并且在此實施例中, 加速器20包括加解密引擎。加解密引擎20由核心10調用以為其執(zhí)行 加解密功能??赡芗词乖诓话踩J较虏僮?,仍希望對某些數(shù)據(jù)加密。 在這種情況下,加解密引擎被調用以對數(shù)據(jù)加密,并且加解密引擎使用 安全密鑰執(zhí)行加解密功能。顯然,這些安全密鑰不應為不安全側可用, 并且盡管加解密引擎可能是不可編程硬件裝置,這使得其非常安全,但 如果加解密過程出于某些原因被中斷,那么如果來自加解密引擎的狀態(tài) 要被保存以便能夠繼續(xù)處理,就會存在安全性問題,因為如果當不安全 操作系統(tǒng)正在控制核心時執(zhí)行保存加解密過程的狀態(tài)的操作,則保存加解密過程的狀態(tài)可能會使其可用于不安全側。然而,如果需要調用安全 操作系統(tǒng)以便管理數(shù)據(jù)的安全性,則存在與中斷該應用相關的很長的時 延。在本實施例中,加解密引擎的功能性被用來使用存儲在加解密引擎
20中的會話密鑰22對諸如在其處理過程中使用的密鑰之類的安全數(shù)據(jù) 進行加密。在此實施例中,會話密鑰22被存儲在加解密引擎20內,此 時處理器核心在安全操作系統(tǒng)14的控制下在安全模式下操作,由此該 核心指示加解密引擎從存儲器30的的安全存儲器部分加栽會話密鑰。 會話密鑰22存儲在只寫位置,使得試圖攻擊進入加解密引擎20的外部 進程不能讀取該會話密鑰。
因此,響應于來自核心10的中斷,該中斷表明加解密引擎正在處 理的應用應該被暫停,加解密引擎20暫停其數(shù)椐的處理,并使用其加 解密功能性以利用會話密鑰22對其之前正處理的安全數(shù)據(jù)進行加密。 加解密引擎的狀態(tài)連同被加密的安全數(shù)據(jù)和未被加密的不安全數(shù)據(jù)然 后被存儲到由指針24指示的位置處的存儲器30的不安全部分中。
當該核心希望繼續(xù)它分派給加解密引擎20執(zhí)行的應用時,它發(fā)送 信號給加解密引擎20表明此意,由此加解密引擎20可以通過訪問由指 針24所指示的位置離開其狀態(tài)和存儲器30所存儲的數(shù)據(jù)(leave its state and the stored data from memory 30)。 然后它可以使用會話 密鑰22解密該加密的數(shù)據(jù),之后可以繼續(xù)處理。這樣,在核心10上的 不安全操作系統(tǒng)的控制下運行的不安全應用可以給加解密引擎10分派 任務以使用安全密鑰執(zhí)行加解密,并允許此應用被中斷,而無需調用監(jiān) 控模式來控制安全數(shù)據(jù)的安全性狀態(tài)。
圖2顯示了可替代實施例,其中核心IO給加速器20分派任務使其 執(zhí)行功能,在圖2的情況下該功能不是加解密功能。在這種情況下,當 核心10切換上下文時,例如從安全模式切換到不安全模式時,它分派 給加速器20處理的安全數(shù)據(jù)需要被保存,使得通過該上下文切換而中 斷的任務可以在稍后繼續(xù)。在這種情況下,加速器20不是加解密引擎, 因此,它指示單獨的加解密單元50來加密它正在處理的安全數(shù)據(jù),加 速器20通過專用的通信線路52鏈接到加解密單元50。加解密單元50 包括隨機數(shù)生成器52,加解密單元使用隨機數(shù)生成器52以在復位時生 成隨機數(shù)。該隨機數(shù)被存儲為會話密鑰54,并用來加密加速器20發(fā)送 給它的安全數(shù)據(jù)。在這個實施例中,加解密單元在加密數(shù)據(jù)之前還根據(jù)
15未加密的數(shù)據(jù)生成哈希值,該哈希值通過加解密單元使用會話密鑰54 連同加密的數(shù)據(jù)而被加密。在一些實施例中,可以使用偽隨機數(shù)生成器, 而不是具有真隨機數(shù)生成器的開銷。這獲取一組現(xiàn)有信號,并根據(jù)這些 信號的組合生成一數(shù)。信號的組合當然必須是秘密組合。
該加密的數(shù)據(jù)連同加密的哈希值然后以與圖1所示大致相同的方式 與加速器20的狀態(tài)以及不安全數(shù)據(jù)一起被存儲在存儲器中。
盡管在這些實施例中,安全數(shù)據(jù)在存儲之前被加密,但在一些實施 例中,哈希可被產生并加密,并且未加密的數(shù)據(jù)連同加密的哈希一起被 存儲。這使得用戶能夠知道數(shù)據(jù)是否已經被篡改。在這種情況下,安全 數(shù)據(jù)對于不安全側是可訪問的,但在系統(tǒng)不知道的情況下它是不能被更 改的。在系統(tǒng)的安全性可能由于在另一處理裝置中使用已經被篡改(但 并不是通過查看該數(shù)據(jù))的安全數(shù)椐而受到威脅的情況下,這可能是有 用的。
當該核心切換回安全狀態(tài)時,它給加速器20發(fā)信號指示其以前正 在執(zhí)行的任務應該繼續(xù)。此時,從存儲器30中檢索存儲的狀態(tài)和數(shù)據(jù), 并且加密的數(shù)據(jù)和哈希值被發(fā)送到加解密單元50。加密的數(shù)據(jù)然后連同 哈希值一起被解密,并且根椐解密的數(shù)據(jù)產生新的哈希值。如果這個新 的哈希值與解密的哈希值匹配,則加解密單元50可以保證數(shù)據(jù)沒有被 篡改,然后解密的數(shù)據(jù)被發(fā)送到加速器20。如果這些哈希值不匹配,則 表明數(shù)據(jù)已經被篡改,給核心IO發(fā)信號表明此結果,并中止該過程。
圖3顯示了可替代實施例,其中加速器20再次不是加解密單元。 在這種情況下,不是使用單獨的加解密單元,加解密電路25被添加到 加速器20,因此,當核心IO向加速器20表明它需要暫停某些安全數(shù)據(jù) 的處理時,加解密電路25可以用來加密這些安全數(shù)據(jù)。在這個實施例 中其還被用來根據(jù)未加密的數(shù)據(jù)生成哈希值,并加密該哈希值。在這種 情況下,因為加解密電路25相對簡單,哈希值和加解密使用相同的算 法。用于該加解密的會話密鑰22在制造時被永久地存儲在加速器20中。
在其它方面,該系統(tǒng)以與圖1和圖2所示的方式非常類似的方式進 行工作。
圖4顯示的流程解說明了根據(jù)本發(fā)明的實施例的方法的各步 驟。在該方法中,執(zhí)行任務的請求是在加速器處從主處理器核心接收的。 加速器然后執(zhí)行包括處理安全數(shù)據(jù)和不安全數(shù)據(jù)的該任務。在執(zhí)行此操作時,它輪詢(poll)中斷,如果接收到一個中斷,它暫停該任務的處 理,并根據(jù)安全數(shù)據(jù)產生哈希值。然后它使用存儲在加密器上的會話密 鑰加密安全數(shù)據(jù)和哈希值。應注意盡管在此實施例中,哈希值是根據(jù)未 加密的安全數(shù)據(jù)產生的,但在其它實施例中,安全數(shù)據(jù)可以首先被加密, 然后根據(jù)加密的數(shù)椐產生哈希值。
處理器的狀態(tài)、加密的安全數(shù)據(jù)、哈希值和任何不安全數(shù)據(jù)然后被 存儲在存儲器中,并且加速器執(zhí)行由中斷指示的另一任務。當這被完成 并且接收到指示繼續(xù)被中斷的任務的信號時,從存儲器中存儲數(shù)據(jù)的地 址檢索數(shù)據(jù)以及處理器的狀態(tài),并且然后解密所加密的數(shù)據(jù)和哈希。然 后根據(jù)解密的數(shù)據(jù)創(chuàng)建哈希值,并與存儲的解密的哈希進行比較看它們 是否匹配。如果匹配,則恢復處理器的狀態(tài),處理繼續(xù),如果不匹配, 則中止任務并生成錯誤信號。
上述技術與題為 "Providing Secure Services to A Non-Secure Application"的申請?zhí)枮?2/003, 857以及題為"Control 1 ing Cleaning of Data Values Within a Hardware Accelerator" 的申請?zhí)枮?12/000, 005的共同未決的美國專利申請中描述的技術有關。這兩個共同 未決申請的公開內容全部被并入本文。
下面將公開與另一處理裝置或ARM⑧數(shù)據(jù)處理設備中的硬件(HW) 輔助 一起使用的不同技術的其他細節(jié)。
希望訪問安全側數(shù)據(jù)的用戶模式HW輔助的 一般運行模型是在HW輔 助試圖訪問安全側之前,安全會話已經由安全側或由Trustzone ( TZ ) 軟件建立。
存在四種管理需要從安全側訪問數(shù)據(jù)的HW輔助的安全會話的潛在 方式。
到安全側的默認軟件(SW)入口在SW中有所有安全性。每次要求 安全服務時,進入特權模式,然后運行SMC (調用安全側)以進入安全 監(jiān)視。然后提供安全服務,程序然后返回到用戶模式應用。
使安全監(jiān)視中的入口直接試圖訪問HW輔助。在此模式下,每次調 用HW輔助時,進入安全側,并且安全會話可由安全側直接管理。安全 側SW還可以運行所需的任何完整性檢查,然后調用HW來執(zhí)行該任務。 這可以通過禁用對HW輔助的不安全訪問來實現(xiàn)。
建立全局安全會話,并給要求安全訪問的每一進程提供可用于不安
17全側的安全值的表格中的預定義索引。每個表格值與哈希值成對,以確 保只有具有正確哈希的進程才可以訪問特定的表格條目。安全會話是在 進程創(chuàng)建時建立的,此時可用的表格條目和保護哈希值被計算。安全側
還將安全基表的地址和有效表格范圍寫入到HW輔助中的僅安全模式寄 存器中(secure mode only register)。 為了從應用程序訪問安全項, HW輔助被用戶編程有偏移和哈希值。HW輔助模塊然后使用這些值來訪 問安全信息,并檢查哈希。在此模型中,安全會話仍然是全局視圖,因 此不需要在規(guī)則的操作系統(tǒng)上下文切換時調用安全監(jiān)視一該偏移和哈 ??梢栽谏舷挛那袚Q時^皮存儲在進程應用空間中。
每個進程建立一安全會話。在此^f莫型中,每個進程實際上具有自己 的安全會話。在進程被上下文切入時建立安全會話,并且在上下文結束 時關閉該會話。并不是在每次訪問HW輔助時,都要訪問安全監(jiān)視,只 是在上下文開始和結束時訪問安全監(jiān)視。此模型的優(yōu)點是存儲在HW輔
具有CA—STATUS寄存器的安全影子(secure shadow)而被保存。 CA-STATUS寄存器是為HW輔助模塊提供狀態(tài),并具有特權訪問的寄存 器。
在任務完成之前,鼎輔助可以在運行時被中斷,然后需要時在稍后 時間,皮重新啟動。如果HW輔助正在運行時接收到中斷,則以通常的ARM 方式進入中斷,而不對HW輔助進行任何改變。在中斷處理程序(handler) 中,程序員具有以下選項
1. 不對HW輔助進行任何處理,讓其繼續(xù)運行。注意該核心的系統(tǒng) 編程必須保證HW輔助仍能看到存儲器的正確視圖(即,頁表沒有被改 變)。
2. 暫時暫停HW輔助,但不使用HW輔助用于其它任何處理。 (MSUSPEND )
3. 暫停HW輔助,并將任何臟(dirty)狀態(tài)保存回存儲器中,這 樣HW輔助可以被其它方使用。(MSUSPENDC )
在(2)和(3)的情況下, 一旦中斷處理程序完成,用繼續(xù)命令重 新啟動HW輔助。對于(2),執(zhí)行從它停止的地方重新開始,而在(3) 中,在繼續(xù)執(zhí)行之前,中間狀態(tài)必須首先被重新加栽回HW輔助。圖5 顯示了這兩種情況的控制流程。在該圖中,CA-STATE寄存器是包含指向HW輔助模塊的描述符的指針的寄存器,具有特權訪問或用戶訪問。
對于一般的中斷處理程序,廣播形式的MSUSPEND和MRESUME可以 被用來暫停和繼續(xù)所有HW輔助。對于更為專門的應用,各個HW輔助模 塊可以(通過將HW輔助的邏輯地址提供給控制)被獨立地暫停和繼續(xù)。 存在需要被處理的三種基本類型的異常
* 用戶錯誤-一由用戶模式SW處理
* 特權系統(tǒng)錯誤-一發(fā)信號通知操作系統(tǒng)以便處理的系統(tǒng)錯誤
* 安全錯誤一-由訪問安全側引起的錯誤,被發(fā)信號通知給安全 監(jiān)視。
在默認情況下,特權錯誤和安全性錯誤經由中斷被發(fā)信號通知核心 以便進一步處理。期望用戶模式錯誤由用戶應用軟件校檢查HW輔助寄 存器中的狀態(tài)錯誤位(如CA—Status寄存器的IUE位)來處理。這種架 構也支持在需要時允許用戶模式錯誤給核心發(fā)信號,使核心中斷,但這 會招致處理操作系統(tǒng)的代價。
在來自不同特權級的多個異??赡苡行?active)的情況下,提供
影子控制寄存器來存儲異常信息。例如,如果發(fā)生安全故障和用戶存儲 器故障,則FAR和CA-STATUS寄存器必須在安全側有影子。FAR寄存器 具有特權訪問,并提供出故障的存儲器地址。
支持上下文切換所需的基本操作類似于基本的中斷處理,即,暫停 和繼續(xù)HW輔助操作以及從HW輔助模塊中清除臟狀態(tài)。上下文切換可以
被分解成兩部分 切出舊進程 切入新進程
對于每種情況,都有兩種可能性 嚴格(strict)-—立即進行切換
惰性(lazy)—-如果其它人確實想要使用HW輔助,則只保存狀態(tài)。
后者功率較低,因為其只在必要時保存狀態(tài),但實現(xiàn)起來更為復雜。 注意傳統(tǒng)的惰性上下文切換(如用在VFP中的)并不切入新的上 下文,直到HW被新的進程訪問。在這種技術中,如果新的上下文具有 以前被暫停的鼎輔助,則只要上下文被恢復,其就需要重新啟動,而 不等到在新的上下文中對H W的首次新訪問。圖6顯示了為HW輔助模塊(CHA)切換上下文的一般流程。如果上 下文切換不是惰性的,則通過使用MSUSPENDC和到描述符的指針暫停并 清除HW輔助,每個啟用的HW輔助的狀態(tài)寄存器和FAR被保存。在惰性 上下文切換的情況下,僅暫停HW輔助,而不保存任何狀態(tài)。在兩種情 況下,操作系統(tǒng)都可以繼續(xù)進行其它上下文切換清除,同時等待HW輔 助停止(以及潛在清除)。在頁表條目需要被更改之前,操作系統(tǒng)執(zhí)行 數(shù)據(jù)加速器屏障(data accelerator barrier, DAN)以確保所有的HW 輔助都已經完成暫停,然后在HACR中禁用所有的HW輔助。上下文切出 然后象通常一樣繼續(xù)。
可以細化一般的上下文切出,代價是操作系統(tǒng)進行更多的分析。例
如
如果HW輔助模塊當前沒有被啟用,則沒有進程上下文需保存,也
不需要進行任何操作。
如果HW輔助被啟用,但沒有運行一-沒有臟狀態(tài)潛在地需要保存。 可以選擇允許HW輔助將其完成而不是暫停-一確保了所有的臟數(shù)據(jù)
回到存儲器中。
在將新的進程切換到HW輔助模塊中時,笫一步是啟用HW輔助模塊。 在這之后,描述符和狀態(tài)寄存器被重新裝載到HW輔助模塊中,并且繼 續(xù)所有命令被發(fā)出以繼續(xù)所有被啟用的HW輔助模塊的執(zhí)行。這顯示在 圖7中。
如果采用的是惰性方案(即舊進程的狀態(tài)還沒有被切出),則操作 系統(tǒng)應當確定新的進程是否已經暫停了 HW輔助模塊。如果新的上下文 正在使用HW輔助,則舊的狀態(tài)應該在上下文切換時從HW輔助中清除出 去(而不是延遲到其之后被訪問)。
延遲的上下文切入
延遲的進程狀態(tài)切換在保存任何狀態(tài)之前等待,直到新的進程嘗試 訪問HW輔助模塊。如果新進程不使用HW輔助模塊,則沒有狀態(tài)需要被 保存。
為了檢測新進程何時嘗試訪問HW輔助模塊,在上下文切換時禁用 該模塊,使得嘗試使用該模塊會觸發(fā)操作系統(tǒng)中的事件,操作系統(tǒng)可以 保存并恢復所需狀態(tài)(未定義的指令陷阱)。 一旦舊狀態(tài)已經被保存并
20且新狀態(tài)^皮加栽,訪問HW輔助的命令可以:故重新運行。該程序顯示在
圖8中。假設暫停的HW輔助是在上下文切入時被檢測的,并被自動重 新啟動,而不是等待訪問它們的命令。
注意操作系統(tǒng)必須能夠訪問以前的HW輔助上下文的用戶空間描述 符以將HW輔助狀態(tài)保存到正確位置。
盡管本文已經參考附圖詳細描述了本發(fā)明的示例性實施例,但應理 解本發(fā)明并不局限于這些確切的實施例,在不偏離由所附權利要求書限 定的本發(fā)明的范圍和精神的情況下,本領域技術人員可以實施各種改變 和改進。
權利要求
1. 一種數(shù)據(jù)處理設備,包括數(shù)據(jù)處理器,用于在安全模式和不安全模式下處理數(shù)據(jù),在所述安全模式下處理數(shù)據(jù)的所述數(shù)據(jù)處理器能夠訪問安全數(shù)據(jù),所述數(shù)據(jù)處理器在所述不安全模式下不能訪問所述安全數(shù)據(jù),并且所述數(shù)據(jù)處理器在所述安全模式下處理數(shù)據(jù)是在安全操作系統(tǒng)的控制下進行的,以及在所述不安全模式下處理數(shù)據(jù)是在不安全操作系統(tǒng)的控制下進行的;和另一處理裝置,其用來響應于來自所述數(shù)據(jù)處理器的請求而執(zhí)行任務,所述任務包括處理至少其中一些是安全數(shù)據(jù)的數(shù)據(jù);其中所述另一處理裝置響應于接收到暫停所述任務的信號,以啟動使用安全密鑰處理所述安全數(shù)據(jù);和將所述處理過的安全數(shù)據(jù)存儲到不安全數(shù)據(jù)儲存器中;以及所述另一處理裝置還響應于接收到繼續(xù)所述任務的信號,以啟動從所述不安全數(shù)據(jù)儲存器中檢索所述處理過的安全數(shù)據(jù);和使用所述安全密鑰恢復所述處理過的安全數(shù)據(jù);其中所述安全密鑰被安全地存儲,使得其不能被操作在所述不安全模式下的其它進程訪問。
2. 根據(jù)權利要求1所述的數(shù)據(jù)處理設備,其中所迷安全數(shù)據(jù)的所 述處理包括使用所迷安全密鑰加密所述安全數(shù)據(jù),并且所述處理過的安 全數(shù)據(jù)的所述恢復包括使用所述安全密鑰解密所述加密的安全數(shù)據(jù),所 述安全密鑰被安全地存儲在執(zhí)行所述加密和解密的裝置中。
3. 根據(jù)權利要求2所迷的數(shù)據(jù)處理設備,其中在啟動所迷數(shù)據(jù)的 加密之前,所述另一處理裝置啟動從所述數(shù)據(jù)中生成安全簽名,并啟動 所述安全簽名的加密,以及連同所述安全數(shù)椐一起存儲所述安全簽名; 和響應于接收到繼續(xù)所述任務的所述信號,所述另一處理裝置啟動所 述加密的安全簽名的檢索和所述加密的安全簽名的解密,并且在所述加 密的安全數(shù)據(jù)的解密之后,啟動從所述解密的加密數(shù)據(jù)中生成所迷安全 簽名,以及將所述生成的安全簽名與所述解密的安全簽名進行比較;和響應于所述生成的安全簽名與所迷解密的安全簽名不匹配,所述另 一處理裝置向所述數(shù)據(jù)處理器發(fā)出信號以表明所述數(shù)據(jù)已經被篡改;和響應于所述生成的安全簽名與所述解密的安全簽名相匹配,所述另 一處理裝置使用所述解密的數(shù)據(jù)繼續(xù)所述任務。
4. 根據(jù)權利要求2所述的數(shù)據(jù)處理設備,其中在加密所迷數(shù)據(jù)之 后,所述另一處理裝置啟動從所述加密的數(shù)據(jù)中生成安全簽名,并啟動 所述安全簽名以及所述加密的安全數(shù)據(jù)的加密和存儲;和響應于接收到繼續(xù)所述任務的所述信號,所述另一處理裝置啟動所 迷加密的安全簽名的檢索和所述加密的安全簽名的解密,并啟動從所述 加密的數(shù)據(jù)中生成所述安全簽名,并將所述生成的安全簽名和所述解密 的安全簽名進行比較;和響應于所述生成的安全簽名與所述解密的安全簽名不匹配,所述另 一處理裝置向所述數(shù)據(jù)處理器發(fā)出信號以表明所述數(shù)據(jù)已經被篡改;和響應于所述生成的安全簽名與所述解密的安全簽名相匹配,所述另 一處理裝置解密所述加密的數(shù)據(jù),并使用所述解密的數(shù)據(jù)繼續(xù)所述任 務。
5. 根據(jù)權利要求1所迷的數(shù)據(jù)處理設備,其中所述安全數(shù)椐的所述安全簽名,并且所述處理過的安全數(shù)據(jù)的所述恢復包括解密所述加密 的安全簽名,以及從所述檢索的數(shù)據(jù)中生成所述安全簽名,并將所述生 成的安全簽名和所述解密的安全簽名進行比較;和響應于所述生成的安全簽名與所述解密的安全簽名不匹配,所述另 一處理裝置向所述數(shù)據(jù)處理器發(fā)出信號以表明所迷數(shù)據(jù)已經被篡改;和響應于所述生成的安全簽名與所述解密的安全簽名相匹配,所述另 一處理裝置使用所述檢索的數(shù)椐繼續(xù)所述任務。
6. 根據(jù)權利要求3所述的數(shù)據(jù)處理設備,其中所述安全數(shù)據(jù)的所 述加密和所述簽名的所述生成是使用相同的算法進行的。
7. 根據(jù)權利要求2所述的數(shù)據(jù)處理設備,其中執(zhí)行所述加密和解 密的所述裝置是所述另一處理裝置。
8. 根椐權利要求7所述的數(shù)椐處理設備,其中所述另一處理裝置 包括加解密處理裝置,所述加解密處理裝置使用至少一個密鑰執(zhí)行數(shù)據(jù) 的加解密處理,所述安全數(shù)據(jù)是由包括所述至少一個密鑰的所述安全密 鑰加密的。
9. 根據(jù)權利要求2所述的數(shù)椐處理設備,其中執(zhí)行所述加密和解 密裝置的所述裝置是通過專用數(shù)據(jù)通信路徑連接到所述另一處理裝置 的加解密處理裝置,該專用數(shù)椐通信路徑是其它裝置不能訪問的。
10. 根據(jù)權利要求2所述的數(shù)據(jù)處理設備,其中所述另一處理裝置 包括用來執(zhí)行除加解密以外的功能的電路,所述另一處理裝置包括附加 的加解密電路以加密和解密所述安全數(shù)據(jù),所迷另一處理裝置包括所述 安全密鑰的安全存儲位置。
11. 根據(jù)權利要求7所述的數(shù)椐處理設備,其中所述另一處理裝置 包括所迷安全密鑰的只寫存儲位置。
12. 根椐權利要求1所述的數(shù)椐處理設備,其中所述安全密鑰在操 作在安全模式下的所述數(shù)據(jù)處理器的控制下被存儲在所述數(shù)據(jù)處理設 備中,使得其只能由在安全模式下操作的所述數(shù)椐處理器訪問。
13. 根據(jù)權利要求1所述的數(shù)據(jù)處理設備,其中所述安全密鑰是在 制造時被設置的,并永久地安全存儲在執(zhí)行所述安全數(shù)據(jù)的所述加密和 解密的所述裝置中,使得其不能被其它裝置訪問。
14. 根據(jù)權利要求2所述的數(shù)據(jù)處理設備,其中執(zhí)行所述安全數(shù)據(jù) 的所述加密和解密的所述裝置包括隨機數(shù)生成器,所迷安全密鑰是由所 述隨機數(shù)生成器在復位時生成的。
15. 根據(jù)權利要求1所述的數(shù)據(jù)處理設備,其中所述不安全數(shù)椐儲 存器包括存儲器的不安全部分。
16. 根據(jù)權利要求1所述的數(shù)據(jù)處理設備,其中暫停所述任務的所述信號是由所述數(shù)據(jù)處理器響應于中斷或異常而生成的。
17. 根據(jù)權利要求1所述的數(shù)據(jù)處理設備,其中暫停所述任務的所 述信號是由所述數(shù)據(jù)處理器響應于信號而生成的,該信號表明所述數(shù)據(jù) 處理器從操作在所迷安全模式或不安全模式中的一種到所述安全模式 或不安全;^莫式中的另 一種的上下文切換。
18. 根據(jù)權利要求1所述的數(shù)據(jù)處理設備,其中執(zhí)行所述任務的所 述請求是從在所述不安全模式下操作的所述數(shù)據(jù)處理器發(fā)出的。
19. 根據(jù)權利要求18所迷的數(shù)據(jù)處理設備,其中所述數(shù)據(jù)處理器 被配置成響應于所述數(shù)據(jù)處理器在不安全模式下執(zhí)行的程序代碼向所 述另 一處理裝置發(fā)出執(zhí)行所述任務的所述請求。
20. 根據(jù)權利要求1所述的數(shù)據(jù)處理設備,其中所述另一處理裝置 包括不可編程硬件。
21. 根據(jù)權利要求1所迷的數(shù)據(jù)處理設備,其中所述另一處理裝置 被配置成不在操作系統(tǒng)的控制下處理程序代碼。
22. —種在數(shù)據(jù)處理設備上處理數(shù)據(jù)的方法,所述數(shù)據(jù)處理設備包 括數(shù)據(jù)處理器和另一處理裝置;所述數(shù)據(jù)處理器用于在安全模式和不安 全模式下處理數(shù)據(jù),在所述安全模式下處理數(shù)據(jù)的所述數(shù)據(jù)處理器能夠 訪問安全數(shù)據(jù),所述數(shù)據(jù)處理器在所述不安全模式下不能訪問所述安全 數(shù)據(jù),所迷數(shù)據(jù)處理器在所述安全模式下處理數(shù)椐是在安全操作系統(tǒng)的 控制下進行的,并且在所述不安全模式下處理數(shù)據(jù)是在不安全操作系統(tǒng) 的控制下進行的;所述另一處理裝置用來響應于來自所迷數(shù)據(jù)處理器的 請求而執(zhí)行任務,所迷任務包括處理至少其中一些是安全數(shù)據(jù)的數(shù)據(jù); 所述方法包括以下步驟在所迷數(shù)據(jù)處理器上處理數(shù)據(jù);將來自所述數(shù)據(jù)處理器的請求發(fā)送到所述另一處理裝置以執(zhí)行任 務,所述任務包括處理至少其中一些是安全數(shù)據(jù)的數(shù)據(jù);在所述另 一處理裝置上開始所述任務;向所述另一處理裝置發(fā)送暫停所述任務的信號;響應于接收到暫停所述任務的所述信號,所述另一處理裝置暫停所 述任務,并啟動使用安全密鑰對所述安全數(shù)據(jù)的處理及將所述處理過的 安全數(shù)據(jù)存儲在不安全數(shù)椐儲存器中;從所述數(shù)據(jù)處理器生成指示所述另一處理裝置繼續(xù)所述任務的信號;所述另一處理裝置響應于所述信號從所述不安全數(shù)據(jù)儲存器中檢索所 述處理過的安全數(shù)據(jù),并使用所述安全密鑰恢復所述檢索的數(shù)據(jù),所述 安全密鑰被安全地存儲,使得其不能由其它裝置訪問。
全文摘要
本發(fā)明涉及保護從中央處理器發(fā)送的以供處理的安全數(shù)據(jù)的安全性。數(shù)據(jù)處理設備包括數(shù)據(jù)處理器和另一處理裝置,在安全模式下處理數(shù)據(jù)的數(shù)據(jù)處理器可以訪問安全數(shù)據(jù),而在所述不安全模式下它不能訪問安全數(shù)據(jù),在安全模式下處理數(shù)據(jù)是在安全操作系統(tǒng)的控制下進行的,在不安全模式下處理數(shù)據(jù)是在不安全操作系統(tǒng)的控制下進行的;另一處理裝置響應于來自數(shù)據(jù)處理器的請求執(zhí)行任務;其響應于暫停任務的信號的接收以啟動使用安全密鑰處理安全數(shù)據(jù);將處理過的安全數(shù)據(jù)存儲到不安全數(shù)據(jù)儲存器;其還響應于接收到繼續(xù)任務的信號來啟動從不安全數(shù)據(jù)儲存器中檢索處理過的安全數(shù)據(jù);使用安全密鑰恢復處理過的安全數(shù)據(jù),安全密鑰被安全存儲。
文檔編號G06F21/24GK101477612SQ20091000231
公開日2009年7月8日 申請日期2009年1月4日 優(yōu)先權日2008年1月2日
發(fā)明者D·克爾肖, N·C·帕弗 申請人:Arm有限公司