TWI610197B - 保護客戶抵抗旁路攻擊的技術 - Google Patents

保護客戶抵抗旁路攻擊的技術 Download PDF

Info

Publication number
TWI610197B
TWI610197B TW105104965A TW105104965A TWI610197B TW I610197 B TWI610197 B TW I610197B TW 105104965 A TW105104965 A TW 105104965A TW 105104965 A TW105104965 A TW 105104965A TW I610197 B TWI610197 B TW I610197B
Authority
TW
Taiwan
Prior art keywords
protection
processor
value
level
instruction
Prior art date
Application number
TW105104965A
Other languages
English (en)
Other versions
TW201702924A (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
Application filed by 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201702924A publication Critical patent/TW201702924A/zh
Application granted granted Critical
Publication of TWI610197B publication Critical patent/TWI610197B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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/55Detecting local intrusion or implementing counter-measures
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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
    • 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
    • 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
    • G06F21/72Protecting 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 in cryptographic circuits
    • 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
    • G06F21/75Protecting 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 by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/162Implementing security features at a particular protocol layer at the data link layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/033Test or assess software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

揭示用於保護客戶抵抗旁路攻擊之發明的實施例。在一實施例中,處理器包含:指令硬體及執行硬體。指令硬體會接收用以提供抗旁路攻擊的保護碼之指令,其中,指令包含第一運算元以指明複數保護等級中之一。執行硬體會執行該指令,其中,指令的執行包含配置處理器以提供指定的保護等級。

Description

保護客戶抵抗旁路攻擊的技術
本揭示關於資訊處理領域,更特別關於資訊處理系統的安全領域。
惡意攻擊對於資訊處理系統及裝置的安全性是嚴重的威脅。旁路攻擊使用資料處理系統、裝置、或處理的快取駐留、分支預測準確度、功率消耗、電磁輻射、聲波測量、時序、或其它特徵的分析,以推測關於系統、裝置或要處理的資料的資訊。已開發很多資訊防衛抵抗旁路攻擊,但是隨著資訊處理系統的發展,還需要更多的技術。
100‧‧‧系統
110‧‧‧處理器
112‧‧‧保護硬體/邏輯
114‧‧‧SHIELD指令硬體/邏輯
120‧‧‧系統記憶體
130‧‧‧圖形處理器
132‧‧‧顯示器
140‧‧‧週邊控制代理器
142‧‧‧裝置
150‧‧‧資訊儲存裝置
200‧‧‧處理器
210‧‧‧儲存單元
214‧‧‧保護等級位置
220‧‧‧指令單元
230‧‧‧執行單元
232‧‧‧二進位轉譯硬體
234‧‧‧分支預測支源硬體
236‧‧‧性能監視計數器
240‧‧‧控制單元
250‧‧‧保護單元
260‧‧‧記憶體管理單元
在圖式中,以舉例而非限定方式,說明本發明。
圖1顯示根據本發明的實施例之系統,其包含保護客戶抵抗旁路攻擊。
圖2顯示根據本發明的實施例之包含保護客戶抵抗旁路攻擊之處理器。
圖3顯示根據本發明的實施例之防護指令的格式。
圖4及5顯示根據本發明的實施例之保護客戶抵抗旁路攻擊之方法。
【發明內容及實施方式】
說明保護客戶抵抗旁路攻擊之本發明的實施例。在本說明中,揭示例如組件和系統配置等眾多特定細節,以助於完整瞭解本發明。但是,習於此技藝者將瞭解,不用這些特定細節,仍可實施本發明。此外,未詳細地顯示某些習知的結構、電路及其它特點,以免模糊本發明。
在下述說明中,述及「一實施例」、「實施例」、「舉例說明的實施例」、「各式各樣的實施例」、等等時係表示所述之本發明的實施例可以包含一個以上的實施例之特定特點、結構、或特徵,且並非每一實施例一定包含這些特定特點、結構、或特徵。此外,某些實施例可以具有對其它實施例所述的特點中的一些、全部、或是完全沒有。
除非另外指明,否則在本說明及申請專利範圍中使用次序形容詞「第一」、「第二」、「第三」、等等來說明元件時僅是表示被述及的元件的特定情形或是被述及的類似元件的不同情形,且並非要意指所述的元件在時間、空間、分等、或任合其它方式上必須依特定順序。
而且,「位元」、「旗標」、「欄位」、「登錄」、「標示符」、等等是用以說明以硬體或是軟體實施之暫存器、表格、資料庫、或其它資料結構中任何型式的儲存位 置,並非要將本發明的實施例限定於任何特定型式的儲存位置或是位元數目或是任何特定儲存位置內的其它元件。使用「清除」一詞以表示儲存或促使零的邏輯值被儲存於儲存位置中,「設定」一詞用以表示儲存或促使1、全部1、或某些其它指定值的邏輯值儲存於儲存位置中;但是,這些詞並非要將本發明的實施例限定於任何特定的邏輯慣例,而是在本發明的實施例內可以使用任何邏輯慣例。
而且,當在本發明的實施例之說明中,在文詞之間使用「/」字元時係意指實施例包含或依使用、藉由、及/或根據第一文詞及/或第二文詞(及/或任何其它增加的文詞)而實施。
如同先前技術一節中所述般,資訊可能經由旁路而自系統洩漏。各式各樣保護系統、裝置、或處理之技術可供利用;但是,這些技術會增加功率消耦及/或降低性能。此外,各種因素有助於任何特定處理、程式、或序列或指令所需的保護程度。舉例而言,例如與二進位轉譯有關的碼最佳化會增加旁路攻擊的易感性。因此,需要本發明的實施例的使用以在相同系統上提供不同程度的旁路保護。
圖1顯示系統100,其為資訊處理系統,包含用於保護客戶抵抗旁路攻擊之本發明的實施例。系統100代表任何型式的資訊處理系統,例如伺服器、桌上型電腦、可攜式電腦、機上盒、例如平板電腦或智慧型手機等手持裝置、或是嵌入式控制系統。系統100包含處理器110、系統記憶體120、圖形處理器130、週邊控制代理器140、及資訊儲存裝置150。具體實施本發明的系統包含任何數目的這些組件中的各別組 件及任何其它組件或其它元件,例如週邊及輸入/輸出裝置。除非另外指明,否則,在本或任何系統實施例中的任何或全部組件或其它元件可以經由任何數目的匯流排、點對點、或其它有線或無線介面或連接而彼此連接、耦合、或以其它方式通訊。不論圖1中是否有顯示,系統100的任何組件或其它部份可以整合於或以其它方式包含於單一晶片(系統單晶片或SOC)、晶粒、基底、或封裝中。
系統記憶體120可以是動態隨機存取記憶體或是任何其它型式的可由處理器110讀取的媒體。圖形處理器130包含用於處理用於顯示器132的圖形資料之任何處理器或其它組件。週邊控制代理器140代表例如晶片組組件等任何組件,晶片組組件等任何組件包含下述組件或下述組件經由其而連接或耦合至處理器110:例如裝置142(例如觸控螢幕、鍵盤、麥克風、揚音器、其它音訊裝置、相機、視訊或其它媒體裝置、網路適配器、動作或其它感測器、用於全球定位或其它資訊的接收器、等等)、及/或資訊儲存裝置150等週邊輸入/輸出(I/O)、或是其它組件或裝置。資訊儲存裝置150包含任何型式的持久性或非依電性記憶體或儲存器,例如快閃記憶體及/或固態、磁性、或是光碟機。
處理器110代表整合於單一基底上或是封裝於單一封裝內的一或更多處理器或處理器核心,各處理器或處理器核心均包含任何組合的多緒及/或多執行核心。以處理器110表示或是在其中的各處理器可以是任何型式的處理器,包含例如英特爾®核心®處理器系列中或是來自英特爾®公司或其它公 司的其它處理器系列中的處理器等一般用途微處理器、特定用途處理器或微控制器、或是實施本發明的實施例之資訊處理系統中的任何其它裝置或組件。處理器100可以架構成及設計成根據任何指令集架構操作,可由或不由微碼控制。
使用如下所述般配置的或是根據任何其它方式之嵌入在硬體、微碼、韌體、及/或其它結構中的電路及/或邏輯的任何組合,根據本發明的實施例之客製化旁路攻擊防護之支援可以實施於例如處理器110等處理器中,且在圖1中表示成保護硬體及/或邏輯112,如下所述般,保護硬體及/或邏輯112包含硬體及/或邏輯114以支援SHIELD指令客製化根據本發明的實施例之旁路攻擊保護。
處理器200包含儲存單元210、指令單元220、執行單元230、控制單元240、及保護單元250,其中,保護單元250對應於圖1中的保護硬體/邏輯112。處理器200也包含未顯示於圖1中的任何其它電路、結構、或邏輯。雖然在處理器200中顯示成分別的單元,但是,如上所述及又如下所述般,保護單元250的功能可以含於或分散於處理器200中任何標示的單元或它處中。此外,處理器200的所述及/或所示單元中的各單元的功能及/或電路可以以任何方式結合及/或散佈於處理器200中。
儲存單元210包含處理器200內可用於任何目的之任何型式的儲存器的任何組合;舉例而言,其包含任何數目的使用任何記憶體或儲存技術實施之可讀取的、可寫入的、及/或可讀寫的暫存器、緩衝器、及/或快取記憶體以儲存能力資 訊、配置資訊、控制資訊、狀態資訊、性能資訊、指令、資料、及可用於處理器200的操作中的任何其它資訊,以及可用以存取此儲存器的電路。儲存單元210包含一或更多快取記憶體212。
在實施例中,如下所述,儲存單元210包含保護等級儲存位置214,以儲存要用以控制或配置旁路攻擊保護等級及/或技術之一或更多值。關於內容切換,根據系統100的系統架構,保護等級儲存位置214的內容可以被儲存至系統記憶體120、資訊儲存裝置150、及/或任何其它依電性或非依電性記憶體或儲存器中的一或更多指定的位置或自此一或更多指定的位置恢復。
指令單元220包含任何電路、邏輯、結構、及/或其它硬體,例如指令解碼器,以取還、接收、解碼、解譯、排程、及/或處理要由處理器200執行的指令。在本發明的範圍內,可以使用任何指令格式,舉例而言,指令包含作業碼及一或更多運算元,其中,作業碼可以被解碼成一或更多微指令或微作業以用於由執行單元230執行。運算元或其它參數可以指令隱含地、直接地、間接地、或根據任何其它方式而相關連。
在實施例中,指令單元220可以設計成接收SHIELD指令,於下將說明SHIELD指令由處理器200執行。注意,僅為了方便而提供此指令的名稱,本發明的實施例可以包含具有任何所需的名稱之此類指令。注意,說明本發明的各式各樣的實施例,且本發明的各式各樣的實施例更可能的是包含 SHIELD指令的參數中各種差異及處理器對SHIELD指令的響應。本發明的實施例包含一或更多這些變異。在各式各樣的實施例中,不同的指令可以用於SHIELD指令的各變化,或是它們是可以相同指令的葉。
執行單元230可以包含任何電路、邏輯、結構、及/或其它硬體,例如算術單元、邏輯單元、浮點單元、偏移器、等等以處理資料及執行指令、微指令、及/或微作業。執行單元230代表任何一或更多實體上或邏輯上互異的執行單元。執行單元230包含硬體以提供特定特點及/或增進的性能,例如二進位轉譯支援硬體232、分支預測支援硬體234、及性能監視計數器236。
控制單元240包含任何微碼、韌體、電路、邏輯、結構、及/或硬體以控制處理器200的單元及其它元件的操作以及處理器200內、進入、及出去的資料的傳送。舉例而言,藉由使用執行單元230及/或任何其它資源而促使處理器200執行指令單元220接收的指令及自指令單元220接收的指令導出的微指令或微作業,控制單元240可以促使處理器200執行或參與例如下述方法實施例等本發明的方法實施例的性能。由執行單元230進行之指令執行會根據儲存在儲存單元210中的控制及/或配置資訊而變,其中,此控制及/或配置資訊可以儲存在或程式化成為與一或更多SHIELD指令的執行有關的保護級儲存位置214。
保護單元250可以包含任何電路、邏輯、結構、及/或其它硬體以實施何任一或更多硬體機構及/或技術來保護系統 100、處理器200、及/或處理器200進行的碼執行免於旁路攻擊。這些技術包含但不限於禁能或改變二進位轉譯(例如,二進位轉譯支援硬體232)、禁能或改變一或更多快取記憶體(例如快取記憶體212)的作業、禁能或改變分支預測(例如分支預測支援硬體234)、禁能或改變性能監視計數器的作業(例如,性能監視計數器236)、等等。因此,保護單元250包含或代表電路或硬體,用以賦能、禁能、配置、重配置、或以其它方式控制用以支援特點或強化處理器200的性能之處理器200中的電路或硬體,其中,此電路或硬體的使用會增加對於旁路攻擊的易感性。注意,此控制電路或硬體可以實體上設於處理器200中的執行單元230、控制單元240、或是任意處中,但是,為了便於說明及/或容易說明,而說明成包含於保護單元250中。
舉例而言,由於轉譯會造成移除不必要的負擔,所以,要求二進位轉譯禁能。但是,在涉及密碼使用的碼中,刻意地添加不必要的負擔以隱藏可比較碼路徑或分支中負擔的數目及/或平衡所述負擔的比例,以致於不會洩漏關於暫存器中的的資料之資訊(例如,0對1的比例),被載入的資料是藉由此資訊而被處理的(例如,假使被載入的資料是要邏輯上與0作及運算,則負擔是不必要的)。在此情形中,本發明的實施例可望禁止對此敏感碼使用二進位轉譯但是能夠對其它碼使用二進位轉譯。
舉例而言,由於複雜的分支預測技術係使決定根據從碼的先前執行維持的狀態,在碼重複執行期間經由分支預測, 使得碼容易洩漏資訊,所以,要求分支預測禁能或改變。在此情形中,本發明的實施例會對敏感碼恢復無狀態分支預測(例如反向採取順向不取)或是無分支預測,但是,對其它碼能夠使用複雜的、性能強化的分支預測。
舉例而言,由於在密碼表查詢期間快取不中的頻率及它們對性能的影響會洩漏記憶體存取樣式有關的資訊,所以,要求一或更多快取記憶體的禁能或改變。在此情形中,本發明的實施例會要求對敏感碼的載入及儲存繞過共用的快取記憶體,以致於共用敏感碼的快取記憶體之另一處理無法取得關於敏感碼之快取有關的資訊,但是,能夠對其它碼使用共用快取之性能強化使用。
舉例而言,由於如上所述地藉由重複分析例如快取不中等各種性能測量會洩漏關於敏感碼的資訊,所以,要求性能監視計數器的作業禁能或改變。在此情形中,本發明的實施例會對敏感碼禁止使用或添加雜訊或隨機性至性能監視計數器,但是,對其它碼能夠使用這些計數器。
圖3顯示根據本發明的實施例之指令的格式300。格式300包含任何數目的欄位,各欄位包含任何數目的位元。格式300中的位元總數取決於處理器的指令集架構。舉例而言,格式300具有32位元、64位元、等等的長度。
格式300包含第一欄位310,第一欄位310可為用以指明指令型式的作業編碼(作業碼)欄位。在實施例中,一或更多特定值可以作為用於SHIELD指令的作業碼。作業碼可為根據一或更多指令集架構造成無作業(NOP)執行的作業碼, 依所述一或更多指令集架構,新的或擴充的指令集架構設計成反向共容的。
格式300包含第二欄位320,第二欄位320可為用以指明要由指令使用的一或更多參數或是其它值之運算元欄位。在本發明的範圍內,用於SHIELD指令的運算元欄位320的格式的很多變異是可能的,於下將說明這些變異中的某些變異。格式300包含任何數目的增加的運算元欄位、保留欄位、或是任何其它欄位。
在實施例中,SHIELD指令的執行包含將運算元欄位320中的值儲存於或寫入於保護等級儲存位置214中。因此,在由處理器200進行碼執行期間,保護等級儲存位置214的內容可由處理器200使用(例如控制單元240及/或執行單元230)以賦能、禁能、及/或控制處理器硬體(例如,在保護單元250及/或執行單元230中),以便如下進一步說明般實施抗旁路攻擊保護的不同等級及/或技術。
在實施例中,運算元欄位320可用以指明要由處理器200用以抵抗旁路攻擊的保護等級。舉例而言,在運算元欄位320中的最低值(例如0)可以指明未使用旁路保護。因此,具有0運算元的SHIELD指令的執行會造成禁能及/或未使用可供處理器200提供的所有旁路保護機構、技術、等等。最高值(例如在運算元欄位320中的所有位元都是1(MAXVAL))可以指明要使用之所有可供利用的旁路保護。因此,具有MAXVAL運算元的SHIELD指令的執行會造成賦能及/或使用可供處理器200提供的所有旁路保護機構、技術、等等。
根據處理器的架構,可以使用0與MAXVAL之間的運算元值,以指明抗旁路攻擊的不同保護等級(例如,始於0且增加至MAXVAL的值可以指明增加的保護等級)。可以由處理器的設計師及/或設計者,以微碼、韌體、及/或硬體,選擇及實施選擇保護等級的定義及分等。可以由軟體開發者選擇碼執行期間要使用哪一等級。
舉例而言,SHIELD運算元的任何非0或正的值會造成二進位轉譯禁能,更高的值會造成二進位轉譯禁能、以及當執行載入及儲存時繞過共用的快取記憶體;以及,甚至更高的值會造成二進位轉譯禁能、當執行載入及儲存時繞過共用的快取記憶體、以及無狀態分支預測;又甚至更高的值會造成二進位轉譯禁能、當執行載入及儲存時繞過共用的快取記憶體、無狀態分支預測、以及性能監視計數器禁能。
在實施例中,運算元欄位320可以用於位元罩,其中,位元罩中的各位元可用以賦能或禁能特定的硬體機構或技術以防護旁路攻擊。舉例而言,在運算元欄位320中的第一位元可以被指定用於禁能二進位轉譯、第二位元用於禁能共用的快取記憶體的使用、第三位元用於禁能分支預測、第四位元用於禁能性能監視計數器、等等。
注意,前述僅為簡單實例,很多變異可能在本發明的範圍內,某些提供更精密之硬體機構或技術的控制粒度。舉例而言,二或更多位元可以控制性能監視計數器的使用:第一位元用於禁能第一計數器或計數器組、第二位元用於添加雜訊或隨機性至第一計數器或計數器組、第三位元用於禁能第 二計數器或計數器組、第四位元用於添加雜訊或隨機性至第二計數器或計數器組、等等。
如上所述,本發明的實施例提供很多不同等級及型式的旁路保護,其中,各旁路保護可用以保護任一或更多碼序列。但是,為了方便起見,本說明的部份會述及「受防護的」碼及「未防護的」碼以意指經由使用本發明的實施例,在由處理器進行的第一碼序列(受防護的碼)的執行期間,施加旁路保護的等級或型式,其中,旁路保護的等級或型式大於由處理器進行的第二碼序列(未防護的碼)的執行期間施加的旁路保護(假使有任何旁路保護)的等級或型式。在某些實施例中,未受防護的碼可為依當處理器在內定狀態時施加的或將施加的相同等級或型式的旁路保護(假使有任何旁路保護)而執行的碼,在所述內定狀態中係無SHIELD指令被執行。
格式300包含第三欄位330,第三欄位330可為運算元欄位用以辨識要被施加指定的保護等級之記憶體的(例如系統記憶體120的)頁或其它區域以用於來自該頁或區域的碼的執行。雖然各式各樣的實施例會供應受保護區的大小為單一頁(任何尺寸的)、頁組(如下所述,例如經由使用階層頁表格分組)、及/或任何尺寸或型式的區域,第三欄位330被稱為頁ID欄位330。在使用頁ID欄位330的實施例中,將指明要施加的保護等級或是定義保護之值(例如來自運算元欄位320的值)或是值的部份,與SHIELD指令的執行有關地,儲存在對應於經過辨識的頁或區域之儲存位置或其它資料結 構或分頁中的登錄中。
處理器硬體(例如記憶體管理單元(MMU)260)當頁或其它區域被存取時(例如由指令單元220取還)可以參照登錄,以及施加指明的保護(例如,藉由將值載入保護等級儲存區214)。值可以儲存在記憶體管理資料結構中階層結構的一或更多等級處的一或更多登錄中(例如頁表格(PT)、頁目錄表(PDT)、頁目錄指標表(PDPT)、頁圖等級4表(PML4T)、擴充的或巢狀的PT、擴充的或巢狀的PDT、擴充的或巢狀的PDPT、擴充的或巢狀的PML4T、等等),以致於指定的保護可以施加至經由任何給定等級而被存取的記憶體之頁組或是其它區域。值也或者取代地被儲存於與實體記憶體頁相關連的元資料中。
包含頁ID欄位330之本發明的實施例可以提供未被防護的碼與被防護的碼(反之亦然)之間發生轉變,而不用在未被防護的碼與被防護的碼的執行之間執行SHIELD指令。舉例而言,在未被防護的碼執行期間,可以執行SHIELD指令以將頁指定為被防護的,則未被防護的碼的執行在來自該或任何其它被防護的碼之任何碼被執行之前會繼續。與任何後續轉移至受防護的頁上的碼之控制(例如通過、分支、等等)有關,處理器硬體(例如MMU 260及/或保護單元250)會決定頁被保護以及在被防護的碼執行之前會施加請求的保護。然後,與任何後續轉移至未被防護的頁上的碼之控制(例如通過、分支、等等)有關,處理器硬體(例如MMU 260及/或保護單元250)會在不被防護的碼執行之前移除保 護。
如上所述,本發明的實施例提供由軟體開發者選擇碼執行期間哪一等級保護及/或使用的保護之細節的規格。因此,包含系統軟體、密碼及/或其它庫模組、虛擬機監視器、超管理器、嵌入式安全層、等等碼開發者可以根據碼靈敏度、所需或要求的保護程度、保護與性能之間的取拾及/或功率消耗、等等,使用用於旁路攻擊保護之客戶等級及/或客戶技術,而不會影響其它碼可利用的性能等及/或硬體為基礎的特點。
此外,軟體可以最佳化或以其它方式設計成槓桿操作或其它方式利用SHIELD指令的使用以提供其它保護或安全技術。換言之,SHIELD指令的使用可為保護增加的SHIELD指令在前的碼序列及/或在保護降低的SHIELD指令之前的碼序列是敏感的碼及/或應被保護。舉例而言,作業系統可以在被保護的碼被運行之後選擇執行增加的暫存器或記憶體清洗。在被保護的碼執行期間,反惡意軟體、指令偵測、或其它安全軟體可以選擇增加其安全等級。
圖4及5分別顯示根據本發明的實施例之用於保護客戶抵抗旁路攻擊的方法400和500。參考圖1、2及3的元件以助於說明圖4及5的方法實施例,但是,本發明的方法實施例不侷限於此。方法400及500的不同部份可以由硬體、韌體、軟體、及/或系統或裝置的使用者執行。
在方法400的區塊410中,系統以內定的旁路保護等級開機。在本實施例中,內定等級是未施加保護的等級,以致 於以最高可利用的性能等級來執行開機處理。替代地,舉例而言,假使開機處理包含密碼鑰的產生,則內定等級可為施加最大或高等級保護之等級。替代地,內定等級可在之間的任何處、或是由為了與未包含SHIELD指令之指令集架構所開發的碼反向共容之要求所指定。
在區塊412中,在旁路保護的內定等級,執行第一碼序列。在區塊420中,執行SHIELD指令以改變旁路保護的等級。在本實施例中,舉例而言,由於SHIELD指令包含具有比對應於內定保護等級的值還高的值,所以,執行SHIELD指令以增加旁路保護的等級。
在方塊422中,第二碼序的執行開始,其中,執行具有高於內定等級的旁路保護等級;因此,根據本發明的實施例,第二碼序列受保護。在區塊424中,第二碼序列的執行結束。
在區塊426中,執行SHIELD指令以改變旁路保護的等級。在本實施例中,舉例而言,由於SHIELD指令包含具有的值低於區塊420中執行的SHIELD指令相關連的值之運算元,所以,執行SHIELD指令以降低旁路保護的等級。
在區塊430中,第三碼序列的執行開始,其中,執行具有比方塊區422的更高等級還低之旁路保護等級;因此,第三碼序列不受保護,這提供比被保護的碼還高的性能等級。
從區塊430,方法400以如所需一般多的不同運算元值繼續(未顯示),包含如所需一般多的SHIELD指令的執行,以藉由在保護與性能之間折衷時提供不同的碼以在很多不同 的作業點上運行,而客製化系統。
在方法500的區塊510中,系統以內定的旁路保護等級開機。在本實施例中,內定等級是未被保護。在區塊512中,來自第一記憶體頁的第一碼序列的執行開始,執行是在不受保護的旁路保護等級。
在區塊514中,執行在第一碼序列內的SHIELD指令以將被保護的旁路保護等級施加至第二記憶體頁。舉例而言,SHIELD指令包含在運算元欄位320中標示之所需的保護等級以及在運算元欄位330中第二記憶體頁的ID。
在區塊516中,第一碼序列的執行在不受保護的旁路保護等級繼續。在區塊520中,處理器的控制轉移至第二碼序列,其中,第二碼序列是來自第二記憶體頁。
在區塊522中,處理器硬體為回應控制從不被保護的碼轉移至被保護的碼,會重配置其本身以施加區塊514中執行的SHIELD指令所指定的被保護之旁路保護等級。在區塊524中,來自第二記憶體頁的第二碼序列的執行開始,執行是在被保護之旁路保護等級。在區塊526中,第二碼序列的執行在被保護的旁路保護等級繼續。在區塊530中,處理器的控制轉移至第三碼序列(或是回至第一碼序列),其中,第三碼序列是來自不被保護的記憶體頁。
在區塊532中,處理器硬體為回應控制從被保護的碼轉移至不被保護的碼,會重配置其本身以移除被保護之旁路保護等級。在區塊534中,第三碼序列的執行開始,執行是在不被保護之旁路保護等級。
從區塊534,方法500以如所需一般多的不同運算元值和頁ID繼續(未顯示),包含如所需一般多的SHIELD指令的執行,以藉由在保護與性能之間折衷時提供不同的碼以在很多不同的作業點上運行,而客製化系統。
在本發明的不同實施例中,可以以所示的區塊相結合或省略、以增加的區塊、或是以重排序的、相結合的、省略的、或增加的區塊,來執行圖4及5中所示的方法。此外,本發明的方法實施例不侷限於方法400、500、或其變異。此處未述之很多其它方法實施例(與設備、系統、及其它實施例)可能在本發明的範圍之內。
如上所述,本發明的實施例或實施例的部份可以儲存於任何形式的機器可讀取的媒體上。舉例而言,全部或部份方法400及/或500可以以儲存在可由處理器110讀取的媒體上的軟體或韌體指令來具體實施,所述軟體或韌體指令當由處理器110執行時,會促使處理器110執行本發明的實施例。而且,本發明的態樣可以以儲存在機器可讀取的媒體上的資料具體實施,其中,資料代表可用以製造全部或部份處理器110之設計或其它資訊。
如此,已經說明用於保護客戶抵抗旁路攻擊之本發明的實施例。雖然說明及於圖式中顯示某些實施例,但是,由於習於此技藝的一般技術者在研讀本揭示後可知各式各樣的其它修改,所以,須瞭解這些實施例僅為說明性的而非寬廣的本發明之限定,以及本發明不侷限於所示及所述的特定結構及配置。在例如本技藝等成長快速且不易預見進展之技術領 域中,在不悖離後附的申請專利範圍的範圍或本揭示的原理之下,隨著技術的進展易於在配置及細節上修改揭示的實施例。
200‧‧‧處理器
210‧‧‧儲存單元
212‧‧‧快取記憶體
214‧‧‧保護等級位置
220‧‧‧指令單元
230‧‧‧執行單元
232‧‧‧二進位轉譯硬體
234‧‧‧分支預測支源硬體
236‧‧‧性能監視計數器
240‧‧‧控制單元
250‧‧‧保護單元
260‧‧‧記憶體管理單元

Claims (22)

  1. 一種用於保護抵抗旁路攻擊的處理器,包括:分支預測支援硬體;可共用的快取記憶體;指令解碼電路,用以解碼用以提供抗旁路攻擊的保護碼之保護指令,其中,該保護指令是要包含第一運算元以指明保護值,其中,該保護值為複數個保護值中之一,該複數個保護值範圍從用以指明最小保護等級的最小值到用以指明最大保護等級的最大值並且在該最小值與該最大值之間具有複數個中間值,該複數個中間值用以指明要在該最小保護等級及該最大保護等級之間增加的保護等級分等;保護電路,用以回應於該保護指令來配置該處理器以提供被該保護值所指明的保護等級,包含回應於第一保護值而繞過該可共用的快取記憶體、回應於第二保護值而使用無狀態分支預測,以及回應於第三保護值而繞過該可共用的快取記憶體及使用無狀態分支預測。
  2. 如申請專利範圍第1項之處理器,又包括二進位轉譯支援硬體,其中,該保護指令的執行包含重配置該處理器以改變該二進位轉譯支援硬體的作業。
  3. 如申請專利範圍第1項之處理器,其中,該保護指令的執行包含重配置該處理器以改變該分支預測支援硬體的作業。
  4. 如申請專利範圍第1項之處理器,其中,該保護指令的執行包含重配置該處理器以改變該可共用的快取記憶體的 作業。
  5. 如申請專利範圍第1項之處理器,又包括一或更多性能監視計數器,其中,該保護指令的執行包含重配置該處理器以改變該一或更多性能監視計數器的作業。
  6. 如申請專利範圍第1項之處理器,又包括保護等級儲存位置,用以儲存該第一運算元的該值。
  7. 如申請專利範圍第1項之處理器,其中,該第一運算元會指明位元罩的值,該位元罩的各位元用以控制複數硬體支援的特點中之一的作業。
  8. 如申請專利範圍第7項之處理器,其中,該位元罩包含用以控制二進位轉譯支援硬體的作業之位元。
  9. 如申請專利範圍第7項之處理器,其中,該位元罩包含用以控制該分支預測支援硬體的作業之位元。
  10. 如申請專利範圍第7項之處理器,其中,該位元罩包含用以控制該可共用的快取記憶體的作業之位元。
  11. 如申請專利範圍第7項之處理器,其中,該位元罩包含用以控制一或更多性能監視計數器的作業之位元。
  12. 如申請專利範圍第1項之處理器,其中,該保護指令包含第二運算元,用以指明記憶體區的識別符,其中,該指定的保護等級會施加至從記憶體區取還的碼。
  13. 一種用於保護抵抗旁路攻擊的方法,包括:由處理器接收用以提供抗旁路攻擊的保護碼之保護指令,其中,該保護指令包含運算元以指明保護值,其中,該保護值為複數個保護值中之一,該複數個保護值範圍從用以 指明最小保護等級的最小值到用以指明最大保護等級的最大值並且在該最小值與該最大值之間具有複數個中間值,該複數個中間值用以指明要在該最小保護等級及該最大保護等級之間增加的保護等級分等;由該處理器執行該保護指令,其中,該保護指令的執行包含配置該處理器以提供被該保護值所指明的保護等級,包含回應於第一保護值而繞過可共用的快取記憶體、回應於第二保護值而使用無狀態分支預測,以及回應於第三保護值而繞過該可共用的快取記憶體及使用無狀態分支預測。
  14. 如申請專利範圍第13項之方法,其中,該保護指令的執行包含重配置該處理器以改變二進位轉譯支援硬體的作業。
  15. 如申請專利範圍第13項之方法,其中,該保護指令的執行包含重配置該處理器以改變分支預測支援硬體的作業。
  16. 如申請專利範圍第13項之方法,其中,該保護指令的執行包含重配置該處理器以改變該可共用的快取記憶體的作業。
  17. 如申請專利範圍第13項之方法,其中,該保護指令的執行包含重配置該處理器以改變一或更多性能監視計數器的作業。
  18. 如申請專利範圍第13項之方法,又儲存該運算元的該值於該處理器中的保護等級儲存位置。
  19. 一種用於保護抵抗旁路攻擊的方法,包括: 由處理器執行具有不被保護的旁路保護等級之第一碼序列;由該處理器執行用以施加保護給記憶體區之保護指令,其中,該保護指令包含第一運算元以及第二運算元,該第一運算元用以指明保護值,其中,該保護值為複數個保護值中之一,該複數個保護值範圍從用以指明最小保護等級的最小值到用以指明最大保護等級的最大值並且在該最小值與該最大值之間具有複數個中間值,該複數個中間值用以指明要在該最小保護等級及該最大保護等級之間增加的保護等級分等,該第二運算元係用以指定該記憶體區的識別符;將該處理器的控制轉移至第二碼序列,該第二碼序列來自該記憶體區;回應保護施加至該記憶體區之決定,由該處理器重配置該處理器以在被該保護值所指明的保護等級施加保護,包含回應於第一保護值而繞過可共用的快取記憶體、回應於第二保護值而使用無狀態分支預測,以及回應於第三保護值而繞過該可共用的快取記憶體及使用無狀態分支預測;由該處理器執行具有被保護的旁路保護等級之該第二碼序列。
  20. 如申請專利範圍第19項之方法,又包括在執行該指令與轉移控制之間執行不被保護的碼。
  21. 一種用於保護抵抗旁路攻擊的系統,包括:系統記憶體,用以儲存保密資訊;以及處理器,包含: 指令解碼電路,用以解碼用以提供抗旁路攻擊的保護碼之保護指令,其中,該保護指令是要包含第一運算元以指明保護值,其中,該保護值為複數個保護值中之一,該複數個保護值範圍從用以指明最小保護等級的最小值到用以指明最大保護等級的最大值並且在該最小值與該最大值之間具有複數個中間值,該複數個中間值用以指明要在該最小保護等級及該最大保護等級之間增加的保護等級分等;保護電路,用以回應於該保護指令來配置該處理器以提供被該保護值所指明的保護等級,包含回應於第一保護值而繞過可共用的快取記憶體、回應於第二保護值而使用無狀態分支預測,以及回應於第三保護值而繞過該可共用的快取記憶體及使用無狀態分支預測。
  22. 如申請專利範圍第21項之系統,其中,該保護指令包含第二運算元以指明該系統記憶體的區域的識別符,其中,該指明的保護等級會施加至從該系統記憶體的該區域取還的碼。
TW105104965A 2015-03-24 2016-02-19 保護客戶抵抗旁路攻擊的技術 TWI610197B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/666,719 US10063569B2 (en) 2015-03-24 2015-03-24 Custom protection against side channel attacks
US14/666,719 2015-03-24

Publications (2)

Publication Number Publication Date
TW201702924A TW201702924A (zh) 2017-01-16
TWI610197B true TWI610197B (zh) 2018-01-01

Family

ID=56975888

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105104965A TWI610197B (zh) 2015-03-24 2016-02-19 保護客戶抵抗旁路攻擊的技術

Country Status (5)

Country Link
US (1) US10063569B2 (zh)
EP (1) EP3274899A4 (zh)
CN (1) CN107257978B (zh)
TW (1) TWI610197B (zh)
WO (1) WO2016153675A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2646368C1 (ru) * 2017-05-22 2018-03-02 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Способ защиты информации при копировании со средств вычислительной техники на внешние накопители
CN108011707B (zh) * 2017-11-28 2021-07-06 武汉大学 一种用于硬件加密设备的频率安全性分析系统及方法
US10599835B2 (en) 2018-02-06 2020-03-24 Vmware, Inc. 32-bit address space containment to secure processes from speculative rogue cache loads
US10929535B2 (en) * 2018-06-29 2021-02-23 Intel Corporation Controlled introduction of uncertainty in system operating parameters
US10860300B2 (en) 2018-08-28 2020-12-08 Red Hat, Inc. Direct function call substitution using preprocessor
US11635965B2 (en) * 2018-10-31 2023-04-25 Intel Corporation Apparatuses and methods for speculative execution side channel mitigation
US11029957B1 (en) 2020-03-27 2021-06-08 Intel Corporation Apparatuses, methods, and systems for instructions to compartmentalize code
US11386204B2 (en) * 2020-09-24 2022-07-12 Intel Corporation Agile reconfigurable approach for real-time replacement of on-chip safety-critical modules

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026525A1 (en) * 2004-07-28 2006-02-02 Fischer Stephen A User opt-in processor feature control capability
TW200801964A (en) * 2005-12-20 2008-01-01 Silicon Image Inc Convert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
US20080155679A1 (en) * 2006-12-05 2008-06-26 Julien Sebot Mitigating Branch Prediction and Other Timing Based Side Channel Attacks
US20090089564A1 (en) * 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities
TW200928736A (en) * 2007-12-27 2009-07-01 Sandisk Il Ltd A controller for one type of NAND flash memory for emulating another type of NAND flash memory
US20120331309A1 (en) * 2011-06-27 2012-12-27 Scott Jeffrey W Using built-in self test for preventing side channel security attacks on multi-processor systems

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282663B1 (en) * 1997-01-22 2001-08-28 Intel Corporation Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US6910120B2 (en) * 2002-07-31 2005-06-21 International Business Machines Corporation Speculative counting of performance events with rewind counter
GB2402785B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
FR2849232B1 (fr) * 2002-12-24 2005-02-25 Trusted Logic Procede pour la securisation des systemes informatiques incorporant un module d'interpretation de code
US20070277023A1 (en) * 2003-06-24 2007-11-29 Reinhard Weiberle Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit
WO2005073825A2 (en) * 2004-01-27 2005-08-11 Koninklijke Philips Electronics N.V. Protection against power analysis attacks
US8607209B2 (en) * 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
EP1612639A1 (en) * 2004-06-30 2006-01-04 ST Incard S.r.l. Method for detecting and reacting against possible attack to security enforcing operation performed by a cryptographic token or card
US20060259752A1 (en) * 2005-05-13 2006-11-16 Jeremiassen Tor E Stateless Branch Prediction Scheme for VLIW Processor
JP2007058588A (ja) * 2005-08-24 2007-03-08 Toshiba Corp プログラム保護機能を持つプロセッサ
EP1840732A1 (en) 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
JP4117008B2 (ja) * 2006-10-30 2008-07-09 シャープ株式会社 暗号化装置
US7870336B2 (en) * 2006-11-03 2011-01-11 Microsoft Corporation Operating system protection against side-channel attacks on secrecy
EP1936527A1 (fr) * 2006-12-18 2008-06-25 Gemplus Procédé permettant de faire varier le nombre d'exécution de contre-mesures dans un code exécuté
US7802252B2 (en) * 2007-01-09 2010-09-21 International Business Machines Corporation Method and apparatus for selecting the architecture level to which a processor appears to conform
US8781111B2 (en) 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
FR2925968B1 (fr) * 2007-12-26 2011-06-03 Ingenico Sa Procede de securisation d'un microprocesseur, programme d'ordinateur et dispositif correspondants
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
US8914620B2 (en) * 2008-12-29 2014-12-16 Oracle America, Inc. Method and system for reducing abort rates in speculative lock elision using contention management mechanisms
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8539254B1 (en) * 2010-06-01 2013-09-17 Xilinx, Inc. Method and integrated circuit for protecting against differential power analysis attacks
US8776026B2 (en) * 2010-10-01 2014-07-08 Ecole Polytechnique Federale De Lausanne System and method for in-vivo multi-path analysis of binary software
US8595510B2 (en) * 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8966457B2 (en) * 2011-11-15 2015-02-24 Global Supercomputing Corporation Method and system for converting a single-threaded software program into an application-specific supercomputer
US8935694B2 (en) * 2012-01-23 2015-01-13 International Business Machines Corporation System and method for selectively saving and restoring state of branch prediction logic through separate hypervisor-mode and guest-mode and/or user-mode instructions
US9269418B2 (en) * 2012-02-06 2016-02-23 Arm Limited Apparatus and method for controlling refreshing of data in a DRAM
US20130301826A1 (en) * 2012-05-08 2013-11-14 Intel Corporation System, method, and program for protecting cryptographic algorithms from side-channel attacks
WO2013172790A1 (en) * 2012-05-16 2013-11-21 Nanyang Technological University Methods for determining a result of applying a function to an input and evaluation devices
US8954775B2 (en) 2012-06-20 2015-02-10 Intel Corporation Power gating functional units of a processor
CN102843385B (zh) * 2012-09-24 2015-04-15 东南大学 一种用于云计算环境中防范旁路攻击虚拟机的方法
US8935800B2 (en) * 2012-12-31 2015-01-13 Intel Corporation Enhanced security for accessing virtual memory
US9953166B2 (en) * 2013-07-04 2018-04-24 Microsemi SoC Corporation Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor
FR3010210B1 (fr) * 2013-08-29 2017-01-13 Stmicroelectronics Rousset Protection d'un calcul contre des attaques par canaux caches
US20150268970A1 (en) * 2014-03-21 2015-09-24 Giri P. Mudusuru Selectively enabling platform-specific features
US9898623B2 (en) * 2014-03-31 2018-02-20 Stmicroelectronics S.R.L. Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product
CN103984901B (zh) * 2014-06-11 2017-08-25 上海新储集成电路有限公司 一种可信计算机系统及其应用方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026525A1 (en) * 2004-07-28 2006-02-02 Fischer Stephen A User opt-in processor feature control capability
TW200801964A (en) * 2005-12-20 2008-01-01 Silicon Image Inc Convert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
US20080155679A1 (en) * 2006-12-05 2008-06-26 Julien Sebot Mitigating Branch Prediction and Other Timing Based Side Channel Attacks
US20090089564A1 (en) * 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities
TW200928736A (en) * 2007-12-27 2009-07-01 Sandisk Il Ltd A controller for one type of NAND flash memory for emulating another type of NAND flash memory
US20120331309A1 (en) * 2011-06-27 2012-12-27 Scott Jeffrey W Using built-in self test for preventing side channel security attacks on multi-processor systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Yuemei He, Haibing Guan, Kai Chen, Alei Liang"A new software approach to defend against Cache-based timing attacks", IEEE 28 December 2009 *
Yuemei He, Haibing Guan, Kai Chen, Alei Liang"A new software approach to defend against Cache-based timing attacks", IEEE 28 December 2009。

Also Published As

Publication number Publication date
US20160285896A1 (en) 2016-09-29
CN107257978A (zh) 2017-10-17
EP3274899A1 (en) 2018-01-31
US10063569B2 (en) 2018-08-28
TW201702924A (zh) 2017-01-16
EP3274899A4 (en) 2018-08-08
WO2016153675A1 (en) 2016-09-29
CN107257978B (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
TWI610197B (zh) 保護客戶抵抗旁路攻擊的技術
JP7039716B2 (ja) ポリシ実行処理のためのシステムおよび方法
ES2903001T3 (es) Aparatos y métodos de hardware para detección de corrupción de memoria
EP3105681B1 (en) Region identifying operation for identifying region of a memory attribute unit corresponding to a target memory address
US20220374415A1 (en) Systems and methods for updating metadata
US20220012329A1 (en) Systems and methods for metadata encoding
WO2013101208A1 (en) Hardware enforced memory access permissions
US20190156015A1 (en) Smm protection utilizing ring separation and smi isolation
US20230018585A1 (en) Updating encrypted security context in stack pointers for exception handling and tight bounding of on-stack arguments
CN112148210A (zh) 用于存储器保护的装置id
CN112416821A (zh) 在计算系统中定义存储器信息泄漏区域的装置、系统和方法
US20220171625A1 (en) Shadow stack isa extensions to support fast return and event delivery (fred) architecture
US20220207148A1 (en) Hardening branch hardware against speculation vulnerabilities
US20220206819A1 (en) Dynamic detection of speculation vulnerabilities
US20220207154A1 (en) Dynamic mitigation of speculation vulnerabilities
Jungwirth et al. OS friendly microprocessor architecture: Hardware level computer security
Geater ARM® TrustZone®
LI et al. A technique preventing code reuse attacks based on RISC processor
US20220207147A1 (en) Hardening registers against speculation vulnerabilities
US20220207146A1 (en) Hardening load hardware against speculation vulnerabilities
US20220207138A1 (en) Hardening store hardware against speculation vulnerabilities
US20220207149A1 (en) Data tainting to mitigate speculation vulnerabilities
US20220206818A1 (en) Hardening execution hardware against speculation vulnerabilities
WO2022094165A1 (en) Hardware verification of dynamically generated code
KR20210138121A (ko) 메타데이터 처리 기술

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees