TWI806622B - 儲存安全虛擬機器之診斷狀態 - Google Patents

儲存安全虛擬機器之診斷狀態 Download PDF

Info

Publication number
TWI806622B
TWI806622B TW111119202A TW111119202A TWI806622B TW I806622 B TWI806622 B TW I806622B TW 111119202 A TW111119202 A TW 111119202A TW 111119202 A TW111119202 A TW 111119202A TW I806622 B TWI806622 B TW I806622B
Authority
TW
Taiwan
Prior art keywords
memory
encrypted
virtual machine
request
obtaining
Prior art date
Application number
TW111119202A
Other languages
English (en)
Other versions
TW202311945A (zh
Inventor
強納森 D 布瑞布里
托斯頓 韓德爾
雷恩哈得 索迪爾 伯恩俊
克勞迪亞 尹布蘭達
克里斯汀 伯翠格
亞諾士 安德烈斯 法蘭克
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 TW202311945A publication Critical patent/TW202311945A/zh
Application granted granted Critical
Publication of TWI806622B publication Critical patent/TWI806622B/zh

Links

Images

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Crushing And Grinding (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

獲得儲存一虛擬機器之診斷狀態的至少一個請求。基於獲得該至少一個請求,執行對該虛擬機器之診斷狀態之一儲存以提供該虛擬機器之經儲存診斷狀態。該執行該儲存包括加密未經加密且經儲存之該虛擬機器之該診斷狀態,以防止在加密未經加密且經儲存之該虛擬機器之該診斷狀態之前一不受信任實體對該虛擬機器之該診斷狀態之一讀取。

Description

儲存安全虛擬機器之診斷狀態
一或多個態樣大體上係關於促進計算環境內之處理,且特定而言,係關於改良此處理。
儲存虛擬機器之診斷狀態(亦被稱為虛擬機器傾印)在文件中提供虛擬機器之狀態以供稍後分析。其常用於查找虛擬機器故障之根本原因。舉例而言,虛擬機器之狀態包括虛擬機器記憶體之副本,以及虛擬機器之一或多個中央處理單元之選擇暫存器之副本。
一些虛擬機器是安全虛擬機器,其中除虛擬機器主動指定為共用之特殊記憶體區外,電腦系統之硬體及韌體拒絕存取安全虛擬機器之狀態。超管理器或代管虛擬機器之作業系統之管理員無法存取此類虛擬機器,通常可能係這種情況。存取虛擬機器之狀態意謂主機系統上之經授權實體可自虛擬機器記憶體中讀取敏感資訊,如加密金鑰或機密文件,此係安全風險。
將促進與虛擬機器相關聯之處理,包括儲存虛擬機器(諸如安全虛擬機器)之診斷狀態。
藉由提供用於促進計算環境內之處理的電腦程式產品來克服先前技術之缺點且提供額外優勢。該電腦程式產品包括一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行一方法之程式指令。該方法包括獲得儲存一虛擬機器之診斷狀態的至少一個請求。基於獲得該至少一個請求,執行對該虛擬機器之診斷狀態之一儲存以提供該虛擬機器之經儲存診斷狀態。該執行該儲存包括加密未經加密且經儲存之該虛擬機器之該診斷狀態,以防止在加密未經加密且經儲存之該虛擬機器之該診斷狀態之前一不受信任實體對該虛擬機器之該診斷狀態之一讀取。
可以儲存虛擬機器(例如,安全虛擬機器)之診斷狀態,同時維持為診斷目的而儲存之虛擬機器之狀態的安全性。
作為實例,該虛擬機器之該經儲存診斷狀態包括該虛擬機器之記憶體之內容,及/或該虛擬機器之該經儲存診斷狀態包括該虛擬機器之一或多個處理器暫存器之內容。
在一個實例中,獲得啟動該虛擬機器之診斷狀態之儲存的一啟動儲存診斷狀態請求。該啟動儲存診斷狀態請求用以獲得一第一加密金鑰,用於加密未經加密且經儲存之該虛擬機器之該診斷狀態的至少一部分。
在一個實例中,該獲得該至少一個請求包括獲得一儲存診斷處理器狀態請求,且其中基於獲得該儲存診斷處理器狀態請求,該執行對該診斷狀態之該儲存包括舉例而言使用該第一加密金鑰加密該虛擬機器之至少一個處理器之至少選擇內容以提供經加密處理器內容,及儲存該等經加密處理器內容。
在一個實例中,該獲得該至少一個請求包括獲得一自安全記憶體轉換之請求。基於獲得該自安全記憶體轉換之請求,該執行對該診斷狀態之該儲存包括舉例而言使用一第二加密金鑰加密未經加密之該虛擬機器之記憶體之至少選擇內容以提供經加密記憶體之內容,及儲存該等經加密記憶體之內容。
作為實例,基於獲得該自安全記憶體轉換之請求,該執行對該診斷狀態之該儲存包括舉例而言判定其內容待儲存之一記憶體單元是否經加密,及基於判定該記憶體單元未經加密而使用該第二加密金鑰加密該記憶體單元,其中經加密之記憶體單元不重新加密。
藉由加密未經加密內容(而非重新加密經加密狀態),處理週期及複雜度減少,從而改良系統效能。
在一個實例中,該經儲存診斷狀態包括經加密記憶體之內容。此外,在一個實例中,獲得一儲存診斷記憶體狀態請求,及基於獲得該儲存診斷記憶體狀態請求,儲存待用以解密該等經加密記憶體之內容之後設資料。
作為實例,該後設資料包括待用以創建一或多個選擇值以用於解密該等經加密記憶體之內容之一或多個選擇組件值。
在一個實例中,獲得完成對診斷狀態之該儲存之一完成請求,及基於獲得該完成請求,提供待用以解密該虛擬機器之經加密儲存診斷狀態之資料。
作為實例,該資料包括用於經加密記憶體之內容之解密的一第二加密金鑰及待用以創建用於加密之一或多個選擇值之一一次性隨機值。此外,在一個實例中,加密該資料之至少一部分。
本文中亦描述及主張與一或多個態樣相關之電腦實施方法及系統。此外,本文中亦描述及可能主張與一或多個態樣相關之服務。
經由本文中所描述之技術實現額外特徵及優勢。本文中詳細描述其他實施例及態樣且將其視為所主張態樣之部分。
根據本發明之一或多個態樣,提供一種促進計算環境內之處理的能力。作為實例,該能力包括一種技術,其中可儲存(亦被稱為傾印)虛擬機器(例如,安全虛擬機器)之診斷狀態,同時維持所儲存之虛擬機器狀態之安全性。作為實例,診斷狀態在被不受信任實體(例如,超管理器)讀取之前被加密。
在一個實例中,可藉由例如使用被稱為傾印金鑰(亦被稱為第一加密金鑰)之所選金鑰加密待儲存用於診斷分析(亦即,傾印)之虛擬機器之記憶體之內容。舉例而言,被分頁移出並現行使用分頁金鑰(亦被稱為第二加密金鑰)加密之記憶體被解密並使用所選金鑰重新加密。作為另一實例,根據本發明之一態樣,為了減少複雜度及所使用中央處理單元週期之數目,並非重新加密經加密記憶體(使用分頁金鑰加密),而是為記憶體之單元(例如,記憶體頁)提供選擇唯一值(例如,微調值),且使用所選金鑰加密分頁金鑰。因此,分頁移出之頁面不需要重新加密以進行傾印,只有尚未加密之頁面才需要加密以進行傾印。為進一步解釋,給記憶體之各個單元一值,例如,無正負號整數,被稱為調整值或選擇唯一值。此等值自任意整數開始且被連續指派。可將該值轉換為例如小端序位元組陣列,其中可使用例如進階加密標準(AES)算法來執行該值之加密。
在一或多個態樣中,為了安全地促進虛擬機器(例如,安全虛擬機器)之傾印或診斷儲存,提供並使用應用程式設計介面,該介面使用被稱為超監督器呼叫(Ultravisor Call)之指令。超監督器呼叫指令用於啟動用於儲存安全虛擬機器之診斷狀態之一或多個命令。此等命令包括例如啟動組態傾印命令、傾印中央處理單元狀態命令、自安全儲存器轉換命令、傾印組態儲存器狀態命令及完成組態傾印命令,下文進一步描述該等命令中之每一者。
參考圖1描述併有及使用本發明之一或多個態樣的計算環境之一個實施例。作為一實例,計算環境係基於由紐約阿蒙克市之國際商業機器公司(International Business Machines Corporation)供應之z/Architecture ®指令集架構。z/Architecture指令集架構之一個實施例描述於名稱為「z/Architecture Principles of Operation」之公開案(IBM公開案第SA22-7832-12號,第十三版,2019年9月)中,該公開案特此以全文引用之方式併入本文中。然而,z/Architecture指令集架構僅為一個實例架構;國際商業機器公司及/或其他實體之其他架構及/或其他類型之計算環境可包括及/或使用本發明之一或多個態樣。z/Architecture及IBM為國際商業機器公司在至少一個司法管轄區中之商標或註冊商標。
參考圖1,在一個實例中,計算環境100包括中央處理器複合體(CPC) 102。中央處理器複合體102為例如IBM Z ®伺服器(或由國際商業機器公司或其他實體供應之其他伺服器或機器),且包括耦接至一或多個處理器單元(亦被稱為處理器) 110及輸入/輸出(I/O)子系統111之複數個組件,諸如,例如記憶體104 (亦稱為,系統記憶體、主記憶體、主儲存器、中心儲存器、儲存器)。實例處理器單元110包括一或多個通用處理器(亦稱為中央處理器或中央處理單元(CPU))及/或一或多個其他處理器。IBM Z為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
I/O子系統111可為中央處理器複合體之一部分或與其分離。其導引主儲存器104與耦接至中央處理器複合體之輸入/輸出控制單元108及輸入/輸出(I/O)裝置106之間的資訊流。
可使用許多類型之I/O裝置。一種特定類型為資料儲存裝置140。資料儲存裝置140可儲存一或多個程式142、一或多個電腦可讀程式指令144及/或資料等。電腦可讀程式指令可經組態以進行本發明之態樣之實施例的功能。
中央處理器複合體102可包括及/或耦接至抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。舉例而言,其可包括及/或耦接至非抽取式非揮發性磁性媒體(通常被稱為「硬碟機」)、用於自抽取式非揮發性磁碟(例如,「軟碟」)讀取及寫入至抽取式非揮發性磁碟之磁碟機,及/或用於自諸如CD-ROM、DVD-ROM或其他光學媒體之抽取式非揮發性光碟讀取或寫入至抽取式非揮發性光碟之光碟機。應理解,可結合中央處理器複合體102使用其他硬體及/或軟體組件。實例包括但不限於:微碼或毫碼(millicode)、裝置驅動程式、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機及資料存檔儲存系統等。
此外,中央處理器複合體102可與大量其他通用或專用計算系統環境或組態一起操作。可適合與中央處理器複合體102一起使用之熟知計算系統、環境及/或組態之實例包括但不限於:個人電腦(PC)系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子裝置、網路PC、小型電腦系統、大型電腦系統及包括以上系統或裝置中之任一者的分散式雲端計算環境,以及其類似者。
中央處理器複合體102在一或多個實施例中提供虛擬化支援,其中記憶體104包括例如一或多個虛擬機器112 (亦被稱為客體)、諸如超管理器114之管理虛擬機器之虛擬機器管理器、受信任執行環境115及處理器韌體116。超管理器114之一個實例為由紐約阿蒙克市之國際商業機器公司供應之z/VM ®超管理器。超管理器有時被稱為主機。z/VM為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。
在一或多個實施例中,受信任執行環境115可至少部分地實施於經組態以執行例如諸如本文中所描述之程序之硬體及/或韌體中。受信任執行環境為利用記憶體保護硬體施行記憶體保護之受信任韌體(被稱為超監督器)及/或硬體。客體之擁有者可藉由使用嵌入於主機金鑰文件中之公用主機金鑰而將資訊安全地傳遞(使用例如IBM安全執行)至受信任執行環境。為處理機密資訊,受信任執行環境使用匹配之私用主機金鑰。私用主機金鑰特定於伺服器,例如,IBM Z ®伺服器,且受硬體保護。
處理器韌體116包括例如處理器之微碼或毫碼。其包括例如用於實施較高層級機器碼之硬體層級指令及/或資料結構。在一個實施例中,其包括例如專屬碼,該專屬碼通常作為包括受信任軟體之微碼或毫碼、特定於底層硬體之微碼或毫碼遞送,且控制作業系統對系統硬體之存取。
中央處理器複合體之虛擬機器支援提供操作大量虛擬機器(亦被稱為客體) 112之能力,該等虛擬機器各自能夠用不同程式120操作且執行客體作業系統122,諸如Linux ®作業系統。各個虛擬機器112能夠充當分開系統。亦即,各個虛擬機器可獨立地進行重設,運行客體作業系統,且藉由不同程式操作。在虛擬機器中運行之作業系統或應用程式呈現為能夠存取完整系統,但實際上,僅其一部分可用。儘管供應z/VM及Linux作為實例,但可根據本發明之一或多個態樣使用其他虛擬機器管理器及/或作業系統。註冊商標Linux ®係依照來自Linux基金會(Linux Foundation)的轉授權而使用,該基金會為該商標在全球範圍內的所有者Linus Torvalds之獨家被授權人。
在一個實施例中,一或多個虛擬機器112為安全虛擬機器。安全虛擬機器由超管理器(例如,超管理器114)以使得超管理器無法觀測安全虛擬機器之狀態(例如,記憶體、暫存器等)的方式起動。舉例而言,在機密計算之一個實施例中,超管理器可起動/停止安全虛擬機器,且超管理器知曉用於起動安全虛擬機器之資料位於何處但其無法深入執行安全虛擬機器。用於載入/起動安全虛擬機器之資料可以超管理器無法看到安全機器之方式加密。安全虛擬機器影像之擁有者將機密資料置放於安全客體後設資料中,且接著產生安全虛擬機器影像以及安全客體後設資料。在載入安全虛擬機器之後,藉由諸如受信任執行環境115之受信任執行環境處理與安全虛擬機器之狀態的任何互動。
根據本發明之一態樣,可儲存安全虛擬機器之診斷狀態(即,可傾印安全虛擬機器),同時維持虛擬機器狀態之安全性。在一個實例中,診斷狀態在被不受信任實體(例如,超管理器)讀取之前被加密。為了安全地促進安全虛擬機器之傾印,根據一或多個態樣,使用至硬體及韌體之應用程式設計介面。應用程式設計介面允許超管理器存取可傳遞至虛擬機器所有者之虛擬機器狀態之經加密版本。所有者(例如,排他地)接著可解密該狀態並得到未經加密虛擬機器傾印以進行分析,因為所有者是具有經加密傾印之解密金鑰之實例(例如,唯一實例)。舉例而言,用於起始虛擬機器之後設資料包括機密金鑰,在本文中被稱為所有者金鑰或通信金鑰,其經保護使得例如僅受信任韌體可獲得機密所有者金鑰。該金鑰用於例如排他地解密經加密診斷資料。
作為一個實例,應用程式設計介面經劃分成用於複數個命令之複數個超監督器呼叫,包括例如啟動組態傾印命令、傾印中央處理單元狀態命令、自安全儲存器轉換命令、傾印組態儲存器狀態命令及完成組態傾印命令。舉例而言,各個命令在超監督器呼叫指令之執行中指定,在一個實施例中,超監督器呼叫指令包括指定超監督器呼叫操作之運算碼及複數個運算元。作為實例,當指令之第三運算元(例如,立即欄位)指定零時,將指定正常命令,且指令之第二運算元(例如,暫存器)指向儲存器中之超監督器控制區塊,該控制區塊指定超監督器(或其他受信任實體)執行之命令。
參考圖2至圖6描述用於儲存可由超監督器呼叫指令指定之診斷狀態的實例命令及控制區塊。舉例而言,圖2描繪使用此等命令之處理流程,且圖3至圖6描述根據本發明之一或多個態樣的由命令使用之各種控制區塊/資訊。
首先參考圖2,在200呼叫啟動組態傾印命令(亦被稱為啟動儲存診斷請求)。舉例而言,超監督器呼叫指令由例如超管理器(例如,超管理器114)發出,該超監督器呼叫指令指定指向控制區塊之指針,該控制區塊包括將由例如受信任實體(諸如超監督器)執行之啟動組態傾印命令。參考圖3描述此類控制區塊之實例。
在一個實例中,啟動組態傾印超監督器控制區塊300包括例如以下欄位:
長度302:此欄位(例如,位元組0-1)包括例如無正負號二進位整數(例如,16位元),其值以位元組為單位指定控制區塊(亦被稱為參數區塊)之長度。長度用於指定選擇值(例如,40十六進位);否則,選擇回應碼(例如,0005十六進位)適用。
命令碼304:此欄位(例如,位元組2-3)包括無正負號二進位整數(例如,16位元),其值指定啟動組態傾印超監督器呼叫命令之命令碼。
回應碼306:此欄位(例如,位元組4-5)包括無正負號二進位整數(例如,16位元),其指定回應碼。此值在操作完成時儲存。
傳回原因碼308:此欄位(例如,位元組6-7)包括傳回原因碼。
安全組態上下文處置310:此欄位(例如,位元組24-31)包括值(例如,64位元值),用於識別要起始傾印製程之安全組態(例如,虛擬機器)。
若特殊條件存在,則在超監督器呼叫控制區塊中儲存選擇碼以外之回應碼(例如,0001十六進位)。啟動組態傾印超監督器呼叫之特殊條件包括例如:
0003十六進位:啟動組態傾印超監督器呼叫命令以尚未發出成功執行初始化超監督器呼叫命令之組態發出。
0005十六進位:啟動組態傾印超監督器呼叫命令以不等於選擇值(例如,40十六進位)之長度發出。
0020十六進位:安全組態上下文處置並非用於經界定安全組態之有效處置。
0101十六進位:組態未授權傾印。
0102十六進位:未成功完成指定組態之證實解包封影像超監督器呼叫。
0103十六進位:組態傾印已經在進行中。
啟動組態傾印超監督器呼叫用於初始化指定安全組態(例如,安全虛擬機器)之傾印製程。作為初始化之一部分,導出用於傾印選擇安全組態資料(例如,經加密處理器狀態)之唯一傾印金鑰(例如,加密金鑰,出於清楚起見在本文中被稱為第一加密金鑰)。作為實例,命令自保存之消費者通信金鑰(例如,所有者金鑰)及金鑰導出種子導出傾印金鑰。保存此金鑰,且稍後可將其用於加密經由其他命令提供之資料。
在一個實例中,針對指定組態之證實解包封影像超監督器呼叫(用於證實解包封影像,即安全及經解密影像之完整性)將成功完成;否則,不執行操作且儲存所選回應碼(例如,0101十六進位)。若指定組態之另一啟動組態傾印超監督器呼叫已成功完成,但無成功完成之完成組態傾印超監督器呼叫,則不執行操作且儲存所選回應碼(例如,0102十六進位)。
在一個實例中,若安全虛擬機器仍在設置製程中,則不啟動傾印製程,此係由於在執行第一指令之前所有者已知虛擬機器之狀態。此外,如所指示,此命令啟動傾印製程,從而使其他應用程式設計介面命令能夠由超管理器呼叫。在啟動傾印製程之後,在現行製程完成之前,不會為此安全虛擬機器啟動第二傾印製程。因此,在一個實例中,基於執行啟動組態傾印命令,在210判定針對選擇組態(例如,虛擬機器)之傾印(亦被稱為儲存診斷狀態)是否已經在進行中。若組態之傾印已經在進行中,則在一個實例中,對於此處理,在212指示錯誤。然而,若組態之傾印尚未進行,則處理將繼續,如本文所描述。
舉例而言,基於啟動組態傾印,判定是否要傾印虛擬機器之狀態。返回至圖2,在220詢問是否要傾印一或多個中央處理單元之狀態。若要傾印一或多個中央處理單元之狀態,則在230啟動傾印中央處理單元狀態命令(亦被稱為儲存診斷處理器狀態請求)。舉例而言,超監督器呼叫指令由例如超管理器發出,該超監督器呼叫指令指定指向控制區塊之指針,該控制區塊包括將由受信任實體執行之傾印中央處理單元狀態命令。參考圖4A描述此類呼叫控制區塊之實例。
在一個實例中,傾印中央處理單元狀態超監督器呼叫控制區塊400包括例如以下欄位:
長度402:此欄位(例如,位元組0-1)包括例如無正負號二進位整數(例如,16位元),其值以位元組為單位指定控制區塊之長度。長度用於指定選擇值(例如,50十六進位);否則,選擇回應碼(例如,0005十六進位)適用。
命令碼404:此欄位(例如,位元組2-3)包括無正負號二進位整數(例如,16位元),其值指定傾印中央處理單元狀態超監督器呼叫命令之命令碼。
回應碼406:此欄位(例如,位元組4-5)包括無正負號二進位整數(例如,16位元),其指定回應碼。此值在操作完成時儲存。
傳回原因碼408:此欄位(例如,位元組6-7)包括傳回原因碼。對於傾印中央處理單元狀態超監督器呼叫命令,此欄位為例如零。
安全中央處理單元上下文處置410:此欄位(例如,位元組24-31)包括值(例如,64位元值),用於識別其狀態將被傾印之安全中央處理單元。
安全中央處理單元傾印區原點412:附加了選擇數目(例如,12)之零的此欄位(例如,位元組32-39之位元0-51)包括安全中央處理單元傾印區之邏輯位址(例如,64位元邏輯位址)。
若特殊條件存在,則在超監督器呼叫控制區塊中儲存選擇碼以外之回應碼(例如,0001十六進位)。傾印中央處理單元狀態超監督器呼叫之特殊條件包括例如:
0003十六進位:傾印中央處理單元狀態超監督器呼叫命令以尚未發出成功執行初始化超監督器呼叫命令之組態發出。
0005十六進位:傾印中央處理單元狀態超監督器呼叫命令以不等於選擇值(例如,50十六進位)之長度發出。
0021十六進位:安全中央處理單元上下文處置並非用於經界定安全中央處理單元之有效處置。
0101十六進位:在包含指定安全中央處理單元之安全組態上,尚未完成啟動組態傾印超監督器呼叫。
0102十六進位:指定中央處理單元之中央處理單元狀態已被傾印。
0103十六進位:指定安全中央處理單元現行正在執行。
0104十六進位:嘗試存取安全中央處理單元傾印區時識別出存取異常。
參考圖4B描述安全中央處理單元傾印區之格式的一個實例。作為實例,安全中央處理單元傾印區420包括:
安全中央處理單元傾印區版本422:此欄位(例如,位元組0-3)包括無正負號二進位整數(例如,32位元),其值指定由超監督器寫入之安全中央處理單元傾印區之版本。版本號界定安全中央處理單元傾印區中其他欄位之佈局。
安全中央處理單元傾印區長度424:此欄位(例如,位元組4-7)包括無正負號二進位整數(例如,32位元),其值指定超監督器寫入安全中央處理單元傾印區之資料位元組的數目。
初始化向量426:此欄位(例如,位元組8-19)包括超監督器在執行安全中央處理單元傾印區之例如AES 256-GCM(伽羅瓦/計數器模式)加密時使用之唯一初始化向量。
通用暫存器428:此欄位(例如,位元組32-159)包括指定安全中央處理單元之選擇通用暫存器(例如,通用暫存器0至15)之內容。
現行程式狀態字430:此欄位(例如,位元組160-175)包括指定安全中央處理單元之現行程式狀態字之內容。
前置432:此欄位(例如,位元組184-187)包括指定安全中央處理單元之前置暫存器之選擇位元(例如,位元32至63)。
浮點控制暫存器434:此欄位(例如,位元組188-191)包括指定安全中央處理單元之浮點控制暫存器。
當日時間(TOD)可程式化暫存器436:此欄位(例如,位元組196-199)包括指定安全中央處理單元之當日時間可程式化暫存器。
中央處理單元計時器438:此欄位(例如,位元組200-207)包括指定安全中央處理單元之中央處理單元計時器。
時鐘比較器440:此欄位(例如,位元組209-215)包括指定安全中央處理單元之時鐘比較器的選擇位元(例如,位元0-55)。
存取暫存器442:此欄位(例如,位元組224-287)包括指定安全中央處理單元之選擇存取暫存器(例如,存取暫存器0至15)之內容。
控制暫存器444:此欄位(例如,位元組288-415)包括指定安全中央處理單元之選擇控制暫存器(例如,控制暫存器0至15)之內容。
向量暫存器446:此欄位(例如,位元組416-927)包括指定安全中央處理單元之選擇向量暫存器(例如,向量暫存器0至31)之內容。
防護儲存指定暫存器448:此欄位(例如,位元組1448-1455)包括指定安全中央處理單元之防護儲存指定暫存器之內容。
防護儲存區段遮罩暫存器450:此欄位(例如,位元組1456-1463)包括指定安全中央處理單元之防護儲存區段遮罩暫存器之內容。
防護儲存事件參數清單位址暫存器452:此欄位(例如,位元組1464-1471)包括指定安全中央處理單元之防護儲存事件參數清單位址暫存器之內容。
傾印標誌454:此欄位(例如,位元組1536-1537)包括傳遞有關傾印之中央處理單元內容之資訊之標誌。實例標誌(例如,位元0)包括未完成之安全指令攔截處理指示符。當設置此標誌時,部分指令結果可包含在傾印之中央處理單元狀態中。
安全中央處理單元傾印區標籤456:此欄位(例如,安全中央處理單元傾印區之最後16個位元組)包括用於證實區內容真實性之驗證標籤。
在一個實例中,欄位422-426經過驗證,且欄位428-454經過加密。
傾印中央處理單元超監督器命令可針對虛擬機器之各個中央處理單元(或其子集)執行,且其產生中央處理單元之經加密狀態。使用例如傾印金鑰執行對虛擬機器之狀態之加密。經加密中央處理狀態可包括但不限於通用暫存器、控制暫存器、浮點暫存器、向量暫存器以及計時器、浮點控制暫存器及/或現行指令位址之內容。此外,在一個實例中,其包括未經加密區。在此區中,作為實例,保存用於資料加密之初始化向量,以及用於促進稍後解密及解釋傾印資料之長度及版本指示。
此命令用於傾印指定安全中央處理單元(或其他處理器)之經加密內容。安全中央處理單元傾印區包括例如明文標頭,其包括版本資訊、加密資料之大小及用於中央處理單元狀態加密之初始化向量。中央處理單元狀態使用例如具有256位元傾印金鑰之AES-GCM進行加密。經加密中央處理單元傾印區之驗證標籤直接儲存在經加密區之後。安全中央處理單元傾印區之長度例如小於或等於由舉例而言查詢超監督器呼叫命令傳回之安全中央處理單元儲存長度。
啟動組態傾印超監督器呼叫命令必須在發出傾印中央處理單元狀態超監督器呼叫命令之前已成功完成;否則,將儲存選擇回應碼(例如,0101十六進位)。若在啟動組態傾印超監督器呼叫命令與完成組態傾印超監督器呼叫命令之間,針對指定安全中央處理單元上下文處置多次發出傾印中央處理單元狀態超監督器呼叫命令,則儲存選擇回應碼(例如,0102十六進位)。若指定安全中央處理單元現行正在執行,則儲存選擇回應碼(例如,0103十六進位)。
返回至圖2,在一個實例中,基於啟動組態傾印200,在222亦判定是否傾印虛擬機器之記憶體。在一個實例中,若要傾印記憶體,則傾印發生在分頁移出製程期間。舉例而言,在224判定正在傾印之記憶體現行是否映射至安全組態(例如,安全虛擬機器)。若正在傾印之記憶體映射至安全組態,則在一個實例中,在226啟動自安全儲存器轉換命令。舉例而言,超監督器呼叫指令由例如超管理器發出,該超監督器呼叫指令指定自安全儲存器轉換之控制區塊,該控制區塊指定將由例如超監督器執行之自安全儲存器轉換命令。參考圖4C描述此類控制區塊之一個實例。
在一個實例中,自安全儲存器轉換超監督器呼叫控制區塊470包括例如以下欄位:
長度472:此欄位(例如,位元組0-1)包括例如無正負號二進位整數(例如,16位元),其值以位元組為單位指定控制區塊之長度。長度用於指定選擇值(例如,20十六進位);否則,選擇回應碼(例如,0005十六進位)適用。
命令碼474:此欄位(例如,位元組2-3)包括無正負號二進位整數(例如,16位元),其值指定自安全儲存器轉換超監督器呼叫命令之命令碼。
回應碼476:此欄位(例如,位元組4-5)包括無正負號二進位整數(例如,16位元),其指定回應碼。此值在操作完成時儲存。
傳回原因碼478:此欄位(例如,位元組6-7)包括傳回原因碼。當儲存例如「0001」十六進位之回應碼時,在修改指定記憶體單元(例如,儲存器區塊)之安全屬性時儲存例如「0000」十六進位之傳回原因碼。若指定記憶體單元之安全屬性已設置為所要之狀態,則儲存傳回原因碼,例如「0001」。
主機絕對位址480:具有選擇數目(例如,在右側附加12個零位元)之此欄位(例如,位元組32-39之位元0-51)形成記憶體單元(例如,4K位元組之儲存器區塊)之轉換至非安全儲存器之絕對位址。
若特殊條件存在,則在超監督器呼叫控制區塊中儲存選擇碼以外之回應碼(例如,0001十六進位)。自安全儲存器轉換超監督器呼叫之特殊條件包括例如:
0003十六進位:自安全儲存器轉換超監督器呼叫命令以尚未發出成功執行初始化超監督器呼叫命令之組態發出。
0005十六進位:自安全儲存器轉換超監督器呼叫命令以不等於選擇值(例如,20十六進位)之長度發出。
0030十六進位:主機位址空間控制元件之R位元(例如,位元58)設置為例如一。
0031十六進位:嘗試存取組態可變儲存器區時發生轉換異常。
0032十六進位:安全客體可變儲存器區包含虛擬位址,該虛擬位址轉換為區域訊框絕對位址或片段訊框絕對位址。
0103十六進位:主機絕對位址在主機組態中不可用。
0104十六進位:主機絕對位址為超監督器儲存器。
0105十六進位:對應主機虛擬位址已自安全儲存器轉換過多次。
作為一個實例,自安全儲存器轉換超監督器命令用於傾印安全記憶體,其中經傾印之記憶體單元(例如,記憶體頁面)使用例如分頁金鑰加密並儲存。自安全儲存器轉換命令將與安全組態相關聯之記憶體單元(例如,4K位元組之儲存器區塊)之安全屬性修改為非安全儲存器。若指定記憶體單元已界定為非安全儲存器,則操作完成,無需進一步動作,且儲存選擇回應碼(例如,「0001」十六進位)及選擇傳回原因碼(例如,「0001」十六進位)。若記憶體單元未界定為共用儲存器,則自記憶體單元之內容創建摘要。在一個實例中,此摘要由受信任實體(例如,超監督器)保存。記憶體單元之內容經加密(例如,使用分頁金鑰),且接著記憶體單元為非安全的。若記憶體單元界定為共用儲存器,則記憶體單元將被設置為非安全的,且不修改記憶體單元之內容。
若指定主機絕對位址歸受信任實體所有,則指定記憶體單元不變且儲存所選回應碼(例如,「0104」十六進位)。
在自安全儲存器轉換之後,參考圖2,處理繼續到詢問224。若要傾印之記憶體現行未映射至安全組態,則在232啟動傾印組態儲存器狀態命令(亦被稱為儲存診斷記憶體狀態請求)。舉例而言,超監督器呼叫指令由例如超管理器發出,該超監督器呼叫指令指定指向傾印組態儲存器狀態控制區塊之指針,該控制區塊指定將由例如超監督器執行之傾印組態儲存器狀態命令。參考圖5描述此類控制區塊之一個實例。
在一個實例中,傾印組態儲存器狀態超監督器呼叫控制區塊500包括例如以下欄位:
長度502:此欄位(例如,位元組0-1)包括例如無正負號二進位整數(例如,16位元),其值以位元組為單位指定控制區塊之長度。長度用於指定選擇值(例如,58十六進位);否則,選擇回應碼(例如,0005十六進位)適用。
命令碼504:此欄位(例如,位元組2-3)包括無正負號二進位整數(例如,16位元),其值指定傾印組態儲存器狀態超監督器呼叫命令之命令碼。
回應碼506:此欄位(例如,位元組4-5)包括無正負號二進位整數(例如,16位元),其指定回應碼。此值在操作完成時儲存。
傳回原因碼508:此欄位(例如,位元組6-7)包括傳回原因碼。對於傾印組態儲存器狀態超監督器呼叫命令,此欄位為例如零。
安全組態上下文處置510:此欄位(例如,位元組24-31)包括值(例如,64位元值),用於識別其狀態應被傾印之安全組態。
安全組態儲存器傾印區原點512:附加了選擇數目(例如,12)之零的此欄位(例如,位元組32-39之位元0-51)包括安全組態儲存器傾印區之邏輯位址(例如,64位元邏輯位址)。
安全組態絕對位址514:附加了選擇數目(例如,20)之零的此欄位(例如,位元組40-47之位元0-43)包括儲存選擇唯一組件(例如,微調組件)之儲存器之第一訊框(例如,256訊框)的安全組態絕對位址(例如,64位元位址)。
若特殊條件存在,則在超監督器呼叫控制區塊中儲存選擇碼以外之回應碼(例如,0001十六進位)。傾印組態儲存器狀態超監督器呼叫之特殊條件包括例如:
0003十六進位:傾印組態儲存器狀態超監督器呼叫命令以尚未發出成功執行初始化超監督器呼叫命令之組態發出。
0005十六進位:傾印組態儲存器狀態超監督器呼叫命令以不等於選擇值(例如,50十六進位)之長度發出。
0020十六進位:安全組態上下文處置並非用於經界定安全組態之有效處置。
0031十六進位:嘗試存取組態虛擬儲存器區時發生轉換異常。
0101十六進位:尚未在指定安全組態上完成啟動組態傾印超監督器呼叫。
0102十六進位:存取安全組態儲存器傾印區時識別出存取異常。
0103十六進位:安全組態絕對位址例如大於安全組態儲存器長度。
當儲存特殊選擇唯一組件(例如,特殊微調組件)時,選擇位元組(例如,位元組14-15)包括提供有關如何解釋對應記憶體單元(例如,4K位元組之儲存器區塊)之資訊之標誌。實例標誌包括:
位元         描述
15            零頁面
對應記憶體單元(4K位元組之儲存器區塊)尚未由安全組態儲存,且其內容可假設為零(或另一選擇值)。
14            共用頁面
對應記憶體單元(4K位元組之儲存器區塊)界定為共用儲存器且未經加密。
13            映射頁面
對應記憶體單元(4K位元組之儲存器區塊)具有到安全頁面之有效映射。
對於給定量之客體記憶體,傾印組態儲存器狀態命令傾印選擇唯一組件值(例如,微調組件值)及每頁面之狀態標誌。
在一個實例中,傾印組態儲存器狀態超監督器呼叫命令將例如256個選擇唯一組件值(例如,微調組件值)儲存至安全組態傾印區,自安全組態絕對位址指定之記憶體單元(例如,4K位元組之儲存器區塊)之選擇唯一值(例如,微調)開始。舉例而言,可自詢問超監督器資訊超監督器呼叫命令中獲得指定之組態傾印區之大小。
傾印組態儲存器狀態超監督器呼叫用於傾印例如16位元組選擇唯一組件值(例如,微調組件值),該等選擇唯一組件值用於導出加密或解密安全組態儲存器之記憶體單元(例如,4K位元組區塊)之內容時使用的選擇唯一值(例如,微調值)。選擇唯一組件值之輸出順序為自與安全組態中自例如絕對位址零開始之記憶體單元對應之值開始。若例如選擇唯一組件值之位元組0-3為例如「FFFFFFFF」十六進位,則記憶體單元不具有指定之選擇唯一值,且例如選擇唯一組件值之位元組14-15包含標誌,該等標誌提供更多有關應如何解釋對應記憶體單元之資訊。若選擇唯一組件值為任何其他值,則自例如完成組態傾印超監督器呼叫獲得的選擇唯一組件值之OR值及經解密選擇唯一值臨時標誌(例如,微調臨時標誌)將用作AES-XTS操作之選擇唯一值。
返回至圖2,且特定言之,詢問220、222,若沒有更多中央處理單元要傾印或沒有更多記憶體要傾印,則在240進行完成組態傾印呼叫(亦被稱為完成請求)。舉例而言,超監督器呼叫指令由例如超管理器發出,該超監督器呼叫指令指定完成組態傾印之控制區塊,該控制區塊指定藉由超監督器執行之完成組態傾印命令。參考圖6描述此類控制區塊之一個實例。
在一個實例中,完成組態傾印超監督器呼叫控制區塊600包括例如以下欄位:
長度602:此欄位(例如,位元組0-1)包括例如無正負號二進位整數(例如,16位),其值以位元組為單位指定控制區塊之長度。長度用於指定選擇值(例如,64+N位元組之值);否則,選擇回應碼(例如,0005十六進位)適用。值N可以自例如詢問超監督器資訊超監督器呼叫命令傳回之組態最終化傾印長度中獲得。
命令碼604:此欄位(例如,位元組2-3)包括無正負號二進位整數(例如,16位元),其值指定完成組態狀態傾印超監督器呼叫命令之命令碼。
回應碼606:此欄位(例如,位元組4-5)包括無正負號二進位整數(例如,16位元),其指定回應碼。此值在操作完成時儲存。
傳回原因碼608:此欄位(例如,位元組6-7)包括傳回原因碼。對於完成組態傾印超監督器呼叫命令,此欄位為例如零。
安全組態上下文處置609:此欄位(例如,位元組24-31)包括值(例如,64位元值),用於識別其傾印待完成之安全組態。
金鑰導出種子610:此欄位(例如,位元組64-127)包括用於導出用於加密中央處理單元狀態之傾印金鑰之種子以及此控制區塊中之資料。
初始化向量612:此欄位(例如,位元組128-143)包括加密此超監督器呼叫儲存之資料時使用的初始化向量。
微調臨時標誌(亦被稱為選擇唯一臨時標誌)614:此欄位(例如,位元組144-159)包括用於選擇唯一值(例如,微調值)之一次性隨機值。此值將與各個非特殊選擇唯一組件(例如,微調組件)進行OR運算,以創建用於加密記憶體單元(例如,4K位元組之儲存器區塊)之選擇唯一值。
儲存器加密金鑰1 (616):此欄位(例如,位元組160-191)包括用於加密選擇唯一值(例如,微調值)之第一AES-256 XTS金鑰,該等選擇唯一值隨後用於解密傾印之記憶體單元(例如,4K位元組之儲存器區塊)。
儲存器加密金鑰2 (618):此欄位(例如,位元組192-223)包括第二AES-256 XTS金鑰,其與經加密選擇唯一值(例如,微調值)一起用於解密記憶體單元(例如,4K位元組之儲存器區塊)。在一個實例中,儲存器加密金鑰1組合儲存器加密金鑰2為分頁金鑰。
驗證標籤620:此欄位(例如,位元組256-271)包括AES-GCM驗證標籤,該驗證標籤使用驗證值(例如,位元組64-143)作為額外經驗證資料,然後自經加密欄位(例如,位元組144-255)計算標籤之其餘部分而導出。
若特殊條件存在,則在超監督器呼叫控制區塊中儲存選擇碼以外之回應碼(例如,0001十六進位)。完成組態傾印超監督器呼叫之特殊條件包括例如:
0003十六進位:完成組態傾印超監督器呼叫命令以尚未發出成功執行初始化超監督器呼叫命令之組態發出。
0005十六進位:完成組態傾印超監督器呼叫命令以不等於選擇值(例如,130十六進位)之長度發出。
0020十六進位:安全組態上下文處置並非用於經界定安全組態之有效處置。
0101十六進位:尚未在指定安全組態上完成啟動組態傾印超監督器呼叫。
完成組態傾印超監督器呼叫用於完成指定安全組態之傾印處理。該呼叫傳回消費者用於解密傾印並檢查其完整性之資料。其亦完成傾印製程,且因此允許經由啟動組態傾印呼叫而啟動新傾印製程。舉例而言,其包括用於創建傾印金鑰之金鑰導出種子,以便虛擬機器之所有者可計算傾印金鑰本身。其亦包括用於加密傳回資料之經加密部分之初始化向量及應用於證實已驗證及加密之資料內容的驗證標籤。經加密部分包括例如將經OR計算為來自傾印記憶體狀態呼叫之選擇唯一值中之每一者之所選唯一值臨時標誌,及用於加密彼等選擇唯一值之AES XTS (利用密文竊用之進階加密標準XEX可微調區塊編碼器)金鑰。
如本文所描述,可傾印安全虛擬機器,同時藉由在傾印可被不受信任實體讀取之前對其進行加密來維持經傾印虛擬機器狀態之安全性。為了安全地促進安全虛擬機器之傾印,採用傾印應用程式設計介面。該介面使用複數個呼叫,並且各個呼叫指向控制區塊,本文描述了該控制區塊之實例。在一或多個實施例中,本文描述之各個控制區塊/區可包括額外、更少及/或其他欄位。此外,各個欄位可位於控制區塊/區內之不同位置及/或具有不同大小或資料類型。此外,控制區塊/區可包括一或多個保留欄位。許多變化係可能的。
在一或多個態樣中,可使用多種技術傾印虛擬機器之記憶體。舉例而言,一種技術包括使用傾印金鑰直接加密記憶體。藉由被稱為中央處理單元記憶體加密之此技術,對安全虛擬機器頁面進行加密。安全虛擬機器之金鑰及超管理器之金鑰不同,因此若超管理器讀取或寫入結果,則其為隨機資料。為了最佳安全性,加密金鑰從不離開中央處理單元之記憶體控制器,因此不能用於傾印安全虛擬機器之記憶體,因為僅現行運行虛擬機器之中央處理單元才能解密頁面。另外,當安全虛擬機器停止時,金鑰會被清除。
此保護機制留下了一種傾印安全虛擬機器記憶體之技術,此係因為通常無法輸出用於存取安全虛擬機器記憶體之金鑰:使用可輸出之特殊傾印金鑰替代不可輸出之存取金鑰對其進行加密。若頁面已被調換至磁碟,它將被帶回至客體之記憶體中,以便對其進行解密及重新加密。此產生額外記憶體壓力,且佔用處理器加密/解密週期。
根據一或多個態樣,用於傾印安全虛擬機器之記憶體之另一種技術被稱為記憶體保護,該技術拒絕存取安全虛擬機器之頁面,該頁面所屬之安全虛擬機器及受信任韌體(例如,超監督器)除外,直到在超管理器向韌體發出請求後對其進行加密為止。在加密之後,安全虛擬機器無法再使用該頁面,但可藉由超管理器將其寫入磁碟。類似地,對韌體之請求用於解密、完整性檢查並將經加密頁面映射回至安全虛擬機器,以便該安全虛擬機器可再次存取該頁面。
此保護機制能夠使用加密頁面時使用之相同金鑰來調換以進行傾印。此意謂一旦頁面經加密,則僅當客體想要再次存取頁面時才需要將其帶回至客體中。尚未加密之頁面將被加密,但已經加密之頁面,無論它們是否仍在記憶體中或已在磁碟上,都可直接寫入傾印。若頁面已被分頁至磁碟,則此會導致傾印所需之CPU週期顯著減少。將輸出特定於加密之資料,以便在稍後檢查傾印時解密頁面。例如,此類資料可包括針對各個記憶體頁之選擇唯一值(例如,微調值)。
與虛擬機器內部故障內核寫入之診斷狀態之儲存相反,如本文在一或多個態樣中所描述,診斷狀態之儲存係由超管理器在虛擬機器外部產生的。它要麼由虛擬機器之所有者觸發,要麼在超管理器判定虛擬機器出現故障且未正常執行程式碼時自動觸發。
本發明之一或多個態樣不可避免地與電腦技術相關且促進電腦內之處理,從而改善其效能。藉由以較不複雜方式安全儲存虛擬機器(例如,安全虛擬機器)之診斷狀態、使用較少處理週期且改良效能同時維持安全性來促進處理。
參考圖7A至圖7C描述與本發明之一或多個態樣有關的促進計算環境內之處理的一個實施例之其他細節。
參考圖7A,在一個實施例中,在700獲得儲存虛擬機器之診斷狀態之至少一個請求。在702,基於獲得至少一個請求,執行對虛擬機器之診斷狀態之儲存以提供虛擬機器之經儲存診斷狀態。在704,舉例而言,執行儲存包括加密未經加密且經儲存之虛擬機器之診斷狀態,以防止在加密未經加密且經儲存之虛擬機器之診斷狀態之前不受信任實體對虛擬機器之診斷狀態之讀取。
可以儲存虛擬機器(例如,安全虛擬機器)之診斷狀態,同時維持為診斷目的而儲存之虛擬機器之狀態的安全性。
作為實例,在706虛擬機器之經儲存診斷狀態包括虛擬機器之記憶體之內容,及/或在708虛擬機器之經儲存診斷狀態包括虛擬機器之一或多個處理器暫存器之內容。
在一個實例中,在710獲得啟動虛擬機器之診斷狀態之儲存的啟動儲存診斷狀態請求。在712,啟動儲存診斷狀態請求用以獲得第一加密金鑰,用於加密未經加密且經儲存之虛擬機器之診斷狀態的至少一部分。
在一個實例中,參考圖7B,在720獲得至少一個請求包括獲得儲存診斷處理器狀態請求。基於獲得儲存診斷處理器狀態請求,執行對診斷狀態之儲存包括:舉例而言,在722使用第一加密金鑰加密虛擬機器之至少一個處理器之至少選擇內容以提供經加密處理器內容,及在724儲存經加密處理器內容。
在一個實例中,在726獲得至少一個請求包括獲得自安全記憶體轉換之請求。基於獲得自安全記憶體轉換之請求,執行對診斷狀態之儲存包括:舉例而言,在730使用第二加密金鑰加密未經加密之虛擬機器之記憶體之至少選擇內容以提供經加密記憶體之內容;及在732儲存經加密記憶體之內容。
作為實例,基於獲得自安全記憶體轉換之請求,執行對診斷狀態之儲存包括:舉例而言,在736判定其內容待儲存之記憶體單元是否經加密,及在738基於判定記憶體單元未經加密,使用第二加密金鑰加密記憶體單元,其中經加密之記憶體單元不重新加密。
藉由加密未經加密內容(而非重新加密經加密狀態),處理週期及複雜度減少,從而改良系統效能。
在一個實例中,參考圖7C,在750經儲存診斷狀態包括經加密記憶體之內容。此外,在一個實例中,在752獲得儲存診斷記憶體狀態請求,及在754基於獲得儲存診斷記憶體狀態請求,儲存待用以解密經加密記憶體之內容之後設資料。
作為實例,在756後設資料包括待用以創建一或多個選擇值以用於解密經加密記憶體之內容之一或多個選擇組件值。
在一個實例中,在760獲得完成對診斷狀態之儲存之完成請求,及在762基於獲得完成請求,提供待用以解密虛擬機器之經加密儲存診斷狀態之資料。
作為實例,在770資料包括用於經加密記憶體之內容之解密的第二加密金鑰及待用以創建用於加密之一或多個選擇值之一次性隨機值。此外,在一個實例中,在772加密資料之至少一部分。
其他變化及實施例為可能的。
本發明之態樣可由許多類型之計算環境使用。參考圖8A描述併有及使用本發明之一或多個態樣的計算環境之另一實施例。在此實例中,計算環境36包括例如原生中央處理單元(CPU) 37、記憶體38及一或多個輸入/輸出裝置及/或介面39,前述各者經由例如一或多個匯流排40及/或其他連接而彼此耦接。作為實例,計算環境36可包括:由紐約阿蒙克市之國際商業機器公司供應之PowerPC ®處理器;由加州帕洛阿爾托市(Palo Alto,California)之惠普公司(Hewlett Packard Co.)供應的具有Intel ®Itanium ®II處理器之HP Superdome;及/或基於由國際商業機器公司、惠普公司、英特爾公司、甲骨文公司(Oracle)及/或其他公司供應之架構的其他機器。PowerPC為國際商業機器公司在至少一個管轄區域中之商標或註冊商標。英特爾及安藤為英特爾公司或其子公司在美國及其他國家中之商標或註冊商標。
原生中央處理單元37包括一或多個原生暫存器41,諸如在環境內之處理期間使用的一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示在任何特定時間點處之環境狀態之資訊。
此外,原生中央處理單元37執行儲存於記憶體38中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體38中之仿真器程式碼42。此程式碼使得在一個架構中組態之計算環境能夠仿真另一架構。舉例而言,仿真器程式碼42允許基於除z/Architecture指令集架構以外之架構的機器,諸如PowerPC處理器、HP Superdome伺服器或其他,來仿真z/Architecture指令集架構且執行基於z/Architecture指令集架構開發之軟體及指令。
參考圖8B描述與仿真器程式碼42有關之其他細節。儲存於記憶體38中之客體指令43包含經開發以在除原生CPU 37之架構以外的架構中執行之軟體指令(例如,與機器指令相關)。舉例而言,客體指令43可能已經設計以在基於z/Architecture指令集架構之處理器上執行,但替代地,在可為例如Intel Itanium II處理器之原生CPU 37上仿真。在一個實例中,仿真器程式碼42包括指令提取常式44以自記憶體38獲得一或多個客體指令43且視情況提供對所獲得指令之本端緩衝。其亦包括指令轉譯常式45以判定已經獲得之客體指令之類型且將客體指令轉譯成一或多個對應的原生指令46。此轉譯包括例如識別待由客體指令執行之功能及挑選原生指令執行彼功能。
此外,仿真器程式碼42包括仿真控制常式47以使得執行原生指令。仿真控制常式47可使原生CPU 37執行仿真一或多個先前所獲得之客體指令之原生指令的常式且在此執行完結時,將控制傳回至指令提取常式以仿真獲得下一客體指令或一組客體指令。原生指令46之執行可包括將資料自記憶體38載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算(如藉由轉譯常式判定)。
各個常式例如實施於軟體中,該軟體儲存於記憶體中且藉由原生中央處理單元37執行。在其他實例中,一或多個常式或操作實施於韌體、硬體、軟體或其某一組合中。可使用原生CPU之暫存器41或藉由使用記憶體38中之位置來仿真所仿真處理器之暫存器。在實施例中,客體指令43、原生指令46及仿真器程式碼42可駐存於相同記憶體中或可分配於不同記憶體裝置當中。
根據本發明之一或多個態樣,可仿真之指令、命令或呼叫包括本文中所描述之超監督器呼叫。此外,根據本發明之一或多個態樣,可仿真本發明之其他指令、命令、功能、操作、呼叫及/或一或多個態樣。
上文所描述之計算環境僅為可使用之計算環境的實例。可使用其他環境,包括但不限於未經分割之環境、經分割之環境、雲端環境及/或仿真環境;實施例不限於任一種環境。儘管本文中描述計算環境之各種實例,但本發明之一或多個態樣可與許多類型之環境一起使用。本文中所提供之計算環境僅為實例。
各個計算環境能夠經組態以包括本發明之一或多個態樣。
一或多個態樣可係關於雲端計算。
應理解,儘管本發明包括關於雲端計算之詳細描述,但本文中所敍述之教示的實施不限於雲端計算環境。實情為,本發明之實施例能夠結合現在已知或稍後開發之任何其他類型之計算環境來實施。
雲端計算為用於實現對可快速佈建並以最小管理工作釋放或與服務之提供者互動的可組態計算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機器及服務)之共用集區的便利隨選網路存取的服務遞送之模型。此雲端模型可包括至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
隨選自助服務:雲端消費者可視需要自動地單向佈建計算能力(諸如,伺服器時間及網路儲存器),而無需與服務提供者之人為互動。
寬網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源集用:提供者之計算資源經集用以使用多租戶模型為多個消費者服務,其中根據需要動態指派及重新指派不同實體及虛擬資源。存在位置獨立性之意義,此係因為消費者通常不具有對所提供之資源之確切位置的控制或瞭解,但可能能夠按較高抽象層級(例如,國家、州或資料中心)指定位置。
快速彈性:可快速地且彈性地佈建能力,在一些狀況下自動地佈建能力,以迅速地向外延展,且可快速地釋放能力以迅速地向內延展。在消費者看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何量來購買。
經量測服務:雲端系統藉由在適合於服務類型(例如,儲存、處理、頻寬及作用中使用者賬戶)之某一抽象層級下利用計量能力而自動控制及最佳化資源使用。可監測、控制及報告資源使用狀況,由此向所利用服務之提供者及消費者兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供至消費者之能力係使用在雲端基礎架構上運行的提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網頁之電子郵件)之精簡型用戶端介面自各種用戶端裝置獲取應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之基礎雲端基礎架構,其中可能的異常為有限的使用者特定應用程式組態設定。
平台即服務(PaaS):提供至消費者之能力係將消費者創建之應用程式或使用提供者所支援的程式設計語言及工具創建之所獲取應用程式部署至雲端基礎架構上。消費者並不管理或控制包括網路、伺服器、作業系統或儲存器之底層雲端基礎架構,但控制所部署之應用程式及可能的代管環境組態之應用程式。
基礎架構即服務(IaaS):提供給消費者之能力係佈建處理、儲存、網路及其他基礎計算資源,其中消費者能夠部署及執行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制基礎雲端基礎架構,但具有對作業系統、儲存器、所部署應用程式之控制,及可能的對選擇網路連接組件(例如,主機防火牆)之有限控制。
部署模型如下:
私用雲端:僅針對組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在於內部部署或外部部署。
社群雲端:該雲端基礎架構由若干組織共用且支援具有共用關注事項(例如,任務、安全要求、策略及合規性考量)的特定社群。社群雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公用雲端:使雲端基礎架構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:雲端基礎架構為兩個或兩個以上雲端(私用、社群或公用)之組合物,該等雲端保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡之雲端爆裂)之標準化或專屬技術繫結在一起。
藉由集中於無狀態性、低耦接、模組化及語義互操作性對雲端計算環境進行服務定向。雲端計算之關鍵為包括互連節點之網路的基礎架構。
現參考圖9,描繪說明性雲端計算環境50。如所展示,雲端計算環境50包括一或多個雲端計算節點52,雲端消費者所使用之諸如個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N的本端計算裝置可與該一或多個雲端計算節點進行通信。節點52可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公用或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未圖示)。此情形允許雲端計算環境50提供基礎架構、平台及/或軟體作為服務,針對該等服務,雲端消費者不需要在本端計算裝置上維護資源。應理解,圖9中所示之計算裝置54A至54N之類型意欲僅為說明性的,且計算節點52及雲端計算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參考圖10,展示由雲端計算環境50 (圖9)所提供之功能抽象層之集合。事先應理解,圖10中所示之組件、層及功能意欲僅為說明性的且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層60包括硬體及軟體組件。硬體組件之實例包括:大型電腦61;基於精簡指令集電腦(IRSC)架構之伺服器62;伺服器63;刀鋒伺服器64;儲存裝置65;以及網路及網路連接組件66。在一些實施例中,軟體組件包括網路應用程式伺服器軟體67及資料庫軟體68。
虛擬化層70提供抽象層,可自該抽象層提供虛擬實體之以下實例:虛擬伺服器71;虛擬儲存器72;虛擬網路73,包括虛擬私用網路;虛擬應用程式及作業系統74;及虛擬用戶端75。
在一個實例中,管理層80可提供下文所描述之功能。資源佈建81提供計算資源及用以執行雲端計算環境內之任務之其他資源的動態採購。當在雲端計算環境內利用資源時,計量及定價82提供成本追蹤,及對此等資源之消耗之帳務處理及發票開立。在一個實例中,此等資源可包括應用程式軟體授權。安全性為雲端消費者及任務提供身分證實,以及對資料及其他資源之保護。使用者入口網站83為消費者及系統管理者提供對雲端計算環境之存取。服務等級管理84提供雲端計算資源分配及管理使得滿足所需服務等級。服務等級協定(SLA)規劃及實現85提供雲端計算資源之預先配置及採購,針對雲端計算資源之未來要求係根據SLA來預期。
工作負載層90提供功能之實例,可針對該功能利用雲端計算環境。可自此層提供之工作負載及功能的實例包括:地圖繪製及導航91;軟體開發及生命週期管理92;虛擬教室教育遞送93;資料分析處理94;異動處理95;及安全虛擬機器傾印處理96。
本發明之態樣可為在任何可能之技術細節整合層級處的系統、方法及/或電腦程式產品。電腦程式產品可包括電腦可讀儲存媒體(或多個媒體),其上具有電腦可讀程式指令以使得處理器執行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保持及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為(例如但不限於):電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可擦除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶棒、軟性磁碟、機械編碼裝置(諸如其上記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文中所使用,不將電腦可讀儲存媒體本身理解為暫時信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖電纜傳遞之光脈衝),或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別計算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。各個計算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別計算/處理裝置內之電腦可讀儲存媒體中。
用於實行本發明之操作的電腦可讀程式指令可為以一或多種程式設計語言之任何組合撰寫的組譯器指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料、用於積體電路系統之組態資料,或原始碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及程序性程式設計語言,諸如「C」程式設計語言或類似程式設計語言。電腦可讀程式指令可完全在使用者電腦上執行、部分地在使用者電腦上執行、作為獨立套裝軟體執行、部分地在使用者電腦上執行且部分地在遠端電腦上執行或完全在遠端電腦或伺服器上執行。在後一種情境中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者電腦,或可連接至外部電腦(例如,經由使用網際網路服務提供者之網際網路)。在一些實施例中,電子電路(包括例如可程式化邏輯電路、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA))可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之各個區塊,及流程圖說明及/或方塊圖中之區塊之組合。
可將此等電腦可讀程式指令提供至電腦或可程式資料處理設備之處理器以產生一機器,以使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令建立用於實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之手段。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,其可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施在該一或多個流程圖及/或方塊圖區塊中指定之功能/動作之態樣。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之各個區塊可表示指令之模組、片段或部分,其包含用於實施經指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所指出的功能可不按圖式中所指出的次序發生。舉例而言,取決於所涉及之功能性,連續展示之兩個區塊實際上可實現為一個步驟,同時、實質上同時、以部分或完全在時間上重疊之方式執行,或該等區塊有時可以相反次序執行。亦將注意,可藉由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之各個區塊,及方塊圖及/或流程圖說明中之區塊之組合。
除上述以外,可藉由供應消費者環境之管理之服務提供者提供、供應、部署、管理、服務一或多個態樣等。舉例而言,服務提供者可建立、維持、支援(等)電腦程式碼及/或執行用於一或多個消費者之一或多個態樣的電腦基礎架構。作為回報,服務提供者可根據訂用及/或收費協定接收來自消費者之付款(作為實例)。另外或替代地,服務提供者可接收來自向一或多個第三方出售廣告內容之付款。
在一個態樣中,可部署一應用程式用於執行一或多個實施例。作為一個實例,應用程式之部署包含提供可操作以執行一或多個實施例之電腦基礎架構。
作為另一態樣,可部署計算基礎架構,包含將電腦可讀程式碼整合至計算系統中,其中程式碼結合計算系統能夠執行一或多個實施例。
作為又一態樣,可提供一種用於整合計算基礎架構之製程,包含將電腦可讀程式碼整合至電腦系統中。電腦系統包含電腦可讀媒體,其中電腦媒體包含一或多個實施例。程式碼結合電腦系統能夠執行一或多個實施例。
儘管上文描述各種實施例,但其僅為實例。舉例而言,其他架構之計算環境可用以併有及/或使用一或多個態樣。此外,可使用不同指令、命令、功能、呼叫及/或操作。許多變化係可能的。
本文中描述各種態樣。另外,在不脫離本發明之態樣之精神的情況下,許多變化係可能的。應注意,除非不一致,否則本文所描述之各個態樣或特徵及其變體可與任何其他態樣或特徵組合。
此外,其他類型之計算環境可係有益之且可被使用。作為實例,可使用適合於儲存及/或執行程式碼之資料處理系統,其包括直接或經由系統匯流排間接地耦接至記憶體元件之至少兩個處理器。記憶體元件包括(例如)在實際執行程式碼期間使用之本機記憶體、大容量儲存器,及提供至少某一程式碼之臨時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O裝置(包括但不限於鍵盤、顯示器、指標裝置、DASD、磁帶、CD、DVD、隨身碟(Thumb Drive)及其他記憶體媒體等)可直接或經由介入之I/O控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入的私人網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網卡僅為幾個可用類型之網路配接器。
本文中所使用之術語僅出於描述特定實施例之目的且並不意欲為限制性的。如本文中所使用,除非上下文另有清楚地指示,否則單數形式「一」以及「該」意欲亦包括複數形式。應進一步理解,術語「包含(comprise)」及/或「包含(comprising)」在用於本說明書中時指定所陳述特徵、整體、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物(若存在)意欲包括用於結合如特定主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的呈現一或多個實施例之描述,但其不意欲為窮盡性的或限於所揭示之形式。對於一般熟習此項技術者而言,許多修改及變化將為顯而易見的。選取及描述實施例以便最佳地解釋各種態樣及實際應用,且使得一般熟習此項技術者能夠理解具有如適於所預期之特定用途之各種修改的各種實施例。
36:計算環境 37:原生中央處理單元(CPU) 38:記憶體 39:輸入/輸出 40:匯流排 41:原生暫存器 42:仿真器程式碼 43:客體指令 44:指令提取常式 45:指令轉譯常式 46:原生指令 47:仿真控制常式 50:雲端計算環境 52:雲端計算節點 54A:個人數位助理/蜂巢式電話 54B:桌上型電腦 54C:膝上型電腦 54N:汽車電腦系統 60:硬體及軟體層 61:大型電腦 62:基於精簡指令集電腦(IRSC)架構之伺服器 63:伺服器 64:刀鋒伺服器 65:儲存裝置 66:網路及網路連接組件 67:網路應用程式伺服器軟體 68:資料庫軟體 70:虛擬化層 71:虛擬伺服器 72:虛擬儲存器 73:虛擬網路 74:虛擬應用程式及作業系統 75:虛擬用戶端 80:管理層 81:資源佈建 82:計量及定價 83:使用者入口網站 84:服務等級管理 85:服務等級協定(SLA)規劃及實現 90:工作負載層 91:地圖繪製及導航 92:軟體開發及生命週期管理 93:虛擬教室教育遞送 94:資料分析處理 95:異動處理 96:安全虛擬機器傾印處理 100:計算環境 102:中央處理器複合體(CPC) 104:記憶體/主儲存器 106:輸入/輸出(I/O)裝置 108:輸入/輸出控制單元 110:處理器單元/處理器 111:輸入/輸出(I/O)子系統 112:虛擬機器/客體 114:超管理器 115:受信任執行環境 116:處理器韌體 120:程式 122:客體作業系統 140:資料儲存裝置 142:程式 144:電腦可讀程式指令 200:步驟 210:步驟 212:步驟 220:步驟 222:步驟 224:步驟 226:步驟 230:步驟 232:步驟 240:步驟 300:啟動組態傾印控制區塊 302:欄位 304:欄位 306:欄位 308:欄位 310:欄位 400:傾印CPU狀態控制區塊 402:欄位 404:欄位 406:欄位 408:欄位 410:欄位 412:欄位 420:安全CPU傾印區 422:欄位 424:欄位 426:欄位 428:欄位 430:欄位 432:欄位 434:欄位 436:欄位 438:欄位 440:欄位 442:欄位 444:欄位 446:欄位 448:欄位 450:欄位 452:欄位 454:欄位 456:欄位 470:自安全儲存器轉換之控制區塊 472:欄位 474:欄位 476:欄位 478:欄位 480:欄位 500:傾印組態儲存器狀態控制區塊 502:欄位 504:欄位 506:欄位 508:欄位 510:欄位 512:欄位 514:欄位 600:完成組態傾印控制區塊 602:欄位 604:欄位 606:欄位 608:欄位 609:欄位 610:欄位 612:欄位 614:欄位 616:欄位 618:欄位 620:欄位 700:步驟 702:步驟 704:步驟 706:步驟 708:步驟 710:步驟 712:步驟 720:步驟 722:步驟 724:步驟 726:步驟 730:步驟 732:步驟 736:步驟 738:步驟 750:步驟 752:步驟 754:步驟 756:步驟 760:步驟 762:步驟 770:步驟 772:步驟
在本說明書之結尾處之申請專利範圍中作為實例特定地指出且清楚地主張一或多個態樣。一或多個態樣之前述內容以及物件、特徵及優點自結合隨附圖式進行之以下詳細描述顯而易見,其中: 圖1描繪併有及使用本發明之一或多個態樣的計算環境的一個實例; 圖2描繪根據本發明之一或多個態樣的儲存組態(例如,虛擬機器)之診斷狀態(亦被稱為執行組態傾印)的一個實例; 圖3描繪根據本發明之一或多個態樣的啟動組態傾印控制區塊的一個實例; 圖4A描繪根據本發明之一或多個態樣的傾印中央處理單元(CPU)狀態控制區塊的一個實例; 圖4B描繪根據本發明之一或多個態樣的安全中央處理單元傾印區的一個實例; 圖4C描繪根據本發明之一或多個態樣的所使用之自安全儲存器轉換之控制區塊的一個實例; 圖5描繪根據本發明之一或多個態樣的傾印組態儲存器狀態控制區塊的一個實例; 圖6描繪根據本發明之一或多個態樣的完成組態傾印控制區塊的一個實例; 圖7A至圖7C描繪根據本發明之一或多個態樣的促進計算環境內之處理的一個實例; 圖8A描繪併有及使用本發明之一或多個態樣的計算環境的另一實例; 圖8B描繪根據本發明之一或多個態樣的圖8A之記憶體的其他細節; 圖9描繪根據本發明之一或多個態樣的雲端計算環境之一個實施例;且 圖10描繪根據本發明之一或多個態樣的抽象模型層的一個實例。
700:步驟
702:步驟
704:步驟
706:步驟
708:步驟
710:步驟
712:步驟

Claims (18)

  1. 一種用於促進一計算環境內之處理的電腦程式產品,該電腦程式產品包含:一或多個電腦可讀儲存媒體及共同地儲存於該一或多個電腦可讀儲存媒體上以執行一方法之程式指令,該方法包含:獲得儲存一虛擬機器之診斷狀態的至少一個請求;及基於獲得該至少一個請求,執行對該虛擬機器之診斷狀態之一儲存以提供該虛擬機器之經儲存診斷狀態,其中該執行該儲存包括加密未經加密且經儲存之該虛擬機器之該診斷狀態,以防止在加密未經加密且經儲存之該虛擬機器之該診斷狀態之前一不受信任實體對該虛擬機器之該診斷狀態之一讀取,其中該獲得該至少一個請求包括獲得一自安全記憶體轉換之請求,且其中基於獲得該自安全記憶體轉換之請求,該執行對該診斷狀態之該儲存包括:判定其內容待儲存之一記憶體單元是否經加密;基於判定該記憶體單元未經加密,使用一第二加密金鑰加密未經加密之該記憶體單元,以提供經加密記憶體之內容,其中經加密之記憶體單元不重新加密;及儲存該等經加密記憶體之內容。
  2. 如請求項1之電腦程式產品,其中該虛擬機器之該經儲存診斷狀態包括該虛擬機器之記憶體之內容。
  3. 如請求項1之電腦程式產品,其中該虛擬機器之該經儲存診斷狀態包括該虛擬機器之一或多個處理器暫存器之內容。
  4. 如請求項1之電腦程式產品,其中該方法進一步包含獲得啟動該虛擬機器之診斷狀態之儲存的一啟動儲存診斷狀態請求,該啟動儲存診斷狀態請求用以獲得一第一加密金鑰,用於加密未經加密且經儲存之該虛擬機器之該診斷狀態的至少一部分。
  5. 如請求項4之電腦程式產品,其中該獲得該至少一個請求包括獲得一儲存診斷處理器狀態請求,且其中基於獲得該儲存診斷處理器狀態請求,該執行對該診斷狀態之該儲存包括:使用該第一加密金鑰加密該虛擬機器之至少一個處理器之至少選擇內容,以提供經加密處理器內容;及儲存該等經加密處理器內容。
  6. 如請求項1之電腦程式產品,其中該經儲存診斷狀態包括經加密記憶體之內容,且其中該方法進一步包含:獲得一儲存診斷記憶體狀態請求;及基於獲得該儲存診斷記憶體狀態請求,儲存待用以解密該等經加密記憶體之內容之後設資料。
  7. 如請求項6之電腦程式產品,其中該後設資料包括待用以創建一或多 個選擇值以用於解密該等經加密記憶體之內容之一或多個選擇組件值。
  8. 如請求項1之電腦程式產品,其中該方法進一步包括:獲得完成對診斷狀態之該儲存之一完成請求;及基於獲得該完成請求,提供待用以解密該虛擬機器之經加密儲存診斷狀態之資料。
  9. 如請求項8之電腦程式產品,其中該資料包括用於經加密記憶體之內容之解密的一第二加密金鑰及待用以創建用於加密之一或多個選擇值之一一次性隨機值,且其中加密該資料之至少一部分。
  10. 一種用於促進一計算環境內之處理的電腦系統,該電腦系統包含:一記憶體;及至少一個處理器,其與該記憶體通信,其中該電腦系統經組態以執行一方法,該方法包含:獲得儲存一虛擬機器之診斷狀態的至少一個請求;及基於獲得該至少一個請求,執行對該虛擬機器之診斷狀態之一儲存以提供該虛擬機器之經儲存診斷狀態,其中該執行該儲存包括加密未經加密且經儲存之該虛擬機器之該診斷狀態,以防止在加密未經加密且經儲存之該虛擬機器之該診斷狀態之前一不受信任實體對該虛擬機器之該診斷狀態之一讀取,其中該獲得該至少一個請求包括獲得一自安全記憶體轉換之請求,且其中基於獲得該自安全記憶體轉換之請求,該執行對該診斷 狀態之該儲存包括:判定其內容待儲存之一記憶體單元是否經加密;基於判定該記憶體單元未經加密,使用一第二加密金鑰加密未經加密之該記憶體單元,以提供經加密記憶體之內容,其中經加密之記憶體單元不重新加密;及儲存該等經加密記憶體之內容。
  11. 如請求項10之電腦系統,其中該方法進一步包含獲得啟動該虛擬機器之診斷狀態之儲存的一啟動儲存診斷狀態請求,該啟動儲存診斷狀態請求用以獲得一第一加密金鑰,用於加密未經加密且經儲存之該虛擬機器之該診斷狀態的至少一部分。
  12. 如請求項11之電腦系統,其中該獲得該至少一個請求包括獲得一儲存診斷處理器狀態請求,且其中基於獲得該儲存診斷處理器狀態請求,該執行對該診斷狀態之該儲存包括:使用該第一加密金鑰加密該虛擬機器之至少一個處理器之至少選擇內容,以提供經加密處理器內容;及儲存該等經加密處理器內容。
  13. 如請求項10之電腦系統,其中該獲得該至少一個請求包括獲得一自安全記憶體轉換之請求,且其中基於獲得該自安全記憶體轉換之請求,該執行對該診斷狀態之該儲存包括:使用一第二加密金鑰加密未經加密之該虛擬機器之記憶體之至少選 擇內容,以提供經加密記憶體之內容;及儲存該等經加密記憶體之內容。
  14. 如請求項10之電腦系統,其中該經儲存診斷狀態包括經加密記憶體之內容,且其中該方法進一步包含:獲得一儲存診斷記憶體狀態請求;及基於獲得該儲存診斷記憶體狀態請求,儲存待用以解密該等經加密記憶體之內容之後設資料。
  15. 一種促進一計算環境內之處理的電腦實施方法,該電腦實施方法包含:獲得儲存一虛擬機器之診斷狀態的至少一個請求;及基於獲得該至少一個請求,執行對該虛擬機器之診斷狀態之一儲存以提供該虛擬機器之經儲存診斷狀態,其中該執行該儲存包括加密未經加密且經儲存之該虛擬機器之該診斷狀態,以防止在加密未經加密且經儲存之該虛擬機器之該診斷狀態之前一不受信任實體對該虛擬機器之該診斷狀態之一讀取,其中該獲得該至少一個請求包括獲得一自安全記憶體轉換之請求,且其中基於獲得該自安全記憶體轉換之請求,該執行對該診斷狀態之該儲存包括:判定其內容待儲存之一記憶體單元是否經加密;基於判定該記憶體單元未經加密,使用一第二加密金鑰加密未經加密之該記憶體單元,以提供經加密記憶體之內容,其中經加 密之記憶體單元不重新加密;及儲存該等經加密記憶體之內容。
  16. 如請求項15之電腦實施方法,其中該方法進一步包含獲得啟動該虛擬機器之診斷狀態之儲存的一啟動儲存診斷狀態請求,該啟動儲存診斷狀態請求用以獲得一第一加密金鑰,用於加密未經加密且經儲存之該虛擬機器之該診斷狀態的至少一部分。
  17. 如請求項16之電腦實施方法,其中該獲得該至少一個請求包括獲得一儲存診斷處理器狀態請求,且其中基於獲得該儲存診斷處理器狀態請求,該執行對該診斷狀態之該儲存包括:使用該第一加密金鑰加密該虛擬機器之至少一個處理器之至少選擇內容,以提供經加密處理器內容;及儲存該等經加密處理器內容。
  18. 如請求項15之電腦實施方法,其中該獲得該至少一個請求包括獲得一自安全記憶體轉換之請求,且其中基於獲得該自安全記憶體轉換之請求,該執行對該診斷狀態之該儲存包括:使用一第二加密金鑰加密未經加密之該虛擬機器之記憶體之至少選擇內容,以提供經加密記憶體之內容;及儲存該等經加密記憶體之內容。
