TWI584152B - 用於電腦安全的系統及其方法 - Google Patents

用於電腦安全的系統及其方法 Download PDF

Info

Publication number
TWI584152B
TWI584152B TW101147559A TW101147559A TWI584152B TW I584152 B TWI584152 B TW I584152B TW 101147559 A TW101147559 A TW 101147559A TW 101147559 A TW101147559 A TW 101147559A TW I584152 B TWI584152 B TW I584152B
Authority
TW
Taiwan
Prior art keywords
security
processor
secure
processing system
system
Prior art date
Application number
TW101147559A
Other languages
English (en)
Other versions
TW201344494A (zh
Inventor
馬克 羅 布林
雅各 曼得爾
Original Assignee
恩智浦股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US201261639394P priority Critical
Priority to US13/491,309 priority patent/US9256734B2/en
Application filed by 恩智浦股份有限公司 filed Critical 恩智浦股份有限公司
Publication of TW201344494A publication Critical patent/TW201344494A/zh
Application granted granted Critical
Publication of TWI584152B publication Critical patent/TWI584152B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

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 (9)

  1. 一種電腦安全系統,包括:安全處理系統,包括:硬體儲存保護單元,被構造為限制對所述安全處理系統的存取;安全記憶體,被構造為儲存安全策略;以及安全處理器,被構造為執行安全代碼,其中,所述安全處理器被構造為基於所述安全策略確定是否准許存取由所述安全處理系統提供的安全服務的請求;以及第一處理器,與所述安全處理系統和安全系統週邊設備隔離,其中,所述第一處理器與所述安全處理系統係耦接於一共用記憶體,且其中,所述第一處理器被構造為:在所述安全處理器的指示下執行代碼;以及將存取所述安全服務的所述請求放入所述共用記憶體中;其中,所述安全處理器係進一步用以打開與關閉所述安全處理系統與一非安全週邊設備之間的複數個資料通道。
  2. 根據申請專利範圍第1項所述的電腦安全系統,其中,所述安全處理系統進一步包括隔離橋,所述隔離橋被構造為將所述安全處理系統耦接至所述非安全週邊設備,其中,所述安全處理器進一步被構造為基於所述安全策略確定是否指示所述隔離橋將所述安全處理系統耦接至所述非安全週邊設備。
  3. 根據申請專利範圍第2項所述的電腦安全系統,其中,所述安全處理器進一步被構造為指示所述隔離橋將所述共用記憶體耦接至所述非安全週邊設備以使所述代碼能夠載入到所述共用記憶體中。
  4. 根據申請專利範圍第2項所述的電腦安全系統,其中,所述硬體儲存保護單元透過執行沙盒限制存取所述安全處理系統,其中,所述沙盒包括記憶體、所述第一處理器和所述共用記憶體。
  5. 一種電腦安全系統,包括:第一處理器;以及安全處理系統,包括:安全記憶體,儲存安全策略;隔離橋,被構造為將非安全週邊設備耦接至所述安全處理系統;以及安全處理器,其中,所述安全處理器被構造為基於所述安全策略確定是否指示所述隔離橋將所述非安全週邊設備耦接至所述安全處理系統;以及硬體記憶體保護單元,被構造為將所述第一處理器與所述安全處理系統和安全系統週邊設備隔離;其中,所述第一處理器與所述安全處理系統係耦接於一共用記憶體,且所述第一處理器耦接一記憶體。
  6. 根據申請專利範圍第5項所述的電腦安全系統,其中,所述硬體記憶體保護單元進一步被構造為將所述第一處理器和所述共用記憶體與所述安全處理系統和所述安全系統週邊設備隔離。
  7. 根據申請專利範圍第5項所述的電腦安全系統,其中,所述硬體記憶體保護單元透過在所述記憶體、所述第一處理器和所述共用記憶體周圍執行沙盒將所述第一處理器與所述安全處理系統和所述安全系統週邊設備隔離。
  8. 一種電腦安全方法,包括:利用安全處理器檢測對安全服務的第一請求,其中,透過與所述安全處理器物理隔離的非安全處理器將所述第一請求放入共用記憶體中,其中,所述第一處理器與所述安全處理系統係耦接於所述共用記憶體;利用所述安全處理器分析儲存的安全策略以確定是否准許所述第一請求;以及 回應於應當准許所述第一請求的確定:利用所述安全處理器處理所述第一請求;以及將回應放入所述共用記憶體中。
  9. 根據申請專利範圍第8項所述的電腦安全方法,進一步包括:從安全監控器接收表明已經出現對所述安全處理器的試圖攻擊的資訊;以及回應於接收所述資訊確定不應當准許所述第一請求。
TW101147559A 2012-04-27 2012-12-14 用於電腦安全的系統及其方法 TWI584152B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US201261639394P true 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 TW201344494A (zh) 2013-11-01
TWI584152B true 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)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
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
TWI560578B (zh) * 2013-11-26 2016-12-01 Chunghwa Telecom Co Ltd
EP2894588B1 (en) * 2014-01-13 2018-08-15 Nxp B.V. Data processing device, method for executing an application and computer program product
TWI509461B (zh) * 2014-03-17 2015-11-21 Hiti Digital Inc 耗材管理方法及其設備
US20150341362A1 (en) * 2014-04-02 2015-11-26 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
US10417458B2 (en) * 2017-02-24 2019-09-17 Microsoft Technology Licensing, Llc Securing an unprotected hardware bus
JP2019101750A (ja) * 2017-12-01 2019-06-24 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290284B1 (en) * 1999-01-11 2007-10-30 Myspace Ab System for data processing a security critical activity
TW201211771A (en) * 2010-09-01 2012-03-16 Tatung Co Asymmetric transport system and method of heterogeneous dual-core

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
US7360253B2 (en) * 2004-12-23 2008-04-15 Microsoft Corporation System and method to lock TPM always ‘on’ using a monitor
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
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
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
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
US8751781B2 (en) 2010-05-28 2014-06-10 Dell Products, Lp System and method for supporting secure subsystems in a client hosted virtualization system
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290284B1 (en) * 1999-01-11 2007-10-30 Myspace Ab System for data processing a security critical activity
TW201211771A (en) * 2010-09-01 2012-03-16 Tatung Co Asymmetric transport system and method of heterogeneous dual-core

Also Published As

Publication number Publication date
CN103377349B (zh) 2017-04-26
CN103377349A (zh) 2013-10-30
US9256734B2 (en) 2016-02-09
US20160117506A1 (en) 2016-04-28
EP2657879A2 (en) 2013-10-30
EP2657879A3 (en) 2014-03-26
US9910990B2 (en) 2018-03-06
EP2657879B1 (en) 2017-03-15
TW201344494A (zh) 2013-11-01
US20130291053A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
US10635807B2 (en) Method and system for preventing and detecting security threats
JP6484255B2 (ja) 信頼実行環境を含むホストのアテステーション
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
Brasser et al. TyTAN: tiny trust anchor for tiny devices
US10366237B2 (en) Providing a trusted execution environment using a processor
JP5060652B2 (ja) 呼び出しプログラムについての秘密の封印解除方法
JP5670578B2 (ja) 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
Sgandurra et al. Evolution of attacks, threat models, and solutions for virtualized systems
Parno et al. Bootstrapping trust in modern computers
Strackx et al. Efficient isolation of trusted subsystems in embedded systems
JP5378460B2 (ja) 状態検証を使用した保護されたオペレーティングシステムブートのためのシステムおよび方法
Suh et al. AEGIS: A single-chip secure processor
Zhou et al. Building verifiable trusted path on commodity x86 computers
Garriss et al. Trustworthy and personalized computing on public kiosks
JP5607546B2 (ja) 保護された動作モードの間にシステムアクセスを制御するための方法および装置
EP1980970B1 (en) Dynamic trust management
CN1581073B (zh) 用于从可信环境到不可信环境的可信性投影的方法和系统
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
JP4089171B2 (ja) 計算機システム
Jang et al. SeCReT: Secure Channel between Rich Execution Environment and Trusted Execution Environment.
JP5475475B2 (ja) プログラム実行装置、制御方法、制御プログラム及び集積回路
TWI394076B (zh) 提供安全執行環境之裝置、微處理器裝置、以及在安全執行環境中執行安全編碼之方法
US8843769B2 (en) Microcontroller with embedded secure feature
Koeberl et al. TrustLite: A security architecture for tiny embedded devices
CN103038745B (zh) 扩展完整性测量