Starting a secure client using the initial program load mechanism

By using the initial program loading (IPL) mechanism and the initial program loading (IPL) mechanism in a cloud computing environment, the hypervisor dispatches virtual machines (VMs) on the host server and loads the encrypted image and unencrypted bootloader components of the VM in non-secure mode, triggering a restart instruction to restart the VM in safe mode. It solves the problem that it is difficult to start and manage secure VMs in non-secure mode in the prior art, realizes the ability to start secure VMs without decrypting VM images, provides a secure VM environment, prevents the manager from accessing the VM's data in safe mode, and enhances data isolation and security.

CN113544643BActive Publication Date: 2025-05-09INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080019271.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-03-08
Filing Date
2020-03-06
Publication Date
2025-05-09
Estimated Expiration
2040-03-06

AI Technical Summary

Technical Problem

In a cloud computing environment, prior art is difficult to effectively start and manage secure virtual machines (VMs) in non-secure mode without first decrypting the VM’s image and providing data isolation and access control in secure mode.

Method used

By using the Initial Program Loading (IPL) mechanism, the hypervisor dispatches a virtual machine (VM) on the host server and loads the encrypted image and unencrypted bootloader components of the VM in non-secure mode, triggering a restart instruction to restart the VM in safe mode.

Benefits of technology

The ability to start a secure VM without decrypting the VM image is realized, providing a secure VM environment, preventing the hypervisor from accessing the VM's data in safe mode, and enhancing data isolation and security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113544643B_ABST
    Figure CN113544643B_ABST
Patent Text Reader

Abstract

A method for launching a secure client includes receiving, by a hypervisor executed on a host server, a request to dispatch a virtual machine (VM) on the host server. The hypervisor dispatches the VM on the host server. The VM includes a restart instruction. The restart instruction is triggered by the hypervisor to restart the VM in a secure mode.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present invention relates generally to computer technology and, more particularly, to booting a secure client using an initial program load (IPL) mechanism.

[0002] 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 the need for customers to purchase hardware or provide floor space for physical servers. Customers can expand or shrink VMs according to the changing preferences or requirements of customers. Typically, cloud computing providers supply VMs that physically reside on servers at the provider's data center. Customers are often concerned about the security of data in VMs, especially because computing providers typically store data for more than one customer on the same server. Customers may expect security between their code / data and the cloud computing provider, as well as security between their code / data and the code / data of other VMs running at the provider's location. In addition, customers may expect security from the provider's administrators, as well as protection against potential security breaches in other codes running on the machine.

[0003] To handle such sensitive situations, cloud service providers can implement security controls to ensure proper data isolation and logical storage separation. The widespread use of virtualization in implementing cloud infrastructures leads to unique security issues for customers of cloud services because virtualization changes the relationship between the operating system (OS) and the underlying hardware (whether it is computing, storage or even networking). This introduces virtualization as an additional layer that itself must be properly configured, managed and secured. Summary of the invention

[0004] According to one or more embodiments of the present invention, a non-limiting example method includes receiving, by a hypervisor executed on a host server, a request to dispatch a virtual machine (VM) on a 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 secure 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.

[0005] According to additional or alternative embodiments of the present invention, the restart instruction utilizes an initial program load (IPL) mechanism. Technical effects and benefits may include the ability to start a secure VM using a standard IPL mechanism.

[0006] According to additional or alternative embodiments of the present invention, the dispatching includes loading the encrypted image of the VM into the memory of the host server, and loading the unencrypted boot program component including the restart instructions into the memory. Technical effects and benefits may include the ability of the hypervisor to start the VM in a non-secure mode without first decrypting the image of the VM.

[0007] According to additional or alternative embodiments of the present invention, the dispatching further comprises transferring control to the unencrypted boot program component. Technical effects and benefits may include the ability of a hypervisor to start a VM in a non-secure mode without first decrypting the image of the VM and then transferring control to a boot program component to restart the VM in a secure mode.

[0008] According to additional or alternative embodiments of the invention, after dispatching, the VM includes an encrypted component.Technical effects and benefits may include the ability of a hypervisor to start a VM in a non-secure mode without first decrypting an image of the VM.

[0009] According to additional or alternative embodiments of the present invention, restarting includes decrypting encrypted components of the VM.Technical effects and benefits may include decrypting an encrypted VM image as part of a restart process.

[0010] According to additional or alternative embodiments of the present invention, a VM dispatched by a hypervisor is in non-secure mode, and data of the VM is accessible by the hypervisor. Technical effects and benefits may include the ability of a hypervisor to start a VM in non-secure mode without first decrypting the image of the VM.

[0011] According to additional or alternative embodiments of the present 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.

[0012] According to an additional or alternative embodiment of the present invention, the VM on the host server includes an encrypted image of the VM. In addition, triggering the restart instruction includes the hypervisor calling the security interface control to perform the restart in a safe mode, and the hypervisor specifies the location of the encrypted image of the VM on the host server and the decryption information.

[0013] According to an additional or alternative embodiment of the present invention, performing a restart includes decrypting the VM based on the decrypted information by the security interface control. 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.

[0014] Other embodiments of the present invention implement the features of the above-described methods in computer systems and computer program products.

[0015] Additional features and advantages are achieved through the technology of the present invention. Other embodiments and aspects of the present invention are described in detail herein and are considered to be a part of the present invention. In order to better understand the advantages and features of the present invention, please refer to the specification and the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The details of the exclusive rights described herein are particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and advantages of the embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:

[0017] Figure 1 Depicted is a schematic diagram of a system for booting a client using an initial program load (IPL) mechanism according to one or more embodiments of the present invention;

[0018] Figure 2 Depicting a flow chart of a process for booting a secure client using an initial program load (IPL) mechanism according to one or more embodiments of the present invention;

[0019] Figure 3 Depicted is 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;

[0020] Figure 4 Depicted is an IPL information block for booting a secure client according to one or more embodiments of the present invention;

[0021] Figure 5 Depicted is a process flow for launching a secure client according to one or more embodiments of the present invention;

[0022] Figure 6 Describes a cloud computing environment according to one or more embodiments of the present invention;

[0023] Figure 7 depicts an abstract model layer according to one or more embodiments of the present invention;

[0024] Figure 8 depicts a system according to one or more embodiments of the present invention; and

[0025] Fig. 9 A processing system in accordance with one or more embodiments of the invention is depicted.

[0026] The figures described herein are illustrative. Many variations may be made to the figures or operations described therein without departing from the spirit of the present invention. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. In addition, the term "coupled" and variations thereof describe having a communication path between two elements, and do not imply a direct connection between elements without an intermediate element / connection between them. All of these variations are considered part of the specification. DETAILED DESCRIPTION

[0027] According to one or more embodiments of the present invention, a new initial program load (IPL) mechanism is provided to allow a client or virtual machine (VM) executed on a host server to request a transition to a secure mode. When in secure mode, the hypervisor cannot access the data of the VM. According to one or more embodiments of the present invention, when a VM is executed in secure mode, a secure interface control implemented in hardware and / or firmware is used to provide isolation between a secure client and other clients executed on the host server.

[0028] According to one or more embodiments of the present invention, an encrypted image of a VM is loaded into a VM memory of a host server together with an unencrypted boot program component. The boot program component can access information about all memory pages of the encrypted image of the VM and a metadata structure to use when decrypting the image and restarting the VM in safe 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 areas of the operating system image that can be used. As is known in the art, instead of listing all memory pages of the operating system separately, each area list including a starting page and a number of pages 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).

[0029] According to one or more embodiments of the present invention, the boot program component triggers a restart or reboot operation by preparing an IPL information block of a new format; setting the IPL information block using, for example, "diagnostic 308 subcode 5"; and performing 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 an integrity value; a list of memory areas that need to be decrypted; and an initialization vector (IV), which has been used for all pages of the encrypted image. In a traditional environment, the IPL information block contains an identification of the boot source, which may be a disk device address, a CDROM-like naming, 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 a memory area that needs to be decrypted. Depending on the encryption method used, one or more embodiments of the present invention implement IV to increase the randomness of the encryption. A unique IV may be provided for each of the memory areas. This type of encryption method using IV 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 content will be different, making it impossible for an adversary to know that the content is the same.

[0030] "Diagnostics" are examples of instructions that allow a guest operating system to interact with the hypervisor. Diagnostics instructions are used by IBM z The diagnostic 308 is used exclusively for program-guided IPL (allowing the client to request a reboot) operations. 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.

[0031] According to one or more embodiments of the present invention, the hypervisor uses information from the IPL information block, including the SE header that calls the security interface control (also referred to herein as the "hypermonitor") to create a secure client configuration and perform unpacking or decryption of the encrypted VM image. If the unpacking is successful, the unpacked VM gains control and executes in secure mode. If the unpacking fails, the VM enters a disabled wait state in non-secure mode.

[0032] A VM running as a client under the control of a host hypervisor relies on the hypervisor to transparently provide virtualization services to the client. These services can be applied to any interface between a security entity and another untrusted entity that traditionally allows the other entity to access secure resources. These services may include, but are not limited to, memory management, instruction emulation, and interrupt handling. For example, for interrupts and exception injections, the hypervisor typically reads and / or writes to the prefix area (low core) of the client. As used herein, the term "virtual machine" or "VM" refers to a logical representation of a physical machine (computing device, processor, etc.) and its processing environment (operating system (OS), software resources, etc.). VM is maintained as software executed on the underlying host (physical processor or processor group). From the perspective of a user or software resource, VM looks like its own independent physical machine. The terms "hypervisor" and "VM monitor (VMM)" used herein refer to a processing environment or platform service that manages and allows multiple VMs to execute using multiple (sometimes different) OS on the same host. It should be understood that deploying a VM includes: a VM installation process and a VM activation (or startup) process. In another example, deploying the VM includes an activation (or startup) process of the VM (eg, in the case where the VM is previously installed or already exists).

[0033] However, to facilitate secure clients, technical challenges exist where additional security is required between the hypervisor and the secure client, such that the hypervisor cannot access data from the VM and therefore cannot provide services such as those described above.

[0034] In currently available technical solutions, the management program (e.g., A hypervisor (or an open source software kernel-based virtual machine (KVM)) starts a new VM on a physical processing unit or host server by issuing a Start Interpretation Execution (SIE) instruction. A portion of the state of the VM and its characteristics are saved in a control block (as a state description or "SD") pointed to by an operand (usually the second operand) of the SIE instruction. In this case, the hypervisor has control over the data of the VM, and in some cases, this control is needed to interpret the instructions executed on the VM. Existing hypervisors rely on using such an interface through the SIE instruction to start a VM.

[0035] The secure execution described herein provides a hardware mechanism to ensure isolation between secure storage devices and non-secure storage devices and between secure storage devices belonging to different secure users. For secure clients, additional security is provided between the "untrusted" management program and the secure client. In order to do this, many functions that the management program usually does on behalf of the client need to be incorporated into the machine. The secure interface control provides a secure interface between the management program and the secure client. The secure interface control works in cooperation with the hardware to provide this additional security. The term ultra-monitor (UV) used here refers to an example of a secure interface control that can be implemented by one or more embodiments of the present invention.

[0036] In one example, the security interface control is implemented in internal, secure and trusted hardware and / or firmware. For a secure client or entity, the security interface control provides the initialization and maintenance of a secure environment and the coordination of the dispatch of these secure entities on hardware. When a secure client is actively using data and it resides in a host storage device, it is "unhindered" to be kept in secure storage. The secure storage device can be accessed by the single secure client, which is strictly enforced by the hardware. That is, the security interface control prevents any non-secure entity (including a hypervisor or other non-secure client) or different secure clients from accessing the data. In this example, the security interface control runs as a trusted part of the lowest level firmware. The lowest level or millicode is actually an extension of the hardware and is used to implement complex instructions and functions defined in the z / architecture. Millicode can access all parts of the storage device, which includes its own secure UV storage device, non-secure hypervisor storage device, secure client storage device, and shared storage device in the context of secure execution. This allows it to provide any function required by a secure client or a hypervisor supporting the 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 the conditions established by the security interface control.

[0037] 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 starting the VM on a host machine. A disadvantage of this approach is that special computer instructions are required in the hypervisor to determine whether the VM image is encrypted, and to perform the decryption before the VM is dispatched or started 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 is started on the host machine. In addition, the hypervisor can be used to start a secure VM, and even after the secure VM is started, the hypervisor cannot access any data of the secure VM.

[0038] 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 executing on a host machine.

[0039] Now go to Figure 1 , a schematic diagram of a system 100 for launching a secure client using an IPL mechanism is generally shown in accordance with one or more embodiments of the present invention. Figure 1 The system 100 shown 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 operating system components of a secure client. The terms "client" and "virtual machine" or "VM" are used interchangeably herein. Figure 1 The illustrated operating system components of the secure client include an unencrypted boot component 106 and an encrypted image of the client 108. According to one or more embodiments of the invention, a hypervisor executing on a host server is instructed to load the client into a client address space 102. The hypervisor receives information about where the image of the client is located, in this case on the client's disk, and initiates the BIOS 104 to load the operating system components into the client address space 102.

[0040] When BIOS 104 completes loading the operating system components into client address space 102, the client appears to the hypervisor as a non-secure client. The hypervisor is unaware that the client's image is encrypted and currently inoperable. The hypervisor transfers control to the bootstrap component 106 at the specified address, which triggers an initial program load (IPL) or reboot of the client in secure mode by the hypervisor. In an implementation, a disk with 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 loading has been completed (i.e., the starting address of the boot program component). One or more embodiments may be implemented by other architectures that may have a fixed memory address for starting execution of the operating system.

[0041] like Figure 1 As shown, the bootstrap component 106 includes bootstrap code that is executed by the hypervisor to trigger a transition to secure mode, and an SE header that includes metadata used by the hypervisor to decrypt an encrypted image of the client 108.

[0042] Now turn to Figure 2, in accordance with one or more embodiments of the present invention, generally illustrates a flow chart of a process 200 for booting a secure client using an initial program load (IPL) mechanism. Figure 2 The illustrated process may be performed by a combination of a hypervisor and a control monitor executing on a host machine. Figure 1 The encrypted image of the client 108 and the boot component 106) has been loaded into the memory of the host server (e.g. Figure 1 After control has been transferred to the bootstrap component, the execution Figure 2 Processing shown.

[0043] In box 202, the client (e.g., the boot program code running in the client) calls the hypervisor to set the IPL parameters. The IPL parameters may include, but are not limited to, the SE header, the memory area, and the initialization vector (IV) 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 for decrypting the operating system image. Since this information is sensitive, parts of the SE header must be encrypted so that only the security control interface can decrypt this data in the SE header. The storage area specifies which (which) storage areas in the encrypted image need to be decrypted. According to one or more embodiments of the present invention, a private key / 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 hypervisor. One or more embodiments of the present invention can implement any encryption / decryption scheme known in the art, and the private key / public key pair is only an example of a scheme that can be implemented. Since 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).

[0044] exist Figure 2 At block 204, the hypervisor determines whether the IPL parameters are valid. Verification may include checking the presence of the SE header, the presence of at least one memory area, and ensuring that multiple memory areas do not overlap. At block 204, the hypervisor performs a validity check and stores the parameters in a memory location owned by the hypervisor and not accessible to the client. Therefore, the presence of the parameters is a sufficient indication of their validity.

[0045] If it is determined at block 206 that the IPL parameters are invalid, processing continues at block 206 and the client continues to execute in non-secure mode. If it is determined at block 206 that the IPL parameters are valid, processing continues at block 208 where the client calls the hypervisor to perform a reboot. At block 210, the hypervisor verifies that the IPL parameters have been provided and checked.

[0046] If in Figure 2 If the IPL parameters have not been provided and checked in box 210 of the embodiment, the processing continues in box 206, and the client continues to execute in non-secure mode. If it is determined in box 210 that the IPL parameters have been provided and checked, the processing continues in box 212. In box 212, the hypervisor calls the hypervisor to create a secure client configuration, unpacks (e.g., decrypts) the encrypted image, and starts secure execution of the client. In box 214, it is determined whether the image is successfully decrypted and optionally verified. According to one or more embodiments of the present invention, the decryption is verified by comparing the checksum or hash calculated on the image with the checksum stored in the SE header. If the image is decrypted and verified, the processing continues in box 216, where the client runs in secure mode (i.e., as a secure client) under the control of the hypervisor. If the image is not decrypted and verified, the processing continues in box 218, where the client enters a disabled waiting state in non-secure mode.

[0047] Now turn to Figure 3 , a schematic diagram of a system 300 including a secure client loaded on a host server is generally shown in accordance with one or more embodiments of the present invention. Figure 3 The system 300 shown depicts a method for decrypting an encrypted image using a method such as Figure 2 The process shown is after starting the security system on the host machine Figure 1 The state of the system 100. Figure 3 As shown, an unencrypted version of the image 308 is loaded into the client address space 102, and control is given to the client's kernel to boot the secure client.

[0048] Now go 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 present invention. The overall layout of the IPL information block shown in box 402 is a typical IPL block layout, which includes fields for specifying the following: 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 designation like "CDROM", or a network address; and a parameter block for additional system control parameter (SCP) data, which can be used if the boot method requires parameters that do not fit in the first part of the information block. The parameter block for loading device information 404 is also a typical IPL block layout, except that it also includes a type field of the memory (along with disk, network, etc.) that is a new type of IPL being performed according to one or more embodiments of the present invention. This allows the IPL to load data from the memory of the host server where the encrypted VM image is located. In addition, the load 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.

[0049] Now go to Figure 5 , a process flow 500 for launching a secure client is generally shown, according to one or more embodiments of the present invention. Figure 5 The processing shown can be performed by a hypervisor executing on a host server. In box 502, the hypervisor executing on the host server receives a request to dispatch a VM on the host server. In box 504, the VM is dispatched on the host server in non-secure mode. When the VM is in non-secure mode, the data of the VM can be accessed by the hypervisor. The VM includes a boot program component, which contains restart instructions for restarting the VM. According to one or more embodiments of the present invention, the dispatching includes loading an encrypted image of the VM into a memory of the host server, and loading an unencrypted boot program component including the restart instructions into the memory. The dispatching also includes transferring control to the boot program component.

[0050] At block 506, a secure reboot is initiated by the bootloader component in accordance with one or more embodiments of the present invention. The bootloader component (1) sets the 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 hypervisor for decryption. When decryption is complete, the hypervisor transfers control to the now secure client, bypassing the hypervisor. In accordance with one or more embodiments of the present invention, the reboot includes decrypting the encrypted components of the VM. When the VM is in secure mode, the hypervisor is prevented from accessing any data of the VM.

[0051] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings described herein is not limited to cloud computing environments. Instead, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.

[0052] 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, memory, storage, applications, virtual machines, and services) can be rapidly deployed and released with minimal management cost or interaction with the service provider. This cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0053] Features are as follows:

[0054] On-demand self-service: Cloud consumers can unilaterally and automatically deploy computing capabilities, such as server time and network storage, on demand without human interaction with the service provider.

[0055] Broad network access: Computing power is available over the network and accessed through standard mechanisms that facilitate use through different types of thin-client or thick-client platforms (e.g., mobile phones, laptops, and PDAs).

[0056] Resource pooling: The computing resources of a provider are grouped into resource pools to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Typically consumers do not control or know the exact location of the provided resources, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center), thus being location-independent.

[0057] Rapid elasticity: Computing capacity can be deployed quickly and elastically (sometimes automatically) to scale up quickly, and released quickly to scale down quickly. To consumers, the available computing capacity for deployment often appears unlimited, and any amount of computing capacity can be accessed at any time.

[0058] Measurable services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the services being used.

[0059] The service model is as follows:

[0060] Software as a Service (SaaS): The capability provided to the consumer is to use the provider's applications running on the cloud infrastructure. The applications can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer neither manages nor controls the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0061] Platform as a Service (PaaS): The capability provided to consumers is to deploy applications created or acquired by consumers on the cloud infrastructure, which are created 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 can control the deployed applications and possibly the configuration of the application hosting environment.

[0062] Infrastructure as a Service (IaaS): The capability provided to consumers is to deploy processing, storage, network, 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 have control over the operating system, storage, deployed applications, and possibly limited control over selected network components (e.g., host firewalls).

[0063] The deployment model is as follows:

[0064] Private cloud: Cloud infrastructure is run solely for an organization. It can be managed by the organization or a third party and can exist inside or outside of that organization.

[0065] Community cloud: The cloud infrastructure is shared by multiple organizations and supports a specific community with common interests (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organization or a third party and may exist inside or outside the community.

[0066] Public cloud: Cloud infrastructure is made available to the public or to large industry groups and is owned by the organization that sells the cloud services.

[0067] 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 application portability (e.g., cloud bursting for load balancing between clouds).

[0068] The cloud computing environment is service-oriented, with characteristics centered on statelessness, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure that includes a network of interconnected nodes.

[0069] Reference now Figure 6 , depicts an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which cloud consumers can communicate 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. The nodes 10 can communicate with each other. They can be physically or virtually grouped in one or more networks (not shown), such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination 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 having to maintain resources on local computing devices. It should be understood that Figure 6 The types of computing devices 54A-N shown in are merely illustrative, and computing node 10 and cloud computing environment 50 may communicate with any type of computing device (eg, using a web browser) over any type of network and / or network-addressable connection.

[0070] Reference now Figure 7 , showing the cloud computing environment 50 ( Figure 6 ) provides a set of functional abstraction layers. It should be understood in advance Figure 7 The components, layers and functions shown in are merely illustrative, and embodiments of the present invention are not limited thereto. As shown in the figure, the following layers and corresponding functions are provided:

[0071] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include host 61; server 62 based on RISC (Reduced Instruction Set Computer) architecture; server 63; blade server 64; storage device 65; network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0072] Virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers 71 ; virtual storage 72 ; virtual networks 73 (including virtual private networks); virtual applications and operating systems 74 ; and virtual clients 75 .

[0073] In one example, the management layer 80 may provide the functions described below. The resource provisioning function 81 provides dynamic acquisition of computing resources and other resources for performing tasks within the cloud computing environment. The 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. The security function provides identity authentication for cloud consumers and tasks, as well as protection for data and other resources. The user portal function 83 provides access to the cloud computing environment for consumers and system administrators. The service level management function 84 provides allocation and management of cloud computing resources to meet the required service levels. The service level agreement (SLA) planning and fulfillment function 85 provides pre-scheduling and provisioning for future demand for cloud computing resources predicted according to the SLA.

[0074] The workload layer 90 provides examples of functionality that can take advantage of a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom instructional provision 93; data analytics processing 94; transaction processing 95; and dispatching secure clients 96. It will be appreciated that these are just some examples, and in other embodiments, these layers may include different services.

[0075] Now turn to Figure 8 , a system 800 is depicted according to one or more embodiments of the present invention. The system 800 includes an example node 10 (e.g., a hosting node) that communicates with one or more client devices 20A-20C via a network 165. The node 10 may be a data center or host server of a cloud computing provider. The node 10 executes a hypervisor 12, which facilitates the deployment of one or more VMs 15 (15A-15N). The node 10 also includes a hardware / firmware layer 11, which facilitates the hypervisor 12 to provide one or more services to the VMs 15. In the prior art solution, there is communication between the hypervisor 12 and the hardware / firmware layer 11; there is communication between the hardware / firmware layer 11 and one or more VMs 15; there is communication between the hypervisor 12 and one or more VMs 15; and there is communication from the hypervisor 12 to the VMs 15 through the hardware / firmware layer 11. In order to facilitate a secure VM environment, the hosting node 10 according to one or more embodiments of the present invention does not include any direct communication between the hypervisor 12 and the one or more VMs 15.

[0076] For example, the node 10 can facilitate the client device 20A to deploy one or more of the VMs 15A-15N. The VMs 15A-15N can be deployed in response to respective requests from different client devices 20A-20C. For example, VM 15A can be deployed by the client device 20A, VM 15B can be deployed by the client device 20B, and VM 15C can be deployed by the client device 20C. The node 10 can also facilitate the client to provide a physical server (not running as a VM). The example described here concretizes the resource provision in the node 10 as part of a VM, however, the described technical solution can also be applied to the resource provision as part of a physical server.

[0077] In one example, client devices 20A-20C may belong to the same entity, such as an individual, an enterprise, a government agency, a department within a company, or any other entity, and node 10 may operate as a private cloud for the entity. In this case, node 10 individually hosts VMs 15A-15N deployed by client devices 20A-20C belonging to the entity. In another example, client devices 20A-20C may belong to different entities. For example, a first entity may own client device 20A, and a second entity may own client device 20B. In this case, node 10 may operate as a public cloud hosting VMs from different entities. For example, VMs 15A-15N may be deployed in a shielded manner in which VM 15A does not facilitate access to VM 15B. For example, node 10 may use IBM z Processor Resource / System Manager (PR / SM) Logical Partition (LPAR) features are used to cover VMs 15A-15N. These features, such as PR / SM LPAR, provide isolation between partitions, thereby facilitating node 10 to deploy two or more VMs 15A-15N in different logical partitions for different entities on the same physical node 10.

[0078] Client device 20A from client devices 20A-20C is a communication device, such as a computer, smart phone, tablet computer, desktop computer, laptop computer, server computer, or any other communication device that requests deployment of a VM by hypervisor 12 of node 10. Client device 20A may send a request via network 165 to be received by the hypervisor. VM 15A among VMs 15A-15N is a VM image deployed by hypervisor 12 in response to a request from client device 20A among client devices 20A-20C. Hypervisor 12 is a VM monitor (VMM), which may be software, firmware, or hardware that creates and runs VMs. Hypervisor 12 facilitates VM 15A to execute programs and / or store data using hardware components of node 10. With appropriate features and modifications, hypervisor 12 may be an IBM z Oracle's VM Server, Citrix's XenServer, Vmware's ESX, Microsoft's Hyper-V hypervisor, or any other hypervisor. The hypervisor 12 may be a native hypervisor executing directly on the node 10, or a hosted hypervisor executing on another hypervisor. Fig. 9 , a node 10 for implementing the teachings herein is shown according to one or more embodiments of the present invention. The node 10 may be an electronic computer framework that includes and / or employs any number of computing devices as described herein and networks utilizing various communication technologies and combinations thereof. The node 10 may be easily scalable, extensible, and modular, with the ability to change to different services or reconfigure some features independently of other features.

[0079] In this embodiment, the node 10 has a processor 901, which may include one or more central processing units (CPUs) 901a, 901b, 901c, etc. The processor 901, also known as a processing circuit, a microprocessor, a computing unit, is coupled to a system memory 903 and various other components via a system bus 902. The system memory 903 includes a read-only memory (ROM) 904 and a random access memory (RAM) 905. The ROM 904 is coupled to the system bus 902 and may include a basic input / output system (BIOS), which controls certain basic functions of the node 10, and the RAM is a read-write memory coupled to the system bus 902 for use by the processor 901.

[0080] Fig. 9 The node 10 includes a hard disk 907, which is an example of a tangible storage medium that can be executed by the processor 901. The hard disk 907 stores software 908 and data 909. The software 908 is stored as instructions executed by the processor 901 on the node 10 to perform operations such as Figure 1-Figure 9 Data 909 includes values ​​of a set of qualitative or quantitative variables organized in various data structures to support the operation of software 908 and be used by it.

[0081] Fig. 9 The node 10 includes one or more adapters (e.g., hard disk controller, network adapter, graphics adapter, etc.) that interconnect and support communication between the processor 901, the system memory 903, the hard disk 907, and other components (e.g., peripheral and external devices) of the node 10. In one or more embodiments of the present invention, the one or more adapters may be connected to one or more I / O buses that are connected to the system bus 902 via an intermediate bus bridge, and the one or more I / O buses may utilize a common protocol, such as a peripheral component interconnect (PCI).

