TW201344494A - 用於電腦安全的系統及其方法 - Google Patents
用於電腦安全的系統及其方法 Download PDFInfo
- Publication number
- TW201344494A TW201344494A TW101147559A TW101147559A TW201344494A TW 201344494 A TW201344494 A TW 201344494A TW 101147559 A TW101147559 A TW 101147559A TW 101147559 A TW101147559 A TW 101147559A TW 201344494 A TW201344494 A TW 201344494A
- Authority
- TW
- Taiwan
- Prior art keywords
- security
- processor
- secure
- processing system
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本發明實施方式涉及安全控制的多處理系統。本發明提供了用於實施具有認證為安全處理器的第一處理器的安全處理系統的系統和方法。第一處理器只執行經過認證的代碼和/或安全代碼。隔離的第二處理器執行沙盒內的非安全(例如,未經過認證的)代碼。執行沙盒的邊界(例如,利用硬體邊界和/或加密技術),以致於在沙盒內執行的代碼不能存取沙盒外部的安全處理系統的安全元件。第一處理器管理記憶體空間和允許在第二處理器上運行的應用程式。
Description
本發明涉及電腦安全,更具體地,涉及安全處理系統。
安全性是現代電腦系統的關鍵部分。電腦安全系統和技術確保有價值的資訊和系統不會被駭客或惡意軟體危害。為此,許多組織公開了安全標準,供應商可以使用這些安全標準作為硬體和/或軟體安全性的準則。資訊技術安全評估的通用標準(“通用標準(Common Criteria)”或“CC”)是目前用作開發、評估、和/或採購具有安全功能的IT產品的準則。
CC提供一組公共需求用於IT產品的安全功能和在安全評估期間應用於這些IT產品的保證措施。這些IT產品可以以硬體、固件或軟體實施。在CC下的評估過程創建應用於IT產品的IT產品的安全功能和保證措施滿足預定義的需求的置信水準。可以證明遵守CC是國家批准授權的,例如美國的國家標準與技術研究院(NIST)國家自願實驗室認證程式(NVLAP)。
用戶要求的一個公共安全需求是,只有透過認證(或信任的)代碼可以在系統的安全域(例如,安全處理器)中執行。先前用於實現該需求的方法使用硬體機制允許單個處理器作為兩個處理器在邏輯上工作。然而,從安全的角度來看,該結構要求設備的安全部分不能與應用處理器同時工作。對於高安全性應用來說,該結構進一步不允許經過認證的處理器回應篡改系統的攻擊。
而且,在實現該需求的過程出現的困難在多應用環境中逐漸
增加。例如,安全(經過認證的)應用(例如,經過認證的金融應用程式)必須與用戶編寫的小應用程式共存。因此,一旦將用戶編寫(不受信任的)的小應用程式增加至環境中,任何認證要求會變得無效。
因此,需要保持系統的安全部件的認證同時允許在系統中執行不受信任代碼的系統和方法。
為了解決上述問題,本發明提供了以下系統和方法:
(1)一種系統,包括:安全處理系統,包括:硬體儲存保護單元(HMPU),被構造為限制對所述安全處理系統的存取,安全記憶體被構造為儲存安全策略,以及安全處理器被構造為執行安全代碼,其中,所述安全處理器被構造為基於所述安全策略確定是否准許存取所述安全處理系統的安全服務的請求;以及第一處理器,與所述安全處理系統和一組系統週邊設隔離,其中,所述第一處理器被構造為:在所述安全處理器的指示下執行代碼,以及將存取所述安全服務的所述請求放入所述共用記憶體中。
(2)根據(1)所述的系統,其中,所述安全處理系統進一步包括隔離橋,所述隔離橋被構造為將所述安全處理系統耦接至非安全週邊設備,其中,所述安全處理器進一步被構造為基於所述安全策略確定是否指示所述隔離橋將所述安全處理器耦接至所述非安全週邊設備。
(3)根據(2)所述的系統,進一步包括耦接至所述第一處理器的記憶體,其中,所述記憶體與所述安全處理系統和所述一組系統週邊設備隔離。
(4)根據(3)所述的系統,其中,所述安全處理器進一步被構造為指示所述隔離橋將所述記憶體耦接至非安全週邊設備以使所述代碼能夠載入到所述記憶體中。
(5)根據(3)所述的系統,其中,所述HMPU透過執行沙盒限制存取所述安全處理系統,其中,所述沙盒包括所述記憶體、所述第一處理器和所述共用記憶體。
(6)根據(1)所述的系統,其中,所述安全處理器被認證為只執行安全代碼。
(7)根據(1)所述的系統,其中,所述安全處理系統進一步包括加密匯流排。
(8)根據(1)所述的系統,其中,所述安全處理器被構造為執行安全作業系統代碼。
(9)根據(1)所述的系統,其中,所述安全處理系統包括安全監控模組,所述安全監控模組被構造為檢測篡改所述安全處理系統的攻擊。
(10)一種系統,包括:第一處理器,安全處理系統,包括:安全記憶體,儲存安全策略,隔離橋,被構造為將系統週邊設備耦接至所述安全處理系統,以及安全處理器,其中,所述安全處理器被構造為基於所述安全策略確定是否指示所示隔離橋將所述系統週邊設備耦接至所述安全處理系統;以及硬體記憶體保護單元(HMPU),被構造為將所述第一處理器與所述安全處理系統和所述系統週邊設備隔離。
(11)根據(10)所述的系統,其中,所述第一處理器和所述安全處理系統都被耦接到共用記憶體,其中,所述HMPU進一
步被構造為將所述第一處理器和所述共用記憶體與所述安全處理系統和所述系統週邊設備隔離。
(12)根據(11)所述的系統,其中,所述第一處理器被構造為將向所述系統週邊設備釋放資料的請求放入所述共用記憶體。
(13)根據(12)所述的系統,其中,所述安全處理器進一步被構造為:基於所述安全策略確定是否准許所述請求;以及回應於確定應當准許所述請求,指示所述隔離橋將所述系統週邊設備耦接至所述安全處理系統。
(14)根據(10)所述的系統,其中,所述HMPU透過在所述記憶體、所述第一處理器和所述共用記憶體周圍執行沙盒將所述第一處理器與所述安全處理系統和所述系統週邊設備隔離。
(15)根據(10)所述的系統,其中,所述安全處理器被認證為只執行安全代碼。
(16)一種方法,包括:利用安全處理器檢測對安全服務的第一請求,其中,透過與所述安全處理器物理隔離的非安全處理器將所述第一請求放入共用記憶體中;利用所述安全處理器分析儲存的安全策略以確定是否准許所述第一請求;以及回應於應當准許所述第一請求的確定:利用所述安全處理器處理所述第一請求,以及將回應放入所述共用記憶體中。
(17)根據(16)所述的方法,進一步包括:從安全監控器接收表明已經出現對所述安全處理器的試圖攻擊的資訊;以及回應於接收所述資訊確定不應當准許所述第一請求。
(18)根據(16)所述的方法,進一步包括:檢測將資料釋放至系統週邊設備的第二請求,其中,所述第二請求透過所述非安全處理器被放入所述共用記憶體中,以及其中所述系統週邊設備透過隔離橋與所述安全處理器隔離;利用所述安全處理器分析儲存的安全策略以確定是否准許所述第二請求;以及回應於應當允許所述第二請求的確定,指示所述隔離橋將所述非安全處理器耦接至所述系統週邊設備。
(19)根據(18)所述的方法,進一步包括:從安全監控器接收表明已經出現對所述安全處理器的試圖攻擊的資訊;以及回應於接收所述資訊確定不應當准許所述第二請求。
(20)根據(16)所述的方法,進一步包括:利用所述安全處理器接收將額外的非安全代碼載入到非安全記憶體中的第三請求,其中,所述非安全記憶體被耦接至所述非安全處理器,並且與所述安全處理器隔離;以及
基於所述安全策略確定是否准許所述第三請求。
100‧‧‧安全處理器(CPU1)
102‧‧‧硬體記憶體保護單元(HMPU)
104‧‧‧沙盒
108‧‧‧CPU2
110‧‧‧共用記憶體
112‧‧‧I/O模組
114‧‧‧SRAM
116‧‧‧安全處理系統
106、118‧‧‧唯讀記憶體(ROM)
120‧‧‧安全週邊設備
122‧‧‧安全監控器
123‧‧‧加密處理引擎
124‧‧‧隔離橋
126‧‧‧開放週邊設備
128‧‧‧第一資料通道
130‧‧‧第二資料通道
132‧‧‧加密匯流排
200‧‧‧循環冗餘檢查(CRC)模組
201‧‧‧AHB從設備
203‧‧‧AHB主設備
202‧‧‧SWP(從設備)
204‧‧‧不對稱加密引擎(PKA RSA/ECC)
206‧‧‧3DEX
208‧‧‧AES
210‧‧‧加密散列模組(HASH)
212‧‧‧APB橋
214‧‧‧時脈產生器
216‧‧‧I2C主設備/從設備
218‧‧‧SPI主設備
220‧‧‧計時器
222‧‧‧計時器亂數產生器(TRNG)
224‧‧‧非揮發性記憶體(NVM)
226‧‧‧設備配置/管理模組
228‧‧‧電力開啟重置(POR)模組
230‧‧‧直接存取記憶體(DMA)模組
232‧‧‧內置積體電路模組(I2C從設備)
234‧‧‧安全週邊介面(SPI)設備
236‧‧‧SPI設備
238‧‧‧通用輸入/輸出(GPIO)模組
步驟‧‧‧302~312
圖1是根據本發明實施方式的包括安全處理系統和用於執行不受信任代碼的非安全沙盒的系統的方塊圖。
圖2是根據本發明實施方式的包括安全處理系統和用於執行不受信任代碼的非安全沙盒的系統的另一個方塊圖。
圖3是根據本發明實施方式的用於請求安全服務的方法的流程圖。
在下面的描述中,闡述了許多具體細節以便於更透徹地理解本發明。然而,本領域的技術人員將理解,本發明,包括結構、系統和方法,可以在無這些特定細節的情況下實施。本文中的描
述和表示是本領域的有經驗或普通技術人員使用的常見方法,從而將其作品的本質最有效地傳遞給本領域的技術人員。在其他情況下,為了避免不必要地模糊本發明的方面,未詳細描述眾所周知的方法、過程、部件和電路。
說明書中引用的“一個實施方式”、“實施方式”“實例實施方式”等表明所描述的實施方式包括特定特徵、結構或特點,但是每個實施方式不一定包括特定特徵、結構或特點。而且,這些短語不一定是指相同的實施方式。進一步,當結合實施方式描述特定特徵、結構、或特點時,特定特徵、結構或特點在本領域技術人員的知識範圍內,無論是否明確描述,結合其他範例性的實施方式會影響這些特徵、結構或者特點。
1、概要
本發明實施方式提供了用於實施安全處理系統的系統和方法,其中安全處理系統具有可以認證為安全處理器的處理器和支援由安全處理器定義和管理的用於執行不受信任代碼的“沙盒”的另一個隔離處理器。沙盒隔離代碼(例如,未經認證的代碼和/或不安全代碼)存取或查看安全處理系統。安全處理器管理記憶體空間和允許在第二處理器上運行的應用程式。因為安全處理系統只處理安全代碼和/或經過認證的代碼,所以執行安全處理系統的產品/系統可以保持安全處理器的安全認證。隔離處理器執行安全處理器定義的隔離邊界(“沙盒”)內的代碼。安全處理器定義沙盒的邊界(例如,利用硬體邊界或邏輯安全邊界),以便於在沙盒內執行的代碼不能存取沙盒外部的安全處理系統的安全元件。
因此,實施方式有利地提供包括經過認證的安全處理器的安全處理系統,其中經過認證的安全處理器只執行經過認證的代碼和/或安全代碼,同時允許執行安全處理系統外部的隔離沙盒內的不受信任代碼。因為沙盒的安全邊界由安全處理器執行,所以在不危害安全處理系統的安全性的情況下可以支援在沙盒中執行不
受信任代碼。
2、系統
圖1是根據本發明實施方式的多處理器系統的方塊圖,該多處理器系統包括安全處理系統116和一個或多個非安全部件。在實施方式中,安全處理系統116包括安全處理器100、一個或多個加密處理引擎123、一個或多個安全週邊設備120、安全監控器122和唯讀記憶體(ROM)118。CPU1 100被構造為只執行安全代碼和/或經過認證的代碼。CPU1 100不執行非安全代碼和/或未經過認證的代碼(例如,供應商或用戶的自定義碼)。此外,CPU1 1100管理記憶體空間和允許在CPU2 108上運行的應用程式。
安全處理系統116具有相關聯的安全邊界。該安全邊界有助於防止非安全代碼存取和/或篡改安全處理系統116的要素。可以例如利用硬體和/或加密技術創建安全邊界。用於提供安全邊界的硬體技術可以包括,例如,將部件放置在單個積體電路中。此外,利用諸如環氧樹脂密封的防破壞和/或防篡改技術透過物理結構可以保護一個或多個積體電路。用於創建安全邊界的加密技術可以包括,例如,在離開安全處理系統116內的部件之前加密敏感資訊。為此,安全處理系統116包括一個或多個加密處理器,並且將相關聯的加密/解密密鑰儲存在安全處理系統116內部的安全記憶體中(例如,在ROM 118或在以前的可編程記憶體)。
2.1、沙盒
對系統的許多攻擊透過在軟體程式內包括惡意代碼實現。例如,駭客可以將代碼植入程式中,從而存取安全資訊(例如,密碼、密鑰等)或干擾系統運行(例如,病毒)。任何非安全或不受信任代碼都可能含有這些惡意代碼。如上所述,沙盒(sandbox)104可以用於執行非安全代碼或不受信任代碼(例如,用戶或供應商的自定義代碼)。該不受信任代碼可能不是(通常不是)安全代碼。為了防止任何危害代碼篡改安全處理系統116的元件,安全處理
系統116包括隔離的沙盒104。
如上所述,安全處理系統116內的CPU1 100定義沙盒104。沙盒104包括CPU2 108和記憶體106。CPU2 108與安全處理系統116隔離。CPU2 108可以只執行沙盒104內的代碼(例如,Java代碼或本機代碼)。因此,CPU2 108用作“實機”(例如,與“虛擬機”相對)執行應用程式。
硬體記憶體保護單元(HMPU)102被構造為執行CPU2 108和安全處理系統116之間的隔離。HMPU 102包括共用記憶體110、I/O模組112、和靜態隨機存取記憶體(SRAM)114。在實施方式中,共用記憶體110包括在沙盒104內。共用記憶體110作為在CPU2 108上執行的應用程式請求的信箱。CPU2 108將每個請求放置在共用記憶體110中。一旦接收請求,CPU1 100就構造為確定是否處理該請求。防止CPU2 108將可執行代碼寫入共用記憶體110。更確切地,透過CPU2 108僅不可執行請求(例如,安全服務的請求)可以寫入共用記憶體110。
ROM 106將CPU2 108要執行的非安全代碼和/或未經過認證的代碼儲存在沙盒104中。在實施方式中,在製造期間可以將某些非安全代碼和/或未經過認證的代碼儲存在ROM 106中。如果用戶和/或供應商希望儲存額外的非安全代碼和/或未經過認證代碼用於執行,那麼可以利用隔離橋124將來自開放週邊設備126的代碼輸入共用記憶體110。例如,用戶可以選擇執行小應用程式(例如,Java applet)。以下將更詳細地說明隔離橋124的操作。
2.2、安全處理系統
安全處理系統116包括與CPU1 100相關聯的安全邊界內的元件。例如,安全處理系統116包括可以由在安全CPU1 100上執行的代碼存取的安全元件。在CPU2 108上執行的代碼不能直接存取安全處理系統116的安全元件。相反,如果CPU2 108要求使用在安全處理系統116內提供的安全服務,那麼CPU2 108將安全服務
請求放入共用記憶體110。透過CPU1 100評估該請求。以下將參考圖3更詳細地描述用於評估CPU2 108請求安全服務的過程。
在實施方式中,HMPU 102的I/O模組112和SRAM 114在安全處理系統116內。安全處理系統116還可以包括安全處理器CPU1 100可存取的ROM 118、安全週邊設備120、安全監控器122、加密處理引擎123、和隔離橋124。在實施方式中,ROM 118儲存安全代碼和/或經過認證的代碼。在實施方式中,安全處理系統116的元件只可以由在CPU1 100上執行的安全代碼和/或經過認證的代碼存取。安全監控器122監控安全處理系統116的安全性,和可以檢測篡改安全處理系統116的嘗試。如果檢測到攻擊,那麼安全監控器122可以通知CPU1 100已經出現攻擊或嘗試攻擊,CPU1 100可以採取行動回應該攻擊。在實施方式中,安全處理系統116具有一個或多個安全策略。這些策略可以例如用於定義應當如何處理請求(例如,來自CPU2 108的安全服務請求),和當觀察到某些事件時應當採取何種行為(如果有的話)。在實施方式中,安全策略可以儲存在ROM118中。
2.3、隔離橋
隔離橋124將安全處理系統116的部件與外部非安全部件(例如,開放週邊設備126)隔離。隔離橋124受到CPU1 100的控制,並且被構造為打開和關閉安全處理系統116和開放週邊設備126之間的邏輯或硬線資料通道。開放週邊設備126的隔離防止安全資料洩露至開放週邊設備126。進一步,該隔離確保具有開放週邊設備126的部件的任何問題不會影響安全處理系統116。例如,該隔離可以確保安全處理系統116的安全性不會受到開放週邊設備126的危害。透過將週邊設備126與安全處理系統116中的時鐘資訊隔離,隔離橋124在安全處理系統116和開放週邊設備126之間產生非同步邊界。該非同步邊界防止安全處理系統116外部的非安全元件檢測安全處理系統116內的匯流排上傳播的檢測資訊。
在實施方式中,隔離橋124被構造為耦接安全處理系統116和開放週邊設備126之間的一個或多個資料通道。透過將資料通道切換成打開和關閉狀態,隔離橋124可以耦接和解耦安全處理系統116的元件和開放週邊設備126。例如,隔離橋124可以被構造為利用第一資料通道128將I/O模組112耦接至開放週邊設備126。隔離橋124可以被構造為利用第二資料通道130將開放週邊設備126耦接至安全處理系統116的加密匯流排132。
例如,如果用戶或供應商希望將非安全資料和/或未經過認證的資料載入到ROM 106中,那麼用戶或供應商可以將請求發送至CPU1 100以將該資訊載入到共用記憶體ROM 106中。CPU1 100可以基於一個或多個儲存的安全策略確定是否同意該請求。如果CPU1 100同意該請求,那麼CPU1 100可以指示隔離橋124切換資料通道128。在已經將非安全資料和/或未經過認證的資料傳輸至ROM 106之後,CPU1 100可以指示隔離橋再次切換資料通道128以解耦開放週邊設備126和I/O模組112。資料通道120可以用於將來自安全處理系統116和/或ROM 106的資料透過加密匯流排132發送至開放週邊設備126。例如,如果CPU1 100同意資料從安全處理系統116和/或ROM 106轉移至開放週邊設備126,那麼CPU1 100可以指示隔離橋124切換資料通道128。在已經將非安全資料和/或未經過認證的資料傳輸至開放週邊設備126之後,CPU1 100可以指示隔離橋再次切換資料通道130以解耦開放週邊設備126和加密匯流排132。
2.4、加密處理引擎和安全週邊設備
圖2顯示根據本發明實施方式的包括安全處理系統116和沙盒104的系統的更詳細的圖示。如圖2中所示,開放週邊設備126可以包括直接存取記憶體(DMA)模組230、內置積體電路(I2C)模組232、安全週邊介面(SPI)設備234、和SPI設備236,這在圖2中透過通用輸入/輸出(GPIO)模組238顯示。AHB從設備
201和AHB主設備203是用於將隔離橋124連接至這些開放週邊設備的匯流排。
安全處理系統116包括根據本發明實施方式的一個或多個加密處理引擎123。例如,在圖2中,循環冗餘檢查(CRC)模組200透過加密匯流排132被耦接至CPU。在圖2中,加密處理引擎123包括用於安全服務的安全模組。例如,安全處理系統116可以包括不對稱加密引擎204、一個或多個對稱加密引擎(例如,3DEX 206和/或AES 208)、加密散列模組210。實施方式可以進一步包括流加密模組(例如,RC4模組)。
APB橋212將安全週邊設備連接至CPU1 100。在實施方式中,加密經過該橋的流量。例如,這些其他安全週邊設備包括I2C主設備/從設備216、SPI主設備218、非揮發性記憶體(NVM)224、以及設備配置和管理模組226。計時器220、計時器亂數產生器(TRNG)222和時鐘213也透過APB橋212被耦接至CPU1 100。在圖2中,電力開啟重置(Power-on-reset,POR)模組228被耦接至安全監控器122。在實施方式中,POR模組228檢測何時將電源應施加至實施安全監控器122的電路(例如,POR模組228檢測何時設備已被重定)。
2.5、實施
本文中公開的實施方式有利地允許透過諸如通用準則的標準認證安全處理系統116的硬體(例如,CPU1 100和相關聯的硬體)。CPU2 108由CPU1 100安全地控制,因此,可以允許CPU2 108在隔離的沙盒104內運行用戶應用程式,而不會錯過認證CPU1 100。
在本發明的實施方式中,圖1和圖2中所示的所有元件均位於相同的積體電路(IC)中。在另一個實施方式中,圖1和/或圖2中所示的某些元件位於單獨的IC。例如,在實施方式中,週邊設備(例如,安全週邊設備120和/或開放週邊設備126)位於與
圖1和/圖2中所示的剩餘元件分離IC中。應當理解,圖1和/圖2中所示的任何元件可以在與用於實施圖1和/或圖2中所示的任何其他元件相同或不同的IC中。在實施方式中,CPU1 100和CPU2 108實施為兩個分離的處理器。在另一個實施方式中,CPU1 100和CPU2 108實施為共用處理器的兩個核。
本發明實施方式可以在許多設備中實施。例如,本發明實施方式可以實施在手機或個人電腦上。透過顯示而非限制的方式提供這些實例。本領域的普通技術人員將理解,本發明實施方式的多種實施是可行的。
3、方法
現在將更詳細地說明用於執行CPU2 108與安全處理系統116的隔離的方法。圖3描述了根據本發明實施方式的用於執行CPU2 108和沙盒104隔離的方法300。參考圖1和圖2中所示的實施方式說明方法300。然而,方法300不限於這些實施方式。
在實施方式中,CPU1 100執行圖1和圖2中所示的所有系統元件的主要處理功能。例如,CPU1 100可以被構造為執行作業系統的安全的經過認證的代碼。如上所述,CPU1 100不執行非安全代碼和/或未經過認證的代碼。在步驟302中,CPU1 100指示CPU2 108處理沙盒104內的非安全代碼。如果非安全代碼還未載入到共用記憶體110中,那麼此時可以將非安全代碼(例如,來自開放週邊設備126)載入到共用記憶體110中。或者,可以將非安全代碼載入到沙盒104內的另一個記憶體中(例如,ROM 106中)。例如,CPU1 100可以安排命令執行共用記憶體110中的非安全代碼。CPU2 108可以檢測該命令、處理請求、和在已經完成執行非安全代碼之後(可選地)將回應放入共用記憶體110中。由於共用記憶體110不儲存可執行代碼,所以防止駭客將惡意可執行代碼植入該回應。CPU1 100可以從共用記憶體110中讀取該回應,然後可以繼續處理安全代碼。
當CPU2 108在處理非安全代碼時,CPU2 108需要存取沙盒104外部的元件。例如,正在CPU2 108上執行的代碼可以請求利用加密散列模組210進行散列資料。因為CPU2 108與安全處理系統116隔離,所以CPU2 108無法直接存取沙盒104外部的元件。相反,在步驟304中,CPU2 108將存取該元件的請求放在共用記憶體110中。
在步驟306中,CPU1 100檢測該請求並確定是否應當同意該請求。例如,CPU1 100可以評估一個或多個儲存安全策略,從而確定是否准許該請求。在實施方式中,這些一個或多個策略可以儲存在ROM118中。例如,這些一個或多個策略可以規定,如果安全監控器122檢測到惡意第三方進行的攻擊或試圖攻擊那麼不應當執行非安全代碼。本領域的普通技術人員將理解,可以透過多種方式配置安全策略。在實施方式中,製造商或終端用戶可以定制和/或修改安全策略。
在步驟308中,如果CPU1 100確定應當拒絕請求,那麼CPU1 100發送回應至CPU2 108(例如,透過將消息放入共用記憶體110中),表明拒絕該請求。如果CPU1 100同意該請求,那麼在步驟310中CPU1 100處理該請求。例如,CPU1 100可以指示加密散列模組210散列資料。在已經處理該請求之後,在步驟312中CPU1 100將回應放入共用記憶體110中。例如,CPU1 100可以將來自加密散列模組210的散列輸出放入共用記憶體110中。CPU2 108可以存取該回應並繼續執行沙盒104內的代碼。
現在將參考圖3描述根據本發明實施方式的執行CPU2 108和沙盒104的隔離的方法300的實例。在步驟302中,CPU1指示CPU2執行沙盒104內的非安全代碼。在沙盒104中執行的代碼最終生成向用戶釋放資料的請求。在步驟304中,CPU2在共用記憶體110中放置釋放資料的請求,以及在步驟306中CPU1 100檢測該請求並確定是否同意該請求。如果請求是將資料釋放至安全週
邊設備120(例如,SPI主設備218)的請求,那麼CPU1 100准許該請求,因為安全週邊設備120位於安全處理系統116的安全邊界內。
CPU1 100可以檢測將資料釋放至開放週邊設備126(例如,SPI設備234)的請求。在實施方式中,CPU1 100可以基於一個或多個儲存安全策略確定是否同意該請求。例如,CPU1 100可以確定拒絕將儲存的加密密鑰釋放至開放週邊設備126的請求。例如,如果安全監控器122檢測到惡意第三方的攻擊或試圖攻擊,那麼CPU1 100可以確定拒絕將資料釋放至開放週邊設備的請求。
如果CPU1 100拒絕該請求,那麼在步驟308中CPU1 100發送表明拒絕存取資料的回應。例如,CPU1 100可以透過安全週邊設備120發送回應至用戶,或CPU1 100可以指示隔離橋切換資料通道130,使得可以透過開放週邊設備126將回應發送至用戶。如果CPU1 100同意該請求,那麼在步驟310中CPU1 100處理該請求。例如,CPU1 100可以指示隔離橋124切換資料通道130,使得可以將資料發送至在請求中識別的開放週邊設備。在可選步驟312中,CPU1 100可以將回應放入共用記憶體110中以告知CPU2 108已經處理該請求。
透過遵循圖3的過程,CPU1 100可以請求執行非安全代碼和/或未經認證的代碼,而不會危害安全處理系統116的安全。進一步,CPU2 108可以請求存取沙盒104外部的元件,而不會危害安全處理系統116的安全性。因為硬體沙盒104隔離CPU2 108,所以避免了傳統Java(或本機代碼)的任何可能的安全問題。根據本發明實施方式,經過認證的安全作業系統(例如,在CPU1 100上執行)能夠與非安全應用程式(例如,在CPU2 108上執行)同時運行。利用本發明實施方式,當檢測到篡改安全處理系統116的潛在嘗試時,經過認證的安全處理器CPU1 100可以做出反應(例如,透過安全監控器122)。
4、結論
以上借助於顯示本發明的具體功能及其關係的實施的功能構件方塊描述了本發明。為了便於描述,本文中已經任意地定義這些功能構件方塊的邊界。只要合適地執行具體功能和其關係就可以定義可選的邊界。
前述的具體實施例將完全揭示本發明的一般特徵,以致於在不偏離本發明的一般概念的情況下,無需過量實驗,透過應用本領域普通技術人員的知識可以容易地修改和/或使之適於不同的應用。因此,基於本文中提出的教導和引導,這些適應和修改旨在在所發明實施方式的等價物的意義和範圍內。應當理解,本文中的片語或術語是為了描述而非限制,因此根據教導和引導本領域的技術人員說明本說明書的術語或片語。
以上系統和方法可以實施為在機器上執行的電腦程式、電腦程式產品、或已經儲存指令的有形和/或非揮發性電腦可讀介質。例如,本文中描述的功能可以透過電腦處理器或以上列舉的任何一個硬體設備執行的電腦程式指令體現。電腦程式指令使處理器執行本文中描述的信號處理功能。電腦程式指令(例如,軟體)可以儲存在有形揮發性電腦可使用介質、電腦程式介質、或電腦或處理器可以存取的任何儲存介質。該介質包括諸如RAM或ROM的儲存設備,或諸如電腦磁片或CD ROM的其他類型的電腦儲存介質。因此,具有使處理器執行本文中描述的信號處理功能的電腦程式代碼的任何有形非揮發性電腦儲存介質在本發明的保護範圍和精神內。
儘管以上已經描述了本發明的不同實施方式,但是應當理解,僅僅透過實例而非限制地呈現了這些實施例。相關領域的技術人員將明顯看出,在不偏離本發明的精神和保護範圍的情況下,可以對本發明的形式和細節做出改變。因此,本發明的廣度和保護範圍不應當受到任何以上所述的範例性實施方式的限制,
而應當只根據所附申請專利範圍及其等價物限定。
100‧‧‧安全處理器(CPU1)
102‧‧‧硬體記憶體保護單元(HMPU)
104‧‧‧沙盒
108‧‧‧CPU2
110‧‧‧共用記憶體
112‧‧‧I/O模組
114‧‧‧SRAM
116‧‧‧安全處理系統
106、118‧‧‧唯讀記憶體(ROM)
120‧‧‧安全週邊設備
122‧‧‧安全監控器
123‧‧‧加密處理引擎
124‧‧‧隔離橋
126‧‧‧開放週邊設備
128‧‧‧第一資料通道
130‧‧‧第二資料通道
132‧‧‧加密匯流排
Claims (10)
- 一種系統,包括:安全處理系統,包括:硬體儲存保護單元,被構造為限制對所述安全處理系統的存取,安全記憶體被構造為儲存安全策略,以及安全處理器被構造為執行安全代碼,其中,所述安全處理器被構造為基於所述安全策略確定是否准許存取所述安全處理系統的安全服務的請求;以及第一處理器,與所述安全處理系統和一組系統週邊設隔離,其中,所述第一處理器被構造為:在所述安全處理器的指示下執行代碼,以及將存取所述安全服務的所述請求放入所述共用記憶體中。
- 根據申請專利範圍第1項所述的系統,其中,所述安全處理系統進一步包括隔離橋,所述隔離橋被構造為將所述安全處理系統耦接至非安全週邊設備,其中,所述安全處理器進一步被構造為基於所述安全策略確定是否指示所述隔離橋將所述安全處理器耦接至所述非安全週邊設備。
- 根據申請專利範圍第2項所述的系統,進一步包括耦接至所述第一處理器的記憶體,其中,所述記憶體與所述安全處理系統和所述一組系統週邊設備隔離。
- 根據申請專利範圍第3項所述的系統,其中,所述安全處理器進一步被構造為指示所述隔離橋將所述記憶體耦接至非安全週邊設備以使所述代碼能夠載入到所述記憶體中。
- 根據申請專利範圍第3項所述的系統,其中,所述硬體儲存保護單元透過執行沙盒限制存取所述安全處理系統,其中,所述沙盒包括所述記憶體、所述第一處理器和所述共用記憶體。
- 一種系統,包括: 第一處理器,安全處理系統,包括:安全記憶體,儲存安全策略,隔離橋,被構造為將系統週邊設備耦接至所述安全處理系統,以及安全處理器,其中,所述安全處理器被構造為基於所述安全策略確定是否指示所示隔離橋將所述系統週邊設備耦接至所述安全處理系統;以及硬體記憶體保護單元,被構造為將所述第一處理器與所述安全處理系統和所述系統週邊設備隔離。
- 根據申請專利範圍第6項所述的系統,其中,所述第一處理器和所述安全處理系統都被耦接到共用記憶體,其中,所述硬體記憶體保護單元進一步被構造為將所述第一處理器和所述共用記憶體與所述安全處理系統和所述系統週邊設備隔離。
- 根據申請專利範圍第6項所述的系統,其中,所述硬體記憶體保護單元透過在所述記憶體、所述第一處理器和所述共用記憶體周圍執行沙盒將所述第一處理器與所述安全處理系統和所述系統週邊設備隔離。
- 一種方法,包括:利用安全處理器檢測對安全服務的第一請求,其中,透過與所述安全處理器物理隔離的非安全處理器將所述第一請求放入共用記憶體中;利用所述安全處理器分析儲存的安全策略以確定是否准許所述第一請求;以及回應於應當准許所述第一請求的確定:利用所述安全處理器處理所述第一請求,以及將回應放入所述共用記憶體中。
- 根據申請專利範圍第9項所述的方法,進一步包括: 從安全監控器接收表明已經出現對所述安全處理器的試圖攻擊的資訊;以及回應於接收所述資訊確定不應當准許所述第一請求。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261639394P | 2012-04-27 | 2012-04-27 | |
| US13/491,309 US9256734B2 (en) | 2012-04-27 | 2012-06-07 | Security controlled multi-processor system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201344494A true TW201344494A (zh) | 2013-11-01 |
| TWI584152B TWI584152B (zh) | 2017-05-21 |
Family
ID=47594220
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW101147559A TWI584152B (zh) | 2012-04-27 | 2012-12-14 | 用於電腦安全的系統及其方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US9256734B2 (zh) |
| EP (1) | EP2657879B1 (zh) |
| CN (1) | CN103377349B (zh) |
| TW (1) | TWI584152B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI509461B (zh) * | 2014-03-17 | 2015-11-21 | Hiti Digital Inc | 耗材管理方法及其設備 |
| TWI560578B (zh) * | 2013-11-26 | 2016-12-01 | Chunghwa Telecom Co Ltd |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9256734B2 (en) | 2012-04-27 | 2016-02-09 | Broadcom Corporation | Security controlled multi-processor system |
| US9171170B2 (en) * | 2012-08-17 | 2015-10-27 | Broadcom Corporation | Data and key separation using a secure central processing unit |
| US9424421B2 (en) | 2013-05-03 | 2016-08-23 | Visa International Service Association | Security engine for a secure operating environment |
| EP2894588B1 (en) * | 2014-01-13 | 2018-08-15 | Nxp B.V. | Data processing device, method for executing an application and computer program product |
| WO2015153288A1 (en) * | 2014-04-02 | 2015-10-08 | Openpeak Inc. | Method and system for selectively permitting non-secure application to communicate with secure application |
| CN103942503B (zh) * | 2014-04-28 | 2017-02-01 | 上海新储集成电路有限公司 | 一种安全状态切换系统及切换方法 |
| US9704355B2 (en) * | 2014-10-29 | 2017-07-11 | Clover Network, Inc. | Secure point of sale terminal and associated methods |
| US20180012024A1 (en) * | 2015-01-30 | 2018-01-11 | Hewlett-Packard Development Company, L.P. | Processor state determination |
| CN106155940A (zh) * | 2015-04-17 | 2016-11-23 | 扬智科技股份有限公司 | 可保护代码的系统芯片与系统芯片的代码保护方法 |
| US10049215B2 (en) * | 2015-09-15 | 2018-08-14 | The Johns Hopkins University | Apparatus and method for preventing access by malware to locally backed up data |
| CN105790927B (zh) | 2016-02-26 | 2019-02-01 | 华为技术有限公司 | 一种总线分级加密系统 |
| US10289853B2 (en) * | 2016-03-31 | 2019-05-14 | Microsoft Technology Licensing, Llc | Secure driver platform |
| CN106445641B (zh) * | 2016-11-02 | 2020-11-06 | 深圳前海生生科技有限公司 | 一种离散计算节点上安全虚拟平台间的数据迁移方法 |
| US10417458B2 (en) * | 2017-02-24 | 2019-09-17 | Microsoft Technology Licensing, Llc | Securing an unprotected hardware bus |
| US11055401B2 (en) * | 2017-09-29 | 2021-07-06 | Intel Corporation | Technologies for untrusted code execution with processor sandbox support |
| JP6762924B2 (ja) * | 2017-12-01 | 2020-09-30 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
| US20190332814A1 (en) * | 2018-04-27 | 2019-10-31 | Nxp B.V. | High-throughput privacy-friendly hardware assisted machine learning on edge nodes |
| US10762244B2 (en) * | 2018-06-29 | 2020-09-01 | Intel Corporation | Securely exposing an accelerator to privileged system components |
| CN109325345B (zh) * | 2018-09-21 | 2022-10-28 | 百度在线网络技术(北京)有限公司 | 用于在沙盒环境中运行第三方代码的方法和装置 |
| WO2020243362A1 (en) * | 2019-05-29 | 2020-12-03 | The Regents Of The University Of California | Methods, systems, and devices for trusted execution environments and secure data processing and storage environments |
| CN110430263B (zh) * | 2019-08-05 | 2022-07-05 | 中国工商银行股份有限公司 | 一种增值业务处理系统及方法 |
| US10997286B1 (en) * | 2020-06-02 | 2021-05-04 | Snowflake Inc. | Secure code execution in a database system |
| JP2022114391A (ja) * | 2021-01-26 | 2022-08-05 | 京セラドキュメントソリューションズ株式会社 | 電子機器 |
| TWI820434B (zh) * | 2021-06-17 | 2023-11-01 | 新唐科技股份有限公司 | 參數檢查系統及參數檢查方法 |
| TWI826796B (zh) | 2021-06-17 | 2023-12-21 | 新唐科技股份有限公司 | 資安保護系統及資安保護方法 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6199167B1 (en) * | 1998-03-25 | 2001-03-06 | Compaq Computer Corporation | Computer architecture with password-checking bus bridge |
| US6092202A (en) * | 1998-05-22 | 2000-07-18 | N*Able Technologies, Inc. | Method and system for secure transactions in a computer system |
| US7290284B1 (en) * | 1999-01-11 | 2007-10-30 | Myspace Ab | System for data processing a security critical activity |
| US7360253B2 (en) * | 2004-12-23 | 2008-04-15 | Microsoft Corporation | System and method to lock TPM always ‘on’ using a monitor |
| US8090919B2 (en) * | 2007-12-31 | 2012-01-03 | Intel Corporation | System and method for high performance secure access to a trusted platform module on a hardware virtualization platform |
| US7779252B2 (en) * | 2006-03-21 | 2010-08-17 | Harris Corporation | Computer architecture for a handheld electronic device with a shared human-machine interface |
| US8082551B2 (en) * | 2006-10-30 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | System and method for sharing a trusted platform module |
| US7986786B2 (en) * | 2006-11-30 | 2011-07-26 | Hewlett-Packard Development Company, L.P. | Methods and systems for utilizing cryptographic functions of a cryptographic co-processor |
| US7827371B2 (en) * | 2007-08-30 | 2010-11-02 | Intel Corporation | Method for isolating third party pre-boot firmware from trusted pre-boot firmware |
| US7827326B2 (en) * | 2007-11-26 | 2010-11-02 | Alcatel-Lucent Usa Inc. | Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral |
| US8332660B2 (en) * | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
| KR20100124052A (ko) * | 2009-05-18 | 2010-11-26 | 삼성전자주식회사 | 플랫폼에 비종속적인 보안 환경 제공 장치 및 방법 |
| US8627451B2 (en) * | 2009-08-21 | 2014-01-07 | Red Hat, Inc. | Systems and methods for providing an isolated execution environment for accessing untrusted content |
| US9684785B2 (en) * | 2009-12-17 | 2017-06-20 | Red Hat, Inc. | Providing multiple isolated execution environments for securely accessing untrusted content |
| US8826039B2 (en) * | 2010-02-02 | 2014-09-02 | Broadcom Corporation | Apparatus and method for providing hardware security |
| US8751781B2 (en) | 2010-05-28 | 2014-06-10 | Dell Products, Lp | System and method for supporting secure subsystems in a client hosted virtualization system |
| US8639923B2 (en) * | 2010-05-28 | 2014-01-28 | Dell Products, Lp | System and method for component authentication of a secure client hosted virtualization in an information handling system |
| TWI465916B (zh) | 2010-09-01 | 2014-12-21 | Tatung Co | 異質雙核心之非對稱傳輸系統與方法 |
| US8931042B1 (en) * | 2010-12-10 | 2015-01-06 | CellSec, Inc. | Dividing a data processing device into separate security domains |
| US9218490B2 (en) * | 2011-12-30 | 2015-12-22 | Intel Corporation | Using a trusted platform module for boot policy and secure firmware |
| US9256734B2 (en) | 2012-04-27 | 2016-02-09 | Broadcom Corporation | Security controlled multi-processor system |
-
2012
- 2012-06-07 US US13/491,309 patent/US9256734B2/en active Active
- 2012-12-14 TW TW101147559A patent/TWI584152B/zh not_active IP Right Cessation
- 2012-12-27 EP EP12008619.4A patent/EP2657879B1/en active Active
- 2012-12-31 CN CN201210592637.5A patent/CN103377349B/zh active Active
-
2015
- 2015-12-31 US US14/985,697 patent/US9910990B2/en active Active
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI560578B (zh) * | 2013-11-26 | 2016-12-01 | Chunghwa Telecom Co Ltd | |
| TWI509461B (zh) * | 2014-03-17 | 2015-11-21 | Hiti Digital Inc | 耗材管理方法及其設備 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN103377349A (zh) | 2013-10-30 |
| EP2657879B1 (en) | 2017-03-15 |
| US9256734B2 (en) | 2016-02-09 |
| CN103377349B (zh) | 2017-04-26 |
| US20130291053A1 (en) | 2013-10-31 |
| TWI584152B (zh) | 2017-05-21 |
| EP2657879A2 (en) | 2013-10-30 |
| EP2657879A3 (en) | 2014-03-26 |
| US9910990B2 (en) | 2018-03-06 |
| US20160117506A1 (en) | 2016-04-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI584152B (zh) | 用於電腦安全的系統及其方法 | |
| JP4982825B2 (ja) | コンピュータおよび共有パスワードの管理方法 | |
| CN108140094B (zh) | 用于安全可信i/o访问控制的技术 | |
| TWI431533B (zh) | 微處理器系統及用以初始化安全操作之方法與處理器 | |
| US8213618B2 (en) | Protecting content on client platforms | |
| KR100611687B1 (ko) | 멀티-토큰 실 및 실 해제 | |
| CN103282912B (zh) | 用于限制对位置信息的访问的方法和装置以及计算平台 | |
| CN105046163B (zh) | 保护嵌入式管理程序系统中的重要数据结构 | |
| Brasser et al. | Regulating arm trustzone devices in restricted spaces | |
| CN116049825A (zh) | 管理基板管理控制器的存储器中的秘密的存储 | |
| CN100435063C (zh) | 带加密协处理器的装置 | |
| US20060036851A1 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
| Arfaoui et al. | Trusted execution environments: A look under the hood | |
| Ménétrey et al. | An exploratory study of attestation mechanisms for trusted execution environments | |
| US10897359B2 (en) | Controlled storage device access | |
| JP2005531086A (ja) | スリープ攻撃からの保護 | |
| TW201411405A (zh) | 保護多安全cpu之計算系統及其方法 | |
| Sadeghi et al. | Taming “trusted platforms” by operating system design | |
| Yuhala et al. | Fortress: Securing iot peripherals with trusted execution environments | |
| Götzfried et al. | Mutual authentication and trust bootstrapping towards secure disk encryption | |
| US20250258964A1 (en) | Continuous impairment of a chip upon detecting a damaged package | |
| Brasser et al. | Softer Smartcards: Usable Cryptographic Tokens with Secure Execution | |
| Park et al. | CAFE: A virtualization-based approach to protecting sensitive cloud application logic confidentiality | |
| Iannillo et al. | An REE-independent approach to identify callers of TEEs in TrustZone-enabled cortex-M devices | |
| US20250190596A1 (en) | Techniques for enforcing access control policies for application-specific integrated circuits (asics) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |