Secure Execution Client Owner Control for Secure Interface Controls
By introducing security interface controls into the computing system, the security client manages its request response based on metadata of the security client, the problem of incompletely trusted virtual machine hypervisor hosting the security client while ensuring integrity and confidentiality, and achieving secure and efficient management.
Patent Information
- Application Number
- CN202080019284.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-08
- Filing Date
- 2020-02-27
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2040-02-27
AI Technical Summary
The prior art is difficult to effectively manage secure clients hosted by incompletely trusted hypervisors, especially while ensuring their integrity and confidentiality while limiting their response to specific requests.
By introducing security interface controls in the computing system, metadata of the image linked to the security client is obtained, and based on the control characters in the metadata decide whether to allow the security client to obtain a response to a specific request, thereby intercepting and managing the request at runtime.
It realizes fine-grained control of security client functions, ensuring that it can maintain integrity and confidentiality in an incompletely trusted hypervisor environment, and effectively manage its response to requests.
Smart Images

Figure CN113544674B_ABST
Abstract
Description
Background Art
[0001] Cryptographic elements are important technical components in today's computer systems and information transmission networks. Information can be stored or transmitted in a cryptographically secure form to avoid unauthorized access to the stored or transmitted information. In some cases, purely software-based technologies can be used, in other cases, hardware-supported and security-specific elements can be used for such data protection.
[0002] A hypervisor, or virtual machine manager, controls the various clients (e.g., virtual machines, virtual servers) that can access system resources. Different clients managed by a common hypervisor can be generated by different owners. Some of these clients may be secure clients. Traditional hypervisors have full control over all clients that are hosted. In particular, the hypervisor is able to inspect and even modify all memory of the hosted clients. In a cloud environment, this setup requires that the hypervisor and its administrators be fully trusted.
[0003] A secure guest is a client that can be hosted by an untrusted hypervisor. The image of such a guest is protected when it is loaded, and the protection of the contents of the resources allocated to the guest (e.g., memory, CPU registers) is maintained throughout the lifetime of the guest. The protection of the guest includes at least integrity protection (e.g., the hypervisor cannot maliciously change any guest state), and can also include maintaining the confidentiality of the initial image, code, and data running in the guest. Summary of the invention
[0004] The disadvantages of the prior art are overcome and additional advantages are provided by providing a method that enables an owner to manage the functions of a secure client using a secure interface control. The method includes, for example: obtaining, by a secure interface control in a computing system, metadata linked to an image of a secure client to be launched by the owner and managed by a virtual machine monitor, wherein the secure interface control is communicatively coupled to the virtual machine monitor, wherein the virtual machine monitor manages one or more clients, wherein the metadata includes one or more control characters, wherein each of the one or more control characters indicates to the secure interface control whether a secure client generated with the image is allowed to obtain a response to a specific request; intercepting, by the secure interface control, a request from a secure client generated with the image through the virtual machine monitor during the execution of the secure client; determining, by the secure interface control, whether the secure client is allowed to obtain a response to the request based on the one or more control characters; starting execution of the request within the computing system based on determining that the secure client is allowed to obtain the response by the secure interface control; and ignoring the request based on determining that the secure client is not allowed to obtain the response by the secure interface control.
[0005] The disadvantages of the prior art are overcome and additional advantages are provided by providing a computer program product that enables an owner to manage the functions of a secure client using a security interface control. The computer program product is a computer-readable storage medium that can be read by one or more processors and stores instructions executed by the one or more processors, the instructions being used to perform a method. The method, for example, includes: obtaining, by the one or more processors in a computing system, metadata linked to an image of a secure client to be launched by an owner and managed by a virtual machine monitor, wherein the one or more processors are communicatively coupled to the virtual machine monitor, wherein the virtual machine monitor manages one or more clients, wherein the metadata includes one or more control characters, wherein each of the one or more control characters indicates to the one or more processors whether a secure client generated with the image is allowed to obtain a response to a specific request; intercepting, by the one or more processors, a request from a secure client generated with the image through the virtual machine monitor during operation of the secure client; determining, by the one or more processors, whether the secure client is allowed to obtain a response to the request based on the one or more control characters; starting execution of the request within the computing system by the one or more processors based on determining that the secure client is allowed to obtain the response; and ignoring the request by the one or more processors based on determining that the secure client is not allowed to obtain the response.
[0006] The disadvantages of the prior art are overcome and additional advantages are provided by providing a system that enables an owner to manage the functionality of a secure client using a secure interface control. The system includes a memory, one or more processors in communication with the memory, and program instructions executable by the one or more processors through the memory, the program instructions being used to perform a method, the method comprising, for example: obtaining metadata by one or more processors in a computing system, wherein the one or more processors are communicatively coupled to a virtual machine monitor, wherein the virtual machine monitor manages one or more clients, the metadata is linked to an image of a secure client, launched by the owner and managed by the virtual machine monitor, wherein the metadata includes one or more control characters, wherein each of the one or more control characters indicates to the one or more processors whether a secure client generated using the image is allowed to obtain a response to a particular request; during operation of the secure client, intercepting a request from the secure client generated using the image through the virtual machine monitor by the one or more processors; determining by the one or more processors whether the secure client is allowed to obtain a response to the request based on the one or more control characters; based on determining that the secure client is allowed to obtain a response, starting by the one or more processors to implement the request within the computing system; and based on determining that the secure client is not allowed to obtain a response, ignoring the request by the one or more processors.
[0007] Methods and systems related to one or more aspects are also described and claimed herein. Additionally, services related to one or more aspects are described and claimed.
[0008] Additional features are achieved through the techniques described herein. Other embodiments and aspects are described in detail herein and are considered part of the claimed aspects. For example, in some embodiments of the present invention, a secure client is allowed to obtain a response, and the method further includes: obtaining a response to a request by a secure interface control and / or one or more processors; and sending the response to the secure client by the secure interface control and / or the one or more processors.
[0009] In some embodiments of the present invention, the security interface control and / or the one or more processors obtaining metadata further includes: a portion of the metadata of the image of the secure client linked by the security interface control and / or the one or more processors, wherein the metadata is integrity protected and the portion is encrypted by a key derived from a private key, and includes an encrypted measurement of the boot image of the secure client.
[0010] In some embodiments of the invention, the encrypted portion of the metadata includes one or more control characters.
[0011] In some embodiments of the present invention, the request is selected from the group consisting of: a request for a security interface control to output a wrapping key for an exported page; a request for a security interface control to generate metadata for an updated version of a boot image for a secure client; and a request to allow the security interface control to encrypt data using a key provided in the metadata and return the encrypted data to the secure client.
[0012] In some embodiments of the present invention, the response to the request is selected from the group consisting of: a wrapping key for exporting the page; metadata for an updated version of the boot image for the secure client; and encrypted data, wherein the encrypted data is encrypted by the security interface control and / or one or more processors using a key provided in the metadata.
[0013] In some embodiments of the invention, the private key is owned by the security interface control and / or the one or more processors and is used only by the security interface control and / or the one or more processors.
[0014] In some embodiments of the invention, a key derived from a private key is shared between the security interface control and / or the one or more processors and the owner.
[0015] In some embodiments of the invention, the metadata includes values derived from a boot image of the secure client computed using a collision resistant one-way function.
[0016] In some embodiments of the present invention, the one or more control characters each include a positive designation or a negative designation of various characteristics, wherein a positive designation indicates that the secure client is allowed to obtain a response to a specific request, and a negative designation indicates that the client is not allowed to obtain a response to a specific request.
[0017] In some embodiments of the invention, the metadata is inaccessible to the secure client.
[0018] In some embodiments of the present invention, the security interface control and / or the one or more processors determining whether to allow the security client to obtain a response to a request further include the security interface control and / or the one or more processors identifying a control symbol related to the request among the one or more control symbols; and the security interface control and / or the one or more processors determining whether the control enables or restricts the security client from receiving a response to the request. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] One or more aspects are particularly pointed out and distinctly claimed as examples in the claims at the end of the specification. The above and one or more aspects, objects, features and advantages will be apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
[0020] Figure 1 is a workflow illustrating certain aspects of some embodiments of the present invention;
[0021] Figure 2 Various aspects of some embodiments of the present invention are shown;
[0022] Figure 3 is a workflow illustrating certain aspects of some embodiments of the present invention;
[0023] Figure 4 One embodiment of a computing node that may be used in a cloud computing environment is shown;
[0024] Figure 5 shows a cloud computing environment according to an embodiment of the present invention; and
[0025] Figure 6 An abstract model layer according to an embodiment of the present invention is shown. DETAILED DESCRIPTION
[0026] The accompanying drawings further illustrate the present invention and are used to explain the principles of the present invention together with the detailed description of the present invention. In the accompanying drawings, the same reference numerals refer to the same or functionally similar elements throughout the individual views, and these drawings are incorporated in and form a part of the present specification. As will be appreciated by those skilled in the art, the accompanying drawings are provided to facilitate understanding and illustrate aspects of certain embodiments of the present invention. The present invention is not limited to the embodiments depicted in the accompanying drawings.
[0027] As will be appreciated by those skilled in the art, program code as referred to throughout this application includes both software and hardware. For example, program code in certain embodiments of the present invention includes fixed-function hardware, while other embodiments utilize software-based implementations of the described functionality. Certain embodiments combine both types of program code. An example of program code, also referred to as one or more programs, is described in Figure 4 A program / utility 40 , depicted in FIG. 2 as having a set (at least one) of program modules 42 , may be stored in memory 28 .
[0028] The term "client system" or "client" may refer to an operating system executed, for example, in a virtual machine (VM) on a hypervisor. Users may be assigned to a client system. Specific encryption keys may be assigned to a client system. The hypervisor may be used to perform such assignments. A client system may be, for example, a virtual machine, or VM, running or executing a client operating system.
[0029] The term "content" may refer to any character-based string. The string may include readable text or any other binary data.
[0030] The term "data pattern" can basically be another expression for content. A data pattern can represent a readable string of characters, or can include binary data. In the context of this document, there are no additional requirements for the data pattern. It can also be predefined, randomly selected, or determined in some other way.
[0031] The term "client cryptographic unit" may refer to a module adapted to perform encryption and / or decryption operations within a client system, or as part of a client system, or as a service used by a client system.
[0032] As mentioned above, a secure client is a client that can be hosted by an untrusted hypervisor. The image of such a client will be protected when it is loaded, and the protection of the contents of the resources allocated to the client (e.g., memory, CPU registers) will be maintained throughout the life of the client. The protection of the client includes at least integrity protection (e.g., the hypervisor cannot maliciously change any guest state), and can also include maintaining the confidentiality of the initial image, code, and data running in the guest.
[0033] In an embodiment of the present invention, since the security client must be integrity protected (and the security client is secure, while the hypervisor may not be fully trusted), in order to manage such a security client, the security interface control (e.g., trusted component, trusted firmware) of the computer system takes over certain tasks involved in hosting the client and only grants limited access to the security client to the hypervisor. Specifically, the security interface control provides the hypervisor with access that does not involve inspecting or modifying the client state of the security client (and / or the image of the security client).
[0034] In an embodiment of the present invention, when deploying a secure client, the owner prepares a client image (of the secure client) and some secure client metadata. As will be discussed herein, the client metadata may include secrets (e.g., encryption keys) required to verify the integrity of the client and possibly maintain the confidentiality of the client. Since the secrets in the secure client metadata are known only to the client owner and the secure interface control, a portion of the metadata (i.e., the portion containing the secrets) is encrypted with a private / public key pair and cryptographically linked to the client image using a key securely negotiated between the secure interface control and the client owner, with the private key in the private / public key pair securely maintained by the secure interface control.
[0035] Embodiments of the present invention include computer-implemented methods, computer program products, and computer systems, which include program code executed on at least one processing circuit and / or hardware, the processing circuit and / or hardware including program code, the program code enabling an owner of a secure execution (SE) client to instruct a secure interface control in the form of hardware, firmware, or a combination thereof to enable and / or disable various operations of a given SE client of the owner during the operation of the SE client. Thus, by utilizing the secure interface control, the SE owner can enable or disable various functions of each client image on an image-by-image basis (i.e., secure client-by-secure client basis). In embodiments of the present invention, the owner communicates the details of a given secure client via image metadata that is cryptographically linked to the boot image of the secure client, and the secure interface control enforces these specified details for the given secure client. In some embodiments of the present invention, metadata associated with the secure client is integrity protected (e.g., at least a portion of the metadata may be encrypted). The metadata may include a value derived by the program code from the boot image of the secure client, which is calculated by the program code using a collision-resistant one-way function (e.g., a cryptographic hash function). Anti-collision functions provide security for these values because application of the anti-collision functions makes it computationally infeasible to construct alternative images that would derive the same value thereof. In some embodiments of the invention, the metadata includes specific positive and negative designations for various characteristics. In some embodiments of the invention, the metadata includes installation data for the secure client (e.g., a secure execution (SE) header).
[0036] In an embodiment of the present invention, when the security interface control evaluates whether to enable or disable a function for a given secure client (e.g., identifying a positive indicator or a negative indicator in the metadata), the security interface control reads a separate control symbol for each function in the metadata. In an embodiment of the present invention, for a running secure client, the security interface control obtains each request (from a system component including but not limited to the secure client), determines whether the request is allowable, and if so, sends the request to the relevant control for execution, and if not, ignores the request. In an embodiment of the present invention, the security interface control allows and / or ignores requests based on values in the metadata associated with the secure client, including but not limited to: 1) a request for the security interface control to output a wrapping key for an export page (e.g., to support a virtual machine monitor-driven client dump encrypted by a key generated by the security interface control, which is encrypted by a key provided in the metadata); 2) a request for the security interface control to generate metadata for an updated version of the boot image of the secure client; and / or 3) a request to allow the security interface control to encrypt data using a key provided in the metadata and return the encrypted data to the secure client. Metadata enables fine-grained control over functionality, for example, regarding the first item, through metadata, the SE client owner can decide whether to allow the security interface control to export the key used to encrypt the exported data, even if it is encrypted only with a key shared by the security interface control and the owner.
[0037] Figure 1 1 is a workflow 100 illustrating certain functions of some embodiments of the present invention. Figure 1 As shown, in an embodiment of the present invention, in order to achieve secure execution, the secure client is linked to metadata in an encrypted manner, and the metadata is securely communicated to the secure interface control (e.g., a trusted hardware and / or software component, a trusted firmware, an ultravisor) based on a private host key that can only be accessed by the secure interface control. In an embodiment of the present invention, the owner of the secure client controls the behavior of the secure interface control, allowing or prohibiting certain operations on the execution of the secure client. Compared with existing secure client security methods, the advantages of embodiments of the present invention are that the fine-grained control in the metadata enforced by the secure interface control allows the owner to restrict operations or enable operations to address specific security issues. For example, the owner can control whether the secure interface control can export a key for encrypting exported data, even if the data is encrypted using only a key shared by the secure interface control and the owner. In some embodiments of the present invention, the key is exported using a private key shared between the secure interface control and the owner. In an embodiment of the present invention, the execution of the secure client is constrained by a program code executed on at least one processing circuit and / or provided by hardware.
[0038] refer to Figure 1In some embodiments of the present invention, a security interface control (e.g., hardware, software, firmware, combination, etc.) obtains metadata linked to the security client to be launched from the owner of the security client (110). In some embodiments of the present invention, the metadata is integrity protected and cryptographically linked to the boot image of the security client to be launched by the (SE) owner. The metadata contains controls, each of which represents a restriction on the security client. In one embodiment of the present invention, the security interface control obtains a request from the now launched security client requiring the security interface control to complete a certain activity (120). The security interface control analyzes the metadata to determine whether the requested activity is allowed based on the metadata analysis (130). If the security interface control determines that the activity is not allowed based on the metadata, the security interface control returns an error to the security client (135). In some embodiments of the present invention, the security interface control ignores the request. Depending on the configuration of the security interface control, the response to a request that is not allowed may vary. If the security interface control determines that the activity is allowed based on the metadata, the security interface control performs and / or advances (e.g., writes, reads, transfers) the requested activity (140). Therefore, the security interface control rejects the request that conflicts with the restriction described by the metadata. When the secure client is running, various requests are blocked and allowed by the security interface controls.
[0039] Here is a non-limiting list of activities that the secure client can request the security interface control to perform and / or facilitate—the security interface control can determine whether these activities are constrained based on the metadata: 1) the secure client can request the security interface control to output a wrapping key for an export page (e.g., to support a hypervisor-driven client dump encrypted by a key generated by the security interface control, which is encrypted by a key provided in the metadata); 2) the secure client can request the security interface control to generate metadata for an updated version of the secure client's boot image; 3) the secure client can request the security interface control to encrypt data using a key provided in the security client's metadata and return the encrypted data.
[0040] Figure 2 is a technical environment 200 including various aspects of some embodiments of the present invention. Figure 2The components of the technical environment 200 of exemplify how the security interface control enables the client owner to control the functionality of the client image through encryption unique to each owner, and how the security interface control enables / disables specific features of a given secure client at runtime. For secure execution, the secure client 210 is cryptographically linked to metadata 240, which is securely communicated to the security interface control 230 (e.g., trusted firmware, ultravisor, trusted component, etc.) based on a private host key that can only be accessed by the security interface control 230. The owner of the secure client 210 controls the security interface control 230 based on the owner's preferences, allowing or disabling certain operations on the execution of the secure client 210. For example, the functions allowed by the owner through the security interface control 230 can be limited to operations that allow attacks that the owner of the secure client 210 cares about or does not care about. For example, the owner can fill in the metadata 240 of the image cryptographically linked to the secure client 210 whether to enable the secure client 210 to use the key used to encrypt the metadata portion, even if the metadata is encrypted using only the key shared by the secure client 210 and the owner. In some embodiments of the present invention, the key is derived using a private key shared between the security interface control 230 and the owner of the secure client 210. The security interface control 230 controls the operation of the secure client 210 during runtime of the secure client 210 according to the owner's preferences as recorded in metadata 240 associated with the secure client 210.
[0041] In some embodiments of the present invention, a secure client 210 (e.g., a virtual machine, a virtual server) is controlled by a virtual machine monitor 220 (e.g., a virtual machine manager). A secure interface control 250 obtains metadata associated with a secure client 240 from the secure client 210 through the virtual machine monitor 220. The metadata 240 is integrity protected (and a portion of the metadata 240, namely, a secret 250 of the secure client, is also confidentiality protected (i.e., encrypted)). In some embodiments of the present invention, the metadata 240 is cryptographically linked to the boot image of the secure client 210. In some embodiments of the present invention, the secret 250 of the secure client is contained in the installation data (e.g., a secure execution (SE) header) of the secure client. In some embodiments of the present invention, the metadata 240 contains values derived from the boot image of the secure client 210, which are calculated using a collision-resistant one-way function (e.g., a cryptographic hash function) such that it is computationally infeasible to construct an alternative image that can derive the same value thereof.
[0042] like Figure 2As shown, metadata linked to secure client 240 includes secret 250. In some embodiments of the invention, the metadata of the client is integrity protected and the secret is encrypted using a key derived from a private key owned by secure interface control 230. The derived key can protect a cryptographic measure of a boot image for a given client. In some embodiments of the invention, the portion of metadata 240 containing secret 250 is encrypted by a key that only secure interface control 230 can compute. Metadata 240 need not be accessible to secure client 210 itself.
[0043] Metadata 240 is linked to the image of secure client 210, and secret 250 is cryptographically linked to the image of the secure client, but it is not part of the client. Instead, it is transmitted independently to a secure interface control (e.g., firmware, trusted component, software, hardware, etc.) as described herein (e.g., Figure 1 , 110). In embodiments of the invention, secret 250 is transmitted as part of the client metadata over a secure channel (i.e., encrypted) and cryptographically linked to the client. In some embodiments of the invention, metadata 240 is cryptographically linked to the client (e.g., contains a signature of the client image) so that metadata for one client cannot be misused as metadata for another client. Thus, a trusted component can verify that the client and metadata / secret belong together. Metadata 240 transmitted (e.g., independently, over a secure channel) to security interface control 230 is integrity and confidentiality protected.
[0044] In addition to including secrets 250, metadata 240 further includes control characters 260, which are used by security interface control 230 to enable and disable various functions. Interactions between security client 210 and various elements of technical environment 200 are determined by security interface control 230 based on comparing control characters 260 in metadata 240 with system settings 270. Security interface control 230 rejects requests from security client 210 that conflict with restrictions described by metadata 240 (e.g., control characters 260). In some embodiments of the present invention, metadata 240 includes control characters 260 that represent capabilities of security interface control 230, and if the control character is positive, the capability can be enabled; if the control character is negative, the capability can be disabled.
[0045] In some embodiments of the present invention, the security interface control 230 evaluates the metadata 240 of the security client 210 by reading the control symbol 260 of each control. When the security client 210 is running, the security interface control 230 can check each request from various components of the technical environment 200 (including from the security client 210) to determine whether the request is allowed to be executed. If allowed, the running security client 210 will take the operation (write, read, transfer, etc.) of the control for the request to complete the request. If the security interface control 230 determines that the request is not allowed, the security interface control 230 can ignore or otherwise reject the request. Therefore, the security interface control 230 can control requests from the security client 210 and affecting the security client 210 based on the metadata 240 of the security client 210.
[0046] Figure 3 300 is a workflow illustrating various aspects of some embodiments of the present invention. In an embodiment of the present invention, a security interface control in a computing system obtains metadata linked to an image of a secure client to be launched by an owner and managed by a virtual machine monitor, wherein the security interface control is communicatively coupled to the virtual machine monitor, wherein the virtual machine monitor manages one or more clients, wherein the metadata includes one or more control characters, wherein each of the one or more control characters indicates to the security interface control whether a secure client generated with the image is allowed to obtain a response to a particular request (310). The metadata itself may be inaccessible to the secure client. As part of obtaining the metadata, in some embodiments of the present invention, the security interface control decrypts a portion of the metadata linked to the image of the secure client. The metadata is integrity protected, and, in some embodiments of the present invention, the portion is encrypted by a key derived from a private key, the encrypted portion including an encrypted measurement of a boot image of the secure client. The private key may be owned by the security interface control and may only be used by the security interface control. The key derived from the private key may (e.g., only) be shared between the security interface control and the owner. In some embodiments of the present invention, the metadata includes a value derived from the boot image of the secure client computed using a collision-resistant one-way function.
[0047] like Figure 2 As shown, one or more control characters (such as Figure 2 , 260) is metadata (such as Figure 2, 240). In some embodiments of the present invention, the one or more control characters are contained in an encrypted portion of the metadata. The security interface control can decrypt the portion of the metadata, which is linked to the boot image of the secure client, wherein the metadata is integrity protected and the portion is encrypted by a key derived from the private key and includes an encrypted measurement of the boot image of the secure client. The control characters can include positive or negative designations of various functions, where a positive designation indicates that the secure client is allowed to obtain a response to a specific request, and a negative designation indicates that the client is not allowed to obtain a response to a specific request.
[0048] Back to Figure 3 , the security interface control intercepts a request from a secure client generated with an image through a virtual machine monitor during the execution of the secure client (320). Some non-limiting examples of requests processed by aspects of some embodiments of the present invention include: a request for the security interface control to output a wrapping key for exporting pages; a request for the security interface control to generate metadata for an updated version of the boot image of the secure client; a request to allow the security interface control to encrypt data using a key provided in the metadata and return the encrypted data to the secure client. In an embodiment of the present invention, some non-limiting examples of responses to the requests provided by the security interface control to the requested secure client include: a wrapping key for exporting pages; metadata for an updated version of the boot image of the secure client and encrypted data, wherein the encrypted data is encrypted by the security interface control using the key provided in the metadata.
[0049] refer to Figure 3 The security interface control determines whether to allow the secure client to obtain a response to the request based on the one or more control characters (330). To determine whether to allow the secure client to obtain a response to the request, in some embodiments of the present invention, the security interface control identifies a control character associated with the request among the one or more control characters (334). The security interface control determines whether the control character enables or restricts receipt of a response to the request by the secure client (336).
[0050] Based on determining that the secure client is allowed to obtain a response, the secure interface control begins executing the request within the computing system (340). Based on determining that the secure client is not allowed to obtain a response, the secure interface control ignores the request (335).
[0051] In some embodiments of the present invention, the security interface control determines that the secure client is allowed to obtain the response, and the security interface control obtains the response to the request (350). The security interface control sends the response to the secure client (360).
[0052] Embodiments of the present invention include computer-implemented methods, computer program products, and computer systems, wherein a security interface control in a computing system, which may be any one or a combination of firmware, hardware, and software, obtains metadata linked to an image of a secure client to be launched by an owner and managed by a hypervisor. The hypervisor manages one or more clients, and the metadata includes one or more control characters. Each indicator of the one or more control characters indicates to the security interface control whether a secure client generated with the image is allowed to obtain a response to a particular request. The security interface control intercepts a request from a secure client generated with the image through the hypervisor during execution of the secure client. The security interface control determines whether the secure client is allowed to obtain a response to the request based on the one or more control characters. The security interface control begins executing the request within the computing system based on determining that the secure client is allowed to obtain the response. The security interface control ignores the request based on determining that the secure client is not allowed to obtain the response.
[0053] In some embodiments of the present invention, the security interface control obtains a response to the request and sends the response to the security client, if the security client is allowed to obtain a response.
[0054] In some embodiments of the present invention, the secure interface control obtaining metadata further comprises: the secure interface control decrypting a portion of metadata linked to an image of the secure client, wherein the metadata is integrity protected and the portion is encrypted by a key derived from the private key and includes an encrypted measurement of a boot image of the secure client. In some embodiments of the present invention, the encrypted portion of the metadata includes one or more control characters.
[0055] In some embodiments of the present invention, the request is selected from the group consisting of: a request for a security interface control to output a wrapping key for an exported page; a request for a security interface control to generate metadata for an updated version of a boot image for a secure client; and a request to allow the security interface control to encrypt data using a key provided in the metadata and return the encrypted data to the secure client.
[0056] In some embodiments of the present invention, the response to the request is selected from the group consisting of: a wrapping key for exporting the page; metadata for an updated version of the boot image for the secure client; and encrypted data, wherein the encrypted data is encrypted by the security interface control using a key provided in the metadata.
[0057] In some embodiments of the present invention, the private key is owned by the security interface control and is used exclusively by the security interface control.
[0058] In some embodiments of the invention, a key derived from a private key is shared between the security interface control and the owner.
[0059] In some embodiments of the invention, the metadata includes a value derived from a boot image of the secure client computed using a collision resistant one-way function.
[0060] In some embodiments of the present invention, the one or more control characters each include a positive designation or a negative designation for various features, wherein a positive designation indicates that the secure client is allowed to obtain a response to a specific request, and a negative designation indicates that the client is not allowed to obtain a response to a specific request.
[0061] In some embodiments of the invention, the metadata is inaccessible to the secure client.
[0062] In some embodiments of the present invention, the security interface control determining whether to allow the security client to obtain a response to the request further includes: the security interface control identifying a control character associated with the request among the one or more control characters. The security interface control determines whether the control character enables or restricts the security client from receiving a response to the request.
[0063] Reference now Figure 4 , a schematic diagram of an example of a computing node, which may be a cloud computing node 10. Cloud computing node 10 is only an example of a suitable cloud computing node and is not intended to impose any limitations on the scope of use or functionality of the embodiments of the present invention described herein. Regardless, cloud computing node 10 is capable of implementing and / or performing any of the functions described above. In one embodiment of the present invention, secure client 210 ( Figure 2 )、Security interface control 230( Figure 2 ) and / or a virtual machine monitor 220 ( Figure 2 ) can be understood as in the cloud computing node 10 ( Figure 4 ), if not executed on the cloud computing node 10, then executed on one or more general-purpose computing nodes that include various aspects of the cloud computing node 10.
[0064] In the cloud computing node 10 there is a computer system / server 12, which can operate with many other general or special purpose computing system environments or configurations. Examples of known computing systems, environments, and / or configurations that may be suitable for use with the computer system / server 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.
[0065] Computer system / server 12 may be described in the general context of computer system executable instructions (e.g., program modules) being executed by the computer system. In general, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Computer system / server 12 may be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in local and remote computer system storage media including memory storage devices.
[0066] like Figure 4 As shown, a computer system / server 12 that can be used as a cloud computing node 10 is shown in the form of a general-purpose computing device. Components of the computer system / server 12 may include, but are not limited to, one or more processors or processing units 16, a system memory 28, and a bus 18 that couples various system components including the system memory 28 to the processor 16.
[0067] Bus 18 represents one or more of several bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.
[0068] Computer system / server 12 typically includes a variety of computer system readable media. Such media can be any available media that can be accessed by computer system / server 12, including volatile and non-volatile media, removable and non-removable media.
[0069] The system memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache 32. The computer system / server 12 may also include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 34 may be provided for reading and writing to a non-removable, non-volatile magnetic medium (not shown, commonly referred to as a "hard drive"). Although not shown, a disk drive for reading and writing to a removable non-volatile disk (e.g., a "floppy disk") and an optical drive for reading or writing to a removable non-volatile optical disk (e.g., a CD-ROM, DVD-ROM or other optical media) may be provided. In this case, each may be connected to the bus 18 via one or more data media interfaces. As will be further described and described below, the memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to perform the functions of an embodiment of the present invention.
[0070] A program / utility 40 having a set (at least one) of program modules 42 may be stored in memory 28 by way of example and not limitation, as may an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. Program modules 42 generally perform the functions and / or methods of embodiments of the present invention as described herein.
[0071] The computer system / server 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; with one or more devices that enable a user to interact with the computer system / server 12; and / or with any device that enables the computer system / server 12 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur through an input / output (I / O) interface 22. The computer system / server 12 may also communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet) through a network adapter 20. As shown, the network adapter 20 communicates with other components of the computer system / server 12 through a bus 18. It should be understood that, although not shown, other hardware and / or software components may also be used in conjunction with the computer system / server 12. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
[0072] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings cited 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.
[0073] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with a service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0074] Features are as follows:
[0075] On-demand self-service: Cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, automatically on demand without requiring manual interaction with the service provider.
[0076] Broad network access: Capabilities are provided over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). Resource pooling: Providers' computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated as needed. There is a sense of location independence, as consumers typically have no control or knowledge of the exact location of the provided resources, but may be able to specify a location at a higher level of abstraction (e.g., country, state, or data center). Rapid elasticity: Capabilities can be provisioned quickly and elastically, in some cases automatically scaling up quickly, and releasing quickly to scaling down quickly. To consumers, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.
[0077] Measured 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.
[0078] The service model is as follows:
[0079] Software as a Service (SaaS): The functionality provided to the consumer is to use the provider's applications running on the cloud infrastructure. These applications are accessible from different client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including the network, servers, operating systems, storage, or even individual application functionality, with the possible exception of limited user-specific application configuration settings.
[0080] Platform as a Service (PaaS): The functionality provided to the consumer is to deploy consumer-created or acquired applications on the cloud infrastructure, which are created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly the configuration of the application hosting environment.
[0081] Infrastructure as a Service (IaaS): The functionality provided to consumers is to provide processing, storage, networking, and other basic computing resources on which consumers can deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).
[0082] The deployment model is as follows:
[0083] Private Cloud: Cloud infrastructure is operated solely for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0084] Community cloud: The cloud infrastructure is shared by multiple organizations and supports a specific community with common concerns (e.g., mission, security requirements, policy, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0085] Public cloud: Cloud infrastructure is available to the general public or large industry groups and is owned by an organization that sells cloud services.
[0086] Hybrid cloud: A cloud infrastructure composed of two or more clouds (private, community, or public) that remain unique 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).
[0087] The cloud computing environment is service-oriented, focusing on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is the infrastructure that includes a network of interconnected nodes.
[0088] See now Figure 5, depicting an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, and local computing devices used by cloud consumers (such as personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N) can communicate with the cloud computing nodes 10. The nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as in the private clouds, community clouds, public clouds, or hybrid clouds described above, or a combination thereof. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as a service for which cloud consumers do not need to maintain resources on local computing devices. It should be understood that Figure 5 The types of computing devices 54A-N shown in are intended to be illustrative only, and computing node 10 and cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network addressable connection (eg, using a web browser).
[0089] See now Figure 6 , showing the cloud computing environment 50 ( Figure 5 ) provides a set of functional abstraction layers. It should be understood in advance that Figure 6 The components, layers and functions shown in are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0090] 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 65; and network and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0091] 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 .
[0092] In one example, the management layer 80 may provide the functionality described below. Resource provisioning 81 provides dynamic acquisition of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 82 provides cost tracking when resources are utilized within a cloud computing environment, and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection of data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management so that the required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-arrangement and procurement of cloud computing resources for future requirements for cloud computing resources anticipated according to the SLA.
[0093] The workload layer 90 provides examples of functions that can take advantage of the cloud computing environment. Examples of workloads and functions that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analysis processing 94; transaction processing 95; and the ability to control secure clients during runtime through secure interface controls 96.
[0094] The present invention may be a system, method and / or computer program product of any possible integrated technical detail level. The computer program product may include a computer-readable storage medium (or medium) having computer-readable program instructions thereon, and the computer-readable program instructions are used to cause a processor to perform various aspects of the present invention.
[0095] 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 disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punch card or a raised structure in a groove with instructions recorded thereon), and any suitable combination of the above. As used herein, a computer-readable storage medium 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 by a fiber optic cable), or an electrical signal transmitted by a wire.
[0096] The computer-readable program instructions described herein may 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 may 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 computer-readable program instructions from the network and forwards these computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device.
[0097] The computer-readable program instructions for performing the operation of the present technical solution can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcodes, firmware instructions, state setting data, configuration data of integrated circuits, 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 procedural 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, executed as an independent software package, partially on the user's computer, 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, by using the Internet of an Internet service provider). In some embodiments, an electronic circuit (including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA)) can execute a computer-readable program instruction to personalize the electronic circuit by using the state information of the computer-readable program instructions, so as to perform various aspects of the present invention.
[0098] Various aspects of the technical solution are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the technical solution. It should be understood that each box in the flowchart and / or block diagram and the combination of boxes in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0099] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine that, when executed by a processor of the computer or other programmable data processing apparatus, creates a device for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing apparatus, and / or other device to function in a particular manner, such that a computer-readable storage medium having instructions stored therein includes an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0100] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other apparatus that causes a series of operating steps to be performed on a computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions and actions specified in one or more blocks in the flowchart and / or block diagram.
[0101] The flowchart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to the different embodiments of the present technical solution. To this end, each box in the flowchart or block diagram can represent a part of a module, segment or instruction, which includes one or more executable instructions for realizing the specified logical function. In some alternative embodiments, the functions marked in the box may not occur in the order marked in the figure. For example, depending on the functions involved, the two boxes shown in succession can actually be executed substantially at the same time, or these boxes can sometimes be executed in the opposite order. It will also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart can be implemented by a system based on special-purpose hardware, and the system based on special-purpose hardware performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.
[0102] The terms used herein are only used for the purpose of describing specific embodiments and are not intended to be limiting. 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 the terms "comprise" and / or "comprising" are used in this specification, they specify the presence of 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 groups thereof.
[0103] The corresponding structures, materials, actions, and equivalents of all means or step plus function elements (if any) in the following claims are intended to include any structure, material, or action for performing a function in combination with other claim elements of a specific claim. A description of one or more embodiments has been given for the purpose of illustration and description, but is not intended to be exhaustive or limited to the disclosed forms. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiments are selected and described in order to best explain various aspects and practical applications so that those of ordinary skill in the art can understand different embodiments with different modifications suitable for the intended specific use.
Claims
1. A computer-implemented method comprising: obtaining, by a security interface control in a computing system, metadata cryptographically linked to a boot image of a secure client to be launched by an owner and managed by a hypervisor, wherein the security interface control is communicatively coupled to the hypervisor, wherein the hypervisor manages one or more clients including the secure client, wherein the metadata includes one or more control characters and supports fine-grained control of functionality, and wherein the metadata is inaccessible to the secure client and the hypervisor, wherein each of the one or more control characters indicates to the security interface control whether a secure client generated with the boot image is allowed to obtain a response to a particular request; intercepting, by the security interface control, a request from a security client generated using the image through a hypervisor during operation of the security client; Accessing one or more control symbols in the metadata by the secure interface control using a private host key; Determining, by the security interface control based on the one or more control characters, whether to allow the security client to obtain a response to the request; Initiating execution of the request within the computing system by the security interface control based on determining that the secure client is permitted to obtain the response; and The request is ignored by the security interface control based on determining that the secure client is not allowed to obtain the response.
2. The computer-implemented method of claim 1 , wherein: Initiating execution of the request within the computing system further comprises: obtaining, by the security interface control, a response to the request; and The response is sent by the security interface control to the secure client.
3. The computer-implemented method of claim 1 , wherein: The one or more controls in the access metadata further include: A portion of metadata linked to an image of a secure client is decrypted by a security interface control, wherein the metadata is integrity protected and the portion is encrypted by a key derived from the private key and includes an encrypted measure of a boot image of the secure client.
4. The computer-implemented method of claim 3, wherein: The encrypted portion of the metadata includes one or more control characters.
5. The computer-implemented method of claim 3, wherein: The request is selected from the group consisting of: a request for the security interface control to output a wrapping key for exporting a page; a request for the security interface control to generate metadata for an updated version of a boot image for a secure client; Allows the security interface control to encrypt data using the key provided in the metadata and return the encrypted data to the secure client's request.
6. A computer-implemented method according to any one of claims 3 to 5, wherein: A response to the request is selected from the group consisting of: a wrapping key for exporting the page; metadata for an updated version of the boot image for the secure client; and encrypted data, wherein the encrypted data is encrypted by the security interface control using a key provided in the metadata.
7. A computer-implemented method according to any one of claims 3 to 5, wherein: The private key is owned by the security interface control and is used only by the security interface control.
8. The computer-implemented method of claim 7, wherein: The key derived from the private key is shared between the security interface control and the owner.
9. The computer-implemented method of any one of claims 1 to 5, wherein: The metadata includes a value derived from the secure client's boot image computed using a collision-resistant one-way function.
10. The computer-implemented method of any one of claims 1 to 5, wherein: The one or more control characters each include a positive designation or a negative designation for various characteristics, wherein a positive designation indicates that the secure client is allowed to obtain a response to a specific request, and a negative designation indicates that the client is not allowed to obtain a response to the specific request.
11. The computer-implemented method of any one of claims 1 to 5, wherein: Determining whether to allow the secure client to obtain a response to the request further includes: identifying, by the security interface control, a control symbol associated with the request from among the one or more control symbols; and Whether the control enables or restricts the secure client from receiving a response to the request is determined by the security interface control.
12. A computer program product comprising: A computer-readable storage medium is readable by one or more processors and stores instructions for execution by the one or more processors, the instructions being used to execute a method, the method comprising: obtaining, by the one or more processors in the computing system, metadata cryptographically linked to a boot image of a secure client to be launched by an owner and managed by a hypervisor, wherein the one or more processors are communicatively coupled to the hypervisor, wherein the hypervisor manages one or more clients including the secure client, wherein the metadata includes one or more control symbols and supports fine-grained control of functionality, and wherein the metadata is inaccessible to the secure client and the hypervisor, wherein each of the one or more control symbols indicates to the one or more processors whether a secure client generated with the boot image is allowed to obtain a response to a particular request; intercepting, by one or more processors, a request from a secure client generated using the image through a hypervisor during execution of the secure client; Accessing one or more control symbols in the metadata by the secure interface control using a private host key; determining, by the one or more processors based on the one or more control characters, whether to allow the secure client to obtain a response to the request; Initiating execution, by the one or more processors, of the request within the computing system based on determining that the secure client is permitted to obtain the response; and The request is ignored, by the one or more processors, based on determining that the secure client is not permitted to obtain the response.
13. The computer program product of claim 12, wherein: Initiating execution of the request within the computing system further comprises: obtaining, by the one or more processors, a response to the request; and The response is sent, by the one or more processors, to the secure client.
14. The computer program product of claim 12, wherein: The one or more control elements in the access metadata include: A portion of metadata linked to an image of a secure client is decrypted by the one or more processors, wherein the metadata is integrity protected and the portion is encrypted by a key derived from the private key and includes an encrypted measurement of a boot image of the secure client.
15. The computer program product of claim 14, wherein: The request is selected from the group consisting of: a request for the security interface control to output a wrapping key for exporting a page; a request for the security interface control to generate metadata for an updated version of a boot image for a secure client; Allows the security interface control to encrypt data using the key provided in the metadata and return the encrypted data to the secure client's request.
16. The computer program product according to any one of claims 14 to 15, wherein: A response to the request is selected from the group consisting of: a wrapping key for exporting the page; metadata for an updated version of the boot image for the secure client; and encrypted data, wherein the encrypted data is encrypted by the security interface control using a key provided in the metadata.
17. The computer program product according to any one of claims 14 to 15, wherein: The private key is owned by the security interface control and is used only by the security interface control.
18. The computer program product of claim 17, wherein: The key derived from the private key is shared between the security interface control and the owner.
19. A computer-implemented system comprising: Memory; one or more processors in communication with the memory; Program instructions executable by one or more processors through a memory to perform a method, the method comprising: obtaining, by the one or more processors in the computing system, metadata cryptographically linked to a boot image of a secure client to be launched by an owner and managed by a hypervisor, wherein the one or more processors are communicatively coupled to the hypervisor, wherein the hypervisor manages one or more clients including the secure client, wherein the metadata includes one or more control symbols and supports fine-grained control of functionality, and wherein the metadata is inaccessible to the secure client and the hypervisor, wherein each of the one or more control symbols indicates to the one or more processors whether a secure client generated with the boot image is allowed to obtain a response to a particular request; intercepting, by one or more processors, a request from a secure client generated using the image through a hypervisor during execution of the secure client; Accessing one or more control symbols in the metadata by the secure interface control using a private host key; determining, by the one or more processors based on the one or more control characters, whether to allow the secure client to obtain a response to the request; Initiating execution, by the one or more processors, of the request within the computing system based on determining that the secure client is permitted to obtain the response; and The request is ignored, by the one or more processors, based on determining that the secure client is not permitted to obtain the response.
Citation Information
Patent Citations
Virtual machine assurances
US20150178504A1
Processing a guest event in a hypervisor-controlled system
US20160132345A1