TW111119202A 2021-09-14 2022-05-24 儲存安全虛擬機器之診斷狀態 TWI806622B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/474,220 US12019772B2 (en) 2021-09-14 2021-09-14 Storing diagnostic state of secure virtual machines
US17/474,220 2021-09-14

Publications (2)

Publication Number Publication Date
TW202311945A TW202311945A (zh) 2023-03-16
TWI806622B true TWI806622B (zh) 2023-06-21

Family

ID=83322570

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111119202A TWI806622B (zh) 2021-09-14 2022-05-24 儲存安全虛擬機器之診斷狀態

Country Status (7)

Country Link
US (1) US12019772B2 (zh)
EP (1) EP4402570A1 (zh)
KR (1) KR20240038774A (zh)
CN (1) CN117940900A (zh)
CA (1) CA3217891A1 (zh)
TW (1) TWI806622B (zh)
WO (1) WO2023041462A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230102111A1 (en) * 2021-09-30 2023-03-30 Lenovo Global Technology (United States) Inc. Securing customer sensitive information on private cloud platforms

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851151A (zh) * 2014-02-28 2018-03-27 超威半导体公司 保护虚拟机的状态信息
TWI622926B (zh) * 2013-03-15 2018-05-01 英特爾股份有限公司 行動運算裝置技術及使用該技術的系統
CN109154903A (zh) * 2016-05-02 2019-01-04 微软技术许可有限责任公司 用于虚拟机的恢复环境
CN112860380A (zh) * 2021-03-04 2021-05-28 中国科学院信息工程研究所 一种基于内置安全芯片的虚拟机可信迁移方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224206A (en) * 1989-12-01 1993-06-29 Digital Equipment Corporation System and method for retrieving justifiably relevant cases from a case library
US5699505A (en) * 1994-08-08 1997-12-16 Unisys Corporation Method and system for automatically collecting diagnostic information from a computer system
US6738928B1 (en) * 2000-06-19 2004-05-18 Hewlett-Packard Development Company, L.P. Method and expert system for analysis of crash dumps
US6671687B1 (en) * 2000-09-29 2003-12-30 Ncr Corporation Method and apparatus for protecting data retrieved from a database
US8375386B2 (en) 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US9354927B2 (en) * 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
JP5255348B2 (ja) * 2007-07-16 2013-08-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. クラッシュダンプ用のメモリアロケーション
US9251339B2 (en) * 2007-12-29 2016-02-02 International Business Machines Corporation Core dump privacy during application failure
US20090240953A1 (en) 2008-03-19 2009-09-24 Safenet, Inc. On-disk software image encryption
US9383970B2 (en) * 2009-08-13 2016-07-05 Microsoft Technology Licensing, Llc Distributed analytics platform
US9286152B2 (en) 2013-06-14 2016-03-15 Microsoft Technology Licensing, Llc Securely obtaining memory content after device malfunction
US10270596B2 (en) 2016-09-16 2019-04-23 International Business Machnines Corporation Generating memory dumps
US10366227B2 (en) 2016-11-15 2019-07-30 International Business Machines Corporation Secure debugging in a trustable computing environment
US10496425B2 (en) 2017-02-21 2019-12-03 Red Hat, Inc. Systems and methods for providing processor state protections in a virtualized environment
US9892256B1 (en) 2017-04-10 2018-02-13 Bracket Computing, Inc. Threat defense techniques
US20180341768A1 (en) * 2017-05-26 2018-11-29 Microsoft Technology Licensing, Llc Virtual machine attestation
US10848474B2 (en) 2018-02-26 2020-11-24 Red Hat, Inc. Firmware validation for encrypted virtual machines
US10698716B2 (en) * 2018-03-15 2020-06-30 Nutanix, Inc. Virtual machine state recorder
US11308215B2 (en) * 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI622926B (zh) * 2013-03-15 2018-05-01 英特爾股份有限公司 行動運算裝置技術及使用該技術的系統
CN107851151A (zh) * 2014-02-28 2018-03-27 超威半导体公司 保护虚拟机的状态信息
CN109154903A (zh) * 2016-05-02 2019-01-04 微软技术许可有限责任公司 用于虚拟机的恢复环境
US10296413B2 (en) * 2016-05-02 2019-05-21 Microsoft Technology Licensing, Llc Recovery environment for a virtual machine
CN112860380A (zh) * 2021-03-04 2021-05-28 中国科学院信息工程研究所 一种基于内置安全芯片的虚拟机可信迁移方法

Also Published As

Publication number Publication date
US12019772B2 (en) 2024-06-25
EP4402570A1 (en) 2024-07-24
US20230083083A1 (en) 2023-03-16
TW202311945A (zh) 2023-03-16
WO2023041462A1 (en) 2023-03-23
CN117940900A (zh) 2024-04-26
KR20240038774A (ko) 2024-03-25
CA3217891A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
KR102551935B1 (ko) 보안 운영 체제 이미지의 점진적 복호화 및 무결성 검증
JP2023511834A (ja) セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング
JP2023551527A (ja) 準同型暗号化を使用したセキュアなコンピューティング・リソース配置
WO2023073463A1 (en) Trusted workload execution
TWI806622B (zh) 儲存安全虛擬機器之診斷狀態
TWI808749B (zh) 用於安全客體映像及後設資料更新之電腦程式產品、電腦系統及電腦實施方法
US11120140B2 (en) Secure operations on encrypted data
TWI827045B (zh) 關於透過元資料提供至安全客戶之機密資料之電腦程式產品、電腦系統及電腦實施方法
TWI840804B (zh) 相關於安全客體資源之延後取回之電腦程式產品、電腦系統及電腦實施方法
TW202307712A (zh) 一安全客體之認證
JP2024522818A (ja) ローカルバッファを含む暗号化データ処理設計
US11201730B2 (en) Generating a protected key for selective use
US11372983B2 (en) Employing a protected key in performing operations
TW202309743A (zh) 虛擬機器執行期間無法存取之前綴頁面