TWI697805B - 載入和虛擬化密碼金鑰 - Google Patents

載入和虛擬化密碼金鑰 Download PDF

Info

Publication number
TWI697805B
TWI697805B TW105116449A TW105116449A TWI697805B TW I697805 B TWI697805 B TW I697805B TW 105116449 A TW105116449 A TW 105116449A TW 105116449 A TW105116449 A TW 105116449A TW I697805 B TWI697805 B TW I697805B
Authority
TW
Taiwan
Prior art keywords
key
register
processor
storage location
hardware
Prior art date
Application number
TW105116449A
Other languages
English (en)
Other versions
TW201712593A (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 TW201712593A publication Critical patent/TW201712593A/zh
Application granted granted Critical
Publication of TWI697805B publication Critical patent/TWI697805B/zh

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本發明揭露用於載入與虛擬化密碼金鑰的發明之實施例。在一實施例中,處理器包括本地金鑰儲存位置、備份金鑰儲存位置、以及執行硬體。該本地金鑰儲存位置與該備份金鑰儲存位置皆不可藉由軟體讀取。該執行硬體係用以進行第一操作與第二操作。該第一操作包括載入密碼金鑰到該本地金鑰儲存位置。該第二操作包括從該本地金鑰儲存位置複製該密碼金鑰到該備份金鑰儲存位置。

Description

載入和虛擬化密碼金鑰
本發明之揭露涉及資訊處理之領域,以及更具體地,涉及資訊處理系統中安全的領域。
私人資訊與其他機密係藉由許多資訊處理系統而被使用以及被儲存在其中。許多技術已被開發用以嘗試儲存及/或傳送機密,使得其不被發現或更改。該些技術通常涉及一或多個密碼金鑰的使用。因此,用以保護密碼金鑰之完整性的技術已被開發,而且由於對資訊處理系統的惡意攻擊成為日益嚴重的威脅,故需要更多這樣的技術。
100‧‧‧系統
110‧‧‧處理器
160‧‧‧金鑰管理硬體/邏輯
162‧‧‧載入金鑰硬體/邏輯
164‧‧‧保存金鑰硬體/邏輯
166‧‧‧復原金鑰硬體/邏輯
168‧‧‧本地金鑰暫存器
170‧‧‧備份金鑰暫存器
120‧‧‧系統記憶體
130‧‧‧圖形處理器
132‧‧‧顯示器
140‧‧‧週邊控制代理器
142‧‧‧裝置
150‧‧‧資訊儲存裝置
200‧‧‧處理器
210‧‧‧儲存單元
212‧‧‧金鑰源暫存器
214‧‧‧本地金鑰暫存器
216‧‧‧備份金鑰暫存器
218‧‧‧控制暫存器
220‧‧‧指令單元
230‧‧‧執行單元
232‧‧‧載入金鑰硬體/邏輯
234‧‧‧保存金鑰硬體/邏輯
236‧‧‧復原金鑰硬體/邏輯
238‧‧‧密碥硬體
240‧‧‧控制單元
242‧‧‧金鑰管理控制硬體/邏輯
300‧‧‧多核心處理器
310‧‧‧核心
312‧‧‧金鑰管理單元
314‧‧‧金鑰源暫存器
316‧‧‧本地金鑰暫存器
320‧‧‧核心
322‧‧‧金鑰管理單元
324‧‧‧金鑰源暫存器
326‧‧‧本地金鑰暫存器
330‧‧‧核心
332‧‧‧金鑰管理單元
334‧‧‧金鑰源暫存器
336‧‧‧本地金鑰暫存器
340‧‧‧核心
342‧‧‧金鑰管理單元
344‧‧‧金鑰源暫存器
346‧‧‧本地金鑰暫存器
350‧‧‧備份金鑰暫存器
400‧‧‧方法
410‧‧‧開機系統
412‧‧‧BIOS產生主機金鑰
420‧‧‧轉移控制到VMM
422‧‧‧VMM使用主機金鑰
424‧‧‧VMM保存主機金鑰
426‧‧‧VMM清除本地金鑰暫存器
428‧‧‧VM進入
430‧‧‧訪客產生訪客金鑰
432‧‧‧訪客嘗試LOADKEY
434‧‧‧VM退出
440‧‧‧VMM讀取訪客金鑰
442‧‧‧VMM保存訪客金鑰
444‧‧‧VMM載入訪客金鑰
446‧‧‧VM進入
448‧‧‧訪客使用訪客金鑰
450‧‧‧第一電源管理事件
452‧‧‧VM退出
454‧‧‧從核心移除電源
460‧‧‧第二電源管理事件
462‧‧‧轉回電源到核心
464‧‧‧VMM回復
466‧‧‧VMM復原主機金鑰
468‧‧‧VMM使用主機金鑰
470‧‧‧VMM複製訪客金鑰
472‧‧‧VMM載入訪客金鑰
474‧‧‧VM進入
476‧‧‧訪客使用訪客金鑰
本發明藉由實例之方式且並不侷限於所附圖式被闡明。
圖1闡明根據本發明之實施例,包括用於載入與虛擬化密碼金鑰之支援的系統。
圖2闡明根據本發明之實施例,包括用於載入與虛擬 化密碼金鑰之支援的處理器。
圖3闡明根據本發明之實施例,包括用於載入與虛擬化密碼金鑰之支援的多核心處理器。
圖4闡明根據本發明之實施例,用於載入與虛擬化密碼金鑰的方法。
【發明內容與實施方式】
說明用於載入與虛擬化密碼金鑰之本發明的實施例。在此說明中,將闡述多個特定細節,諸如元件與系統配置,以為了提供本發明之更透徹的了解。然而,可以被理解的是,由熟悉本技術領域之人員,本發明可在沒有該些具體細節的情況下被實施。此外,沒有詳細顯示出若干眾所周知的結構、電路、以及其他特徵,以避免不必要地模糊本發明。
在以下說明中,參照「一實施例」、「實施例」、「示例性實施例」、「各種實施例」等等,其指示本發明所描述之實施例可包括特定特徵、結構、或特性,但多於一實施例可、以及不是所有實施例都必須包括所述特定特徵、結構、或特性。再者,若干實施例可具有部分、全部或無針對其他實施例所說明之特徵。
如在本說明與申請專利範圍中所被使用、以及除非另有說明,用以說明元件之順序形容詞「第一」、「第二」、「第三」等等的使用僅表示元件之特定例子或類似元件之不同例子正被參照,且不易圖暗示所描述之元件必 須係在無論是時間上、空間上、排序上或任何其他方式上之特定的順序中。
而且,不論是否在硬體或軟體中被實施,術語「位元」、「旗標」、「欄位」、「進入」、「指示器」等等可被用來描述暫存器、表、資料庫、或其他資料結構中儲存位址的任何類型或內容,但並不意味著限制本發明之實施例於任何儲存位置之特定類型、或位元之數目、或在任何特定儲存位置之中的其他元件。術語「清除」可被使用來表示儲存或以其他方式導致被儲存在儲存位置中的0的邏輯值,以及術語「設定」可被使用來表示儲存或以其他方式導致被儲存在儲存位置中的1、所有1、或若干其他特定數值的邏輯值;然而,該些術語並不意味著限制本發明之實施例於如同本發明之實施例之內所使用的任何邏輯慣例。
而且,如本發明之實施例的說明所使用,術語之間的「/」符號可意味著實施例可包括或使用、以、及/或根據第一術語及/或第二術語(以及/或任何其他額外術語)被實施。
如先前技術部分所說明,用於使用、傳輸、以及儲存私人或機密資訊的許多技術涉及密碼金鑰。因而,本發明之實施例的使用可被期望用以提供密碼金鑰的保護,以及減輕攻擊資訊處理系統與裝置的漏洞。
圖1闡明系統100,其係包括本發明之用於載入與虛擬化密碼金鑰之實施例的資訊處理系統。系統100可代表 任何類型的資訊處理系統,諸如伺服器、桌上型電腦、可攜式電腦、機上盒、諸如平板或智慧型手機的手持裝置、或嵌入式控制系統。系統100包括處理器110、系統記憶體120、圖形處理器130、週邊控制代理器140、以及資訊儲存裝置150。體現本發明之系統可包括任何數量的該些組件與任何其他組件或其他元件之各者,諸如週邊與輸入/輸出裝置。除非另有規定,在此或任何系統實施例中的任何或所有組件或其他元件可通過任何數量的匯流排、點對點、或其他有線或無線介面或連接被連結、被耦接、或以其他方式彼此通訊。系統100的任何組件或其他部分,無論是否在圖1中顯示,可被整合或以其他方式被包括在單晶片(晶片系統或SOC)、晶粒、基板、或封裝上或內。
系統記憶體120可係動態隨機存取記憶體(DRAM)或可由處理器110讀取之任何其他類型的媒體。圖形處理器130可包括用於處理顯示器132之圖形資料的任何處理器或其他組件。週邊控制代理器140可代表任何組件,諸如晶片組組件,其包括或通過其週邊、輸入/輸出(I/O)、或其他組件或裝置,諸如裝置142(例如,觸控式螢幕、鍵盤、麥克風、揚聲器、其他音頻裝置、相機、視訊或其他媒體裝置、網路配接器、動作或其他感測器、用於全球定位或其他資訊的接收器等等),及/或資訊儲存裝置150,可被聯結或被耦接於處理器110。資訊儲存裝置150可包括任何類型的持續性或非揮發性記憶體或儲 存器,諸如快閃記憶體及/或固態、磁力、或光碟驅動器。
處理器110可代表被整合在單基板上或被封裝在單封裝中之任何組合內的一或多個處理器或處理器核心,其每一個可包括多執行緒及/或多執行核心。每一個處理器代表或在處理器110中可係任何類型的處理器,其包括通用微處理器,諸如在Intel® Core®處理器家族中的處理器或來自Intel®公司或任何公司的其他處理器家族,專用處理器或微控制器、或資訊處理系統中的任何其他裝置或組件,在其中本發明之實施例可被實施。處理器110可被架構與被設計用以根據任何指令集架構來操作,其可或不藉由微代碼被控制。
根據本發明實施例之用於載入與虛擬化密碼金鑰的支援可在諸如處理器110的處理器中被實施,其使用任何如以下所說明的或根據任何其他方法配置之嵌入在硬體、微代碼、韌體、及/或其他結構中的電路及/或邏輯之組合,以及在圖1中以金鑰管理硬體及/或邏輯160被表示,其可包括用以支援LOADKEY操作的載入金鑰硬體/邏輯162、用以支援SAVEKEY操作的保存金鑰硬體/邏輯164、用以支援RESTOREKEY指令的復原金鑰硬體/邏輯166、本地金鑰暫存器168、以及備份金鑰暫存器170,將在以下說明其各者。
圖2闡明處理器200,其可代表圖1中的處理器110之實施例或圖1中的處理器110之多核心處理器實施例之 執行核心。處理器200可包括儲存單元210、指令單元220、執行單元230、以及控制單元240,其中圖1中的金鑰管理硬體/邏輯160之電路、結構、與功能性被分散在如以下所說明之處理器200的每一個單元之間。處理器200也可包括不在圖1中顯示的任何其他電路、結構或邏輯。
儲存單元210可包括可使用於處理器200之內任何用途之任何類型之儲存器的任何組合;例如,其可包括使用任何記憶體或儲存技術實施的任何數目的可讀、可寫、及/或可讀寫暫存器、緩衝器、以及/或快取記憶體,在其中儲存能力資訊、組態資訊、控制資訊、狀態資訊、效能資訊、指令、資料、以及任何其他在處理器200之操作中可使用的資訊,還有可使用的電路用以存取該儲存器及/或用以導致或支援與存取該儲存相關的各種操作及/或組態。
儲存單元210可包括一或多個金鑰源暫存器212、本地金鑰暫存器214、及/或備份金鑰暫存器216。金鑰源暫存器212可係資料暫存器或其他暫存器或任何尺寸的儲存位置,來自其中密碼金鑰、被使用作為密碼金鑰的數值、從其中可得到密碼金鑰的數值、或該金鑰或數值的部分可被載入LOADKEY操作中。值得注意的是儘管金鑰源暫存器212可藉由軟體讀取,其結合LOADKEY操作的內容可藉由一或多個已知的安全技術被保護(例如,藉由載入內容於其中,進行LOADKEY操作,接著清除,全部藉由或 在安全啟動處理、鑑別碼模組、安全或可信任執行環境等等之內)。
本地金鑰暫存器214可係暫存器或其他任何尺寸的儲存位置,在其中密碼金鑰或被使用作為密碼金鑰的數值可被載入LOADKEY操作中。本地金鑰暫存器214可藉由硬體被保護,使得其內容不被發現或揭露。例如,對本地金鑰暫存器214之存取可被限制,使得其內容可藉由在硬體內之處理器200而被使用(例如,藉由密碼硬體作為環繞或其他金鑰被使用),但僅能與根據以下所述之本發明的實施例的SAVEKEY操作結合、或與提供其限制存取用以被維持的其他技術結合被複製或移除(例如,藉由密碼安全引擎、其他特權硬體代理器或實體、或在安全或可信任執行環境之內的韌體或軟體)。換言之,通過軟體可使得其內容在處理器200之外部公開地可讀取的讀取指令或任何其他指令之使用,本地金鑰暫存器214係不可存取。
備份金鑰暫存器216可係暫存器或其他任何尺寸的儲存位置,在其中密碼金鑰或被使用作為密碼金鑰的數值可被儲存。本發明的實施例中,備份金鑰暫存器216之內容可持續或被留存在電力循環之間,例如,在待命、休眠、暫停、冬眠、及/或其他電源管理狀態期間。例如,當處理器200中的其他電路,諸如本地金鑰暫存器214,可被切斷電源時,備份金鑰暫存器216可從處理器200之封裝上的一或多插針或其他電連接器接收電力。或者,備份金鑰暫存器216可被實施在非揮發性(例如,快閃)記憶 體、或相同晶粒上的儲存器中、或在如處理器200的相同封裝中。或者,備份金鑰暫存器216可被實施在非揮發性記憶體、或相同晶粒上的儲存器中、或在如處理器200的相同封裝中,但具有安全備份機制,其允許其內容被安全地(例如,使用加密、鑑別、完整性檢查、及/或重播保護技術)移除或複製到其他非揮發性儲存器、或當處理器200或處理器200之部分被切斷電源時被供給電力。各種其他實施例在本發明之範疇之內係可能。值得注意的是用以在電力循環之間留存備份金鑰暫存器216之內容的任何此類技術的使用不必專用於備份金鑰暫存器216;換言之,其他資訊及/或處理器狀態也可為了相同目的使用相同技術被留存。
備份金鑰暫存器216可藉由硬體被保護,使得其內容不被發現或揭露。例如,根據以下所述之本發明實施例,對備份金鑰暫存器216之存取可被限制,使得其內容可僅結合RESTOREKEY操作被複製或移除,或結合提供其限制存取用以被維持的技術(例如,藉由密碼安全引擎、其他特權硬體代理器或實體、或在安全或可信任執行環境之內的韌體或軟體)。換言之,通過其中軟體可使得其內容在處理器200之外部公開地可讀取的讀取指令或任何其他指令之使用,備份金鑰暫存器216係不可存取。
儲存單元210也可包括控制暫存器218,其可代表一或多個暫存器,其他暫存器位置、或暫存器或儲存位置的部分,在其中控制及/或組態資訊可被編程。控制暫存器 218可代表根據現存處理器或指令集架構被規定或定義的一或多個控制暫存器、增加到現存處理器或指令集架構的一或多個新控制暫存器、或在現存或新暫存器中的一或多個位元/欄位。在各種實施例中,控制暫存器218可包括一或多個位元,用以賦能一或多個本發明的特徵。例如,控制暫存器218可包括LOADKEY_ENABLE位元、SAVEKEY_ENABLE位元、以及/或RESTOREKEY賦能位元,其中每一個可被設定用以分別地賦能LOADKEY操作、SAVEKEY操作、及/或RESTOREKEY操作的使用,及/或可被設定用以賦能二或多個操作之使用的組合賦能位元,其中當對應賦能位元未被設置時該操作之嘗試使用導致異常。
在各種實施例中,控制暫存器218、不同的控制暫存器、或虛擬機器控制結構(VMCS)可包括位元或欄位,用以結合虛擬機器(VM)出口賦能SAVEKEY操作以自動地發生,及/或結合VM進入賦能RESTOREKEY操作以自動地發生,如以下進一步所述。
指令單元220可包括任何電路、邏輯、結構、及/或其他硬體,諸如指令解碼器,用以提取、接收、解碼、解譯、排程、及/或處理藉由處理器200將被執行的指令。在本發明之範疇之內可使用任何指令格式;例如,指令可包括運算碼與一或多個運算元,其中運算元可藉由執行單元230被解碼為用於執行的一或多個微指令或微操作。運算元或其他參數可暗示地、直接地、間接地、或根據其他 任何方法地與指令相關。
在實施例中,指令單元220可接收LOADKEY指令、SAVEKEY指令、及/或RESTOREKEY指令,其藉由處理器200的執行將在以下說明。值得注意的是該些指令的提供僅為了方便,以及本發明之實施例可包括具有任何期望名稱的此類指令。在各種實施方式中,LOADKEY、SAVEKEY、以及RESTOREKEY指令可係藉由指令單元230被接收之不同指令,其可係相同指令之葉,或可係具有不同運算元之相同指令。值得注意的是本發明之各種實施例被說明(且更多係可能),包括每一個指令之參數中的各種不同以及對每一個指令的處理器反應。值得注意的是如以下所說明的,處理器對該些指令的執行及/或反應也可或替代地被進行(且在以下說明中被指稱如LOADKEY、SAVEKEY、或RESTOREKEY操作),以反應於或結合命令、特別模組、或其他暫存器的位元的其他事件(例如,寫入或藉由軟體、韌體、或硬體的設定);VM進入或出口(無論是藉由指令、中斷、異常、或其他事件被觸發;等等),其中若干者將在以下說明。本發明之實施例可包括任何一或多個該些變動。
在實施例中,LOADKEY指令可包括一或多個源運算元,用以規定密碼金鑰、或被使用作為密碼金鑰或來自其密碼金鑰可被衍生的其他數值的來源。若源運算元並不規定有效來源,則各種實施例可提供處理器之暫存器的任何集合或子集,藉由導致異常作為來源被使用。在圖2的實 施例中,金鑰源暫存器212係為了方便被顯示,且可係任何數量之有效源暫存器的一者。
在其他實施例中,結合LOADKEY操作(如以下所述)被載入之密碼金鑰(或被使用作為密碼金鑰或來自其密碼金鑰可被衍生的其他數值)可藉由另一來源被提供(例如,亂數產生器、熔絲陣列、物理反複製功能、等等),在其情況中,LOADKEY指令可在沒有源運算元或具有不包括源運算元欄位之格式的情況下被使用。值得注意的是本發明之實施例可提供給處理器使用預設金鑰來源(例如,硬體),其可使用LOADKEY指令被置換(例如,藉由軟體)。
在實施例中,指令單元220也可或代替接收一或多個指令,用以存取一或多個暫存器,諸如本地金鑰暫存器214及/或備份金鑰暫存器216,其中暫存器的存取可導致資料被移動到暫存器的裡面或外面、從或被移動到另一暫存器,諸如金鑰源暫存器212、本地金鑰暫存器214、及/或備份金鑰暫存器216,而無軟體可存取任一暫存器之內容。該指令可係處理器之指令集架構中的指令,其可被使用於存取一或多個其他暫存器或其他儲存位置。例如,此類指令可係讀取、寫入、或移動指令,其具有用以規定暫存器之一或多個運算元,或用以被讀取、寫入、或在其中或外部有內容被移動或複製的其他儲存位置。除了本地金鑰暫存器214或備份金鑰暫存器216,當此類運算元規定暫存器時,此類暫存器的內容可藉由發出指令之軟體被存 取。然而,當此類運算元規定本地金鑰暫存器214或備份金鑰暫存器216時,執行單元230中的硬體可提供用以在金鑰源暫存器212、本地金鑰暫存器214、及/或備份金鑰暫存器216之間被移動的內容,而沒有藉由發出指令之軟體或藉由任何其他軟體係可讀取或以其他方法可觀測(在LOADKEY、SAVEKEY、及/或RESTOREKEY操作期間或與其結合)之內容。
執行單元230可包括任何電路、邏輯、結構、及/或其他硬體,諸如運算單元、邏輯單元、浮點單元、移位器、等等,用以處理資料與執行指令、微指令、及/或微操作。執行單元230可代表任何一或多個物理或邏輯相異執行單元。執行單元230可包括用以執行LOADKEY指令/操作的載入金鑰硬體232、用以執行SAVEKEY指令/操作的保存金鑰硬體234、以及用以執行RESTOREKEY指令/操作的復原金鑰硬體236,將在以下說明其每一者。儘管在圖2中顯示為分離的元件,載入金鑰硬體232、保存金鑰硬體234、以及復原金鑰硬體236可包括電路,其可被使用來執行其他指令及/或操作。
執行單元230也可包括用以實施任何一或多個密碼演算法的密碼硬體238。在實施例中,本地金鑰暫存器214可係固線式或以其他方式被連接於密碼硬體238,使得本地金鑰暫存器214的內容可在該演算法中作為密碼金鑰被使用,而沒有暴露本地金鑰暫存器214之內容給軟體。
實施例中,反應於LOADKEY指令,載入金鑰硬體 232可進行LOADKEY操作,其中LOADKEY操作包括載入、移動、或複製金鑰數值到處理器200中的私用、內部儲存位置,從其處理器200中的硬體可存取內容,作為任何專用密碼硬體或通用硬體中的密碼或其他金鑰使用,與之密碼或其他基於金鑰演算法可被進行,但從其軟體不能讀取內容。例如,反應於LOADKEY指令,載入金鑰硬體232可載入源暫存器的內容到本地金鑰暫存器214供密碼硬體236使用。
載入操作之各種實施例在本發明之範疇之內係可能。在各種實施方式中,金鑰數值可係環繞金鑰、對話金鑰、任何其他類型的金鑰、或來自其任何該金鑰可被衍生之任何數值。在實施例中,金鑰數值可從暫存器或藉由源運算元或LOADKEY指令之運算元被規定之暫存器被載入。在其他實施例中,金鑰數值可係任何其他軟體規定數值;例如,來自處理器之內另一儲存位置、或來自系統記憶體中規定位置的數值。在其他實施例中,金鑰數值可藉由亂數產生器、熔絲陣列、物理反複製功能、或部份其他來源被提供。本發明之實施例可提供給處理器使用預設金鑰來源(例如,硬體),其可在LOADKEY操作中被置換(例如,藉由軟體)。
在實施例中,反應於任何LOADKEY命令,載入金鑰硬體232也可或代替進行LOADKEY操作,其中LOADKEY命令可包括如以上所述之一或多個暫存器存取指令,諸如到本地金鑰暫存器214的寫入、或被使用來導 致LOADKEY操作之藉由處理器或指令集架構規定的任何其他指令或命令。
在實施例中,反應於SAVEKEY指令,保存金鑰硬體234可進行SAVEKEY操作,其中SAVEKEY操作包括移動或複製核心範疇或邏輯處理器範疇金鑰儲存器之內容到封裝範疇金鑰儲存器。例如,反應於SAVEKEY指令,保存金鑰硬體234可移動/複製本地金鑰暫存器214之內容到備份金鑰暫存器216。
在實施例中,反應於任何SAVEKEY命令,保存金鑰硬體234也可或代替進行SAVEKEY操作,其中SAVEKEY命令可包括如以上所述之一或多個暫存器存取指令,諸如到備份金鑰暫存器216的寫入、或被使用來導致SAVEKEY操作之藉由處理器或指令集架構規定的任何其他指令或命令。
在實施例中,反應於RESTOREKEY指令,復原金鑰硬體236可進行RESTOREKEY操作,其中RESTOREKEY操作包括移動或複製封裝範疇金鑰儲存器之內容到核心範疇、或邏輯處理器範疇金鑰儲存器到封裝範疇金鑰儲存器。例如,反應於RESTOREKEY指令,復原金鑰硬體236可移動/複製備份金鑰暫存器216之內容到本地金鑰暫存器214。
在實施例中,反應於任何RESTOREKEY命令,復原金鑰硬體236也可或代替進行RESTOREKEY操作,其中RESTOREKEY命令可包括如以上所述之一或多個暫存器 存取指令,諸如從備份金鑰暫存器216的讀取、或被使用來導致RESTOREKEY操作之藉由處理器或指令集架構規定的任何其他指令或命令。
在各種實施方式中,保存金鑰與復原金鑰命令與操作可與不同方法中的指令有關。例如,第一指令之單執行可僅導致保存金鑰指令與操作,及第二指令之單執行可僅導致復原金鑰命令與操作。或者,第三指令之單執行可導致連同其他命令及/或操作的保存金鑰命令與操作,諸如處理器狀態之其他元件的保存,以及第四指令之單執行可導致連同其他命令及/或操作的復原金鑰命令與操作,諸如處理器狀態之其他元件的復原。各種實施例可包括任何數目與多種指令與指令格式,其結果是保存金鑰與復原金鑰命令與獨立操作、或結合任何數目的其他命令及/或操作。
反應於保存金鑰與復原金鑰命令,保存金鑰硬體234與復原金鑰硬體236可進行保存金鑰與復原金鑰操作,使得在本地金鑰暫存器214與備份金鑰暫存器216之間被移動/複製之資料不能藉由軟體被讀取。
控制單元240可包括任何微代碼、韌體、電路、邏輯、結構、及/或硬體,用以控制單元的操作與處理器200之其他元件、以及到處理器200、在其之內與之外之資料的傳輸。控制單元240可導致處理器200進行或參與本發明之方法實施例的進行,諸如以下所述之方法實施例,例如,藉由使用執行單元230及/或任何其他資源導致處理 器200執行指令,該指令係藉由指令單元220接收、及從藉由指令單元220所接收之指令衍生的微指令或微操作。藉由執行230之指令的執行可基於儲存在儲存單元210中的控制及/或組態資訊變換,其中此類控制及/或組態資訊可被儲存到或被編程到控制/組態暫存器中,諸如控制暫存器218。
在實施例中,控制單元240可包括金鑰管理控制硬體/邏輯242,用以控制載入金鑰硬體232、保存金鑰硬體234、復原金鑰硬體236、在處理器200中的任何其他硬體,其支援本發明之實施例的金鑰管理技術。
在實施例中,金鑰管理系統硬體/邏輯242可導致或係可配置用以反應於在虛擬機器(VM)中執行LOADKEY指令的嘗試導致虛擬機器出口。因而,虛擬機器監視器(VMM)可攔截LOADKEY指令,以為了管理藉由客用軟體對密碼金鑰的使用。
例如,在核心或邏輯處理器上之VM中運行的訪客可嘗試使用LOADKEY指令載入第二密碼金鑰到對應於核心與邏輯處理器的本地金鑰暫存器(其中第一密碼金鑰已被預留作為VMM的使用;例如,參照以下圖4的說明)。反應於此,金鑰管理控制硬體/邏輯242可導致VM出口,允許VMM攔截LOADKEY指令。VMM可接著從源暫存器複製第二密碼金鑰、載入到本地金鑰暫存器中(使用其自身LOADKEY指令或通過VM進入,其包括從被儲存在VMCS中的訪客狀態載入第二密碼金鑰到本地金鑰暫 存器中)、及隨後如以下所述地使用(例如,內容切換、遷移、等等)。
由於數個原因之任意者,此方法可係所期望的。在實施例中,可提供給訪客與主機使用分離金鑰(例如,第二金鑰給訪客使用與第一金鑰給主機使用),及/或分離金鑰給每一個訪客。在實施例中,可有助於在其中VMM移動訪客從核心到核心、或邏輯處理器到邏輯處理器之內容切換,因為其提供給每一個訪客有其自身金鑰,其並不專一於任何特定核心或邏輯處理器,以及VMM可從將其從核心移動到核心或從邏輯處理器移動到邏輯處理器。在實施例中,可提供訪客在VMMs之間的遷移;例如,第一VMM可載入訪客專用金鑰到給訪客之本地金鑰暫存器,接著,相同的訪客專用金鑰可被提供(例如,在VMCS中)給訪客被遷移到的第二VMM。
本發明之實施例的其他使用係可能地。例如,VMM可攔截訪客的LOADKEY指令(例如,載入第二金鑰到本地金鑰暫存器中,以供在VM之內的使用),接著載入或導致被載入的第三金鑰到本地金鑰暫存器中,以在VM之內使用(代替第二金鑰)。
儘管圖2顯示與本發明實施相關之每一個各種硬體元件的單一例子,各種實施例可包括任何數量的此類元件。例如,圖3闡明多核心處理器300中本發明之實施例。多核心處理器300可包括任何數量的執行核心,每一個皆具有其自身的儲存單元、指令單元、執行單元、控制單元、 及/或任何其他單元、及/或任何該單元的任何電路、結構、邏輯、及/或硬體,諸如第二階層快取記憶體,可在多核心處理器300之「非核心」區域中被共享。
多核心處理器300包括核心310、核心320、核心330、以及核心340,其每一個可分別地包括金鑰管理單元312、322、332、以及342,分別地包括金鑰源暫存器314、324、334、以及344,以及分別地包括本地金鑰暫存器316、326、336、以及346。每一個金鑰管理單元312、322、332、以及342可代表及/或包括以上所述之硬體及/或控制邏輯,用以支援本發明之實施例的金鑰管理技術。
多核心處理器300也可包括一或多個備份金鑰暫存器350,其可藉由來自任何或所有核心310、320、330、及/或340的分離電源層被提供電力(使得電源可從任何或所有310、320、330、及/或340被移除,而不從備份金鑰暫存器350移除電源),或其可係非揮發性,或其可讓其內容安全地被複製或儲存在其他地方。因而,通過在其中電源可從一或多個處理器核心被移除的各種電源管理循環及/或狀態,本發明之實施例提供本地密碼金鑰之數值的維持。例如,諸如操作系統之系統軟體可使用保存金鑰命令,結合進入到在其中電源從核心被移除的電源管理狀態,保存備份金鑰暫存器350中之任何本地金鑰暫存器316、326、336、及/或346的內容。接著,結合到核心之復原電源,系統軟體可使用復原金鑰命令從備份金鑰暫存 器350復原內容到任何的本地金鑰暫存器316、326、336、及/或346。在實施例中,備份金鑰暫存器350可藉由重設被清除。
此外,根據本發明之實施例之SAVEKEY與RESTOREKEY操作的使用可通過備份金鑰暫存器350提供在一或多個核心310、320、330、與或340之間被移除及/或共享的一或多個金鑰,而不被複製到DRAM或系統記憶體。
根據本發明之各種實施例的金鑰管理硬體的使用可被期望提供用於根據本發明之各種方法實施例的密碼金鑰管理的各種技術。
實施例可包括藉由軟體而不允軟體讀取金鑰之密碼金鑰的使用。例如,主機或系統軟體可使用LOADKEY命令載入金鑰到核心的本地金鑰暫存器中,作為訪客或核心上運行之應用軟體的使用。
實施例可包括藉由軟體之密碼金鑰的產生或修改,用以提供客製金鑰產生。例如,軟體可在金鑰產生上使用任何期望方法,單獨或結合藉由軟體被提供的任何具最高權力的使用者金鑰、金鑰產生指令、及/或亂數產生器支援,用以產生客製金鑰或修改(例如,增加隨機性)硬體或硬體產生金鑰,接著使用LOADKEY命令來將客製金鑰載入到本地金鑰暫存器中。
實施例可包括密碼金鑰從一執行核心、邏輯處理器、或硬體執行緒到不同執行核心、邏輯處理器、或硬體執行 緒的遷移。例如,VMM可結合在第一核心上之訪客運行的VM進入,使用保存金鑰命令來保存訪客的金鑰,接著於重啟動在其他核心上之訪客前,使用復原金鑰命令來復原相同金鑰到不同核心。本發明之實施例提供該內容切換被進行,而不允許VMM讀取金鑰。
實施例可包括分離訪客專用金鑰與分離主機金鑰的使用與管理。例如,圖4闡明用於載入與虛擬化密碼金鑰的方法400。儘管本發明之方法實施例並不侷限於此方面,可參照圖1、2、以及3的元件來協助描述圖4之方法實施例。方法400的各種部分可藉由硬體、韌體、軟體、及/或系統或裝置之使用者而被進行。
在方法400的方框410中,資訊處理系統被啟動。在方框412中,在安全啟動處理期間,諸如安全基本輸入/輸出系統(BIOS)的可信任系統韌體可導致第一密碼金鑰被載入到處理器核心的本地金鑰儲存位置中,第一密碼金鑰可直接從硬體、真實、或具最高權力的使用者金鑰複製或衍生(例如,使用專用金鑰產生或處理器的變換指令),或使用熔絲、金屬穿吊或懸垂、或任何暫存器轉移語言技術被嵌入在處理器中,或從藉由可信任平台模組提供的金鑰。第一金鑰的產生、衍生、或變換可包括使用硬體亂數產生器、物理反複製功能、或其他程式誤導(obfuscation)技術之隨機性的注入。本地金鑰儲存位置對處理器之密碼硬體係可存取地,但對軟體係不可讀取地。
在方框420中,處理器核心的控制可被轉移到VMM。在方框422中,VMM可在處理器核心上執行指令,其包括使用第一金鑰作為主機金鑰來加密及/或解密主機專用資訊。在方框424中,VMM可使用SAVEKEY命令從本地金鑰儲存位置複製第一金鑰到在處理器之非核心中的備份金鑰儲存位置,而不能讀取金鑰的數值。在方框426中,作為VM進入的準備,VMM可清除或取代本地金鑰儲存位置之內容,用以防止由訪客對第一金鑰的使用。在方框428中,VMM可啟動或回復訪客在處理器核心上之VM中的執行。值得注意的是方框426可結合方框428被自動地被進行。
在方框430中,訪客可進行一或多金鑰產生、變換、或衍生指令或操作,用以產生金鑰源暫存器中的第二密碼金鑰。在方框432中,訪客可嘗試LOADKEY指令從金鑰源暫存器載入第二金鑰到本地金鑰儲存位置中,以用於加密及/或解密訪客專用資訊之使用。在方框434中,LOADKEY嘗試可導致VM退出到VMM。
在方框440中,VMM可從藉由嘗試LOADKEY指令之源運算元指定的金鑰源暫存器讀取第二金鑰的數值。在方框442中,VMM可儲存在VMCS或其他記憶體位置之客鑰欄位中的第二金鑰的數值(其可藉由任何已知技術被保護,諸如但不局限於包括使用擴充或巢套頁面表之存取控制機制)作為訪客專用金鑰的使用。在方框444中,VMM可使用LOADKEY指令從金鑰源暫存器載入訪客專 用金鑰到本地金鑰儲存位置。在方框446中,VMM可回復在VM中的訪客之執行。值得注意的是方框446可包括從VMCS之客鑰欄位自動地載入訪客專用金鑰,在其情況中方框444可被省略。在方框448中,訪客可在VM中執行,其包括使用訪客專用金鑰從本地金鑰儲存位置加密及/或解密資訊,而不能讀取金鑰的數值。
在方框450中,可發生第一電源管理事件,其結果係該系統進入電源管理狀態,在其中電源從支援在其中訪客正執行之VM的處理器核心被移除。在方框452中,第一電源管理事件導致VM退出到VMM。在方框454中,電源從處理器核心被移除(但不到備份金鑰儲存位置或記憶體,在其中VMCS或訪客專用金鑰被儲存)。
在方框460中,第二電源管理事件可發生,其結果係電源被轉回到處理器核心。在方框462中,電源被轉回到處理器核心。在方框464中,VMM回復在處理器核心上的執行。在方框466中,VMM使用復原金鑰命令從備份金鑰儲存位置複製主機金鑰到本地金鑰儲存位置,而不能讀取金鑰的數值。在方框468中,VMM可在處理器核心上執行指令,其包括使用主機金鑰來加密及/或解密主機專用資訊。
在方框470中,作為VM進入的準備,VMM可從其記憶體位置複製訪客專用金鑰之數值到金鑰源暫存器。在方框472中,VMM可使用LOADKEY指令從金鑰源暫存器載入訪客專用金鑰到本地金鑰儲存位置中。在方框474 中,VMM可回復在VM中的訪客之執行。值得注意的是方框474可包括從VMCS之客鑰欄位自動地載入訪客專用金鑰,在其情況中方框470與472可被省略。在方框476中,訪客可在VM中執行,其包括使用訪客專用金鑰從本地金鑰儲存位置加密及/或解密資訊,而不能讀取金鑰的數值。
在本發明之各種實施例中,圖4中所闡明的方法可以不同順序、與結合或省略闡明之方框、與額外增加方框、或與重新排列、組合、省略、或額外方框之組合被進行。此外,本發明之方法實施例並不侷限於方法400或其各種變化。不在此說明之許多其他方法實施例(以及設備、系統、與其他實施例)在本發明之範疇之內係可能的。
本發明之實施例或實施例的部分,如以上所述,可被儲存在任何形式的機器可讀取媒體上。例如,所有或部分的方法400可被體現在軟體或韌體指令中,其被儲存在藉由處理器110可讀取之媒體,當其藉由處理器110被執行時導致處理器110執行本發明之實施例。而且,本發明之態樣可被體現在被儲存在機器可讀取媒體上之資料中,其中資料代表對製造所有或部分的處理器110有用的設計或其他資訊。
因此,說明用於載入與虛擬化密碼金鑰攻擊之本發明的實施例。當特定實施例被說明、以及在附圖中顯示的同時,由於一般熟悉本技術領域之人員在研究本揭露時,各種其他修改可發生,應該被理解的是該些實施例僅闡明而 非限制本發明的廣泛,且本發明並不侷限於所顯示與說明之建構與安排。如本發明之技術的領域中,其中成長係快速且進一步的進步並不容易被預見,藉由賦予技術進步促進(在不脫離本發明所揭露之原理或所附申請專利範圍的範疇下)本發明所揭露之實施例可在配置與細節上容易地修改。
100‧‧‧系統
110‧‧‧處理器
120‧‧‧系統記憶體
130‧‧‧圖形處理器
132‧‧‧顯示器
140‧‧‧週邊控制代理器
142‧‧‧裝置
150‧‧‧資訊儲存裝置
160‧‧‧金鑰管理硬體/邏輯
162‧‧‧載入金鑰硬體/邏輯
164‧‧‧保存金鑰硬體/邏輯
166‧‧‧復原金鑰硬體/邏輯
168‧‧‧本地金鑰暫存器
170‧‧‧備份金鑰暫存器

Claims (3)

  1. 一種系統,其包含:記憶體;以及處理器,其包括暫存器;該處理器外側不可讀取之本地金鑰儲存位置;該處理器外側不可讀取之備份金鑰儲存位置;用以接收第一指令、第二指令及第三指令之指令硬體,該第一指令具有運算元,用以將該暫存器明定為來源;執行硬體,用以反應於該第一指令進行第一運算、反應於該第二指令進行第二運算以及反應於該第三指令進行第三運算,該第一運算包括從該暫存器載入密碼金鑰到該本地金鑰儲存位置,該第二運算包括從該本地金鑰儲存位置複製該密碼金鑰到該備份金鑰儲存位置,以及該第三運算包括從該備份金鑰儲存位置複製該密碼金鑰到該本地金鑰儲存位置;控制邏輯,用以反應於嘗試在虛擬機器中執行該第一指令,導致虛擬機器退出;以及虛擬機器監視器,用以藉由從該暫存器複製該密碼金鑰到該記憶體來對該虛擬機器退出反應;該虛擬機器監視器用以使用包括擴充頁面表和巢套頁面表其中一者的存取控制機制來保護該記憶體;其中,處理器狀態在該本地金鑰儲存位置無電力的同 時維持該備份金鑰儲存位置的內容。
  2. 如申請專利範圍第1項所述之系統,其中將該密碼金鑰從該暫存器複製到該記憶體的步驟包括將該密碼金鑰儲存在虛擬機器控制結構中的客用金鑰欄位中。
  3. 如申請專利範圍第2項所述之系統,其中,該密碼金鑰連同虛擬機器進入而從該虛擬機器控制結構中的該客用金鑰欄位複製到該本地金鑰儲存位置。
TW105116449A 2015-07-02 2016-05-26 載入和虛擬化密碼金鑰 TWI697805B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/791,203 2015-07-02
US14/791,203 US10075296B2 (en) 2015-07-02 2015-07-02 Loading and virtualizing cryptographic keys

Publications (2)

Publication Number Publication Date
TW201712593A TW201712593A (zh) 2017-04-01
TWI697805B true TWI697805B (zh) 2020-07-01

Family

ID=58051941

Family Applications (2)

Application Number Title Priority Date Filing Date
TW109124454A TWI769490B (zh) 2015-07-02 2016-05-26 載入和虛擬化密碼金鑰
TW105116449A TWI697805B (zh) 2015-07-02 2016-05-26 載入和虛擬化密碼金鑰

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW109124454A TWI769490B (zh) 2015-07-02 2016-05-26 載入和虛擬化密碼金鑰

Country Status (4)

Country Link
US (1) US10075296B2 (zh)
EP (2) EP3706361B1 (zh)
TW (2) TWI769490B (zh)
WO (1) WO2017030625A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11398906B2 (en) * 2016-11-10 2022-07-26 Brickell Cryptology Llc Confirming receipt of audit records for audited use of a cryptographic key
US11405201B2 (en) * 2016-11-10 2022-08-02 Brickell Cryptology Llc Secure transfer of protected application storage keys with change of trusted computing base
US10855465B2 (en) 2016-11-10 2020-12-01 Ernest Brickell Audited use of a cryptographic key
US10652245B2 (en) 2017-05-04 2020-05-12 Ernest Brickell External accessibility for network devices
US10877806B2 (en) * 2017-06-14 2020-12-29 Intel Corporation Method and apparatus for securely binding a first processor to a second processor
JP6718175B2 (ja) * 2017-09-08 2020-07-08 ヘルスメディア株式会社 秘密情報復元可能値分散システムおよび方法
US10757082B2 (en) 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
US10785028B2 (en) 2018-06-29 2020-09-22 Intel Corporation Protection of keys and sensitive data from attack within microprocessor architecture
CN110138557A (zh) * 2019-05-28 2019-08-16 上海兆芯集成电路有限公司 数据处理装置及数据处理方法
US11398899B2 (en) 2019-05-28 2022-07-26 Shanghai Zhaoxin Semiconductor Co., Ltd. Data processing device and data processing method
US11537421B1 (en) * 2019-06-07 2022-12-27 Amazon Technologies, Inc. Virtual machine monitor providing secure cryptographic operations
US11216366B2 (en) 2020-02-13 2022-01-04 Intel Corporation Security check systems and methods for memory allocations
US12022013B2 (en) 2020-12-26 2024-06-25 Intel Corporation ISA accessible physical unclonable function
WO2022139850A1 (en) 2020-12-26 2022-06-30 Intel Corporation Cryptographic computing including enhanced cryptographic addresses
US11706039B2 (en) * 2020-12-26 2023-07-18 Intel Corporation ISA accessible physical unclonable function
US11570010B2 (en) * 2020-12-26 2023-01-31 Intel Corporation ISA accessible physical unclonable function
US11700135B2 (en) * 2020-12-26 2023-07-11 Intel Corporation ISA accessible physical unclonable function
US11972126B2 (en) 2021-03-26 2024-04-30 Intel Corporation Data relocation for inline metadata
US11954045B2 (en) 2021-09-24 2024-04-09 Intel Corporation Object and cacheline granularity cryptographic memory integrity

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100082991A1 (en) * 2008-09-30 2010-04-01 Hewlett-Packard Development Company, L.P. Trusted key management for virtualized platforms
US20100138370A1 (en) * 2008-11-21 2010-06-03 Kindsight, Inc. Method and apparatus for machine-learning based profiling
US20140059312A1 (en) * 2012-08-27 2014-02-27 Fujitsu Limited Recording medium, computer, and information processing system
US20140208123A1 (en) * 2013-01-22 2014-07-24 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US20150026426A1 (en) * 2005-06-30 2015-01-22 Ravi L. Sahita System and method for high performance secure access to a trusted platform module on a hardware virtualization platform

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8423747B2 (en) * 2008-06-30 2013-04-16 Intel Corporation Copy equivalent protection using secure page flipping for software components within an execution environment
US9274974B1 (en) * 2005-10-21 2016-03-01 Vmware, Inc. Isolating data within a computer system using private shadow mappings
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
JP2010514028A (ja) * 2006-12-22 2010-04-30 バーチャルロジックス エスエイ 単一データ処理を共有するために複数の実行環境を有効化するシステム
US7966458B2 (en) * 2007-03-31 2011-06-21 Intel Corporation Method and apparatus for controlling a primary operating system and an appliance operating system on the same machine
US7827371B2 (en) * 2007-08-30 2010-11-02 Intel Corporation Method for isolating third party pre-boot firmware from trusted pre-boot firmware
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8694738B2 (en) * 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US8788763B2 (en) * 2011-10-13 2014-07-22 International Business Machines Corporation Protecting memory of a virtual guest
US8726404B2 (en) * 2011-11-14 2014-05-13 Intel Corporation Regulating access to and protecting portions of applications of virtual machines
CN104012030B (zh) 2011-12-21 2018-04-13 英特尔公司 用于保护对称加密密钥的系统及方法
US9117081B2 (en) * 2013-12-20 2015-08-25 Bitdefender IPR Management Ltd. Strongly isolated malware scanning using secure virtual containers
US9413765B2 (en) * 2014-03-25 2016-08-09 Intel Corporation Multinode hubs for trusted computing
US20160350534A1 (en) * 2015-05-29 2016-12-01 Intel Corporation System, apparatus and method for controlling multiple trusted execution environments in a system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026426A1 (en) * 2005-06-30 2015-01-22 Ravi L. Sahita System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US20100082991A1 (en) * 2008-09-30 2010-04-01 Hewlett-Packard Development Company, L.P. Trusted key management for virtualized platforms
US20100138370A1 (en) * 2008-11-21 2010-06-03 Kindsight, Inc. Method and apparatus for machine-learning based profiling
US20140059312A1 (en) * 2012-08-27 2014-02-27 Fujitsu Limited Recording medium, computer, and information processing system
US20140208123A1 (en) * 2013-01-22 2014-07-24 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment

Also Published As

Publication number Publication date
TWI769490B (zh) 2022-07-01
EP3706361B1 (en) 2021-12-08
EP3317999A2 (en) 2018-05-09
WO2017030625A3 (en) 2017-04-13
EP3317999A4 (en) 2019-02-20
TW201712593A (zh) 2017-04-01
WO2017030625A9 (en) 2017-03-16
EP3706361A1 (en) 2020-09-09
US10075296B2 (en) 2018-09-11
EP3317999B1 (en) 2020-07-22
US20170063547A1 (en) 2017-03-02
WO2017030625A2 (en) 2017-02-23
TW202042094A (zh) 2020-11-16

Similar Documents

Publication Publication Date Title
TWI697805B (zh) 載入和虛擬化密碼金鑰
US12050701B2 (en) Cryptographic isolation of memory compartments in a computing environment
US10152602B2 (en) Protecting state information for virtual machines
TWI697804B (zh) 安全區之平台遷移
TWI576698B (zh) 跨電源週期維持安全處理環境
EP3120238B1 (en) Access isolation for multi-operating system devices
US20150186659A1 (en) Modifying memory permissions in a secure processing environment
EP3113406B1 (en) Key protecting method and apparatus
US10644888B2 (en) Systems and methods for providing I/O state protections in a virtualized environment
TWI738680B (zh) 監視處理器之操作之系統
US11641272B2 (en) Seamless one-way access to protected memory using accessor key identifier
EP4156008A1 (en) Seamless access to trusted domain protected memory by virtual machine manager using transformer key identifier
TW201342108A (zh) 虛擬機器監視器運行時間完整性觀察器之硬體保護
US20150264087A1 (en) Systems, Apparatuses, and Methods for Enforcing Security on a Platform
JP6672341B2 (ja) 仮想マシンの状態情報の保護
KR20180072723A (ko) 메모리 액세스 명령
US20240220297A1 (en) Interrupt control using a guest owned backing page
US20240193281A1 (en) Unified encryption across multi-vendor graphics processing units