TW202121218A - 安全子系統的存取過濾器 - Google Patents

安全子系統的存取過濾器 Download PDF

Info

Publication number
TW202121218A
TW202121218A TW109139701A TW109139701A TW202121218A TW 202121218 A TW202121218 A TW 202121218A TW 109139701 A TW109139701 A TW 109139701A TW 109139701 A TW109139701 A TW 109139701A TW 202121218 A TW202121218 A TW 202121218A
Authority
TW
Taiwan
Prior art keywords
state
processor
access
transactions
state machine
Prior art date
Application number
TW109139701A
Other languages
English (en)
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
Application filed by 美商賽納波狄克公司 filed Critical 美商賽納波狄克公司
Publication of TW202121218A publication Critical patent/TW202121218A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本發明揭示一種處理系統,其包括一處理器、一第一記憶體、設置成在多個狀態之間轉變的一狀態機以及一存取過濾器。該第一記憶體儲存可由該處理器執行的指令,其中該等指令的執行使該處理器啟動與一或多個硬體資源的交易。該存取過濾器可通過至少部分基於該狀態機的一當前狀態,來選擇性拒絕對硬體資源的存取,以過濾由該處理器發起的該等交易。該存取過濾器也可通過至少部分根據該狀態機的當前狀態,過濾由一或多個該等硬體資源起始的交易。

Description

安全子系統的存取過濾器
本具體實施例一般係關於安全處理系統及方法。
許多電子系統和裝置具有設計用於儲存和執行高敏感度程式碼及/或資料(例如,韌體、軟體、加密金鑰等)的安全子系統。範例安全子系統可包括唯讀記憶體(ROM)、安全中央處理單元(CPU)和一或多個加密加速器。在系統開機操作期間,該安全CPU可擷取並執行ROM中儲存的程式碼,以驗證裝置硬體及/或載入並初始化作業系統(OS)。安全CPU可在執行此類韌體或軟體之前,使用該加密加速器來幫助解密及/或認證儲存在外部記憶體(例如快閃記憶體、通用序列匯流排(USB)磁碟或其他非揮發性儲存裝置)內的韌體或軟體。在系統開機操作結束時,安全CPU將電子系統的控制權交給該OS,該控制權可由主機CPU執行。
為了防止對敏感程式碼及/或資料的未授權存取,可將安全子系統與電子系統的其他組件(例如主機處理器、外部記憶體、輸入裝置等)隔離或物理隔離。但是,僅物理隔離可能無法使安全子系統不受外部環境中惡意程式碼的攻擊。
此「發明內容」係用來介紹在一簡化型式中的概念選擇,其在以下的「實施方式」中會進一步說明。此「發明內容」並不在於說明所主張主題的關鍵特色或基本特色,也不在於用來限制所主張主題的範圍。
本發明揭示一種用於安全處理之方法及設備。本發明標的的一個創新態樣可在包括處理器、第一記憶體、設置成在多個狀態之間轉換的狀態機以及存取過濾器之處理系統中實現。該第一記憶體儲存可由該處理器執行的指令,其中該等指令的執行使該處理器啟動與一或多個硬體資源的交易。該存取過濾器設置成通過至少部分根據該狀態機的當前狀態,利用選擇性拒絕對該硬體資源的存取來過濾該等交易。
在以下描述中,闡述許多特定細節,例如特定組件、電路和處理的範例,以對本發明有透徹的理解。如本文所用,術語「耦合」係指直接連接或通過一或多個中間組件或電路連接。另外,在以下描述中並且針對解釋的目的,闡述特定術語以提供對本發明態樣的透徹理解。但是,精通技術人士應該了解,這些特定細節並不需要實踐該等範例具體實施例。在其他實例中,已知的電路與裝置都以方塊圖形式來顯示,以避免模糊本發明。某些詳細說明部分都以可在電腦記憶體上執行的資料位元上操作之程序、邏輯區塊、處理以及其他符號表示之方式來呈現。電路元件或軟體區塊之間的互連可顯示為匯流排或單一信號線,每個匯流排可替代為單一信號線,並且每個單一信號線可替代為匯流排,並且單一線或匯流排可代表用於組件之間通訊的多種物理或邏輯機制中之任何一或多者。
除非特別說明,否則從下列討論中可瞭解,整個說明書的討論運用像是「存取」、「接收」、「傳送」、「使用」、選擇」、「決定」、「規範化」、「相乘」、「平均」、「監視」、「比較」、「應用」、「更新」、「測量」、「獲取」等詞來表示電腦系統或類似電子計算裝置的動作以及處理,其操縱以及轉換代表電腦系統暫存器以及記憶體內物理(電子)量的資料成為類似代表電腦系統記憶體、暫存器或其他這種資訊儲存、傳輸或顯示裝置內物理量的其他資料。
除非特別描述為以特定方式實現,否則本文描述的技術可以硬體、軟體、韌體或其任意組合來實現。描述為模組或組件的任何特徵也可一起在整合式邏輯裝置中實現,或者分別作為離散但可相互操作的邏輯裝置來實現。如果以軟體實施,則所述技術可至少部分由包括指令的非暫態電腦可讀取儲存媒體來實現,當執行該等指令時,執行上述一或多種方法。非暫態電腦可讀取儲存媒體可以形成電腦程式產品的一部分,其可包括封裝材料。
該非揮發性處理器可讀取的儲存媒體可包括隨機存取記憶體(RAM),例如同步動態隨機存取記憶體(SDRAM)、唯讀記憶體(ROM)、非揮發性隨機存取記憶體(NVRAM)、電可抹除可編程唯讀記憶體(EEPROM)、快閃記憶體、其他已知的儲存媒體等。另外或替代,該技術可至少部分通過處理器可讀取通訊媒體來實現,其以指令或資料結構形式攜帶或傳遞程式碼,並且該等程式碼可由電腦或其他處理器來存取、讀取及/或執行。
結合本文所揭示具體實施例描述的各種例示性邏輯區塊、模組、電路和指令可由一或多個處理器執行。如本文所用,術語「處理器」可指能夠執行儲存在記憶體中的一或多個軟體程式中描述檔或指令之任何通用處理器、常規處理器、控制器、微控制器及/或狀態機。
圖1根據一些具體實施例,顯示一電子系統100之方塊圖。範例合適的電子系統可包括但不限於個人計算裝置(例如,桌上型電腦、膝上型電腦、上網電腦、平板電腦、網頁瀏覽器、電子書閱讀器和個人數字助理(PDA))、複合輸入裝置(例如,實體鍵盤、搖桿和按鍵開關)、資料輸入裝置(例如,遙控器和滑鼠)、資料輸出裝置(例如,顯示螢幕和印表機)、遠程終端機、資訊亭、電視遊樂器(例如,電視遊樂控制台、攜帶式遊戲裝置等)、通訊裝置(例如智慧型電話這類行動電話)及/或媒體裝置(例如,記錄器、編輯器和播放器,例如電視、機上盒、音樂播放器、數位相框和數位相機)。
系統100包括主機中央處理單元(CPU) 110、記憶體120、一或多個裝置130以及安全子系統140。主機CPU 110可包括設置成執行一或多個應用程式及/或作業系統的一或多個通用處理器。記憶體120可儲存由主機CPU 110存取或執行的資料及/或指令。裝置130可包括駐留在或耦合至電子系統100的任何其他硬體資源。範例裝置可包括但不限於鍵盤、滑鼠、搖桿、相機、電容感測器、觸控板、指紋感測器、麥克風、音訊記錄裝置、顯示器、數據機及/或無線電設備。
在一些實施當中,主機CPU 110可設置成操作一安全狀態或一非安全狀態。例如,當從一受信任執行環境(TEE)執行應用程式及/或處理時,主機CPU 110可在安全狀態下操作,而當從一富執行環境(REE)執行應用程式及/或處理時,主機CPU 110可在非安全狀態下操作。該TEE可與該REE物理及/或虛擬分開(例如,隔離)。根據正在執行的應用程式或指令,一或多個裝置130還可設置成在安全狀態及/或非安全狀態下操作。例如,能夠代表一或多個受信任應用程式執行或處理指令的任何硬體資源都可設置成在安全狀態下操作。另一方面,不能代表任何受信任應用程式執行或處理指令的硬體資源則設置成只能在非安全狀態下操作。
在一些實施當中,記憶體120可包括用於儲存受保護資料的一安全分割。受保護資料的範例可包括但不限於使用者資料(例如,搜尋輸入、描述檔資訊、內容選擇、生物特徵輸入等)、高級媒體內容(例如,電視節目、電影、音樂等)或可能受數位版權管理(DRM)、版權或其他法律及/或法規保護的其他媒體內容。由於受保護資料的保密性及/或敏感性,因此TEE外部的軟體及/或硬體可能無法存取安全儲存分割。此外,可限制從TEE內部執行的應用程式將受保護的資料傳送到REE。
針對可能對電子系統100操作至關重要的高敏感度程式碼及/或資料,安全子系統140提供額外安全層(layer of security)。這種程式碼及/或資料的範例可包括但不限於韌體、軟體、加密金鑰等。在一些實施中,安全子系統140可在物理上與電子系統100的其餘部分分割或以其他方式隔離,使得安全子系統140外部的硬體資源(包括主機CPU 110及/或裝置130)沒有直接存取或控制安全子系統140中任何硬體資源。更具體來說,安全子系統140可設置成使得儲存在其中的任何程式碼及/或資料僅可由作為安全子系統140的一部分或駐留在其中的其他硬體資源存取。
安全子系統140包括安全CPU 142、安全記憶體144和一或多個安全週邊146。安全CPU 142可包括設置成執行軟體及/或韌體指令的一或多個通用處理器。安全記憶體144可儲存要由安全CPU 142及/或一或多個安全週邊146存取或執行之資料和指令(例如,韌體、軟體、加密金鑰等)。安全週邊146可包括在安全CPU 142控制之下的任何裝置及/或電路,例如:安全CPU 142可指示安全週邊146執行許多任務。範例性的安全週邊146可包括但不限於直接記憶體存取(DMA)引擎、密碼加速器、金鑰梯(key ladders)以及輸入和輸出(I/O)介面。
在一些實施當中,安全子系統140可提供安全開機和執行時間安全服務給電子系統100。例如,在安全開機操作期間,安全CPU 142可擷取並執行儲存在安全記憶體144中的程式碼(例如,韌體),以驗證電子系統100的硬體資源並加載或初始化作業系統(OS)。在一些實施當中,安全記憶體144可包括唯讀記憶體(ROM)以及隨機存取記憶體(RAM)。起初該系統開機碼可儲存在ROM內,因此安全CPU 142可從ROM讀取該開機碼,並將該開機碼的一或多個部分載入至RAM中。安全CPU 142也可從外部記憶體(例如快閃記憶體、通用序列匯流排(USB)磁碟或其他非揮發性儲存裝置)載入該開機碼的一或多個部分。在一些實施當中,安全CPU 142可使用一或多個安全週邊146 (例如,密碼加速器)來解密及/或認證開機碼。一旦認證之後,安全CPU 142就可繼續執行該開機碼以驗證電子系統100的硬體資源。
在開機程序結束時,安全CPU 140將電子系統的控制權交給該OS (例如由主機CPU 110執行)。然後,安全CPU 142可從ROM或外部記憶體擷取不同的韌體及/或其他指令,以提供執行時間(runtime)安全服務。在一些電子系統中,韌體的切換可由安全CPU 142當前所執行的韌體來處理。例如,該開機碼可指示安全CPU 142在完成安全開機操作之後,載入用於執行時間安全服務的韌體。本發明態樣認識到,若通過允許裝置韌體切換到其他韌體,則該第一韌體可存取的硬體資源也可被該第二韌體存取。結果,對該第二韌體的攻擊可能損害安全子系統140的硬體資源,包括該第一韌體。
在一些具體實施例中,安全子系統140內的韌體切換可由硬體來處理,而與儲存在安全記憶體144中及/或由安全CPU 142執行的任何韌體無關。因此,如果一個韌體受損,則硬體型安全功能仍可防止受損韌體存取安全子系統140中的其他韌體及/或關聯資料。以這種方式,本具體實施例可為駐留在安全子系統140內的敏感程式碼及/或資料提供甚至更大的保護。
在一些具體實施例中,當實現一執行時間安全個性化時,硬體型個性化控制器可允許安全CPU 142僅存取與執行時間安全服務相關聯的ROM程式碼。更具體來說,該執行時間安全個性化可限制該執行時間安全服務韌體存取來自該安全開機操作的該開機碼及/或任何剩餘資料。因此,如果該執行時間安全服務韌體受損,則仍可防止受損韌體存取安全開機韌體和關聯資料。因此,通過使用硬體(而不是韌體)來控制韌體切換,本具體實施例可為駐留在安全子系統140內的高敏感度程式碼及/或資料提供甚至更高的安全性。
圖2根據一些具體實施例,顯示一安全子系統200之方塊圖。安全子系統200可為圖1中安全子系統140的一個具體實施例。如此,安全子系統200可設置成保護對電子系統(例如圖1的電子系統100)操作至關重要的敏感程式碼及/或資料。
安全子系統200包括一處理器210、一或多個安全週邊220、一外部匯流排230、一記憶體240和一個性化控制器250。處理器210、安全週邊220和記憶體240可為圖1中安全處理器142、安全週邊146和安全記憶體144的各個具體實施例。例如,處理器210可設置成代表安全子系統200執行軟體及/或韌體指令,記憶體240可儲存將由處理器210及/或安全週邊220執行的資料和指令,並且安全週邊220可在處理器210的控制下執行各種任務。在圖2的具體實施例內,記憶體240包括ROM 242和RAM 244。外部匯流排230可在安全子系統200和一或多個外部硬體資源(諸如圖1的主機CPU 110、記憶體120及/或裝置130)之間提供通訊介面。
在一些具體實施例中,個性化控制器250可至少部分基於安全子系統200的「個性化(personality)」來選擇性過濾各種硬體資源210-240間之交易。更具體而言,安全子系統200可設置成針對許多不同個性化來操作。每一個性化都可定義一組對硬體存取及/或韌體執行之限制。在一些態樣當中,個性化控制器250可初始成一安全開機個性化。當設置為安全開機個性化時,個性化控制器250可允許處理器210僅存取儲存在記憶體240中的開機碼。例如,處理器210可從ROM 242或外部記憶體(為簡單起見未示出)擷取該開機碼,並將該開機碼載入RAM 244。個性化控制器250還可允許處理器210及/或安全週邊220認證或執行來自RAM 244的該開機碼。但是,個性化控制器250可能拒絕或以其他方式禁止存取ROM 242中儲存的其他韌體(例如與執行時間安全服務關聯的韌體)之任何嘗試。
當安全開機操作完成時,處理器210可通過個性化控制器250請求改變個性化。個性化控制器250可至少部分基於其硬體組態來接受或拒絕該請求。在一些具體實施例中,個性化控制器250可在硬體內預先設置,來在有限數量的狀態(例如個性化)下操作。各種狀態之間的轉變也可預定義。因此,某些狀態轉變可能有效,而其他狀態轉變可能無效。僅當所請求的個性化改變與硬體中的有效狀態轉變相關聯時,個性化控制器250才可實施新個性化。否則,個性化控制器250將退回處理器210所請求的個性化變更。
例如,個性化控制器250可支援從安全開機個性化到執行時間安全個性化的狀態轉變。在接收到轉變成執行時間安全個性化的請求時,個性化控制器250可從RAM 244清除該開機碼,包括對於執行時間安全服務非必需的任何關聯資料。這可能會阻止該執行時間安全服務韌體存取來自該安全開機操作的該開機碼及/或任何剩餘資料。個性化控制器250可進一步重設處理器210,並調整該重設向量(vector)以指向ROM 242中所儲存的該執行時間安全服務韌體之地址。
然後,個性化控制器250可從安全開機個性化轉變為執行時間安全個性化。在一些具體實施例中,此狀態轉變可為單向轉變。換句話說,一旦個性化控制器250開始實現該執行時間安全個性化,就可能不會轉變回到該安全開機個性化。該執行時間安全個性化可允許處理器210僅存取和執行該執行時間安全服務韌體。更具體來說,個性化控制器250可防止該執行時間安全服務韌體存取來自該安全開機操作的該開機碼及/或任何剩餘資料。因此,如果該執行時間安全服務韌體受損,則個性化控制器250可防止該安全開機韌體和關聯資料也受損。
儘管本文的範例涉及安全開機個性化和執行時間安全個性化,但是本具體實施例可用於以任何粒度(granularity)等級來定義狀態及/或個性化。例如,在一些具體實施例中,安全開機操作的各個步驟可與不同的個性化相關聯。因此,個性化控制器250可在完成安全開機操作之前通過多個個性化轉變。
圖3根據一些具體實施例,顯示個性化控制器300之方塊圖。個性化控制器300可為圖2中個性化控制器250的一個具體實施例。因此,個性化控制器300可過濾安全子系統(為簡單起見未示出)的各種硬體資源間之交易。在一些具體實施例中,個性化控制器300可至少部分基於安全子系統的個性化來過濾該等交易。
個性化控制器300包括一狀態機310、一存取過濾器320、一清除(clear)記憶體模組330和一信箱340。狀態機310可為以硬體實現的有限狀態機,例如:狀態機310可包括耦合到多個正反器的組合邏輯。該等正反器可儲存狀態機310的各種狀態,並且該組合邏輯可用於定義各種狀態之間的轉變。在一些具體實施例中,狀態機310可進行硬編碼,以實現多個預定義狀態和狀態轉變。在一些其他具體實施例中,狀態機310可在狀態機310及/或個性化控制器300初始化時擷取狀態機組態資料312。例如,狀態機組態資料312可儲存在安全記憶體(諸如圖2的ROM 242)中。狀態機組態資料312可定義狀態機310的各種狀態及/或狀態轉變。
在一些態樣中,狀態機310可輸出與其當前狀態相關聯的狀態識別(ID)信號302。狀態機310的每個狀態都可對應於個性化控制器300的不同個性化。如上述,每一個性化都可定義一組對硬體存取及/或韌體執行之限制。因此,在一些態樣中,每當狀態機310已初始化及/或轉變到新狀態時,狀態機310可擷取一組存取過濾器組態資料314。例如,存取過濾器組態資料314可儲存在安全記憶體(諸如圖2的ROM 242)中。每組存取過濾器組態資料314都可針對不同個性化定義該硬體存取限制。在一些態樣中,狀態機310可例如將存取過濾器組態資料314轉送至存取過濾器320,以實施針對當前個性化的硬體存取限制。
存取過濾器320可使用從狀態機310接收的存取過濾器組態資料314,來過濾安全子系統的硬體資源(例如,圖2的處理器210、安全週邊220、外部匯流排230和記憶體240)之間的交易322。例如,可將安全子系統內的所有交易322路由通過存取過濾器320。因此,存取過濾器320可當成安全子系統的各種硬體資源間之存取控制代理。在一些具體實施例中,存取過濾器320可至少部分基於狀態機310的當前狀態,來選擇性允許或拒絕交易322。例如,存取過濾器320可根據狀態機310的當前狀態,來接收不同組的存取過濾器組態資料314。在一些具體實施例中,存取過濾器320可至少部分基於每一交易內含的資訊來過濾交易322。
例如參考圖4,硬體存取交易400可包括一交易類型410、一目標地址420、一發起者識別碼(ID)430和安全資訊440。硬體存取交易400可為圖3中交易322的一個具體實施例。交易類型410包括交易400所喚起的操作類型(例如讀取或寫入)。目標地址420指示用於預期操作的目標之物理或虛擬位置(例如,記憶體地址)。發起者ID 430可為發起交易400的硬體資源之地址或其他識別特徵。安全資訊440指示發起交易400的硬體資源之安全狀態。在一些實施中,安全資訊440可包括指示在啟動交易400時硬體資源是處於安全狀態還是非安全狀態之單一資料位元。
存取過濾器組態資料314可基於交易類型410、目標地址420、發起者ID 430、安全資訊440或其任意組合,定義用於過濾每個交易400的一組規則。例如,存取過濾器320通常可拒絕由針對安全子系統內硬體資源的外部裝置(例如,安全子系統之外)所發起之任何交易400。存取過濾器組態資料314還可定義用於過濾安全子系統內交易400的更詳細的一組規則。例如,存取過濾器320可拒絕任何嘗試從與當前個性化以外的個性化相關聯之安全記憶體中讀取資料(例如ROM程式碼)的交易400。因此,在安全子系統內允許及/或限制的交易400之操作類型410、目標地址420、發起者ID 430及/或安全狀態440可動態改變,以回應狀態機310的狀態改變。
請回頭參閱圖3,狀態機310可回應由位於安全子系統內的安全處理器(諸如圖1的安全CPU 142或圖2的處理器210)所發起的狀態改變請求316來改變狀態。只有若存在至新狀態的有效轉變時(例如,如由狀態機組態資料312所定義),狀態機310可實現該狀態改變。如果不存在從當前狀態至新狀態的有效轉變,則狀態機310可拒絕狀態改變請求316。另一方面,如果存在從當前狀態至新狀態的有效轉變,則狀態機310可在轉變到新狀態之前清除個性化控制器300及/或安全子系統中的一或多個暫存器。
在一些具體實施例中,狀態機310可輸出清除命令304和306,以分別清除儲存在安全記憶體(例如,圖2的RAM 244)及/或信箱340中該資料的至少一部分。在回應清除命令304上,清除記憶體模組330可清除或抹除安全記憶體的一部分。例如,清除記憶體模組330可使用記憶體清除信號332,來抹除或覆蓋儲存在安全記憶體中的資料。在一些具體實施例中,清除命令304可指定記憶體地址要清除的特定範圍(或多個範圍)。例如,清除記憶體模組330可清除RAM 244中儲存用於當前個性化的韌體,以及對於與狀態轉變相關聯的下一個性化可能不必要的任何相關資料。這可防止與下一個性化相關聯的韌體存取或包括當前個性化的韌體。
信箱340在安全子系統內的硬體資源與安全子系統外部的硬體資源之間提供安全通訊介面。例如參考圖1,信箱340可促進安全處理器142與主機CPU 110或裝置130之間的通訊342。例如,信箱340可包括可由安全CPU 142、主機CPU 110及/或裝置130讀取及/或寫入的一組暫存器。在一些態樣中,信箱340可包括只能由安全CPU 142寫入並且可由外部裝置(例如主機CPU 110及/或裝置130)讀取的第一組暫存器,以及僅可由安全CPU 142讀取並由外部裝置寫入的第二組暫存器。在一些具體實施例中,信箱340可清除或抹除其一或多個暫存器,以回應清除命令306。這可防止與下一個性化相關聯的韌體存取與當前個性化有關的安全通訊。
在轉變到新狀態之前,狀態機310可進一步重設安全子系統的一或多個硬體資源。在一些具體實施例中,狀態機310可認定或啟動重設信號318,該信號提供給要重設的每一硬體資源。重設信號318可用於例如通過清除任何內部暫存器、記憶體等來重設處理器210及/或安全週邊220之內部狀態。在一些具體實施例中,在認定重設信號318的同時,狀態機310可用新的重設向量319對處理器210進行編程。重設向量319可特定於狀態機310的新狀態。例如,重設向量319可指向新的記憶體地址(例如,在ROM 242中),其中儲存有與新個性化相關聯之韌體或指令。因此,如果在狀態機310已轉變到新狀態之後處理器210隨後重設,則處理器210將不能重新載入與先前狀態相關聯的韌體或指令。
在清除暫存器並重設安全子系統的硬體資源之後,然後狀態機310可執行到新狀態的轉變。當轉變到新狀態時,狀態機310可獲取新的一組存取過濾器組態資料314並更新狀態ID信號302,以反映新狀態或個性化。新存取過濾器組態資料314可提供給存取過濾器320,以實現與新狀態相關聯的硬體存取規則或限制。最終,狀態機310可使重設信號318無效(de-assert),以使處理器210及/或使安全週邊220脫離重設狀態。這允許處理器210例如通過從重設向量319所指向的記憶體位置載入韌體,來開始執行與新狀態或個性化相關聯的指令。
圖5根據一些具體實施例,顯示一安全子系統500之更詳細方塊圖。安全子系統500可為圖1中安全子系統140及/或圖2中安全子系統200的一個具體實施例。如此,安全子系統500可設置成保護對電子系統(例如圖1的電子系統100)操作至關重要的敏感程式碼及/或資料。
安全子系統500包括一安全CPU 510、一或多個安全週邊520、一外部匯流排530、一一次可編程(OTP)記憶體540、ROM 550以及RAM 560和一個性化控制器570。安全CPU 510可為安全CPU 142及/或處理器210的一個具體實施例。個性化週邊520可為安全週邊146及/或安全週邊220的一個具體實施例。外部匯流排530可為外部匯流排230的一個具體實施例。OTP記憶體540、ROM 550和RAM 560可共同為安全記憶體144及/或記憶體240的具體實施例。更具體來說,ROM 550可為ROM 242的一個具體實施例,而RAM 560可為RAM 244的一個具體實施例。
個性化控制器570可為個性化控制器250及/或圖3中個性化控制器300的一個具體實施例。因此,個性化控制器570可至少部分基於一或多個預定義個性化來過濾安全子系統500的硬體資源510-560間之交易。每一個性化都可定義一組對硬體存取及/或韌體執行之限制。進一步,每一個性化可關聯於狀態機572的一相應狀態。在一些具體實施例中,個性化控制器570可向外部匯流排530輸出狀態ID信號532,以例如向一或多個外部硬體資源指示當前狀態或個性化。
狀態機572可用硬體實現(例如,作為正反器和組合邏輯的組合)。在一些具體實施例中,狀態機572可進行硬編碼,以實現多個預定義狀態和狀態轉變。在一些其他具體實施例中,許多個性化控制器570可使用狀態機(SM)組態資料554來設置狀態機572。例如,個性化控制器570可從ROM 550內的SM資料儲存553中擷取SM組態資料554。
在一些具體實施例中,SM組態資料554可指定狀態機572的所有可能狀態轉變。但是,對於安全子系統500的已知具體實施例,所有可能狀態轉變中只有一子集合有效。例如,為了節省成本,可在用於不同用途及/或不同最終使用者的各種電子系統中實現相同的安全子系統架構。但是,某些電子系統可能需要與其他電子系統不同的安全組態。更具體來說,可能適合於安全子系統500的特定實例之某些狀態及/或狀態轉變可能不適合於安全子系統500的其他不同實例。
在一些具體實施例中,個性化控制器570可從OTP記憶體540擷取SM修整資料(trimming data)542,以「修整」SM組態資料554。例如,SM修整資料542可特定於其中實現安全子系統500的特定電子系統。在一些態樣當中,SM修整資料542可指定於狀態機572的許多狀態間之一或多個無效狀態轉變。無效轉變可覆蓋或以其他方式消除SM組態資料554中指定的一或多個可能狀態轉變。因此,SM修整資料542可用於針對不同電子系統及/或應用程式來自訂狀態機572。
個性化控制器570可至少部分基於SM組態資料554及/或SM修整資料542,來確定狀態機572的初始狀態。當狀態機572已初始化及/或轉變到初始狀態時,個性化控制器570可擷取與初始狀態相關聯的一組存取過濾器(access filter、AF)組態資料556。例如,狀態機572可從ROM 550內的AF資料儲存555中擷取AF組態資料556。AF組態資料556可包括一組規則,這些規則在狀態機572的當前狀態下管理硬體存取限制。然後,個性化控制器570可根據AF組態資料556定義的規則,繼續過濾安全子系統500的各種硬體資源間之交易。
在一些具體實施例中,個性化控制器570可基於與狀態機572的當前狀態相關聯之AF組態資料556,來過濾由安全CPU 510發起的硬體存取交易516。例如,個性化控制器570可防止安全CPU 510存取可能與狀態機572的不同個性化或狀態相關之任何資料及/或指令。個性化控制器570還可防止安全CPU 510經由外部匯流排530,將資料及/或指令傳送至在狀態機572的當前個性化或狀態期間,不應存取此類資料或指令的任何外部裝置。
在一些具體實施例中,個性化控制器570可基於與狀態機572的當前狀態相關聯之AF組態資料556,來過濾由安全CPU 510發起的信箱通訊518。例如,個性化控制器570可防止安全CPU 510讀取及/或寫入駐留在個性化控制器570內信箱574的某些暫存器。如以上關於圖3所描述,信箱574可促進安全CPU 510與在外部匯流排530上通訊的一或多個外部裝置間之安全通訊。但是,在某些狀態下(例如,在安全開機期間),安全CPU 510不應與外部裝置進行任何通訊。因此,在一些態樣當中,個性化控制器570可根據狀態機572的當前個性化或狀態,來停用信箱574或拒絕信箱通訊518。
在一些具體實施例中,個性化控制器570可基於與狀態機572的當前狀態相關聯之AF組態資料556,來過濾由安全週邊520發起的硬體存取交易524。例如,個性化控制器570可防止安全週邊520存取在狀態機572的當前個性化或狀態期間這種安全週邊不應具有權限之任何資料及/或指令。個性化控制器570還可防止安全週邊520經由外部匯流排530,將資料及/或指令通訊至在狀態機572的當前個性化或狀態期間,不應存取此類資料或指令的任何外部裝置。
在一些具體實施例中,個性化控制器570可基於與狀態機572的當前狀態相關聯之AF組態資料556,來過濾以安全週邊520為目標的硬體存取交易526。例如,個性化控制器570通常可防止任何外部裝置經由外部匯流排530與任何安全週邊520通訊。個性化控制器570還可防止安全CPU 510將資料及/或指令通訊至在狀態機572的當前個性化或狀態期間,不應存取此類資料或指令的任何安全週邊520。
在一些具體實施例中,個性化控制器570可基於與狀態機572的當前狀態相關聯之AF組態資料556,來過濾以一或多個外部裝置為目標的硬體存取交易534。例如,在某些狀態下(例如,當提供執行時間安全服務時),可允許安全CPU 510及/或安全週邊520從外部記憶體讀取資料及/或指令。然而,在某些其他狀態下(例如,在安全開機期間),安全CPU 510或安全週邊520均不被允許與任何外部裝置通訊。
在一些具體實施例中,個性化控制器570可基於與狀態機572的當前狀態相關聯之AF組態資料556,來過濾由外部裝置發起的信箱通訊536。更具體來說,個性化控制器570可防止任何外部裝置讀取及/或寫入信箱574的某些暫存器。例如,在某些狀態下(例如,在安全開機期間),任何外部裝置都不應與安全子系統500通訊。因此,在一些態樣當中,個性化控制器570可根據狀態機572的當前個性化或狀態,來停用信箱574或拒絕信箱通訊536。
在一些具體實施例中,個性化控制器570可基於與狀態機572的當前狀態相關聯之AF組態資料556,來過濾以ROM 550為目標的硬體存取交易552。例如,個性化控制器570通常可防止通過某些安全週邊520 (例如DMA引擎、I/O介面等)及/或外部裝置來存取ROM 550的任何嘗試。當實現特定個性化時,應允許安全CPU 510僅存取與該個性化相關聯之韌體。因此,個性化控制器570可防止安全CPU 510存取ROM 550內一CPU程式碼儲存551的任何記憶體地址,也非存取其中儲存用於當前個性化的韌體之記憶體地址。
在一些具體實施例中,個性化控制器570可基於與狀態機的當前狀態相關聯之AF組態資料556,來過濾以RAM 560為目標的硬體存取交易562。例如,個性化控制器570通常可防止通過外部裝置來存取RAM 560的任何嘗試。在某些狀態或個性化中,可允許安全CPU 510及/或安全週邊520僅存取RAM 560中地址的一子集合。在其他狀態或個性化中,可禁止安全CPU 510及/或安全週邊520存取RAM 560中地址的該子集合。在一些具體實施例中,根據當前狀態或個性化,可針對不同記憶體地址來限制不同類型的記憶體存取(例如,讀取或寫入)。
如以上關於圖4所描述,個性化控制器570可至少部分基於交易類型410、目標地址420、發起者ID 430及/或與每一交易400相關聯的安全資訊440,來過濾交易516、524、526、534、552和562。AF組態資料556可定義當過濾傳入交易時,個性化控制器570允許及/或拒絕的屬性或條件組合。當拒絕交易時,個性化控制器570可觸發透明故障(transparent failure)、安全異常、系統重設或警報。在一些具體實施例中,當觸發透明故障時,個性化控制器570可忽略任何傳入的寫入交易,並且回傳故障值以回應傳入的讀取交易。故障值可為零值、預定義值、隨機值或將為讀取交易返回的實際值以外的任何值。
當安全CPU 510已經完成與當前狀態或個性化相關聯的任務及/或指令時,安全CPU 510可請求轉變到新狀態。例如,安全CPU 510可通過將狀態改變(state change、SC)請求514輸出到個性化控制器570,來請求轉變到新狀態。個性化控制器570可通過確定狀態機572的當前狀態與新狀態之間是否存在有效狀態轉變(或通過確認SM修整資料542未指定無效狀態轉變),來驗證SC請求514。
在驗證SC請求514時,個性化控制器570可使用記憶體清除(M_Clear)信號564,來清除儲存在RAM 560中資料的至少一部分。例如,個性化控制器570可清除當前狀態下儲存在RAM 560中的韌體以及新狀態可能不需要之任何關聯資料。在一些具體實施例中,個性化控制器570還可在轉變到新狀態之前,清除儲存在信箱574的一或多個暫存器中的通訊。個性化控制器570還可分別使用重設信號512和522來重設安全CPU 510和安全週邊520。例如,個性化控制器570可通過清除任何內部暫存器及/或記憶體,來重設處理器210及/或安全週邊220的內部狀態。在一些實施例中,重設信號512可進一步包括用於安全處理器510的新重設向量。
在清除暫存器並重設安全子系統的硬體資源之後,然後個性化控制器570可將狀態機572轉變至新狀態。當轉變到新狀態時,個性化控制器570可獲取新的一組存取過濾器組態資料556並更新狀態ID信號532,以反映新狀態或個性化。最後,個性化控制器570可從重設狀態釋放安全CPU 510和安全週邊520 (例如,分別使用重設信號512和522)。然後,安全處理器510可例如通過存取儲存在由新重設向量指向的記憶體位置處之韌體(例如,在CPU程式碼儲存551中),來執行與新狀態或個性化相關聯之指令。
圖6A根據一些具體實施例,顯示一範例狀態機600A。狀態機600A可為圖3的狀態機310及/或圖5的狀態機572在修整之前的一個具體實施例。因此,狀態機600A描繪多個狀態P1-P3之間的所有可能狀態轉變T1-T3。
在圖6A的具體實施例中,從狀態P1到狀態P2的第一轉變T1是可能的、從狀態P2到狀態P3的第二轉變T2是可能的並且從狀態P1到狀態P3的第三轉變T3是可能的。如上所述,狀態P1-P3中的每一者都可與各自的個性化相關聯,該等個性化定義用於安全子系統硬體資源的一組硬體存取規則。例如,第一狀態P1可定義一組規則,用於從ROM或外部記憶體(例如快閃記憶體、USB磁碟或其他非揮發性儲存裝置)中獲取或擷取韌體,第二狀態P2可定義一組用於驗證韌體的規則,並且第三狀態P3可定義用於執行韌體的一組規則。
圖6B根據一些其他具體實施例,顯示一範例狀態機600B。狀態機600B可為狀態機600A在修整之後的一個具體實施例。因此,狀態機600B只包括圖6A中所描繪可能狀態轉變之子集合。
在圖6B的具體實施例中,第一轉變T1從狀態P1到狀態P2有效,並且第二轉變T2從狀態P2到狀態P3有效。然而,例如參考圖6A,第三轉變T3在狀態機600B中無效。因此,狀態機600B在未經過第二狀態P2時無法從第一狀態P1轉變到第三狀態P3。例如,狀態機600B可用於實現安全開機操作。更具體來說,在獲取韌體(例如,按照為P1定義的規則)之後,實現狀態機600B的安全子系統必須在執行韌體之前(例如,按照為P3定義的規則)驗證韌體(例如,按照為P2定義的規則)。
如圖6B所示,狀態轉變T1和T2僅允許狀態P1、P2和P3之間的單向轉變。例如,一旦狀態機600B已轉變到第二狀態P2,就不能再轉變回第一狀態P1 (例如,無需重設安全子系統)。換句話說,在完成狀態轉變T1之後,個性化控制器可能不再允許安全CPU (或任何其他硬體資源)存取ROM中儲存的韌體。這為韌體以及儲存在安全子系統中的其他敏感資料及/或指令提供額外安全性。
圖6C根據一些具體實施例,顯示一範例狀態機600C。狀態機600C可為狀態機600A在修整之後的一個具體實施例。因此,狀態機600C只包括圖6A中所描繪可能狀態轉變之一子集合。
在圖6C的具體實施例中,只有第三轉變T3從狀態P1到狀態P3有效。更具體來說,例如參考圖6A,第一轉變T1和第二轉變T2在狀態機600C中均無效。因此,狀態機600C只能從第一狀態P1轉變到第三狀態P3。因為沒有到或來自第二狀態P2的有效轉變,所以在狀態機600C中有效地消除第二狀態P2。例如,狀態機600C可用於實現非安全開機操作。更具體來說,在獲取韌體(例如,按照為P1定義的規則)之後,實現狀態機600C的安全子系統直接執行韌體(例如,按照為P3定義的規則)。
如圖6C所示,狀態轉變T3允許只在狀態P1和P3之間的單向轉變。例如,一旦狀態機600C已轉變到第三狀態P3,就不能再轉變回第一狀態P1。僅通過重設安全子系統並清除儲存在RAM中的任何韌體,狀態機600C才能返回到第一狀態P1。換句話說,在完成狀態轉變T3之後,個性化控制器可能不再允許安全CPU (或任何其他硬體資源)存取ROM中儲存的韌體。這為韌體以及儲存在安全子系統中的其他敏感資料及/或指令提供額外安全性。
圖7根據一些具體實施例,為描述通過一處理系統來過濾硬體存取交易的一範例操作700之例示流程圖。例如參考圖5,範例操作700可由個性化控制器570執行,以過濾安全子系統500的硬體資源510-560間之交易。
個性化控制器可接收旨在一或多個硬體資源的交易(710)。在一些具體實施例中,可通過個性化控制器來路由安全子系統內的所有硬體存取交易。例如參考圖4,每一硬體存取交易都可包括交易類型、目標地址、發起者ID、安全資訊及/或與硬體存取有關的其他資訊。
個性化控制器可進一步確定狀態機的當前狀態(720)。在一些具體實施例中,狀態機可用硬體實現(例如,作為正反器和組合邏輯的組合)。狀態機的每個狀態都可與多個預定個性化中的相應個性化相關聯。更具體來說,每一個性化都可定義一組對硬體存取及/或韌體執行之限制。
該個性化控制器通過至少部分根據該狀態機的當前狀態,利用選擇性拒絕對該硬體資源的存取來過濾該等交易(730)。在一些具體實施例中,個性化控制器可至少部分基於狀態機的當前狀態,來擷取一組存取過濾器(AF)組態資料(例如,從ROM)。在一些其他具體實施例中,個性化控制器可從外部(例如,快閃記憶體)記憶體擷取AF組態資料。當從外部記憶體擷取時,個性化控制器可使用一或多個安全週邊(例如密碼加速器),來解密及/或認證AF組態資料。AF組態資料可包括一組規則,這些規則在當前狀態下管理硬體存取限制。更具體來說,AF組態資料可基於交易類型、目標地址、發起者ID、安全資訊或其任意組合,來指定如何過濾每個交易。
圖8根據一些具體實施例,為描述用於變更一個性化控制器狀態的一範例操作800之例示流程圖。例如參考圖5,範例操作500可由個性化控制器570執行,以動態改變對安全子系統500的硬體存取規則及/或限制。
個性化控制器接收狀態改變請求(810),並確定是否存在從狀態機的當前狀態到所請求的新狀態之有效狀態轉變(820)。例如,在安全CPU已經完成與當前狀態有關的所有任務及/或指令之後,安全CPU可通過個性化控制器請求狀態改變。僅當狀態機包括從當前狀態到新狀態的有效轉變時,個性化控制器才可執行狀態改變。
如果不存在從當前狀態到下一狀態的有效狀態轉換(如在820處測試的),則個性化控制器保持在當前狀態並繼續輸出當前狀態ID (890)。例如參考圖3,狀態ID信號可用於將狀態機的當前狀態指示給個性化控制器的其他組件及/或電子系統的其他硬體資源。
如果存在從當前狀態到下一狀態的有效狀態轉變(如在820處測試的),則個性化控制器可通過重設安全子系統的硬體資源來進行(830)。例如,個性化控制器可認定或啟動重設信號,其提供給安全子系統中的每個硬體資源(如安全CPU和安全週邊)。重設信號可用於例如通過清除任何內部暫存器及/或記憶體,來重設硬體資源的內部狀態。
個性化控制器可進一步調整安全CPU的重設向量(840)。例如,當安全CPU處於重設狀態時,個性化控制器可使用新的、特定於狀態的重設向量,對安全CPU進行重新編程。重設向量可指向新的記憶體地址(例如,在ROM中),其中儲存有與新個性化相關聯之韌體或指令。因此,在狀態機處於新狀態時,只要重設安全CPU的任何時間,安全CPU就將無法重新載入與先前狀態關聯的韌體或指令。
個性化控制器還可清除本地RAM和信箱(850)。例如,個性化控制器可使用記憶體清除信號,來抹除或覆蓋儲存在RAM中的資料。在一些具體實施例中,個性化控制器可僅清除儲存資料及/或指令的記憶體地址特定範圍,該資料及/或指令對於新個性化而言可能不是必需的。個性化控制器還可清除信箱的一或多個暫存器,以抹除安全CPU與和當前個性化有關的一或多個外部裝置間之任何通訊。
個性化控制器然後可將狀態機轉變到新狀態(860),並基於新狀態更新存取過濾器組態(870)。例如,個性化控制器可擷取特定於新狀態的一組新存取過濾器(AF)組態資料。AF組態資料可包括一組規則,這些規則在新個性化下管理硬體存取限制。
在狀態機已經轉變到新狀態之後,個性化控制器可從重設釋放硬體資源(880),並輸出新的狀態ID (890)。例如,個性化控制器可使重設信號無效,以使安全CPU和安全週邊脫離重設狀態。這允許安全CPU開始執行與新個性化相關的指令,例如通過從新重設向量指向的儲存位置載入韌體。
熟悉技術人士將理解,可使用任何不同科技及技術呈現資訊及信號。例如,以上說明中可能提及的資料、指令、命令、資訊、信號、位元、符號及晶片可由電壓、電流、電磁波、磁場或磁粒子、光場或磁粒子或任何其組合表示。
進一步,精通技術人士將進一步結合在此揭示態樣所說明之各種邏輯區塊、模組、電路及計算步驟可實施為電子硬體、電腦軟體或兩者之組合。為了清楚說明硬體及軟體之此互通性,以上已就其功能性總體說明各種說明性組件、區塊、模組、電路及步驟。此類功能係實施為硬體或軟體取決於整體系統所用的特定應用及設計限制。精通技術人士可採用各種方法實施每個特定應用之該說明功能性,但此類實施決定不應解釋為會引起背離本發明之範疇。
結合在此揭示的該等具體實施例所說明的方法、順序或演算法可直接採用硬體、由一處理器執行的一軟體模組或採用二者之一組合而具體化。軟體模組可位於RAM記憶體、快取記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、可移除式磁碟、CD-ROM或業界內其他任何已知的儲存媒體格式。一示範儲存媒體耦合至處理器,如此處理器就可從儲存媒介中讀取與寫入資訊。在另外的範例中,該儲存媒體可與該處理器整合。
在前述的說明書中,已參考其特定具體實施例來說明。不過有證據顯示,在不悖離申請專利範圍內公佈之本發明廣泛領域下,可進行許多修改與變更。因此說明書與圖式僅供參考而不做限制。
100:系統 110:主機中央處理單元 120:記憶體 130:裝置 140:安全子系統 142:安全CPU 144:安全記憶體 146:安全週邊 200:安全子系統 210:處理器 220:安全週邊 230:外部匯流排 240:記憶體 242:ROM 244:RAM 250:個性化控制器 300:個性化控制器 302:狀態識別信號 304,306:清除命令 310:狀態機 312:狀態機組態資料 314:存取過濾器組態資料 316:狀態改變請求 318:重設信號 319:重設向量 320:存取過濾器 322:交易 330:清除記憶體模組 332:記憶體清除信號 340:信箱 342:通訊 400:硬體存取交易 410:交易類型 420:目標地址 430:發起者識別碼 440:安全資訊 500:安全子系統 510:安全CPU 512,522:重設信號 516,524,526,534,552,562:硬體存取交易 518,536:信箱通訊 520:安全週邊 530:外部匯流排 540:一次可編程記憶體 542:SM修整資料 550:ROM 551:CPU程式碼儲存 553:SM資料儲存 554:狀態機組態資料 555:AF資料儲存 556:存取過濾器組態資料 560:RAM 564:記憶體清除信號 570:個性化控制器 572:狀態機 574:信箱 600A,600B,600C:狀態機 700,800:範例操作
通過範例示出本發明的具體實施例,並且本發明的具體實施例並不受到附圖的圖式所限制。
圖1根據一些具體實施例,顯示一電子系統之方塊圖。
圖2根據一些具體實施例,顯示一安全子系統之方塊圖。
圖3根據一些具體實施例,顯示個性化控制器之方塊圖。
圖4根據一些具體實施例,顯示一範例硬體存取交易。
圖5根據一些具體實施例,顯示一安全子系統之更詳細方塊圖。
圖6A根據一些具體實施例,顯示一範例狀態機。
圖6B根據另一些具體實施例,顯示一範例狀態機。
圖6C根據另一些具體實施例,顯示一範例狀態機。
圖7根據一些具體實施例,為描述通過一處理系統來過濾硬體存取交易的一範例操作之例示流程圖。
圖8根據一些具體實施例,為描述用於變更一個性化控制器狀態的一範例操作之例示流程圖。
300:個性化控制器
302:狀態識別信號
304,306:清除命令
310:狀態機
312:狀態機組態資料
314:存取過濾器組態資料
316:狀態改變請求
318:重設信號
319:重設向量
320:存取過濾器
322:交易
330:清除記憶體模組
332:記憶體清除信號
340:信箱
342:通訊

Claims (20)

  1. 一種處理系統,包括: 一處理器; 一第一記憶體,其儲存可由該處理器執行的指令,其中該等指令的執行使該處理器啟動與一或多個硬體資源的交易; 一狀態機,其設置成在多個狀態之間轉變;以及 一存取過濾器,其設置成通過至少部分根據該狀態機的當前狀態,利用選擇性拒絕對該硬體資源的存取來過濾該等交易。
  2. 如請求項1之處理系統,其中每一該等交易都包括要由該處理器存取的一目標地址、要在該目標地址上執行的一操作類型、該處理器的一當前安全狀態或其組合。
  3. 如請求項2之處理系統,其中該存取過濾器依照以下過濾該等交易: 接收與該狀態機的該當前狀態相關之組態資料; 針對每一該等交易,基於該組態資料確定是否允許該處理器存取該目標地址;以及 拒絕該處理器不被允許存取該目標地址的任何交易。
  4. 如請求項2之處理系統,其中該存取過濾器依照以下過濾每一該等交易: 根據該組態資料,確定是否允許該處理器對該目標地址進行該操作類型;以及 如果該目標地址不允許該操作類型,則拒絕該交易。
  5. 如請求項2之處理系統,其中該存取過濾器依照以下過濾該等交易: 根據該組態資料,確定在該當前安全狀態下運行時,是否允許該處理器存取該目標地址;以及 如果在該當前安全狀態下不允許存取該目標地址,則拒絕該交易。
  6. 如請求項1之處理系統,其中該存取過濾器另設置成通過至少部分根據該狀態機的當前狀態,過濾由一或多個該等硬體資源起始的交易。
  7. 如請求項1之處理系統,其中該狀態機另設置成: 從該處理器接收一狀態轉變請求; 驗證由該狀態轉變請求所指示,從該當前狀態到一新狀態的轉變;以及 若驗證成功,則轉變至該新狀態。
  8. 如請求項7之處理系統,其中該轉變至該新狀態另導致該狀態機: 重設該處理器; 根據該新狀態調整該處理器的一重設向量;以及 使該處理器能夠從該重設向量指示的該第一記憶體中一地址恢復執行指令。
  9. 如請求項7之處理系統,其中該轉變至該新狀態另導致該狀態機抹除一第二記憶體內儲存的資料。
  10. 如請求項9之處理系統,其中該第二記憶體包括儲存該處理器與該處理系統外部一或多個裝置之間通訊的一信箱。
  11. 如請求項7之處理系統,其中該轉變至該新狀態另導致該狀態機重設一或多個該等硬體資源。
  12. 一種通過一處理系統過濾交易之方法,包括: 接收旨在一或多個硬體資源的交易; 確定一狀態機的一當前狀態,其設置成在多個狀態之間轉變;以及 通過至少部分根據該狀態機的該當前狀態,利用選擇性拒絕對該等硬體資源的存取來過濾該等交易。
  13. 如請求項12之方法,其中該過濾包括: 對於每一該等交易,確定要存取的一目標地址、要對該目標地址執行的一操作類型、一當前安全狀態或其組合。
  14. 如請求項13之方法,其中該過濾另包括: 接收與該狀態機的該當前狀態相關之組態資料; 針對每一該等交易,根據該組態資料確定是否允許存取該目標地址;以及 當該目標地址不被允許存取,則拒絕任何該等交易。
  15. 如請求項13之方法,其中針對每一該等交易,該過濾另包括: 根據該組態資料,確定是否允許對該目標地址進行該操作類型;以及 如果該目標地址不允許該操作類型,則拒絕該交易。
  16. 如請求項13之方法,其中針對每一該等交易,該過濾另包括: 根據該組態資料,確定在該當前安全狀態下運行時,是否允許該處理器存取該目標地址;以及 如果在該當前安全狀態下不允許存取該目標地址,則拒絕該交易。
  17. 一種用於一處理系統的個性化控制器,包括: 一狀態機,其設置成在許多狀態之間轉變;以及 一存取過濾器,其設置成: 接收旨在一或多個硬體資源的交易; 確定該狀態機的一當前狀態;以及 通過至少部分根據該狀態機的該當前狀態,利用選擇性拒絕對該等硬體資源的存取來過濾該等交易。
  18. 如請求項17之個性化控制器,其中執行該等交易來過濾該等交易,導致個性化控制器: 對於每一該等交易,確定要存取的一目標地址、要對該目標地址執行的一操作類型或一當前安全狀態之至少一者;以及 選擇性拒絕存取該目標硬體資源、該目標地址、該操作類型或該當前安全狀態。
  19. 如請求項17之個性化控制器,其中該狀態機另設置成: 接收一狀態轉變請求; 驗證由該狀態轉變請求所指示,從該當前狀態到一新狀態的一轉變;以及 若驗證成功,則轉變至該新狀態。
  20. 如請求項19之個性化控制器,其中該轉變至該新狀態另導致該狀態機: 重設該處理器; 根據該新狀態調整該處理器的一重設向量;以及 使該處理器能夠從該重設向量指示的該第一記憶體中一地址恢復執行指令。