[0082] As shown, the node 10 includes an interface adapter 920 that interconnects a keyboard 921, a mouse 922, a speaker 923, and a microphone 924 to a system bus 902. The node 10 includes a display adapter 930 that interconnects the system bus 902 to a display 931. The display adapter 930 (and / or the processor 901) may include a graphics controller to provide graphics performance, such as the display and management of a GUI 932. The communication adapter 941 interconnects the system bus 902 with a network 950, so that the node 10 can communicate with other systems, devices, data, and software such as a server 951 and a database 952. In one or more embodiments of the present invention, the operation of the software 908 and the data 909 may be implemented on the network 950 by the server 951 and the database 952. For example, the network 950, the server 951, and the database 952 may be combined to provide internal iterations of the software 908 and the data 909 as a platform as a service, a software as a service, and / or an infrastructure as a service (e.g., as a network application in a distributed system).

[0083] Therefore, if Fig. 9 As configured, the operation of software 908 and data 909 (e.g., node 10) must be rooted in the computing power of processor 901 and / or server 951 to overcome and address the shortcomings of the conventional method of dispatching VMs based on the encrypted image of the VM described herein.

[0084] The embodiments described herein are necessarily rooted in computer technology, and in particular computer servers that host VMs. Furthermore, one or more embodiments of the present invention facilitate improvements to the operation of computing technology itself, and in particular computer servers that host VMs, by facilitating computer servers that host VMs to host secure VMs, wherein even the hypervisor is prohibited from accessing memory, registers, and other such data associated with the secure VM. Furthermore, one or more embodiments of the present invention provide an important step toward improvements to VMs that host compute servers by using secure interface controls, which include hardware, firmware (e.g., millicode), or a combination thereof to facilitate separation of the secure VM and the hypervisor, and thereby maintain the security of the VMs hosted by the compute server. The secure interface controls provide lightweight intermediate operations to facilitate security without adding substantial overhead to protecting the VM state during initialization / exit of the VM as described herein.

[0085] Embodiments of the invention disclosed herein may include systems, methods and / or computer program products (here systems) for starting secure clients using an IPL mechanism. Note that for each description, the identifiers of the elements are reused for other similar elements of different drawings.

[0086] Various embodiments of the present invention are described herein with reference to the relevant drawings. Without departing from the scope of the present invention, alternative embodiments of the present invention may be designed. In the following description and accompanying drawings, various connections and positional relationships (e.g., above, below, adjacent, etc.) are described between elements. Unless otherwise indicated, these connections and / or positional relationships may be direct or indirect, and the present invention is not intended to be limited in this respect. Therefore, the coupling of entities may refer to direct or indirect coupling, and the positional relationship between entities may be direct or indirect positional relationship. In addition, 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.

[0087] The following definitions and abbreviations are used to interpret the claims and specification. As used herein, the terms "comprises," "including," "having," "containing," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or apparatus that includes a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such composition, mixture, process, method, article, or apparatus.

[0088] 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" may be understood to include any integer greater than or equal to one, i.e., one, two, three, four, etc. The term "plurality" may be understood to include any integer greater than or equal to two, i.e., two, three, four, five, etc. The term "connected" may include both indirect "connections" and direct "connections."

[0089] The terms "about," "substantially," "approximately," and variations thereof are intended to include the degree of error associated with the measurement of a particular quantity based on the equipment available at the time this application was filed. For example, "about" may include a range of ±8% or 5% or 2% of a given value.

[0090] The present invention may 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 various aspects of the present invention.

[0091] A computer-readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a raised structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. The computer-readable storage medium used here should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse transmitted by a fiber optic cable), or an electrical signal transmitted by a wire.

[0092] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device.

[0093] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state 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++, and process programming languages ​​such as "C" programming language or similar programming languages. The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or, can be connected to an external computer (for example, using an Internet service provider to connect through the Internet). In some embodiments, the electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can be personalized by using the state information of the computer-readable program instructions to customize the electronic circuit, and the electronic circuit executes the computer-readable program instructions to perform various aspects of the present invention.

[0094] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present invention. It will be understood that each box in the flowchart illustration and / or block diagram and the combination of boxes in the flowchart illustration and / or block diagram can be implemented by computer-readable program instructions.

[0095] 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 device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in the flowchart and / or a block diagram block or multiple block diagram blocks. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can cause a computer, a programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable storage medium with instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in the flowchart and / or a block diagram block or multiple block diagram blocks.

[0096] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in the flowchart and / or a block diagram block or multiple block diagram blocks.

[0097] The flow charts and block diagrams in the accompanying drawings illustrate the system, method and computer program product according to various embodiments of the present invention. The architecture, function and operation of the possible implementation methods. In this regard, each box in the flow chart or block diagram can represent a part of a module, a program segment or an instruction, which includes one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions marked in the box may not occur in the order shown in the figure. For example, the two boxes shown in succession can actually be executed substantially in parallel, or these boxes can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart illustration and the combination of boxes in the block diagram and / or flow chart illustration can 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.

[0098] The terms used herein are for the purpose of describing specific embodiments only and are not intended to limit the present 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 "include" and / or "comprise" specify the presence of the 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.

