binding a security object of a security module to a security guest
By binding the confidentiality binding attribute of the security module to the security guest, and using trusted components to intercept the administrator's operations, the problem of unauthorized access to the security guest key in the computing environment is solved, thereby improving security and reliability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2020-12-10
- Publication Date
- 2026-05-22
AI Technical Summary
In computing environments, a secure visitor's key may be obtained by an unauthorized administrator or malicious visitor, leading to security issues, especially in shared computing environments where visitor owners want to ensure that their keys are accessed only by trusted components.
By binding the security module's confidentiality binding attribute to a security visitor, and using trusted components to intercept the administrator's blocking operations, the security module's communication and operations are ensured to be conducted only under the control of trusted components, preventing unauthorized access.
This system enables secure visitors in a computing environment to have their keys accessed only by trusted components, preventing unauthorized access and hacking attacks, and improving the security and reliability of the computing environment.
Smart Images

Figure CN114930328B_ABST
Abstract
Description
Background Technology
[0001] One or more aspects generally involve processing within a computing environment, and in particular, the protection of data within such an environment.
[0002] In a computing environment, cryptographic elements are useful technical components for protecting data. Information can be stored or transmitted in a cryptographically secure form to prevent unauthorized access to the stored or transmitted information. In some cases, such data protection can be implemented using software-based techniques; in others, hardware-supported and security-specific elements can be used. These specific elements may be referred to as Hardware Security Modules (HSMs), which can be used as part of a computer or information transmission system within a computing environment.
[0003] Hardware security modules may include specific circuitry to provide functionality for data encryption and decryption. This functionality may also include generating and storing encryption keys for guest systems (also known as visitors). Different visitors (e.g., virtual machines, virtual servers, etc.) are controlled by a hypervisor or virtual machine manager. Different visitors managed by a public hypervisor can be generated by different owners. Traditional hypervisors have complete control over the visitors they host. Specifically, the hypervisor has the ability to inspect and even modify the storage of the hosted visitors. In a cloud environment, the hypervisor and its administrators are completely trusted.
[0004] Some visitors managed by a hypervisor are secure visitors. A secure visitor is a visitor that can be hosted by one or more hypervisors that are not entirely trusted. When loaded, the visitor's image is protected, and the contents of the resources allocated to the visitor (e.g., memory, CPU registers, etc.) are protected for the visitor's entire lifetime. Visitor protection includes at least integrity protection (e.g., the hypervisor cannot maliciously alter any visitor's state), and may also include maintaining the confidentiality of the initial image, code, and data running on the visitor. Examples of environments that support secure visitors include AMD SEV (Advanced Microdevice Security Cryptographic Virtualization) and... Protected calculations. POWER is a trademark or registered trademark of International Business Machines Corporation in at least one jurisdiction. Summary of the Invention
[0005] This invention overcomes the shortcomings of the prior art and provides additional advantages by providing a computer program product for facilitating processing within a computing environment. The computer program product includes at least one computer-readable storage medium that can be read by at least one processing circuit and stores instructions for executing a method. The method includes binding at least one secure object of a security module of the computing environment to a secure visitor of the computing environment. The secure visitor is configured to use the security module. The binding includes determining, by a trusted component of the computing environment, whether the metadata of the secure visitor includes a confidential binding attribute of the security module. Based on determining that the metadata includes the confidential binding attribute, the trusted component configures the security module for the secure visitor in a selection mode. The selection mode prevents certain operations from being intercepted by a management program associated with the secure visitor. The trusted component intercepts security module communication. A cryptographic operation is performed on one or more secure objects communicating with the security module using the confidential binding attribute to provide a cryptographic result. The result of the security module communication is provided to a receiver. The result includes the cryptographic result.
[0006] This document also describes and claims protection for computer-implemented methods and systems relating to one or more aspects. Furthermore, this document also describes and claims protection for services relating to one or more aspects.
[0007] Additional features and advantages are achieved through the techniques described herein. Other embodiments and aspects are described in detail herein and are considered part of the claimed aspects. Attached Figure Description
[0008] One or more aspects are specifically pointed out and clearly claimed as examples in the claims at the end of the specification. The aforementioned objects, features, and advantages of one or more aspects will become apparent from the following detailed description taken in conjunction with the accompanying drawings, wherein:
[0009] Figure 1A An example of a computing environment that combines and uses one or more aspects of the present invention is described;
[0010] Figure 1B Depicting one or more aspects of the invention Figure 1A Further details of the computing environment;
[0011] Figure 2 An example of potential security issues encountered using certain methods of hardware security modules is described;
[0012] Figure 3 An embodiment of the process associated with binding a security object of a security module to a security visitor is described, based on one or more aspects;
[0013] Figure 4An example of a process for forwarding a request to a security module based on one or more aspects is described;
[0014] Figure 5 An example of a process that returns the result of a request to a secure visitor based on one or more aspects is described;
[0015] Figure 6A Another example of a computing environment that combines and uses one or more aspects of the present invention is described;
[0016] Figure 6B Show Figure 6A Further details about the memory;
[0017] Figure 7 An embodiment of a cloud computing environment is described; and
[0018] Figure 8 An example of an abstract model layer is described. Detailed Implementation
[0019] According to one or more aspects, a capability is provided to bind multiple security objects of a security module of a computing environment to a secure visitor of that computing environment. The security objects include, for example, confidential attributes (also referred to as secrets), such as keys or materials used to derive keys; 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 security object. One or more portions of the security objects may overlap. In one embodiment, the confidential attributes are wrapped by a selection key of the security module (such as a master key or another provided key (e.g., a visitor key)). The configuration of the security module includes securely storing the selection key in the memory of the security module. Data can be received by the security module in unencrypted form and can be encrypted on the security module, and vice versa. Encryption and / or decryption operations can be performed on the security module in hardware or software, or any combination thereof. In one example, the security module is a hardware security module (HSM), which is, for example, a pluggable component or a component separately connected to a computer system. In a particular example, the hardware security module is a cryptographic card; however, other examples exist.
[0020] refer to Figure 1AOne implementation of a computing environment incorporating and using one or more aspects of the present invention is described. In one example, the computing environment is based on the z / Architecture hardware architecture provided by International Business Machines Corporation, Armonk, New York. An embodiment of the z / Architecture hardware architecture is described in IBM Publication No. SA22-7832-11, 12th Edition, September 2017, “z / Architecture Principles of Operation,” which is hereby incorporated herein by reference in its entirety. IBM and z / Architecture are registered trademarks or trademarks of International Business Machines Corporation in at least one jurisdiction.
[0021] Computing environments can also be based on other architectures; the z / Architecture hardware architecture is just one example.
[0022] like Figure 1A As shown, computing environment 100 includes, for example, a computer system 102 shown in the form of a general-purpose computing device. Computer system 102 may include, but is not limited to, one or more processors or processing units 104 (e.g., central processing unit (CPU)), memory 106 (e.g., system memory, main memory, central memory, or storage device) coupled to each other via one or more buses and / or other connections 120, and one or more input / output (I / O) interfaces 108.
[0023] Bus 120 represents any one or more of several types of bus architectures, including memory buses or memory controllers, peripheral buses, accelerated graphics ports, and processor or local buses using any of the various bus architectures. By way of example and not limitation, such architectures include Industry Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA) Local Bus, and Peripheral Component Interconnect (PCI).
[0024] Memory 106 may include, for example, cache memory, such as shared cache memory 122, which may be coupled to local cache memory 123 of processor 104. Furthermore, memory 106 may include one or more programs or applications 124, operating system 126, and one or more computer-readable program instructions 128. The computer-readable program instructions 128 may be configured to perform the functionality of embodiments of various aspects of the present invention.
[0025] Computer system 102 can also communicate with one or more external devices 130, one or more network interfaces 132, and / or one or more data storage devices 134 via, for example, I / O interface 108. Example external devices include user terminals, tape drives, indicating devices, displays, etc. Network interface 132 enables computer system 102 to communicate with one or more networks, such as local area networks (LANs), general-purpose wide area networks (WANs), and / or public networks (e.g., the Internet), providing communication with other computing devices or systems.
[0026] Data storage device 134 may store one or more programs 136, one or more computer-readable program instructions 138, and / or data, etc. The computer-readable program instructions may be configured to perform the functions of embodiments of various aspects of the present invention.
[0027] Computer system 102 may include and / or be coupled to removable / non-removable, volatile / non-volatile computer system storage media. For example, it may include and / or be coupled to non-removable, non-volatile magnetic media (commonly referred to as "hard disk drives"), disk drives for reading from or writing to removable, non-volatile disks (e.g., "floppy disks"), and / or optical disc drives for reading from or writing to removable, non-volatile optical discs (such as CD-ROMs, DVD-ROMs, or other optical media). It should be understood that other hardware and / or software components may be used in conjunction with computer system 102. Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archiving storage systems.
[0028] Computer system 102 can operate with many other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for computer system 102 include, but are not limited to, personal computer (PC) 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.
[0029] refer to Figure 1BFurther details describe one embodiment of a computing environment (e.g., computing environment 100) that incorporates and / or uses one or more aspects of the present invention. In one example, computing environment 100 is a shared computing environment that includes a system (such as computer system 102) and a security module (such as hardware security module (HSM) 150), the security module including one or more selection keys (e.g., master key 152). In the example herein, the security module is a hardware security module; however, other security modules may be used in other embodiments.
[0030] In one example, computer system 102 includes trusted components such as trusted firmware 160 and a hypervisor 170 that interacts with one or more visitors (e.g., virtual machines (VMs)) including one or more secure visitors 180. An example of hypervisor 170 is the z / VM hypervisor provided by International Business Machines Corporation, Armonk, NY. z / VM is a registered trademark or trademark of International Business Machines Corporation in at least one jurisdiction. The hypervisor is sometimes referred to as a host. The hypervisor manages visitors executing within the computer system.
[0031] A guest or guest system is, for example, an operating system running in a virtual machine (VM) on a hypervisor. The hypervisor is used to assign one or more hardware security modules (e.g., hardware security module 150) to the guest system. The specific hardware security module assigned to the guest (e.g., hardware security module 150) may be configured with a cryptographic master key (e.g., master key 152; also known as a wrapping key) that is used to wrap the guest's key to provide a security key for the guest.
[0032] One or more of these visitors are considered secure visitors. A secure visitor is one whose state and memory are protected from access by the hypervisor. A secure visitor is launched using, for example, metadata that is transmitted to a trusted component (e.g., trusted firmware 160) in a manner that protects confidentiality and integrity and includes confidentiality binding attributes (e.g., HSM confidentiality binding attribute 162).
[0033] According to an aspect of the invention, the security key of a security visitor (e.g., security visitor 180) is considered an invalid (aka corrupted) security key 182. It is corrupted, rendering it unusable when occupied by another component including another visitor. In one aspect, as described herein, the security key is part of a security object, and the security object for a particular visitor is bound to a particular security module. As used herein, binding a security object includes binding at least a portion of the security object to both the particular visitor and the particular security module.
[0034] Trusted firmware 160 includes, for example, confidential binding attributes (also known as binding secrets, such as binding keys or data for deriving binding keys), such as the HSM confidential binding attribute of secure guest 162 for performing HSM bindings of a security object generated by a security module (e.g., HSM 150) to a secure guest (e.g., secure guest 180). In one example, HSM confidential binding attribute 162 is passed to the trusted component (e.g., trusted firmware 160) via the secure guest's metadata.
[0035] In one example, trusted firmware 160 also includes a control block 164 describing the HSM configuration of a secure guest (e.g., secure guest 180). Hardware security modules listed in this configuration are configured as secure guests in hypervisor delivery mode, such that password operations issued by the guest are not intercepted by the hypervisor (e.g., hypervisor 170). Instead, they are intercepted by trusted components (e.g., trusted firmware 160). As used herein, firmware includes, for example, microcode of a processor. It includes, for example, hardware-level instructions and / or data structures used in implementations of higher-level machine code. In one embodiment, it includes, for example, proprietary code typically delivered as microcode, which includes trusted software or underlying hardware-specific microcode and controls the operating system's access to the system hardware.
[0036] In one embodiment, the hardware security module (e.g., hardware security module 150) includes at least one master key 152 or another alternative key that is inaccessible to unauthorized parties. This master key is used to encrypt (i.e., wrap) a user-accessible key within the hardware security module. The term 'master key' may refer to an encryption / decryption key stored on the HSM. In one embodiment, the master key is not transmitted out of the hardware security module on which it is stored. The key wrapped by the HSM master key is called a security key.
[0037] There exist hardware security modules that support secure objects (also known as secure key objects) with integrity protection. In one example, the secure object contains a valid key, for example, encrypted by the hardware security module's master key. Furthermore, in another example, it contains 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. This integrity protection is generated by the hardware security module because it relies on the master key. An example of such a secure object with integrity protection is, for example, the secure key object of Crypto Express Adapters in EP11 mode, which includes a key wrapped by the master key, to which a Message Authentication Code (MAC) is concatenated. For example, the MAC is calculated using a key derived from the master key.
[0038] Hardware security modules (e.g., hardware security module 150) are tamper-proof and protect confidential attributes (e.g., keys of secure visitors) from unauthorized access (e.g., unscheduled physical insertions, physical penetrations, etc.). Hardware security modules may be assigned to different virtual resources, such as virtual machines (VMs), and in a virtual environment, a hardware security module may be unaware of its reassignment from one VM or visitor to another.
[0039] The flexibility in VM allocation can create security issues. In highly sensitive managed information technology (IT) environments, owners of managed guests (e.g., security guests) want to ensure that their security keys (e.g., wrapped in the master key of their HSM) cannot be used by untrusted guests they do not own, even if the guest is hacked or otherwise compromised and / or their security keys and / or other data are obtained.
[0040] Figure 2 An example of this security issue is shown. For example... Figure 2 As shown, in one example, a hardware security module (HSM) (such as hardware security module 150) contains a master key (such as master key 152) that is inaccessible to unauthorized parties. Master key 152 is used by the hardware security module's program code to encrypt (i.e., wrap) a key that is accessible to the user of the hardware security module. The key wrapped by the hardware security module's master key 152 is called a security key.
[0041] In one example, visitor 200 (visitor 1) possesses security key 220 and provides a hypervisor (e.g., hypervisor (HV) 170) to visitor 200 from hardware security module 150. As indicated herein, the hardware security module is tamper-proof and protects confidential attributes (e.g., secrets, such as keys) from unauthorized access (e.g., unscheduled physical insertion, physical penetration, etc.); however, visitor 200 does not have comparable security and is therefore vulnerable. In a virtual environment, because hypervisor 170 controls the allocation of resources to its visitors like the hardware security module, hardware security module 150 may be unaware of its reallocation from one visitor (i.e., VM) to another visitor (i.e., VM). Therefore, a security vulnerability exists if a malicious user exploits a second visitor 210, visitor 2, to compromise a given visitor 200, visitor 1, and the second visitor 210 retains the security key 220 assigned to visitor 200. Thus, the second visitor 210 gains (230) access to visitor 200's security key 220. If the management program (e.g., management program 170) assigns hardware security module 150 to guest 2 210, guest 2 is able to use security key 220.
[0042] The acquisition of keys described above is particularly problematic in highly sensitive managed IT environments where the owners of managed guests desire to maintain a more aggressive level of security than the administrators of the host environment. In a shared computing environment (e.g., shared computing environment 100), various guests may be owned by different entities, and the hardware security module 150 may belong only to some of those entities. Therefore, a guest owner (such as the owner of guest 200 to whom a security key (e.g., security key 220) is assigned) desires to maintain their security key 220, which is wrapped in the master key 152 of the hardware security module 150. This guest owner does not want security key 220 to be used by other guests (e.g., untrusted guests) owned by different entities utilizing resources in the shared computing environment. For example, in… Figure 2 In the scenario, the first visitor 200 and the second visitor 210 have different owners, and the owner of visitor 200 wants to ensure that even if visitor 200 is hacked, such as Figure 2 As shown, and security key 220 and / or other data are obtained (230), it cannot be used by any owner other than the owner to whom security key 220 was originally assigned. This is solved by one or more aspects of the present invention.
[0043] According to one or more aspects of the invention, a security visitor cannot access valid security objects (e.g., including security keys) that are available outside the running instance of the security visitor maintained by a trusted component. If an invalid security object can access the correct hardware security module confidential binding attributes, the trusted component makes it usable with the hardware security module.
[0044] In one aspect, a trusted component (e.g., trusted firmware 160) uses confidential binding attributes of a hardware security module (e.g., confidential binding attribute 162, such as a key or information from which the key is derived) to bind one or more security objects used by a security visitor to an appropriate hardware security module. For example, the trusted component uses confidential binding attributes to modify one or more integrity protection fields of a security object used by the security visitor with the hardware security module. Integrity protection fields are used to cryptographically bind attributes, such as those of a key (e.g., the purpose of the key (e.g., signing, encryption, etc.)), to a key value. When a security object is sent from the hardware security module to a security visitor, the trusted firmware uses confidential binding attributes to encrypt or otherwise change one or more of the integrity protection fields of the security object, such that the security visitor receives a security object bound to an instance of its instance run by the trusted component. When the security visitor sends the modified security object back to the hardware security module for new operations, the trusted component intercepts the operation and decrypts or otherwise removes the changes to the integrity protection of the security object, such that the hardware security module receives a security object it can use.
[0045] The trusted component maintains, for example, a hardware security module confidentiality binding attribute (e.g., confidentiality 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 a hardware security module for which the confidentiality binding attribute is included in the guest's metadata. Furthermore, in one embodiment, the trusted component enforces the configuration of hardware security modules accessible to the secure guest in hypervisor delivery mode, meaning that password operations (e.g., encryption / decryption) issued by the guest are not intercepted by the hypervisor. Instead, it bypasses the hypervisor in one or more ways and is intercepted by the trusted component.
[0046] In one embodiment, more than one security module can be configured for a guest, each with its own specific confidentiality binding attributes. Further, in one embodiment, the owner of a secure guest can choose to prepare one or more other secure guests using infrastructure containing the same confidentiality binding attributes as the first guest, allowing multiple guests owned by the same owner to exchange modified key objects. This allows another guest to take over computation in the event of a failure of the first guest, thus providing a high-availability solution.
[0047] See Figure 3-5 Further details are described regarding binding security objects from hardware security modules to security guests. Specifically, Figure 3 This illustrates an example of the logic for binding a security object of a security module (e.g., HSM 150) to a security guest (e.g., security guest 180); Figure 4 An example of the logic used to send a request to the security module is described; and Figure 5 An example of the logic used to return the result of a request to a secure visitor is described.
[0048] First, refer to Figure 3 This describes one embodiment of binding a security object of a security module (e.g., hardware security module 150) to a security guest (e.g., security guest 180). In one embodiment, the binding is a binding of a security object of a security guest configured to use the security module (e.g., 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 the image of the security guest and securely provided to a trusted component (e.g., trusted firmware 160) as part of the metadata of the security guest installed on the image provided for launching the security guest.
[0049] Query 300 to determine whether the metadata of a secure visitor (e.g., secure visitor 180) has a confidentiality binding attribute (e.g., confidentiality binding attribute 162). In step 302, if the metadata does not contain a confidentiality binding attribute, the process completes. Otherwise, in step 304, the process continues, where a security module (e.g., hardware security module 150) is configured to select a mode. In one example, a trusted component (e.g., trusted firmware 160) configures the security module for the hypervisor to pass a mode where password operations issued by the visitor are not intercepted by the hypervisor managing that visitor. In one example of the z / Architecture hardware architecture, this configuration is performed by configuring, for example, an cryptographic control block of the z / Architecture hardware architecture (e.g., the start of interpreted execution (SIE) instructions). In one example, the trusted component (e.g., trusted firmware 160) verifies whether each security module configured by the hypervisor for the secure visitor has a confidentiality binding attribute for that hardware security module, and removes each configuration of a security module that does not have a confidentiality binding attribute in the secure visitor's metadata from the cryptographic control block, and protects the cryptographic control block from modification by the hypervisor during the secure visitor's lifetime.
[0050] Further, in step 306, in one embodiment, the trusted component intercepts communication from one or more security modules. See also... Figure 4 Further described, in step 308, for example, the trusted component intercepts the request to the security module and verifies the invalidity of the request containing the security key object (referred to herein as the security key object) using a confidential binding attribute before forwarding the request to the security module. Additionally, as referenced... Figure 5 Further described, in step 310, the trusted component intercepts the result of the request processed by the security module and invalidates the object containing the security key that returns the security visitor (referred to herein as the security key object) using the confidential binding attribute.
[0051] See Figure 4In step 400, in one example, a secure visitor submits a request (also referred to as secure module communication) to a security module (e.g., hardware security module 150). This request (which is an encrypted request, such as a request to encrypt or decrypt data, text, etc.; generate a key, etc.) includes, for example, one or more invalid objects containing one or more invalid security keys. In step 402, the request is intercepted by a trusted component (e.g., trusted firmware 160), and in step 404, the trusted component searches the request for an object containing a security key. If an object containing a security key is found (query 406), then in step 408, at least a portion of the object designated as containing integrity data is decrypted using a key of the confidential binding attribute or a key derived from the confidential binding attribute (e.g., a key obtained from the confidential binding attribute). Processing then continues to step 404. However, if no object is found or no further object is found (query 406), then in step 410, the request as a result is forwarded to the hardware security module. The resulting request (which may be referred to herein as the cryptographic result) includes, for example, one or more valid security objects (assuming a key object is found at query 406) that are bound to a security module (e.g., HSM150) associated with a confidentiality binding attribute.
[0052] refer to Figure 5 In one example, at step 500, the security module (e.g., hardware security module 150) returns the result of the request. This request is again, for example, an encryption request. At step 502, the return of the result is intercepted by a trusted component (e.g., trusted firmware 160), and at step 504, the trusted component searches the result for an object containing a security key. If an object containing a security key is found (query 506), at step 508, at least a portion of the object designated as containing integrity data (e.g., a message authentication code) is encrypted using a key from the confidential binding attribute or a key derived from the confidential binding attribute (e.g., a key obtained from the confidential binding attribute). Processing then continues to step 504. However, if no object containing a security key or another object is found (query 506), at step 510, the result, which may have been modified, is forwarded to the security visitor. The result, which may be referred to herein as a cryptographic result, includes, for example, one or more invalid security objects (assuming a key object is found at query 506) bound to a security module (e.g., HSM 150) associated with a confidential binding attribute.
[0053] This document describes the ability to bind secure objects (e.g., including security keys) of a security module to a secure guest. In one or more aspects, a hardware security module is configured to a secure guest such that if the hardware security module is configured to another guest using different confidential binding attributes, keyless information and / or other data obtained from the secure guest allows the other guest to use the obtained key with the configured hardware security module. In one or more aspects, trusted firmware (aka Ultramaster (UV)) forces the secure guest to be configured (e.g., only) to access the hardware security module in hypervisor delivery mode. The metadata used to bootstrap the secure guest contains confidential binding attributes (e.g., secrets, information such as keys / or exported keys) for each hardware security module to be configured to the secure guest. The metadata is integrity-protected and cryptographically bound to the secure guest's boot image, and it is securely (i.e., confidential and integrity-protected) passed to the trusted firmware. The trusted firmware intercepts each request from the secure guest to the hardware security module. Using the confidential binding attributes, it invalidates each object containing a security key that is to be returned to the secure guest. Using this confidential binding attribute, it verifies each invalid object in the request sent to the hardware security module by the security visitor before forwarding the request to the hardware security module.
[0054] As described herein, a secure object includes, for example, a key protected by a hardware security module, such as a key wrapped by a master key securely stored in the hardware security module, or any object containing a key protected by the hardware security module (such as intermediate computation state). Such a secure object includes, for example, distinct (potentially overlapping) components, including, for example, the actual secret that can only be covered by the hardware security module (e.g., the wrapping key), some additional information that can be interpreted by software using the hardware security module (similar to object properties), and some integrity protection data that ensures the additional information is not separated from the secure object (security data and integrity data may overlap).
[0055] In order for invalidation and verification to occur on the secure object of the security visitor, the hypervisor must not interfere with any requests from the security visitor to the security module (e.g., a hardware security module). Therefore, the hardware security module configured as the security visitor is configured in hypervisor delivery mode, meaning the hypervisor does not intercept any requests from the security visitor to the hardware security module.
[0056] Trusted firmware intercepts, for example, every request from a secure visitor to the hardware security module. For each request sent to the hardware security module, the trusted firmware intercepts the request, and for each security object that includes a security key object in the request, replaces the corrupted integrity protection data with data containing fixed integrity protection before forwarding the request to the hardware security module.
[0057] Data containing fixed integrity protection can be derived from data containing compromised integrity protection by decrypting the data containing compromised integrity protection using a key derived from or using a key derived from the confidential binding attribute of the hardware security module.
[0058] In one example, for each response returned by the hardware security module, the trusted firmware intercepts the response, and for each security object in a response that includes a security key object, the data containing integrity protection is replaced with data containing corrupted integrity protection before the response is forwarded to the security visitor.
[0059] Data containing compromised integrity protection can be extracted from data containing integrity protection by encrypting the data containing integrity protection using a key from the confidential binding attribute of the hardware security module or a key derived from the confidential binding attribute of the hardware security module.
[0060] This document describes various aspects. Many variations and embodiments are possible without departing from the spirit of the various aspects of the invention. It should be noted that, unless otherwise inconsistent, each aspect or feature described herein, and its variations, may be combined with any other aspect or feature.
[0061] In one or more aspects, enclaves or similar technologies are not required. Furthermore, the hardware security module is not required to establish endpoints for secure channels (based on asymmetric cryptography). No special hardware security module, key manager, or key distribution service is needed. Furthermore, in order to bind the security module's security keys to secure guests, the trusted firmware does not need to track any sessions open to the security module or the key sets created by the security module.
[0062] One or more aspects of this invention are closely related to computer technology and facilitate processing within a computer, thereby improving its performance. Embodiments of this invention are inextricably linked to computing, at least because they aim to solve problems unique to computing and provide technical solutions within this scope. Various embodiments of this invention bind a security object (e.g., including a security key) of a security module (e.g., a hardware security module) to a specific visitor (e.g., a VM) belonging to a specific owner. Figure 2 The problem illustrated (which aspects of certain embodiments of the invention are used to solve) is specifically computational (i.e., an unauthorized visitor gains access to a secure wrapper key for an authorized visitor). Given that both the problem and the method are computationally specific, embodiments of the invention are inextricably linked to computation.
[0063] Other types of computing environments may also incorporate and utilize one or more aspects of the present invention, including but not limited to simulation environments, examples of which can be found in [reference]. Figure 6ADescription. In this example, computing environment 35 includes a local central processing unit (CPU) 37, memory 39, and one or more input / output devices and / or interfaces 41, coupled to each other, for example via one or more buses 43 and / or other connections. As an example, computing environment 35 may include a product provided by International Business Machines Corporation (Armunk, New York). Processors; and / or other machines based on architectures provided 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 jurisdiction. Intel is a trademark or registered trademark of Intel Corporation or its subsidiaries in the U.S. and other countries.
[0064] The native central processing unit 37 includes one or more native registers 45, such as one or more general-purpose registers and / or one or more special-purpose registers used during processing within the environment. These registers include information representing the state of the environment at any given point in time.
[0065] Furthermore, the local central processing unit 37 executes instructions and code stored in memory 39. In a particular example, the central processing unit executes emulator code 47 stored in memory 39. This code enables a computing environment configured in one architecture to emulate another architecture. For example, emulator code 47 allows a machine based on an architecture other than the z / Architecture hardware architecture (such as a PowerPC processor or other server or processor) to emulate the z / Architecture hardware architecture and execute software and instructions developed based on the z / Architecture hardware architecture.
[0066] Reference Figure 6B Further details related to emulator code 47 are described below. Guest instructions 49 stored in memory 39 include software instructions (e.g., machine instructions) developed to execute in an architecture different from the native CPU 37. For example, guest instructions 49 may have been designed to execute on a z / Architecture processor, but instead are emulated on a native CPU 37 (which could be, for example, an Intel processor). In one example, emulator code 47 includes an instruction fetching routine 51 to fetch one or more guest instructions 49 from memory 39, and optionally provides a local buffer for the fetched instructions. It also includes an instruction translation routine 53 to determine the type of the fetched guest instructions and translate them into one or more corresponding native instructions 55. This translation includes, for example, identifying the function to be executed by the guest instructions and selecting the native instruction to execute that function.
[0067] Furthermore, emulator code 47 includes emulation control routine 57 to enable the execution of native instructions. Emulation control routine 57 enables the native CPU 37 to execute a native instruction routine that emulates one or more previously obtained guest instructions, and upon completion of this execution, returns control to the instruction fetch routine to emulate the fetching of the next guest instruction or a set of guest instructions. Execution of native instruction 55 may include loading data from memory 39 into a register; storing data from a register back into memory; or performing an arithmetic or logical operation of a certain type as determined by the translation routine.
[0068] For example, each routine is implemented in software, which is stored in 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 some combination thereof. Registers of the native CPU 45 can be used, or registers of the emulated processor can be emulated by using locations in memory 39. In various embodiments, guest instructions 49, native instructions 55, and emulator code 47 may reside in the same memory or may be distributed across different memory devices.
[0069] One or more aspects may involve cloud computing.
[0070] It should be understood that while this disclosure includes a detailed description of cloud computing, the implementation of the teachings cited herein is not limited to cloud computing environments. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.
[0071] Cloud computing is a service delivery model that enables 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), which can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model may include at least five features, at least three service models, and at least four deployment models.
[0072] The features are as follows:
[0073] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring human interaction with the service provider.
[0074] Extensive network access: Capabilities are available through networks and accessed via standard mechanisms that facilitate the use of heterogeneous thin client or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0075] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. There is a sense of location independence because consumers typically do not have control or knowledge of the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center).
[0076] Rapid flexibility: The ability to provide capacity quickly and flexibly, automatically scaling down and up rapidly in some situations to scale up rapidly. For consumers, the available supply capacity often appears unlimited and can be purchased in any quantity at any time.
[0077] Measuring services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.
[0078] The service model is as follows:
[0079] Software as a Service (SaaS): This provides consumers with the ability to use the provider's applications running on cloud infrastructure. The applications can be accessed from different guest devices via a thin client interface such as a web browser (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.
[0080] Platform as a Service (PaaS): This provides consumers with the ability to deploy applications created by the consumer or acquired using programming languages and tools supported by the provider onto cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environment.
[0081] Infrastructure as a Service (IaaS): The capabilities offered to consumers are processing, storage, networking, and other basic computing resources that enable consumers to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but rather have control over the operating system, storage, deployed applications, and potentially limited control over selected networking components (e.g., host firewalls).
[0082] The deployment model is as follows:
[0083] Private cloud: A cloud infrastructure that operates solely for an organization. It can be managed by the organization or a third party and can exist on-site or off-site.
[0084] Community cloud: A cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.
[0085] Public cloud: Makes cloud infrastructure available to the public or large industry groups and is owned by an organization that sells cloud services.
[0086] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported (e.g., cloud bursting for load balancing between clouds).
[0087] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure comprising a network of interconnected nodes.
[0088] Now for reference Figure 7 This describes an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 52 to which local computing devices used by cloud consumers can communicate. These local computing devices include, for example, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N. Nodes 52 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as services that cloud consumers do not need to maintain on their local computing devices. It should be understood that... Figure 7 The types of computing devices 54A-N shown are intended to be illustrative only, and computing node 52 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).
[0089] See now Figure 8 This demonstrates a cloud computing environment of 50 ( Figure 7 This provides a set of functional abstractions. It should be understood beforehand. Figure 8 The components, layers, and functions shown are intended to be illustrative only, and embodiments of the invention are not limited thereto. As described, 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: a mainframe 61; a RISC (Reduced Instruction Set Computer) based server 62; a server 63; a blade server 64; a storage device 65; and network and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0091] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75.
[0092] In one example, management layer 80 may provide the following functionalities: Resource Provisioning 81 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 82 provides cost tracking as resources are utilized within the 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 for 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 resource allocation and management to ensure that required service levels are met. Service Level Agreement (SLA) Planning and Fulfillment 85 provides pre-scheduling and procurement of cloud resources based on anticipated future needs according to the SLA.
[0093] Workload layer 90 provides examples of functionalities that can be leveraged in a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics and processing 94; transaction processing 95; and secure object binding processing 96.
[0094] The various aspects of this invention can be systems, methods, and / or computer program products with any possible level of technical detail integration. A computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of this invention.
[0095] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in slots having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.
[0096] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.
[0097] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a standalone software package, partially on a user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing state information from the computer-readable program instructions to personalize the electronic circuitry in order to perform aspects of this invention.
[0098] The present invention will now be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0099] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium storing the instructions includes an article of manufacture containing instructions that implement aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0100] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, such that the instructions executed on the computer, other programmable apparatus, or other device perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0101] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. Each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the blocks may not occur in the order shown in the figures. For example, two blocks shown consecutively may actually be completed as a single step, executed simultaneously, substantially simultaneously, or with partial or complete temporal overlap, or the blocks may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.
[0102] In addition to the above, one or more aspects may be provided, supplied, deployed, managed, serviced, etc., by a service provider that manages the visitor environment. 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 visitors. In return, as an example, the service provider may receive payments from visitors under subscription and / or fee agreements. Alternatively or alternatively, the service provider may receive payments from the sale of advertising content to one or more third parties.
[0103] In one aspect, an application can be deployed to perform one or more embodiments. As an example, deploying an application includes providing computer infrastructure operable to perform one or more embodiments.
[0104] As another aspect, computing infrastructure can be deployed, including integrating computer-readable code into computing systems, wherein the combination of code and computing systems enables the execution of one or more implementations.
[0105] In another aspect, a process for integrating computing infrastructure may be provided, the process including integrating computer-readable code into a computer system. The computer system includes a computer-readable medium, wherein the computer medium includes one or more embodiments. The code, combined with the computer system, enables the execution of one or more embodiments.
[0106] While various embodiments have been described above, these embodiments are merely examples. For instance, computing environments with other architectures can be used to incorporate and utilize one or more embodiments. Furthermore, other trusted components and / or security modules can be used. Additionally, confidential binding attributes can be bound or linked to visitors via mechanisms other than metadata, and / or confidential binding attributes can be information / data other than keys or materials used to derive keys. Further still, the selection mode may not be the hypervisor delivery mode. In further embodiments, secure objects can be invalidated / verified in addition to performing cryptographic operations and / or in addition to performing cryptographic operations using confidential binding attributes. Many variations are possible.
[0107] Furthermore, other types of computing environments may be beneficial and are used. As an example, a data processing system suitable for storing and / or executing program code is available, comprising at least two processors directly or indirectly coupled to memory elements via a system bus. Memory elements include, for example, local memory, mass storage, and cache memory used during the actual execution of the program code, which provides temporary storage for at least some of the program code to reduce the number of times code must be retrieved from mass storage during execution.
[0108] Input / output (I / O) devices (including but not limited to keyboards, monitors, pointing devices, DASDs, tape drives, CDs, DVDs, thumb drives, and other storage media) can be coupled to the system directly or via an intermediate I / O controller. Network adapters can also be coupled to the system, enabling the data processing system to couple to other data processing systems or remote printers or storage devices via an intermediary private or public network. Modems, cable modems, and Ethernet cards are just some of the available types of network adapters.
[0109] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well. It should also be understood that when the terms “comprises” and / or “comprising” are used in this specification, they specify the presence of the stated features, integrals, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or combinations thereof.
[0110] All means or steps in the following claims, plus the corresponding structures, materials, actions, and equivalents (if any) of the functional elements, are intended to include any structure, material, or action for performing the said function in conjunction with other claimed elements as specifically claimed. Descriptions of one or more embodiments have been presented for purposes of illustration and description, but are not intended to be exhaustive or limited to the forms disclosed. Many modifications and variations will be apparent to those skilled in the art. The embodiments were chosen and described in order to best explain various aspects and practical applications, and to enable others skilled in the art to understand the different embodiments with different modifications suited to the particular intended use.
Claims
1. A computer program product for facilitating processing within a computing environment, the computer program product comprising: At least one computer-readable storage medium, said at least one computer-readable storage medium being readable and storing instructions for performing a method by at least one processing circuit, said method comprising: Binding at least one security object of the security module of the computing environment to a security visitor of the computing environment, the security visitor being configured to use the security module, and wherein the binding includes: The trusted component of the computing environment determines whether the metadata of the security visitor includes the confidential binding attribute of the security module. The confidential binding attribute is used to bind the at least one security object generated by the security module to the security visitor. The security module is separated from the trusted component and is assigned to the security visitor using a management program. The trusted component configures the security module for the secure visitor in a selection mode based on determining that the metadata includes the confidential binding attribute. The selection mode prevents certain operations from being intercepted by the management program associated with the secure visitor. The trusted component intercepts communication from the security module. The confidential binding attribute is used to perform cryptographic operations on one or more secure objects communicating with the security module to provide cryptographic results; and The results of the communication by the security module are provided to the receiver, including the cryptographic results.
2. The computer program product according to claim 1, wherein, The security module communication is a request from the security visitor to the security module, the cryptographic operation includes a decryption operation to decrypt at least a portion of the security objects in the requested one or more security objects, and wherein the receiver is the security module.
3. The computer program product according to claim 2, wherein, The decryption operation includes decrypting data within the secure object, which includes encrypted integrity protection, using a key obtained from the confidential binding attribute.
4. The computer program product according to claim 1, wherein, The security module communication includes the result of the request returned by the security module based on the processing request, the cryptographic operation includes an encryption operation that encrypts at least a portion of the security objects in the one or more security objects of the result, and wherein the receiver is the security visitor.
5. The computer program product according to claim 4, wherein, The encryption operation includes encrypting data within the secure object, which includes integrity protection calculated using the selected key of the security module to invalidate the secure object, and the encryption uses a key obtained from the confidential binding attribute.
6. The computer program product according to claim 5, wherein, The method further includes obtaining a request from the security visitor that includes one or more invalid objects, and wherein the cryptographic operation includes decrypting data within the one or more invalid objects to verify the one or more invalid objects, the decryption using the key obtained from the confidential binding attribute.
7. The computer program product according to claim 1, wherein, The security module includes a hardware security module.
8. The computer program product according to claim 1, wherein, The selection mode is the management procedure delivery mode.
9. The computer program product according to claim 1, wherein, The trusted component prevents the administrator from changing a set of security modules configured as the secure visitor.
10. The computer program product according to claim 1, wherein, The confidential binding attribute includes a key.
11. The computer program product according to claim 1, wherein, The one or more security objects include at least one or more security keys.
12. The computer program product according to claim 1, wherein, The method further includes preventing the security module from being configured to the security visitor based on the determination that the metadata of the security visitor does not include the confidential binding attribute.
13. The computer program product according to claim 1, wherein, The confidential binding attribute includes information about the exported key.
14. A computer system for facilitating processing within a computing environment, the computer system comprising: Memory; as well as A processor communicating with the memory, wherein the computer system is configured to perform a method comprising: Binding at least one security object of the security module of the computing environment to a security visitor of the computing environment, the security visitor being configured to use the security module, and wherein the binding includes: The trusted component of the computing environment determines whether the metadata of the security visitor includes the confidential binding attribute of the security module. The confidential binding attribute is used to bind the at least one security object generated by the security module to the security visitor. The security module is separated from the trusted component and is assigned to the security visitor using a management program. The trusted component configures the security module for the secure visitor in a selection mode based on determining that the metadata includes the confidential binding attribute. The selection mode prevents certain operations from being intercepted by the management program associated with the secure visitor. The trusted component intercepts communication from the security module. The confidential binding attribute is used to perform cryptographic operations on one or more secure objects communicating with the security module to provide cryptographic results; and The results of the communication by the security module are provided to the receiver, including the cryptographic results.
15. The computer system according to claim 14, wherein, The security module communication is a request from the security visitor to the security module, the cryptographic operation includes a decryption operation to decrypt at least a portion of the security objects in the requested one or more security objects, and wherein the receiver is the security module.
16. The computer system according to claim 15, wherein, The decryption operation includes decrypting data within the secure object, which includes encrypted integrity protection, using a key obtained from the confidential binding attribute.
17. The computer system according to claim 14, wherein, The security module communication includes the result of the request returned by the security module based on the processing request, the cryptographic operation includes an encryption operation that encrypts at least a portion of the security objects in the one or more security objects of the result, and wherein the receiver is the security visitor.
18. The computer system according to claim 17, wherein, The encryption operation includes encrypting data within the secure object, which includes integrity protection calculated using the selected key of the security module to invalidate the secure object, and the encryption uses a key obtained from the confidential binding attribute.
19. The computer system according to claim 14, wherein, The method further includes preventing the security module from being configured to the security visitor based on the determination that the metadata of the security visitor does not include the confidential binding attribute.
20. A computer-implemented method for facilitating processing within a computing environment, the computer-implemented method comprising: Binding at least one security object of the security module of the computing environment to a security visitor of the computing environment, the security visitor being configured to use the security module, and wherein the binding includes: The trusted component of the computing environment determines whether the metadata of the security visitor includes the confidential binding attribute of the security module. The confidential binding attribute is used to bind the at least one security object generated by the security module to the security visitor. The security module is separated from the trusted component and is assigned to the security visitor using a management program. The trusted component configures the security module for the secure visitor in a selection mode based on determining that the metadata includes the confidential binding attribute. The selection mode prevents certain operations from being intercepted by the management program associated with the secure visitor. The trusted component intercepts communication from the security module. The confidential binding attribute is used to perform cryptographic operations on one or more secure objects communicating with the security module to provide cryptographic results; and The results of the communication by the security module are provided to the receiver, including the cryptographic results.
21. The computer-implemented method as described in claim 20, wherein, The security module communication is a request from the security visitor to the security module, the cryptographic operation includes a decryption operation to decrypt at least a portion of the security objects in the requested one or more security objects, and wherein the receiver is the security module.
22. The computer-implemented method according to claim 20, wherein, The security module communication includes the result of the request returned by the security module based on the processing request, the cryptographic operation includes an encryption operation that encrypts at least a portion of the security objects in the one or more security objects of the result, and wherein the receiver is the security visitor.
23. The computer-implemented method according to claim 22, wherein, The encryption operation includes encrypting data within the secure object, which includes integrity protection calculated using the selected key of the security module to invalidate the secure object, and the encryption uses a key obtained from the confidential binding attribute.
24. The computer-implemented method according to claim 20, wherein, The selection mode is the management procedure delivery mode.
25. The computer-implemented method according to claim 20, wherein, The method further includes preventing the security module from being configured to the security visitor based on the determination that the metadata of the security visitor does not include the confidential binding attribute.