TW201502843A - 安全保護方法和處理器 - Google Patents

安全保護方法和處理器 Download PDF

Info

Publication number
TW201502843A
TW201502843A TW103107625A TW103107625A TW201502843A TW 201502843 A TW201502843 A TW 201502843A TW 103107625 A TW103107625 A TW 103107625A TW 103107625 A TW103107625 A TW 103107625A TW 201502843 A TW201502843 A TW 201502843A
Authority
TW
Taiwan
Prior art keywords
instruction
security
isa
unit
processor
Prior art date
Application number
TW103107625A
Other languages
English (en)
Other versions
TWI515597B (zh
Inventor
Chi-Chang Lai
Chuan-Hua Chang
Original Assignee
Andes Technology Corp
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 Andes Technology Corp filed Critical Andes Technology Corp
Publication of TW201502843A publication Critical patent/TW201502843A/zh
Application granted granted Critical
Publication of TWI515597B publication Critical patent/TWI515597B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本發明提供一種由處理器執行的安全保護方法。所述安全保護方法包含以下步驟。根據指令的指令安全屬性(ISA)和操作事件(OE)的安全屬性(SA)在執行指令之前或之後執行安全檢查。當所述安全檢查失敗時,忽略所述OE、推遲所述OE、或提出安全異常。所述OE是作為所述處理器提取或執行指令時的副作用而產生、或作為對指令的監視結果而產生、或響應於所述處理器的外部輸入而產生。

Description

安全保護方法和處理器
本發明是有關於一種安全保護方法和一種處理器,且特別是有關於一種安全保護方法和一種實施計算安全的處理器。
在計算安全(computing security)的領域中,程式的執行和存取通常是通過一組硬性規則被限制到個別執行環境。所述規則確保了處理器所執行的每一個程式的每一個指令都是有效且安全的,以便保護執行環境免遭無意或未經授權的存取。
本發明提供一種安全保護方法和一種處理器,所述處理器在程式可見的位址空間處實施計算安全從而為軟體執行提供堅固的安全邊界。
本發明的由處理器執行的安全保護方法包含以下步驟。根據指令的指令安全屬性(instruction security attribute,ISA)和操作事件(operational event,OE)的安全屬性(security attribute,SA)在執行指令之前或之後執行安全檢查。當安全檢查失敗時, 忽略OE、推遲OE、或提出安全異常。所述OE是作為處理器提取(fetch)或執行指令時的副作用而產生、或作為對指令的監視結果而產生、或響應於處理器的外部輸入而產生。
本發明的處理器包含指令提取單元、指令操作單元、OE 產生器以及安全檢查單元。所述指令操作單元耦接到指令提取單元。所述OE產生器耦接到指令提取單元和指令操作單元。所述安全檢查單元耦接到指令提取單元、指令操作單元以及OE產生器。 所述指令提取單元從指令提取位址空間提取指令。所述指令操作單元執行所述指令。所述OE產生器產生OE,所述OE是作為指令提取單元提取指令時或指令操作單元執行指令時的副作用而產生、或作為對指令的監視結果而產生、或回應於處理器的外部輸入而產生。所述安全檢查單元根據指令的ISA和OE的SA在指令操作單元執行指令之前或之後執行安全檢查。當安全檢查失敗時,所述OE產生器忽略OE、推遲OE、或提出安全異常。
本發明的另一種安全保護方法由處理器執行且包含以下 步驟。在第一指令為安全服務指令時基於第一指令的SA和代碼SA來執行第一安全檢查。當第一安全檢查失敗時,提出安全異常。
本發明的另一種處理器包含指令提取單元、指令操作單 元以及安全檢查單元。所述指令提取單元從指令提取位址空間(instruction fetch address space,IFAS)提取第一指令。所述指令操作單元耦接到指令提取單元以執行第一指令。所述安全檢查單元耦接到指令提取單元和指令操作單元。在第一指令為安全服務 指令時,所述安全檢查單元基於第一指令的ISA和代碼SA來執行第一安全檢查。當第一安全檢查失敗時,所述安全檢查單元提出安全異常。
本發明的另一種安全保護方法是本發明所提供的前述兩種安全保護方法的組合。
本發明的另一種處理器是本發明所提供的前述兩種處理器的組合。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100‧‧‧處理器
110‧‧‧指令提取位址產生器
120‧‧‧指令提取單元
130‧‧‧操作資源位址產生器
140‧‧‧指令操作單元
150‧‧‧操作事件產生器
160‧‧‧安全檢查單元
170‧‧‧SLE單元
180‧‧‧安全異常單元
200‧‧‧位址空間
310~950‧‧‧步驟
A0~A7‧‧‧位址
ISA‧‧‧指令安全屬性
SA‧‧‧安全屬性
SLE0~SLE3‧‧‧安全查找項目
圖1是根據本發明一實施例的一種處理器的部分示意圖。
圖2是根據本發明一實施例的一些SLE以及在位址空間中和它們相關聯的區域的示意圖。
圖3到圖9是根據本發明一實施例的一種安全保護方法的流程圖。
圖1是繪示根據本發明實施例的處理器100的一部分的示意圖。處理器100包含指令提取位址產生器110、指令提取單元120、操作資源位址產生器130、指令操作單元140、操作事件(OE) 產生器150、安全檢查單元160、安全查找項目(security lookup entry,SLE)單元170,以及安全異常單元180。指令提取單元120耦接到指令提取位址產生器110。操作資源位址產生器130耦接到指令提取單元120。指令操作單元140耦接到操作資源位址產生器130。OE產生器150耦接到指令提取單元120和指令操作單元140。安全檢查單元160耦接到指令提取單元120、指令操作單元140以及OE產生器150。SLE單元170耦接到指令提取位址產生器110、指令提取單元120、操作資源位址產生器130、OE產生器150,以及安全檢查單元160。安全異常單元180耦接到指令提取位址產生器110和安全檢查單元160。在本發明的一些其它實施例中,安全異常單元180可進一步耦接到處理器100的一些其它元件,例如指令提取單元120、操作資源位址產生器130、指令操作單元140或OE產生器150,以控制它們在異常處理期間的操作。
處理器100通過執行安全檢查來實施計算安全,而安全 檢查的核心則是將指令的安全屬性(SA)、指令所存取的操作資源的SA以及OE的SA相比較。OE可以作為指令提取單元120提取指令時或指令操作單元140執行指令時的副作用(例如異常(exception))、或作為對指令的監視結果(例如,硬體除錯事件,即,指令中斷點(breakpoint)、資料觀察點(watchpoint)、單步執行、或指令追蹤(trace))、或回應於處理器的外部輸入(例如中斷(interrupt)),由OE產生器150產生。SA可以從SLE單元170提供的多個SLE獲得。
SLE是儲存在SLE單元170的查閱資料表中的項目,用於決定指令、操作資源和OE的SA。SLE單元170可以從處理器100的外部輸入獲取一些或所有的SLE。一個SLE可以包含一個或多個安全因數。在安全因數是SLE的一部分時或者在安全因數已經被標記到指令、操作資源或OE時,安全因數可被稱作SA。 在SLE的全部或部分的安全因數用以形成用於標記到指令、操作資源或OE上的SA時,所述SA分別被稱作指令SA(instruction security attribute,ISA)或資料SA(data security attribute,DSA)。
另外,供來自指令提取位址空間(instruction fetch address space,IFAS)的指令或來自載入/儲存位址空間(load/store address space,LSAS)的資料查找的SLE可包含標籤,所述標籤指定了在IFAS中、或在LSAS中、或在這兩者中的位址空間區域。一些SLE可能不具有標籤,而是與索引相關聯。實際上,這些SLE是為了得到暫存器、SLE或OE的SA而要查找的SLE,其中這些暫存器和SLE是一些特殊指令的操作資源。
如上所述,SLE可以記錄指定位址空間區域的標籤以及與所述區域相關聯的SA。所述區域可以是處理器100從中提取指令的IFAS的一部分,或者是映射到處理器100的外部介面的LSAS的一部分。LOAD指令可從所述LSAS讀取資料。STORE指令可將資料寫入所述LSAS。處理器100可以存取一個或多個IFAS,也可以存取一個或多個LSAS。每個IFAS和LSAS可以包含一個或多個區域。所述區域可以與相同的SA或不同的SA相關聯。前 述標籤指定其區域的方式可以是記錄所述區域的基底位址和大小或記錄所述區域的起始位址和結束位址。
一個SA可以包含可用以控制安全性的一個或多個安全因數。例如,所述安全因數之一可以是安全特權等級(security privilege level,SPL)。SPL用數字來訂定特權等級以作為安全檢查之用。安全檢查是將兩個SA相比較以決定哪個SA更安全。所述比較是基於兩個SA的安全因數。例如,在每個SA都包含SPL安全因數時,可以將兩個SPL相比較。SPL數值較小的SA更安全。在本發明的一些其它實施例中,SPL數值較大的SA更安全。
圖2是繪示根據本發明實施例的四個SLE以及它們在位址空間200中的關聯區域的示意圖。由SLE單元170提供的四個SLE被標記為SLE0到SLE3,它們分別與區域0到3相關聯。位址空間200可以是IFAS或LSAS。區域0開始於位址A2並且結束於位址A4。區域1開始於位址A5並且結束於位址A6。區域2開始於位址A3並且結束於位址A7。區域3開始於位址A0並且結束於位址A1。區域2與區域0和1重疊。
每一個指令都是提取自它的提取位址。指令可以為了自身的執行而存取操作資源。指令所存取的操作資源可以是在LSAS中定址的資料、處理器100的暫存器、或由SLE單元170提供的SLE。所述資料的位址是在LSAS中映射到處理器100的內部記憶體或外部介面的位址,並且指令從所述位址讀取資料或將資料寫入所述位址。
當SLE單元170接收到指令的提取位址或指令所存取的操作資源的資料位址時,SLE單元170可以根據所接收的位址來查找SLE中的區域。當只有一個SLE的區域覆蓋了所接收的位址並且所接收的位址是指令的提取位址時,SLE單元170可以將所述SLE的SA的全部或部分的安全因數標記到所述指令。被標記的安全因數變成了所述指令的SA。指令的SA也被稱作指令SA(ISA)。
當只有一個SLE的區域覆蓋了所接收的位址並且所接收的位址是指令所存取的操作資源的資料位址時,SLE單元170可以將所述SLE的SA的全部或部分的安全因數標記到所述操作資源。被標記的安全因數變成了所述操作資源的SA。操作資源的SA也被稱作資料SA(DSA)。
當有一個以上SLE的區域覆蓋了所接收的位址時,SLE單元170可以根據任何優先順序方案來選擇所述SLE中的一個並且將所選SLE的SA的全部或部分的安全因數標記到所述指令或操作資源。例如,SLE單元170可以選擇SA最安全的SLE。
以圖2所示的區域舉例。當SLE單元170接收到指令的提取位址並且所述提取位址落入區域3時,SLE單元170可以用SLE3的SA對指令做標記。類似地,當SLE單元170接收到指令所存取的操作資源的資料位址並且所述資料位址落入區域3時,SLE單元170可以用SLE3的SA對操作資源做標記。當SLE單元170接收到指令的提取位址並且所述提取位址落入區域1時,SLE 單元170可以選擇SLE1或SLE2並且用所選SLE的SA對指令做標記,這是因為區域1與區域2重疊,使得SLE1和SLE2均與提取位址相匹配。類似地,當SLE單元170接收到指令所存取的操作資源的資料位址並且所述資料位址落入區域1時,SLE單元170可以選擇SLE1或SLE2並且用所選SLE的SA對操作資源做標記。
如上所述,SLE可以與索引相關聯。一些指令可以直接存取暫存器,而一些指令可以直接存取SLE。在指令所存取的操作資源是處理器100的暫存器或者是SLE時,暫存器或SLE都具有對應的索引。一些OE也具有對應的內部索引。當SLE單元170接收到此類索引時,SLE單元170可以將索引與所接收的索引相匹配的SLE的SA的全部或部分的安全因數標記到暫存器、SLE或OE。被標記的安全因數變成了暫存器、SLE或OE的SA。或者,在本發明的一些其它實施例中,部分或全部的暫存器、SLE和OE可以與硬編碼SA而非記錄在SLE單元170中的SA相關聯。
有一種特殊的指令被稱作安全服務指令(security service instruction,SSI)。SSI可以用來請求位於更安全的區域中的指令或者位於不能通過正規指令被請求提供服務的區域中的指令所提供的服務。例如,假定較小的SPL數值比較大的SPL數值更安全。 通常,具有SPL 3的函式呼叫指令請求具有SPL 2的子程式所提供的服務會觸發安全檢查違規。然而,通過使用針對SPL 3界定的SSI,具有SPL 3的指令流可以請求具有SPL 2的另一指令流所提供的服務而不會觸發安全檢查違規。可以針對不同的ISA界定 不同的SSI,以向每個ISA請求服務。例如,可以針對SPL 3界定一個SSI以向SPL 2請求服務,可以針對SPL 3界定一個SSI以向SPL 1請求服務,並且可以針對SPL 2界定另一SSI以向SPL 1請求服務,等等。SSI的不合法使用會引起安全檢查違規。例如,具有SPL 3的指令流執行針對SPL 2界定的SSI是不合法的。
一個SSI與兩個SA相關聯。這兩個SA中的一者是與SSI的提取位址相關聯的ISA。這兩個SA中的另一者是與SSI的指令代碼和/或運算元(operand)相關聯的代碼SA。SSI的代碼SA可以根據SSI的索引獲得,而所述索引可以從SSI的指令代碼和/或運算元得到。在本發明的一些實施例中,與SSI的ISA相關聯的群組標識(即群組ID,下文進行詳細描述)也可以用於產生SSI的索引。當SLE單元170接收到SSI的索引時,SLE單元170可以將索引與所接收的索引相匹配的SLE的SA的全部或部分的安全因數標記到所述SSI。被標記的安全因數變成了SSI的代碼SA。
在本發明的一些實施例中,記錄在SLE中的每個SA都可以與群組ID相關聯。群組ID可以儲存在SLE中或儲存在別處。 在本發明的一些實施例中,群組ID檢查可以包含在當前指令對下一個指令的安全檢查中或者包括在當前指令對當前指令所存取的操作資源的安全檢查中。
對於當前指令對下一個指令的安全檢查,當下一個指令的ISA比當前指令的ISA更安全時,便出現安全違規。對於當前指令對其操作資源的安全檢查,當操作資源的DSA比當前指令的 ISA更安全時,便出現安全違規。然而,在前述SA安全檢查沒有出現安全違規時,本發明的一些實施例可以要求用群組ID進行進一步的檢查。
當在前述SA檢查中沒有出現安全違規的情況下要求進 行群組ID檢查時,如果關聯到當前指令的ISA的群組ID與關聯到操作資源的DSA(或下一個指令的ISA)的群組ID相同,那麼安全檢查通過,而如果兩個群組ID不同,那麼安全檢查失敗。此類群組ID檢查的兩個實例繪示於圖4和圖6中。在不要求群組ID檢查時,當兩個SA同等安全時,安全檢查便被視為通過。
另外,每個SLE可以進一步與一個或多個ID檢查屬性位 元相關聯,以便決定是在被檢查的兩個SA相同時還是在兩個SA不同時執行群組ID檢查(在SA安全檢查中沒有出現安全違規時)。ID檢查屬性位元可以儲存在其關聯SLE中或儲存在別處。
在本發明的一些實施例中,實施主機除錯模式。當在主 機除錯模式下提出除錯事件(OE)時,處理器100可以將其指令流重新引導到特殊埠或特殊位址空間,其中用於除錯處理的其它指令從外部主機通過處理器100的實體除錯介面(通常稱作電路內除錯埠,in-circuit debugging port)被饋送到所述埠或位址空間。 由於外部指令可能會引起安全問題,因此此類指令實際上可以被虛擬化地視作來自另一單獨的區域。換句話說,SLE單元170可以提供只專用於主機除錯模式的特殊SLE。只要指令提取位址產生器110是在主機除錯模式下查找外部指令的ISA,不管外部指令 的提取位址是什麼,SLE單元170都總是會將從此特殊SLE獲得的SA和群組ID標記到外部指令。所述特殊SLE不用於任何其它目的。
圖3是繪示根據本發明實施例的由處理器100執行的安全保護方法的流程圖。在步驟310中,指令提取位址產生器110產生指令的提取位址,指令提取單元120根據提取位址從IFAS提取指令,並且安全檢查單元160執行指令提取安全檢查,其細節繪示於圖4中。對於此安全檢查,指令提取位址產生器110將提取位址提供到SLE單元170。SLE單元170根據提取位址在SLE中查找SA並且將所述SA提供到指令提取單元120以便標記到將在步驟320中從提取位址提取的新指令。因此,指令提取單元120從區域覆蓋了指令的提取位址的一個所述SLE獲得指令的ISA。指令的ISA用在指令提取安全檢查中。
在步驟330中,安全檢查單元160在指令執行之前執行OE安全檢查,其細節繪示於圖5中。此安全檢查所涉及的OE與指令自身並不相關。例如,OE可以是中斷或硬體除錯事件(例如指令中斷點)。對於此安全檢查,OE產生器將OE的索引提供到SLE單元170。SLE單元170根據所述索引在SLE中查找SA並且用所述SA對OE做標記。因此,安全檢查單元160從索引與OE的索引相匹配的一個所述SLE獲得OE的SA。OE的SA用在OE安全檢查中。
在步驟340中,操作資源位址產生器130對指令解碼以 決定指令將要存取的操作資源,並且產生與指令將要存取的操作資源相關聯的資料位址或索引。在步驟350中,安全檢查單元160執行SSI安全檢查或資源存取安全檢查,其細節分別繪示於圖7和圖6中。
當指令為SSI時,操作資源位址產生器130基於SSI的 指令代碼和/或運算元來產生SSI的索引並且將所述索引提供到SLE單元170。例如,操作資源位址產生器130可以將SSI的指令代碼直接用作SSI的索引或將SSI的指令代碼和某一運算元值編碼成SSI的索引。在某一實施例中,操作資源位址產生器130可以另外基於與SSI的提取位址相關聯的群組ID來產生索引。SLE單元170根據索引在SLE中查找SA並且用所述SA對SSI做標記。因此,安全檢查單元160從索引與SSI的索引相匹配的一個所述SLE獲得SSI的代碼SA。SSI的代碼SA用在SSI安全檢查中。
對於資源存取安全檢查,操作資源位址產生器130將與 操作資源相關聯的資料位址或索引提供到SLE單元170。SLE單元170根據所述資料位址或索引在SLE中查找SA並且用所述SA對操作資源做標記。因此,安全檢查單元160從區域覆蓋了所述資料位址的SLE或索引與操作資源的索引相匹配的SLE獲得操作資源的SA。操作資源的SA用在資源存取安全檢查中。
在步驟360中,指令操作單元140照常執行指令。在步驟370中,安全檢查單元160在指令執行之後執行另一OE安全檢 查,其細節繪示於圖8中。此安全檢查所涉及的OE與指令自身相關。例如,OE可以是在指令執行期間提出的異常。對於此安全檢查,OE產生器將OE的索引提供到SLE單元170。SLE單元170根據所述索引在SLE中查找SA並且用所述SA對OE做標記。因此,安全檢查單元160從索引與OE的索引相匹配的一個所述SLE獲得OE的SA。OE的SA用在OE安全檢查中。在步驟380中,指令操作單元140提交(commit)指令並且寫回被指令修改過的資料。
當指令提取安全檢查失敗時,安全檢查單元160會提出安全異常。當OE安全檢查、SSI安全檢查或資源存取安全檢查中的任一者失敗時,安全檢查單元160也會提出安全異常。安全異常由安全異常單元180處理。安全異常處理的細節繪示於圖9中。
圖4繪示了根據本發明實施例的在步驟310中執行的指令提取安全檢查的詳細流程。首先,需要解釋一下術語當前指令(current instruction,CI)和下一個指令(next instruction,NI)。當前指令和下一個指令是按處理器100的提取次序來說的兩個指令。指令提取單元120對下一個指令的提取緊跟在指令提取單元120對當前指令的提取之後。就在步驟410開始之前,當前指令已經被提取出並且處在處理器100的執行管線的某一階段中(例如處在對應於步驟330、340、350、360、370或380的階段中),而下一個指令將要被提取。在本發明的某一其它實施例中,在當前指令和下一個指令都已經通過它們的對應指令提取安全檢查之 後,這兩個指令可以同時被提取。
在步驟410中,指令提取位址產生器110產生下一個指令的提取位址。在步驟420中,指令提取位址產生器110將提取位址提供到SLE單元170,以便對SLE進行查找來獲得下一個指令的ISA,從而用ISA對下一個指令做標記。在步驟430中,安全檢查單元160檢查查找是否失敗。
查找失敗意味著SLE單元170未能發現任何SLE的區域覆蓋了所提供的位址或任何SLE的索引與所提供的索引相匹配。當查找失敗時,這表示安全違規,因此安全檢查單元160在步驟490中提出安全異常。當查找通過時,在步驟440中,安全檢查單元160檢查下一個指令是否是為了執行OE處理程式或SSI處理程式而要提取的第一個指令。當下一個指令是為了執行OE處理程式或SSI處理程式而要提取的第一個指令時,沒必要執行更多安全檢查並且流程前進到步驟470。
或者,當下一個指令不是為了執行OE處理程式或SSI處理程式而要提取的第一個指令時,安全檢查單元160在步驟450中檢查下一個指令的ISA(NISA)是否比當前指令的ISA(CISA)更安全。步驟450之中的符號">"表示安全程度的「大於」。
當在步驟450中下一個指令的ISA比當前指令的ISA更安全時,這表示安全違規,安全檢查單元160在步驟490中提出安全異常。
當在步驟450中下一個指令的ISA沒有比當前指令的ISA 更安全時,在步驟470中,安全檢查單元160檢查是否需要群組ID檢查並且與當前指令的ISA相關聯的群組ID是否不同於與下一個指令的ISA相關聯的群組ID。是否需要群組ID檢查是處理器100的一個設計選擇。如果在步驟470中檢查的條件為真,那表示出現安全違規,因此安全檢查單元160在步驟490中提出安全異常。否則,安全檢查通過,並且下一個指令變成之後的當前指令。接下來,在步驟480中,指令提取單元120從先前由指令提取位址產生器110產生的提取位址提取當前指令。
關於圖4所示的指令提取安全檢查的一些實例,請參看圖2和圖4。假定圖2中的四個SLE的經排序的安全次序是SLE0、SLE1、SLE2和SLE3,其中SLE0的SA是四個SLE當中最安全的,並且假定不需要群組ID檢查。當處理器100的執行流程從區域3跳到區域0時,這個轉變就是個安全違規,必須提出安全異常。當處理器100的執行流從區域0跳到任何其它區域時,這樣的轉變是被允許的,因為區域0是最安全的。圖4所示的指令提取安全檢查不僅是為分支指令(branch instructions)、跳躍指令(jump instructions)和調用指令(call instructions)執行,而且還為循序執行而執行。例如,當處理器100的執行流從前一個位址(區域2)進入位址A5(區域1)時,提出安全違規。
圖5繪示了根據本發明實施例的在步驟330中執行的OE安全檢查的詳細流程。在步驟510中,OE產生器150檢查是否存在等待中的有效OE。當此類OE存在時,在步驟520中,OE產 生器150將OE的索引提供到SLE單元170來對SLE進行查找以便獲得OE的SA。在步驟530中,安全檢查單元160檢查查找是否失敗。當查找失敗時,則意味著OE沒有相關聯的SA並且不需要安全檢查。因此,流程前進到步驟560以處理OE。
當查找通過時,在步驟540中,安全檢查單元160基於 當前指令的ISA以及OE的SA執行OE安全檢查。在當前指令的ISA比OE的SA更安全時,OE安全檢查失敗。當步驟540中的安全檢查失敗時,OE產生器150可以在步驟550中推遲或忽略OE。被推遲的OE在步驟330的下一次反復中會被再次處理,而被忽略的OE將被刪除並且不會再見到。例如,當OE為中斷時,其中斷處理可被推遲到執行流進入相關聯的安全檢查通過的IFAS區域之後。另一實例是對於未能通過OE安全檢查的指令,將忽略對應於該OE的追蹤資料輸出。
當步驟540中的安全檢查通過時,在步驟560中,OE產 生器150檢查是否有必要發出陷阱通知(trap)使處理器100來處理OE。當有必要發出陷阱通知時,在步驟570中,OE產生器150便發出陷阱通知使處理器100來處理OE。例如,當OE為中斷或異常時,有必要發出陷阱通知使處理器100來將執行流重新引導到預定的處理程式。另外,OE產生器150可以向外部輸出適當的資訊,以便某一外部主機對OE作出回應。OE產生器150也可以不向外部輸出所述的適當資訊。當沒有必要發出陷阱通知時,在步驟580中,OE產生器150向外部輸出適當資訊。例如,在OE 是指令追蹤時,OE產生器150可以僅僅通過一輸出埠輸出對應的除錯資訊。
圖6繪示了根據本發明實施例的在步驟350中執行的資源存取安全檢查的詳細流程。在步驟605中,操作資源位址產生器130檢查當前指令是否為SSI。在當前指令是SSI時,流程前進到步驟610以執行SSI安全檢查。SSI安全檢查的細節繪示於圖7中。
在當前指令不是SSI時,在步驟615中,操作資源位址產生器130將操作資源的位址或索引提供到SLE單元170來對SLE進行查找,以便獲得當前指令所需的操作資源的SA。在步驟620中,安全檢查單元160檢查查找是否失敗。當查找失敗時,這表示有安全違規,因此安全檢查單元160在步驟625中提出安全異常。
當查找通過時,在步驟630中,安全檢查單元160檢查操作資源的SA(DSA)是否比當前指令的ISA更安全。當在步驟630中檢查的前述條件為真時,這表示安全違規,因此安全檢查單元160在步驟625中提出安全異常。
當在步驟630中檢查的條件為假時,在步驟640中,安全檢查單元160檢查是否需要群組ID檢查並且與當前指令的ISA相關聯的群組ID是否不同於與操作資源的SA相關聯的群組ID。 如果在步驟640中檢查的前述條件為真,這表示安全違規,因此安全檢查單元160在步驟645中提出安全異常。否則,安全檢查 通過,並且在步驟650中,指令操作單元140可以存取用於指令操作的操作資源。
圖7繪示了根據本發明實施例的在步驟350中執行的SSI 安全檢查的詳細流程。在步驟710中,操作資源位址產生器130將SSI的索引提供到SLE單元170來對SLE進行查找,以便獲得SSI的代碼SA。在步驟720中,安全檢查單元160檢查查找是否失敗。當查找失敗時,這表示安全違規,安全檢查單元160在步驟750中提出安全異常。
當查找通過時,安全檢查單元160在步驟730中執行SSI 安全檢查。當SSI指令的ISA不及SSI指令的代碼SA安全時,SSI安全檢查失敗。當SSI安全檢查失敗時,安全檢查單元160在步驟750中提出安全異常。當SSI安全檢查通過時,安全檢查單元160在步驟740中發出陷阱通知使處理器100來處理SSI。
圖8繪示了根據本發明實施例的在步驟370中執行的OE 安全檢查的詳細流程。在步驟805中,OE產生器150檢查當前指令的執行是否觸發了OE。在此類OE存在時,在步驟810中,OE產生器150將OE的索引提供到SLE單元170來對SLE進行查找以便獲得OE的SA。在步驟815中,安全檢查單元160檢查查找是否失敗。當查找失敗時,則意味著OE沒有關聯的SA並且不需要安全檢查。因此,流程前進到步驟840以處理OE。
當查找通過時,安全檢查單元160在步驟820中執行OE安全檢查。在當前指令的ISA比OE的SA更安全時,OE安全檢 查失敗。當步驟820中的安全檢查失敗時,安全檢查單元160在步驟825檢查OE是否為致命異常(fatal exception)。致命異常是在當前指令沒有恰當完成時被觸發並且會危及處理器100的狀態或一致性。當OE是致命異常時,安全檢查單元160在步驟830中提出安全異常。否則,OE產生器150可以在步驟835中忽略OE。
當步驟820中的安全檢查通過時,在步驟840中,OE產生器150檢查是否有必要發出陷阱通知使處理器100來處理OE。 當有必要發出陷阱通知時,在步驟845中,OE產生器150發出陷阱通知使處理器100來處理OE。另外,OE產生器150可以向外部輸出適當的資訊,以便某一外部主機對OE作出回應。當沒有必要發出陷阱通知時,則返回到圖3所示的主流程。另外,在步驟850中,OE產生器150可以向外部輸出適當資訊。
圖9繪示了根據本發明實施例的在提出安全異常時由安全異常單元180執行的安全異常處理的詳細流程。在步驟910中,安全異常單元180檢查是否需要輸出指示信號。是否輸出指示信號來回應安全異常是可以預先設定的。當需要輸出時,安全異常單元180在步驟920中設立(assert)指示信號,使得安全異常可以由外部裝置處理。否則,流程前進到步驟930。
在步驟930中,安全異常單元180檢查是否有必要停止處理器100的執行。當沒有必要停止執行時,安全異常單元180在步驟940中發出陷阱通知使處理器來處理安全異常(security exception,SE)。安全異常的處理程式可以駐存在最安全的區域 中,對於此區域,在進入安全異常的處理程式時,IFAS和LSAS分別的原始視圖(original view)始終分別保持一致。或者,安全異常的處理程式可以駐存在某些IFAS/LSAS中,在處理器100收到安全異常的陷阱通知時只有處理器100才能看到這些IFAS/LSAS。當有必要停止執行時,在步驟950中,安全異常單元180可以通過設立重置信號來重置並停止處理器100,或者通過停止時脈信號輸入到處理器100或清空(flush)處理器100的管線(pipeline)並停止處理器100的指令提取來完全停止處理器100。
總而言之,本發明是針對一種安全保護方法和一種處理器,所述處理器通過對指令、操作資源以及OE執行安全檢查來實施計算安全,從而為軟體執行提供堅固的安全邊界。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
310~380‧‧‧方法步驟

Claims (30)

  1. 一種由處理器執行的安全保護方法,包括:根據第一指令的指令安全屬性(ISA)和操作事件(OE)的安全屬性(SA)在執行所述第一指令之前或之後執行第一安全檢查,其中所述OE是作為所述處理器提取或執行所述第一指令時的副作用而產生、或作為對所述第一指令的監視結果而產生、或響應於所述處理器的外部輸入而產生;以及當所述第一安全檢查失敗時,忽略所述OE、推遲所述OE、或提出安全異常。
  2. 如申請專利範圍第1項所述的安全保護方法,更包括:執行第二安全檢查、第三安全檢查以及第四安全檢查中的至少一者,其中所述第二安全檢查是基於所述第一指令的所述ISA以及所述第一指令所存取的操作資源的SA,所述第三安全檢查是在所述第一指令為安全服務指令時執行,並且所述第三安全檢查是基於所述第一指令的所述ISA和代碼SA,所述第四安全檢查是基於所述第一指令的所述ISA和第二指令的ISA,其中所述處理器對所述第二指令的提取緊跟在所述處理器對所述第一指令的提取之後;以及當所述第二安全檢查、所述第三安全檢查以及所述第四安全檢查中的任一者失敗時,提出所述安全異常。
  3. 如申請專利範圍第2項所述的安全保護方法,其中當所述第一指令的所述ISA比所述OE的所述SA更安全時,所述第一安全檢查失敗,當所述第一指令的所述ISA不及所述操作資源的所述SA安全時或當所述第一指令的所述ISA至少和所述操作資源的所述SA同等安全且與所述第一指令的所述ISA相關聯的群組標識(群組ID)不同於與所述操作資源的所述SA相關聯的群組ID時,所述第二安全檢查失敗,當所述第一指令的所述ISA不及所述第一指令的所述代碼SA安全時,所述第三安全檢查失敗,當所述第一指令的所述ISA不及所述第二指令的所述ISA安全時或當所述第一指令的所述ISA至少和所述第二指令的所述ISA同等安全且與所述第一指令的所述ISA相關聯的所述群組ID不同於與所述第二指令的所述ISA相關聯的群組ID時,所述第四安全檢查失敗。
  4. 如申請專利範圍第2項所述的安全保護方法,其中所述操作資源是在載入/儲存位址空間(LSAS)中定址的資料、所述處理器的暫存器、或由所述處理器儲存或存取的多個安全查找項目(SLE)中的一個SLE,所述載入/儲存位址空間被映射到所述處理器的內部記憶體或外部介面且所述第一指令從所述載入/儲存位址空間讀取資料或將資料寫入所述載入/儲存位址空間,其中每個所述SLE記錄了所述LASA或指令提取位址空間(IFAS)中的區 域,所述處理器從所述IFAS提取所述第一指令和所述第二指令,且每個所述SLE進一步記錄了與所述區域相關聯的SA。
  5. 如申請專利範圍第4項所述的安全保護方法,更包括:從區域覆蓋了所述第一指令的提取位址的一個所述SLE獲得所述第一指令的所述ISA;從區域覆蓋了所述第二指令的提取位址的一個所述SLE獲得所述第二指令的所述ISA;以及從區域覆蓋了在所述LSAS中定址的所述資料的位址的一個所述SLE獲得所述資料的SA。
  6. 如申請專利範圍第4項所述的安全保護方法,其中所述處理器在主機除錯模式下提取的指令是用所述SLE中的一個特殊SLE的SA來標記,且所述特殊SLE只專用於所述主機除錯模式。
  7. 如申請專利範圍第2項所述的安全保護方法,其中所述處理器儲存或存取多個SLE,每個所述SLE包括一SA且每個所述SLE與一索引相關聯,並且所述安全保護方法更包括:從索引與所述OE的索引相匹配的一個所述SLE獲得所述OE的所述SA;從索引與所述操作資源的索引相匹配的一個所述SLE獲得所述操作資源的所述SA;以及從索引與所述第一指令的索引相匹配的一個所述SLE獲得所述第一指令的所述代碼SA,其中所述第一指令的所述索引是從所述第一指令的指令代碼、所述第一指令的運算元以及與所述第一 指令的所述ISA相關聯的群組ID中的至少一者得到。
  8. 如申請專利範圍第1項所述的安全保護方法,更包括:回應於所述安全異常而重置所述處理器、停止所述處理器、或發出陷阱通知使所述處理器處理所述安全異常。
  9. 一種處理器,包括:指令提取單元,從指令提取位址空間(IFAS)提取第一指令;指令操作單元,耦接到所述指令提取單元,用於執行所述第一指令;操作事件(OE)產生器,耦接到所述指令提取單元和所述指令操作單元,用於產生OE,所述OE作為所述指令提取單元提取所述第一指令時或所述指令操作單元執行所述第一指令時的副作用而產生、或作為對所述第一指令的監視結果而產生、或響應於所述處理器的外部輸入而產生;以及安全檢查單元,耦接到所述指令提取單元、所述指令操作單元和所述操作事件產生器,用於根據所述第一指令的指令安全屬性(ISA)和所述OE的安全屬性(SA)在所述指令操作單元執行所述第一指令之前或之後執行第一安全檢查,其中當所述第一安全檢查失敗時,所述OE產生器忽略所述OE、推遲所述OE、或提出安全異常。
  10. 如申請專利範圍第9項所述的處理器,更包括:指令提取位址產生器,耦接到所述指令提取單元,用於產生所述第一指令和第二指令的提取位址,其中所述指令提取單元對 所述第二指令的提取緊跟在所述指令提取單元對所述第一指令的提取之後;以及操作資源位址產生器,耦接到所述指令提取單元和所述指令操作單元,用於產生與所述第一指令所存取的操作資源相關聯的資料位址或索引,其中所述安全檢查單元進一步執行第二安全檢查、第三安全檢查和/或第四安全檢查,其中所述第二安全檢查是基於所述第一指令的所述ISA和所述操作資源的安全屬性(SA),其中所述操作資源的所述SA是根據所述資料位址或所述索引而獲得,所述第三安全檢查是在所述第一指令為安全服務指令時執行,並且所述第三安全檢查是基於所述第一指令的所述ISA和代碼SA,所述第四安全檢查是基於所述第一指令的所述ISA和所述第二指令的ISA,當所述第二安全檢查、所述第三安全檢查或所述第四安全檢查中的任一者失敗時,所述安全檢查單元提出所述安全異常。
  11. 如申請專利範圍第10項所述的處理器,其中當所述第一指令的所述ISA比所述OE的所述SA更安全時,所述第一安全檢查失敗,當所述第一指令的所述ISA不及所述操作資源的所述SA安全時或當所述第一指令的所述ISA至少和所述操作資源的所述SA同等安全且與所述第一指令的所述ISA相關聯的群組標識(群組 ID)不同於與所述操作資源的所述SA相關聯的群組ID時,所述第二安全檢查失敗,當所述第一指令的所述ISA不及所述第一指令的所述代碼SA安全時,所述第三安全檢查失敗,當所述第一指令的所述ISA不及所述第二指令的所述ISA安全時或當所述第一指令的所述ISA至少和所述第二指令的所述ISA同等安全且與所述第一指令的所述ISA相關聯的所述群組ID不同於與所述第二指令的所述ISA相關聯的群組ID時,所述第四安全檢查失敗。
  12. 如申請專利範圍第10項所述的處理器,其中所述操作資源是在載入/儲存位址空間(LSAS)中定址的資料、所述處理器的暫存器、或多個安全查找項目(SLE)中的一個SLE,所述載入/儲存位址空間被映射到所述處理器的內部記憶體或外部介面且所述第一指令從所述載入/儲存位址空間讀取資料或將資料寫入所述載入/儲存位址空間,並且所述處理器更包括:SLE單元,耦接到所述指令提取位址產生器、所述指令提取單元、所述操作資源位址產生器、所述OE產生器以及所述安全檢查單元,用於提供所述多個SLE,其中每個所述SLE記錄了所述LSAS或所述IFAS中的區域,所述處理器從所述IFAS提取所述第一指令和所述第二指令,且每個所述SLE進一步記錄了與所述區域相關聯的SA。
  13. 如申請專利範圍第12項所述的處理器,其中所述指令提 取單元從區域覆蓋了所述第一指令的所述提取位址的一個所述SLE獲得所述第一指令的所述ISA,所述指令提取單元從區域覆蓋了所述第二指令的所述提取位址的一個所述SLE獲得所述第二指令的所述ISA,並且所述安全檢查單元從區域覆蓋了在所述LSAS中定址的所述資料的位址的一個所述SLE獲得所述資料的SA。
  14. 如申請專利範圍第12項所述的處理器,其中所述指令提取單元在主機除錯模式下提取的指令是用所述SLE中的一個特殊SLE的SA來標記,且所述特殊SLE只專用於所述主機除錯模式。
  15. 如申請專利範圍第10項所述的處理器,更包括:SLE單元,耦接到所述指令提取位址產生器、所述指令提取單元、所述操作資源位址產生器、所述OE產生器以及所述安全檢查單元,用於提供多個SLE,其中每個所述SLE包括一SA且每個所述SLE與一索引相關聯,其中所述安全檢查單元從索引與所述OE的索引相匹配的一個所述SLE獲得所述OE的所述SA、從索引與所述操作資源的索引相匹配的一個所述SLE獲得所述操作資源的所述SA、且從索引與所述第一指令的索引相匹配的一個所述SLE獲得所述第一指令的所述代碼SA,其中所述第一指令的所述索引是從所述第一指令的指令代碼、所述第一指令的運算元以及與所述第一指令的所述ISA相關聯的群組ID中的至少一者得到。
  16. 如申請專利範圍第9項所述的處理器,更包括:安全異常單元,耦接到所述安全檢查單元,用於響應於所述 安全異常而重置所述處理器、停止所述處理器、或發出陷阱通知使所述處理器處理所述安全異常。
  17. 一種由處理器執行的安全保護方法,包括:在第一指令為安全服務指令時基於所述第一指令的指令安全屬性(ISA)和代碼安全屬性(SA)來執行第一安全檢查;以及當所述第一安全檢查失敗時,提出安全異常。
  18. 如申請專利範圍第17項所述的安全保護方法,更包括:執行第二安全檢查和第三安全檢查中的至少一者,其中所述第二安全檢查是基於所述第一指令的所述ISA以及所述第一指令所存取的操作資源的SA,所述第三安全檢查是基於所述第一指令的所述ISA以及第二指令的ISA,其中所述處理器對所述第二指令的提取緊跟在所述處理器對所述第一指令的提取之後;以及當所述第二安全檢查和所述第三安全檢查中的任一者失敗時,提出所述安全異常。
  19. 如申請專利範圍第18項所述的安全保護方法,其中當所述第一指令的所述ISA不及所述第一指令的所述代碼SA安全時,所述第一安全檢查失敗,當所述第一指令的所述ISA不及所述操作資源的所述SA安全時或當所述第一指令的所述ISA至少和所述操作資源的所述SA同等安全且與所述第一指令的所述ISA相關聯的群組標識(群組ID)不同於與所述操作資源的所述SA相關聯的群組ID時,所述 第二安全檢查失敗,當所述第一指令的所述ISA不及所述第二指令的所述ISA安全時或當所述第一指令的所述ISA至少和所述第二指令的所述ISA同等安全且與所述第一指令的所述ISA相關聯的所述群組ID不同於與所述第二指令的所述ISA相關聯的群組ID時,所述第三安全檢查失敗。
  20. 如申請專利範圍第18項所述的安全保護方法,其中所述操作資源是在載入/儲存位址空間(LSAS)中定址的資料、所述處理器的暫存器、或由所述處理器儲存或存取的多個安全查找項目(SLE)中的一個SLE,所述載入/儲存位址空間被映射到所述處理器的內部記憶體或外部介面,且所述第一指令從所述載入/儲存位址空間讀取資料或將資料寫入所述載入/儲存位址空間,其中每個所述SLE記錄了所述LSAS或指令提取位址空間(IFAS)中的區域,所述處理器從所述IFAS提取所述第一指令和所述第二指令,且每個所述SLE進一步記錄了與所述區域相關聯的SA。
  21. 如申請專利範圍第20項所述的安全保護方法,更包括:從區域覆蓋了所述第一指令的提取位址的一個所述SLE獲得所述第一指令的所述ISA;從區域覆蓋了所述第二指令的提取位址的一個所述SLE獲得所述第二指令的所述ISA;以及從區域覆蓋了在所述LSAS中定址的所述資料的位址的一個所述SLE獲得所述資料的SA。
  22. 如申請專利範圍第18項所述的安全保護方法,其中所述處理器儲存或存取多個SLE,每個所述SLE包括一SA且每個所述SLE與一索引相關聯,並且所述安全保護方法更包括:從索引與所述操作資源的索引相匹配的一個所述SLE獲得所述操作資源的所述SA;以及從索引與所述第一指令的索引相匹配的一個所述SLE獲得所述第一指令的所述代碼SA,其中所述第一指令的所述索引是從所述第一指令的指令代碼、所述第一指令的運算元以及與所述第一指令的所述ISA相關聯的群組ID中的至少一者得到。
  23. 一種處理器,包括:指令提取單元,從指令提取位址空間(IFAS)提取第一指令;指令操作單元,耦接到所述指令提取單元,用於執行所述第一指令;安全檢查單元,耦接到所述指令提取單元和所述指令操作單元,用於在所述第一指令為安全服務指令時基於所述第一指令的指令安全屬性(ISA)和代碼安全屬性(SA)來執行第一安全檢查,當所述第一安全檢查失敗時提出安全異常。
  24. 如申請專利範圍第23項所述的處理器,更包括:指令提取位址產生器,耦接到所述指令提取單元,用於產生所述第一指令和第二指令的提取位址,其中所述指令提取單元對所述第二指令的提取緊跟在所述指令提取單元對所述第一指令的提取之後;以及 操作資源位址產生器,耦接到所述指令提取單元和所述指令操作單元,用於產生與所述第一指令所存取的操作資源相關聯的資料位址或索引,其中所述安全檢查單元進一步執行第二安全檢查和/或第三安全檢查,其中所述第二安全檢查是基於所述第一指令的所述ISA和所述操作資源的SA,其中所述操作資源的所述SA是根據所述資料位址或所述索引而獲得,所述第三安全檢查是基於所述第一指令的所述ISA和所述第二指令的ISA,當所述第二安全檢查或所述第三安全檢查失敗時,所述安全檢查單元提出所述安全異常。
  25. 如申請專利範圍第24項所述的處理器,其中當所述第一指令的所述ISA不及所述第一指令的所述代碼SA安全時,所述第一安全檢查失敗,當所述第一指令的所述ISA不及所述操作資源的所述SA安全時或當所述第一指令的所述ISA至少和所述操作資源的所述SA同等安全且與所述第一指令的所述ISA相關聯的群組標識(群組ID)不同於與所述操作資源的所述SA相關聯的群組ID時,所述第二安全檢查失敗,當所述第一指令的所述ISA不及所述第二指令的所述ISA安全時或當所述第一指令的所述ISA至少和所述第二指令的所述ISA同等安全且與所述第一指令的所述ISA相關聯的所述群組ID 不同於與所述第二指令的所述ISA相關聯的群組ID時,所述第三安全檢查失敗。
  26. 如申請專利範圍第24項所述的處理器,其中所述操作資源是在載入/儲存位址空間(LSAS)中定址的資料、所述處理器的暫存器、或多個安全查找項目(SLE)中的一個SLE,所述載入/儲存位址空間被映射到所述處理器的內部記憶體或外部介面,且所述第一指令從所述載入/儲存位址空間讀取資料或將資料寫入所述載入/儲存位址空間,並且所述處理器更包括:SLE單元,耦接到所述指令提取位址產生器、所述指令提取單元、所述操作資源位址產生器以及所述安全檢查單元,用於提供所述多個SLE,其中每個所述SLE記錄了所述LSAS或所述IFAS中的區域,所述處理器從所述IFAS提取所述第一指令和所述第二指令,且每個所述SLE進一步記錄了與所述區域相關聯的SA。
  27. 如申請專利範圍第26項所述的處理器,其中所述指令提取單元從區域覆蓋了所述第一指令的所述提取位址的一個所述SLE獲得所述第一指令的所述ISA,所述指令提取單元從區域覆蓋了所述第二指令的所述提取位址的一個所述SLE獲得所述第二指令的所述ISA,並且所述安全檢查單元從區域覆蓋了在所述LSAS中定址的所述資料的位址的一個所述SLE獲得所述資料的SA。
  28. 如申請專利範圍第24項所述的處理器,更包括:SLE單元,耦接到所述指令提取位址產生器、所述指令提取單元、所述操作資源位址產生器以及所述安全檢查單元,用於提 供多個SLE,其中每個所述SLE包括一SA且每個所述SLE與一索引相關聯,其中所述安全檢查單元從索引與所述操作資源的索引相匹配的一個所述SLE獲得所述操作資源的所述SA、且從索引與所述第一指令的索引相匹配的一個所述SLE獲得所述第一指令的所述代碼SA,其中所述第一指令的所述索引是從所述第一指令的指令代碼、所述第一指令的運算元以及與所述第一指令的所述ISA相關聯的群組ID中的至少一者得到。
  29. 一種由處理器執行的安全保護方法,包括:根據第一指令的指令安全屬性(ISA)和操作事件(OE)的安全屬性(SA)在執行所述第一指令之前或之後執行第一安全檢查,其中所述OE是作為所述處理器提取或執行所述第一指令時的副作用而產生、或作為對所述第一指令的監視結果而產生、或響應於所述處理器的外部輸入而產生;當所述第一安全檢查失敗時,忽略所述OE、推遲所述OE、或提出安全異常;在所述第一指令為安全服務指令時基於所述第一指令的所述ISA和代碼SA來執行第二安全檢查;以及當所述第二安全檢查失敗時,提出所述安全異常。
  30. 一種處理器,包括:指令提取單元,從指令提取位址空間(IFAS)提取第一指令;指令操作單元,耦接到所述指令提取單元,用於執行所述第一指令; 操作事件(OE)產生器,耦接到所述指令提取單元和所述指令操作單元,用於產生OE,所述OE是作為所述指令提取單元提取所述第一指令時或所述指令操作單元執行所述第一指令時的副作用而產生、或作為對所述第一指令的監視結果而產生、或響應於所述處理器的外部輸入而產生;以及安全檢查單元,耦接到所述指令提取單元、所述指令操作單元以及所述操作事件產生器,用於根據所述第一指令的指令安全屬性(ISA)和所述OE的安全屬性(SA)在所述指令操作單元執行所述第一指令之前或之後執行第一安全檢查,以及在所述第一指令為安全服務指令時基於所述第一指令的所述ISA和代碼SA來執行第二安全檢查,其中當所述第一安全檢查失敗時,所述OE產生器忽略所述OE、推遲所述OE、或提出安全異常,其中當所述第二安全檢查失敗時,所述安全檢查單元提出所述安全異常。
TW103107625A 2013-07-09 2014-03-06 安全保護方法和處理器 TWI515597B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/938,218 US10061940B2 (en) 2013-07-09 2013-07-09 Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event

Publications (2)

Publication Number Publication Date
TW201502843A true TW201502843A (zh) 2015-01-16
TWI515597B TWI515597B (zh) 2016-01-01

Family

ID=52256667

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103107625A TWI515597B (zh) 2013-07-09 2014-03-06 安全保護方法和處理器

Country Status (4)

Country Link
US (1) US10061940B2 (zh)
JP (1) JP5841199B2 (zh)
CN (1) CN104281805B (zh)
TW (1) TWI515597B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2530050B (en) * 2014-09-10 2021-07-21 Advanced Risc Mach Ltd Debugging in a data processing apparatus
CN106997500A (zh) * 2016-01-22 2017-08-01 阿里巴巴集团控股有限公司 产品便捷检验方法及装置
US10684896B2 (en) 2017-02-20 2020-06-16 Tsinghua University Method for processing asynchronous event by checking device and checking device
US10642981B2 (en) 2017-02-20 2020-05-05 Wuxi Research Institute Of Applied Technologies Tsinghua University Checking method, checking device and checking system for processor
US10572671B2 (en) * 2017-02-20 2020-02-25 Tsinghua University Checking method, checking system and checking device for processor security
US10657022B2 (en) 2017-02-20 2020-05-19 Tsinghua University Input and output recording device and method, CPU and data read and write operation method thereof

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
US4962533A (en) * 1989-02-17 1990-10-09 Texas Instrument Incorporated Data protection for computer systems
US5845129A (en) 1996-03-22 1998-12-01 Philips Electronics North America Corporation Protection domains in a single address space
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US8051301B2 (en) * 2001-11-13 2011-11-01 Advanced Micro Devices, Inc. Memory management system and method providing linear address based memory access security
JP4302641B2 (ja) 2002-11-18 2009-07-29 エイアールエム リミテッド デバイスによるメモリへのアクセスの制御
US7171539B2 (en) 2002-11-18 2007-01-30 Arm Limited Apparatus and method for controlling access to a memory
KR100941104B1 (ko) 2002-11-18 2010-02-10 에이알엠 리미티드 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체
WO2006057316A1 (ja) * 2004-11-26 2006-06-01 Matsushita Electric Industrial Co., Ltd. プロセッサ、セキュア処理システム
US7068545B1 (en) 2005-01-04 2006-06-27 Arm Limited Data processing apparatus having memory protection unit
US7673345B2 (en) 2005-03-31 2010-03-02 Intel Corporation Providing extended memory protection
US8572329B2 (en) 2005-10-04 2013-10-29 Arm Limited Multi-region default memory map
JP4939387B2 (ja) 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法
GB2460393B (en) 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
US8301856B2 (en) * 2010-02-16 2012-10-30 Arm Limited Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US20120265904A1 (en) * 2011-06-23 2012-10-18 Renesas Electronics Corporation Processor system

Also Published As

Publication number Publication date
JP2015018552A (ja) 2015-01-29
US10061940B2 (en) 2018-08-28
CN104281805B (zh) 2017-09-15
US20150020211A1 (en) 2015-01-15
JP5841199B2 (ja) 2016-01-13
CN104281805A (zh) 2015-01-14
TWI515597B (zh) 2016-01-01

Similar Documents

Publication Publication Date Title
TWI515597B (zh) 安全保護方法和處理器
TWI655643B (zh) 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作
TWI726925B (zh) 用於管理有界指標的裝置和方法
US20220300583A1 (en) Systems and methods for policy linking and/or loading for secure initialization
ES2689560T3 (es) Bloque de diagnóstico de transacción
US20210255890A1 (en) Systems and methods for stalling host processor
US20180285561A1 (en) Method and system for detecting kernel corruption exploits
TW201941049A (zh) 用於轉換詮釋資料處理的指令的系統和方法
US11797398B2 (en) Systems and methods for checking safety properties
CN104412232A (zh) 事务处理
CN104335184A (zh) 事务执行分支指示
CN104364778A (zh) 在事务处理中保存/恢复选择的寄存器
CN104335177A (zh) 有选择地控制事务处理中的指令执行
CN104350474A (zh) 事务执行内的随机测试
CN104380246A (zh) 事务执行中的程序中断筛选
US20210055954A1 (en) Systems and methods for post cache interlocking
TW201901422A (zh) 用於管理能力域的設備及方法
CN112805710A (zh) 验证堆栈指针
US11080058B2 (en) Apparatus and method for controlling a change in instruction set
KR102183649B1 (ko) 커널 무결성 검증 장치 및 그 방법
KR20220139917A (ko) 캐퍼빌리티 기반 프로세싱을 위한 장치 및 방법
JP7049275B2 (ja) 診断データキャプチャ
JP5822848B2 (ja) 例外の制御方法、システムおよびプログラム
Easdon Undocumented CPU Behaviour on x86 and RISC-V Microarchitectures: A Security Perspective