安全控制的多處理器系統(tǒng)相關(guān)申請的交叉參考本申請要求于2012年4月27日提出申請的美國臨時專利申請?zhí)?1/639,394的權(quán)益和于2012年6月7日提出申請的美國專利申請?zhí)?3/491,309的權(quán)益,其全部內(nèi)容結(jié)合于此以作參考。技術(shù)領(lǐng)域本發(fā)明涉及計算機(jī)安全,更具體地,涉及安全處理系統(tǒng)。
背景技術(shù):安全性是現(xiàn)代計算機(jī)系統(tǒng)的關(guān)鍵部分。計算機(jī)安全系統(tǒng)和技術(shù)確保有價值的信息和系統(tǒng)不會被黑客或惡意軟件危害。為此,許多組織公開了安全標(biāo)準(zhǔn),供應(yīng)商可以使用這些安全標(biāo)準(zhǔn)作為硬件和/或軟件安全性的準(zhǔn)則。信息技術(shù)安全評估的通用標(biāo)準(zhǔn)(“通用標(biāo)準(zhǔn)(CommonCriteria)”或“CC”)是目前用作開發(fā)、評估、和/或采購具有安全功能的IT產(chǎn)品的準(zhǔn)則。CC提供一組公共需求用于IT產(chǎn)品的安全功能和在安全評估期間應(yīng)用于這些IT產(chǎn)品的保證措施。這些IT產(chǎn)品可以以硬件、固件或軟件實施。在CC下的評估過程創(chuàng)建應(yīng)用于IT產(chǎn)品的IT產(chǎn)品的安全功能和保證措施滿足預(yù)定義的需求的置信水平??梢宰C明遵守CC是國家批準(zhǔn)授權(quán)的,例如美國的國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)國家自愿實驗室認(rèn)證程序(NVLAP)。用戶要求的一個公共安全需求是,只有通過認(rèn)證(或信任的)代碼可以在系統(tǒng)的安全域(例如,安全處理器)中執(zhí)行。先前用于實現(xiàn)該需求的方法使用硬件機(jī)制允許單個處理器作為兩個處理器在邏輯上工作。然而,從安全的角度來看,該結(jié)構(gòu)要求設(shè)備的安全部分不能與應(yīng)用處理器同時工作。對于高安全性應(yīng)用來說,該結(jié)構(gòu)進(jìn)一步不允許經(jīng)過認(rèn)證的處理器響應(yīng)篡改系統(tǒng)的攻擊。而且,在實現(xiàn)該需求的過程出現(xiàn)的困難在多應(yīng)用環(huán)境中逐漸增加。例如,安全(經(jīng)過認(rèn)證的)應(yīng)用(例如,經(jīng)過認(rèn)證的金融應(yīng)用程序)必須與用戶編寫的小應(yīng)用程序共存。因此,一旦將用戶編寫(不受信任的)的小應(yīng)用程序增加至環(huán)境中,任何認(rèn)證要求會變得無效。因此,需要保持系統(tǒng)的安全部件的認(rèn)證同時允許在系統(tǒng)中執(zhí)行不受信任代碼的系統(tǒng)和方法。
技術(shù)實現(xiàn)要素:為了解決上述問題,本發(fā)明提供了以下系統(tǒng)和方法:(1)一種系統(tǒng),包括:安全處理系統(tǒng),包括:硬件存儲保護(hù)單元(HMPU),被構(gòu)造為限制對所述安全處理系統(tǒng)的訪問,安全存儲器被構(gòu)造為存儲安全策略,以及安全處理器被構(gòu)造為執(zhí)行安全代碼,其中,所述安全處理器被構(gòu)造為基于所述安全策略確定是否準(zhǔn)許訪問所述安全處理系統(tǒng)的安全服務(wù)的請求;以及第一處理器,與所述安全處理系統(tǒng)和一組系統(tǒng)外圍設(shè)隔離,其中,所述第一處理器被構(gòu)造為:在所述安全處理器的指示下執(zhí)行代碼,以及將訪問所述安全服務(wù)的所述請求放入所述共享內(nèi)存中。(2)根據(jù)(1)所述的系統(tǒng),其中,所述安全處理系統(tǒng)進(jìn)一步包括隔離橋,所述隔離橋被構(gòu)造為將所述安全處理系統(tǒng)耦接至非安全外圍設(shè)備,其中,所述安全處理器進(jìn)一步被構(gòu)造為基于所述安全策略確定是否指示所述隔離橋?qū)⑺霭踩幚砥黢罱又了龇前踩鈬O(shè)備。(3)根據(jù)(2)所述的系統(tǒng),進(jìn)一步包括耦接至所述第一處理器的內(nèi)存,其中,所述內(nèi)存與所述安全處理系統(tǒng)和所述一組系統(tǒng)外圍設(shè)備隔離。(4)根據(jù)(3)所述的系統(tǒng),其中,所述安全處理器進(jìn)一步被構(gòu)造為指示所述隔離橋?qū)⑺鰞?nèi)存耦接至非安全外圍設(shè)備以使所述代碼能夠加載到所述內(nèi)存中。(5)根據(jù)(3)所述的系統(tǒng),其中,所述HMPU通過執(zhí)行沙盒限制訪問所述安全處理系統(tǒng),其中,所述沙盒包括所述內(nèi)存、所述第一處理器和所述共享內(nèi)存。(6)根據(jù)(1)所述的系統(tǒng),其中,所述安全處理器被認(rèn)證為只執(zhí)行安全代碼。(7)根據(jù)(1)所述的系統(tǒng),其中,所述安全處理系統(tǒng)進(jìn)一步包括加密總線。(8)根據(jù)(1)所述的系統(tǒng),其中,所述安全處理器被構(gòu)造為執(zhí)行安全操作系統(tǒng)代碼。(9)根據(jù)(1)所述的系統(tǒng),其中,所述安全處理系統(tǒng)包括安全監(jiān)控模塊,所述安全監(jiān)控模塊被構(gòu)造為檢測篡改所述安全處理系統(tǒng)的攻擊。(10)一種系統(tǒng),包括:第一處理器,安全處理系統(tǒng),包括:安全內(nèi)存,存儲安全策略,隔離橋,被構(gòu)造為將系統(tǒng)外圍設(shè)備耦接至所述安全處理系統(tǒng),以及安全處理器,其中,所述安全處理器被構(gòu)造為基于所述安全策略確定是否指示所示隔離橋?qū)⑺鱿到y(tǒng)外圍設(shè)備耦接至所述安全處理系統(tǒng);以及硬件內(nèi)存保護(hù)單元(HMPU),被構(gòu)造為將所述第一處理器與所述安全處理系統(tǒng)和所述系統(tǒng)外圍設(shè)備隔離。(11)根據(jù)(10)所述的系統(tǒng),其中,所述第一處理器和所述安全處理系統(tǒng)都被耦接到共享內(nèi)存,其中,所述HMPU進(jìn)一步被構(gòu)造為將所述第一處理器和所述共享內(nèi)存與所述安全處理系統(tǒng)和所述系統(tǒng)外圍設(shè)備隔離。(12)根據(jù)(11)所述的系統(tǒng),其中,所述第一處理器被構(gòu)造為將向所述系統(tǒng)外圍設(shè)備釋放數(shù)據(jù)的請求放入所述共享內(nèi)存。(13)根據(jù)(12)所述的系統(tǒng),其中,所述安全處理器進(jìn)一步被構(gòu)造為:基于所述安全策略確定是否準(zhǔn)許所述請求;以及響應(yīng)于確定應(yīng)當(dāng)準(zhǔn)許所述請求,指示所述隔離橋?qū)⑺鱿到y(tǒng)外圍設(shè)備耦接至所述安全處理系統(tǒng)。(14)根據(jù)(10)所述的系統(tǒng),其中,所述HMPU通過在所述內(nèi)存、所述第一處理器和所述共享內(nèi)存周圍執(zhí)行沙盒將所述第一處理器與所述安全處理系統(tǒng)和所述系統(tǒng)外圍設(shè)備隔離。(15)根據(jù)(10)所述的系統(tǒng),其中,所述安全處理器被認(rèn)證為只執(zhí)行安全代碼。(16)一種方法,包括:利用安全處理器檢測對安全服務(wù)的第一請求,其中,通過與所述安全處理器物理隔離的非安全處理器將所述第一請求放入共享內(nèi)存中;利用所述安全處理器分析存儲的安全策略以確定是否準(zhǔn)許所述第一請求;以及響應(yīng)于應(yīng)當(dāng)準(zhǔn)許所述第一請求的確定:利用所述安全處理器處理所述第一請求,以及將響應(yīng)放入所述共享內(nèi)存中。(17)根據(jù)(16)所述的方法,進(jìn)一步包括:從安全監(jiān)控器接收表明已經(jīng)出現(xiàn)對所述安全處理器的試圖攻擊的信息;以及響應(yīng)于接收所述信息確定不應(yīng)當(dāng)準(zhǔn)許所述第一請求。(18)根據(jù)(16)所述的方法,進(jìn)一步包括:檢測將數(shù)據(jù)釋放至系統(tǒng)外圍設(shè)備的第二請求,其中,所述第二請求通過所述非安全處理器被放入所述共享內(nèi)存中,以及其中所述系統(tǒng)外圍設(shè)備通過隔離橋與所述安全處理器隔離;利用所述安全處理器分析存儲的安全策略以確定是否準(zhǔn)許所述第二請求;以及響應(yīng)于應(yīng)當(dāng)允許所述第二請求的確定,指示所述隔離橋?qū)⑺龇前踩幚砥黢罱又了鱿到y(tǒng)外圍設(shè)備。(19)根據(jù)(18)所述的方法,進(jìn)一步包括:從安全監(jiān)控器接收表明已經(jīng)出現(xiàn)對所述安全處理器的試圖攻擊的信息;以及響應(yīng)于接收所述信息確定不應(yīng)當(dāng)準(zhǔn)許所述第二請求。(20)根據(jù)(16)所述的方法,進(jìn)一步包括:利用所述安全處理器接收將額外的非安全代碼加載到非安全內(nèi)存中的第三請求,其中,所述非安全內(nèi)存被耦接至所述非安全處理器,并且與所述安全處理器隔離;以及基于所述安全策略確定是否準(zhǔn)許所述第三請求。附圖說明包括在說明書中并構(gòu)成說明書的部分示出本發(fā)明的實施方式的附圖,連同以上提供的一般說明和以下提供的實施方式的詳細(xì)描述用于說明本發(fā)明的原理。在附圖中:圖1是根據(jù)本發(fā)明實施方式的包括安全處理系統(tǒng)和用于執(zhí)行不受信任代碼的非安全沙盒的系統(tǒng)的方框圖。圖2是根據(jù)本發(fā)明實施方式的包括安全處理系統(tǒng)和用于執(zhí)行不受信任代碼的非安全沙盒的系統(tǒng)的另一個方框圖。圖3是根據(jù)本發(fā)明實施方式的用于請求安全服務(wù)的方法的流程圖。結(jié)合附圖,根據(jù)下面闡述的詳細(xì)說明將更明顯地看出本發(fā)明的特征和優(yōu)勢,在附圖中相似的參考字符表示相對應(yīng)的元件。在附圖中,相似的參考數(shù)字一般表示相同的、功能相似的、和/或結(jié)構(gòu)相似的元件。第一次出現(xiàn)元件的附圖由相對應(yīng)的參考數(shù)字中的最左邊的數(shù)字指示。具體實施方式在下面的描述中,闡述了許多具體細(xì)節(jié)以便于更透徹地理解本發(fā)明。然而,本領(lǐng)域的技術(shù)人員將理解,本發(fā)明,包括結(jié)構(gòu)、系統(tǒng)和方法,可以在無這些特定細(xì)節(jié)的情況下實施。本文中的描述和表示是本領(lǐng)域的有經(jīng)驗或普通技術(shù)人員使用的常見方法,從而將其作品的本質(zhì)最有效地傳遞給本領(lǐng)域的技術(shù)人員。在其他情況下,為了避免不必要地模糊本發(fā)明的方面,未詳細(xì)描述眾所周知的方法、過程、部件和電路。說明書中引用的“一個實施方式”、“實施方式”“實例實施方式”等表明所描述的實施方式包括特定特征、結(jié)構(gòu)或特點,但是每個實施方式不一定包括特定特征、結(jié)構(gòu)或特點。而且,這些短語不一定是指相同的實施方式。進(jìn)一步,當(dāng)結(jié)合實施方式描述特定特征、結(jié)構(gòu)、或特點時,特定特征、結(jié)構(gòu)或特點在本領(lǐng)域技術(shù)人員的知識范圍內(nèi),無論是否明確描述,結(jié)合其他示例性的實施方式會影響這些特征、結(jié)構(gòu)或者特點。1、概要本發(fā)明實施方式提供了用于實施安全處理系統(tǒng)的系統(tǒng)和方法,其中安全處理系統(tǒng)具有可以認(rèn)證為安全處理器的處理器和支持由安全處理器定義和管理的用于執(zhí)行不受信任代碼的“沙盒”的另一個隔離處理器。沙盒隔離代碼(例如,未經(jīng)認(rèn)證的代碼和/或不安全代碼)訪問或查看安全處理系統(tǒng)。安全處理器管理內(nèi)存空間和允許在第二處理器上運行的應(yīng)用程序。因為安全處理系統(tǒng)只處理安全代碼和/或經(jīng)過認(rèn)證的代碼,所以執(zhí)行安全處理系統(tǒng)的產(chǎn)品/系統(tǒng)可以保持安全處理器的安全認(rèn)證。隔離處理器執(zhí)行安全處理器定義的隔離邊界(“沙盒”)內(nèi)的代碼。安全處理器定義沙盒的邊界(例如,利用硬件邊界或邏輯安全邊界),以便于在沙盒內(nèi)執(zhí)行的代碼不能訪問沙盒外部的安全處理系統(tǒng)的安全元件。因此,實施方式有利地提供包括經(jīng)過認(rèn)證的安全處理器的安全處理系統(tǒng),其中經(jīng)過認(rèn)證的安全處理器只執(zhí)行經(jīng)過認(rèn)證的代碼和/或安全代碼,同時允許執(zhí)行安全處理系統(tǒng)外部的隔離沙盒內(nèi)的不受信任代碼。因為沙盒的安全邊界由安全處理器執(zhí)行,所以在不危害安全處理系統(tǒng)的安全性的情況下可以支持在沙盒中執(zhí)行不受信任代碼。2、系統(tǒng)圖1是根據(jù)本發(fā)明實施方式的多處理器系統(tǒng)的方框圖,該多處理器系統(tǒng)包括安全處理系統(tǒng)116和一個或多個非安全部件。在實施方式中,安全處理系統(tǒng)116包括安全處理器100、一個或多個加密處理引擎123、一個或多個安全外圍設(shè)備120、安全監(jiān)控器122和只讀存儲器(ROM)118。CPU1100被構(gòu)造為只執(zhí)行安全代碼和/或經(jīng)過認(rèn)證的代碼。CPU1100不執(zhí)行非安全代碼和/或未經(jīng)過認(rèn)證的代碼(例如,供應(yīng)商或用戶的自定義碼)。此外,CPU11100管理內(nèi)存空間和允許在CPU2108上運行的應(yīng)用程序。安全處理系統(tǒng)116具有相關(guān)聯(lián)的安全邊界。該安全邊界有助于防止非安全代碼訪問和/或篡改安全處理系統(tǒng)116的要素??梢岳缋糜布?或加密技術(shù)創(chuàng)建安全邊界。用于提供安全邊界的硬件技術(shù)可以包括,例如,將部件放置在單個集成電路中。此外,利用諸如環(huán)氧樹脂密封的防破壞和/或防篡改技術(shù)通過物理結(jié)構(gòu)可以保護(hù)一個或多個集成電路。用于創(chuàng)建安全邊界的加密技術(shù)可以包括,例如,在離開安全處理系統(tǒng)116內(nèi)的部件之前加密敏感信息。為此,安全處理系統(tǒng)116包括一個或多個加密處理器,并且將相關(guān)聯(lián)的加密/解密密鑰存儲在安全處理系統(tǒng)116內(nèi)部的安全內(nèi)存中(例如,在ROM118或在以前的可編程存儲器)。2.1、沙盒對系統(tǒng)的許多攻擊通過在軟件程序內(nèi)包括惡意代碼實現(xiàn)。例如,黑客可以將代碼植入程序中,從而訪問安全信息(例如,密碼、密鑰等)或干擾系統(tǒng)運行(例如,病毒)。任何非安全或不受信任代碼都可能含有這些惡意代碼。如上所述,沙盒104可以用于執(zhí)行非安全代碼或不受信任代碼(例如,用戶或供應(yīng)商的自定義代碼)。該不受信任代碼可能不是(通常不是)安全代碼。為了防止任何危害代碼篡改安全處理系統(tǒng)116的元件,安全處理系統(tǒng)116包括隔離的沙盒104。如上所述,安全處理系統(tǒng)116內(nèi)的CPU1100定義沙盒104。沙盒104包括CPU2108和內(nèi)存106。CPU2108與安全處理系統(tǒng)116隔離。CPU2108可以只執(zhí)行沙盒104內(nèi)的代碼(例如,Java代碼或本機(jī)代碼)。因此,CPU2108用作“實機(jī)”(例如,與“虛擬機(jī)”相對)執(zhí)行應(yīng)用程序。硬件內(nèi)存保護(hù)單元(HMPU)102被構(gòu)造為執(zhí)行CPU2108和安全處理系統(tǒng)116之間的隔離。HMPU102包括共享內(nèi)存110、I/O模塊112、和靜態(tài)隨機(jī)存取存儲器(SRAM)114。在實施方式中,共享內(nèi)存110包括在沙盒104內(nèi)。共享內(nèi)存110作為在CPU2108上執(zhí)行的應(yīng)用程序請求的信箱。CPU2108將每個請求放置在共享內(nèi)存110中。一旦接收請求,CPU1100就構(gòu)造為確定是否處理該請求。防止CPU2108將可執(zhí)行代碼寫入共享內(nèi)存110。更確切地,通過CPU2108僅不可執(zhí)行請求(例如,安全服務(wù)的請求)可以寫入共享內(nèi)存110。ROM106將CPU2108要執(zhí)行的非安全代碼和/或未經(jīng)過認(rèn)證的代碼存儲在沙盒104中。在實施方式中,在制造期間可以將某些非安全代碼和/或未經(jīng)過認(rèn)證的代碼存儲在ROM106中。如果用戶和/或供應(yīng)商希望存儲額外的非安全代碼和/或未經(jīng)過認(rèn)證代碼用于執(zhí)行,那么可以利用隔離橋124將來自開放外圍設(shè)備126的代碼輸入共享內(nèi)存110。例如,用戶可以選擇執(zhí)行小應(yīng)用程序(例如,Javaapplet)。以下將更詳細(xì)地說明隔離橋124的操作。2.2、安全處理系統(tǒng)安全處理系統(tǒng)116包括與CPU1100相關(guān)聯(lián)的安全邊界內(nèi)的元件。例如,安全處理系統(tǒng)116包括可以由在安全CPU1100上執(zhí)行的代碼訪問的安全元件。在CPU2108上執(zhí)行的代碼不能直接訪問安全處理系統(tǒng)116的安全元件。相反,如果CPU2108要求使用在安全處理系統(tǒng)116內(nèi)提供的安全服務(wù),那么CPU2108將安全服務(wù)請求放入共享內(nèi)存110。通過CPU1100評估該請求。以下將參考圖3更詳細(xì)地描述用于評估CPU2108請求安全服務(wù)的過程。在實施方式中,HMPU102的I/O模塊112和SRAM114在安全處理系統(tǒng)116內(nèi)。安全處理系統(tǒng)116還可以包括安全處理器CPU1100可訪問的ROM118、安全外圍設(shè)備120、安全監(jiān)控器122、加密處理引擎123、和隔離橋124。在實施方式中,ROM118存儲安全代碼和/或經(jīng)過認(rèn)證的代碼。在實施方式中,安全處理系統(tǒng)116的元件只可以由在CPU1100上執(zhí)行的安全代碼和/或經(jīng)過認(rèn)證的代碼訪問。安全監(jiān)控器122監(jiān)控安全處理系統(tǒng)116的安全性,和可以檢測篡改安全處理系統(tǒng)116的嘗試。如果檢測到攻擊,那么安全監(jiān)控器122可以通知CPU1100已經(jīng)出現(xiàn)攻擊或嘗試攻擊,CPU1100可以采取行動響應(yīng)該攻擊。在實施方式中,安全處理系統(tǒng)116具有一個或多個安全策略。這些策略可以例如用于定義應(yīng)當(dāng)如何處理請求(例如,來自CPU2108的安全服務(wù)請求),和當(dāng)觀察到某些事件時應(yīng)當(dāng)采取何種行為(如果有的話)。在實施方式中,安全策略可以存儲在ROM118中。2.3、隔離橋隔離橋124將安全處理系統(tǒng)116的部件與外部非安全部件(例如,開放外圍設(shè)備126)隔離。隔離橋124受到CPU1100的控制,并且被構(gòu)造為打開和關(guān)閉安全處理系統(tǒng)116和開放外圍設(shè)備126之間的邏輯或硬線數(shù)據(jù)通道。開放外圍設(shè)備126的隔離防止安全數(shù)據(jù)泄露至開放外圍設(shè)備126。進(jìn)一步,該隔離確保具有開放外圍設(shè)備126的部件的任何問題不會影響安全處理系統(tǒng)116。例如,該隔離可以確保安全處理系統(tǒng)116的安全性不會受到開放外圍設(shè)備126的危害。通過將外圍設(shè)備126與安全處理系統(tǒng)116中的時鐘信息隔離,隔離橋124在安全處理系統(tǒng)116和開放外圍設(shè)備126之間產(chǎn)生異步邊界。該異步邊界防止安全處理系統(tǒng)116外部的非安全元件檢測安全處理系統(tǒng)116內(nèi)的總線上傳播的檢測信息。在實施方式中,隔離橋124被構(gòu)造為耦接安全處理系統(tǒng)116和開放外圍設(shè)備126之間的一個或多個數(shù)據(jù)通道。通過將數(shù)據(jù)通道切換成打開和關(guān)閉狀態(tài),隔離橋124可以耦接和解耦安全處理系統(tǒng)116的元件和開放外圍設(shè)備126。例如,隔離橋124可以被構(gòu)造為利用第一數(shù)據(jù)通道128將I/O模塊112耦接至開放外圍設(shè)備126。隔離橋124可以被構(gòu)造為利用第二數(shù)據(jù)通道130將開放外圍設(shè)備126耦接至安全處理系統(tǒng)116的加密總線132。例如,如果用戶或供應(yīng)商希望將非安全數(shù)據(jù)和/或未經(jīng)過認(rèn)證的數(shù)據(jù)加載到ROM106中,那么用戶或供貨商可以將請求發(fā)送至CPU1100以將該信息加載到共享內(nèi)存ROM106中。CPU1100可以基于一個或多個存儲的安全策略確定是否同意該請求。如果CPU1100同意該請求,那么CPU1100可以指示隔離橋124切換數(shù)據(jù)通道128。在已經(jīng)將非安全數(shù)據(jù)和/或未經(jīng)過認(rèn)證的數(shù)據(jù)傳輸至ROM106之后,CPU1100可以指示隔離橋再次切換數(shù)據(jù)通道128以解耦開放外圍設(shè)備126和I/O模塊112。數(shù)據(jù)通道120可以用于將來自安全處理系統(tǒng)116和/或ROM106的數(shù)據(jù)通過加密總線132發(fā)送至開放外圍設(shè)備126。例如,如果CPU1100同意數(shù)據(jù)從安全處理系統(tǒng)116和/或ROM106轉(zhuǎn)移至開放外圍設(shè)備126,那么CPU1100可以指示隔離橋124切換數(shù)據(jù)通道128。在已經(jīng)將非安全數(shù)據(jù)和/或未經(jīng)過認(rèn)證的數(shù)據(jù)傳輸至開放外圍設(shè)備126之后,CPU1100可以指示隔離橋再次切換數(shù)據(jù)通道130以解耦開放外圍設(shè)備126和加密總線132。2.4、加密處理引擎和安全外圍設(shè)備圖2示出根據(jù)本發(fā)明實施方式的包括安全處理系統(tǒng)116和沙盒104的系統(tǒng)的更詳細(xì)的圖示。如圖2中所示,開放外圍設(shè)備126可以包括直接存取存儲器(DMA)模塊230、內(nèi)置集成電路(I2C)模塊232、安全外圍接口(SPI)設(shè)備234、和SPI設(shè)備236,這在圖2中通過通用輸入/輸出(GPIO)模塊238示出。AHB從設(shè)備201和AHB主設(shè)備203是用于將隔離橋124連接至這些開放外圍設(shè)備的總線。安全處理系統(tǒng)116包括根據(jù)本發(fā)明實施方式的一個或多個加密處理引擎123。例如,在圖2中,循環(huán)冗余校驗(CRC)模塊200通過加密總線132被耦接至CPU。在圖2中,加密處理引擎123包括用于安全服務(wù)的安全模塊。例如,安全處理系統(tǒng)116可以包括不對稱加密引擎204、一個或多個對稱加密引擎(例如,3DEX206和/或AES208)、加密散列模塊210。實施方式可以進(jìn)一步包括流加密模塊(例如,RC4模塊)。APB橋212將安全外圍設(shè)備連接至CPU1100。在實施方式中,加密經(jīng)過該橋的流量。例如,這些其他安全外圍設(shè)備包括I2C主設(shè)備/從設(shè)備216、SPI主設(shè)備218、非易失性內(nèi)存(NVM)224、以及設(shè)備配置和管理模塊226。定時器220、定時器隨機(jī)數(shù)發(fā)生器(TRNG)222和時鐘213也通過APB橋212被耦接至CPU1100。在圖2中,上電復(fù)位(POR)模塊228被耦接至安全監(jiān)控器122。在實施方式中,POR模塊228檢測何時將電源應(yīng)施加至實施安全監(jiān)控器122的電路(例如,POR模塊228檢測何時設(shè)備已被復(fù)位)。2.5、實施本文中公開的實施方式有利地允許通過諸如通用準(zhǔn)則的標(biāo)準(zhǔn)認(rèn)證安全處理系統(tǒng)116的硬件(例如,CPU1100和相關(guān)聯(lián)的硬件)。CPU2108由CPU1100安全地控制,因此,可以允許CPU2108在隔離的沙盒104內(nèi)運行用戶應(yīng)用程序,而不會錯過認(rèn)證CPU1100。在本發(fā)明的實施方式中,圖1和圖2中所示的所有元件均位于相同的集成電路(IC)中。在另一個實施方式中,圖1和/或圖2中所示的某些元件位于單獨的IC。例如,在實施方式中,外圍設(shè)備(例如,安全外圍設(shè)備120和/或開放外圍設(shè)備126)位于與圖1和/圖2中所示的剩余元件分離IC中。應(yīng)當(dāng)理解,圖1和/圖2中所示的任何元件可以在與用于實施圖1和/或圖2中所示的任何其他元件相同或不同的IC中。在實施方式中,CPU1100和CPU2108實施為兩個分離的處理器。在另一個實施方式中,CPU1100和CPU2108實施為共享處理器的兩個核。本發(fā)明實施方式可以在許多設(shè)備中實施。例如,本發(fā)明實施方式可以實施在手機(jī)或個人計算機(jī)上。通過示出而非限制的方式提供這些實例。本領(lǐng)域的普通技術(shù)人員將理解,本發(fā)明實施方式的多種實施是可行的。3、方法現(xiàn)在將更詳細(xì)地說明用于執(zhí)行CPU2108與安全處理系統(tǒng)116的隔離的方法。圖3描述了根據(jù)本發(fā)明實施方式的用于執(zhí)行CPU2108和沙盒104隔離的方法300。參考圖1和圖2中所示的實施方式說明方法300。然而,方法300不限于這些實施方式。在實施方式中,CPU1100執(zhí)行圖1和圖2中所示的所有系統(tǒng)元件的主要處理功能。例如,CPU1100可以被構(gòu)造為執(zhí)行操作系統(tǒng)的安全的經(jīng)過認(rèn)證的代碼。如上所述,CPU1100不執(zhí)行非安全代碼和/或未經(jīng)過認(rèn)證的代碼。在步驟302中,CPU1100指示CPU2108處理沙盒104內(nèi)的非安全代碼。如果非安全代碼還未加載到共享內(nèi)存110中,那么此時可以將非安全代碼(例如,來自開放外圍設(shè)備126)加載到共享內(nèi)存110中。或者,可以將非安全代碼加載到沙盒104內(nèi)的另一個存儲器中(例如,ROM106中)。例如,CPU1100可以安排命令執(zhí)行共享內(nèi)存110中的非安全代碼。CPU2108可以檢測該命令、處理請求、和在已經(jīng)完成執(zhí)行非安全代碼之后(可選地)將響應(yīng)放入共享內(nèi)存110中。由于共享內(nèi)存110不存儲可執(zhí)行代碼,所以防止黑客將惡意可執(zhí)行代碼植入該響應(yīng)。CPU1100可以從共享內(nèi)存110中讀取該響應(yīng),然后可以繼續(xù)處理安全代碼。當(dāng)CPU2108在處理非安全代碼時,CPU2108需要訪問沙盒104外部的元件。例如,正在CPU2108上執(zhí)行的代碼可以請求利用加密散列模塊210進(jìn)行散列數(shù)據(jù)。因為CPU2108與安全處理系統(tǒng)116隔離,所以CPU2108無法直接訪問沙盒104外部的元件。相反,在步驟304中,CPU2108將訪問該元件的請求放在共享內(nèi)存110中。在步驟306中,CPU1100檢測該請求并確定是否應(yīng)當(dāng)同意該請求。例如,CPU1100可以評估一個或多個存儲安全策略,從而確定是否準(zhǔn)許該請求。在實施方式中,這些一個或多個策略可以存儲在ROM118中。例如,這些一個或多個策略可以規(guī)定,如果安全監(jiān)控器122檢測到惡意第三方進(jìn)行的攻擊或試圖攻擊那么不應(yīng)當(dāng)執(zhí)行非安全代碼。本領(lǐng)域的普通技術(shù)人員將理解,可以通過多種方式配置安全策略。在實施方式中,制造商或終端用戶可以定制和/或修改安全策略。在步驟308中,如果CPU1100確定應(yīng)當(dāng)拒絕請求,那么CPU1100發(fā)送響應(yīng)至CPU2108(例如,通過將消息放入共享內(nèi)存110中),表明拒絕該請求。如果CPU1100同意該請求,那么在步驟310中CPU1100處理該請求。例如,CPU1100可以指示加密散列模塊210散列數(shù)據(jù)。在已經(jīng)處理該請求之后,在步驟312中CPU1100將響應(yīng)放入共享內(nèi)存110中。例如,CPU1100可以將來自加密散列模塊210的散列輸出放入共享內(nèi)存110中。CPU2108可以訪問該響應(yīng)并繼續(xù)執(zhí)行沙盒104內(nèi)的代碼。現(xiàn)在將參考圖3描述根據(jù)本發(fā)明實施方式的執(zhí)行CPU2108和沙盒104的隔離的方法300的實例。在步驟302中,CPU1指示CPU2執(zhí)行沙盒104內(nèi)的非安全代碼。在沙盒104中執(zhí)行的代碼最終生成向用戶釋放數(shù)據(jù)的請求。在步驟304中,CPU2在共享內(nèi)存110中放置釋放數(shù)據(jù)的請求,以及在步驟306中CPU1100檢測該請求并確定是否同意該請求。如果請求是將數(shù)據(jù)釋放至安全外圍設(shè)備120(例如,SPI主設(shè)備218)的請求,那么CPU1100準(zhǔn)許該請求,因為安全外圍設(shè)備120位于安全處理系統(tǒng)116的安全邊界內(nèi)。CPU1100可以檢測將數(shù)據(jù)釋放至開放外圍設(shè)備126(例如,SPI設(shè)備234)的請求。在實施方式中,CPU1100可以基于一個或多個存儲安全策略確定是否同意該請求。例如,CPU1100可以確定拒絕將存儲的加密密鑰釋放至開放外圍設(shè)備126的請求。例如,如果安全監(jiān)控器122檢測到惡意第三方的攻擊或試圖攻擊,那么CPU1100可以確定拒絕將數(shù)據(jù)釋放至開放外圍設(shè)備的請求。如果CPU1100拒絕該請求,那么在步驟308中CPU1100發(fā)送表明拒絕訪問數(shù)據(jù)的響應(yīng)。例如,CPU1100可以通過安全外圍設(shè)備120發(fā)送響應(yīng)至用戶,或CPU1100可以指示隔離橋切換數(shù)據(jù)通道130,使得可以通過開放外圍設(shè)備126將響應(yīng)發(fā)送至用戶。如果CPU1100同意該請求,那么在步驟310中CPU1100處理該請求。例如,CPU1100可以指示隔離橋124切換數(shù)據(jù)通道130,使得可以將數(shù)據(jù)發(fā)送至在請求中識別的開放外圍設(shè)備。在可選步驟312中,CPU1100可以將響應(yīng)放入共享內(nèi)存110中以告知CPU2108已經(jīng)處理該請求。通過遵循圖3的過程,CPU1100可以請求執(zhí)行非安全代碼和/或未經(jīng)認(rèn)證的代碼,而不會危害安全處理系統(tǒng)116的安全。進(jìn)一步,CPU2108可以請求訪問沙盒104外部的元件,而不會危害安全處理系統(tǒng)116的安全性。因為硬件沙盒104隔離CPU2108,所以避免了傳統(tǒng)Java(或本機(jī)代碼)的任何可能的安全問題。根據(jù)本發(fā)明實施方式,經(jīng)過認(rèn)證的安全操作系統(tǒng)(例如,在CPU1100上執(zhí)行)能夠與非安全應(yīng)用程序(例如,在CPU2108上執(zhí)行)同時運行。利用本發(fā)明實施方式,當(dāng)檢測到篡改安全處理系統(tǒng)116的潛在嘗試時,經(jīng)過認(rèn)證的安全處理器CPU1100可以做出反應(yīng)(例如,通過安全監(jiān)控器122)。4、結(jié)論以上借助于示出本發(fā)明的具體功能及其關(guān)系的實施的功能構(gòu)件方框描述了本發(fā)明。為了便于描述,本文中已經(jīng)任意地定義這些功能構(gòu)件方框的邊界。只要合適地執(zhí)行具體功能和其關(guān)系就可以定義可選的邊界。前述的具體實施例將完全揭示本發(fā)明的一般特征,以致于在不偏離本發(fā)明的一般概念的情況下,無需過量實驗,通過應(yīng)用本領(lǐng)域普通技術(shù)人員的知識可以容易地修改和/或使之適于不同的應(yīng)用。因此,基于本文中提出的教導(dǎo)和引導(dǎo),這些適應(yīng)和修改旨在在所發(fā)明實施方式的等價物的意義和范圍內(nèi)。應(yīng)當(dāng)理解,本文中的詞組或術(shù)語是為了描述而非限制,因此根據(jù)教導(dǎo)和引導(dǎo)本領(lǐng)域的技術(shù)人員說明本說明書的術(shù)語或詞組。以上系統(tǒng)和方法可以實施為在機(jī)器上執(zhí)行的計算機(jī)程序、計算機(jī)程序產(chǎn)品、或已經(jīng)存儲指令的有形和/或非易失性計算機(jī)可讀介質(zhì)。例如,本文中描述的功能可以通過計算機(jī)處理器或以上列舉的任何一個硬件設(shè)備執(zhí)行的計算機(jī)程序指令體現(xiàn)。計算機(jī)程序指令使處理器執(zhí)行本文中描述的信號處理功能。計算機(jī)程序指令(例如,軟件)可以存儲在有形易失性計算機(jī)可使用介質(zhì)、計算機(jī)程序介質(zhì)、或計算機(jī)或處理器可以訪問的任何存儲介質(zhì)。該介質(zhì)包括諸如RAM或ROM的存儲設(shè)備,或諸如計算機(jī)磁盤或CDROM的其他類型的計算機(jī)存儲介質(zhì)。因此,具有使處理器執(zhí)行本文中描述的信號處理功能的計算機(jī)程序代碼的任何有形非易失性計算機(jī)存儲介質(zhì)在本發(fā)明的保護(hù)范圍和精神內(nèi)。盡管以上已經(jīng)描述了本發(fā)明的不同實施方式,但是應(yīng)當(dāng)理解,僅僅通過實例而非限制地呈現(xiàn)了這些實施例。相關(guān)領(lǐng)域的技術(shù)人員將明顯看出,在不偏離本發(fā)明的精神和保護(hù)范圍的情況下,可以對本發(fā)明的形式和細(xì)節(jié)做出改變。因此,本發(fā)明的廣度和保護(hù)范圍不應(yīng)當(dāng)受到任何以上所述的示例性實施方式的限制,而應(yīng)當(dāng)只根據(jù)所附權(quán)利要求及其等價物限定。