TW109139701A 2019-11-15 2020-11-13 安全子系統的存取過濾器 TW202121218A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/685,989 US11366685B2 (en) 2019-11-15 2019-11-15 Access filter for security subsystem
US16/685,989 2019-11-15

Publications (1)

Publication Number Publication Date
TW202121218A true TW202121218A (zh) 2021-06-01

Family

ID=75908695

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109139701A TW202121218A (zh) 2019-11-15 2020-11-13 安全子系統的存取過濾器

Country Status (4)

Country Link
US (1) US11366685B2 (zh)
CN (1) CN114641773A (zh)
TW (1) TW202121218A (zh)
WO (1) WO2021096618A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1634175B1 (en) * 2003-05-28 2015-06-24 Citrix Systems, Inc. Multilayer access control security system
US20070088874A1 (en) 2005-10-14 2007-04-19 Hewlett-Packard Development Company, L.P. Offload engine as processor peripheral
US8464069B2 (en) * 2007-02-05 2013-06-11 Freescale Semiconductors, Inc. Secure data access methods and apparatus
US7895426B2 (en) 2007-08-24 2011-02-22 International Business Machines Corporation Secure power-on reset engine
US9510195B2 (en) 2014-02-10 2016-11-29 Stmicroelectronics International N.V. Secured transactions in internet of things embedded systems networks
EP3279823B1 (en) 2016-08-01 2020-09-23 Secure-IC SAS Security supervision
US10152427B2 (en) * 2016-08-12 2018-12-11 Google Llc Hybrid memory management