[0099] Descriptions of various embodiments have been presented herein for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies available on the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A method for starting a secure client, comprising: Receiving, by a hypervisor executed on a host server, a request to dispatch a virtual machine VM on the host server; dispatching the VM on the host server by the hypervisor, wherein the VM is in a non-secure mode and includes an encrypted image of the VM and a restart instruction using an initial program load (IPL) mechanism; The restart instruction is triggered by the hypervisor to restart the VM on the host server in a secure mode, wherein the triggering includes: the hypervisor calling a security interface control to perform the restart in a secure mode, the hypervisor specifying the location of the encrypted image of the VM on the host server and decryption information; and A reboot is performed in response to the triggering, wherein after the reboot is performed, the hypervisor is blocked from accessing any data of the VM.

2. The method according to claim 1, wherein: The allocation includes: loading the encrypted image of the VM into a memory of the host server; and An unencrypted boot program component including the reboot instruction is loaded into the memory.

3. The method according to claim 2, wherein: The dispatching also includes transferring control to the unencrypted bootstrap component.

4. The method according to any one of claims 1 to 3, wherein: After the dispatching, the VM includes the encrypted components.

5. The method according to claim 4, wherein: The restarting includes decrypting the encrypted components of the VM.

6. The method according to any one of claims 1 to 3, wherein: When the VM dispatched by the hypervisor is in a non-secure mode, data of the VM can be accessed by the hypervisor.

7. The method according to any one of claims 1 to 3, wherein: Based on determining that the VM is in the secure mode, the hypervisor is prevented from accessing any data of the VM.

8. The method according to claim 1, wherein: Executing the restart includes: The security interface control decrypts the VM based on the decryption information; and The VM is restarted based on the decrypted VM.

9. A system for starting a secure client, comprising: Memory; Security interface controls; as well as A processing unit coupled to the memory and the security interface control, the processing unit being configured to execute a hypervisor for hosting a plurality of virtual machines VM, wherein when the VM is in a secure mode, the hypervisor is prohibited from directly accessing any data of the VM, and wherein the hypervisor is configured to execute: Receiving, by a hypervisor executing on a host server, a request to dispatch a VM on the host server; The VM is dispatched by the hypervisor on the host server, the VM is in a non-secure mode and includes an encrypted image of the VM and a restart instruction using an initial program load (IPL) mechanism; The restart instruction is triggered by the hypervisor to restart the VM on the host server in a secure mode, wherein the triggering includes: the hypervisor calling a security interface control to perform the restart in a secure mode, the hypervisor specifying the location of the encrypted image of the VM on the host server and decryption information; and A reboot is performed in response to the triggering, wherein after the reboot is performed, the hypervisor is blocked from accessing any data of the VM.

10. The system according to claim 9, wherein: The allocation includes: loading the encrypted image of the VM into a memory of the host server; and An unencrypted boot program component including the reboot instruction is loaded into the memory.

11. The system according to claim 10, wherein: The dispatching also includes transferring control to the unencrypted bootstrap component.

12. A system according to any one of claims 9 to 11, wherein: After the dispatching, the VM includes the encrypted components.

13. The system according to claim 12, wherein: The restarting includes decrypting the encrypted components of the VM.

14. A system according to any one of claims 9 to 11, wherein: When the VM dispatched by the hypervisor is in a non-secure mode, data of the VM can be accessed by the hypervisor.

15. A computer program product comprising a computer-readable storage medium, the computer-readable storage medium comprising computer-executable instructions, the computer-executable instructions, when executed by a processing unit, causing the processing unit to perform a method comprising: Receiving, by a hypervisor executed on a host server, a request to dispatch a virtual machine VM on the host server; dispatching the VM on the host server by the hypervisor, wherein the VM is in a non-secure mode and includes an encrypted image of the VM and a restart instruction using an initial program load (IPL) mechanism; The restart instruction is triggered by the hypervisor to restart the VM on the host server in a secure mode, wherein the triggering includes: the hypervisor calling a security interface control to perform the restart in a secure mode, the hypervisor specifying the location of the encrypted image of the VM on the host server and decryption information; and A reboot is performed in response to the triggering, wherein after the reboot is performed, the hypervisor is blocked from accessing any data of the VM.

16. The computer program product of claim 15, wherein: The allocation includes: loading the encrypted image of the VM into a memory of the host server; and An unencrypted boot program component including the reboot instruction is loaded into the memory.

17. The computer program product of claim 16, wherein: The dispatching also includes transferring control to the unencrypted bootstrap component.

18. A computer program product according to any one of claims 15 to 17, wherein: After the dispatching, the VM includes an encrypted component, and the restarting includes decrypting the encrypted component of the VM.

Citation Information

Patent Citations

  • Secure virtual machine bootstrap in untrusted cloud infrastructures

    US20110302400A1

  • System and method to store data securely for firmware using read-protected storage

    US20150154031A1