CN113544680B - 用于页导入/导出的程序中断 - Google Patents
用于页导入/导出的程序中断 Download PDFInfo
- Publication number
- CN113544680B CN113544680B CN202080019499.4A CN202080019499A CN113544680B CN 113544680 B CN113544680 B CN 113544680B CN 202080019499 A CN202080019499 A CN 202080019499A CN 113544680 B CN113544680 B CN 113544680B
- Authority
- CN
- China
- Prior art keywords
- secure
- page
- interface control
- security
- computing system
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2147—Locking files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
一种示例性计算机实现方法包括,当不可信实体访问存储在计算***的存储器中的安全页时,由计算***的硬件控件向不可信实体提交异常,该异常阻止不可信实体访问安全页。该方法进一步包括,响应于异常,由不可信实体实体发出导出调用例程。该方法进一步包括由计算***的安全接口控件执行导出调用例程。
Description
背景技术
本发明总体上涉及计算机技术,更具体地涉及用于页导入(importing)/导出(exporting)的程序中断。
云计算和云存储为用户提供在第三方数据中心中存储和处理他们的数据的能力。云计算促进快速且容易地向客户机供应虚拟机(VM)的能力,而不需要客户机购买硬件或为物理服务器提供地面空间。客户机可以根据客户机的变化的偏好或要求容易地扩展或收缩VM。通常,云计算提供商提供物理地驻留在提供商的数据中心处的服务器上的VM。客户通常关心VM中的数据的安全性,特别是因为计算提供者通常在同一服务器上存储多于一个客户机的数据。客户机可能期望他们自己的代码/数据与云计算提供者的代码/数据之间的安全性,以及他们自己的代码/数据与在提供者的站点处运行的其他VM的代码/数据之间的安全性。此外,客户可能期望来自提供者的管理员的安全性以及防止来自机器上运行的其他代码的潜在安全漏洞。
为了处理这样的敏感情况,云服务提供商可以实施安全控制以确保适当的数据隔离和逻辑存储隔离。虚拟化在实施云基础架构中的广泛使用导致云服务客户的独特安全顾虑,因为虚拟化改变了操作***(OS)与底层硬件(无论是计算、存储或甚至联网硬件)之间的关系。这引入了作为本身必须正确地得到配置、管理和保护的附加层的虚拟化。
通常,在主机虚拟机监控程序(host hypervisor)的控制下作为客户机(guest)运行的VM依赖于虚拟机监控程序透明地为该客户机提供虚拟化服务。这些服务包括内存管理(memory management)、指令模拟和中断处理。
在内存管理的情况下,VM可以将其数据从磁盘移出(分页调入(page-in))以驻留在内存中,并且VM还可以将其数据移回(分页调出(page-out))到磁盘。当页驻留在内存中时,VM(客户机)使用动态地址转换(DAT)来将内存页从客户机虚拟地址(virtual address)映射到客户机绝对地址(absolute address)。此外,主机虚拟机监控程序有其自己的针对客户机内存页(guest pages in memory)的DAT映射(从主机虚拟地址到主机绝对地址),并且其可独立地且对客户机透明地将客户机页(guest pages)分页调入、调出内存。虚拟机监控程序正是通过主机DAT表来提供内存隔离或客户机内存在两个单独客户机VM之间的共享。主机必要时还能代表客户机访问客户机内存,以模拟客户机操作。
发明内容
根据本文描述的一个或多个示例,一种计算机实现的方法包括当不可信实体访问存储在计算***的存储器中的安全页时,由计算***的硬件控件向不可信实体提交异常,该异常阻止不可信实体访问安全页。该方法进一步包括响应于异常,由不可信实体发布导出调用例程。该方法进一步包括由计算***的安全接口控件执行导出调用例程。
根据本文描述的一个或多个示例,导出调用例程包括由安全接口控件对安全页进行加密。根据本文描述的一个或多个示例,导出调用例程包括在加密之前,由安全接口控件锁定安全页;和在加密之后,由安全接口控件对安全页解锁。根据本文描述的一个或多个示例,导出调用例程包括在加密之前,由安全接口控件在分区安全表中将安全页注册到安全接口控件。根据本文描述的一个或多个示例,导出调用例程包括由安全接口控件捕获安全页的加密内容的哈希。根据本文描述的一个或多个示例,导出调用例程包括在加密之后,由安全接口控件将主机绝对页标记为非安全。根据本文描述的一个或多个示例,导出调用例程包括在加密之后,由安全接口控件在分区安全表中将主机绝对页注册为非安全。根据本文描述的一个或多个示例,导出调用例程包括在锁定安全页之前,确定安全页是否被锁定;响应于确定安全页被锁定,生成对不可信实体的忙指示符;和等待一个延迟期。根据本文描述的一个或多个示例,安全接口控件包括固件、硬件或固件与硬件的组合;不可信实体包括虚拟机监控程序。
根据本文描述的一个或多个示例,一种计算机实现的方法包括响应于安全实体访问已被计算***的不可信实体分页调入但尚不安全的页,由计算***的硬件控件向计算***的不可信实体提交异常,该异常阻止不可信实体访问该页。该方法进一步包括响应于异常,由不可信实体发布导入调用例程(import call routine)。该方法进一步包括由计算***的安全接口控件执行导入调用例程。
根据本文描述的一个或多个示例,导入调用例程包括由计算***的安全接口控件确定安全页是否是共享页。根据本文描述的一个或多个示例,导入调用例程包括响应于确定安全页不是共享安全页,由安全接口控件将安全页标记为安全。根据本文描述的一个或多个示例,导入调用例程包括由安全接口控件在分区安全表中将安全页注册到安全接口控件。根据本文描述的一个或多个示例,导入调用例程包括由安全接口控件解密安全页。
本发明的其他实施例在计算机***和计算机程序产品中实现上述方法的特征。
所公开技术的优点包括防止来自不可信实体的恶意行为。例如,本发明技术使用主机程序中断来防止恶意的不可信实体访问安全存储,同时允许非恶意行为的实体得到需要调用安全接口控件的通知。该技术提供了对在虚拟机监控程序与客户机之间共享内存页的现有***的技术改进。该技术通过防止恶意的不可信实体访问安全客户机存储来提高虚拟机监控程序环境中的安全性。
通过本公开的技术实现了额外特征和优点。本发明的其他实施例和方面在此作了详细描述并且被认为是本发明的一部分。为了更好地理解本发明的优点和特征,参考说明书和附图。
附图说明
在说明书结尾处的权利要求书中特别指出并清楚地要求保护本文描述的独占权利的细节。从以下结合附图的详细描述中,本发明的实施例的前述和其他特征和优点是显而易见的,附图中:
图1描绘了根据本发明的一个或多个实施例的分区安全表;
图2描绘了根据本发明的一个或多个实施例的用于执行DAT的虚拟地址空间和绝对地址空间;
图3描绘了根据本发明的一个或多个实施例的用于支持在虚拟机监控程序下运行的虚拟机(VM)的嵌套的多部分DAT;
图4描绘了根据本发明的一个或多个实施例的安全客户机存储的映射;
图5A和5B描绘了根据本发明的一个或多个实施例的导入操作的过程流;
图6描绘了根据本发明的一个或多个实施例的导入操作的过程流;
图7描绘了根据本发明的一个或多个实施例的导入操作的过程流;
图8A描绘了根据本发明的一个或多个实施例的分页调出客户机的安全(加密)页的过程流;
图8B和8C描绘了根据本发明的一个或多个实施例的导出操作的过程流;
图9示出了根据本发明一个或多个实施例的云计算环境;
图10描绘了根据本发明的一个或多个实施例的抽象模型层;
图11描绘了根据本发明的一个或多个实施例的***;和
图12描绘了根据本发明的一个或多个实施例的处理***。
本文所描绘的图是说明性的。在不背离本发明的精神的情况下,可以对本文所描述的图或操作进行许多变化。例如,可以按不同次序执行动作,或者可以添加、删除或修改动作。同样,术语“耦合”及其变体描述了在两个元件之间具有通信路径并且不暗示这些元件之间没有中间元件/连接的直接连接。所有这些变化被视为说明书的一部分。
具体实施方式
本文描述的技术用于在安全客户机环境中使用主机程序中断来通知虚拟机监控程序需要对分页进行机器干预,并防止恶意的虚拟机监控程序行为。本发明技术使用主机程序中断来防止恶意虚拟机监控程序访问安全客户机存储,同时允许“行为良好”的虚拟机监控程序(即,没有恶意行为的虚拟机监控程序)被通知需要调用安全接口控件(也称为“UV”)。
本发明的一个或多个实施例提供了一种转换自安全存储(导出)(convert fromsecure storage(export))UV调用(UVC)指令,用于将页从由单个安全客户机配置安全地(未加密)可访问的状态转换为加密的并可由虚拟机监控程序访问以进行分页调出的状态。还提供了转换为安全存储(导入)(convert to secure storage(import))UVC指令,用于在分页调入后解密存储并将其分配给安全客户机配置。
本发明的一个或多个实施例利用软件与机器之间的高效、轻量的安全接口控件来提供额外的安全性。
在主机虚拟机监控程序的控制下作为客户机运行的虚拟机(VM)依赖于该虚拟机监控程序来透明地为该客户机提供虚拟化服务。这些服务可以应用于安全实体和另一不可信实体之间的传统上允许此其他实体访问安全资源的任何接口。如前所述,这些服务可包括但不限于内存管理、指令仿真和中断处理。例如,对于中断和异常注入,虚拟机监控程序通常对客户机的前缀区(prefix area)(低核)进行读和/或写。如在此使用的术语“虚拟机”或“VM”是指物理机器(计算设备、处理器等)及其处理环境(操作***(OS)、软件资源等)的逻辑表示。VM被维护为在底层主机(物理处理器或处理器集合)上执行的软件。从用户或软件资源的角度来看,VM看起来是它自己的独立物理机器。如本文中所使用的术语“虚拟机监控程序”和“VM监测器(VMM)”是指管理并准许多个VM在同一主机上使用多个(并且有时不同的)OS执行的处理环境或平台服务。应当理解,部署VM包括VM的安装过程和VM的激活(或开启)过程。在另一示例中,部署VM包括VM的激活(或开始)过程(例如,在VM先前被安装或已经存在的情况下)。
为了促进和支持安全客户机,存在技术挑战,其中在虚拟机监控程序和安全客户机之间需要额外的安全性而不依赖于虚拟机监控程序,使得虚拟机监控程序不能访问来自VM的数据,并且因此不能以上述方式提供服务。
本文描述的安全执行提供硬件机制以确保安全存储和非安全存储之间以及属于不同安全用户的安全存储之间的隔离。为了安全客户机,在“不可信的”(untrusted)非安全虚拟机监控程序与安全客户机之间提供了额外的安全性。为此,虚拟机监控程序通常代表客户机所做的许多功能需要被结合到机器中。在此描述了一种新的安全接口控件(secureinterface control)(在此也被称为“UV”),用于提供虚拟机监控程序与安全客户机之间的安全接口。术语安全接口控件和UV在本文中可互换使用。安全接口控件与硬件协作工作以提供该额外的安全性。此外,较低层虚拟机监控程序可以为该不可信虚拟机监控程序提供虚拟化,并且如果该较低层虚拟机监控程序是以可信代码实现的,则它也可以是安全接口控件的一部分。
当各种服务由也可以访问服务调用方的数据和状态单独的授权程序提供时,这种机制也适用。在一种情况下,该单独的程序可以是在另一种情况下通过使用监管调用接口提供监管功能的虚拟机监控程序(supervisor program)。
在一个示例中,安全接口控件在内部、安全和可信的硬件和/或固件中实现。对于安全客户机或实体,安全接口控件提供安全环境的初始化和维护以及协调这些安全实体在硬件上的调度(dispatch)。当安全客户机主动使用数据并且其驻留在主机存储中时,其在安全存储中保持“安全”(in the clear)。安全客户机存储可以由该单个安全客户机访问——这由硬件严格地强制执行。即,硬件防止任何非安全实体(包括虚拟机监控程序或其他非安全客户机)或不同的安全客户机访问该数据。在该示例中,安全接口控件作为固件的最低级别的可信部分运行。最低层或毫码实际上是硬件的扩展,并且用于实现例如在IBM的中定义的复杂指令和功能。毫码能够访问存储的所有部分,在安全执行的上下文中,其包括其自身的安全UV存储、非安全虚拟机监控程序存储、安全客户机存储和共享存储。这允许它提供安全客户机所需的或虚拟机监控程序支持该客户机所需的任何功能。安全接口控件还具有对硬件的直接访问,这允许硬件在由安全接口控件确立的条件的控制下有效地提供安全检查。
根据本发明的一个或多个实施例,在硬件中提供安全-存储位以标记安全页。该位被置位(set)时,硬件阻止任何非安全客户机或虚拟机监控程序访问此页。此外,每个安全或共享页都在分区安全表中注册,并使用安全客户机域标识(ID)进行标记。当该页为非安全的时,会在分区安全表中将其标记为非安全。此分区安全表由每个分区或区的安全接口控件维护。每个主机绝对页有一个条目,硬件在安全实体进行任何DAT转换时使用该条目来验证该页是否仅由安全客户机或拥有该页的实体访问。
根据本发明的一个或多个实施例,软件使用UVC指令来请求安全接口控件执行特定动作。例如,UVC指令可由虚拟机监控程序使用以初始化安全接口控件、创建安全客户机域(例如,安全客户机配置)和在该安全配置内创建虚拟CPU。它也可以用于导入(import)(解密并分配给安全客户机域)和导出(export)(加密并允许主机访问)安全客户机页,作为虚拟机监控程序分页调入或分页调出操作的一部分。此外,安全客户机具有定义与虚拟机监控程序共享的存储、使安全存储被共享、以及使共享存储安全的能力。
为了提供安全性,当虚拟机监控程序透明地将安全客户机数据分页调入和分页调出时,与硬件协作的安全接口控件提供和保证数据的解密和加密。为了实现这一点,当将安全客户机数据分页调入和分页调出时,需要虚拟机监控程序发布新的UVC。基于由安全接口控件在这些新UVC期间设置的控制,硬件将保证这些UVC确实由虚拟机监控程序发布。
在这个新的安全环境中,每当虚拟机监控程序分页调出安全页时,需要从安全存储(导出)UVC发布新的转换。响应于此导出UVC,安全接口控件将1)指示该页被UV“锁定”,2)加密该页,3)将该页设置为非安全的,以及4)重置UV锁。一旦导出UVC完成,虚拟机监控程序现在就可以分页调出加密的客户机页。
另外,每当虚拟机监控程序正分页调入安全页时,它都会发出一个新的转换为安全存储(导入)UVC。当安全客户机试图访问某页—而该页已被行为良好的虚拟机监控程序分页调出,因此不驻留在主机内存中,并且在主机转换(例如页)表中无效—时,向主机提交显示页转换异常(PIC11)。然后,虚拟机监控程序将客户机页分页为非安全主机绝对页,为该客户机绝对页确立主机映射,并重新分派安全客户机。此时,该页仍处于加密状态,并且仍标记为非安全。当该客户机尝试重新访问该页时,硬件会提交非安全存储访问(PIC3E)异常。采取此异常是为了防止安全客户机在其页尚未解密时访问该页,并向行为良好的虚拟机监控程序指示需要导入UVC。响应于此导入UVC,UV或安全接口控件将1)在硬件中将该页标记为安全,2)指示该页被UV“锁定”,3)解密该页,4)设置对特定安全客户机域的权限,以及5)重置UV锁。每当安全实体进行访问时,硬件在转换期间对该页执行授权检查(authorization checks)。这些检查包括:1)验证该页确实属于访问它的安全客户机域的的检查;以及2)确保当该页已经驻留在客户机存储器中时虚拟机监控程序没有改变此页的主机映射(host mapping)的检查。一旦某页被标记为安全,硬件就阻止虚拟机监控程序或非安全客户机VM访问任何安全页。这些额外转换步骤防止另一安全VM的访问且防止虚拟机监控程序的重新映射(remapping)。
本发明的一个或多个实施例提供了对虚拟机监控程序和客户机之间共享内存页的现有***的技术改进。这种现有***容易受到可能会损害内存页的完整性和访问的行为不良(或恶意)的虚拟机监控程序的影响。本发明的一个或多个实施例提供了安全接口控件,以防止恶意虚拟机监控程序访问安全客户机存储,同时允许行为良好(非恶意)的虚拟机监控程序被通知需要调用安全接口控件。这通过防止恶意虚拟机监控程序访问安全客户机存储来提高虚拟机监控程序环境中的安全性。
典型的/当代的基于虚拟机监控程序的环境面临的一个技术挑战是,虚拟机监控程序可能会恶意操作并访问安全客户机存储。本发明的一个或多个实施例通过使用自安全存储转换(导出)UVC指令将页从由单个安全客户机配置可访问的状态转换为加密的并可由虚拟机监控程序访问以进行分页调出的状态来解决此类技术挑战。还提供了。本发明的一个或多个实施例通过使用转换为安全存储(导入)UVC指令在分页调入后解密存储并将其分配给安全客户机配置来解决此类技术挑战。因此,本文提供的技术可防止恶意虚拟机监控程序访问安全客户机存储。
现在转到图1,根据本发明的一个或多个实施例,总体上示出了用于分区安全的表100。图1中所示的分区安全表100由安全接口控件来维护,并且由安全接口控件和硬件用来保证对由安全实体访问的任何页的安全访问。分区安全表100按主机绝对地址110进行索引。即,对于主机绝对存储的每个页有一个条目。每个条目包括用于验证该条目属于进行访问的安全实体的信息。
进一步地,如图1所示,分区安全表100包括安全域ID 120(标识与此页相关联的安全域);UV-位130(指示该页被捐献给安全接口控件并且由安全接口控件拥有);禁用地址比较(DA)-位140(用于在某些情况下,诸如当被定义为主机绝对地址的安全接口控件页不具有相关联的主机虚拟地址时,禁用主机地址对比较);共享(SH)-位150(指示与非安全虚拟机监控程序共享的页)和主机虚拟地址160(指示为该主机绝对地址注册的主机虚拟地址,其被称为主机-地址对)。注意,主机-地址对指示主机绝对和相关联的、注册的主机虚拟地址。一旦由虚拟机监控程序导入,主机-地址对表示该页的映射,并且,所述比较保证在客户机使用该页时主机不重新映射该页。
动态地址转换(DAT)用于将虚拟存储映射到实存储。当客户机VM在虚拟机监控程序的控制下作为可分页客户机运行时,客户机使用DAT来管理驻留在其内存页。此外,当页驻留在其存储器中时,主机独立地使用DAT来管理那些客户机页(连同其自己的页)。虚拟机监控程序使用DAT来提供不同VM之间的存储的隔离和/或共享以及防止客户机访问虚拟机监控程序存储。当客户机以非安全模式运行时,虚拟机监控程序可以访问所有客户机的存储。
DAT使得能够将一个应用与另一应用隔离,同时仍允许它们共享公共资源。DAT也允许实现可用于设计和测试OS的新版本以及应用程序的并发处理的VM。虚拟地址标识虚拟存储中的位置。地址空间是虚拟地址的连续序列,连同特定变换参数(包含DAT表)所述特定变换参数允许将每一虚拟地址转换成相关联的绝对地址,绝对地址以存储中的字节位置标识该地址。
DAT使用多表查找来将虚拟地址转换为相关联的绝对地址。这个表结构通常由存储管理器定义和维护。这个存储管理器通过分页调出例如一个页以引入另一个页来在多个程序之间透明地共享绝对存储。当页被分页调出时,存储管理器将例如在相关联的页表中设置无效位。当程序试图访问被分页调出的页时,硬件将向存储管理器提交通常被称为页错误的程序中断。作为响应,存储管理器将分页调入所请求的页并重置无效位。这都是对程序透明地完成的,并且允许存储管理器虚拟化存储并在各种不同用户之间共享它。
CPU用虚拟地址访问主存储时,首先通过DAT将虚拟地址转换成实地址(realaddress),然后通过前缀(prefixing)将其转换成绝对地址。用于特定地址空间的最高级表的名称(designation)(原点和长度)被称为地址空间控制元素(ASCE),并定义相关联的地址空间。
现在转到图2,根据本发明的一个或多个实施例,总体上示出了用于执行DAT的示例虚拟地址空间202和204以及绝对地址空间206。在图2所示的示例中,存在两个虚拟地址空间:虚拟地址空间202(由地址空间控制元素(ASCE)A 208定义)和虚拟地址空间204(由ASCE B 210定义)。虚拟页A1.V 212a1、A2.V 212a2和A3.V 212a3被存储管理器用ASCE A208在多表(段(segment)230和页表232a、232b)查找中映射到绝对页A1.A 220a1、A2.A220a2和A3.A 220a3。类似地,使用ASCE B 210在两表234和236查找中分别将虚拟页B1.V214b1和B2.V 214b2映射到绝对页B1.A 222b1和B2.A 222b2。
现在转到图3,根据本发明的一个或多个实施例,总体上示出了用于支持在虚拟机监控程序下运行的VM的嵌套的多部分DAT转换的示例。在图3所示的示例中,客户机A的虚拟地址空间A 302(由客户机ASCE(GASCE)A 304定义)和客户机B的虚拟地址空间B 306(由GASCEB 308定义)两者都驻留在共享主机(虚拟机监控程序)虚拟地址空间325中。如图所示,属于客户机A的虚拟页A1.GV 310a1、A2.GV 310a2和A3.GV 310a3分别被客户机A的存储管理器用GASCEA 304映射到客户机绝对页A1.HV 340a1、A2.HV 340a2和A3.HV 340a3;属于客户机B的虚拟页B1.GV 320bl和B2.GV 320b2分别被客户机B的存储管理器独立地用GASCEB 308映射到客户机绝对页B1.HV 360bl和B2.HV 360b2。在此示例中,这些客户机绝对页直接映射到共享的主机虚拟地址空间325中,随后经历到主机绝对地址空间330的额外主机DAT转换。如图所示,主机虚拟地址A1.HV 340a1、A3.HV 340a3和B1.HV 360b1被主机存储管理器用主机ASCE(HASCE)350映射到A1.HA 370a1、A3.HA 370a3和B1.HA 370b1。属于客户机A的主机虚拟地址A2.HV 340a2和属于客户机B的B2.HV 360b2两者都被映射到相同的主机绝对页AB2.HA 380。这使得数据能够在这两个客户机之间共享。在客户机DAT转换期间,每个客户机表地址都被视为客户机绝对地址,并且经历额外的嵌套主机DAT转换。
本文所述的本发明的实施例提供安全客户机存储保护。非安全客户机和虚拟机监控程序对安全存储的访问被禁止。虚拟机监控程序规定,对于给定的驻留安全客户机页,发生以下情况。相关联的主机绝对地址仅是通过单个虚拟机监控程序(主机)DAT映射可访问的。即,存在映射到分配给安全客户机的任何给定主机绝对地址的单个主机虚拟地址。与给定安全客户机页相关联的虚拟机监控程序DAT映射(主机虚拟到主机绝对)在它被分页调入时不改变。针对单个安全客户机映射与安全客户机页相关联的主机绝对页。
根据本发明的一个或多个实施例,安全客户机之间的存储共享也被禁止。存储是在单个安全客户机与该安全客户机控制下的虚拟机监控程序之间共享的。
现在转到图4,根据本发明的一个或多个实施例,总体上示出了安全客户机存储的映射的示例。图4类似于图3,只是图4的示例不允许在安全客户机A和安全客户机B之间共享存储。在图3的非安全示例中,属于客户机A的主机虚拟地址A2.HV 340a2和属于客户机B的B2.HV 360b2两者被映射到相同的主机绝对页AB2.HA 380。在图4的安全客户机存储示例中,属于客户机A的主机虚拟地址A2.HV 340a2映射到主机绝对地址A2.HA 490a,而属于客户机B的B2.HV 360b2映射到其自己的B2.HA 490b。在这个实例中,不存在安全客户机之间的共享。
当安全客户机页驻留在盘上时,其被加密。当虚拟机监控程序分页调入安全客户机页时,虚拟机监控程序发布UVC,其使安全接口控件将该页标记为安全(除非共享)、解密该页(除非共享)并且将该页注册(在分区安全表中)为属于适当的安全客户机(例如,客户机A)。此外,虚拟机监控程序将相关联的主机虚拟地址(例如,A3.HV 340a3)注册到该主机绝对页(称为主机-地址对)。如果虚拟机监控程序未能发布正确的UVC,则其在试图访问安全客户机页时接收异常。当虚拟机监控程序分页调出客户机页时,发布类似的UVC,该UVC在将客户机页标记为非安全并且将其在分区安全表中注册为非安全之前加密客户机页(除非共享)。
在具有五个给定主机绝对页K、P、L、M和N的示例中,主机绝对页中的每一个在虚拟机监控程序将它们分页调入时被安全接口控件标记为安全。这防止非安全客户机和虚拟机监控程序访问它们。当虚拟机监控程序分页调入主机绝对页K、P和M时,主机绝对页K、P和M被注册为属于客户机A;当虚拟机监控程序分页调入主机绝对页L和N时,主机绝对页L和N被注册到客户机B。共享页(在单个安全客户机和虚拟机监控程序之间共享的页)在分页期间不被加密或解密。它们不被标记为安全(允许由虚拟机监控程序访问),而是向分区安全表中的单个安全客户机域注册。
根据本发明的一个或多个实施例,当非安全客户机或虚拟机监控程序试图访问安全客户机所拥有的页时,虚拟机监控程序接收到安全-存储访问(PIC3D)异常。确定这一点,无需要额外的转换步骤。
根据一个或多个实施例,当安全实体试图访问页时,硬件执行验证存储确实属于特定的安全客户机的额外转换检查。如果不是,则向虚拟机监控程序提交非安全访问(PIC3E)异常。此外,如果被转换的主机虚拟地址与分区安全表中的注册的主机-地址对的主机虚拟地址不匹配,则识别出安全存储违规(‘3F’x)异常。为了实现与虚拟机监控程序的共享,只要转换检查允许访问,安全客户机就可以访问未被标记为安全存储。
现在转向图5A,总体上示出了根据本发明的一个或多个实施例的导入操作的过程流550。在框552,响应于安全实体访问已由计算***的不可信实体分页调入的安全页,计算***的硬件接口向计算***的不可信实体提交异常(exception)。该异常阻止不可信实体访问安全页。在框554,不可信实体发布导入调用例程—本文将进一步描述该例程。在框556,计算***的安全接口控件执行导入调用例程。
图5B进一步描述根据本发明的一个或多个实施例的导入操作的过程流500。当安全客户机访问被虚拟机监控程序分页调出的页时,发生诸如过程流500中所示的事件序列,以便安全地将该页调回。过程流500在框505开始,其中安全客户机访问客户机虚拟页。由于该页例如是无效的,硬件向虚拟机监控程序提交由程序中断代码11(PIC11)指示的主机页错误(参见框515)。虚拟机监控程序进而识别该客户机页的可用的非安全主机绝对页(参见框520),并将加密的客户机页分页调入到所识别的主机绝对页(参见框525)。
然后在框530处,主机绝对页在适当的(基于主机虚拟地址的)主机DAT表中被映射。在框535处,虚拟机监控程序主机然后重新调度安全客户机。在框540处,安全客户机重新访问客户机安全页。页错误不再存在,但是由于这是安全客户机访问并且该页在图100的分区安全表100中未被标记为安全,在框545处,硬件向虚拟机监控程序提交非安全存储异常(PIC3E)。这个PIC3E阻止客户机对这个安全页的访问,直到已经发布了必要的导入为止。接下来,过程流500前进至续接到图6的“A”。
现在转向图6,根据本发明的一个或多个实施例,总体上示出了用于执行导入操作的过程流600。响应于PIC3E,表现良好的(例如,以预期方式无错误地执行的)虚拟机监控程序将发布导入UVC(参见框605)。注意,此时,要被导入的页被标记为非安全(non-secure),只能被虚拟机监控程序、其他非安全实体和安全接口控件访问。它不能被安全客户机访问。
作为导入UVC的一部分,充当安全接口控件的可信固件进行检查,以查看此页是否已经被安全接口控件锁定(参见决策框610)。如果是,则过程流600前进到框620。在框620处,向虚拟机监控程序返回一个“忙”返回码,虚拟机监控程序将响应于该返回码而延迟(参见框625)并重新发布导入UVC(过程流600返回至框605)。如果该页尚未被锁定,则过程流600前进到决策框622。
在决策框622处,安全接口控件进行检查,以查看该页是否是与非安全虚拟机监控程序共享的页。如果它是共享的(过程流600前进到判定框624),则安全接口控件在分区安全表中将主机绝对地址与相关联的安全客户机域、主机虚拟地址一起注册且注册为共享的。此页保持被标记为非安全。这就完成了导入UVC,该页现在可用于由客户机访问。处理继续进行,虚拟机监控程序重新调度客户机(框630),安全客户机成功地访问该页(框635)。
如果要导入的主机虚拟页不是与虚拟机监控程序共享的(过程流600前进到框640),则安全接口控件将该页标记为安全,使得虚拟机监控程序不再能访问该页。在框645处,安全接口控件锁定该页,使得任何其他UVC都不能修改该页状态。一旦设置了锁(在框650),安全接口控件将验证客户机页的内容在其被加密期间没有改变。如果客户机页的内容确实改变了,则向虚拟机监控程序返回错误返回码,否则,安全接口控件将解密该安全页。
在框655处,安全接口控件解锁该页(从而允许由其他UVC访问),在分区安全表中将该页注册为安全的并与适当的客户机域和主机虚拟地址相关联,以完成主机-地址HV->HA对。这允许客户机访问并完成UVC。
图7描绘了根据本发明的一个或多个实施例的转换到安全客户机页的过程流700。由虚拟机监控程序分页调入加密或共享的安全客户机页(702)。该页当前被标记为非安全(NS),并在分区安全表中注册为非安全和非共享。非安全实体(包括虚拟机监控程序)可以访问该页。如果该页被安全实体访问,则向主机提交异常。使用导入UVC将该页转换为安全存储(导入的)(704)。作为导入UVC的一部分,由安全接口控件确定该页是否是共享的(706)。如果该页不是共享的,则将该页解密并标记为安全客户机页(即,该页现在处于“安全”状态)(框708)。特别地,为了在该页处于安全状态时保护该页,该页由安全接口控件标记为安全,并在分区安全表中与相关联的安全客户机域和HV->HA映射一起注册为安全、非共享。然而,如果该页是共享的,即在虚拟机监控程序和单个安全客户机之间共享的,则包括虚拟机监控程序在内的任何非安全实体都可以访问该页(710)。该页仍被标记为非安全,以允许虚拟机监控程序访问,并在分区安全表中与关联的安全客户机域和HV->HA映射一起注册为共享。
图8A描述了根据本发明的一个或多个实施例的分页调出客户机的安全(解密)页的过程流830。在本文描述的新的安全环境中,每当虚拟机监控程序分页调出一个安全页时,都需要发布一个新的转换自安全存储(导出)UVC。为此,执行过程流800。在框831,当不可信实体访问存储在计算***的存储器中的安全页时,计算***的硬件控制向不可信实体提交异常,该异常阻止不可信实体访问安全页。在框832,不可信实体发布导出调用例程。在框833,计算***的安全接口控件执行导出调用例程(即,转换自安全存储(导出)UVC)。
图8B和8C描绘了根据本发明的一个或多个实施例的用于分页调出页的导出UVC例程810的过程流800。虚拟机监控程序识别要分页调出的安全客户机页(802),然后虚拟机监控程序在主机DAT表中使该安全客户机页无效(804)。当主机访问该安全非共享客户机页以将其分页调出时,硬件向主机提交安全存储访问(PIC3D)异常(806);作为响应,虚拟机监控程序发布导出UVC(808)。然后,由安全接口控件执行的导出UVC例程810开始。
具体而言,导出UVC例程810首先确定该页是否已被安全接口控件锁定。如果是,则向虚拟机监控程序指示“忙”指示符(814),则向虚拟机监控程序指示“忙”指示符(814),于是虚拟机监控程序先等待一个延迟期(816)再尝试重新发布导出UVC(808)。如果该页未被锁定,则UV锁定该安全页,并在分区安全表中将其注册为属于UV(818)。安全客户机不再能访问该页,并且其他UVC都不能在该主机绝对页上操作。UV对该页进行加密并捕获该页的加密内容的哈希(820)。然后,UV将该主机绝对页标记为非安全(822)。虚拟机监控程序现在可以访问该页。接下来,UV解锁该页并在分区安全表中将其注册为非安全页(824)。安全客户机仍然无法访问页,但安全接口控件可以。如果请求导入该页,则可以为客户机导入该页。导出UVC例程810结束,虚拟机监控程序分页调出该客户机页(826)。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务交付模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供商的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务提供商进行人工交互。
广泛的网络接入:通过网络提供功能,并通过标准机制进行访问,所述标准机制促进由异构的瘦客户端或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被汇集起来以使用多租户模型来服务于多个消费者,不同的物理和虚拟资源根据需要被动态分配和重新分配。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制权或知识,但可能能够指定更高抽象层级的位置(例如,国家、州或数据中心)。
快速弹性:可以快速且弹性地配置功能,在某些情况下自动地快速扩展,迅速释放以快速收缩。对于消费者而言,可用于配置的功能通常看起来是无限的,可以在任何时间以任何数量购买。
度量的服务:云***通过利用与服务类型(例如,存储、处理、带宽和活动用户帐户)相适应的某种抽象级别的计量功能来自动控制和优化资源使用。可以监视、控制和报告资源使用情况,为所使用服务的提供者和使用者提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的功能是使用在云基础设施上运行的提供者的应用。这些应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作***、存储或甚至个体应用功能的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。
平台即服务(PaaS):向消费者提供的功能是在云基础结构上部署消费者创建或获取的应用,所述应用是用提供者所支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
基础设施即服务(IaaS):向消费者提供的功能是提供消费者能够部署和运行可包括操作***和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础结构,而是具有对操作***、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
部署模型如下:
私有云:云基础结构仅为组织运营。它可以由组织或第三方管理,并且可存在于场所内或场所外。
社区云:云基础结构由多个组织共享,并支持具有共同关注点(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可存在于场所内或场所外。
公共云:云基础结构可供公众或大型行业团体使用,并由销售云服务的组织拥有。
混合云:云基础结构是由两个或更多个云(私有、社区或公共的)组成的,这些云仍然是唯一性实体,但通过标准化或专有技术来绑定在一起,这些技术实现数据和应用的可移植性(例如,用于云之间的负载平衡的云突发)。
云计算环境是面向服务的,着重于无状态性、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础架构。
现在参见图9,描绘说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点52,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N)可与云计算节点52通信。节点52可以彼此通信。它们可以在一个或多个网络中,诸如在上文所述的私有云、社区云、公共云或混合云或其组合中,被物理地或虚拟地分组(未示出)。这允许云计算环境50提供基础结构、平台和/或软件作为服务,云消费者不需要为其在本地计算设备上维护资源。应当理解,图9中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点52和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备进行通信。
现在参见图10,示出了由云计算环境50(图9)提供的一组功能抽象层。应预先理解,图10中所示的部件、层和功能旨在仅是说明性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:
硬件和软件层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。
现在转到图11,描绘了根据本发明的一个或多个实施例的***1100。***1100包括例如经由网络165与一个或多个客户端设备20A-20E直接或间接通信的示例节点10(例如,托管节点)。节点10可以是云计算提供商的数据中心或主机服务器。节点10执行虚拟机监控程序12,其促进部署一个或多个VM15(15A-15N)。节点10进一步包括硬件/固件层11,硬件/固件层11为虚拟机15A-N和虚拟机监控程序12所需的功能提供直接支持,并帮助虚拟机监控程序12向虚拟机15提供一个或多个服务。在当代的实现中,提供硬件/固件层11与虚拟机监控程序12之间、硬件/固件层11与虚拟机15之间、虚拟机监控程序12与虚拟机15之间、以及通过硬件/固件层11在虚拟机监控程序12与虚拟机之间的通信。根据本发明的一个或多个实施例,在硬件/固件层11中提供安全接口控件,并且消除了虚拟机监控程序12与虚拟机15之间的直接通信。
例如,节点10可促进客户端设备20A部署虚拟机15A-15N中的一个或多个。可响应于来自不同客户机设备20A-20E的相应请求部署虚拟机15A-15N。例如,VM 15A可以由客户端设备20A部署,VM 15B可以由客户端设备20B部署,VM 15C可以由客户端设备20C部署。节点10还可以促进客户机端供应物理服务器(而不作为VM运行)。在此描述的示例将节点10中的资源的供应具体化为VM的一部分,然而,所描述的技术方案还可以应用于将资源供应为物理服务器的一部分。
在示例中,客户端设备20A-20E可以属于同一实体,诸如个人、企业、政府机构、公司内的部门或任何其他实体,并且节点10可以作为实体的私有云来操作。在这种情况下,节点10仅托管由属于实体的客户机设备20A-20E部署的虚拟机15A-15N。在另一示例中,客户端设备20A-20E可以属于不同的实体。例如,第一实体可以拥有客户端设备20A,而第二实体可以拥有客户端设备20B。在这种情况下,节点10可以***作为托管来自不同实体的VM的公共云。例如,虚拟机15A-15N可以以其中VM 15A不促进对VM15B的访问的屏蔽方式部署。例如,节点10可使用IBM z处理器资源/***管理器(PR/SM)逻辑分区(LPAR)特征来覆盖虚拟机15A-15N。这些特征(诸如PR/SM LPAR)提供分区之间的隔离,因此促进节点10在不同的逻辑分区中为同一物理节点10上的不同实体部署两个或更多个虚拟机15A-15N。
来自客户端设备20A-20e的客户端设备20A是诸如计算机、智能电话、平板计算机、台式计算机、膝上型计算机、服务器计算机的通信设备或请求由节点10的虚拟机监控程序12部署VM的任何其他通信设备。客户端设备20A可以经由网络165发送由虚拟机监控程序接收的请求。虚拟机15A-15N中的VM 15A是虚拟机监控程序12响应于客户端设备20A-20e中的客户端设备20A的请求而部署的VM映像。虚拟机监控程序12是VM监视器(VMM),其可以是创建和运行VM的软件、固件或硬件。虚拟机监控程序12促进VM 15A使用节点10的硬件组件来执行程序和/或存储数据。加以适当的特征和修改,虚拟机监控程序12可以是ORACLE VM SERVERTM,CITRIX XENSERVERTM,VMWARE ESXTM,MICROSOFTHYPER-VTM或任何其他虚拟机监控程序。虚拟机监控程序12可以是直接在节点10上执行的本机虚拟机监控程序,或者在另一虚拟机监控程序上执行的托管虚拟机监控程序。/>
现在转向图12,根据本发明的一个或多个实施例示出了用于实现本文的教导的节点10。节点10可以是包括和/或采用如本文所述的利用不同通信技术的任意数量的计算设备和网络及其组合的电子计算机框架。节点10可以容易地可升级、可扩展和模块化,具有改变到不同服务或独立于其他节点而重新配置一些特征的能力。
在本实施例中,节点10具有处理器1201,处理器1201可以包括一个或多个中央处理单元(CPU)1201a、1201b、1201c等。处理器1201(也被称为处理电路、微处理器、计算单元)经由***总线1202耦合到***存储器1203和不同其他组件。***存储器1203包括只读存储器(ROM)1204和随机存取存储器(RAM)1205。ROM 1204耦合到***总线1202,并且可以包括基本输入/输出***(BIOS),其控制节点10的某些基本功能。RAM是耦合到***总线1202以供处理器1201使用的读写存储器。
图12的节点10包括硬盘1207,其是可由处理器1201执行的可读的有形存储介质的示例。硬盘1207存储软件1208和数据1209。软件1208被存储为由处理器1201在节点10上执行的指令(以执行过程,例如参见图1-19描述的过程)。数据1209包括以不同数据结构组织以支持软件1208的操作和由软件1208的操作使用的定性或定量变量的一组值。
图12的节点10包括互连并支持处理器1201、***存储器1203、硬盘1207和节点10的其他组件(例如,***设备和外部设备)之间的通信的一个或多个适配器(例如,硬盘控制器、网络适配器、图形适配器等)。在本发明的一个或多个实施例中,一个或多个适配器可以连接到经由中间总线桥连接到***总线1202的一个或多个I/O总线,并且一个或多个I/O总线可以利用诸如***组件互连(PCI)的公共协议,
如图所示,节点10包括将键盘1221、鼠标1222、扬声器1223和麦克风1224互连到***总线1202的接口适配器1220。节点10包括将***总线1202互连到显示器1231的显示适配器1230。显示适配器1230(和/或处理器1201)可以包括用于提供诸如GUI 1232的显示和管理的图形性能的图形控制器。通信适配器1241将***总线1202与网络1250互连,使得节点10能够与其他***、设备、数据和软件(诸如服务器1251和数据库1252)通信。在本发明的一个或多个实施例中,软件1208和数据1209的操作可以由服务器1251和数据库1252在网络1250上实现。例如,网络1250、服务器1251和数据库1252可以组合起来以提供软件1208和数据1209的内部迭代,作为平台即服务、软件即服务和/或基础设施即服务(例如,作为分布式***中的web应用)。
因此,如图12中所配置的软件1208和数据1209(例如,节点10)的操作必然以处理器1201和/或服务器1251的计算能力为根源,以克服和解决本文描述的传统虚拟机监控程序环境的缺点。就此而言,软件1208和数据1209通过防止导致额外处理周期的恶意虚拟机监控程序(从而提高节点10的效率)来改进节点10的处理器1201和/或服务器1251的计算操作。
本文描述的实施例必然以计算机技术为根源,并且具体地以托管VM的计算机服务器为根源。进一步,本发明的一个或多个实施例通过促进托管VM的计算机服务器托管安全VM来促进对计算技术本身(特别是托管VM的计算机服务器)的操作的改进,其中,即使虚拟机监控程序也被禁止访问与安全VM相关联的存储器、寄存器和其他这样的数据。此外,本发明的一个或多个实施例通过使用包括硬件、固件(例如,毫码)或其组合的安全接口控件(在此也被称为“UV”)为改进VM托管计算服务器而提供重要步骤,以促进安全VM和虚拟机监控程序的分离,并且因此维持由计算服务器托管的VM的安全性。安全接口控件提供轻量级中间操作以促进安全性,而不会对如本文所述的VM的初始化/退出期间保障VM状态安全添加大量开销。
在此公开的本发明的实施例可以包括利用程序中断导入/导出页的***、方法和/或计算机程序产品(在此为***)。注意,对于每个解释,将元件的标识符重复用于不同图的其他类似元件。
在此参考相关附图描述了本发明的不同实施例。在不脱离本发明的范围的情况下,可以设计本发明的替代实施例。在描述和附图中的元件之间阐述了各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明在这方面并示意图进行限制。因而,实体的耦合可以指直接或间接耦合,并且实体之间的位置关系可以是直接或间接位置关系。此外,本文所述的各种任务和过程步骤可并入到具有本文未详细描述的额外步骤或功能的更全面的程序或过程中。
以下定义和缩写用于解释权利要求书和说明书。如在此使用的,术语“包含”、“包括”、“含有”、“有”、“具有”、“存在”或其任何其他变体旨在覆盖非排他性的包含。例如,包含一系列元素的组合物、混合物、过程、方法、制品或设备不一定仅限于那些元素,而是可包括未明确列出的或此类组合物、混合物、过程、方法、制品或设备固有的其他元素。
另外,术语“示例性”在此用于意指“充当示例、实例或说明”。在此描述为“示范性”的任何实施例或设计不一定被解释为比其他实施例或设计优选或有利。术语“至少一个”和“一个或多个”可以被理解为包括大于或等于一(即,一、二、三、四等)的任何整数。术语“多个”可以被理解为包括大于或等于两个(即,两个、三个、四个、五个等)的任何整数。术语“连接”可以包括间接“连接”和直接“连接”两者。”
术语“约”、“基本上”、“大约”及其变体旨在包括与基于在提交本申请时可用的设备的具体量的测量相关联的误差程度。例如,“约”可以包括给定值的±8%或5%、或2%的范围。
本发明可以是任何可能的集成技术细节水平的***、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或介质),所述计算机可读程序指令用于致使处理器执行本发明的各方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片或具有记录在其上的指令的凹槽中的凸起结构),以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令并且转发这些计算机可读程序指令以便存储在对应的计算/处理设备内的计算机可读存储介质中。
用于执行本技术方案的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,集成电路的配置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过使用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的各方面。
在此参照根据技术方案的实施例的方法、装置(***)和计算机程序产品的流程图和/或框图来描述本技术方案的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中指定的功能和动作。
附图中的流程图和框图示出了根据本技术方案的不同实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的***来实现,所述基于专用硬件的***执行指定的功能或动作或执行专用硬件与计算机指令的组合。
在此使用的术语仅用于描述具体实施例的目的并且不旨在是限制性的。如在此使用的,单数形式“一个”、“一种”和“该”旨在也包括复数形式,除非上下文另外清楚地指示。将进一步理解的是,当在本说明书中使用术语“包括”和/或“包含”时,其指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。
出于说明和描述的目的已经给出了对一个或多个实施例的描述,但是并不旨在是详尽的或限于所公开的形式。许多修改和变化对本领域的普通技术人员将是明显的。实施例的选择和描述方式是为了最好地解释各个方面和实际应用,使得本领域普通技术人员能够理解具有适合于所预期的特定用途的不同修改的不同实施例。
Claims (24)
1.一种用于页导入/导出的程序中断的计算机实现的方法,包括:
当不可信实体访问存储在计算***的存储器中的安全页时,由计算***的硬件控件向不可信实体提交异常,该异常阻止不可信实体访问安全页;
响应于异常,由不可信实体发布导出调用例程,其中,该导出调用例程包括由该计算***的安全接口控件在分区安全表中将该安全页注册到该安全接口控件,其中,该分区安全表包括安全域标识符、安全接口控件位、禁用地址比较位、共享位和主机虚拟地址;和
由计算***的安全接口控件执行导出调用例程。
2.根据权利要求1所述的计算机实现的方法,其中,导出调用例程包括:
由安全接口控件对安全页进行加密。
3.根据权利要求2所述的计算机实现的方法,其中,导出调用例程包括:
在加密之前,由安全接口控件锁定安全页;和
在加密之后,由安全接口控件对安全页解锁。
4.根据权利要求2或3所述的计算机实现的方法,其中,导出调用例程包括:
在加密之前执行该注册。
5.根据权利要求2或3所述的计算机实现的方法,其中,导出调用例程包括:
由安全接口控件捕获安全页的加密内容的哈希。
6.根据权利要求2或3所述的计算机实现的方法,其中,导出调用例程包括:
在加密之后,由安全接口控件将主机绝对页标记为非安全。
7.根据权利要求2或3所述的计算机实现的方法,其中,导出调用例程包括:
在加密之后,由安全接口控件在分区安全表中将主机绝对页注册为非安全。
8.根据权利要求3所述的计算机实现的方法,进一步包括:
在锁定安全页之前,确定安全页是否被锁定;
响应于确定安全页被锁定,生成对不可信实体的忙指示符;和
等待一个延迟期。
9.根据上述权利要求2或3所述的计算机实现的方法,其中,安全接口控件包括固件、硬件或固件与硬件的组合;不可信实体包括虚拟机监控程序。
10.一种用于页导入/导出的程序中断的***,包括:
存储器,包含计算机可读指令;
处理设备,用于执行计算机可读指令,以执行包含以下的方法:
当不可信实体访问存储在计算***的存储器中的安全页时,由计算***的硬件控件向不可信实体提交异常,该异常阻止不可信实体访问安全页;
响应于异常,由不可信实体发布导出调用例程,其中,该导出调用例程包括由该计算***的安全接口控件在分区安全表中将该安全页注册到该安全接口控件,其中,该分区安全表包括安全域标识符、安全接口控件位、禁用地址比较位、共享位和主机虚拟地址;和
由计算***的安全接口控件执行导出调用例程。
11.根据权利要求10所述的***,其中,导出调用例程包括:
由安全接口控件对安全页进行加密。
12.根据权利要求11所述的***,其中,导出调用例程包括:
在加密之前,由安全接口控件锁定安全页;和
在加密之后,由安全接口控件对安全页解锁。
13.根据权利要求11或12所述的***,其中,导出调用例程包括:
在加密之前执行该注册。
14.根据权利要求11或12所述的***,其中,导出调用例程包括:
由安全接口控件捕获安全页的加密内容的哈希。
15.根据权利要求11或12所述的***,其中,导出调用例程包括:
在加密之后,由安全接口控件将主机绝对页标记为非安全。
16.根据权利要求11或12所述的***,其中,导出调用例程包括:
在加密之后,由安全接口控件在分区安全表中将主机绝对页注册为非安全。
17.根据权利要求12所述的***,所述方法进一步包括:
在锁定安全页之前,确定安全页是否被锁定;
响应于确定安全页被锁定,生成对不可信实体的忙指示符;和
等待一个延迟期。
18.根据权利要求11或12所述的***,其中,安全接口控件包括固件、硬件或固件与硬件的组合;不可信实体包括虚拟机监控程序。
19.一种计算机可读存储介质,包括:
程序指令,该程序指令可由处理设备执行,以使处理设备执行一种方法,该方法包括:
当不可信实体访问存储在计算***的存储器中的安全页时,由计算***的硬件控件向不可信实体提交异常,该异常阻止不可信实体访问安全页;
响应于异常,由不可信实体发布导出调用例程,其中,该导出调用例程包括由该计算***的安全接口控件在分区安全表中将该安全页注册到该安全接口控件,其中,该分区安全表包括安全域标识符、安全接口控件位、禁用地址比较位、共享位和主机虚拟地址;和
由计算***的安全接口控件执行导出调用例程。
20.一种用于页导入/导出的程序中断的计算机实现的方法,包括:
响应于安全实体访问已被计算***的不可信实体分页调入但尚不安全的页,由计算***的硬件控件向计算***的不可信实体提交异常,该异常阻止不可信实体访问该页;和
响应于异常,由不可信实体发布导入调用例程,其中,该导入调用例程包括由该计算***的安全接口控件在分区安全表中将该安全页注册到该安全接口控件,其中,该分区安全表包括安全域标识符、安全接口控件位、禁用地址比较位、共享位和主机虚拟地址;和
由计算***的安全接口控件执行导入调用例程。
21.根据权利要求20所述的计算机实现的方法,其中,导入调用例程包括:
由计算***的安全接口控件确定安全页是否是共享页。
22.根据权利要求21所述的计算机实现的方法,其中,导入调用例程进一步包括:
响应于确定安全页不是共享安全页,由安全接口控件将安全页标记为安全。
23.根据权利要求21或22所述的计算机实现的方法,其中,导入调用例程进一步包括:
由安全接口控件解密安全页。
24.一种计算机可读存储介质,包括:
程序指令,该程序指令可由处理设备执行,以使处理设备执行一种方法,该方法包括:
响应于安全实体访问已被计算***的不可信实体分页调入但尚不安全的页,由计算***的硬件控件向计算***的不可信实体提交异常,该异常阻止不可信实体访问该页;和
响应于异常,由不可信实体发布导入调用例程,其中,该导入调用例程包括由该计算***的安全接口控件在分区安全表中将该安全页注册到该安全接口控件,其中,该分区安全表包括安全域标识符、安全接口控件位、禁用地址比较位、共享位和主机虚拟地址;和
由计算***的安全接口控件执行导入调用例程。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/296,352 | 2019-03-08 | ||
US16/296,352 US11403409B2 (en) | 2019-03-08 | 2019-03-08 | Program interruptions for page importing/exporting |
PCT/IB2020/051943 WO2020183310A1 (en) | 2019-03-08 | 2020-03-06 | Program interruptions for page importing/exporting |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113544680A CN113544680A (zh) | 2021-10-22 |
CN113544680B true CN113544680B (zh) | 2023-03-28 |
Family
ID=72335284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080019499.4A Active CN113544680B (zh) | 2019-03-08 | 2020-03-06 | 用于页导入/导出的程序中断 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11403409B2 (zh) |
JP (1) | JP7461694B2 (zh) |
CN (1) | CN113544680B (zh) |
DE (1) | DE112020000285T5 (zh) |
GB (1) | GB2596012B (zh) |
WO (1) | WO2020183310A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11347529B2 (en) | 2019-03-08 | 2022-05-31 | International Business Machines Corporation | Inject interrupts and exceptions into secure virtual machine |
US11206128B2 (en) | 2019-03-08 | 2021-12-21 | International Business Machines Corporation | Secure paging with page change detection |
US11308215B2 (en) * | 2019-03-08 | 2022-04-19 | International Business Machines Corporation | Secure interface control high-level instruction interception for interruption enablement |
US11347869B2 (en) | 2019-03-08 | 2022-05-31 | International Business Machines Corporation | Secure interface control high-level page management |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520753A (zh) * | 2008-02-29 | 2009-09-02 | Arm有限公司 | 数据处理设备和控制虚拟机对安全存储器的访问的方法 |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4456954A (en) | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
US5343527A (en) | 1993-10-27 | 1994-08-30 | International Business Machines Corporation | Hybrid encryption method and system for protecting reusable software components |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US6021201A (en) | 1997-01-07 | 2000-02-01 | Intel Corporation | Method and apparatus for integrated ciphering and hashing |
US6983365B1 (en) | 2000-05-05 | 2006-01-03 | Microsoft Corporation | Encryption systems and methods for identifying and coalescing identical objects encrypted with different keys |
US20020049878A1 (en) | 2000-10-23 | 2002-04-25 | Giora Biran | Data communications interfaces |
US6996748B2 (en) * | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
US7725559B2 (en) | 2003-10-08 | 2010-05-25 | Unisys Corporation | Virtual data center that allocates and manages system resources across multiple nodes |
EP1870814B1 (en) | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US7653819B2 (en) | 2004-10-01 | 2010-01-26 | Lenovo Singapore Pte Ltd. | Scalable paging of platform configuration registers |
US7886363B2 (en) * | 2006-05-24 | 2011-02-08 | Noam Camiel | System and method for virtual memory and securing memory in programming languages |
EP1870813B1 (en) | 2006-06-19 | 2013-01-30 | Texas Instruments France | Page processing circuits, devices, methods and systems for secure demand paging and other operations |
US20080077767A1 (en) | 2006-09-27 | 2008-03-27 | Khosravi Hormuzd M | Method and apparatus for secure page swapping in virtual memory systems |
US8555081B2 (en) * | 2007-10-30 | 2013-10-08 | Vmware, Inc. | Cryptographic multi-shadowing with integrity verification |
US8176280B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
JP4769308B2 (ja) | 2009-01-20 | 2011-09-07 | 株式会社東芝 | 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法 |
US8833437B2 (en) | 2009-05-06 | 2014-09-16 | Holtec International, Inc. | Heat exchanger apparatus for converting a shell-side liquid into a vapor |
US8627456B2 (en) * | 2009-12-14 | 2014-01-07 | Citrix Systems, Inc. | Methods and systems for preventing access to display graphics generated by a trusted virtual machine |
US8904190B2 (en) | 2010-10-20 | 2014-12-02 | Advanced Micro Devices, Inc. | Method and apparatus including architecture for protecting sensitive code and data |
US20120185699A1 (en) | 2011-01-14 | 2012-07-19 | International Business Machines Corporation | Space-efficient encryption with multi-block binding |
US9391772B2 (en) | 2011-06-02 | 2016-07-12 | Mitsubishi Electric Corporation | Key information generation device and key information generation method |
KR101323858B1 (ko) * | 2011-06-22 | 2013-11-21 | 한국과학기술원 | 가상화 시스템에서 메모리 접근을 제어하는 장치 및 방법 |
US8984478B2 (en) * | 2011-10-03 | 2015-03-17 | Cisco Technology, Inc. | Reorganization of virtualized computer programs |
US8681813B2 (en) | 2011-11-29 | 2014-03-25 | Wyse Technology L.L.C. | Bandwidth optimization for remote desktop protocol |
WO2014004747A2 (en) | 2012-06-26 | 2014-01-03 | Lynuxworks, Inc. | Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features |
US8910238B2 (en) | 2012-11-13 | 2014-12-09 | Bitdefender IPR Management Ltd. | Hypervisor-based enterprise endpoint protection |
WO2014081611A2 (en) | 2012-11-20 | 2014-05-30 | Unisys Corporation | Error recovery in securely partitioned virtualization system with dedicated resources |
US8931108B2 (en) | 2013-02-18 | 2015-01-06 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
GB2515536A (en) | 2013-06-27 | 2014-12-31 | Ibm | Processing a guest event in a hypervisor-controlled system |
US9792448B2 (en) | 2014-02-28 | 2017-10-17 | Advanced Micro Devices, Inc. | Cryptographic protection of information in a processing system |
US9483639B2 (en) | 2014-03-13 | 2016-11-01 | Unisys Corporation | Service partition virtualization system and method having a secure application |
WO2015176029A1 (en) | 2014-05-15 | 2015-11-19 | Lynx Software Technologies, Inc. | Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features |
US9251090B1 (en) | 2014-06-03 | 2016-02-02 | Amazon Technologies, Inc. | Hypervisor assisted virtual memory obfuscation |
US9454497B2 (en) | 2014-08-15 | 2016-09-27 | Intel Corporation | Technologies for secure inter-virtual-machine shared memory communication |
US9672354B2 (en) | 2014-08-18 | 2017-06-06 | Bitdefender IPR Management Ltd. | Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine |
US9305661B2 (en) * | 2014-09-03 | 2016-04-05 | Microsemi Storage Solutions (U.S.), Inc. | Nonvolatile memory system that uses programming time to reduce bit errors |
CN105512559B (zh) | 2014-10-17 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 一种用于提供访问页面的方法与设备 |
GB2532415A (en) | 2014-11-11 | 2016-05-25 | Ibm | Processing a guest event in a hypervisor-controlled system |
JP6580138B2 (ja) | 2014-12-15 | 2019-09-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | セキュア・オブジェクトをサポートするプロセッサ、方法およびコンピュータ・プログラム |
US10599458B2 (en) | 2015-01-23 | 2020-03-24 | Unisys Corporation | Fabric computing system having an embedded software defined network |
US10157146B2 (en) | 2015-02-12 | 2018-12-18 | Red Hat Israel, Ltd. | Local access DMA with shared memory pool |
US9842065B2 (en) | 2015-06-15 | 2017-12-12 | Intel Corporation | Virtualization-based platform protection technology |
US9720721B2 (en) | 2015-07-01 | 2017-08-01 | International Business Machines Corporation | Protected guests in a hypervisor controlled system |
US9734088B2 (en) | 2015-08-12 | 2017-08-15 | International Business Machines Corporation | Memory management unit and method for accessing data |
US9942035B2 (en) | 2015-08-18 | 2018-04-10 | Intel Corporation | Platform migration of secure enclaves |
US10742603B2 (en) | 2015-08-26 | 2020-08-11 | B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University | System and method for monitoring and protecting an untrusted operating system by means of a trusted operating system |
US9841987B2 (en) | 2015-12-17 | 2017-12-12 | International Business Machines Corporation | Transparent secure interception handling |
US20170277898A1 (en) | 2016-03-25 | 2017-09-28 | Advanced Micro Devices, Inc. | Key management for secure memory address spaces |
US10116630B2 (en) | 2016-04-04 | 2018-10-30 | Bitdefender IPR Management Ltd. | Systems and methods for decrypting network traffic in a virtualized environment |
WO2017211651A1 (en) | 2016-06-08 | 2017-12-14 | Thomson Licensing | Devices and methods for core dump deduplication |
US10671542B2 (en) | 2016-07-01 | 2020-06-02 | Intel Corporation | Application execution enclave memory method and apparatus |
US10237245B2 (en) | 2016-07-15 | 2019-03-19 | International Business Machines Corporation | Restricting guest instances in a shared environment |
US10303899B2 (en) | 2016-08-11 | 2019-05-28 | Intel Corporation | Secure public cloud with protected guest-verified host control |
US10176122B2 (en) | 2016-10-19 | 2019-01-08 | Advanced Micro Devices, Inc. | Direct memory access authorization in a processing system |
US10169577B1 (en) | 2017-03-28 | 2019-01-01 | Symantec Corporation | Systems and methods for detecting modification attacks on shared physical memory |
KR102257320B1 (ko) | 2017-03-29 | 2021-05-27 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 하이퍼바이저 및 가상 머신 간 메모리 페이지 이행의 모니터링 |
US20180341529A1 (en) | 2017-05-26 | 2018-11-29 | Microsoft Technology Licensing, Llc | Hypervisor-based secure container |
GB2563883B (en) | 2017-06-28 | 2019-10-09 | Advanced Risc Mach Ltd | Invalidation of a target realm in a realm hierarchy |
US10693844B2 (en) * | 2017-08-24 | 2020-06-23 | Red Hat, Inc. | Efficient migration for encrypted virtual machines by active page copying |
-
2019
- 2019-03-08 US US16/296,352 patent/US11403409B2/en active Active
-
2020
- 2020-03-06 DE DE112020000285.3T patent/DE112020000285T5/de active Pending
- 2020-03-06 CN CN202080019499.4A patent/CN113544680B/zh active Active
- 2020-03-06 WO PCT/IB2020/051943 patent/WO2020183310A1/en active Application Filing
- 2020-03-06 GB GB2113069.5A patent/GB2596012B/en active Active
- 2020-03-06 JP JP2021549802A patent/JP7461694B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520753A (zh) * | 2008-02-29 | 2009-09-02 | Arm有限公司 | 数据处理设备和控制虚拟机对安全存储器的访问的方法 |
US8418175B2 (en) * | 2008-02-29 | 2013-04-09 | Arm Limited | Data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuirty |
Also Published As
Publication number | Publication date |
---|---|
JP2022522339A (ja) | 2022-04-18 |
GB2596012A (en) | 2021-12-15 |
DE112020000285T5 (de) | 2021-10-14 |
JP7461694B2 (ja) | 2024-04-04 |
US20200285762A1 (en) | 2020-09-10 |
WO2020183310A1 (en) | 2020-09-17 |
US11403409B2 (en) | 2022-08-02 |
GB202113069D0 (en) | 2021-10-27 |
GB2596012B (en) | 2023-01-11 |
CN113544680A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113544680B (zh) | 用于页导入/导出的程序中断 | |
CN113544655B (zh) | 安全接口控件安全存储硬件标记 | |
CN113544642B (zh) | 安全存储查询和捐献 | |
JP7379512B2 (ja) | セキュア・ドメインと非セキュア・エンティティとの間のストレージ共用 | |
KR102551936B1 (ko) | 보안 인터페이스 컨트롤 스토리지를 위한 호스트 가상 주소 공간 | |
JP7350868B2 (ja) | 複数のセキュリティ・ドメインにわたるセキュア・メモリの共用 | |
US11182192B2 (en) | Controlling access to secure storage of a virtual machine | |
JP2022523787A (ja) | セキュア仮想マシン環境におけるストレージ保護ハードウェアのテスト方法、システム、プログラム | |
JP7436495B2 (ja) | セキュア・ストレージの分離 | |
JP7410161B2 (ja) | ページ変更検出によるセキュアなページング | |
JP7393846B2 (ja) | セキュア・インターフェイス制御の高レベルのページ管理 | |
CN113544664B (zh) | 用于中断使能的安全接口控件高级指令拦截 | |
JP2022522679A (ja) | セキュア・インターフェース・コントロールの通信インターフェース |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |