BIND SECURE OBJECTS OF A SECURITY MODULE TO A SECURE GUEST
The trusted component binds secure objects to secure guests using confidential attributes, addressing the risk of unauthorized key access in shared data processing environments by configuring hardware security modules in pass-through mode and intercepting transmissions to ensure secure key usage is restricted to authorized guests.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2020-12-10
- Publication Date
- 2026-05-13
AI Technical Summary
In shared data processing environments, secure keys assigned to virtual machines (VMs) managed by a hypervisor can be intercepted and used by unauthorized guests due to the hypervisor's control over resource allocation, posing a security risk in highly sensitive IT environments where different entities own different guests.
A trusted component, such as trusted firmware, binds secure objects to secure guests using confidential binding attributes, configuring hardware security modules in hypervisor pass-through mode and intercepting data transmissions to ensure only authorized guests can access and use secure keys.
Prevents unauthorized access to secure keys by intercepting and validating secure object transmissions, ensuring that only intended guests can utilize the hardware security module, thereby maintaining data confidentiality and integrity.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] One or more aspects generally relate to processing within a data processing environment and, in particular, to protecting data within such an environment.
[0002] In data processing environments, cryptographic elements are useful technological components for protecting data. Information can be stored or transmitted in a cryptographically secured form to prevent unauthorized access to the stored or transmitted information. In some cases, software-based methods can be used to implement such data protection; in other cases, hardware support and security-specific elements can be employed. These specific elements can be referred to as hardware security modules (HSMs), which can be used as part of a computer or information transmission system within a data processing environment.
[0003] A hardware security module can contain specific circuitry to provide data encryption and decryption capabilities. These capabilities can also include generating and storing cryptographic keys for use by guest systems, also known as guests. Different guests (e.g., virtual machines (VMs), virtual servers, etc.) are managed by a hypervisor or VM manager. Different guests managed by a shared hypervisor can be created by different owners. A traditional hypervisor has complete control over the guests it hosts. Specifically, the hypervisor has the ability to inspect and even modify the memory of the hosted guest. In a cloud environment, the hypervisor and its administrators must be completely trustworthy.
[0004] Some guests managed by a hypervisor are called secure guests. A secure guest is a guest that can be hosted by one or more hypervisors that are not fully trusted. 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, central processing unit, CPU, registers, etc.) is maintained throughout the guest's lifetime. This guest protection includes at least integrity protection (e.g., the hypervisor cannot maliciously modify any guest state) and may additionally include maintaining the confidentiality of the original image, the original code, and the original data running in the guest.Examples of environments that support secure guests include one by AMD SEV (Advanced Micro Devices Secure Encrypted Virtualization) and POWER. ® Protected data processing. POWER is a trademark or registered trademark of International Business Machines Corporation in at least one country.
[0005] WO 2011 / 156 261 A1 describes techniques for securely booting and running an image of a virtual machine (VM) in an untrusted cloud infrastructure. SUMMARY
[0006] By providing a computer program product that enables processing within a data processing environment, disadvantages of the prior art are overcome and additional advantages are provided. The computer program product includes at least one computer-readable storage medium that is readable by at least one processing circuit and stores instructions for executing a procedure. The procedure includes binding at least one secure object of a security module of the data processing environment to a secure guest of the data processing environment. The secure guest is configured to use the security module. The binding process includes a determination by a trusted component of the data processing environment as to whether the metadata of the secure guest contains a confidential binding attribute for the security module.Based on a determination that the metadata contains the confidential binding attribute, the trusted component configures the security module for the secure guest in a selected mode. This selected mode prevents certain operations from being intercepted by a hypervisor associated with the secure guest. The trusted component intercepts a security module data transmission. Using the confidential binding attribute, a cryptographic operation is performed on one or more secure objects within the security module data transmission to produce a cryptographic result. This result is then provided to a receiver and contains the cryptographic outcome.
[0007] Computer-implemented methods and systems relating to one or more aspects are also described and claimed herein. Furthermore, services relating to one or more aspects are also described and, where applicable, claimed herein.
[0008] The methods described herein achieve additional features and advantages. Further embodiments and aspects are described in detail herein and considered as part of the claimed aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] One or more aspects are particularly emphasized and expressly claimed as examples in the claims at the end of the description. The above statements, as well as the objects, features, and advantages of one or more aspects, will become apparent from the following detailed description in conjunction with the accompanying drawings, in which: Fig. 1A represents an example of a data processing environment that incorporates and uses one or more aspects of the present invention; Fig. 1B further details of the data processing environment from Fig. 1A represents one or more aspects of the present invention; Fig. 2 represents an example of possible security problems that may arise with certain approaches using a hardware security module; Fig. 3 represents an embodiment of processing which is related to binding secure objects of a security module to a secure guest, according to one or more aspects; Fig. 4 represents an example of a process for forwarding a request to a security module according to one or more aspects; Fig. 5 represents an example of a process for returning results of a request to a safe guest according to one or more aspects; Fig. 6A represents another example of a data processing environment that incorporates and uses one or more aspects of the present invention; Fig. 6B further details of the memory from Fig. 6A represents; Fig. 7 represents an embodiment of a cloud computing environment; and Fig. 8 represents an example of abstraction model levels. DETAILED DESCRIPTION
[0010] According to one or more aspects, a capability is provided to bind secure objects of a security module of a data processing environment to a secure guest of the data processing environment. A secure object contains, for example, a confidential attribute (also referred to as a secret), such as a key or material for deriving the key; additional information, such as one or more attributes of the object; and / or integrity protection data that ensures the additional information is not separated from the secure object. One or more parts of the secure object may overlap. In one embodiment, the confidential attribute is wrapped by a selected key, such as a master key or another provided key (e.g., a guest key) of the security module.A security module configuration includes securely storing the selected key in the security module's memory. Data can be received by the security module in unencrypted form and encrypted within the security module, or vice versa. The encryption and / or decryption operations can be performed in hardware, software, or any combination thereof within the security module. In one example, the security module is a hardware security module (HSM), which is, for instance, a pluggable component or a component that is individually connected to a computer system. In one specific example, the hardware security module is a cryptographic card; however, other examples exist.
[0011] An embodiment of a data processing environment that incorporates and utilizes one or more aspects of the present invention is described with reference to Fig. 1A is described. In one example, the data processing environment is based on the z / Architecture hardware architecture offered by International Business Machines Corporation, located in Armonk, New York. One embodiment of the z / Architecture hardware architecture is described in "z / Architecture Principles of Operation," IBM Publication No. SA22-7832-11, twelfth edition, September 2017, which is hereby incorporated by reference in its entirety. IBM and z / Architecture are registered trademarks or trademarks of International Business Machines Corporation in at least one country.
[0012] The data processing environment can also be based on other architectures; the z / Architecture hardware architecture is just one example.
[0013] As in Fig. As shown in Figure 1A, a data processing environment 100 contains, for example, a computer system 102, which is shown, for example, in the form of a universal data processing unit. Without being limited to this, the computer system 102 can contain one or more processors or one or more processing units 104 (e.g., central processing units (CPUs)), a working memory 106 (for example, also referred to as system memory, main memory, main storage, or memory), and one or more input / output (I / O) interfaces 108, which are interconnected via one or more buses and / or other connections 120.
[0014] Bus 120 represents at least one of any several types of bus structures, such as a memory bus or memory controller, a peripheral bus, an Accelerated Graphics Port (AGP), and a processor or local bus, where any one of a variety of bus architectures can be used. By way of example, and not intended as a limitation, such architectures include the ISA bus (Industry Standard Architecture), the MCA bus (Micro Channel Architecture), the EISA bus (Enhanced ISA), the VESA local bus (Video Electronics Standards Association), and the PCI bus (Peripheral Component Interconnect).
[0015] The main memory 106 can, for example, contain a cache, such as a shared cache 122, which can be connected to local caches 123 of the processors 104. Furthermore, the main memory 106 can contain one or more programs or applications 124, an operating system 126, and one or more computer-readable program instructions 128. The computer-readable program instructions 128 can be configured to perform functions of embodiments of aspects of the invention.
[0016] The computer system 102 can, for example, exchange data with one or more external units 130, one or more network interfaces 132, and / or one or more data storage units 134 via the I / O interfaces 108. Examples of external units include a user data station, a tape drive, a pointing unit, a display, etc. The network interface 132 enables the computer system 102 to exchange data with one or more networks, such as a local area network (LAN), a wide area network (WAN), and / or a public network (e.g., the Internet), thereby providing data transmission with other data processing units or systems.
[0017] The data storage unit 134 can store one or more programs 136, one or more computer-readable program instructions 138, and / or data, etc. The computer-readable program instructions can be configured to perform functions of embodiments of aspects of the invention.
[0018] The Computer System 102 can contain and / or be connected to other removable / non-removable, volatile / non-volatile computer system storage media. For example, it can contain and / or be connected to a non-removable, non-magnetic medium (commonly referred to as a "hard disk drive"), a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a floppy disk), and / or an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM, or other optical medium. It should be understood that other hardware and / or software components may also be used in conjunction with the Computer System 102.Examples include, but are not limited to, microcode, unit drivers, redundant processing units, external disk drive stacks, RAID systems, tape drives, and data archiving storage systems, etc.
[0019] The Computer System 102 can operate with numerous other general-purpose or specialized computer system environments or configurations. Examples of known data processing systems, environments, and / or configurations that may be suitable for use with the Computer System 102 include, but are not limited to, personal computer systems (PC systems), server computer systems, thin clients, thick clients, handheld or laptop units, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, mini-computer systems, mainframe computer systems, and distributed cloud computing environments incorporating any of the above systems or units, and the like.
[0020] Further details of an embodiment of a data processing environment (e.g., data processing environment 100) which incorporates and / or uses one or more aspects of the present invention are described with reference to Fig. 1B is described. In one example, the data processing environment 100 is a shared data processing environment that includes a system such as the computer system 102 and a security module such as a hardware security module (HSM) 150, which contains one or more selected keys (e.g., a master key 152). In the examples mentioned herein, the security module is a hardware security module; however, other security modules may be used in other embodiments.
[0021] In one example, the computer system 102 contains a trusted component, such as trusted firmware 160, and a hypervisor 170 that interacts with one or more guests (e.g., virtual machines (VMs)), including one or more secure guests 180. An example of the hypervisor 170 is the z / VM hypervisor, offered by International Business Machines Corporation, located in Armonk, New York. z / VM is a registered trademark or trademark of International Business Machines Corporation in at least one country. The hypervisor is sometimes referred to as a host. The hypervisor manages guests that run within the computer system.
[0022] A guest, or guest system, is, for example, an operating system running in a virtual machine (VM) within a hypervisor. The hypervisor is used to assign one or more hardware security modules (e.g., hardware security module 150) to the guest system. A specific hardware security module (e.g., hardware security module 150) assigned to the guest can be configured with a cryptographic master key (e.g., master key 154, also known as an wrapping key) to wrap a guest key and provide a secure key for the guest.
[0023] One or more of the guests are considered secure guests. A secure guest is a guest whose state and memory are protected from hypervisor access. A secure guest is started using, for example, metadata that is passed to the trusted component (e.g., the trusted firmware 160) in a way that protects confidentiality and integrity and includes a confidential binding attribute (e.g., a confidential HSM binding attribute 162).
[0024] According to one aspect of the present invention, a secure key of a secure guest, such as secure guest 180, is considered an invalid (also referred to as corrupted) secure key 182. It is corrupted so that it is unusable if intercepted by another component, such as another guest. According to another aspect, the secure key is part of a secure object, and the secure object of a particular guest is bound to a particular security module, as described herein. As used herein, binding a secure object involves binding at least a part of the secure object to the particular guest and the particular security module.
[0025] For example, trusted firmware 160 contains a confidential binding attribute (also referred to as a binding secret, e.g., a binding key or material for deriving a binding key), such as a confidential HSM binding attribute of a secure guest 162, which is used to perform an HSM binding of a secure object created by a security module (e.g., HSM 150) to a secure guest (e.g., secure guest 180). In one example, the confidential HSM binding attribute 162 is passed to the trusted component (e.g., trusted firmware 160) via metadata from the secure guest.
[0026] The trusted firmware 160 also includes, in one example, a control block 164 that describes the HSM configuration of a secure guest (e.g., secure guest 180). A hardware security module listed in this configuration is configured for the secure guest in a hypervisor pass-through mode, so that cryptographic operations initiated by a guest are not intercepted by a hypervisor (e.g., hypervisor 170). Instead, they are intercepted by a trusted component (e.g., the trusted firmware 160). As used here, firmware contains, for example, the processor's microcode. It contains, for example, the hardware-level instructions and / or data structures used to implement machine code at a higher level of abstraction.In one embodiment, for example, it contains manufacturer-specific code, which is usually provided as microcode containing trusted software, or as microcode specific to the underlying hardware and controlling operating system access to the system hardware.
[0027] In one embodiment, a hardware security module (e.g., the hardware security module 150) contains at least one master key 152 or other selected key that unauthorized actors cannot access. The master key is used to encrypt (i.e., wrap) keys available to users of the hardware security module. The term "master key" can refer to an encryption / decryption key stored in the HSM. In one embodiment, the master key is not transmitted from the hardware security module in which it is stored. Keys wrapped by an HSM master key are referred to as secure keys.
[0028] There are hardware security modules that support secure objects (also called secure key objects) with integrity protection. For example, a secure object might contain an effective key encrypted by the hardware security module's master key. Additionally, it might contain data that the hardware security module can use to verify that the secure object was created by the hardware security module using the current master key. Integrity protection is provided by the hardware security module because it depends on the master key. An example of such a secure object with integrity protection is a secure key object, e.g.,The Crypto Express adapter in EP11 mode, where a key is wrapped by the master key, with which a message authentication code (MAC) of the wrapped key is concatenated. The MAC is calculated, for example, using a key derived from the master key.
[0029] Hardware security modules (e.g., the Hardware Security Module 150) are tamper-proof and protect one or more confidential attributes (e.g., one or more keys of a secure guest) from unauthorized access (e.g., unplanned physical connection, physical infiltration, etc.). A hardware security module can be assigned to different virtual resources, such as virtual machines (VMs) and a virtual environment, and the hardware security module may be unaware of its reassignment from one virtual machine or virtual guest to another.
[0030] The flexibility of VM allocation can cause security problems. In highly sensitive hosted information technology (IT) environments, owners of hosted guests (e.g., secure guests) want to ensure that their secure keys (which are, for example, wrapped by their HSM's master key) cannot be used by untrusted guests that they do not own, even if the guests are hacked or otherwise compromised and / or the secure key and / or other data is intercepted.
[0031] Fig. Figure 2 illustrates an example of such a security problem. As in Fig. Figure 2 illustrates an example where a hardware security module (HSM), such as the Hardware Security Module 150, contains a master key, such as the Master Key 152, which unauthorized actors cannot access. The Master Key 152 is used by the HSM's program code to encrypt (i.e., wrap) keys that the HSM's program code makes available to its users. The keys wrapped by the HSM's Master Key 152 are called secure keys.
[0032] In one example, a guest 200, Guest1, possesses a secure key 220, which a hypervisor, e.g., Hypervisor (HV) 170, provided to Guest 200 from Hardware Security Module (HSM) 150. As explained here, HSMs are tamper-proof and protect confidential attributes (e.g., secrets such as keys) against unauthorized access (e.g., unplanned physical connection, physical infiltration, etc.); however, Guest 200 does not have comparable security and can therefore represent a vulnerability. Since, in a virtual environment, Hypervisor 170 controls the allocation of resources such as HSMs to its guests, HSM 150 may be unaware of its reassignment from one guest (i.e., one VM) to another guest (i.e., one VM).Thus, a security vulnerability exists if a malicious user hacks a specific guest 200, Guest1, using a second guest 210, Guest2, and the secure key 220 assigned to Guest 200 is retained by the second guest 210. Therefore, the second guest 210 can intercept the secure key 220 of Guest 200 (230). If the hypervisor (e.g., Hypervisor 170) assigns the hardware security module 150 to Guest2 210, Guest2 can use the secure key 220.
[0033] The above-mentioned key interception is particularly problematic in highly sensitive, hosted IT environments where the owner of hosted guests wants to maintain a level of security stricter than that of the host environment administrators. In a shared computing environment (e.g., shared computing environment 100), different guests may be owned by different entities, and the hardware security module 150 may only belong to certain of these entities. Thus, a guest owner, such as the owner of guest 200, who has been assigned a secure key (e.g., secure key 220), will want to retain their secure key 220, which is wrapped by the master key 152 of the hardware security module 150. This guest owner does not want secure key 220 to be intercepted by other guests (e.g.,untrusted guests) are used, which are owned by other entities that use resources in the shared data processing environment. For example, in . Fig. 2. The first guest (200) and the second guest (210) have different owners, and the owner of guest 200 wants to ensure that even if guest 200 is hacked, as in Fig. Figure 2 illustrates that if the secure key 220 and / or other data (230) are intercepted, it cannot be used by any other owner of the guest 200 to whom the secure key 220 was originally assigned. This is achieved by one or more aspects of the present invention.
[0034] According to one or more aspects of the present invention, a secure guest does not have access to a valid secure object (which, for example, contains a secure key) that is usable outside the executing instance of the secure guest maintained by the trusted component. An invalid secure object is made usable with the hardware security module by the trusted component if it has access to the correct confidential binding attribute of the hardware security module.
[0035] According to one aspect, the trusted component (e.g., the trusted firmware 160) uses a confidential binding attribute of the hardware security module (e.g., the confidential binding attribute 162, such as a key or material from which a key is derived) to bind one or more secure objects used by the secure guests to the appropriate hardware security module. For example, the trusted component uses the confidential binding attribute to modify one or more integrity protection fields of the secure objects that the secure guest uses with the hardware security module. The integrity protection fields are used to bind cryptographic binding attributes, such as a key purpose (e.g., signing, encryption, etc.), to the key value.When secure objects are sent from the hardware security module to the secure guest, the trusted firmware uses the confidential binding attribute to encrypt or otherwise modify one or more of the secure object's integrity protection fields so that the secure guest receives a secure object bound to its instance running through the trusted component. When the secure guest sends the modified secure object back to the hardware security module for a new operation, the trusted component intercepts the operation and decrypts or otherwise removes the modification to the secure object's integrity protection, so that the hardware security module receives a secure object it can use.
[0036] The trusted component maintains, for example, a confidential binding attribute of the hardware security module (e.g., confidential binding attribute 162) for each hardware security module that a secure guest is allowed to access. The trusted component enforces that a secure guest can only access hardware security modules for which a confidential binding attribute of the hardware security module is included in the guest's metadata. Furthermore, in one embodiment, the trusted component enforces that hardware security modules accessible to a secure guest are configured in a hypervisor pass-through mode, meaning that a cryptographic operation initiated by a guest (e.g., encryption / decryption) is not intercepted by the hypervisor. Instead, it bypasses the hypervisor in one or more ways and is intercepted by the trusted component.
[0037] In one embodiment, multiple security modules can be configured for a guest, each with its own specific confidential binding attribute. Furthermore, in another embodiment, the owner of a secure guest has the option to provide one or more other secure guests with infrastructure containing the same confidential binding attribute as the first guest, allowing multiple guests owned by the same owner to exchange modified key objects. This enables another guest to take over computations if the first guest fails, thus providing a high-availability solution.
[0038] Further details on binding secure objects of a hardware security module to a secure guest are provided with reference to the Fig. Sections 3 to 5 are described. In particular, it states Fig. 3 presents an example of logic to bind a secure object of a security module (e.g., the HSM 150) to a secure guest (e.g., the secure guest 180); Fig. 4 presents an example of logic for sending a request to a security module; and Fig. Figure 5 provides an example of logic for returning results of a request to a secure guest.
[0039] With reference to Fig. 3. First, an embodiment of binding a secure object of a security module (e.g., the hardware security module 150) to a secure guest (e.g., the secure guest 180) is described. In this embodiment, the binding of a secure object of a secure guest is configured to use a security module (e.g., the hardware security module 150), and the binding is based on a confidential binding attribute (e.g., a key) of the security module, which is cryptographically linked to an image of the secure guest and securely provided to a trusted component (e.g., the trusted firmware 160) as part of the installation of secure guest metadata provided to start an image of the secure guest.
[0040] The process determines whether the metadata of a secure guest (e.g., secure guest 180) has a confidential binding attribute (e.g., confidential binding attribute 162), QUERY 300. If the metadata does not contain a confidential binding attribute, this processing is complete, STEP 302. Otherwise, the processing continues, configuring a security module (e.g., the hardware security module 150) for a selected mode, STEP 304. In one example, the trusted component (e.g., the trusted firmware 160) configures the security module for a hypervisor pass-through mode, in which a cryptographic operation initiated by the guest is not intercepted by the hypervisor managing the guest. This configuration is performed in an example of the z / Architecture hardware architecture by, for example, configuring a cryptographic control block.A SIE (Start Interpretive Execution) instruction of the z / Architecture hardware architecture. In one example, a trusted component (e.g., trusted firmware 160) verifies for each security module configured by the hypervisor for the secure guest whether a confidential binding attribute exists for the hardware security module and removes any configuration of a security module for which no confidential binding attribute exists in the secure guest's metadata from the cryptographic control block, thus protecting the cryptographic control block from being modified by the hypervisor during the lifetime of the secure guest.
[0041] Furthermore, in one embodiment, the trusted component intercepts one or more security module data transmissions, STEP 306. For example, the trusted component intercepts requests to the security module and validates the invalid objects of the requests that contain secure keys (referred to herein as secure key objects) using the confidential binding attribute before forwarding the requests to the security module, STEP 308, as described with reference to Fig. 4 is further described. Additionally, the trusted component intercepts the results of a request processed by the security module and, using the confidential binding attribute, invalidates the objects in the results that contain secure keys (referred to herein as secure key objects) which are forwarded to the secure guest, STEP 310, as described with reference to Fig. 5 is described further.
[0042] With reference to Fig. In an example, a secure guest submits a request (also called a security module data transfer) to a security module (e.g., the hardware security module 150), STEP 400. The request, which is a cryptographic request such as a request to encrypt or decrypt data, text, etc., or to generate a key, etc., contains, for example, one or more invalid objects that contain one or more invalid secure keys. The request is intercepted by a trusted component (e.g., the trusted firmware 160), STEP 402, and the trusted component searches the request for an object that contains a secure key, STEP 404.If an object containing a secure key is found (STEP 406), at least a portion of the object, indicated as containing the integrity data, is decrypted using a key from the confidential binding attribute or a key derived from it (e.g., a key obtained from the confidential binding attribute) (STEP 408). Processing then proceeds to STEP 404. However, if no object or no further object is found (QUERY 406), the resulting request is forwarded to the hardware security module (STEP 410). If a key object is found in QUERY 406, the resulting request, which may be referred to here as a cryptographic result, contains, for example, one or more valid secure objects that are bound to the security module (e.g., the HSM 150) associated with the confidential binding attribute.
[0043] With reference to Fig. Step 5, in an example, shows a security module (e.g., the hardware security module 150) returning the result of a request (Step 500). The request is, for example, another cryptographic request. The return of the result is intercepted by a trusted component (e.g., the trusted firmware 160) (Step 502), and the trusted component searches the result for an object containing a secure key (Step 504). If an object containing a secure key is found (Step 506), at least a portion of the object, indicated as containing the integrity data (e.g., the message authentication code), is encrypted using a key from the confidential binding attribute or a key derived from it (e.g., a key obtained from the confidential binding attribute) (Step 508). Processing then continues with Step 504.However, if no object or no further object containing a secure key is found (QUERY 506), the potentially modified result is passed to the secure guest (STEP 510). If a key object is found in QUERY 506, the result, which may be described here as a cryptographic result, contains, for example, one or more invalidated secure objects that are bound to the security module (e.g., HSM 150) associated with the confidential binding attribute.
[0044] This describes a capability to bind secure objects of a security module (e.g., containing secure keys) to a secure guest. According to one or more aspects, a hardware security module is configured for a secure guest such that if the hardware security module is configured for another guest using a different confidential binding attribute, no key material and / or other data intercepted by the secure guest can enable the other guest to use the intercepted keys with the configured hardware security module. According to one or more aspects, the trusted firmware (also referred to as an ultravisor (UV)) enforces that secure guests be configured to access the hardware security module (e.g., only) in a hypervisor passthrough mode.The metadata used to start (boot) the secure guest contains a confidential binding attribute (e.g., a secret such as a key or material for deriving a key) for each hardware security module to be configured for the secure guest. This metadata is integrity-protected and cryptographically bound to the secure guest's boot image and securely (i.e., confidentially and with protected integrity) passed to the trusted firmware. The trusted firmware intercepts every request to the hardware security module from the secure guest. Using the confidential binding attribute, it invalidates any object containing a secure key that would be returned to the secure guest.Using the confidential binding attribute, it validates any invalidated object in a request sent from the secure guest to the hardware security module before the request is forwarded to the hardware security module.
[0045] As described herein, secure objects contain, for example, keys protected by a hardware security module, such as keys wrapped by a master key securely stored within the hardware security module, or any other object (such as an intermediate computation) containing a key protected by a hardware security module. Such secure objects contain, for example, various (possibly overlapping) parts, including, for example, the actual secret that can only be revealed by the hardware security module (e.g.,the wrapped key), a set of additional information (such as attributes of the object) that can be interpreted by the software using the hardware security module, and a set of integrity protection data that ensures that the additional information is not separated from the secure object (where the secure data and the integrity data may overlap).
[0046] In order for secure objects of a secure guest to be invalidated and validated, the hypervisor must not be able to interfere with any request from the secure guest to the security module (e.g., the hardware security module). Therefore, the hardware security modules configured for a secure guest must be configured in hypervisor pass-through mode, meaning the hypervisor does not intercept requests from the secure guest to the hardware security module.
[0047] The trusted firmware intercepts, for example, every request from the secure guest to the hardware security module. For each request sent to the hardware security module, the trusted firmware intercepts the request, and for each secure object in the request that contains a secure key object, corrupted integrity protection data is replaced with data containing corrected integrity protection before the request is forwarded to the hardware security module.
[0048] The data containing the corrected integrity protection is derived from the data containing the corrupted integrity protection by decrypting the data containing the corrupted integrity protection using a key from the confidential binding attribute of the hardware security module or a key derived from it.
[0049] In one example, for each response returned to the hardware security module, the trusted firmware intercepts the response, and for each secure object in the response that contains a secure key object, the data containing the integrity protection is replaced with data containing corrupted integrity protection before the response is forwarded to the secure guest.
[0050] The data containing the corrupted integrity protection is derived from the data containing the integrity protection by encrypting the data containing the integrity protection using a key from the confidential binding attribute of the hardware security module or a key derived from it.
[0051] Various aspects are described herein. Many modifications and embodiments are possible without deviating from the core concept of aspects of the present invention. It should be noted that each aspect or feature described herein, as well as variants thereof, can be combined with any other aspect or feature, provided this is not otherwise inconsistent.
[0052] According to one or more aspects, enclaves or similar technology are not required. Furthermore, it is not necessary for hardware security modules to be able to establish a secure channel endpoint (based on asymmetric cryptography). Dedicated hardware security modules, a key manager, or a key distribution service are also not required. To bind a security module's secure keys to a secure guest, the trusted firmware also does not need to track any sessions opened for the security module or the set of keys generated by the security module.
[0053] One or more aspects of the present invention are inextricably linked to computer technology and enable processing within a computer, thereby improving its performance. Embodiments of the present invention are inextricably linked to data processing at least because they are directed toward solving a problem specific to data processing and provide a technical approach that also falls within this field. Embodiments of the present invention bind a secure object (e.g., a secure key) of a security module (e.g., a hardware security module) to a specific guest (e.g., a virtual machine) belonging to a particular owner. The in Fig. The problem illustrated in Figure 2, which can be solved by means of aspects of some embodiments of the present invention, is specific to data processing (i.e., an unauthorized guest gains access to a secure, enveloped key belonging to an authorized guest). Since both the problem and the approach are specific to data processing, embodiments of the present invention are inextricably linked to data processing.
[0054] Other types of data processing environments may also incorporate and utilize one or more aspects of the present invention, including, but not limited to, emulation environments, one example of which relates to Fig. 6A is described. In this example, a data processing environment 35 contains, for example, a native central processing unit (CPU) 37, a memory 39, and one or more input / output units and / or interfaces 41, which are interconnected, for example, via one or more buses 43 and / or other connections. The data processing environment 35 can be a PowerPC ®-contains a processor offered by International Business Machines Corporation, located in Armonk, New York; and / or it may contain other machines based on architectures offered by International Business Machines Corporation, Intel Corporation, or other companies. PowerPC is a trademark or registered trademark of International Business Machines Corporation in at least one country. Intel is a trademark or registered trademark of Intel Corporation or its subsidiaries in the United States and other countries.
[0055] The native central processing unit 37 contains one or more native registers 45, such as one or more general-purpose registers and / or one or more special-purpose registers, which are used during processing within the environment. These registers contain data that represent the state of the environment at any given time.
[0056] Furthermore, the native central processing unit (CPU) executes instructions and code stored in memory (RAM) (39). In a specific example, the CPU executes emulator code (47) stored in RAM (RAM) (39). This code allows the computing environment configured in one architecture to emulate another architecture. For example, emulator code (47) enables machines based on architectures other than the z / Architecture hardware architecture, such as PowerPC processors or other servers or processors, to emulate the z / Architecture hardware architecture and execute software and instructions developed based on the z / Architecture hardware architecture.
[0057] Further details regarding emulator code 47 are provided with reference to Fig. 6B described. Guest instructions 49 stored in memory 39 contain software instructions (e.g., corresponding to machine instructions) designed to run on an architecture different from that of the native CPU 37. For example, the guest instructions 49 may have been designed for execution on a z / Architecture processor, but are instead emulated on the native CPU 320, which may be an Intel processor. In an example, the emulator code 47 includes an instruction fetch routine 51 to retrieve one or more guest instructions 49 from memory 39 and optionally to provide local buffering for the retrieved instructions. It also includes an instruction translation routine 53 to determine the type of guest instruction received and translate the guest instruction into one or more corresponding native instructions 55.This translation includes, for example, identifying the function to be performed by the guest instruction and selecting the native instruction(s) to execute the function.
[0058] Furthermore, the emulator code 47 includes an emulation control routine 57 to cause the native instructions to be executed. The emulation control routine 57 can cause the native CPU 37 to execute a routine of native instructions that emulate one or more previously received guest instructions, and upon completion of such execution, to return control to the instruction fetch routine to emulate receiving the next guest instruction or group of guest instructions. An execution of the native instructions 55 can involve loading data from memory 39 into a register; writing data back from a register into memory; or performing some other type of arithmetic or logical operation as determined by the translation routine.
[0059] Each routine is implemented, for example, in software that is stored in main memory and executed by the native central processing unit 37. In other examples, one or more routines or operations are implemented in firmware, hardware, software, or any combination thereof. The registers of the emulated processor can be emulated using the registers 45 of the native CPU or using locations in the main memory 39. In embodiments, the guest instructions 49, the native instructions 55, and the emulator code 47 can reside in the same main memory, or they can be distributed across different main memory units.
[0060] One or more aspects may relate to cloud computing.
[0061] It should be clarified that the implementation of the teachings presented herein is not limited to a cloud computing environment, although this disclosure contains a detailed description of cloud computing. Rather, embodiments of the present invention can be implemented together with any type of data processing environment, now known or later developed.
[0062] Cloud computing is a service delivery model that enables seamless, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing power, main memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management overhead or interaction with a service provider. This cloud model can include at least five properties, at least three service models, and at least four deployment models.
[0063] The properties are as follows: On-Demand Self-Service: A cloud user can unilaterally and automatically provide data processing functions such as server time and network storage as needed, without requiring human interaction with the service provider. Broad Network Access: Capabilities are available over a network, accessed through standard mechanisms that support use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). Resource pooling: The provider's data processing resources are pooled to serve multiple users using a multi-tenant model, with various physical and virtual resources being dynamically allocated and reassigned as needed. There is a perceived location independence, as the user generally has no control over or knowledge of the exact location of the provided resources, but may be able to define a location at a higher level of abstraction (e.g., country, state, or data center). Rapid Elasticity: Capabilities can be deployed quickly and elastically for rapid horizontal scaling (scale-out), in some cases automatically, and released quickly for rapid scale-in. To the user, the available capabilities often appear unlimited and can be purchased in any quantity at any time. Measured Service: Cloud systems automatically control and optimize resource usage by leveraging measurement capabilities at a level of abstraction appropriate for the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource consumption can be monitored, controlled, and reported, creating transparency for both the service provider and the user.
[0064] The service models are as follows: Software as a Service (SaaS): The functionality provided to the user consists of using the provider's applications running in a cloud infrastructure. Access to the applications can be via a thin-client interface, such as a web browser, from various client devices (e.g., sending an email message via the web). The user does not manage or control 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. Platform as a Service (PaaS): The capability provided to the user is to deploy applications created or obtained by the user, using programming languages and tools supported by the provider, within the cloud infrastructure. The user does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but has control over the deployed applications and potentially over configurations for the application hosting environment. Infrastructure as a Service (IaaS): The capability provided to the user consists of access to processing, storage, networking, and other basic data processing resources, enabling the user to deploy and run any software, including operating systems and applications. The user does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and potentially limited control over selected network components (e.g., host firewalls).
[0065] The following are the deployment models: Private Cloud: The cloud infrastructure is operated solely for one organization. It can be managed by the organization or a third party and can be located on the organization's own premises or on external premises. Community Cloud: The cloud infrastructure is shared by multiple organizations and supports a specific user community with common concerns (e.g., objectives, security requirements, policies, and considerations regarding regulatory compliance). It can be managed by the organizations themselves or by a third party and can be located on-premises or externally. Public Cloud: The cloud infrastructure is made available to the general public or a large industry group and belongs to an organization that sells cloud services. Hybrid Cloud: The cloud infrastructure is a composition of two or more clouds (private, community or public) that remain separate entities but are connected by a standardized or proprietary technology that enables data and application portability (e.g. cloud audience distribution for load balancing between clouds). A cloud computing environment is service-oriented, focusing on state independence, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure comprising a network of interconnected nodes.
[0066] With reference to Fig. Figure 7 illustrates a cloud computing environment 50. As shown, the cloud computing environment 50 has one or more cloud computing nodes 52 with which local data processing units used by cloud users, such as the electronic assistant (PDA, personal digital assistant) or mobile phone 54A, the desktop computer 54B, the laptop computer 54C, and / or the automotive computer system 54N, can exchange data. The nodes 52 can exchange data with each other. They can be grouped physically or virtually in one or more networks, such as private, community, public, or hybrid clouds (not shown), as described above, or in a combination thereof. This enables the cloud computing environment 50 to offer infrastructure, platforms, and / or software as a service, for which a cloud user does not need to maintain resources on a local data processing unit.It should be noted that the types of in . Fig. The data processing units 54A to N shown are for illustrative purposes only, and the data processing nodes 52 and the cloud computing environment 50 can exchange data with any type of computer unit via any type of network and / or any type of network-accessible connection (e.g., using a web browser).
[0067] With reference to Fig. Figure 8 shows a set of functional abstraction layers that are used by the cloud computing environment 50 ( Fig. 7) be provided. It should be clear from the outset that the in Fig. The components, layers, and functions shown in Figure 8 are intended for illustrative purposes only, and embodiments of the invention are not limited to them. As shown, the following layers and corresponding functions are provided:
[0068] A hardware and software layer 60 contains hardware and software components. Examples of hardware components include: mainframe computers 61; servers based on the RISC (Reduced Instruction Set Computer) architecture 62; servers 63; blade servers 64; storage units 65; and networks and network components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0069] A virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can 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.
[0070] In one example, an administration layer 80 can provide the functions described below. A resource provisioning layer 81 provides the dynamic procurement of data processing resources and other resources used to perform tasks within the cloud computing environment. A metering and pricing layer 82 provides cost tracking when using resources within the cloud computing environment and billing for the consumption of these resources. In one example, these resources could be application software licenses. A security layer provides identity verification for cloud users and tasks, as well as protection for data and other resources. A user portal 83 provides users and system administrators with access to the cloud computing environment.Service Level Agreement (SLA) management (84) provides the allocation and management of cloud computing resources to ensure that required service objectives are met. Service Level Agreement (SLA) planning and fulfillment (85) provides the advance planning and procurement of cloud computing resources for which a future requirement is anticipated, in accordance with an SLA.
[0071] A workload layer 90 provides examples of the functionality for which the cloud computing environment can be used. Examples of workloads and functions that can be provided by this layer include: mapping and navigation 91; software development and lifecycle management 92; delivery of training in virtual classrooms 93; data analytics processing 94; transaction processing 95; and processing 96 of secure object binding.
[0072] The aspects of the present invention may be a system, a method, and / or a computer program product with any possible degree of technical integration. The computer program product may include a computer-readable storage medium (or media) containing computer-readable program instructions stored thereon to induce a processor to execute aspects of the present invention.
[0073] A computer-readable storage medium can be a physical unit capable of retaining and storing instructions for use by an instruction execution unit. For example, a computer-readable storage medium can be an electronic storage unit, a magnetic storage unit, an optical storage unit, an electromagnetic storage unit, a semiconductor storage unit, or any suitable combination thereof, without limitation. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), and erasable programmable read-only memory (EPROM).Flash memory), static random-access memory (SRAM), a portable CD-ROM, a DVD (Digital Versatile Disc), a USB flash drive, a floppy disk, a mechanically coded unit such as punched cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. For the purposes of this usage, a computer-readable storage medium shall not be understood as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses traveling through an optical fiber cable), or electrical signals transmitted by a wire.
[0074] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to individual data processing units or, via a network such as the internet, a local area network (LAN), a wide area network (WAN), and / or a wireless network, to an external computer or storage device. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routing computers, firewalls, switching units, gateway computers, and / or edge servers. A network adapter card or network interface in each data processing unit receives computer-readable program instructions from the network and forwards them for storage on a computer-readable storage medium within the respective data processing unit.
[0075] The computer-readable program instructions for executing the steps of the present invention may be assembly instructions, ISA (Instruction Set Architecture) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for an integrated circuit, or both source code and object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., as well as conventional procedural programming languages such as the programming language "C" or similar programming languages.The computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, via the internet using an internet service provider).In some embodiments, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs) or programmable logic arrays (PLAs), can execute the computer-readable program instructions by using state information from the computer-readable program instructions to personalize the electronic circuits to implement aspects of the present invention.
[0076] Aspects of the present invention are described herein with reference to flowcharts and / or block diagrams of processes, devices (systems), and computer program products according to embodiments of the invention. It is noted that each block of the flowcharts and / or block diagrams, as well as combinations of blocks in the flowcharts and / or block diagrams, can be executed by means of computer-readable program instructions.
[0077] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to create a machine such that the instructions executed by the processor of the computer or other programmable data processing device produce a means of implementing the functions / steps specified in the block or blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored on a computer-readable storage medium capable of controlling a computer, programmable data processing device, and / or other units to operate in a particular manner, such that the computer-readable storage medium on which instructions are stored has a manufactured product, including instructions that implement aspects of the flowchart and / or block diagram.Implement the function / step specified in the blocks of the flowcharts and / or block diagrams.
[0078] The computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other unit to cause the execution of a series of process steps on the computer or other programmable device or other unit to create a computer-realized process, such that the instructions executed on the computer, other programmable device, or other unit implement the functions / steps specified in the block(s) of the flowcharts and / or block diagrams.
[0079] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, processes, and computer program products according to various embodiments of the present invention. In this context, each block in the flowcharts or block diagrams can represent a module, segment, or part of instructions that includes one or more executable instructions for performing the specific logical function(s). In some alternative embodiments, the functions mentioned in the block may occur in a different order than that shown in the figures.For example, two blocks shown consecutively may actually be executed as one step, simultaneously, substantially simultaneously, partially or completely overlapping in time, or the blocks may sometimes be executed in reverse order depending on the relevant functionality. It should also be noted that each block in the block diagrams and / or flowcharts, as well as combinations of blocks in the block diagrams and / or flowcharts, may be implemented by special hardware-based systems that perform the specified functions or steps, or by combinations of special hardware and computer instructions.
[0080] In addition to the above embodiments, one or more aspects may be provided, offered, implemented, managed, maintained, etc., by a service provider offering customer environment management. For example, the service provider may create, maintain, support, etc., computer code and / or computer infrastructure that performs one or more aspects for one or more customers. The service provider may, in turn, receive payment from the customer, for example, under a subscription and / or fee agreement. Additionally or alternatively, the service provider may receive payment from the sale of advertising content to one or more third parties.
[0081] According to one aspect, an application can be implemented to perform one or more implementations. For example, implementing an application might involve providing computer infrastructure capable of performing one or more implementations.
[0082] According to another aspect, a data processing infrastructure can be implemented which involves the integration of a computer-readable code into a data processing system, where the code, in conjunction with the data processing system, is able to perform one or more embodiments.
[0083] According to yet another aspect, a process for integrating a data processing infrastructure can be provided that involves integrating machine-readable code into a computer system. The computer system has a machine-readable medium, the computer medium having one or more embodiments. In conjunction with the computer system, the code is capable of performing one or more embodiments.
[0084] Although various implementations are described above, these are merely examples. For instance, data processing environments of other architectures can be used to contain and utilize one or more implementations. Furthermore, trusted components and / or security modules can be employed. Additionally, the confidential binding attribute can be bound to or associated with the guest through a mechanism other than metadata, and / or the confidential binding attribute can consist of information / data that is not a key or material for deriving a key. Moreover, the selected mode can be other than a hypervisor penetration mode.In another embodiment, the secure objects can be invalidated / validated in a manner other than by performing a cryptographic operation and / or in a manner other than by performing a cryptographic operation using the confidential binding attribute. Many variations are possible.
[0085] Furthermore, other types of data processing environments can be utilized. For example, a data processing system suitable for storing and / or executing program code can be used, containing at least two processors connected directly or indirectly to memory elements via a system bus. These memory elements include, for example, local memory used during the actual execution of the program code, mass storage, and cache memory, which provides temporary storage of at least a portion of the program code to reduce the frequency with which code needs to be retrieved from mass storage during execution.
[0086] Input / output (I / O) devices (including, but not limited to, keyboards, displays, pointing devices, direct access storage devices (DASDs), tapes, CDs, DVDs, USB flash drives, and other storage media, etc.) can be connected to the system either directly or via intermediary I / O controllers. Network adapters can also be connected to the system to enable the data processing system to connect to other data processing systems or to remote printers or storage devices via intermediary private or public networks. Modems, cable modems, and Ethernet cards are just some of the available types of network adapters.
[0087] The terminology used here serves only to describe certain embodiments and is not intended as a limitation. In the sense used here, the singular forms "ein / e / r," and "der / die / das" are also to include the plural forms, unless the context clearly indicates otherwise. It should be equally obvious that the verbs "zeigt auf" and / or "aufweisend" in this patent specification indicate the presence of the mentioned features, integers, steps, processes, elements, and / or components, without, however, excluding the presence or addition of one or more other features, integers, steps, processes, elements, components, and / or groups thereof.
[0088] The structures, materials, actions, and equivalents of all means or steps, in addition to the functional elements (if any) in the following claims, are intended to include all structures, materials, or actions by which the function can be performed in conjunction with other claimed elements, as expressly claimed herein. The description of one or more embodiments has been provided for illustrative and explanatory purposes and is not to be understood as complete or limiting with respect to the disclosed form. Those skilled in the art are aware that numerous modifications and variations are possible.The embodiment was selected and described to best explain the various aspects and practical application and to enable other skilled persons to understand different embodiments with various modifications as they are suitable for the respective use under consideration.
Claims
[1] Computer program product for enabling processing within a data processing environment, wherein the computer program product comprises: comprising at least one computer-readable storage medium that is readable by at least one processing circuit and stores instructions for carrying out a procedure: Binding at least one secure object of a security module (150) of the data processing environment to a secure guest (180) of the data processing environment, wherein the secure guest is configured to use the security module (150), and wherein the binding has: Determine (300) through a trusted component (160) of the data processing environment whether metadata of the secure guest (180) contains a confidential binding attribute for the security module (150), wherein the confidential binding attribute is to be used to bind the one or more secure objects generated by the security module (150) to the secure guest (180), wherein the security module (150) is separate from the trusted component and is assigned to the secure guest (180) via a hypervisor (170); Configure (304) by the trusted component (160) based on the finding that the metadata contains the confidential binding attribute, the security module (150) for the secure guest (180) in a selected mode, wherein the selected mode prevents certain operations from being intercepted by a hypervisor (170); Interception (306) of a security module data transmission by the trusted component (160); Performing a cryptographic operation on one or more secure objects of the security module data transmission using the confidential binding attribute to provide a cryptographic result; and Providing a result of the security module data transmission to a receiver, wherein the result contains the cryptographic result. [2] Computer program product according to claim 1, wherein the security module data transmission is a request from the secure guest (180) to the security module (150), wherein the cryptographic operation comprises a decryption operation to decrypt at least a part of a secure object of the one or more secure objects of the request, and wherein the receiver is the security module (150). [3] Computer program product according to claim 2, wherein the decryption operation comprises decrypting (408) data within the secure object which contains an encrypted integrity protection, wherein the decryption uses a key obtained from the confidential binding attribute. [4] Computer program product according to claim 1, wherein the security module data transmission comprises results of a request which are returned by the security module (150) based on processing of the request, wherein the cryptographic operation comprises an encryption operation to encrypt at least a part of a secure object of one or more secure objects of the results, and wherein the receiver is the secure guest. [5] Computer program product according to claim 4, wherein the encryption operation comprises encrypting (508) data within the secure object which includes an integrity protection calculated using a selected key of the security module (150) to invalidate the secure object, wherein the encryption uses a key obtained from the confidential binding attribute. [6] Computer program product according to claim 5, wherein the method further comprises receiving a request from the secure guest (180) containing one or more invalidated objects, and wherein the cryptographic operation comprises decrypting data within the one or more invalidated objects in order to validate the one or more invalidated objects, wherein the decryption uses the key obtained from the confidential binding attribute. [7] Computer program product according to claim 1, wherein the security module (150) comprises a hardware security module (150). [8] Computer program product according to claim 1, wherein the selected mode is a hypervisor (170) passthrough mode. [9] Computer program product according to claim 1, wherein the trusted component (160) prevents the hypervisor (170) from modifying a set of security modules configured for the secure guest (180). [10] Computer program product according to claim 1, wherein the confidential binding attribute comprises a key. [11] Computer program product according to claim 1, wherein the one or more secure objects contain at least one or more secure keys (182, 220). [12] Computer program product according to claim 1, wherein the method further comprises preventing the trusted component (160) from configuring the security module (150) for the secure guest (180) based on determining that the metadata of the secure guest (180) does not contain the confidential binding attribute. [13] Computer program product according to claim 1, wherein the confidential binding attribute comprises material for deriving the key. [14] Computer system (102) for enabling processing within a data processing environment, wherein the computer system (102) comprises: a working memory; and a processor (104) for data transfer with the main memory, wherein the computer system (102) is configured to perform a procedure, the procedure comprising: Binding at least one secure object of a security module (150) of the data processing environment to a secure guest (180) of the data processing environment, wherein the secure guest is configured to use the security module (150), and wherein the binding has: Determine (300) through a trusted component (160) of the data processing environment whether metadata of the secure guest (180) contains a confidential binding attribute for the security module (150), wherein the confidential binding attribute is to be used to bind the one or more secure objects generated by the security module (150) to the secure guest (180), wherein the security module (150) is separate from the trusted component and is assigned to the secure guest (180) via a hypervisor (170); Configure (304) by the trusted component (160) based on the finding that the metadata contains the confidential binding attribute, the security module (150) for the secure guest (180) in a selected mode, wherein the selected mode prevents certain operations from being intercepted by a hypervisor (170); Interception (306) of a security module data transmission by the trusted component (160); Performing a cryptographic operation on one or more secure objects of the security module data transmission using the confidential binding attribute to provide a cryptographic result; and Providing a result of the security module data transmission to a receiver, wherein the result contains the cryptographic result. [15] Computer system (102) according to claim 14, wherein the security module data transmission is a request from the secure guest (180) to the security module (150), wherein the cryptographic operation comprises a decryption operation to decrypt at least a part of a secure object of the one or more secure objects of the request, and wherein the receiver is the security module (150). [16] Computer system (102) according to claim 15, wherein the decryption operation comprises decrypting (408) data within the secure object which contains an encrypted integrity protection, wherein the decryption uses a key obtained from the confidential binding attribute. [17] Computer system (102) according to claim 14, wherein the security module data transmission comprises results of a request which are returned by the security module (150) based on processing of the request, wherein the cryptographic operation comprises an encryption operation to encrypt at least a part of a secure object of one or more secure objects of the results, and wherein the receiver is the secure guest. [18] Computer system (102) according to claim 17, wherein the encryption operation comprises an encryption (508) of data within the secure object which includes an integrity protection calculated using a selected key of the security module (150) to invalidate the secure object, wherein the encryption uses a key obtained from the confidential binding attribute. [19] Computer system (102) according to claim 14, wherein the method further comprises preventing the trusted component (160) from configuring the security module (150) for the secure guest (180) based on determining that the metadata of the secure guest (180) does not contain the confidential binding attribute. [20] Computer-implemented method for enabling processing within a data processing environment, wherein the computer-implemented method comprises: Binding at least one secure object of a security module (150) of the data processing environment to a secure guest (180) of the data processing environment, wherein the secure guest is configured to use the security module (150), and wherein the binding has: Determine (300) through a trusted component (160) of the data processing environment whether metadata of the secure guest (180) contains a confidential binding attribute for the security module (150), wherein the confidential binding attribute is to be used to bind the one or more secure objects generated by the security module (150) to the secure guest (180), wherein the security module (150) is separate from the trusted component and is assigned to the secure guest (180) via a hypervisor (170); Configure (304) by the trusted component (160) based on the finding that the metadata contains the confidential binding attribute, the security module (150) for the secure guest (180) in a selected mode, wherein the selected mode prevents certain operations from being intercepted by a hypervisor (170); Interception (306) of a security module data transmission by the trusted component (160); Performing a cryptographic operation on one or more secure objects of the security module data transmission using the confidential binding attribute to provide a cryptographic result; and Providing a result of the security module data transmission to a receiver, wherein the result contains the cryptographic result. [21] Computer-implemented method according to claim 20, wherein the security module data transmission is a request from the secure guest (180) to the security module (150), wherein the cryptographic operation comprises a decryption operation to decrypt at least a part of a secure object of the one or more secure objects of the request, and wherein the receiver is the security module (150). [22] Computer-implemented method according to claim 20, wherein the security module data transmission comprises results of a request which are returned by the security module (150) based on processing of the request, wherein the cryptographic operation comprises an encryption operation to encrypt at least a part of a secure object of one or more secure objects of the results, and wherein the receiver is the secure guest. [23] Computer-implemented method according to claim 22, wherein the encryption operation comprises encrypting (508) data within the secure object which contains an integrity protection calculated using a selected key of the security module (150) to invalidate the secure object, wherein the encryption uses a key obtained from the confidential binding attribute. [24] Computer-implemented method according to claim 20, wherein the selected mode is a hypervisor (170) pass-through mode. [25] Computer-implemented method according to claim 20, wherein the method further comprises preventing the trusted component (160) from configuring the security module (150) for the secure guest (180) based on determining that the metadata of the secure guest (180) does not contain the confidential binding attribute.