TW202101263A - 安全作業系統映像之增量解密及完整度驗證 - Google Patents

安全作業系統映像之增量解密及完整度驗證 Download PDF

Info

Publication number
TW202101263A
TW202101263A TW109104544A TW109104544A TW202101263A TW 202101263 A TW202101263 A TW 202101263A TW 109104544 A TW109104544 A TW 109104544A TW 109104544 A TW109104544 A TW 109104544A TW 202101263 A TW202101263 A TW 202101263A
Authority
TW
Taiwan
Prior art keywords
operating system
page
system image
secure operating
image
Prior art date
Application number
TW109104544A
Other languages
English (en)
Other versions
TWI737172B (zh
Inventor
雷恩哈得 T 伯恩俊
克里斯汀 伯翠格
強納生 D 布萊德貝瑞
法迪 Y 布撒巴
麗莎 C 海勒
維克多 米海爾洛斯基
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 TW202101263A publication Critical patent/TW202101263A/zh
Application granted granted Critical
Publication of TWI737172B publication Critical patent/TWI737172B/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/45575Starting, stopping, suspending or resuming 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

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

Abstract

一運算環境內之安全處理係藉由對一安全作業系統映像進行增量解密來提供,包括對於該安全作業系統映像之一頁面,接收一頁面位址及在該頁面之加密期間使用的一調整值。處理判定該調整值先前尚未在該安全作業系統映像之另一頁面的解密期間使用,且使用一映像加密金鑰及該調整值對在該頁面位址處之記憶體頁面內容解密,以促進獲得一經解密安全作業系統映像。另外,驗證該安全作業系統映像之完整度,且基於驗證該安全作業系統映像之完整度,開始執行該經解密安全作業系統映像。

Description

安全作業系統映像之增量解密及完整度驗證
客體作業系統係指安裝於例如虛擬機器上之作業系統軟體。在運算時,虛擬機器為電腦系統之仿真。可由超管理器建立之虛擬機器係基於電腦架構且提供實體電腦之功能性。其實施可涉及專用硬體、軟體或其組合。虛擬化技術允許電腦一次執行多於單一作業系統。
在當前運算環境中,諸如作業系統之系統軟體必須受信任,此係因為其完全控制待執行之應用程式及資料。傳統上,作業系統(以及超管理器)可存取或修改任何應用程式之資料,或潛在地篡改由應用程式實施之安全特徵而不會被偵測到。因此,基礎軟體應為受信任運算基礎之部分。
在共用環境中,迫使應用程式客戶相信開發、組態、部署及控制系統軟體之實體並非惡意的。客戶應用程式必須亦相信系統軟體不易受到升級特殊權限且危害應用程式資訊之完整度的攻擊。此廣泛信任要求有時可能難以證明且具有顯著風險,尤其對於採用例如公用雲端服務之應用程式客戶而言。
經由佈建電腦系統以促進運算環境內之安全處理來克服先前技術之某些缺點且提供額外優點。該電腦系統包括記憶體及耦接至記憶體之處理器,且該電腦系統經組態以執行方法。該方法包括對安全作業系統映像進行增量解密。該增量解密包括對於安全作業系統映像之複數個頁面中的一頁面:接收該頁面之頁面位址及在該頁面之加密使用期間的調整值(tweak value);判定該調整值先前尚未在安全作業系統映像之複數個頁面中之另一頁面的解密期間使用;及使用映像加密金鑰及調整值對頁面位址處之記憶體頁面內容解密,以促進獲得經解密安全作業系統映像。該方法亦包括驗證安全作業系統映像之完整度,及基於驗證安全作業系統映像之完整度,開始經解密安全作業系統映像之執行。有利地,安全作業系統映像之頁面的增量解密藉由例如防止安全作業系統映像之統計分析以獲得有意義資料來提供運算環境內之增強安全性,在安全作業系統映像中,使用映像加密金鑰及唯一調整值(亦被稱作初始化向量)分開地對頁面加密。另外,所概述方法亦允許以不同方式對儲存於不同位置中之資料加密。
在一或多個實施例中,增量解密及驗證完整度係由電腦系統之安全介面控制件執行。該安全介面控制件為電腦系統之安全且受信任的實體,且頁面位址及調整值係由安全介面控制件自超管理器接收。有利地,該安全介面控制件呈現安全執行環境,其中客體作業系統之記憶體及客體作業系統之在安全虛擬機器中執行的應用程式受到保護以免受超管理器以及其他虛擬機器及在同一主機系統上作為虛擬機器執行之任何程式影響。
在一或多個實施例中,複數個頁面之頁面位址呈固定次序(例如,自低至高),且對安全作業系統映像進行增量解密包括判定頁面位址不同於(例如,在排序為自低至高之狀況下,大於)安全作業系統映像之複數個頁面中的先前經解密頁面之任何先前頁面位址。另外,在一或多個實施方案中,對安全作業系統映像進行增量解密進一步包括判定調整值不同於(例如,在低至高排序之狀況下,大於)在安全作業系統映像之複數個頁面中的先前經解密頁面之解密期間使用的任何先前調整值。
在一個實施例中,驗證完整度包括部分地使用以下各者:使用複數個頁面之記憶體頁面內容而獲得的累積內容雜湊;及使用複數個頁面之頁面位址而獲得的累積位址雜湊。舉例而言,驗證安全作業系統映像之完整度可包括比較累積內容雜湊與藉由安全介面控制件利用來自超管理器之後設資料接收到的完整度內容雜湊,及比較累積位址雜湊與藉由安全介面控制件利用來自超管理器之後設資料接收到的完整度位址雜湊。舉例而言,安全介面控制件可自接收自超管理器之後設資料提取完整度內容雜湊及完整度位址雜湊以及映像加密金鑰。有利地,安全介面控制件(亦即,主機系統之安全實體)能夠驗證作業系統映像之完整度,以便防止執行已被篡改之映像。出於此目的,使用自記憶體頁面之內容運算的雜湊值以及來自作業系統映像之記憶體頁面位址之清單的雜湊值且將該等雜湊值與已按頁面位址之次序提供的內容及位址的各別完整度雜湊值進行比較。應注意,就此而言,自低至高對頁面位址進行排序促進調整有效性及完整度檢查兩者。亦應注意,使用上述程序,記憶體頁面無需為連續的。
在一或多個實施例中,安全介面控制件包括電腦系統之韌體元件,且安全作業系統映像待作為安全客體作業系統在運算環境內執行。在一或多個特定實施例中,私用公用金鑰對與電腦系統相關聯,其中私用金鑰僅為安全介面控制件所知且不可由在電腦系統上執行之軟體存取。公用金鑰由安全作業系統映像之擁有者使用以產生金鑰協議資料,從而與安全介面控制件安全地通信以傳達用於對安全作業系統映像加密之映像加密金鑰,且將金鑰協議資料儲存於後設資料結構中。後設資料結構可由安全介面控制件使用呼叫而自超管理器接收。後設資料結構可進一步包括用於驗證安全作業系統映像之完整度的完整度雜湊值。有利地,此程序產生安全執行環境,其中保留安全作業系統映像之機密性且同時驗證作業系統之完整度。在此程序中,由安全作業系統映像之擁有者選擇秘密金鑰(亦即,映像加密金鑰),且假定作業系統之所有組件以及在作業系統映像已啟動之後由其使用的靜態資料經加密。
亦在本文中描述及主張與一或多個態樣有關之電腦程式產品及電腦實施方法。另外,本文中亦描述及可能主張與一或多個態樣有關之服務。
經由本發明之技術實現額外特徵及優點。本發明之其他實施例及態樣在本文中經詳細描述且視為所主張發明之部分。
根據本發明之一態樣,提供一種促進運算環境內之安全處理的能力。在一個實例中,該能力包括逐頁地對安全作業系統映像進行增量解密,其中假定每一頁面已使用映像加密金鑰(亦即,秘密金鑰)及各別唯一調整值加密。增量解密包括判定先前尚未在安全作業系統映像之另一頁面的解密期間使用特定頁面之唯一調整值。另外,安全作業系統映像之完整度驗證與映像之經加密頁面的解密相應地執行。另外,基於驗證安全作業系統映像之完整度,開始映像之執行。
參看圖1描述併有及使用諸如本文中所揭示之增量解密及完整度驗證程序之一或多個態樣的運算環境之一個實例。參看圖1,在一個實例中,運算環境100係基於由紐約阿蒙克之國際商業機器(IBM® )公司提供的z/Architecture。z/Architecture描述於2017年9月之題為「z/Architecture Principles of Operation」之IBM公開案(IBM® 公開案第SA22-7832-11號,第12版)中,該公開案以全文引用的方式併入本文中。Z/ARCHITECTURE、IBM、Z/VM及Z/OS (本文中參考)為紐約阿蒙克之國際商業機器公司的註冊商標。本文中使用之其他名稱可為國際商業機器公司或其他公司之註冊商標、商標或產品名稱。
在另一實例中,運算環境係基於由紐約阿蒙克之國際商業機器公司提供的電源架構(Power Architecture)。電源架構之一個實施例描述於2015年4月9日國際商業機器公司之「Power ISA Version 2.07B」中,該案特此以全文引用的方式併入本文中。電源架構(POWER ARCHITECTURE)為美國紐約阿蒙克之國際商業機器公司的註冊商標。
運算環境100包括提供虛擬機器支援之中央處理器複合體(CPC) 102。CPC 102經由一或多個控制單元108耦接至一或多個輸入/輸出(I/O)裝置106。中央處理器複合體102包括例如耦接至一或多個中央處理器(亦稱為中央處理單元(CPU) 110)之處理器記憶體104 (亦稱為主記憶體、主儲存器、中央儲存器)以及輸入/輸出子系統111,下文描述其中之每一者。
處理器記憶體104包括例如:一或多個虛擬機器112;虛擬機器管理器,諸如管理虛擬機器之超管理器114;超監督器115 (或安全介面控制件);及處理器韌體116。超管理器114之一個實例為由紐約阿蒙克之國際商業機器公司提供的z/VM® 。超管理器有時被稱作主機。另外,如本文中所使用,韌體包括例如處理器之微碼及/或毫碼。其包括例如用於實施較高階機器碼之硬體層級指令及/或資料結構。在一個實施例中,其包括例如專屬碼,該專屬碼通常作為包括受信任軟體之微碼或特定於基礎硬體之微碼遞送,且控制作業系統對系統硬體之存取。在一或多個實施例中,安全介面控制件(超監督器115)可至少部分地實施於經組態以執行例如程序(諸如本文中所描述)之硬體及/或韌體中。
CPC之虛擬機器支援提供操作大量虛擬機器112之能力,每一虛擬機器能夠藉由不同程式120操作且執行客體作業系統122,諸如Linux。每一虛擬機器112能夠充當分開系統。亦即,每一虛擬機器可獨立地進行重設,執行客體作業系統,且藉由不同程式操作。在虛擬機器中執行之作業系統或應用程式呈現為能夠存取完整系統,但實際上,僅其一部分可用。
處理器記憶體104耦接至中央處理器(CPU) 110,該等中央處理器為可指派給虛擬機器之實體處理器資源。舉例而言,虛擬機器112包括一或多個邏輯處理器,該等邏輯處理器中之每一者表示可動態地分配給虛擬機器之所有或一部分實體處理器資源110。
另外,在一個實施例中,每一CPU 110為在處理核心(亦稱為核心) 132內執行之硬體執行緒。核心包括一或多個執行緒,且在此實例中,核心132包括四個硬體執行緒。在其他實例中,運算環境可包括一或多個核心,且每一核心可包括一或多個硬體執行緒。
另外,處理器記憶體104耦接至I/O子系統111。輸入/輸出子系統111引導輸入/輸出控制單元108及裝置106與主儲存器104之間的資訊流。其耦接至中央處理複合體,此係因為其可為中央處理複合體之一部分或與中央處理複合體分開。
在一個特定實例中,虛擬機器之模型為V=V模型,其中虛擬機器之真實或絕對記憶體依靠主機虛擬記憶體,而非真實或絕對記憶體。每一虛擬機器具有連續虛擬記憶體空間。實體資源由超管理器主機114管理,且共用實體資源視需要由主機分派給客體作業系統以滿足其處理需求。此V=V虛擬機器(亦即,可分頁客體)模型假定:客體作業系統與實體共用機器資源之間的互動由主機控制,此係因為大量客體通常妨礙主機簡單地分割硬體資源及將硬體資源指派給經組態客體。
如所提及,記憶體104耦接至I/O子系統111。I/O子系統111可為中央處理複合體之一部分或與其分開。其可引導主儲存器104與耦接至中央處理複合體之輸入/輸出控制單元108及輸入/輸出(I/O)裝置106之間的資訊流。
可使用許多類型之I/O裝置。一個特定類型為資料儲存裝置140。資料儲存裝置140可儲存一或多個程式142、一或多個電腦可讀程式指令144及/或資料等。電腦可讀程式指令可經組態以進行本發明之態樣之實施例的功能。
經組態以進行本發明之態樣的實施例之功能的電腦可讀程式指令亦可或替代地包括於記憶體104中。許多變化為可能的。
如本文中所揭示,客體作業系統之記憶體及其在安全虛擬機器中執行之應用程式受保護以免受到不受信任超管理器以及其他虛擬機器及在同一主機系統作為虛擬機器執行之任何程式影響。該保護由包括安全主機系統之硬體及/或韌體元件的受信任實體實行。受信任實體在本文中被稱作安全介面控制件或超監督器。在一或多個實施方案中,安全介面控制件(或超監督器)在受信任韌體中執行。受信任韌體駐留於硬體系統區域(HSA)中,其高度受保護且可僅由最低層級之韌體存取。在一或多個實施例中,此程式碼由電腦系統之製造商擁有,且由製造商運送,由製造商安全地維持。此程式碼之內容由機器讀取以執行程式碼,但並不自機器傾印或提取。在一或多個實施例中,安全介面控制件為用以實施指令之硬體之擴展,該等指令可能過於複雜而無法僅僅以硬體實施。相比之下,超管理器可指可代管多個客體(亦稱為虛擬機器)之任何軟體。超管理器無需屬於小心載入之系統韌體,且受保護以免由在系統上執行之軟體存取。一般而言,在一或多個實施例中,超管理器可為具有包括網路介面之廣泛管理介面的第三方軟體。超管理器因此不受信任,且可經受可經由網路介面利用的漏洞或經受惡意或疏忽管理。
本文中假定意欲作為安全客體在運算環境中執行之作業系統映像受保護以免檢測及篡改,即使在使其可用於主機系統以便確保機密性及完整度之前亦如此。為了實現此情形,作業系統映像藉由秘密金鑰進行加密及完整度保護,該秘密金鑰由映像之擁有者選擇。秘密金鑰在本文中亦被稱作映像加密金鑰。假定作業系統映像之所有組件以及在作業系統已啟動之後由該系統使用之靜態資料經加密。
並非啟動作業系統所需之資料的加密可獨立於作業系統映像本身之加密而進行。額外資料之解密可藉由作為安全客體執行之作業系統進行。舉例而言,經加密Linux作業系統映像可含有內核、初始ramdisk及內核參數行。初始ramdisk可含有用以對駐留於指派給虛擬機器之經加密磁碟區上之資料解密的秘密金鑰。
執行虛擬機器之主機系統需要能夠對安全作業系統映像解密以便將其啟動。為確保機密性,本文中將此能力保留給主機系統之受信任硬體及韌體(「安全介面控制件」或「超監督器」)。出於此目的,私用公用金鑰對與主機系統相關聯。私用金鑰僅為主機系統之受信任硬體及韌體(亦即,安全介面控制件或超監督器)所知,且不可由在主機上執行之任何軟體存取。公用金鑰由經加密作業系統映像之擁有者使用以產生金鑰協議資料,從而與安全介面控制件安全地通信以傳達用於對安全作業系統映像加密之映像加密金鑰,且將金鑰協議資料儲存於後設資料結構(在本文中被稱作安全執行(SE)標頭)中。作為實例,可使用RSA金鑰包裝或迪菲-赫爾曼(Diffie-Hellman)/KEM型金鑰交換方法。SE標頭之大小獨立於作業系統映像之大小。
另外,如本文中所揭示,主機系統亦驗證作業系統映像之完整度,以便防止執行已被篡改之映像。出於此目的,運算記憶體頁面之內容的完整度雜湊值以及作業系統映像之記憶體頁面位址之清單的完整度雜湊值。在一或多個實施例中,為促進運算兩個雜湊值,以例如自最低至最高之頁面位址次序提供頁面及其位址。待進行比較的此等完整度雜湊值可儲存於安全介面控制件或超監督器中或經由後設資料結構(SE標頭)將其提供至安全介面控制件或超監督器。
對安全作業系統映像進行增量解密及促進安全作業系統映像之完整度檢查的程序在本文中被稱作解封裝。本文中所揭示之一或多個態樣涵蓋:安全主機系統內之程序以保持作業系統映像之機密性且同時驗證作業系統映像之完整度的方式對作業系統映像解密。在一或多個實施例中,此可藉由在解封裝程序期間實行記憶體頁面之次序來促成。本文中所描述之本發明態樣的另一優點為處置非連續儲存之作業系統映像的能力。
另外,在一或多個態樣中,所揭示之安全作業系統映像方法的解密及驗證完整度使得更難實現安全作業系統映像之統計分析及映像上之基於其統計分析的攻擊。
如所提及,在一或多個實施例中,在本文中以將不允許在安全狀態中觀察記憶體內容之方式執行專門準備之安全作業系統映像。為了具有固有安全性,假定作業系統映像由在本文中被稱作秘密金鑰或映像加密金鑰之金鑰進行加密,該金鑰由安全作業系統映像之使用者或擁有者選擇。在加密完成之後,加密金鑰(亦即,映像加密金鑰)藉由公用私用金鑰對中之第二公用金鑰或藉由主機運算系統之自公用私用金鑰對導出的對稱金鑰來包裝。在一或多個實施例中,逐頁加密可經由對稱金鑰演算法進行,該對稱金鑰演算法使用例如在本文中被稱作調整值之初始化向量,其中該調整值對於映像之每一頁面為唯一的。
圖2描繪根據一或多個態樣之解封裝處理的一個實施例。在一或多個實施例中,超監督器或安全介面控制件經由超監督器呼叫提供超管理器可存取之功能性,包括開始解封裝操作呼叫、執行逐頁解封裝操作呼叫及完成解封裝操作呼叫。在可呼叫超監督器之前,將經加密之安全作業系統映像載入至仍不安全之虛擬機器(VM)記憶體中,以允許超管理器執行載入。另外,超管理器必須知曉構成作業系統映像之所有頁面的位址以及用於對每一頁面加密之調整。對於本發明之態樣,如何使此資訊可用於超管理器並不重要。為簡單起見,可將未經加密自啟組件連同經加密映像一起載入至虛擬機器記憶體中。此組件可用以利用以下參數呼叫超管理器:SE標頭、記憶體頁面位址之清單及調整之清單(例如,每頁面位址一個調整)。
替代將全面的頁面清單提供至超管理器,亦有可能指定頁面範圍之清單以節約記憶體。類似地,替代提供調整之清單,有可能指定調整之範圍,在該範圍中後續調整相差固定正值。替代地,可自頁面位址導出調整值。以上選項中無一者對超管理器與超監督器之間的互動有影響。超管理器藉由呼叫超監督器(例如,「開始解封裝」)來開始解封裝操作,其中SE標頭作為參數(200)。SE標頭含有擁有者之由公用主機金鑰包裝的映像加密金鑰以及映像頁面內容及頁面位址之映像完整度雜湊值。超監督器自SE標頭提取映像加密金鑰及完整度值(202),且判定SE標頭資料是否有效(204)。若「否」,則解封裝操作已失敗且進入停用等待狀態(206)。進入停用等待狀態使得客體作業系統無法執行,亦即,客體不能離開停用等待狀態。舉例而言,可將錯誤傳回至超管理器。在一或多個實施例中,可重設客體系統,在此狀況下,客體系統將藉由載入經加密映像再次啟動且開始上文所描述之解封裝程序。替代地,可關閉客體系統,其將有效地移除虛擬機器,亦即,釋放由彼虛擬機器使用之主機資源。
超管理器循環遍歷指定記憶體區之自低至高頁面位址(在一或多個實施例中)排序的所有頁面位址(208),且使用用於此頁面之加密的頁面位址及調整來呼叫超監督器「解封裝頁面」操作(210)。超監督器接著執行以下操作。超監督器將設定記憶體頁面為安全,且使用來自SE標頭之映像加密金鑰及用以對頁面加密之調整值來對記憶體頁面內容解密。為了防止一調整值被使用多於一次,每一新的調整應由大於先前所使用調整之數字表示,且每一頁面位址應大於先前所使用頁面位址(212)。若「否」,則解封裝已失敗,且進入停用等待狀態(206)。否則,超監督器將頁面標記為安全,使用映像加密金鑰及調整對頁面解密,且判定頁面內容之累積內容雜湊及頁面位址之累積位址雜湊(214)。(舉例而言,累積雜湊之運算可為:對於所有頁面,cum_hash: = cum_hash+部分雜湊(頁面i),其中1<= i <= n,且+為複雜運算。)在一個實施例中,超監督器自記憶體頁面之內容及所有先前經解密頁面之摘要值判定執行雜湊值,且自記憶體頁面之頁面位址及所有先前經解密頁面之頁面位址之摘要值判定另一雜湊值。對諸如上文所提及之逐頁位址雜湊運算的增強可藉由將多個頁面位址串接成一記憶體頁面且接著在彼記憶體頁面上運算雜湊值來達成。
在已處理所有作業系統映像頁面(208)之後,超管理器藉由「完成解封裝」操作呼叫超監督器(216),其中超監督器比較內容及頁面位址之所運算內容及位址雜湊值與含於SE標頭中之各別完整度雜湊值(218)。若其不匹配,則解封裝操作失敗,且將錯誤指示傳回至超管理器(206)。否則,解封裝操作已成功,且超監督器可使用來自SE標頭之程式狀態字(PSW)開始安全客體執行,其啟動在安全模式中執行之作業系統映像。
應注意,藉由本文中所描述之處理,記憶體頁面無需為連續的,此係因為映像可能具有「漏洞(hole)」,但解密程序應(在一或多個實施例中)以低至高之次序進行,從而允許本文中所描述之調整有效性及完整度檢查兩者。屬於客體但不在客體初始化期間解封裝之頁面將為安全的且在由安全客體第一次存取時歸零。
作為其他實例,圖3A描繪在安全作業系統映像載入之後的記憶體內容之一個實施例。如所提及,在一或多個實施例中,假定藉由安全作業系統映像之使用者或擁有者使用映像加密金鑰對安全作業系統映像加密。此映像加密金鑰為由使用者或擁有者選擇之秘密金鑰。在加密完成之後,使用主機運算系統之公用私用金鑰對中的公用金鑰或使用自公用私用金鑰對導出且儲存於後設資料結構(亦即,安全執行(SE)標頭) 301中之對稱金鑰來包裝加密金鑰,該後設資料結構提供於客體位址空間300內作為來自客體磁碟310之後設資料303的部分。客體磁碟310及客體位址空間300為(在一或多個實施例中)由超管理器提供至虛擬機器以執行安全作業系統映像之記憶體。可連同SE標頭301提供自啟組件302以起始安全作業系統映像之執行。在一或多個實施方案中,此後設資料303未經加密,但受保護而不會被篡改。安全作業系統映像305包括位址頁面304,如上文所提及,已使用擁有者之映像加密金鑰對該等位址頁面個別地加密以確保作業系統映像受保護。可經由超管理器將安全作業系統映像載入至記憶體(如圖3A中所描繪)中。
圖3B進一步描繪在一或多個實施例中用於解封裝安全作業系統映像之後設資料。如所說明,客體位址空間300內之SE標頭301可包括映像加密金鑰(用公用金鑰包裝) 306以及映像內容之完整度雜湊307及映像位址之完整度雜湊308。在一或多個實施例中,自啟組件302可包括:自啟程式碼309,其可為或包括可由超管理器執行之程式碼片段;以及每頁面資訊311,包括頁面位址及調整值。如所提及,在一或多個實施例中,作為能夠評估頁面位址及調整值不同於安全作業系統映像之先前頁面位址及調整值的高效方法,可藉由超管理器將頁面位址發送至超監督器,諸如以升序或降序對頁面位址排序。僅作為實例,在本文中之一或多個實施例中,將頁面位址描述為以升序配置,諸如在下文的圖4A至圖4C之實例中。如本文中所描述,含有頁面清單及調整清單之後設資料可由諸如軟體工具之實體產生,且此實體及超管理器將具有對清單內之位址及調整之排序的共同理解。更特定而言,在一或多個實施方案中,重要的次序為頁面經加密及雜湊之次序以及超管理器向超監督器呈現頁面之次序,其中此等次序匹配。如所提及,該次序可為升序或降序,但超監督器需要知曉在產生映像時使用哪一方向。該方向將因此通常由安全介面控制件(或超監督器)架構規定。
圖4A至圖4C描繪根據本發明之一或多個態樣的依照增量解密及完整度驗證程序之解封裝程序的一個實施例,其展示超管理器及超監督器之資料結構及/或操作。
在圖4A中,描繪客體位址空間300、超管理器400及超監督器410之相關資料結構。如所展示,對超管理器400進行呼叫以執行安全作業系統映像。超管理器400接收SE標頭301且暫時儲存標頭以用於轉遞至超監督器410。超監督器410由超管理器呼叫以開始解封裝程序,且超監督器自SE標頭提取映像加密金鑰306、完整度內容雜湊307及完整度位址雜湊308且將以上各者置放於其受保護記憶體(例如,暫存器)內。如所說明,在一或多個實施例中,超監督器410亦維持暫存器,其具有當前調整值411、待解密頁面之當前位址412、當前內容雜湊413及當前位址雜湊414,以及累積內容雜湊415、累積位址雜湊416、最後調整值417及最後頁面位址418。
作為實例,累積內容雜湊415包括至此已由超監督器解密之記憶體頁面之內容的雜湊值,累積位址雜湊416含有至此已解密之記憶體頁面之位址的雜湊值,最後調整值417及最後位址418將含有超監督器最後看到之調整值及位址值,在本文中所揭示之一或多個實施例中,該等值允許超監督器確保不重複使用頁面位址及調整值。調整值、當前位址、當前內容雜湊及當前位址雜湊為工作暫存器且係指當前正由超監督器410處理之頁面。
超管理器400重新獲得控制權且建構資料結構401,在一或多個實施例中,該資料結構針對安全作業系統映像之每一頁面位址包括一頁面位址及調整值對402。索引403由超管理器400提供,該索引用以遍歷映像之記憶體頁面進行反覆。
圖4B藉由進行中之解封裝操作來描繪圖4A之客體位址空間、超管理器及超監督器結構及處理,其中頁面位址調整值對402已由超管理器400提供至超監督器410。此當前對已置放於當前位址及當前調整暫存器中,且展示為正進行比較以確保當前位址大於最後位址,且當前調整大於最後調整。另外,作為解密客體位址空間中之特定頁面內容的部分,可將當前內容雜湊及當前位址雜湊添加至正由超監督器410維持之累積內容雜湊及累積位址雜湊。如圖4B中所說明,已對某些頁面解密(304')。在解密之後,在一或多個實施例中,此等頁面受超監督器410毫碼保護,因此一旦經解密,超管理器400便無法存取受保護頁面。舉例而言,超監督器410可使用儲存金鑰設施以確保超管理器不可存取安全作業系統映像之未經加密頁面。
圖4C描繪在安全作業系統映像之所有記憶體頁面已由超監督器解密(以及由超監督器保護)之後的圖4A及圖4B之資料結構及程序。超管理器400對超監督器進行最終解封裝呼叫以使用累積內容雜湊415及累積位址雜湊416驗證安全作業系統映像之完整度。如所說明,呼叫超監督器以比較利用SE標頭接收到之完整度內容雜湊與所確定之累積內容雜湊,以及比較SE標頭之完整度位址雜湊與所獲得之累積位址雜湊。假定各別比較為真,亦即,累積內容雜湊等於完整度內容雜湊且累積位址雜湊等於完整度位址雜湊,則確認安全作業系統映像之完整度且超監督器可開始使用例如來自SE標頭之程式狀態字(PSW)執行經解密安全作業系統映像。
參看圖5A及圖5B描述促進運算環境內之安全處理的一個實施例之其他細節,此係因為運算環境與本發明之一或多個態樣有關。
參看圖5A,在一個實施例中,對安全作業系統映像進行增量解密(500),其包括對於安全作業系統映像之複數個頁面中的一頁面:接收頁面之頁面位址及在頁面之加密期間使用的調整值(502);判定調整值先前尚未在安全作業系統映像之複數個頁面中之另一頁面的解密期間使用(504);及使用在對頁面加密時使用之映像加密金鑰以及調整值對頁面位址處之記憶體頁面內容解密,以促進獲得經解密安全作業系統映像(506)。另外,驗證安全作業系統映像之完整度(508),且基於驗證安全作業系統映像之完整度,開始執行經解密安全作業系統映像(510)。
在一或多個實施例中,增量解密及驗證完整度由電腦系統之安全介面控制件執行,其中安全介面控制件為電腦系統之受信任實體且頁面位址及調整值由安全介面控制件自超管理器接收(512)。另外,在一個實施例中,複數個頁面位址中之頁面位址呈固定次序(例如,自低至高),且對安全作業系統映像進行增量解密包括判定頁面位址不同於安全作業系統映像之複數個頁面中的先前經解密頁面之任何先前頁面位址(514)。
在一或多個實施方案中,對安全作業系統映像進行增量解密進一步包括判定調整值不同於在安全作業系統映像之複數個頁面中的先前經解密頁面之解密期間使用的任何先前調整值(516)。
作為其他實例,驗證完整度可包括部分地使用以下各者:使用複數個頁面之記憶體頁面內容而獲得的累積內容雜湊;及使用複數個頁面之頁面位址而獲得的累積位址雜湊(518)。舉例而言,如圖5B中所展示,驗證安全作業系統映像之完整度可包括比較累積內容雜湊與藉由安全介面控制件自超管理器接收之完整度內容雜湊,及比較累積位址雜湊與藉由安全介面控制件自超管理器接收之完整度位址雜湊(520)。
在一或多個實施例中,該程序包括藉由安全介面控制件自接收自超管理器之後設資料提取映像加密金鑰以及完整度內容雜湊及完整度位址雜湊(522)。在特定實例中,安全介面控制件包括電腦系統之韌體元件,且安全作業系統待作為安全客體作業系統在運算環境內執行(524)。作為實例,私用公用金鑰對可與電腦系統相關聯,其中私用金鑰僅為安全介面控制件所知且不可由在電腦系統上執行之軟體存取,且其中公用金鑰由安全作業系統映像之擁有者使用以包裝用於對安全作業系統映像加密之映像加密金鑰,且將經包裝映像加密金鑰儲存於轉遞至安全介面控制件之後設資料結構中(526)。另外,安全介面控制件可使用呼叫而自超管理器接收後設資料結構,其中後設資料結構進一步包括用於驗證安全作業系統映像之完整度的完整度雜湊值(528)。
其他變化及實施例為可能的。
本發明之態樣可由許多類型之運算環境使用。參看圖6A描述併有及使用本發明之一或多個態樣的運算環境之另一實施例。在此實例中,運算環境10包括例如原生中央處理單元(CPU) 12、記憶體14及一或多個輸入/輸出裝置及/或介面16,前述各者經由例如一或多個匯流排18及/或其他連接件而彼此耦接。作為實例,運算環境10可包括:由紐約阿蒙克之國際商業機器公司供應之PowerPC® 處理器;由加州帕洛阿爾托之惠普公司供應的具有因特爾安藤II (Intel Itanium II)處理器之HP Superdome;及/或基於由國際商業機器公司、惠普公司、因特爾公司、甲骨文公司或其他公司供應之架構的其他機器。IBM、z/Architecture、IBM Z、z/OS、PR/SM及PowerPC為國際商業機器公司在至少一個司法管轄區中之商標或註冊商標。Intel及Itanium為因特爾公司或其子公司在美國及其他國家中之商標或註冊商標。
原生中央處理單元12包括一或多個原生暫存器20,諸如在環境內之處理期間使用的一或多個通用暫存器及/或一或多個專用暫存器。此等暫存器包括表示在任何特定時間點之環境狀態之資訊。
此外,原生中央處理單元12執行儲存於記憶體14中之指令及程式碼。在一個特定實例中,中央處理單元執行儲存於記憶體14中之仿真器程式碼22。此程式碼使得在一個架構中組態之運算環境能夠仿真另一架構。舉例而言,仿真器程式碼22允許基於除z/Architecture硬體架構以外之架構的機器(諸如,PowerPC處理器、HP Superdome伺服器或其他者)仿真z/Architecture硬體架構且執行基於z/Architecture硬體架構開發之軟體及指令。
參看圖6B描述與仿真器程式碼22有關之其他細節。儲存於記憶體14中之客體指令30包含經開發以在除原生CPU 12之架構以外之架構中執行的軟體指令(例如,與機器指令相關)。舉例而言,客體指令30可已經設計以在基於z/Architecture硬體架構之處理器上執行,但替代地,在可為例如因特爾安藤II處理器之原生CPU 12上仿真。在一個實例中,仿真器程式碼22包括指令提取常式32,以自記憶體14獲得一或多個客體指令30且視情況提供對所獲得指令之本端緩衝。仿真器程式碼亦包括指令轉譯常式34,以判定已獲得之客體指令的類型且將該客體指令轉譯成一或多個對應的原生指令36。此轉譯包括例如識別待藉由客體指令執行之功能及選擇原生指令以執行彼功能。
另外,仿真器程式碼22包括仿真控制常式40以使得執行原生指令。仿真控制常式40可使原生CPU 12執行仿真一或多個先前所獲得之客體指令之原生指令的常式且在此執行完結時,將控制傳回至指令提取常式以仿真獲得下一客體指令或一組客體指令。原生指令36之執行可包括將資料自記憶體14載入至暫存器中;將資料自暫存器儲存回至記憶體;或執行某一類型之算術或邏輯運算,如由轉譯常式判定。
每一常式例如實施於軟體中,該軟體儲存於記憶體中且藉由原生中央處理單元12執行。在其他實例中,一或多個常式或操作實施於韌體、硬體、軟體或其某一組合中。可使用原生CPU之暫存器20或藉由使用記憶體14中之部位來仿真該仿真處理器之暫存器。在實施例中,客體指令30、原生指令36及仿真器程式碼22可駐留於同一記憶體中或可分配於不同記憶體裝置當中。
上文所描述之運算環境僅為可使用之運算環境的實例。可使用其他環境,包括但不限於未經分割之環境、經分割之環境及/或仿真環境;實施例不限於任何一種環境。
每一運算環境能夠經組態以包括本發明之一或多個態樣。舉例而言,根據本發明之一或多個態樣,每一運算環境可經組態以提供移動資料/設置儲存金鑰處理。
一或多個態樣可係關於雲端運算。
應理解,儘管本發明包括關於雲端運算之詳細描述,但本文中所敍述之教示的實施不限於雲端運算環境。更確切而言,本發明之實施例能夠結合現在已知或稍後開發之任何其他類型之運算環境來實施。
雲端運算為用於使得能夠對可組態運算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機器及服務)之共用集區進行便利之按需網路存取的服務遞送之模型,可組態運算資源可藉由最少的管理工作或與服務提供者之互動而快速地佈建及釋放。此雲端模型可包括至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
隨選自助服務:雲端客戶可視需要自動地單向佈建運算能力(諸如,伺服器時間及網路儲存器),而無需與服務提供者之人為互動。
寬頻網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源集用:提供者之運算資源經集用以使用多租戶模型為多個客戶服務,其中根據需要動態指派及重新指派不同實體及虛擬資源。位置獨立性之意義在於,客戶通常不具有對所提供資源之確切位置的控制或瞭解,但可能能夠按較高抽象等級(例如,國家、州或資料中央)指定位置。
快速彈性:可快速且彈性地佈建能力(在一些狀況下,自動地)以迅速地向外延展,且可快速地釋放能力以迅速地向內延展。在客戶看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何量來購買。
所量測服務:雲端系統藉由在適於服務類型(例如,儲存、處理、頻寬及作用中使用者帳戶)之某一抽象等級下充分利用計量能力而自動控制及最佳化資源使用。可監視、控制及報告資源使用狀況,從而為所利用服務之提供者及客戶兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供給客戶之能力係使用在雲端基礎架構上執行之提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網路之電子郵件)之精簡型用戶端介面自各種用戶端裝置存取應用程式。客戶並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之基礎雲端基礎架構,其中可能的例外狀況為有限的使用者特定應用程式組態設置。
平台即服務(PaaS):提供給客戶之能力係將使用由提供者所支援之程式設計語言及工具建立的客戶建立或獲取之應用程式部署至雲端基礎架構上。客戶並不管理或控制包括網路、伺服器、作業系統或儲存器之基礎雲端基礎架構,但控制所部署之應用程式及可能的代管環境組態之應用程式。
基礎架構即服務(IaaS):提供給客戶之能力係佈建處理、儲存、網絡及其他基礎運算資源,其中客戶能夠部署及執行可包括作業系統及應用程式之任意軟體。客戶並不管理或控制基礎雲端基礎架構,但控制作業系統、儲存器、所部署應用程式,及可能有限地控制選擇網路連接組件(例如,主機防火牆)。
部署模型如下:
私用雲端:僅為組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在內部部署或外部部署。
社群雲端:雲端基礎架構由若干組織共用且支援分擔問題(例如,任務、安全要求、策略及順應性考量)的特定社群。社群雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公開雲端:該雲端基礎架構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:該雲端基礎架構為兩個或多於兩個雲端(私用、社群或公開)之組合物,其保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡之雲端叢發)之標準化或專屬技術繫結在一起。
藉由集中於無國界、低耦合、模組化及語義互操作性對雲端運算環境進行服務定向。雲端運算之關鍵為包括互連節點之網路的基礎架構。
現參看圖7,描繪說明性雲端運算環境50。如所展示,雲端運算環境50包括一或多個雲端運算節點52,雲端客戶所使用之諸如個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N的本端運算裝置可與該一或多個雲端運算節點通信。節點52可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公開或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未展示)。此允許雲端運算環境50供應基礎架構、平台及/或軟體作為服務,針對該等服務,雲端客戶不需要在本端運算裝置上維持資源。應理解,圖7中所展示之運算裝置54A至54N之類型意欲僅為說明性的,且運算節點52及雲端運算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參看圖8,展示藉由雲端運算環境50 (圖7)所提供之功能抽象層之集合。事先應理解,圖8中所展示之組件、層及功能意欲僅為說明性的且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層60包括硬體及軟體組件。硬體組件之實例包括:大型電腦61;基於精簡指令集電腦(RISC)架構之伺服器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控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入的私用網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網路卡僅為幾個可用類型之網路配接器。
本文中所使用之術語僅出於描述特定實施例之目的,且並不意欲為限制性的。如本文中所使用,除非上下文另外明確地指示,否則單數形式「一(a、an)」及「該」意欲亦包括複數形式。應進一步理解,術語「包含(comprises及/或comprising)」在用於本說明書中時指定所陳述特徵、整體、步驟、操作、元件及/或組件之存在,但不排除一或多個其他特徵、整體、步驟、操作、元件、組件及/或其群組之存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物(若存在)意欲包括用於結合如特定主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述之目的呈現一或多個實施例之描述,但其不意欲為窮盡性的或限於所揭示之形式。許多修改及變化對於一般熟習此項技術者將為顯而易見的。實施例經選擇及描述以便最佳地解釋各種態樣及實際應用,且使得一般熟習此項技術者能夠理解具有如適於所涵蓋之特定用途之各種修改的各種實施例。
10:運算環境 12:原生中央處理單元(CPU) 14:記憶體 16:輸入/輸出裝置及/或介面 18:匯流排 20:原生暫存器 22:仿真器程式碼 30:客體指令 32:指令提取常式 34:指令轉譯常式 36:原生指令 40:仿真控制常式 50:雲端運算環境 52:雲端運算節點 54A:個人數位助理(PDA)或蜂巢式電話/運算裝置 54B:桌上型電腦/運算裝置 54C:膝上型電腦/運算裝置 54N:汽車電腦系統/運算裝置 60:硬體及軟體層 61:大型電腦 62:基於精簡指令集電腦(RISC)架構之伺服器 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:中央處理單元(CPU)/實體處理器資源 111:輸入/輸出子系統 112:虛擬機器 114:超管理器/超管理器主機 115:超監督器 116:處理器韌體 120:程式 122:客體作業系統 132:處理核心 140:資料儲存裝置 142:程式 144:電腦可讀程式指令 300:客體位址空間 301:後設資料結構/SE標頭 302:自啟組件 303:後設資料 305:安全作業系統映像 306:映像加密金鑰 307:完整度內容雜湊 308:完整度位址雜湊 309:自啟程式碼 310:客體磁碟 311:每頁面資訊 400:超管理器 401:資料結構 402:頁面位址及調整值對 403:索引 410:超監督器 411:當前調整值 412:當前位址 413:當前內容雜湊 414:當前位址雜湊 415:累積內容雜湊 416:累積位址雜湊 417:最後調整值 418:最後頁面位址
在本說明書之結尾處之申請專利範圍中作為實例特別地指出且清楚地主張本發明之一或多個態樣。本發明之前述內容及其他目標、特徵及優點自結合隨附圖式進行的以下詳細描述顯而易見,在該等圖式中:
圖1描繪根據本發明之一或多個態樣的併有及使用安全作業系統映像解密及完整度驗證之一或多個態樣的運算環境之一個實例;
圖2描繪根據本發明之一或多個態樣的安全作業系統映像之增量解密及完整度驗證的程序之一個實施例;
圖3A描繪根據本發明之一或多個態樣的在安全作業系統映像載入之後的虛擬機器(VM)記憶體內容之一個實施例;
圖3B描繪根據本發明之一或多個態樣的用於依照增量解密及完整度驗證程序解封裝安全作業系統映像的後設資料之一個實施例;
圖4A描繪根據本發明之一或多個態樣的依照增量解密及完整度驗證程序之開始映像解封裝程序的一個實施例,其展示客體位址空間、超管理器及超監督器(或安全介面控制件)之資料結構及操作;
圖4B描繪根據本發明之一或多個態樣的圖4A之客體位址空間、超管理器及超監督器之間的解封裝程序之一個實施例的其他細節;
圖4C根據本發明之一或多個態樣的在完成作業系統映像解封裝後之圖4A及圖4B的客體位址空間、超管理器及超監督器之一個實施例;
圖5A至圖5B描繪根據本發明之一或多個態樣的安全作業系統映像之增量解密及完整度驗證的一個實例;
圖6A描繪併有及使用本發明之一或多個態樣的運算環境之另一實例;
圖6B描繪根據本發明之一或多個態樣之圖6A的記憶體之其他細節;
圖7描繪雲端運算環境之一個實施例;及
圖8描繪抽象模型層之實例。

Claims (20)

  1. 一種用以促進一運算環境內之安全處理的電腦系統,該電腦系統包含: 一記憶體; 一處理器,其耦接至該記憶體,其中該電腦系統經組態以執行一方法,該方法包含: 對一安全作業系統映像進行增量解密,包括對於該安全作業系統映像之複數個頁面中的一頁面: 接收該頁面之一頁面位址及在該頁面之加密期間使用的一調整值; 判定該調整值先前尚未在該安全作業系統映像之該複數個頁面中的另一頁面的解密期間使用;及 使用在對該頁面加密時使用之一映像加密金鑰以及該調整值對在該頁面位址處之記憶體頁面內容解密,以促進獲得一經解密安全作業系統映像; 驗證該安全作業系統映像之完整度;及 基於驗證該安全作業系統映像之完整度,開始執行該經解密安全作業系統映像。
  2. 如請求項1之電腦系統,其中該增量解密及該驗證完整度由該電腦系統之一安全介面控制件執行,該安全介面控制件為該電腦系統之一受信任實體且該頁面位址及該調整值由該安全介面控制件自一超管理器接收。
  3. 如請求項2之電腦系統,其中該複數個頁面之頁面位址呈一固定次序,且該對該安全作業系統映像進行增量解密包括判定該頁面位址不同於該安全作業系統映像之該複數個頁面中的先前經解密頁面之任何先前頁面位址。
  4. 如請求項3之電腦系統,其中該對該安全作業系統映像進行增量解密進一步包括判定該調整值不同於在該安全作業系統映像之該複數個頁面中的先前經解密頁面之解密期間使用的先前調整值。
  5. 如請求項3之電腦系統,其中該驗證完整度包括部分地使用以下各者:使用該複數個頁面之記憶體頁面內容而獲得的一累積內容雜湊;及使用該複數個頁面之頁面位址而獲得的一累積位址雜湊。
  6. 如請求項5之電腦系統,其中該驗證該安全作業系統映像之完整度包括:比較該累積內容雜湊與藉由該安全介面控制件接收之一完整度內容雜湊;及比較該累積位址雜湊與藉由安全介面控制件接收之一完整度位址雜湊。
  7. 如請求項6之電腦系統,其進一步包含藉由該安全介面控制件自接收自該超管理器之後設資料提取該映像加密金鑰以及該完整度內容雜湊及該完整度位址雜湊。
  8. 如請求項2之電腦系統,其中該安全介面控制件包含該電腦系統之一或多個元件,該一或多個元件選自由硬體元件及韌體元件組成之群組,且該安全作業系統映像待作為一安全客體作業系統在該運算環境內執行。
  9. 如請求項8之電腦系統,其中一私用公用金鑰對與該電腦系統相關聯,私用金鑰僅為該安全介面控制件所知且不可由在該電腦系統上執行之軟體存取,且其中公用金鑰由該安全作業系統映像之一擁有者使用以產生金鑰協議資料,從而與該安全介面控制件安全地通信以傳達用於對該安全作業系統映像加密之該映像加密金鑰,且將該金鑰協議資料儲存於一後設資料結構中。
  10. 如請求項9之電腦系統,其進一步包含藉由該安全介面控制件使用一呼叫而自該超管理器接收該後設資料結構,該後設資料結構進一步包含用於該驗證該安全作業系統映像之完整度的完整度雜湊值。
  11. 一種電腦程式產品,其包含: 一電腦可讀儲存媒體,其可由一處理電路讀取且儲存用於執行一方法之指令,該方法包含: 對一安全作業系統映像進行增量解密,包括對於該安全作業系統映像之複數個頁面中的一頁面: 接收該頁面之一頁面位址及在該頁面之加密期間使用的一調整值; 判定該調整值先前尚未在該安全作業系統映像之該複數個頁面中的另一頁面的解密期間使用;及 使用在對該頁面加密時使用之一映像加密金鑰以及該調整值對在該頁面位址處之記憶體頁面內容解密,以促進獲得一經解密安全作業系統映像; 驗證該安全作業系統映像之完整度;及 基於驗證該安全作業系統映像之完整度,開始執行該經解密安全作業系統映像。
  12. 如請求項11之電腦程式產品,其中該複數個頁面之頁面位址呈一固定次序,且該對該安全作業系統映像進行增量解密包括判定該頁面位址不同於該安全作業系統映像之該複數個頁面中的先前經解密頁面之任何先前頁面位址。
  13. 如請求項12之電腦程式產品,其中該對該安全作業系統映像進行增量解密進一步包括:判定該調整值不同於在該安全作業系統映像之該複數個頁面中的先前經解密頁面之解密期間使用的任何先前調整值。
  14. 如請求項12之電腦程式產品,其中該驗證完整度包括部分地使用以下各者:使用該複數個頁面之記憶體頁面內容而獲得的一累積內容雜湊;及使用該複數個頁面之頁面位址而獲得的一累積位址雜湊。
  15. 如請求項14之電腦程式產品,其中該驗證該安全作業系統映像之完整度包括比較該累積內容雜湊與藉由該安全介面控制件接收之一完整度內容雜湊。
  16. 如請求項15之電腦程式產品,其中該驗證該安全作業系統映像之完整度進一步包括:比較該累積位址雜湊與藉由該安全介面控制件接收之一完整度位址雜湊。
  17. 如請求項16之電腦程式產品,其進一步包含自接收自一超管理器之後設資料提取該映像加密金鑰以及該完整度內容雜湊及該完整度位址雜湊。
  18. 一種電腦實施方法,其包含: 對一安全作業系統映像進行增量解密,包括對於該安全作業系統映像之複數個頁面中的一頁面: 接收該頁面之一頁面位址及在該頁面之加密期間使用的一調整值; 判定該調整值先前尚未在該安全作業系統映像之該複數個頁面中的另一頁面的解密期間使用;及 使用在對該頁面加密時使用之一映像加密金鑰以及該調整值對在該頁面位址處之記憶體頁面內容解密,以促進獲得一經解密安全作業系統映像; 驗證該安全作業系統映像之完整度;及 基於驗證該安全作業系統映像之完整度,開始執行該經解密安全作業系統映像。
  19. 如請求項18之電腦實施方法,其中該增量解密及該驗證完整度由該電腦系統之一安全介面控制件執行,該安全介面控制件為一受信任實體且所使用之該頁面位址及該調整值由該安全介面控制件自一超管理器接收。
  20. 如請求項19之電腦實施方法,其中該複數個頁面之頁面位址呈一固定次序,且該對該安全作業系統映像進行增量解密包括判定該頁面位址不同於該安全作業系統映像之該複數個頁面中的先前經解密頁面之任何先前頁面位址,且其中該對該安全作業系統映像進行增量解密進一步包括判定該調整值不同於在該安全作業系統映像之該複數個頁面中的先前經解密頁面之解密期間使用的任何先前調整值。
TW109104544A 2019-03-08 2020-02-13 用於安全作業系統映像之增量解密及完整度驗證之電腦系統、電腦程式產品及電腦實施方法 TWI737172B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/296,334 US11354418B2 (en) 2019-03-08 2019-03-08 Incremental decryption and integrity verification of a secure operating system image
US16/296,334 2019-03-08

Publications (2)

Publication Number Publication Date
TW202101263A true TW202101263A (zh) 2021-01-01
TWI737172B TWI737172B (zh) 2021-08-21

Family

ID=69593703

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109104544A TWI737172B (zh) 2019-03-08 2020-02-13 用於安全作業系統映像之增量解密及完整度驗證之電腦系統、電腦程式產品及電腦實施方法

Country Status (16)

Country Link
US (1) US11354418B2 (zh)
EP (1) EP3935545B1 (zh)
JP (1) JP7388802B2 (zh)
KR (1) KR102551935B1 (zh)
CN (1) CN113544679A (zh)
AU (1) AU2020236629B2 (zh)
BR (1) BR112021017438A2 (zh)
CA (1) CA3132735A1 (zh)
ES (1) ES2969160T3 (zh)
IL (1) IL285161B2 (zh)
MX (1) MX2021010585A (zh)
PL (1) PL3935545T3 (zh)
SG (1) SG11202105427YA (zh)
TW (1) TWI737172B (zh)
WO (1) WO2020182420A1 (zh)
ZA (1) ZA202106315B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112989440B (zh) * 2021-04-21 2021-09-14 北京芯愿景软件技术股份有限公司 芯片、处理器驱动方法及电子设备
CN114547630B (zh) * 2022-04-25 2022-08-09 宁波均联智行科技股份有限公司 一种基于车机多操作系统的验证方法及装置
CN116956364B (zh) * 2023-09-21 2024-02-09 中航国际金网(北京)科技有限公司 虚拟化产品完整性校验方法、装置、系统及电子设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4245302A (en) 1978-10-10 1981-01-13 Magnuson Computer Systems, Inc. Computer and method for executing target instructions
US7162635B2 (en) 1995-01-17 2007-01-09 Eoriginal, Inc. System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents
US6138236A (en) 1996-07-01 2000-10-24 Sun Microsystems, Inc. Method and apparatus for firmware authentication
JP2007510198A (ja) 2003-10-08 2007-04-19 ユニシス コーポレーション ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化
US7984103B2 (en) 2008-11-25 2011-07-19 International Business Machines Corporation System and method for managing data transfers between information protocols
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8387114B2 (en) 2009-01-02 2013-02-26 International Business Machines Corporation Secure workload partitioning in a server environment
JP2011048661A (ja) 2009-08-27 2011-03-10 Nomura Research Institute Ltd 仮想サーバ暗号化システム
US8639783B1 (en) 2009-08-28 2014-01-28 Cisco Technology, Inc. Policy based configuration of interfaces in a virtual machine environment
US8856504B2 (en) 2010-06-07 2014-10-07 Cisco Technology, Inc. Secure virtual machine bootstrap in untrusted cloud infrastructures
US20120179904A1 (en) 2011-01-11 2012-07-12 Safenet, Inc. Remote Pre-Boot Authentication
WO2013100964A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Method and system for protecting memory information in a platform
US9594927B2 (en) 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
GB2532415A (en) 2014-11-11 2016-05-25 Ibm Processing a guest event in a hypervisor-controlled system
US10599458B2 (en) 2015-01-23 2020-03-24 Unisys Corporation Fabric computing system having an embedded software defined network
US10303899B2 (en) 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
US20210075623A1 (en) * 2018-04-26 2021-03-11 The Assay Depot, Inc. Decentralized data verification
US11003537B2 (en) * 2018-05-29 2021-05-11 Micron Technology, Inc. Determining validity of data read from memory by a controller
US11520611B2 (en) * 2018-08-20 2022-12-06 Intel Corporation Secure public cloud using extended paging and memory integrity

Also Published As

Publication number Publication date
KR102551935B1 (ko) 2023-07-06
IL285161B2 (en) 2024-03-01
BR112021017438A2 (pt) 2021-11-16
US11354418B2 (en) 2022-06-07
CN113544679A (zh) 2021-10-22
EP3935545A1 (en) 2022-01-12
EP3935545C0 (en) 2023-12-20
MX2021010585A (es) 2021-10-13
WO2020182420A1 (en) 2020-09-17
IL285161A (en) 2021-09-30
JP7388802B2 (ja) 2023-11-29
SG11202105427YA (en) 2021-06-29
EP3935545B1 (en) 2023-12-20
US20200285753A1 (en) 2020-09-10
KR20210121087A (ko) 2021-10-07
IL285161B1 (en) 2023-11-01
AU2020236629A1 (en) 2021-06-10
JP2022522627A (ja) 2022-04-20
TWI737172B (zh) 2021-08-21
AU2020236629B2 (en) 2023-01-19
PL3935545T3 (pl) 2024-03-25
ZA202106315B (en) 2023-03-29
ES2969160T3 (es) 2024-05-16
CA3132735A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
US20230031297A1 (en) Binding secure keys of secure guests to a hardware security module
TWI737172B (zh) 用於安全作業系統映像之增量解密及完整度驗證之電腦系統、電腦程式產品及電腦實施方法
AU2020426828B2 (en) Reserving one or more security modules for secure guest
US10366227B2 (en) Secure debugging in a trustable computing environment
TWI808749B (zh) 用於安全客體映像及後設資料更新之電腦程式產品、電腦系統及電腦實施方法
TWI822038B (zh) 用於安全客戶之多部分元資料之客製化之電腦程式產品、電腦系統及電腦實施方法
CN117940900A (zh) 存储安全虚拟机的诊断状态
CA3217422A1 (en) Attestation of a secure guest
US20230039894A1 (en) Deferred reclaiming of secure guest resources
TWI840804B (zh) 相關於安全客體資源之延後取回之電腦程式產品、電腦系統及電腦實施方法
TWI827045B (zh) 關於透過元資料提供至安全客戶之機密資料之電腦程式產品、電腦系統及電腦實施方法
TWI829173B (zh) 虛擬機器執行期間無法存取之前綴頁面
US11645092B1 (en) Building and deploying an application