HK40057635B - Starting a secure guest using an initial program load mechanism - Google Patents
Starting a secure guest using an initial program load mechanismInfo
- Publication number
- HK40057635B HK40057635B HK62022045914.8A HK62022045914A HK40057635B HK 40057635 B HK40057635 B HK 40057635B HK 62022045914 A HK62022045914 A HK 62022045914A HK 40057635 B HK40057635 B HK 40057635B
- Authority
- HK
- Hong Kong
- Prior art keywords
- restart
- hypervisor
- host server
- management program
- computer
- Prior art date
Links
Description
背景技术Background Technology
本发明一般涉及计算机技术,尤其涉及使用初始程序加载(IPL)机制来启动安全客户机。This invention generally relates to computer technology, and more particularly to using the Initial Program Loading (IPL) mechanism to launch a secure client.
云计算和存储向用户提供在第三方数据中心中存储和处理他们的数据的能力。云计算促进了快速且容易地为客户供应虚拟机(VM)而无需客户购买硬件或为物理服务器提供占地面积的能力。客户可以根据客户的变化的偏好或要求来扩展或收缩VM。通常,云计算提供商供应物理上驻留在提供商的数据中心处的服务器上的VM。客户通常关心VM中的数据的安全性,特别是因为计算提供商通常在同一服务器上存储一个以上客户的数据。客户可能期望其代码/数据与云计算提供商之间的安全性,以及其代码/数据与在提供商的位置处运行的其他VM的代码/数据之间的安全性。此外,客户可能期望来自提供商的管理员的安全性,以及抵御在机器上运行的其它代码中的潜在安全性破坏。Cloud computing and storage provide users with the ability to store and process their data in third-party data centers. Cloud computing facilitates the ability to quickly and easily provision virtual machines (VMs) to customers without requiring them to purchase hardware or provide floor space for physical servers. Customers can scale VMs up or down based on their changing preferences or requirements. Typically, cloud providers provision VMs on servers that physically reside in the provider's data center. Customers are often concerned about the security of the data within VMs, especially since computing providers often store data from more than one customer on the same server. Customers may expect security between their code/data and the cloud provider, as well as between their code/data and the code/data of other VMs running at the provider's location. Furthermore, customers may expect security from the provider's administrators, and protection against potential security breaches in other code running on the machine.
为了处理这种敏感情形,云服务提供商可以实现安全控制以确保适当的数据隔离和逻辑存储分离。在实现云基础设施中广泛使用虚拟化导致了对云服务的客户的独特安全问题,因为虚拟化改变了操作系统(OS)与底层硬件(无论是计算、存储还是甚至联网)之间的关系。这引入了虚拟化作为附加层,其本身必须被正确地配置、管理和保护。To address this sensitive situation, cloud service providers can implement security controls to ensure proper data isolation and logical storage separation. The widespread use of virtualization in cloud infrastructure presents unique security challenges for customers of cloud services because virtualization alters the relationship between the operating system (OS) and the underlying hardware—whether computing, storage, or even networking. This introduces virtualization as an additional layer that itself must be properly configured, managed, and protected.
发明内容Summary of the Invention
根据本发明的一个或多个实施例,非限制性示例方法包括由在主机服务器上执行的管理程序接收在主机服务器上分派虚拟机(VM)的请求。VM由管理程序分派在主机服务器上。VM包括重启指令。所述重启指令由所述管理程序触发以在安全模式中重启所述VM。一个或多个实施例的技术效果和益处可以包括使用由非安全VM执行的重启指令来启动安全VM的能力。According to one or more embodiments of the present invention, a non-limiting example method includes receiving a request to dispatch a virtual machine (VM) on the host server by a hypervisor executing on the host server. The VM is dispatched on the host server by the hypervisor. The VM includes a restart instruction. The restart instruction is triggered by the hypervisor to restart the VM in a safe mode. The technical effects and benefits of one or more embodiments may include the ability to start a secure VM using a restart instruction executed by a non-secure VM.
根据本发明的附加或替换实施例,重启指令利用初始程序加载(IPL)机制。技术效果和益处可以包括使用标准IPL机制来启动安全VM的能力。According to an additional or alternative embodiment of the invention, the restart instruction utilizes the Initial Program Load (IPL) mechanism. Technical effects and benefits may include the ability to boot a secure VM using a standard IPL mechanism.
根据本发明的附加或替代实施例,所述分派包括将VM的已加密镜像加载到主机服务器的存储器中,以及将包括重启指令的未加密引导程序组件加载到存储器中。技术效果和益处可以包括管理程序在非安全模式下启动VM而无需首先解密VM的镜像的能力。According to an additional or alternative embodiment of the invention, the dispatch includes loading an encrypted image of the VM into the host server's memory, and loading an unencrypted bootloader component including restart instructions into the memory. Technical effects and benefits may include the ability of the hypervisor to start the VM in insecure mode without first decrypting the VM image.
根据本发明的附加或替代实施例,所述分派还包括将控制转移到所述未加密引导程序组件。技术效果和益处可以包括管理程序在非安全模式下启动VM而无需首先解密VM的镜像并且然后将控制转移到引导程序组件以便在安全模式下重启VM的能力。According to an additional or alternative embodiment of the invention, the dispatch also includes transferring control to the unencrypted bootloader component. Technical effects and benefits may include the ability of a hypervisor to start the VM in insecure mode without first decrypting the VM image and then transferring control to the bootloader component to restart the VM in secure mode.
根据本发明的附加或替代实施例,在分派之后VM包括已加密组件。技术效果和益处可以包括管理程序在非安全模式下启动VM而无需首先解密VM的镜像的能力。According to additional or alternative embodiments of the invention, the VM includes encrypted components after dispatch. Technical effects and benefits may include the ability of the hypervisor to start the VM in insecure mode without first decrypting the VM image.
根据本发明的附加或替代实施例,重启包括解密VM的已加密组件。技术效果和益处可以包括作为重启过程的一部分对加密的VM镜像进行解密。According to an additional or alternative embodiment of the invention, rebooting includes decrypting the encrypted components of the VM. Technical effects and benefits may include decrypting the encrypted VM image as part of the rebooting process.
根据本发明的附加或替代实施例,由管理程序分派的VM处于非安全模式,并且VM的数据可由管理程序访问。技术效果和益处可以包括管理程序在非安全模式下启动VM而无需首先解密VM的镜像的能力。According to an additional or alternative embodiment of the invention, the VM assigned by the hypervisor is in an insecure mode, and the VM's data is accessible to the hypervisor. Technical effects and benefits may include the ability of the hypervisor to start the VM in an insecure mode without first decrypting the VM's image.
根据本发明的附加或替代实施例,基于所述VM处于所述安全模式的确定,阻止所述管理程序访问所述VM的任何数据。技术效果和益处可以包括提供安全VM环境的能力。According to additional or alternative embodiments of the invention, based on the determination that the VM is in the secure mode, the hypervisor is prevented from accessing any data of the VM. Technical effects and benefits may include the ability to provide a secure VM environment.
根据本发明的附加或替代实施例,主机服务器上的VM包括VM的已加密镜像。此外,触发重启指令包括管理程序调用安全接口控件以在安全模式下执行重启,管理程序指定VM的已加密镜像在主机服务器上的位置以及解密信息。According to an additional or alternative embodiment of the invention, the VM on the host server includes an encrypted image of the VM. Furthermore, triggering the restart instruction includes the hypervisor invoking a security interface control to perform a restart in secure mode, the hypervisor specifying the location of the encrypted image of the VM on the host server and decryption information.
根据本发明的附加或替代实施例,执行重启包括由安全接口控件基于解密信息对VM进行解密。它还包括基于已解密的VM来重启所述VM,其中在所述重启之后,阻止所述管理程序访问所述VM的任何数据。According to an additional or alternative embodiment of the invention, performing a restart includes decrypting the VM by a security interface control based on decryption information. It also includes restarting the VM based on the decrypted VM, wherein after the restart, the hypervisor is prevented from accessing any data of the VM.
本发明的其它实施例在计算机系统和计算机程序产品中实现上述方法的特征。Other embodiments of the present invention implement the features of the above-described method in computer systems and computer program products.
通过本发明的技术实现额外特征及优点。本发明的其它实施例和方面在这里详细描述,并且被认为是本发明的一部分。为了更好地理解本发明的优点和特征,请参考说明书和附图。Additional features and advantages are achieved through the technology of this invention. Other embodiments and aspects of the invention are described in detail herein and are considered part of this invention. For a better understanding of the advantages and features of the invention, please refer to the specification and accompanying drawings.
附图说明Attached Figure Description
在说明书的结尾处的权利要求中特别指出并清楚地要求了本文描述的专有权的细节。从下面结合附图的详细描述中,本发明的实施例的前述和其它特征和优点将变得显而易见,其中:The proprietary details described herein are specifically pointed out and clearly claimed in the claims at the end of the specification. The foregoing and other features and advantages of embodiments of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings, wherein:
图1描绘了根据本发明的一个或多个实施例的用于使用初始程序加载(IPL)机制来启动客户机的系统的示意图;Figure 1 illustrates a schematic diagram of a system for starting a client using an Initial Program Loading (IPL) mechanism according to one or more embodiments of the present invention;
图2描绘了根据本发明的一个或多个实施例的用于使用初始程序加载(IPL)机制来启动安全客户机的过程的流程图;Figure 2 depicts a flowchart of a process for launching a secure client using an Initial Program Loading (IPL) mechanism according to one or more embodiments of the present invention;
图3描绘了根据本发明的一个或多个实施例的包括被加载在主机服务器上的安全客户机的系统的示意图;Figure 3 illustrates a schematic diagram of a system including a secure client loaded on a host server according to one or more embodiments of the present invention;
图4描绘了根据本发明的一个或多个实施例的用于启动安全客户机的IPL信息块;Figure 4 depicts an IPL information block for launching a secure client according to one or more embodiments of the present invention;
图5描绘了根据本发明的一个或多个实施例的用于启动安全客户机的处理流程;Figure 5 illustrates a process flow for launching a secure client according to one or more embodiments of the present invention;
图6描绘了根据本发明的一个或多个实施例的云计算环境;Figure 6 depicts a cloud computing environment according to one or more embodiments of the present invention;
图7描绘了根据本发明的一个或多个实施例的抽象模型层;Figure 7 depicts an abstract model layer according to one or more embodiments of the present invention;
图8描绘了根据本发明的一个或多个实施例的系统;以及Figure 8 depicts a system according to one or more embodiments of the present invention; and
图9描绘了根据本发明的一个或多个实施例的处理系统。Figure 9 depicts a processing system according to one or more embodiments of the present invention.
这里描述的图是说明性的。在不脱离本发明的精神的情况下,可以对其中描述的图或操作进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦接”及其变型描述了在两个元件之间具有通信路径,并且不暗示元件之间的直接连接,而在它们之间没有中间元件/连接。所有这些变型都被认为是说明书的一部分。The figures described herein are illustrative. Many variations may be made to the figures or operations described herein without departing from the spirit of the invention. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. Furthermore, the term "coupled" and its variations describe a communication path between two elements and do not imply a direct connection between the elements without any intermediate elements/connections between them. All such variations are considered part of the specification.
具体实施方式Detailed Implementation
根据本发明的一个或多个实施例,提供了一种新的初始程序加载(IPL)机制,以允许在主机服务器上执行的客户机或虚拟机(VM)请求转移到安全模式。当处于安全模式时,管理程序不能访问VM的数据。根据本发明的一个或多个实施例,当VM在安全模式中执行时,在硬件和/或固件中实现的安全接口控件被用于提供在安全客户机和在主机服务器上执行的其它客户机之间的隔离。According to one or more embodiments of the present invention, a novel Initial Program Loading (IPL) mechanism is provided to allow a client or virtual machine (VM) executing on a host server to request transition to a safe mode. When in safe mode, the hypervisor cannot access the VM's data. According to one or more embodiments of the present invention, when the VM is executing in safe mode, security interface controls implemented in hardware and/or firmware are used to provide isolation between the secure client and other clients executing on the host server.
根据本发明的一个或多个实施例,VM的已加密镜像与未加密引导程序组件一起被加载到主机服务器的VM存储器中。引导程序组件可以访问关于VM的已加密镜像的所有存储器页的信息以及元数据结构,以在解密镜像时使用和在安全模式下(即,作为安全客户机)重启VM。根据本发明的一个或多个实施例,元数据结构还包括可以使用的操作系统镜像的连续区域的列表。如本领域所公知的,代替单独列出操作系统的所有存储器页,每个包括起始页和页数的区域列表可以节省空间并加速处理。例如,如果假设的操作系统镜像驻留在页0、1、2、3、6和7中,则这可被指定为(0,4)和(6,2)。According to one or more embodiments of the present invention, an encrypted image of a virtual machine (VM) is loaded into the VM storage of a host server along with an unencrypted bootloader component. The bootloader component can access information about all storage pages of the encrypted image of the VM, as well as the metadata structure, for use when decrypting the image and for restarting the VM in secure mode (i.e., as a secure client). According to one or more embodiments of the present invention, the metadata structure also includes a list of contiguous regions of the operating system image that can be used. As is known in the art, instead of listing all storage pages of the operating system separately, a list of regions including the starting page and page number can save space and speed up processing. For example, if the assumed operating system image resides in pages 0, 1, 2, 3, 6, and 7, this can be specified as (0, 4) and (6, 2).
根据本发明的一个或多个实施例,引导程序组件通过准备新格式的IPL信息块来触发重启或重启操作;使用例如“诊断308子码5”设置IPL信息块;以及使用例如“诊断308子码3”或新码来执行IPL。IPL信息块可以包括:具有镜像密钥和完整性值的安全执行(SE)头;需要被解密的存储器区域的列表;以及初始化向量(IV),其已经用于已加密镜像的所有页。在传统环境中,IPL信息块包含引导源的标识,其可以是盘设备地址、类似CDROM的命名等。对于由本发明的一个或多个实施例实现的安全环境,引导源标识信息包括加密密钥和需要被解密的存储器区域。根据所使用的加密方法,本发明的一个或多个实施例实现IV以增加加密的随机性。可为所述存储器区域中的每一者提供唯一的IV。利用IV的这种类型的加密方法可以用于提高加密的质量。例如,如果两个相同的存储器页用相同的秘密密钥但用不同的IV加密,则加密的内容将是不同的,这使得对手不可能知道内容是相同的。According to one or more embodiments of the present invention, the bootloader component triggers a reboot or restart operation by preparing a new formatted IPL information block; sets the IPL information block using, for example, "Diagnostic 308 Subcode 5"; and executes the IPL using, for example, "Diagnostic 308 Subcode 3" or a new code. The IPL information block may include: a Secure Execution (SE) header with an image key and integrity value; a list of memory regions to be decrypted; and an Initialization Vector (IV) that has been used for all pages of the encrypted image. In conventional environments, the IPL information block contains an identifier of the boot source, which may be a disk device address, a CD-ROM-like name, etc. For a secure environment implemented by one or more embodiments of the present invention, the boot source identification information includes an encryption key and the memory regions to be decrypted. Depending on the encryption method used, one or more embodiments of the present invention implement an IV to increase the randomness of the encryption. A unique IV may be provided for each of the memory regions. This type of encryption method utilizing IVs can be used to improve the quality of encryption. For example, if two identical memory pages are encrypted with the same secret key but with different IVs, the encrypted contents will be different, making it impossible for an adversary to know that the contents are the same.
“诊断”是允许客户操作系统与管理程序交互的指令的示例。诊断指令由IBM z使用,而诊断308专门用于程序引导的IPL(允许客户机请求重启)操作。子代码5用于设置IPL参数(例如要使用的启动设备),而子代码3用于触发从子代码5先前指定的启动设备的重启。请求来自操作系统内的重启的机制是依赖于体系结构的。在一些x86机器上,可以使用商业上可获得的软件工具来改变启动设备。"Diagnostics" is an example of instructions that allow the guest operating system to interact with the hypervisor. Diagnostic instructions are used by IBM z, and Diagnostics 308 is specifically designed for the IPL (Initial Boot Processor) operation during program boot. Subcode 5 is used to set IPL parameters (such as the boot device to use), while subcode 3 is used to trigger a reboot from the boot device previously specified by subcode 5. The mechanism for requesting a reboot from within the operating system is architecture-dependent. On some x86 machines, commercially available software tools can be used to change the boot device.
根据本发明的一个或多个实施例,管理程序使用来自IPL信息块的信息,包括调用安全接口控件(这里也被称为“超级监视器”)的SE头,以创建安全客户机配置,并执行对已加密的VM镜像的解包或解密。如果解包成功,则被解包的VM获得控制,以安全模式执行。如果解包失败,则VM进入非安全模式下的禁用等待状态。According to one or more embodiments of the present invention, the hypervisor uses information from the IPL information block, including the SE header of the security interface control (also referred to herein as the "super monitor"), to create a secure client configuration and perform unpacking or decryption of the encrypted VM image. If unpacking is successful, the unpacked VM gains control and executes in secure mode. If unpacking fails, the VM enters a disabled wait state in insecure mode.
在主机管理程序的控制下作为客户机运行的VM依赖于该管理程序为该客户机透明地提供虚拟化服务。这些服务可以应用于安全实体和另一个非受信实体之间的任何接口,该接口传统上允许该另一个实体访问安全资源。这些服务可以包括但不限于存储器管理、指令仿真和中断处理。例如,对于中断和异常注入,管理程序通常读取和/或写入客户机的前缀区域(低核)。如本文所使用的术语“虚拟机”或“VM”指的是物理机(计算设备、处理器等)及其处理环境(操作系统(OS)、软件资源等)的逻辑表示。VM作为在底层主机(物理处理器或处理器组)上执行的软件来被维护。从用户或软件资源的角度来看,VM看起来是它自己的独立物理机器。这里使用的术语“管理程序”和“VM监视器(VMM)”是指管理和允许多个VM在同一主机上使用多个(有时是不同的)OS来执行的处理环境或平台服务。应当理解,部署VM包括:VM的安装过程和VM的激活(或启动)过程。在另一个示例中,部署VM包括:VM的激活(或启动)过程(例如,在VM被事先安装或已经存在的情况下)。A VM running as a guest under the control of a hypervisor relies on that hypervisor to transparently provide virtualization services to the guest. These services can be applied to any interface between a secure entity and another untrusted entity that traditionally allows that other entity to access secure resources. These services can include, but are not limited to, memory management, instruction emulation, and interrupt handling. For example, for interrupt and exception injection, the hypervisor typically reads and/or writes to the guest's prefix region (low core). As used herein, the term "virtual machine" or "VM" refers to the logical representation of a physical machine (computing device, processor, etc.) and its processing environment (operating system (OS), software resources, etc.). A VM is maintained as software executing on the underlying host (physical processor or processor group). From the perspective of a user or software resource, a VM appears as its own independent physical machine. The terms "hypervisor" and "VM monitor (VMM)" as used herein refer to the processing environment or platform services that manage and allow multiple VMs to run on the same host using multiple (sometimes different) OSes. It should be understood that deploying a VM includes both the VM installation process and the VM activation (or startup) process. In another example, deploying a VM includes the activation (or startup) process of the VM (e.g., if the VM has been pre-installed or already exists).
然而,为了促进安全客户机,在管理程序和安全客户机之间需要附加的安全性的情况下存在技术挑战,使得管理程序不能从VM访问数据,并且因此不能提供诸如上述那些的服务。However, in order to facilitate secure clients, there are technical challenges in situations where additional security is required between the hypervisor and the secure client, preventing the hypervisor from accessing data from the VM and thus preventing the provision of services such as those mentioned above.
在当前可用的技术方案中,管理程序(例如,由或基于开源软件内核的虚拟机(KVM))通过发出开始解释执行(SIE)指令来启动物理处理单元或主机服务器上的新VM。VM的状态的一部分及其特征被保存在SIE指令的操作数(通常是第二操作数)所指向的控制块(作为状态描述或“SD”)中。在这种情况下,管理程序具有对VM的数据的控制,并且在一些情况下,需要这种控制来解释在VM上执行的指令。现有的管理程序依赖于通过SIE指令使用这样的接口来启动VM。In currently available technologies, a hypervisor (e.g., a virtual machine (KVM) powered by or based on an open-source software kernel) starts a new VM on a physical processing unit or host server by issuing a Start Interpreted Execution (SIE) instruction. A portion of the VM's state and its characteristics are stored in a control block (as a state description or "SD") pointed to by the operand (typically the second operand) of the SIE instruction. In this case, the hypervisor has control over the VM's data, and in some cases, this control is required to interpret the instructions executed on the VM. Existing hypervisors rely on using such an interface via SIE instructions to start VMs.
本文描述的安全执行提供了一种硬件机制,以保证安全存储装置和非安全存储装置之间以及属于不同安全用户的安全存储装置之间的隔离。对于安全客户机,提供在“非受信”管理程序和安全客户机之间的附加安全性。为了这样做,管理程序通常代表客户机所做的许多功能需要被结合到机器中。安全接口控件提供管理程序和安全客户机之间的安全接口。安全接口控件与硬件合作工作以提供这种附加的安全性。这里使用的术语超级监视器(UV)指的是可以由本发明的一个或多个实施例实现的安全接口控件的一个例子。The secure execution described herein provides a hardware mechanism to ensure isolation between secure and insecure storage devices, as well as between secure storage devices belonging to different secure users. For the secure client, additional security is provided between the "untrusted" hypervisor and the secure client. To do this, many functions that the hypervisor typically performs on behalf of the client need to be integrated into the machine. A secure interface control provides a secure interface between the hypervisor and the secure client. The secure interface control works in conjunction with the hardware to provide this additional security. The term Super Monitor (UV) used herein refers to an example of a secure interface control that can be implemented by one or more embodiments of the present invention.
在一个示例中,安全接口控件在内部、安全和受信的硬件和/或固件中实现。对于安全客户机或实体,安全接口控件提供安全环境的初始化和维护以及这些安全实体在硬件上的分派的协调。当安全客户机正在活动地使用数据并且它驻留在主机存储装置中时,它被“不受阻碍地”保持在安全存储中。安全存储装置可以由该单个安全客户机访问,这由硬件严格执行。也就是说,安全接口控件阻止任何非安全实体(包括管理程序或其它非安全客户机)或不同的安全客户访问该数据。在该示例中,安全接口控件作为最低级别的固件的受信部分运行。最低级别或毫码(millicode)实际上是硬件的扩展,并且用于实现z/体系结构中定义的复杂指令和功能。毫码可以访问存储装置的所有部分,该存储装置在安全执行的上下文中包括其自己的安全UV存储装置、非安全管理程序存储装置、安全客户机存储装置和共享存储装置。这允许它提供安全客户机或支持该客户机的管理程序所需的任何功能。安全接口控件还具有对硬件的直接访问,这允许硬件在由安全接口控件建立的条件的控制下有效地提供安全检查。In one example, the security interface control is implemented internally in secure and trusted hardware and/or firmware. For secure clients or entities, the security interface control provides the initialization and maintenance of the secure environment and the coordination of the distribution of these secure entities on the hardware. When a secure client is actively using data and it resides in the host storage device, it is held "unhindered" in secure storage. The secure storage device can be accessed by that single secure client, which is strictly enforced by the hardware. That is, the security interface control prevents any non-secure entity (including hypervisors or other non-secure clients) or different secure clients from accessing the data. In this example, the security interface control operates as a trusted part of the lowest-level firmware. The lowest level, or millicode, is essentially an extension of the hardware and is used to implement the complex instructions and functions defined in the z/ architecture. Millicode can access all parts of the storage device, which, in the context of secure execution, includes its own secure UV storage device, non-secure hypervisor storage device, secure client storage device, and shared storage device. This allows it to provide any functionality required by the secure client or the hypervisor supporting that client. The security interface control also has direct access to the hardware, which allows the hardware to effectively provide security checks under the control of conditions established by the security interface control.
本发明的一个或多个实施例提供了对利用已加密的VM镜像的现有系统的技术改进。现有的系统在主机机器上启动VM之前对已加密的VM镜像进行解密。这种方法的缺点在于,在管理程序中需要专用计算机指令来确定VM镜像是否被加密,并且在主机上分派或启动VM之前执行解密。本发明的一个或多个实施例不需要更新管理程序分派代码,或者不需要管理程序在VM在主机机器上启动之前知道VM镜像被加密。此外,管理程序可以被用于启动安全VM,即使在安全VM被启动之后,管理程序不能访问安全VM的任何数据。One or more embodiments of the present invention provide a technical improvement over existing systems that utilize encrypted VM images. Existing systems decrypt the encrypted VM image before booting the VM on the host machine. A disadvantage of this approach is that dedicated computer instructions are required in the hypervisor to determine whether the VM image is encrypted and to perform decryption before dispatching or booting the VM on the host. One or more embodiments of the present invention do not require updating the hypervisor dispatch code, or require the hypervisor to know that the VM image is encrypted before the VM boots on the host machine. Furthermore, the hypervisor can be used to boot a secure VM, even after the secure VM has been booted, the hypervisor cannot access any data of the secure VM.
本发明的一个或多个实施例通过提供用于在托管多个VM的主机服务器上执行VM的安全环境来提供对现有系统的技术改进。本发明的一个或多个实施例的实际应用包括阻止对在主机机器上执行的安全客户机的任何数据的未授权访问(有意或无意)的能力。One or more embodiments of the present invention provide technical improvements to existing systems by providing a secure environment for executing VMs on a host server hosting multiple VMs. Practical applications of one or more embodiments of the present invention include the ability to prevent unauthorized access (intentional or unintentional) to any data of a secure client running on a host machine.
现在转到图1,根据本发明的一个或多个实施例,一般地示出了用于使用IPL机制启动安全客户机的系统100的示意图。图1所示的系统100包括主机服务器的客户机地址空间102、包括基本输入/输出系统(BIOS)104或加载器的主机磁盘、以及存储安全客户机的操作系统组件的客户机磁盘。术语“客户机”和“虚拟机”或“VM”在本文中可互换使用。图1所示的安全客户机的操作系统组件包括未加密的引导程序组件106和客户机的已加密镜像108。根据本发明的一个或多个实施例,在主机服务器上执行的管理程序被指示将客户机加载到客户地址空间102中。管理程序接收关于客户机的镜像在这种情况下位于客户机磁盘上的何处的信息,并启动BIOS 104以将操作系统组件加载到客户机地址空间102中。Turning now to Figure 1, a schematic diagram of a system 100 for booting a secure client using an IPL mechanism is generally shown according to one or more embodiments of the present invention. The system 100 shown in Figure 1 includes a client address space 102 of a host server, a host disk including a Basic Input/Output System (BIOS) 104 or loader, and a client disk storing the operating system components of the secure client. The terms "client" and "virtual machine" or "VM" are used interchangeably herein. The operating system components of the secure client shown in Figure 1 include an unencrypted bootloader component 106 and an encrypted image 108 of the client. According to one or more embodiments of the present invention, a hypervisor executing on the host server is instructed to load the client into the client address space 102. The hypervisor receives information about where the client image is located on the client disk in this case and boots the BIOS 104 to load the operating system components into the client address space 102.
当BIOS 104完成将操作系统组件加载到客户机地址空间102中时,客户机对于管理程序来说表现为非安全客户机。管理程序不知道客户机的镜像被加密并且当前不可操作。管理程序将控制转移到地址被指定的引导程序组件106,这触发了由超级监视器进行的在安全模式下对客户机的初始程序加载(IPL)或重启。在IBM 实现方式中,具有操作系统组件的磁盘包含隐藏的引导镜像文件,其描述组件驻留在磁盘上的何处、它们必须被加载到哪些存储器位置、以及在初始加载已经完成之后要执行的第一指令的地址(即,引导程序组件的起始地址)。一个或多个实施例可以由其他体系结构来实现,这些体系结构可以具有用于开始操作系统的执行的固定存储器地址。When BIOS 104 finishes loading the operating system components into the guest address space 102, the guest appears as an insecure guest to the hypervisor. The hypervisor is unaware that the guest image is encrypted and currently inoperable. The hypervisor transfers control to the bootloader component 106 at the specified address, which triggers an Initial Program Load (IPL) or reboot of the guest in safe mode by the supermonitor. In the IBM implementation, the disk containing the operating system components contains a hidden boot image file that describes where the components reside on the disk, which memory locations they must be loaded into, and the address of the first instruction to be executed after the initial load is complete (i.e., the starting address of the bootloader component). One or more embodiments may be implemented by other architectures that may have a fixed memory address for initiating the execution of the operating system.
如图1所示,引导程序组件106包括由管理程序执行以触发到安全模式的过渡的引导程序代码,以及包括由超级监视器使用的元数据以解密客户机108的已加密镜像的SE头。As shown in Figure 1, the bootloader component 106 includes bootloader code executed by the hypervisor to trigger a transition to safe mode, and an SE header including metadata used by the super monitor to decrypt the encrypted image of the client 108.
现在转向图2,根据本发明的一个或多个实施例,一般地示出了用于使用初始程序加载(IPL)机制来启动安全客户机的过程200的流程图。图2所示的处理可以由在主机机器上执行的管理程序和超级监视器的组合来执行。在操作系统组件(例如图1的客户机108和引导程序组件106的已加密镜像)已经被加载到主机服务器的存储器(例如图1的客户机地址空间102)中,并且控制已经被转移到引导程序组件之后,执行图2所示的处理。Turning now to Figure 2, a flowchart of a process 200 for booting a secure client using an Initial Program Load (IPL) mechanism is generally shown according to one or more embodiments of the invention. The process shown in Figure 2 can be performed by a combination of a hypervisor and a super monitor executed on the host machine. The process shown in Figure 2 is performed after the operating system components (e.g., encrypted images of the client 108 and bootloader component 106 of Figure 1) have been loaded into the host server's memory (e.g., the client address space 102 of Figure 1) and control has been transferred to the bootloader component.
在框202,客户机(例如,在客户机中运行的引导程序代码)调用管理程序来设置IPL参数。IPL参数可以包括但不限于SE头、存储器区域和用于解密的初始化向量(IV)。如这里所使用的,术语“SE头”是指包含关于操作系统的敏感信息的数据结构,例如用于解密操作系统镜像的密钥。由于这个信息是敏感的,SE头的部分必须被加密,以便只有安全控件接口能够解密SE头中的这个数据。存储区域指定已加密镜像中的哪个(哪些)存储区域需要解密。根据本发明的一个或多个实施例,私钥/公钥对被用于执行加密和解密。可以使用执行加密的人或实体已知的公钥来加密VM镜像,并且可以使用超级监视器已知的私钥来解密VM镜像。本发明的一个或多个实施例可以实现本领域已知的任何加密/解密方案,并且私钥/公钥对仅仅是可以实现的方案的一个示例。由于SE头中包含的密钥是受保护的,因此镜像加密密钥也可以是对称密钥(并且也用于解密)。In box 202, the client (e.g., bootloader code running in the client) invokes the hypervisor to set IPL parameters. IPL parameters may include, but are not limited to, the SE header, memory regions, and initialization vectors (IVs) for decryption. As used herein, the term "SE header" refers to a data structure containing sensitive information about the operating system, such as a key used to decrypt the operating system image. Because this information is sensitive, portions of the SE header must be encrypted so that only the security control interface can decrypt this data in the SE header. The memory regions specify which memory regions(s) in the encrypted image need to be decrypted. According to one or more embodiments of the invention, a private/public key pair is used to perform encryption and decryption. The VM image can be encrypted using a public key known to the person or entity performing the encryption, and the VM image can be decrypted using a private key known to the supermonitor. One or more embodiments of the invention can implement any encryption/decryption scheme known in the art, and the private/public key pair is merely one example of a possible scheme. Because the key contained in the SE header is protected, the image encryption key can also be a symmetric key (and is also used for decryption).
在图2的框204,管理程序确定IPL参数是否有效。验证可以包括检查SE头的存在、至少一个存储器区域的存在以及确保多个存储器区域不重叠。在框204,管理程序执行有效性检查,并将参数存储在管理程序拥有且客户机不可访问的某个存储器位置中。因此,参数的存在是针对它们有效性的充分指示。In box 204 of Figure 2, the hypervisor determines whether the IPL parameters are valid. Validation may include checking the presence of the SE header, the presence of at least one memory region, and ensuring that multiple memory regions do not overlap. In box 204, the hypervisor performs a validity check and stores the parameters in a memory location owned by the hypervisor and inaccessible to the client. Therefore, the presence of the parameters is a sufficient indication of their validity.
如果在框206确定IPL参数无效,则处理在框206继续,并且客户机继续在非安全模式下执行。如果在框206确定IPL参数有效,则处理在框208继续,其中客户机调用管理程序来执行重启。在框210,管理程序验证IPL参数已经被提供和检查。If it is determined in box 206 that the IPL parameter is invalid, processing continues in box 206, and the client continues to execute in non-secure mode. If it is determined in box 206 that the IPL parameter is valid, processing continues in box 208, where the client invokes the hypervisor to perform a restart. In box 210, the hypervisor verifies that the IPL parameter has been provided and checked.
如果在图2的框210确定IPL参数尚未被提供和检查,则处理在框206继续,并且客户机继续在非安全模式下执行。如果在框210确定IPL参数已经被提供和检查,则处理在框212继续。在框212,管理程序调用超级监视器以创建安全客户机配置,解包(例如,解密)已加密镜像,并开始客户机的安全执行。在框214,确定镜像是否被成功解密并可任选地被验证。根据本发明的一个或多个实施例,通过将在镜像上计算的校验和或散列与存储在SE头中的校验和进行比较来验证解密。如果镜像被解密并验证,则处理在框216继续,其中客户机在超级监视器的控制下在安全模式(即,作为安全客户机)运行。如果该镜像未被解密和验证,则处理在框218继续,其中客户机进入非安全模式下的禁用等待状态。If it is determined in box 210 of Figure 2 that the IPL parameters have not yet been provided and checked, the process continues in box 206, and the client continues to execute in insecure mode. If it is determined in box 210 that the IPL parameters have been provided and checked, the process continues in box 212. In box 212, the hypervisor invokes the super monitor to create a secure client configuration, unpacks (e.g., decrypts) the encrypted image, and begins secure execution of the client. In box 214, it is determined whether the image has been successfully decrypted and optionally verified. According to one or more embodiments of the invention, decryption is verified by comparing a checksum or hash calculated on the image with a checksum stored in the SE header. If the image is decrypted and verified, the process continues in box 216, where the client runs in secure mode (i.e., as a secure client) under the control of the super monitor. If the image is not decrypted and verified, the process continues in box 218, where the client enters a disabled waiting state in insecure mode.
现在转向图3,根据本发明的一个或多个实施例一般地示出了包括被加载在主机服务器上的安全客户机的系统300的示意图。图3所示的系统300描述了在已加密镜像被解密并使用诸如图2所示的过程在主机机器上启动安全系统之后图1的系统100的状态。如图3所示,镜像308的未加密版本被加载到客户机地址空间102中,并且控制已被给予客户机的内核以启动安全客户机。Turning now to Figure 3, a schematic diagram of a system 300 comprising a secure client loaded on a host server is generally shown according to one or more embodiments of the invention. The system 300 shown in Figure 3 depicts the state of system 100 of Figure 1 after the encrypted image has been decrypted and the secure system has been booted on the host machine using a process such as that shown in Figure 2. As shown in Figure 3, an unencrypted version of image 308 is loaded into the client address space 102, and control has been given to the client's kernel to boot the secure client.
现在转到图4,根据本发明的一个或多个实施例,一般地示出了用于启动安全客户机的IPL信息块400的示意图。框402中所示的IPL信息块的整体布局是典型的IPL块布局,其包括用于指定以下各项的字段:块的长度(例如,以字节为单位);版本号;用于加载设备信息的参数块,所述设备信息诸如是磁盘设备地址、类似“CDROM”的通用引导设备命名或网络地址;以及用于附加系统控制参数(SCP)数据的参数块,如果引导方法需要不适合信息块的第一部分的参数,则可以使用该附加SCP数据。除了根据本发明的一个或多个实施例还包括作为正在执行的新类型的IPL的存储器(连同磁盘、网络等)的类型字段之外,用于加载设备信息404的参数块也是典型的IPL块布局。这允许IPL从已加密的VM镜像所在的主机服务器的存储器加载数据。此外,加载设备特定参数块包括由管理程序用于执行解密的新类型的信息:具有用于执行解密的信息的SE头406;以及镜像信息408,其可包括描述存储器中的镜像的结构的信息。Turning now to Figure 4, a schematic diagram of an IPL information block 400 for booting a secure client is generally shown according to one or more embodiments of the invention. The overall layout of the IPL information block shown in block 402 is a typical IPL block layout, including fields specifying: the length of the block (e.g., in bytes); a version number; a parameter block for loading device information, such as a disk device address, a generic boot device name like "CDROM," or a network address; and a parameter block for attaching System Control Parameters (SCP) data, which can be used if the boot method requires parameters that are not suitable for the first part of the information block. In addition to including a type field for the memory (along with disks, networks, etc.) of the new type of IPL being executed, according to one or more embodiments of the invention, the parameter block for loading device information 404 is also a typical IPL block layout. This allows the IPL to load data from the memory of the host server where the encrypted VM image resides. Furthermore, the loading device-specific parameter block includes a new type of information used by the hypervisor to perform decryption: an SE header 406 with information for performing decryption; and image information 408, which may include information describing the structure of the image in memory.
现在转到图5,根据本发明的一个或多个实施例,一般地示出了用于启动安全客户机的处理流程500。图5所示的处理可以由在主机服务器上执行的管理程序来执行。在框502,在主机服务器上执行的管理程序接收在主机服务器上分派VM的请求。在框504,VM在非安全模式被分派在主机服务器上。当VM处于非安全模式时,VM的数据可由管理程序访问。VM包括引导程序组件,该引导程序组件包含用于重启VM的重启指令。根据本发明的一个或多个实施例,所述分派包括将VM的已加密镜像加载到主机服务器的存储器中,以及将包括重启指令的未加密引导程序组件加载到存储器中。分派还包括将控制转移到引导程序组件。Turning now to Figure 5, a general process flow 500 for launching a secure client is illustrated according to one or more embodiments of the present invention. The process shown in Figure 5 can be performed by a hypervisor running on a host server. In block 502, the hypervisor running on the host server receives a request to dispatch a VM on the host server. In block 504, the VM is dispatched on the host server in an insecure mode. When the VM is in insecure mode, the VM's data is accessible to the hypervisor. The VM includes a bootloader component containing restart instructions for restarting the VM. According to one or more embodiments of the present invention, the dispatch includes loading an encrypted image of the VM into the host server's memory and loading an unencrypted bootloader component including the restart instructions into memory. The dispatch also includes transferring control to the bootloader component.
在框506,根据本发明的一个或多个实施例,由引导程序组件发起安全重启。引导程序组件(1)设置IPL信息和(2)请求重启。管理程序截取(1)和(2)两者,管理程序响应于(2)将控制移交给超级监视器以进行解密。当解密完成时,超级监视器绕过管理程序将控制转移到现在安全的客户机。根据本发明的一个或多个实施例,重启包括解密VM的已加密组件。当VM处于安全模式时,阻止管理程序访问VM的任何数据。In box 506, according to one or more embodiments of the invention, a secure reboot is initiated by a bootloader component. The bootloader component (1) sets IPL information and (2) requests a reboot. The hypervisor intercepts both (1) and (2), and in response to (2), the hypervisor transfers control to the supermonitor for decryption. When decryption is complete, the supermonitor bypasses the hypervisor and transfers control to the now secure client. According to one or more embodiments of the invention, the reboot includes decrypting encrypted components of the VM. When the VM is in secure mode, the hypervisor is prevented from accessing any data of the VM.
应理解,尽管本公开包括关于云计算的详细描述,但本文中所述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。It should be understood that although this disclosure includes a detailed description of cloud computing, the implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.
云计算是服务交付的模型,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)能够以最小的管理成本或与服务提供商进行最少的交互来快速部署和释放。这种云模型可以包括至少五个特征,至少三个服务模型和至少四个部署模型。Cloud computing is a service delivery model for convenient, on-demand network access to a shared pool of configurable computing resources. Configurable computing resources (e.g., networks, network bandwidth, servers, processing power, storage, applications, virtual machines, and services) can be rapidly deployed and released with minimal management costs or minimal interaction with service providers. This cloud model can include at least five features, at least three service models, and at least four deployment models.
特征如下:The characteristics are as follows:
按需自助式服务:云的消费者在无需与服务提供商进行人为交互的情况下,能够单方面自动地按需部署计算能力,诸如服务器时间和网络存储。On-demand self-service: Cloud consumers can unilaterally and automatically deploy computing power, such as server time and network storage, on demand without having to interact with service providers.
广泛的网络接入:计算能力通过网络获得,并通过标准机制访问,该标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如,移动电话,膝上型电脑和PDA)的使用。Extensive network access: Computing power is obtained through the network and accessed through standard mechanisms that facilitate use across various types of thin client or thick client platforms (e.g., mobile phones, laptops, and PDAs).
资源池:提供商的计算资源被归入资源池,以使用多租户模式为多个消费者提供服务,其中根据需求动态分配和重新分配不同的实体资源和虚拟资源。通常消费者不能控制或者并不知晓所提供的资源的确切位置,但是可能能够在更高抽象级别(例如,国家,州或数据中心)指定位置,因此具有位置无关性。Resource pool: A provider's computing resources are grouped into a resource pool to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Consumers typically do not control or know the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center), thus exhibiting location independence.
迅速弹性:可以迅速、有弹性地(有时是自动地)部署计算能力,以快速扩展,并且能迅速释放来快速缩小。对于消费者来说,用于部署的可用计算能力通常显得是无限的,并能在任意时候都能获取任意数量的计算能力。Rapid and elastic: Computing power can be deployed quickly and elastically (sometimes automatically) to scale up rapidly and shrink quickly. For consumers, the available computing power for deployment often appears unlimited, and any amount of computing power can be obtained at any time.
可测量的服务:云系统通过利用适于服务类型(例如,存储,处理,带宽和活跃用户帐户)的某种抽象级别的计量能力来自动控制和优化资源使用。可以监视,控制和报告资源使用,从而为所使用的服务的提供者和消费者提供透明度。Measurable services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both service providers and consumers.
服务模型如下:The service model is as follows:
软件即服务(SaaS):提供给消费者的能力是使用提供商在云基础架构上运行的应用。可以通过诸如网络浏览器(例如,基于网络的电子邮件)的瘦客户机接口从各种客户机设备访问应用。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统、存储、甚至单个应用能力,可能的例外是有限的特定于用户的应用配置设置。Software as a Service (SaaS): The capability offered to consumers is the ability to use applications running on a provider's cloud infrastructure. Applications can be accessed from a variety of client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers neither manage nor control the underlying cloud infrastructure, including the network, servers, operating system, storage, and even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
平台即服务(PaaS):提供给消费者的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用由提供商支持的编程语言和工具创建。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统或存储,但可以控制已部署的应用以及可能的应用托管环境配置。Platform as a Service (PaaS): This provides consumers with the ability to deploy consumer-created or acquired applications on cloud infrastructure, using programming languages and tools supported by the provider. Consumers neither manage nor control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they can control the deployed applications and, if any, the configuration of the application hosting environment.
基础架构即服务(IaaS):提供给消费者的能力是部署处理、存储、网络和其它基础计算资源,其中消费者能够部署和运行任意软件,该软件可以包括操作系统和应用。消费者既不管理也不控制底层云基础设施,而是具有对操作系统,存储,部署的应用的控制,以及具有可能的对选择的网络组件(例如,主机防火墙)的有限控制。Infrastructure as a Service (IaaS): This provides consumers with the ability to deploy processing, storage, networking, and other basic computing resources, where consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers neither manage nor control the underlying cloud infrastructure, but rather have control over the operating system, storage, deployed applications, and possibly limited control over selected network components (e.g., host firewalls).
部署模型如下:The deployment model is as follows:
私有云:云基础架构单独为组织运行。它可以由组织或第三方管理,可以存在于该组织内部或外部。Private cloud: A cloud infrastructure that operates independently for an organization. It can be managed by the organization or a third party, and can exist inside or outside the organization.
共同体云:云基础架构由多个组织共享,并支持具有共同利害关系(例如,任务使命,安全要求,策略和合规考虑)的特定共同体。它可能由组织或第三方管理,并且可能存在于该共同体内部或外部。Community cloud: A cloud infrastructure shared by multiple organizations and supporting a specific community with common interests (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by an organization or a third party and may exist inside or outside the community.
公共云:云基础架构向公众或大型产业群提供,并由销售云服务的组织所有。Public cloud: Cloud infrastructure provided to the public or large industrial groups and owned by the organization that sells cloud services.
混合云:云基础架构由两个或多个云(私有云,共同体云或公共云)组成,这些云仍然是独特的实体,但通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发流量分担技术)绑定在一起。Hybrid cloud: A cloud infrastructure consisting of two or more clouds (private, community, or public) that remain distinct entities but are bound together by standardized or proprietary technologies that enable data and applications to be ported together (e.g., cloud burst traffic balancing for load balancing between clouds).
云计算环境是面向服务的,特点集中在无状态,低耦合性,模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础设施。Cloud computing environments are service-oriented, characterized by statelessness, loose coupling, modularity, and semantic interoperability. At its core is the infrastructure comprising a network of interconnected nodes.
现在参考图6,描绘了示意性的云计算环境50。如图所示,云计算环境50包括云的消费者使用本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如是个人数字助理(PDA)或蜂窝电话54A,台式计算机54B,膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以在一个或多个网络中物理地或虚拟地分组(未示出),例如如上所述的私有云,共同体云,公共云或混合云,或其组合。这样,云的消费者无需维护本地计算设备上的资源就能够允许云计算环境50提供基础架构即服务、平台即服务和/或软件即服务。应该理解,图6中所示的计算设备54A-N的类型仅仅是示意性的,而计算节点10和云计算环境50可以(例如,使用网络浏览器)通过任何类型的网络和/或网络可寻址连接与任何类型的计算设备通信。Referring now to Figure 6, an illustrative cloud computing environment 50 is depicted. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 that a cloud consumer can communicate with using local computing devices, such as personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and/or automotive computer systems 54N. Nodes 10 can communicate with each other. They can be physically or virtually grouped in one or more networks (not shown), such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. In this way, cloud consumers can allow the cloud computing environment 50 to provide Infrastructure as a Service, Platform as a Service, and/or Software as a Service without maintaining resources on their local computing devices. It should be understood that the types of computing devices 54A-N shown in Figure 6 are merely illustrative, and the computing nodes 10 and the cloud computing environment 50 can communicate with any type of computing device (e.g., using a web browser) via any type of network and/or network-addressable connectivity.
现在参考图7,示出了由云计算环境50(图6)提供的一组功能抽象层。应该事先理解图7中所示的组件、层和功能仅仅是示意性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:Referring now to Figure 7, a set of functional abstraction layers provided by the cloud computing environment 50 (Figure 6) is shown. It should be understood beforehand that the components, layers, and functions shown in Figure 7 are merely illustrative, and embodiments of the invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。Hardware and software layer 60 includes hardware and software components. Examples of hardware components include a host 61; a server 62 based on a RISC (Reduced Instruction Set Computer) architecture; a server 63; a blade server 64; a storage device 65; and a network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
虚拟层70提供抽象层,从该抽象层可以提供以下虚拟实体的示例:虚拟服务器71;虚拟存储72;虚拟网络73(包括虚拟私有网络);虚拟应用和操作系统74;和虚拟客户端75。The virtual layer 70 provides an abstraction layer from which examples of the following virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73 (including virtual private network); virtual application and operating system 74; and virtual client 75.
在一个示例中,管理层80可以提供下面描述的功能。资源供应功能81提供用于在云计算环境内执行任务的计算资源和其它资源的动态获取。计量和定价功能82在云计算环境内对资源的使用进行成本跟踪,并且提供用于消费这些资源的帐单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云的消费者和任务提供身份认证,以及为数据和其它资源提供保护。用户门户功能83为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84提供云计算资源的分配和管理,以满足所需的服务水平。服务水平协议(SLA)计划和履行功能85为根据SLA预测的对云计算资源未来需求提供预先安排和供应。In one example, management layer 80 can provide the functions described below: Resource provisioning function 81 provides dynamic acquisition of computing resources and other resources for performing tasks within the cloud computing environment. Metering and pricing function 82 tracks the cost of resource usage within the cloud computing environment and provides bills or invoices for consuming these resources. In one example, these resources may include application software licenses. Security function provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal function 83 provides access to the cloud computing environment for consumers and system administrators. Service level management function 84 provides allocation and management of cloud computing resources to meet required service levels. Service Level Agreement (SLA) planning and fulfillment function 85 provides pre-scheduling and provisioning of future cloud computing resource needs projected according to the SLA.
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制与导航91;软件开发和生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;和分派安全客户机96。可以理解,这些仅仅是一些示例,并且在其它实施例中,这些层可包括不同的服务。Workload layer 90 provides examples of functionalities that can leverage a cloud computing environment. Examples of workloads and functionalities that may be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom instruction delivery 93; data analytics and processing 94; transaction processing 95; and dispatching secure clients 96. It is understood that these are merely examples, and in other embodiments, these layers may include different services.
现在转向图8,根据本发明的一个或多个实施例描绘了系统800。系统800包括经由网络165与一个或多个客户端设备20A-20C通信的示例节点10(例如,托管节点)。节点10可以是云计算提供商的数据中心或主机服务器。节点10执行管理程序12,其促进部署一个或多个VM 15(15A-15N)。节点10还包括硬件/固件层11,其促进管理程序12向VM 15提供一个或多个服务,在现有技术方案中,在管理程序12和硬件/固件层11之间存在通信;在硬件/固件层11和一个或多个VM 15之间存在通信;在管理程序12和一个或多个VM 15之间存在通信;以及存在通过硬件/固件层11从管理程序12到VM 15的通信。为了促进安全VM环境,根据本发明的一个或多个实施例的托管节点10不包括管理程序12与一个或多个VM 15之间的任何直接通信。Turning now to Figure 8, a system 800 is depicted according to one or more embodiments of the present invention. System 800 includes an example node 10 (e.g., a managed node) that communicates with one or more client devices 20A-20C via a network 165. Node 10 may be a data center or host server of a cloud computing provider. Node 10 executes a hypervisor 12, which facilitates the deployment of one or more VMs 15 (15A-15N). Node 10 also includes a hardware/firmware layer 11, which facilitates the hypervisor 12 providing one or more services to the VMs 15. In prior art, there is communication between the hypervisor 12 and the hardware/firmware layer 11; communication between the hardware/firmware layer 11 and one or more VMs 15; communication between the hypervisor 12 and one or more VMs 15; and communication from the hypervisor 12 to the VMs 15 via the hardware/firmware layer 11. To facilitate a secure VM environment, the managed node 10 according to one or more embodiments of the present invention does not include any direct communication between the hypervisor 12 and one or more VMs 15.
例如,节点10可以促进客户端设备20A部署VM 15A-15N中的一个或多个。VM 15A-15N可以响应于来自不同客户端设备20A-20C的相应请求而被部署。例如,VM 15A可由客户端设备20A部署,VM 15B可由客户端设备20B部署,并且VM 15C可由客户端设备20C部署。节点10还可以促进客户端提供物理服务器(而不作为VM运行)。这里描述的示例将节点10中的资源供应具体化为VM的一部分,然而,所描述的技术方案也可以应用于将资源供应为物理服务器的一部分。For example, node 10 can facilitate the deployment of one or more VMs 15A-15N by client device 20A. VMs 15A-15N can be deployed in response to corresponding requests from different client devices 20A-20C. For example, VM 15A can be deployed by client device 20A, VM 15B can be deployed by client device 20B, and VM 15C can be deployed by client device 20C. Node 10 can also facilitate clients provisioning physical servers (not running as VMs). The examples described herein embody resource provisioning in node 10 as part of VMs; however, the described techniques can also be applied to provisioning resources as part of physical servers.
在一个示例中,客户端设备20A-20C可以属于同一实体,诸如个人、企业、政府机构、公司内的部门或任何其他实体,并且节点10可以作为实体的私有云来操作。在这种情况下,节点10单独地托管由属于该实体的客户端设备20A-20C部署的VM 15A-15N。在另一个示例中,客户端设备20A-20C可以属于不同的实体。例如,第一实体可以拥有客户端设备20A,而第二实体可以拥有客户端设备20B。在这种情况下,节点10可以作为托管来自不同实体的VM的公共云来操作。例如,VM 15A-15N可以以其中VM 15A不促进对VM 15B的访问的受遮蔽方式来部署。例如,节点10可以使用IBM z处理器资源/系统管理器(PR/SM)逻辑分区(LPAR)特征来覆盖VM 15A-15N。这些特征,例如PR/SM LPAR提供分区之间的隔离,从而促进节点10在不同的逻辑分区中针对同一物理节点10上的不同实体部署两个或更多个VM15A-15N。In one example, client devices 20A-20C can belong to the same entity, such as an individual, enterprise, government agency, department within a company, or any other entity, and node 10 can operate as a private cloud for that entity. In this case, node 10 hosts VMs 15A-15N deployed by client devices 20A-20C belonging to that entity. In another example, client devices 20A-20C can belong to different entities. For example, a first entity could own client device 20A, while a second entity could own client device 20B. In this case, node 10 can operate as a public cloud hosting VMs from different entities. For example, VMs 15A-15N can be deployed in a shielded manner where VM 15A does not facilitate access to VM 15B. For example, node 10 can use the IBM z Processor Resource/System Manager (PR/SM) Logical Partition (LPAR) feature to override VMs 15A-15N. These features, such as PR/SM LPAR, provide isolation between partitions, thereby enabling node 10 to deploy two or more VM15A-15Ns for different entities on the same physical node 10 in different logical partitions.
来自客户端设备20A-20C的客户端设备20A是通信设备,例如计算机、智能电话、平板计算机、台式计算机、膝上型计算机、服务器计算机或请求由节点10的管理程序12部署VM的任何其它通信装置。客户端设备20A可以经由网络165发送请求以由管理程序接收。VM15A-15N中的VM 15A是管理程序12响应于来自客户端设备20A-20C中的客户端设备20A的请求而部署的VM镜像。管理程序12是VM监视器(VMM),其可以是创建并运行VM的软件、固件或硬件。管理程序12促进VM 15A使用节点10的硬件组件来执行程序和/或存储数据。通过适当的特征和修改,管理程序12可以是IBM z甲骨文的VM服务器、Citrix的XenServer、Vmware的ESX、微软Hyper-V管理程序或任何其它管理程序。管理程序12可以是直接在节点10上执行的本机管理程序,或者是在另一管理程序上执行的被托管的管理程序。现在转到图9,根据本发明的一个或多个实施例示出了用于实现这里的教导的节点10。节点10可以是电子的计算机框架,其包括和/或采用任何数量的如本文所述的计算设备和利用各种通信技术的网络及其组合。节点10可以是容易地可缩放、可扩展的和模块化的,具有改变到不同服务或独立于其它特征重新配置一些特征的能力。Client device 20A from client devices 20A-20C is a communication device, such as a computer, smartphone, tablet computer, desktop computer, laptop computer, server computer, or any other communication device requesting the deployment of a VM by the hypervisor 12 of node 10. Client device 20A may send requests via network 165 for the hypervisor to receive. VM 15A in VMs 15A-15N is a VM image deployed by the hypervisor 12 in response to a request from client device 20A from client devices 20A-20C. Hypervisor 12 is a VM monitor (VMM), which may be the software, firmware, or hardware that creates and runs the VM. Hypervisor 12 facilitates the VM 15A's use of the hardware components of node 10 to execute programs and/or store data. With appropriate features and modifications, hypervisor 12 may be an IBM or Oracle VM server, Citrix XenServer, VMware ESX, Microsoft Hyper-V hypervisor, or any other hypervisor. The management program 12 may be a native management program that executes directly on node 10, or a managed management program that executes on another management program. Turning now to Figure 9, a node 10 is illustrated for implementing the teachings herein, according to one or more embodiments of the invention. Node 10 may be an electronic computer framework that includes and/or employs any number of computing devices as described herein and networks and combinations thereof utilizing various communication technologies. Node 10 may be easily scalable, extensible, and modular, with the ability to change to different services or reconfigure some features independently of others.
在该实施例中,节点10具有处理器901,其可以包括一个或多个中央处理单元(CPU)901a、901b、901c等。处理器901,也被称为处理电路、微处理器、计算单元,其经由系统总线902耦接到系统存储器903和各种其它组件。系统存储器903包括只读存储器(ROM)904和随机存取存储器(RAM)905。ROM 904耦接到系统总线902,并且可以包括基本输入/输出系统(BIOS),其控制节点10的某些基本功能,RAM是耦接到系统总线902以供处理器901使用的读写存储器。In this embodiment, node 10 has a processor 901, which may include one or more central processing units (CPUs) 901a, 901b, 901c, etc. The processor 901, also referred to as a processing circuit, microprocessor, or computing unit, is coupled to system memory 903 and various other components via system bus 902. System memory 903 includes read-only memory (ROM) 904 and random access memory (RAM) 905. ROM 904 is coupled to system bus 902 and may include a basic input/output system (BIOS) that controls certain basic functions of node 10. RAM is a read-write memory coupled to system bus 902 for use by processor 901.
图9的节点10包括硬盘907,其是可由处理器901执行的有形存储介质的示例。硬盘907存储软件908和数据909。软件908被存储为由处理器901在节点10上执行的指令,以执行诸如图1-图9的处理流程的处理。数据909包括以各种数据结构组织的一组定性或定量变量的值,以支持软件908的操作并由其使用。Node 10 in Figure 9 includes a hard disk 907, which is an example of a tangible storage medium executable by processor 901. Hard disk 907 stores software 908 and data 909. Software 908 is stored as instructions executable by processor 901 on node 10 to perform processing such as the processing flow shown in Figures 1-9. Data 909 includes the values of a set of qualitative or quantitative variables organized in various data structures to support and be used by the software 908.
图9的节点10包括一个或多个适配器(例如,硬盘控制器、网络适配器、图形适配器等),其互连和支持处理器901、系统存储器903、硬盘907和节点10的其他组件(例如,外围和外部设备)之间的通信。在本发明的一个或多个实施例中,一个或多个适配器可以连接到一个或多个I/O总线,该一个或多个I/O总线经由中间总线桥连接到系统总线902,并且该一个或多个I/O总线可以利用公共协议,例如外围部件互连(PCI)。Node 10 in Figure 9 includes one or more adapters (e.g., hard disk controller, network adapter, graphics adapter, etc.) that interconnect and support communication between processor 901, system memory 903, hard disk 907, and other components of node 10 (e.g., peripherals and external devices). In one or more embodiments of the invention, the one or more adapters may be connected to one or more I/O buses that are connected to system bus 902 via an intermediate bus bridge, and the one or more I/O buses may utilize common protocols such as Peripheral Component Interconnect (PCI).
如图所示,节点10包括将键盘921、鼠标922、扬声器923和麦克风924互连到系统总线902的接口适配器920。节点10包括将系统总线902互连到显示器931的显示器适配器930。显示适配器930(和/或处理器901)可以包括图形控制器,以提供图形性能,例如GUI 932的显示和管理。通信适配器941将系统总线902与网络950互连,使得节点10能够与诸如服务器951和数据库952的其它系统、设备、数据和软件通信。在本发明的一个或多个实施例中,软件908和数据909的操作可由服务器951和数据库952在网络950上实现。例如,网络950、服务器951和数据库952可以组合以提供软件908和数据909的内部迭代作为平台即服务、软件即服务和/或基础设施即服务(例如,作为分布式系统中的网络应用)。As shown in the figure, node 10 includes an interface adapter 920 that interconnects a keyboard 921, mouse 922, speaker 923, and microphone 924 to a system bus 902. Node 10 also includes a display adapter 930 that interconnects the system bus 902 to a display 931. The display adapter 930 (and/or processor 901) may include a graphics controller to provide graphics performance, such as the display and management of a GUI 932. A communication adapter 941 interconnects the system bus 902 to a network 950, enabling node 10 to communicate with other systems, devices, data, and software, such as server 951 and database 952. In one or more embodiments of the invention, the operation of software 908 and data 909 may be implemented on network 950 by server 951 and database 952. For example, network 950, server 951, and database 952 may be combined to provide internal iterations of software 908 and data 909 as a platform as a service, software as a service, and/or infrastructure as a service (e.g., as a network application in a distributed system).
因此,如图9中所配置的,软件908和数据909(例如,节点10)的操作必然根植于处理器901和/或服务器951的计算能力中,以克服和解决在此描述的根据VM的已加密镜像来分派VM的常规方法的缺点。Therefore, as configured in Figure 9, the operation of software 908 and data 909 (e.g., node 10) is necessarily rooted in the computing power of processor 901 and/or server 951 to overcome and resolve the shortcomings of the conventional method of allocating VMs based on encrypted images of VMs as described herein.
本文描述的实施例必然根植于计算机技术,尤其是托管VM的计算机服务器。此外,本发明的一个或多个实施例通过促进托管VM的计算机服务器托管安全VM来促进对计算技术本身的操作的改进,特别是托管VM的计算机服务器,其中甚至管理程序也被禁止访问与安全VM相关联的存储器、寄存器和其他此类数据。此外,本发明的一个或多个实施例通过使用安全接口控件来提供朝向对托管计算服务器的VM的改进的重要步骤,所述安全接口控件包括硬件、固件(例如,毫码)或其组合以促进安全VM和管理程序的分离,并且因此维持由计算服务器托管的VM的安全性。安全接口控件提供轻量级中间操作以促进安全性,而不增加如本文所述的在VM的初始化/退出期间保护VM状态的实质开销。The embodiments described herein are necessarily rooted in computer technology, particularly computer servers hosting virtual machines (VMs). Furthermore, one or more embodiments of the invention facilitate improvements to the operation of computing technology itself, particularly computer servers hosting VMs, by enabling computer servers hosting secure VMs, where even the hypervisor is prohibited from accessing memory, registers, and other such data associated with the secure VM. Additionally, one or more embodiments of the invention provide an important step toward improvements to VMs hosted on computing servers by using secure interface controls, including hardware, firmware (e.g., microcode), or a combination thereof, to facilitate the separation of the secure VM and the hypervisor, and thus maintain the security of the VM hosted by the computing server. The secure interface controls provide lightweight intermediate operations to facilitate security without adding the substantial overhead of protecting the VM state during VM initialization/exit as described herein.
这里公开的本发明的实施例可以包括使用IPL机制启动安全客户机的系统、方法和/或计算机程序产品(这里是系统)。注意,对于每个说明,对于不同附图的其他类似元件,元件的标识符被重复使用。The embodiments of the invention disclosed herein may include systems, methods, and/or computer program products (here, systems) that use an IPL mechanism to launch a secure client. Note that for each description, the identifiers of elements are repeated for other similar elements in different figures.
在此参考相关附图描述本发明的各种实施例。在不偏离本发明的范围的情况下,可以设计本发明的替代实施例。在以下描述和附图中,在元件之间阐述了各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在在这方面进行限制。因此,实体的耦接可以指直接或间接耦接,并且实体之间的位置关系可以是直接或间接位置关系。此外,本文所述的各种任务和过程步骤可被并入具有本文未详细描述的额外步骤或功能性的更综合的程序或过程中。Various embodiments of the invention are described herein with reference to the accompanying drawings. Alternative embodiments of the invention may be devised without departing from the scope thereof. In the following description and drawings, various connections and positional relationships (e.g., above, below, adjacent, etc.) are illustrated between elements. Unless otherwise stated, these connections and/or positional relationships may be direct or indirect, and the invention is not intended to be limiting in this respect. Therefore, coupling of entities may refer to direct or indirect coupling, and positional relationships between entities may be direct or indirect positional relationships. Furthermore, the various tasks and process steps described herein may be incorporated into a more comprehensive program or process with additional steps or functionality not described in detail herein.
以下定义和缩写用于解释权利要求和说明书。如本文所用,术语“包含”、“包括”、“具有”、“含有”或其任何其它变型旨在涵盖非排他性的包括。例如,包括一系列元素的组合物、混合物、工艺、方法、制品或装置不一定仅限于那些元素,而是可以包括未明确列出的或此类组合物、混合物、工艺、方法、制品或装置固有的其他元素。The following definitions and abbreviations are used to interpret the claims and specification. As used herein, the terms “comprising,” “including,” “having,” “containing,” or any other variations thereof are intended to cover a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such compositions, mixtures, processes, methods, articles, or apparatus.
另外,术语“示例性”在本文中用于表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例或设计不一定被解释为比其它实施例或设计更优选或有利。术语“至少一个”和“一个或多个”可以被理解为包括大于或等于一的任何整数,即,一、二、三、四等。术语“多个”可以被理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”可以包括间接“连接”和直接“连接”两者。Additionally, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" can be understood to include any integer greater than or equal to one, i.e., one, two, three, four, etc. The term "multiple" can be understood to include any integer greater than or equal to two, i.e., two, three, four, five, etc. The term "connection" can include both indirect "connection" and direct "connection."
术语“约”、“基本上”、“大约”及其变体旨在包括与基于提交本申请时可用的设备的特定量的测量相关联的误差度。例如,“约”可以包括给定值的±8%或5%或2%的范围。The terms “about,” “substantially,” “approximately,” and variations thereof are intended to include a degree of error associated with a measurement of a specific quantity based on the equipment available at the time of filing this application. For example, “about” may include a range of ±8%, 5%, or 2% of a given value.
本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。该计算机程序产品可以包括一个计算机可读存储介质(或多个计算机可读存储介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。This invention can be a system, method, and/or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or multiple computer-readable storage media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.
计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的打孔卡或凹槽内凸起结构的机械编码装置、以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为瞬时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过电线传输的电信号。Computer-readable storage media can be tangible devices that can retain and store instructions for use by instruction execution devices. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable optical disc read-only memory (CD-ROM), digital versatile optical disc (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or recessed protrusions on which instructions are recorded, and any suitable combination of the foregoing. The computer-readable storage media used herein should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses transmitted through fiber optic cables), or electrical signals transmitted through wires.
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网,局域网,广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing/processing device, or downloaded via a network (e.g., the Internet, a local area network, a wide area network, and/or a wireless network) to an external computer or external storage device. The network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing/processing device.
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如Smalltalk,C++等的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分地在用户计算机上并且部分地在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者,可以连接到外部计算机(例如,利用互联网服务提供商来通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化定制电子电路,该电子电路执行计算机可读程序指令,以便执行本发明的各方面。Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may be personalized using status information from the computer-readable program instructions, which execute the computer-readable program instructions to perform aspects of the invention.
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。This document describes aspects of the invention with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block in the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来生产出机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现流程图和/或一个框图块或多个框图块中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,这些计算机可读程序指令可以使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,以使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的各方面的指令。These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/actions specified in the flowchart and/or one or more block diagram blocks. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and/or other device to operate in a particular manner, such that the computer-readable storage medium having the instructions stored therein includes an article of writing comprising instructions for implementing aspects of the functions/actions specified in the flowchart and/or one or more block diagram blocks.
计算机可读程序指令还可以被加载到计算机,其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,这样在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或一个框图块或多个框图块中指定的功能/动作。Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus or other equipment to cause a series of operational steps to be performed on the computer, other programmable apparatus or other equipment to produce a computer-implemented process, such that the instructions that execute on the computer, other programmable apparatus or other equipment implement the functions/actions specified in the flowchart and/or one or more block diagram blocks.
附图中的流程图和框图示出根据本发明的各种实施例的系统,方法和计算机程序产品的可能实施方式的体系结构,功能和操作。在这方面,流程图或框图中的每个框可以表示模块、程序段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所标注的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上并行地执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作,或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, program segment, or part of an instruction, which includes one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may not occur in the order shown in the figures. For example, two blocks shown consecutively may actually be executed substantially in parallel, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, may be implemented by a dedicated hardware-based system that performs a specific function or action, or performs a combination of dedicated hardware and computer instructions.
本文使用的术语仅出于描述特定实施例的目的,并不意图限制本发明。如这里所使用的,单数形式“一”,“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除存在或者添加一个或多个其它特征、整数、步骤、操作、元素、组件和/或它们的组合。The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that, when used in this specification, the terms “comprising” and/or “including” specify the presence of the stated features, integers, steps, operations, elements, and/or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or combinations thereof.
本文已经出于说明的目的呈现了对各种实施例的描述,但其并非旨在是穷尽性的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。本文所使用的术语被选择为最好地解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。This document has presented descriptions of various embodiments for illustrative purposes, but it is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or technical improvements to existing technologies on the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims (18)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/296,304 | 2019-03-08 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK40057635A HK40057635A (en) | 2022-04-14 |
| HK40057635B true HK40057635B (en) | 2025-08-08 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113544643B (en) | Starting a secure client using the initial program load mechanism | |
| CN113544645B (en) | Testing storage protection hardware in a secure virtual machine environment | |
| JP7386882B2 (en) | Transparent interpretation of guest instructions in a secure virtual machine environment | |
| EP3935531B1 (en) | Dispatch of a secure virtual machine | |
| JP7465046B2 (en) | Injecting interrupts and exceptions into the secure virtual machine | |
| CN113544664B (en) | Advanced instruction interception for interrupt-enabled security interface controls | |
| HK40057635B (en) | Starting a secure guest using an initial program load mechanism | |
| CA3132760C (en) | Inject interrupts and exceptions into secure virtual machine | |
| HK40057635A (en) | Starting a secure guest using an initial program load mechanism | |
| HK40057239B (en) | Dispatch of a secure virtual machine | |
| HK40057847B (en) | Secure storage isolation |