Also Published As

Publication number Publication date
US20210149710A1 (en) 2021-05-20
US11366685B2 (en) 2022-06-21
WO2021096618A1 (en) 2021-05-20
CN114641773A (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
US10762216B2 (en) Anti-theft in firmware
RU2667713C2 (ru) Селективное обеспечение соблюдения целостности кода, обеспечиваемое менеджером виртуальной машины
EP3761208B1 (en) Trust zone-based operating system and method
US9317450B2 (en) Security protection for memory content of processor main memory
JP6306578B2 (ja) メモリ保護装置及び保護方法
KR102183852B1 (ko) 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치
CN110998578B (zh) 用于在异构存储器环境内进行引导的系统和方法
US7769993B2 (en) Method for ensuring boot source integrity of a computing system
CN108604274A (zh) 安全片上系统
US10101936B2 (en) Memory access control
JP7213879B2 (ja) 間接アクセスメモリコントローラ用のメモリ保護装置
CN113434453A (zh) 片上系统及其操作方法
US10599848B1 (en) Use of security key to enable firmware features
CN112749397A (zh) 一种系统和方法
KR20190012093A (ko) 데이터 보호 기능을 갖는 ssd 기반의 저장미디어
EP4006758B1 (en) Data storage apparatus with variable computer file system
US10191680B2 (en) Memory access control
TW202121218A (zh) 安全子系統的存取過濾器
US11847227B2 (en) Firmware version corruption attack prevention
CN110472443A (zh) 一种数据安全方法和带开关的本地设备
Geater ARM® TrustZone®
EP3951631B1 (en) Memory protection unit
CN112580023B (zh) 影子栈管理方法及装置、介质、设备
KR102192328B1 (ko) Sgx 상의 입력 채널을 보호하기 위한 고립된 인터럽트 핸들러를 포함하는 프로세서 및 인터럽트 처리 방법