System, method, and computer program product (multi-level protection of data-centric objects)

The method and system protect data objects by using HSMs with location-specific decryption keys, ensuring secure access and control across distributed environments, addressing the challenge of moving protected data.

JP7764092B2Active Publication Date: 2025-11-05INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021194758
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-04
Filing Date
2021-11-30
Publication Date
2025-11-05
Estimated Expiration
2041-11-30

AI Technical Summary

Technical Problem

Data protected within a trust boundary in existing data protection systems cannot be moved to other destinations.

Method used

A method and system that protect data objects based on their physical location by using Hardware Security Modules (HSMs) to manage decryption keys, where each HSM has a unique master key and a set of decryption keys associated with its location, allowing access only to authenticated users with access to the correct HSM.

Benefits of technology

Enables secure data access control across geographically distributed computing environments, separating administrative duties and enhancing protection by ensuring that data can only be decrypted by the appropriate HSM, thus maintaining data security during relocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007764092000001
    Figure 0007764092000001
  • Figure 0007764092000002
    Figure 0007764092000002
  • Figure 0007764092000003
    Figure 0007764092000003
Patent Text Reader

Abstract

To protect data objects in a computing environment based on a physical location.SOLUTION: A computing system receives a request to access encrypted data from an authenticated user. The encrypted data includes information about a data encryption key used for the encryption. The computing system provides the encrypted data to the computer system where the user was authenticated. The computer system includes a set of decryption keys protected by a master key stored within a hardware security module associated with the location of the hardware security module. The hardware security module decrypts the encrypted data based on a determination that the data encryption key corresponds to one of the decryption keys in the set. The set of decryption keys is determined based on the location of the hardware security module.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates generally to data protection, and more particularly to protecting data objects in a computing environment based on their physical location. [Background technology]

[0002] To protect their data, companies often use data protection systems that include a perimeter of trust. Summary of the Invention [Problem to be solved by the invention]

[0003] In such systems, data protected within the trust boundary cannot be moved to other destinations. [Means for solving the problem]

[0004] An embodiment of the present invention is directed to a method for protecting data objects in a computing environment based on their physical location. A non-limiting, exemplary computer-implemented method includes receiving, by a computing system of the computing environment, a request to access encrypted data from an authenticated user, the encrypted data including information about a data encryption key used to encrypt the encrypted data. The method also includes providing, by the computing system, the encrypted data to the computer system where the user is authenticated, the computer system including a set of decryption keys associated with the location of a hardware security module and protected by a master key stored within the hardware security module. The method further includes decrypting, by the hardware security module, the encrypted data based on a determination that the data encryption key corresponds to one of the set of decryption keys, the set of decryption keys being determined based on the location of the hardware security module.

[0005]

[0003] Embodiments of the present invention are directed to a system for protecting data objects in a computing environment based on their physical location. A non-limiting exemplary system includes a first computing system, a second computing system, and a data storage device in communication with each other. The first computing system includes a first hardware security module located at a first location and including a first master key that protects a first set of decryption keys. The second computing system includes a second hardware security module located at a second location and including a second master key that protects a second set of decryption keys. The first set of decryption keys is determined based on the first location, and the second set of decryption keys is determined based on the second location.

[0006] An embodiment of the present invention is directed to a computer program product for protecting data objects in a computing environment based on their physical location. A non-limiting exemplary computer program product includes a computer-readable storage medium embodying program instructions, the program instructions executable by a processor to cause the processor to perform operations, including receiving, by a computing system of the computing environment, a request to access encrypted data from an authenticated user, the encrypted data including information about a data encryption key used to encrypt the encrypted data. The operations also include providing, by the computing system, the encrypted data to the computer system where the user is authenticated, the computer system including a set of decryption keys associated with the location of a hardware security module and protected by a master key stored within the hardware security module. The operations further include decrypting, by the hardware security module, the encrypted data based on a determination that the data encryption key corresponds to one of the set of decryption keys, the set of decryption keys being determined based on the location of the hardware security module.

[0007] Additional technical features and advantages are realized through the techniques of the present invention. Embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed subject matter. For a better understanding, reference is made to the detailed description and drawings.

[0008] The specifics of the exclusive rights set forth herein are particularly pointed out and distinctly claimed in the claims at the end of this specification. The foregoing and other features and advantages of embodiments of the present invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a block diagram of a computing environment including a system for protecting data objects based on physical location, in accordance with one or more embodiments of the present invention. [Figure 2] FIG. 1 is a flow diagram of a method for protecting data objects in a computing environment based on physical location, in accordance with one or more embodiments of the present invention. [Figure 3] FIG. 1 illustrates a computing system in accordance with one or more embodiments of the present invention. [Figure 4] FIG. 1 illustrates a cloud computing environment in accordance with one or more embodiments of the present invention. [Figure 5] FIG. 1 illustrates abstraction model layers in accordance with one or more embodiments of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0010] The diagrams shown herein are exemplary. Many variations may be made to the diagrams or operations described herein without departing from the spirit of the invention. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. Additionally, the term "coupled" and variations thereof indicate that there is a communication path between two elements and do not imply a direct connection between the elements without an intervening element / connection between them. All of these variations are considered part of this specification.

[0011] Embodiments include methods, systems, and computer program products for protecting data objects in a computing environment based on physical location. In an exemplary embodiment, a computing system at each location is associated with a Hardware Security Module (HSM), and the HSM is used to protect a master key that serves as a wrapping key for protecting keys stored on that computing system. As a result, keys stored on the computing system are bound to the HSM. In an exemplary embodiment, access to encrypted data is restricted to users with access to the HSM and the computing system, controlled through traditional enterprise technologies, such as the Lightweight Directory Access Protocol (LDAP).

[0012] In one embodiment, a master secret is used to unlock the entire hierarchy of keys. In some embodiments, the master secret is stored in a file within the computing system, protected by n randomly generated values, which are used to derive the encryption key used to encrypt the master secret. In one embodiment, the creation of the master key is performed within a trusted computing environment that does not allow direct physical access to the computing system. The n randomly generated values ​​can themselves be secured by encryption using an HSM, which ties them to a specific HSM. These randomly generated values ​​are used to control access to the remaining encryption / decryption keys within the computing system. When data is encrypted, information about the key used during encryption is embedded within the data.

[0013] Referring now to FIG. 1, a block diagram of a computing environment 100 including a system for protecting data objects based on physical location is shown, in accordance with one or more embodiments of the present invention. In an exemplary embodiment, computing environment 100 includes multiple computing systems 110, each of which includes a hardware security module (HSM) 112. In an exemplary embodiment, one or more of computing systems 110 may be embodied in a computing system such as that shown in FIG. 3. In other embodiments, one or more of computing systems 110 may be embodied in a mainframe computing system, such as a Z / ARCHITECTURE® mainframe computer sold by IBM®. In other embodiments, one or more of computing systems 110 may be embodied in a cloud computing system, such as that shown in FIGS. 4 and 5. HSM 112 is a physical computing device configured to safeguard and manage digital keys and perform encryption, decryption, and other cryptographic functions. In one embodiment, HSM 112 is a CRYPTOEXPRESS card sold by IBM®.

[0014] Computing environment 100 also includes network 120 configured to facilitate communication between computing system 110, authentication system 130, and data storage system 140. Network 120 may be one or more of: public (e.g., the Internet), private (e.g., a local area network, a wide area network, a virtual private network), or a combination thereof, and may include wireless and wired transmission systems (e.g., satellite, cellular network, terrestrial network, etc.). In an exemplary embodiment, authentication system 130 is a centralized identity management system configured to authenticate users of the computing system using conventional enterprise technologies, such as Lightweight Directory Access Protocol (LDAP). Authentication system 130 may be embodied in a computing system, such as that shown in FIG. 3, or a cloud computing system, such as those shown in FIGS. 4 and 5.

[0015] Computing environment 100 further includes a data storage system 140 configured to store data objects accessible by any computing system 110 within the computing environment. In an exemplary embodiment, one or more of the data objects are stored in an encrypted format. Data storage system 140 may be embodied in a computing system, such as that shown in FIG. 3, or a cloud computing system, such as that shown in FIGS. 4 and 5.

[0016] In an exemplary embodiment, each HSM 112 contains a unique master key 116a, 116n that serves as a wrapping key for protecting keys 114. Keys 114 are used to unlock key stores 118. The use of HSMs 112 and unique master keys 116a, 116n binds key stores 118 and their contents to HSMs 112, thereby restricting access to encrypted data objects to users with access to that HSM 112 and associated computing systems 110. In an exemplary embodiment, key stores 118 contain a hierarchy of keys, each key being used to decrypt data objects encrypted by data storage system 140. In an exemplary embodiment, keys 114 on each computing system 110 are configured to unlock different portions or subsets of the hierarchy of keys in key stores 118.

[0017] Referring now to FIG. 2, a flow diagram of a method 200 for protecting data objects in a computing environment based on physical location is shown, in accordance with one or more embodiments of the present invention. As indicated in block 202, method 200 includes receiving a request to access encrypted data from an authenticated user. In an exemplary embodiment, the encrypted data includes information regarding a data encryption key used to encrypt the encrypted data. Next, as indicated in block 204, method 200 includes providing the encrypted data to a computer system where the user is authenticated. In an exemplary embodiment, the authenticated user is authenticated by an authentication system of the computing environment configured to verify the identity of the user of the computer system.

[0018] In an exemplary embodiment, a computer system includes a set of decryption keys protected by a master key stored within a hardware security module, the master key being associated with the location of the hardware security module. The set of decryption keys is configured to decrypt a subset of encrypted data objects within an encrypted data storage device of the computing environment. In an exemplary embodiment, the master key is unique to the hardware security module. In an exemplary embodiment, the master key is loaded into the hardware security module by a security administrator of the computing environment.

[0019] Method 200 also includes decrypting, by the hardware security module, the encrypted data based on a determination that the data encryption key corresponds to one of the set of decryption keys, the set of decryption keys being determined based on the location of the hardware security module. In an exemplary embodiment, method 200 includes denying access to the encrypted data based on a determination that the data encryption key does not correspond to one of the set of decryption keys. In an exemplary embodiment, identifying the hardware security module associated with the location includes identifying one or more attributes of the authenticated user. The one or more attributes of the authenticated user include one or more of the authenticated user's physical location, the authenticated user's access group, and the authenticated user's role within an organization.

[0020] In an exemplary embodiment, when a user wants to access protected data within a computing environment, multiple authentication checks are performed. First, the user must authenticate with an authentication system. Next, the user communicates protected data to a computing system within the computing environment, and the protected data contains embedded information about the data encryption key (DEK) used to protect that data. The DEK is then found within the computing system, and the DEK is used to decrypt the protected data. Decryption of the protected data is successful only in environments where an HSM is available to decrypt and use the key material. As a result, a physical boundary can be created whereby a user can log in to different computing systems throughout the computing environment, but the user can only access specific types of protected data within each computing system based on the HSM associated with that computing system.

[0021] One or more embodiments of the present invention provide technical improvements over current methods of data protection. In an exemplary embodiment, a computing environment provides separation of duties between system administrators and security administrators, enabling a higher level of protection and control of sensitive data in geographically distributed computing environments. In an exemplary embodiment, a security administrator can eliminate a computing system's access to protected data by removing that computing system's HSM access without interacting with the computing system's system administrator. Additionally, a system administrator can replicate a computing system within a computing environment from one location to a second location, but the security administrator must provision an HSM at the second location to allow users at the second location to access the protected data.

[0022] Referring now to FIG. 3, a computer system 300 according to one embodiment is illustrated. The computer system 300 may be an electronic computer framework that includes and / or utilizes any number of computing devices and networks, or combinations thereof, utilizing various communication technologies, as described herein. The computer system 300 may be easily scalable, extensible, and modular, with the ability to change into different services or reconfigure some features independently of others. The computer system 300 may be, for example, a server, desktop computer, laptop computer, tablet computer, or smartphone. In some examples, the computer system 300 may be a cloud computing node. The computer system 300 may be described in the general context of computer system-executable instructions, such as program modules, executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system 300 may be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

[0023] As shown in FIG. 3, computer system 300 includes one or more central processing units (CPUs) 301a, 301b, 301c, etc. (collectively or generically referred to as processor 301). Processor 301 may be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. Processor 301, also referred to as a processing circuit, is coupled to system memory 303 and various other components via system bus 302. System memory 303 may include read-only memory (ROM) 304 and random access memory (RAM) 305. ROM 304 is coupled to system bus 302 and may include a basic input / output system (BIOS) that controls certain basic functions of computer system 300. RAM is read / write memory coupled to system bus 302 for use by processor 301. During operation, system memory 303 provides temporary memory space for the execution of the aforementioned instructions. System memory 303 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.

[0024] Computer system 300 includes an input / output (I / O) adapter 306 and a communications adapter 307 coupled to a system bus 302. I / O adapter 306 may be a small computer system interface (SCSI) adapter that communicates with a hard disk 308 or any other similar component or combination thereof. I / O adapter 306 and hard disk 308 are collectively referred to herein as mass storage 310.

[0025] Software 311 executed on computer system 300 may be stored in mass storage 310. Mass storage 310 is an example of a tangible storage medium readable by processor 301, and software 311 is stored as instructions executed by processor 301 to operate computer system 300, for example, as described below in connection with various figures. Examples of computer program products and the execution of such instructions are discussed in more detail herein. Communications adapter 307 interconnects system bus 302 with network 312, which may be an external network, enabling computer system 300 to communicate with other such systems. In one embodiment, a portion of system memory 303 and mass storage 310 collectively store an operating system, which may be any suitable operating system for coordinating the functions of the various components shown in FIG. 3, such as IBM® Corporation's z / OS® or AIX® operating systems.

[0026] Additional input / output devices are shown connected to system bus 302 via display adapter 315 and interface adapter 316. In one embodiment, adapters 306, 307, 315, and 316 may be connected to one or more I / O buses that are connected to system bus 302 via intermediate bus bridges (not shown). A display 319 (e.g., a screen or display monitor) is connected to system bus 302 by display adapter 315, which may include a graphics controller and a video controller to improve performance of graphics-intensive applications. A keyboard 321, mouse 322, speaker 323, etc. may be interconnected to system bus 302 via interface adapter 316, which may include, for example, a super I / O chip that integrates multiple device adapters into a single integrated circuit. Suitable I / O buses for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols such as Peripheral Component Interconnect (PCI). To this end, as configured in Figure 3, computer system 300 includes processing functionality in the form of processor 301, storage functionality including system memory 303 and mass storage 310, input means such as keyboard 321 and mouse 322, and output functionality including speaker 323 and display 319.

[0027] In some embodiments, communications adapter 307 can transmit data using any suitable interface or protocol, such as an Internet or small computer system interface, among others. Network 312 can be a cellular network, a wireless network, a wide area network (WAN), a local area network (LAN), or the Internet, among others. External computing devices can connect to computer system 300 via network 312. In some examples, the external computing device can be an external web server or a cloud computing node.

[0028] It should be understood that the block diagram of Figure 3 is not intended to indicate that computer system 300 includes all of the components depicted in Figure 3. Rather, computer system 300 may include any suitable fewer components or any suitable additional components not depicted in Figure 3 (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.). Furthermore, the embodiments described herein with respect to computer system 300 may be implemented using any suitable logic, which, as referred to herein, in various embodiments, may include any suitable hardware (e.g., a processor, embedded controller, or application specific integrated circuit, among others), software (e.g., an application, among others), firmware, or any suitable combination of hardware, software, and firmware.

[0029] Although this disclosure includes detailed descriptions of cloud computing, it should be understood that implementation of the teachings recited herein is not limited to cloud computing environments. Rather, embodiments of the present invention may be implemented in conjunction with any other type of computing environment now known or later developed.

[0030] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with a service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.

[0031] The features are as follows:

[0032] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed, without the need for human interaction with the provider of the service.

[0033] Broad Network Access: Capabilities are available over the network and are accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0034] Resource Pooling: Pooling a provider's computing resources to serve multiple consumers using a multi-tenant model where various physical and virtual resources are dynamically allocated and reallocated according to demand. The consumer generally has no control over or knowledge of the exact location of the resources provided, although there is a sense of location independence in that the location may be identifiable at a higher level of abstraction (e.g., country, state, or data center).

[0035] Rapid Elasticity: Capacity can be provisioned quickly and elastically, sometimes automatically, to quickly scale out and quickly release to quickly scale in. To the consumer, the available capacity often appears unlimited, and can be purchased in any quantity at any time.

[0036] Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of utilized services.

[0037] The service model is as follows:

[0038] Software as a Service (SaaS): The consumer is offered the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application features, with the possible exception of limited user-specific application configuration settings.

[0039] Platform as a Service (PaaS): The ability offered to consumers is to deploy applications they create or acquire, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does control the deployed applications and, in some cases, the application hosting environment configuration.

[0040] Infrastructure as a Service (IaaS): The capability offered to consumers is the provision of processing, storage, network, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does control the operating systems, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0041] The deployment models are as follows:

[0042] Private Cloud: Cloud infrastructure is operated exclusively for an organization. It can be managed by the organization or a third party and can reside on-premise or off-premise.

[0043] Community Cloud: Cloud infrastructure is shared by several organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance considerations). It may be managed by the organization or a third party and may reside on-premise or off-premise.

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

[0045] Hybrid Cloud: A cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain unique entities but are joined by standardized or proprietary technologies that allow for data and application portability (e.g., cloud bursting for load balancing between clouds).

[0046] Cloud computing environments are service-oriented with an emphasis on statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0047] Referring now to FIG. 4, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or mobile phone 54A, a desktop computer 54B, a laptop computer 54C, or an automotive computer system 54N, or combinations thereof, may communicate. The nodes 10 may communicate with each other. They may be grouped physically or virtually in one or more networks (not shown), such as, for example, the private, community, public, or hybrid clouds described above, or combinations thereof. This enables the cloud computing environment 50 to provide infrastructure-as-a-service, platform-as-a-service, or software-as-a-service, or combinations thereof, without requiring cloud consumers to maintain resources on their local computing devices. It should be understood that the types of computing devices 54A-N shown in FIG. 4 are intended to be exemplary only, and that computing node 10 and cloud computing environment 50 can communicate with any type of computerized device over any type of network and / or network-addressable connection (e.g., using a web browser).

[0048] Referring now to Figure 5, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 4) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 5 are intended to be exemplary only, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0049] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframes 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0050] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.

[0051] In one example, the management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and accounting or billing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources so that requested service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance arrangement and procurement of cloud computing resources anticipated to be required in the future according to SLAs.

[0052] The workload layer 90 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and data protection 96.

[0053] Various embodiments of the present invention are described herein with reference to the associated drawings. Alternate embodiments of the present invention may be devised without departing from the scope of the present invention. The following description and drawings describe various connections and relationships (e.g., above, below, adjacent, etc.) between elements. These connections and / or relationships may be direct or indirect unless otherwise specified, and the present invention is not limited in this respect. Thus, coupling of entities may refer to direct or indirect coupling, and relationships between entities may be direct or indirect. Additionally, the various tasks and process steps described herein may be combined into a more comprehensive procedure or process having additional steps or functionality not specifically described herein.

[0054] One or more of the methods described herein may be implemented using any one or combination of the following technologies, each of which is well known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application specific integrated circuits (ASICs) having appropriate combinatorial logic gates, programmable gate arrays (PGAs), field programmable gate arrays (FPGAs), etc.

[0055] For the sake of brevity, prior art related to making and using aspects of the present invention may or may not be described in detail herein. In particular, various aspects of computing systems and particular computer programs for implementing various technical features described herein are well known. Accordingly, for the sake of brevity, many conventional implementation details are only briefly mentioned herein or omitted entirely, and details of well-known systems and / or processes are not provided.

[0056] In some embodiments, various functions or operations may be performed at a given location, or in conjunction with the operation of one or more devices or systems, or both. In some embodiments, a portion of a given function or operation may be performed at a first device or location, and the remainder of the function or operation may be performed at one or more additional devices or locations.

[0057] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context clearly dictates otherwise. It will be further understood that as used herein, the term "comprises" and / or "comprising" indicates the presence of stated features, integers, steps, operations, elements, or components, or combinations thereof, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof, or combinations thereof.

[0058] The corresponding structure, material, acts, and equivalents of all means or step-plus-function elements in the following claims are intended to include any structure, material, or acts for performing a function in combination with other specifically claimed claim elements. This disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosed form. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the disclosure. The embodiments have been chosen and described in order to best explain the principles and practical applications of the disclosure and to enable those skilled in the art to appreciate the disclosure in various embodiments with various modifications suited to the particular uses contemplated.

[0059] The diagrams shown herein are exemplary. Many variations can be made to the diagrams or steps (or operations) described herein without departing from the spirit of the disclosure. For example, actions can be performed in a different order, or actions can be added, deleted, or modified. Also, the term "coupled" indicates that there is a signal path between two elements, and does not imply a direct connection between the elements without an intervening element / connection between them. All of these variations are considered part of the disclosure.

[0060] The following definitions and abbreviations will be used for interpreting the claims and the specification. As used herein, the terms "comprises," "comprising," "includes," "including," "has," "having," "contains," or "containing," or any other variation thereof, are intended to include a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or device that includes a list of elements is not necessarily limited to only those elements and may include other elements not expressly listed or inherent in such composition, mixture, process, method, article, or device.

[0061] Additionally, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" are understood to include any integer number greater than or equal to one, i.e., one, two, three, four, etc. The term "a plurality" is understood to include any integer number greater than or equal to two, i.e., two, three, four, five, etc. The term "connection" can include both an indirect and a direct connection.

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

[0063] The present invention may be a system, method, or computer program product, or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to carry out aspects of the present invention.

[0064] A computer-readable storage medium may be any tangible device capable of retaining and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, 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 versatile disk (DVD), memory stick®, floppy® disk, mechanically encoded devices such as punch cards or grooved ridge structures having instructions recorded thereon, and any suitable combination thereof. Computer-readable storage medium, as used herein, should not be construed as a transitory signal per se, such as, for example, radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through fiber optic cable), or electrical signals transmitted over wires.

[0065] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, fiber optic transmission cables, wireless transmission cables, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.

[0066] Computer-readable program instructions for carrying out the operations of the present invention may be source or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or object-oriented programming languages ​​such as Smalltalk®, C++, and procedural programming languages ​​such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, 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, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing state information of the computer readable program instructions to execute the computer readable program instructions to perform aspects of the present invention.

[0067] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block 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.

[0068] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium, capable of directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium on which the instructions are stored constitutes an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0069] Furthermore, the computer-readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device to create a computer-implemented process and cause the computer, other programmable apparatus, or other device to perform a series of operational steps, such that the instructions, which execute on the computer, other programmable apparatus, or other device, implement the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.

[0070] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order depicted. For example, depending on the functionality involved, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may possibly be executed in the reverse order. It will also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, can be implemented by a dedicated hardware-based system that performs the specified functions or operations or executes a combination of dedicated hardware and computer instructions.

[0071] The description of various embodiments of the present invention has been presented for purposes of illustration and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used herein have been selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the market, or to enable those skilled in the art to understand the embodiments described herein. [Explanation of symbols]

[0072] 60 Hardware and Software 70 Virtualization 80 Management 90 workloads 110 Computing Systems 112 HSM 114 key 116a Master Key 116n Master Key 118 Keystore 120 Network 130 Authentication System 140 Data Storage Systems 300 Computer Systems 301a CPU 301b CPU 301c CPU 302 System Bus 303 System Memory 304 ROM 305 RAM 306 I / O adapter 307 Communication Adapter 308 Hard Disk 310 Mass Storage 311 Software 312 Network 315 Display Adapter 316 Interface Adapter 319 Display 321 keyboard 322 Mouse 323 Speaker

Claims

1. 1. A system for protecting data objects based on physical location, comprising: A computing environment including a first computing system, a second computing system, and a data storage device in communication with each other. Equipped with the first computing system includes a first hardware security module located at a first location, the first hardware security module including a first set of decryption keys and a first master key protecting the first set of decryption keys; the second computing system includes a second hardware security module located at a second location and including a second set of decryption keys and a second master key protecting the second set of decryption keys; the first set of decryption keys is determined based on the first location; the second set of decryption keys is determined based on the second location. system.

2. The system of claim 1 , wherein the first set of decryption keys is configured to decrypt a subset of first encrypted data objects in the data storage device.

3. 3. The system of claim 2, wherein the second set of decryption keys is configured to decrypt a subset of second encrypted data objects in the data storage device, the subset decrypted by the first set of decryption keys being different from the subset decrypted by the second set of decryption keys.

4. 10. The system of claim 1, wherein the first computing system is configured to receive encrypted data from an authenticated user at the first location, the encrypted data including information about a data encryption key used to encrypt the encrypted data.

5. 10. The system of claim 1, wherein the first computing system is further configured to decrypt encrypted data based on a determination that a data encryption key corresponds to one of the first set of decryption keys.

6. The system of claim 1 , wherein the computing environment further comprises an authentication system that controls user access to the first computing system and the second computing system.

7. 1. A method for protecting data objects in a computing environment based on physical location, comprising: receiving, by a computing system of the computing environment, a request from an authenticated user to access encrypted data, the encrypted data including information regarding a data encryption key used to encrypt the encrypted data; providing, by the computing system, the encrypted data to a computer system to which the user has been authenticated, the computer system including a set of decryption keys protected by a master key stored in the hardware security module associated with the location of the hardware security module; decrypting, by the hardware security module, the encrypted data based on a determination that the data encryption key corresponds to one of the set of decryption keys, the set of decryption keys being determined based on the location of the hardware security module; A method comprising:

8. 8. The method of claim 7, wherein the authenticated user is authenticated by an authentication system of the computing environment configured to verify the identity of a user of the computer system.

9. The method of claim 7 , wherein the master key is unique to the hardware security module.

10. 8. The method of claim 7, wherein the set of decryption keys is configured to decrypt a subset of encrypted data objects in a data storage device of the computing environment.

11. 8. The method of claim 7, further comprising: denying access to the encrypted data based on a determination that the data encryption key does not correspond to one of the set of decryption keys.

12. The method of claim 7 , wherein identifying the hardware security module associated with the location includes determining one or more attributes of the authenticated user.

13. 13. The method of claim 12, wherein the one or more attributes of the authenticated user include one or more of the following: a physical location of the authenticated user, an access group of the authenticated user, and a role of the authenticated user within an organization.

14. 1. A computer program product including a computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by a processor to cause the processor to perform operations, the operations including: receiving, by a computing system of the computing environment, a request to access encrypted data from an authenticated user, the encrypted data including information regarding a data encryption key used to encrypt the encrypted data; providing, by the computing system, the encrypted data to a computer system to which the user has been authenticated, the computer system including a set of decryption keys protected by a master key stored in the hardware security module associated with the location of the hardware security module; decrypting, by the hardware security module, the encrypted data based on a determination that the data encryption key corresponds to one of the set of decryption keys, the set of decryption keys being determined based on the location of the hardware security module; 10. A computer program product comprising:

15. 15. The computer program product of claim 14, wherein the authenticated user is authenticated by an authentication system of the computing environment configured to verify the identity of a user of the computer system.

16. 15. The computer program product of claim 14, wherein the master key is unique to the hardware security module.

17. 15. The computer program product of claim 14, wherein the set of decryption keys is configured to decrypt a subset of encrypted data objects in a data storage device of the computing environment.

18. 15. The computer program product of claim 14, wherein the actions further comprise denying access to the encrypted data based on a determination that the data encryption key does not correspond to one of the set of decryption keys.

19. 15. The computer program product of claim 14, wherein identifying the hardware security module associated with the location includes determining one or more attributes of the authenticated user.

20. 20. The computer program product of claim 19, wherein the one or more attributes of the authenticated user include one or more of the following: a physical location of the authenticated user, an access group of the authenticated user, and a role of the authenticated user within an organization.

Citation Information

Patent Citations

  • Scalable hardware encryption

    US20200177384A1

  • Location based decryption

    US9330275B1

  • Postponing entropy depletion in key management systems with hardware security modules

    WO2019086995A1