Systems and methods for secured backup of hardware security modules for cloud-based web services
Claim Score by NHIP
Abstract
A new approach is proposed to support secured hardware security module (HSM) backup for a plurality of web services hosted in a cloud to offload their key storage, management, and crypto operations to the HSM. Each HSM is a high-performance, FIPS 140-compliant security solution for crypto acceleration of the web services. Each HSM includes multiple partitions isolated from each other, where each HSM partition is dedicated to support one of the web service hosts/servers to offload its crypto operations via a HSM virtual machine (VM) over the network. The HSM-VM is configured to export objects from the key store of a first HSM partition to a key store of a second HSM partition, wherein the second HSM partition is configured to serve the key management and crypto operations offloaded from the web service host once the objects exported from the key store of the first HSM partition are received.

Term
8.7 yearsto projected expiry
Projected expiry 28 May 2035, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
31 claims: 2 independent, 29 dependent
- 1A system for secured hardware security module (HSM) backup for cloud-based web services, comprising:a plurality of HSM service units, wherein each of the HSM service units further comprises: a first HSM partition on an HSM adapter, wherein the first HSM partition is configured to: store a plurality of types of objects for key management and crypto operations offloaded from a web service host in a key store of the first HSM partition in an isolated and tamper proof environment on the HSM adapter;perform the crypto operations offloaded from the web service host using the stored objects of the web service host;an HSM virtual machine (VM) running on a host, which in operation, is configured to: offload the key management and crypto operations from the web service host to the HSM partition;export a plurality of objects from the key store of the first HSM partition to a key store of a second HSM partition, wherein the second HSM partition is configured to serve the key management and crypto operations offloaded from the web service host once the objects exported from the key store of the first HSM partition are received.
- 20Broadest claimClaim Score 49, average(NHIP)A method for secured hardware security module (HSM) communication for cloud-based web services, comprising:storing a plurality of types of objects for key management and crypto operations offloaded from a web service host in a key store of a first HSM partition in an isolated and tamper proof environment on an HSM adapter;offloading the key management and crypto operations from the web service host to the first HSM partition;performing the crypto operations offloaded from the web service host using the stored objects of the web service host;exporting a plurality of objects from the key store of the first HSM partition to a key store of a second HSM partition, wherein the second HSM partition is configured to serve the key management and crypto operations offloaded from the web service host once the objects exported from the key store of the first HSM partition are received.
Independent claims2
82 paragraphs in 4 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Patent Application No. 62/008,112, filed Jun. 5, 2014, and entitled “Method And System For Cloud-Based Web Service Security Management Based On Hardware Security Modules (HSMs),” which is incorporated herein in its entirety by reference.
This application is related to co-pending U.S. patent application Ser. No. 14/299,739, filed Jun. 9, 2014 and entitled “Systems and Methods for Cloud-Based Web Service Security Management Based on Hardware Security Modules,” which is incorporated herein in its entirety by reference.
This application is related to co-pending U.S. patent application Ser. No. 14/662,012, filed Mar. 18, 2015 and entitled “Systems and Methods for Secured Hardware Security Module Communication with Web Service Hosts,” which is incorporated herein in its entirety by reference.
This application is related to co-pending U.S. patent application Ser. No. 14/667,238, filed Mar. 24, 2015 and entitled “Systems and Methods for Secured Key Management via Hardware Security Module for Cloud-Based Web Services,” which is incorporated herein in its entirety by reference.
This application is related to co-pending United States patent application Ser. No. ______, filed ______ and entitled “Systems and Methods for High Availability of Hardware Security Modules for Cloud-Based Web Services,” which is incorporated herein in its entirety by reference.
BACKGROUND
As service providers increasingly host their web services (e.g., web sites) at third party data centers in the cloud such as Amazon Web Services (AWS) and Google Sites, security and key management for these web services hosted at the third party data centers has become an important issue. The crypto operations such as RSA, encryption and decryption operations required for secured communications with these web services consume a lot of CPU cycles and computing resources at the servers hosting the web services and are preferred to be offloaded to a separate module dedicated to that purpose.
Hardware security modules (HSMs) are physical computing devices that safeguard and manage keys for strong authentication and provide crypto processing capabilities. Each HSM traditionally comes in the form of a plug-in card or an external device that attaches directly to a computer or network server to offload key management and crypto operations from the server. However, hardware offloading is not always available especially for the web services hosted at third party data centers because most servers at the data centers do not have hardware RSA accelerators. In addition, some hypervisor products for running virtual machines on the servers, such as vSphere by VMWare and Hyper-V by Microsoft, do not support non-networking single root I/O virtualization (SR-IOV), which enables a device to separate access to its resources among various Peripheral Component Interconnect (PCI) Express (PCIe) hardware functions, and thus making them very difficult to provide hardware offloading for crypto operations. Therefore, there is a need for an improved system and method to provide secured key management for cloud-based web services hosted at a third party data center via HSMs.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is noted that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
<figref idref="DRAWINGS">FIG. 1</figref> depicts an example of a diagram of system <b>100</b> to support crypto operation offloading and acceleration for cloud-based web services via an HSM in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 2</figref> depicts an example of hardware implementation <b>200</b> of the system <b>100</b> depicted in <figref idref="DRAWINGS">FIG. 1</figref> for cloud-based web service security management via the HSM in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 3</figref> depicts a flowchart of an example of a process to support secured key management and crypto operations for cloud-based web services in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 4</figref> depicts a flowchart of an example of a process to support secured communication for crypto operation offloading and acceleration for cloud-based web services in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 5</figref> depicts a diagram of an example of a process flow for the HSM to move from an initial reset state to an operational state in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 6</figref> depicts a diagram of an example of a four-way handshake between a PF HSM driver and the HSM in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 7</figref> depicts a diagram of an example of a four-way handshake between a VF HSM driver and the HSM partition in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 8</figref> depicts a flowchart of an example of a process to support secured HSM backup for cloud-based web services in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 9</figref> depicts an example of a diagram of system <b>900</b> to support high availability (HA) of HSMs for key management and crypto operations for cloud-based web services in accordance with some embodiments.
<figref idref="DRAWINGS">FIG. 10</figref> depicts a flowchart of an example of a process to support HA of HSMs for key management and crypto operations offloaded from cloud-based web services in accordance with some embodiments.
DETAILED DESCRIPTION
The following disclosure provides many different embodiments, or examples, for implementing different features of the subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.
A new approach is proposed that contemplates systems and methods to support secured hardware security module (HSM) backup for a plurality of web services hosted in a cloud to offload their key storage, management, and crypto operations to the HSM. Each HSM is a high-performance, Federal Information Processing Standards (FIPS) 140-compliant security solution for crypto acceleration of the web services. Specifically, each HSM can be a hardware/firmware multi-chip embedded cryptographic module/adapter, which provides cryptographic functionalities including but not limited to key management, modular exponentiation, random number generation, and hash processing, along with protocol-specific instructions to support various security protocols. Each HSM includes multiple partitions isolated from each other, where each HSM partition is dedicated to support one of the web service hosts/servers to offload its crypto operations via one of a plurality of HSM virtual machine (VM) over the network. The HSM-VM is configured to export a plurality of objects from the key store of a first HSM partition to a key store of a second HSM partition, wherein the second HSM partition is configured to serve the key management and crypto operations offloaded from the web service host once the objects exported from the key store of the first HSM partition are received.
The proposed approach enables web service providers hosting their web services at a third-party data center to offload its key management and crypto operations to one or more cloud-based HSMs to save computing resources on the hosts of the web services. Importantly, the keys and credentials of each web service are kept in a FIPS 140-2 compliant secured environment on the HSMs, which is accessible only by the web service and the corresponding HSM dedicated to serve the web service host. Not even the third-party data center that hosts the web service is able to access keys and data contained in the HSM. Such an approach enables the offloading of the key management and crypto operations of the web service providers so they can be accomplished in a highly secured manner.
<figref idref="DRAWINGS">FIG. 1</figref> depicts an example of a diagram of system <b>100</b> to support crypto operation offloading and acceleration for cloud-based web services via a hardware security module (HSM). Although the diagrams depict components as functionally separate, such depiction is merely for illustrative purposes. It will be apparent that the components portrayed in this figure can be arbitrarily combined or divided into separate software, firmware and/or hardware components. Furthermore, it will also be apparent that such components, regardless of how they are combined or divided, can execute on the same host or multiple hosts, and wherein the multiple hosts can be connected by one or more networks.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, the system <b>100</b> includes at least a hardware security module (HSM) appliance or HSM <b>102</b>, a plurality of HSM virtual machines (HSM-VMs) <b>104</b>, an HSM managing VM <b>106</b>, and a trusted platform module (TPM) <b>128</b>. In some embodiments, the HSM <b>102</b> is a multi-chip embedded hardware/firmware cryptographic module having software, firmware, hardware, or another component that is used to effectuate a purpose. The HSM-VMs <b>104</b>, the HSM managing VM <b>106</b> typically run on a network accessible multi-tenant computing unit/appliance/host <b>103</b> that is certified under Federal Information Processing Standard (FIPS) for performing secured cryptographic operations. The computing unit/appliance/host <b>103</b> comprises one or more of a CPU or microprocessor, a memory (also referred to as primary memory) such as RAM, and a storage unit such as a non-volatile memory (also referred to as secondary memory) with software instructions stored in for practicing one or more processes. When the software instructions are executed, at least a subset of the software instructions is loaded into memory, and the computing unit becomes a special purpose computing unit for practicing the processes. When implemented on a general-purpose computing unit, the computer program code segments configure the computing unit to create specific logic circuits. The processes may alternatively be at least partially embodied in a digital signal processor formed of application specific integrated circuits (ASIC) for performing the processes. For non-limiting examples, the host <b>103</b> can be a computing device, a communication device, a storage device, or any electronic device, wherein the computing device can be but is not limited to a laptop PC, a desktop PC, a mobile device, or a server machine such as an x86 server, and the communication device can be but is not limited to a mobile phone.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, each of the HSM <b>102</b>, the HSM-VMs <b>104</b>, and the HSM managing VM <b>106</b> has a communication interface (as described below), which is a component that enables the components to communicate with each other and other devices/hosts/servers over a network (not shown) following certain communication protocols such as TCP/IP protocol. Such network can be but is not limited to, internet, intranet, wide area network (WAN), local area network (LAN), wireless network, Bluetooth, WiFi, mobile communication network, or any other network type. The physical connections of the network and the communication protocols are well known to those of skill in the art.
<figref idref="DRAWINGS">FIG. 2</figref> depicts an example of hardware implementation <b>200</b> of the system <b>100</b> depicted in <figref idref="DRAWINGS">FIG. 1</figref> for cloud-based web service security management via HSM. As shown in the example of <figref idref="DRAWINGS">FIG. 2</figref>, the FIPS-certified HSM appliance <b>200</b> includes an FIPS 140-2 Level 2 and 3 certified computing unit <b>204</b>, having one or more CPUs, RAM, and storage unit and is configured to run multiple (e.g., up to 32) virtual machines such as the HSM-VMs <b>104</b>, and the HSM managing VM <b>106</b>. The HSM appliance <b>200</b> further includes a FIPS-certified SR-IOV-capable HSM adapter <b>202</b>, which is a hardware security appliance for the HSM <b>102</b>. As shown in the example of <figref idref="DRAWINGS">FIG. 2</figref>, the HSM adapter <b>202</b> further includes an SR-IOV PCIe bridge <b>206</b> connecting the HSM adapter <b>202</b> to the CPU in the computing unit <b>204</b> via a first PCIe connection (e.g., PCIe Gen2 x8), wherein PCIe is a high-speed serial computer expansion bus standard designed to support hardware I/O virtualization to enable maximum system bus throughput, low I/O pin count and a small physical footprint for bus devices. The bridge <b>206</b> is further configured to connect to a multi-core processor <b>208</b> (e.g., a multi-core MIPS64 processor such as OCTEON CN6130) of the HSM adapter <b>202</b> across a high speed communication interface (e.g., 10G XAUI Interface). The HSM adapter <b>202</b> further includes a security processor <b>210</b> (e.g., NITROX CNN3560) via a second PCIe connection (e.g., PCIe Gen 2 x4), wherein the security processor <b>210</b> is configured to enable cryptographic acceleration by performing crypto operations with hardware accelerators and embedded software implementing security algorithms. In some embodiments, the HSM appliance <b>200</b> is supplied and preconfigured with default network and authentication credentials so that the HSM appliance <b>200</b> can be FIPS/Common Criteria/PCI compliant for crypto offloads as well as key and certificates storage.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, the HSM <b>102</b> implemented via the HSM adapter <b>202</b> is configured to provide a FIPS 140-2 overall Level 3 certified security solution to a plurality of web service providers/hosts by offloading key storage and cryptographic operations of the web service hosts. For a non-limiting example, the encryption/decryption key management is for symmetric and/or asymmetric (e.g., RSA) keys and the crypto operations to be accelerated are for cryptographic protocols such as Transport Layer Security (TLS) and/or Secure Sockets Layer (SSL) designed to provide communication security over the Internet. As shown in <figref idref="DRAWINGS">FIG. 2</figref>, the HSM adapter <b>202</b> of the HSM <b>102</b> is physically connected to the computing unit <b>204</b> running the HSM-VMs <b>104</b> and the HSM managing VM <b>106</b> via a PCIe slot <b>212</b> in order to interact with and to provide high speed crypto acceleration to the web service hosts in a secure manner. The cryptographic functionalities provided by the HSM <b>102</b> include but are not limited to modular exponentiation, random number generation, and hash processing, along with protocol-specific instructions to support various security protocols such as TLS/SSL via the security processor <b>210</b> embedded in the HSM adapter <b>202</b>. These cryptographic functionalities provided by the HSM <b>102</b> can be accessed by other components of system <b>100</b> via an Application Programming Interface (API) defined and provided by the HSM <b>102</b>.
In some embodiments, the HSM <b>102</b> can be further divided into multiple HSM partitions <b>108</b>, where each HSM partition <b>108</b> is dedicated to support key and security credential management and to perform crypto operations offloaded from a web service provider/host over a network via its corresponding HSM-VM <b>104</b> with one or more crypto acceleration units of pre-configured values, and a dedicated key store <b>109</b> discussed in details below. In some embodiments, the HSM partitions <b>108</b> are soft partitions created by the HSM managing VM <b>106</b> (discussed in details below) utilizing firmware of the HSM <b>102</b> and its hardware implementations (e.g., HSM adapter <b>202</b>). In some embodiments, the HSM <b>102</b> can support up to a certain number (e.g., 32) HSM partitions <b>108</b> in an active state of operation, while the rest of the HSM partitions <b>108</b> on the HSM <b>102</b> are in an inactive state. Once the number is reached, one or more HSM partition <b>108</b> has to be moved from the active state to the inactive state in order for another HSM partition <b>108</b> to be moved to the active state to serve its user/web service host. In some embodiments, one or more of the HSM partitions <b>108</b> can be consolidated and moved from one HSM <b>102</b> to another.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, each HSM-VM <b>104</b> and its corresponding HSM partition <b>108</b> form an HSM service unit <b>107</b>, which communicates with and offloads secured key management and crypto operations from a specific user/web service host. Here, each HSM partition <b>108</b> has a one-to-one correspondence with the HSM-VM <b>104</b> in the same HSM service unit <b>107</b>, wherein the HSM partition <b>108</b> interacts with and allows access only from the HSM-VM <b>104</b> in the HSM service unit <b>107</b>. In some embodiments, a unique static secret (e.g., 12-byte long) is configured and assigned to each HSM-VM <b>104</b> during initialization of the system <b>100</b> and its drivers. Every subsequent request to an HSM partition <b>108</b> from the HSM-VM <b>104</b> in the same HSM service unit <b>107</b> is then checked against the static secret assigned to the particular HSM-VM <b>104</b> as well as a dynamic secret (e.g., 8-byte long) provided in real time during the interacting process between the HSM partition <b>108</b> and the HSM-VM <b>104</b>.
In some embodiments, each HSM service unit <b>107</b> supports and requires identity-based authentication for operations by a set of users/web service hosts as required by the FIPS 140-2 level 3. Each of the users can access the HSM service unit <b>107</b> to manage it and/or to offload key management and computer intensive crypto operations to it. One of the users serves as an administrator to create and initialize the HSM service unit <b>107</b> with a set of policies via the HSM managing VM <b>106</b> as discussed in details below. Other users include at least one web service host, which logs in to an HSM service unit <b>107</b> with credentials via the corresponding HSM VM <b>104</b> of the HSM service unit <b>107</b>. In some embodiments, each user/web service host who wants to login to and access the HSM service unit <b>107</b> to offload its crypto operations via the corresponding HSM-VM <b>104</b> should provide the HSM service host <b>107</b> with a valid certificate in order to access the HSM service host, wherein the certificate is issued by a trusted certificate authority (CA) <b>130</b> during the request to create the HSM service unit <b>107</b>. In some embodiments, the user/web service host needs to supply the HSM service unit <b>107</b> with a complete chain of CA certificates, which are all active and have not been revoked.
In some embodiments, each HSM service unit <b>107</b> permits a different set of API calls for different types of commands, wherein types of commands made available by the HSM service unit vary based on the type of user logged into the HSM service unit <b>107</b> and some API calls do not require any user identification or login. For a non-limiting example, the administrator via the HSM managing VM <b>106</b> may utilize a set of commands to initialize and manage (e.g., create, delete, backup, restore) the HSM service units <b>107</b>, while the web service host may utilize a different set of commands for key management and crypto acceleration via the HSM service unit <b>107</b>.
In some embodiments, each HSM partition <b>108</b> of an HSM service unit <b>107</b> includes a key store <b>109</b> configured to accept and store various types of objects for authentication and/or crypto operations of the corresponding web service host. Here, the objects include but are not limited to secured authentication credentials, user generated/imported keys, certificates of the web service host, and configurations for the corresponding HSM-VM <b>104</b> served by the HSM partition <b>108</b>. Here, all the keys, passwords and/or credentials stored in the key store <b>109</b> are maintained in an isolated and tamper proof environment, e.g., FIPS 140-2 Level 3 certified hardware implementation of the HSM <b>102</b> (e.g., HSM adapter <b>202</b>), with nothing being stored anywhere else (e.g., the host <b>103</b> of the HSM-VMs <b>104</b>) in the system <b>100</b>. In some embodiments, the objects are encoded and encrypted via an encryption key before being stored in the key store <b>109</b>, wherein the encryption key is unique for each key store <b>109</b>. Consequently, no entity (e.g., other web service hosts) except the web service provider/host can have access (e.g., read/write) to the authentication credentials to the key store <b>109</b> of the HSM partition <b>108</b> via its corresponding HSM-VM <b>104</b>.
In some embodiments, each HSM service unit <b>107</b> is identified using a unique HSM ID, which is a string generated with one or more of Appliance Serial Number of the HSM Adapter <b>202</b>, MAC address of the network adapter <b>116</b> of the host <b>103</b>, domain name of the web service host (e.g., the name used in the certificate) and any user provided string. In some embodiments, each object stored in the key store <b>109</b> is identified and can be accessed with a unique key handler, wherein the key handler along with the HSM ID forms a global unique identifier for the object. When a web service host accesses a corresponding HSM service unit <b>107</b> using its HSM ID, the key handler is sufficient to uniquely identify each object in the key store <b>109</b> of the HSM partition <b>108</b>. In some embodiments, an object moving from one HSM partition <b>108</b> to another HSM partition <b>108</b> may not get the same identifier, unless both HSM partitions are configured to be in the same high availability (HA)/backup domain.
In some embodiments, the key store <b>109</b> of each HSM partition <b>108</b> is configured to support object operations including but not limited to generating, deleting, finding, importing, exporting, and creating of the objects in the key store <b>109</b>. Here, each object is stored in the key store <b>109</b> along with its attributes, which include but are not limited to timestamps, user, exportable, usage, etc. Object flags may also be adopted to define the usability of the object for wrapping, exporting, signature generation, verification, etc. The key store <b>109</b> checks every object for validity (e.g., date and time) based on the stored attributes before using the object for crypto operations. In some embodiments, the key store <b>109</b> performs consistency checks when an object is created or imported to avoid storing invalid objects/keys in the key store <b>109</b>. In some embodiments, the key store <b>109</b> supports retrieving and modifying of selected attributes of the objects in the key store <b>109</b>.
In some embodiments, when the HSM <b>102</b> imposes a limit on the number of keys in the key store <b>109</b> (e.g., at about 50K keys) in each HSM partition <b>108</b> of an HSM service unit <b>107</b>, a set of HSM service units <b>107</b> can be connected together to form a so-called “elastic” HSM set <b>111</b>, which extends the sizes of their key stores <b>109</b> seamlessly by combining the key stores <b>109</b> to be accessed as one elastic key store. Here, the HSM service units <b>107</b> need not be on same HSM <b>100</b>, and different HSM service units <b>107</b> running on different HSMs <b>100</b> can connect to each other logically and form an elastic HSM set <b>111</b>. Each HSM service unit <b>107</b> in the elastic HSM set <b>111</b> is identified with an id SET_ID, wherein the first HSM service unit <b>107</b> in the elastic HSM set <b>111</b> is the base HSM service unit and the rest are the extended HSM service units. By default, every HSM service unit <b>107</b> is in a singleton elastic HSM set <b>111</b> with its SET_ID set to 0, wherein the set can be extended when required.
During operations, all HSM service units <b>107</b> in the elastic HSM set <b>111</b> are provided to the user/web service host as a single logical HSM service unit having the combined key store. In some embodiments, the key handler of each object in the elastic HSM set <b>111</b> is formed as SET_ID∥ key handler in the local key store <b>109</b> in the form of a mapping table. As such, the size of the combined key store for the elastic HSM set <b>111</b> can be increased or decreased dynamically with a supported minimum size by including or removing one or more HSM service units <b>107</b> in the elastic HSM set <b>111</b>. In some embodiments, the size of the key store for the elastic HSM set <b>111</b> can be reduced by merging HSM service units <b>107</b> when all keys in the key store <b>109</b> of one HSM service unit <b>107</b> can be moved to a different HSM service unit <b>107</b> in the set. The key handler of each object also needs to be updated during a merge of the HSM service units <b>107</b>. The HSM service units <b>107</b> in the elastic HSM set <b>111</b> are initialized and managed via the HSM managing VM <b>106</b> via admin APIs as discussed below, wherein any operation on the base HSM service unit is also performed on the extended HSM service units.
In some embodiments, the configuration of the elastic HSM set <b>111</b> having multiple HSM service units <b>107</b> is made transparent to the user/web service host, where only the base HSM service unit in the elastic HSM set <b>111</b> is exposed to the user via its HSM-VM <b>104</b>. Under such scenario, extended HSM service units in the elastic HSM set <b>111</b> would accept connections only from the base HSM service unit, not directly from the user. The user/web service host can only communicate with the base HSM service unit for requests for key management and crypto operations, and the base HSM service unit can offload such received requests to the extended HSM service units via the back channel as necessary.
In some embodiments, the user is aware of the configuration of the elastic HSM set <b>111</b> having multiple HSM service units <b>107</b> and it can communicate with and offload its key management and crypto operations directly to the extended HSM service units in the elastic HSM set <b>111</b> without passing through the base HSM service unit for scalability and performance. Under such scenario, the base HSM service unit needs to copy user credentials onto each extended HSM service unit in the elastic HSM set <b>111</b> and the mapping of the key handler of each object in the elastic HSM set <b>111</b> is provided to the user for access to the key stores of the HSM service units. In some embodiments, key management operations are centrally managed by the base HSM service unit.
<figref idref="DRAWINGS">FIG. 3</figref> depicts a flowchart of an example of a process to support secured key management and crypto operations for cloud-based web services. Although this figure depicts functional steps in a particular order for purposes of illustration, the process is not limited to any particular order or arrangement of steps. One skilled in the relevant art will appreciate that the various steps portrayed in this figure could be omitted, rearranged, combined and/or adapted in various ways.
In the example of <figref idref="DRAWINGS">FIG. 3</figref>, the flowchart <b>300</b> starts at block <b>302</b>, where a secured communication channel is established with a web service host over a network to offload its key management and crypto operations via the secured communication channel. The flowchart <b>300</b> continues to block <b>304</b>, where keys and credentials of the web service host are stored in a key store of an HSM partition in an isolated and tamper proof environment on an HSM adapter. The flowchart <b>300</b> continues to block <b>306</b>, where the crypto operations offloaded from the web service host are performed by the HSM partition using stored keys and credentials of the web service host. The flowchart <b>300</b> ends at block <b>308</b>, where the result of the crypto operations is provided to the web service host via the secured communication channel.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, each HSM-VM <b>104</b> of an HSM service unit <b>107</b> is configured to interact with a web service provider/host via secured communication channels to enable the web service provider/host to authenticate itself in order to offload its key management and crypto operations of the web service provider/host to a specific HSM partition <b>108</b> of the HSM <b>102</b> dedicated to the HSM-VM <b>104</b>. The HSM-VMs <b>104</b> run on top of a hypervisor <b>110</b>, which runs the HSM-VMs <b>104</b> and HSM managing VM <b>106</b> on the host <b>103</b>. The hypervisor presents each VM with a virtual operating platform and manages the execution of each VM on the host <b>103</b>. Each HSM-VM <b>104</b> is a software implementation that executes programs to emulate a computing environment such as an operating system (OS). The duration of the communication channel/session between the HSM-VM <b>104</b> and the web service provider/host varies with every login attempt by the web service provider/host and the secured communication channel can only be established following a successful secured handshake between the web service provider/host and the HSM-VM <b>104</b>. In some embodiments, the dynamic secret used to authenticate the HSM-VM <b>104</b> to the HSM partition <b>108</b> is also generated following the establishment of the secured communication channel.
In some embodiments, each HSM-VM <b>104</b> contains one or more of the following software components: a secured OS (e.g., Security Enhanced Linux or SE-Linux), a virtual function (VF) network driver <b>114</b> configured to interact with a physical network adapter/card <b>116</b> of the host <b>103</b> to receive and transmit communications (e.g., packets) dedicated to the specific HSM-VM <b>104</b>, and a VF HSM driver <b>118</b> configured to interact with an HSM partition <b>108</b> of the HSM <b>102</b> dedicated to the specific HSM-VM <b>104</b> and to set up a request/response communication path between the HSM-VM <b>104</b> and the HSM partition <b>108</b>. The VF HSM driver <b>118</b> of the HSM-VM <b>104</b> and the HSM partition <b>108</b> of the HSM <b>102</b> communicate with each other through a SR-IOV PCIe bridge as discussed above, and each communication takes place in a FIPS-compliant way. As referred to herein, a VF driver is a lightweight PCIe function associated with the PCIe Physical Function (PF) on a network adapter (e.g., network adapter <b>116</b>) that supports single root I/O virtualization (SR-IOV) and represents a virtualized instance of the network adapter. Each VF shares one or more physical resources on the network adapter, such as an external network port, with the PF and other VFs.
In some embodiments, the HSM-VMs <b>104</b> running on the same hypervisor <b>110</b> on the host <b>103</b> are isolated from each other and one HSM-VM <b>104</b> cannot access data/communication of any other HSM-VMs <b>104</b>. During communication, packets received by the VF network driver <b>114</b> of an HSM-VM <b>104</b> from the physical network adapter <b>116</b> are filtered via a static destination MAC address, which is unique for each VF driver and cannot be changed/configured by the VF driver. The MAC address is delivered directly to the VF network driver <b>114</b> of the HSM-VM <b>104</b> based on SR-IOV mapping. When transmitting a packet from the HSM-VM <b>104</b>, the VF network driver <b>114</b> directly puts the packet into a hardware queue, which is sent out of the physical network adapter <b>116</b> without the packet touching the host side or any other HSM-VMs <b>104</b> running on the same host <b>103</b>.
In some embodiments, each HSM-VM <b>104</b> further includes a secured communication server <b>120</b> (e.g., a TurboSSL accelerated thin server) configured to establish the secured communication channel between the HSM-VM <b>104</b> and a server/host of a web service provider over a network via provided SSL/TLS functions to allow the web service provider secured access to the HSM partition <b>108</b>. To ensure the secured communication, the secured communication server <b>120</b> adopts certificate-based mutual authentication between the HSM-VM <b>104</b> and the web service host and uses a restricted cipher set with the highest security. The secured communication channel is established by the secured communication server <b>120</b> using mutually authenticated SSL session. In some embodiments, RSA-based certificates are used for mutual authentication. The cipher set supported by the secured communication server <b>120</b> prevents forward secrecy and attacks against block cipher chaining over the secured communication channel.
During its operation, the secured communication server <b>120</b> of the HSM-VM <b>104</b> opens a session with its corresponding HSM partition <b>108</b> in the same HSM service unit <b>107</b>. The secured communication server <b>120</b> listens for connection requests from a user/web service provider. For each new request received from the user, the secured communication server <b>120</b> establishes a secured communication channel with the web service provider, wherein the secure channel acts to communicate all requests from the user. The user needs to provide login credentials (e.g., domain name, certificate, user ID and password, etc.) required to authenticate itself to the HSM-VM <b>104</b> and the HSM partition <b>108</b> and is only allowed to issue non-privileged requests (e.g., request for information of the HSM partition <b>108</b> until its login credentials are authenticated by the HSM-VM <b>104</b>. In some embodiments, all parties in the communication will have a certificate issued by an authorized local Certification Authority (CA) discussed in details below. Similarly each web service host can have its own local CA to support multiple users. The secured communication server <b>120</b> verifies the received login credentials including the user supplied certificate for domain and role correctness. Once the web service provider is authenticated, the secured communication server <b>120</b> then converts the request into a command to offload key management and crypto (e.g., RSA) operations from the web service host to the corresponding HSM partition <b>108</b> and/or to save private keys to the key store <b>109</b> in the HSM partition <b>108</b> via the HSM-VM <b>104</b>. In some embodiments, the HSM-VM <b>104</b> offloads the crypto operations to an x86 Advanced Encryption Standard (AES) engine running on the HSM partition <b>108</b> for performance optimization. After the commands from the user have been processed by the HSM partition <b>108</b>, the secured communication server <b>120</b> returns the results back to the user over the network through the secured communication channel. In some embodiments, the user can keep track of its commands to the HSM-VM <b>104</b> using request IDs, which are communicated to the HSM-VM <b>104</b> and sent back along with the response.
In some embodiments, the secured communication server <b>120</b> of the HSM-VM <b>104</b> is configured to create multiple secured communication channels having different security strengths with different users based on their types. In some embodiments, the secured communication server <b>120</b> supports multiple concurrent sessions with multiple users to access the HSM-VM <b>104</b> over the network. For non-limiting examples: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0047">An administrator of the system <b>100</b> is required to provide certified key pair (discussed in details below) in order to establish the secured communication channel through which the administrator can issue management commands to the HSM VMs <b>104</b> and the HSM partitions <b>108</b>.</li><li id="ul0002-0002" num="0048">A user/web service host is required to provide key-pair generated during creation of the HSM partition <b>108</b> and the certificates of the user's domain in order to be able to offload crypto operations to the HSM partition <b>108</b> and to access its key store <b>109</b>.</li></ul></li></ul>
In some embodiments, the secured communication server <b>120</b> is configured to establish a secured communication channel between the web service host and a smart card configured to perform a number of offloaded crypto operations (e.g., minimum of 2048-bit RSA operations and 256-bit AES operations). In some embodiments, the secured communication server <b>120</b> either supports the elastic HSM set <b>111</b> having multiple HSM service units <b>107</b> in a transparent mode or exposes the HSM service units <b>107</b> as multiple units to support web service hosts.
In some embodiments, the secured communication server <b>120</b> is configured to utilize one or more libraries provided by the HSM-VM <b>104</b> to offload requests/responses for the key management and crypto operations of the user/web service host to its corresponding HSM partition <b>108</b> via the secured communication channel, wherein the libraries can either be an external engine following Public-Key Cryptography Standards (PKCS), e.g., a PKCS#11 engine, or a patch to OpenSSL. In some embodiments, all requests and responses over the secured communication channel are in asynchronous mode so the user/web service provider may block/poll on the corresponding network port. In some embodiments, requests/responses from multiple users/web service hosts can be tunneled to the same HSM service units <b>107</b>. In some embodiments, the secured communication server <b>120</b> is configured to accept and apply configuration parameters of the secured communication channel in the form of a configuration file, wherein the parameters include but are not limited to partition hostname/IP-addresses, cipher suite, SSL rekey time, path to the key handle files, default reconnection time, scheduling parameters, etc.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, the TPM <b>128</b> running on the HSM <b>102</b>/HSM adapter <b>202</b> is configured to provide authenticity and integrity for the service hosts <b>107</b>. The TPM <b>128</b> provides a pair of persistent (public and private) keys certified and installed during the production of the HSM adapter <b>202</b>, wherein this key pair cannot be read, modified or zeroized by any other party. The TPM <b>128</b> is configured to utilize the key pair to develop the local certification authority (CA) <b>130</b> and its certificates to extend the authenticity and integrity to the HSM service units <b>107</b> including both the HSM-VM <b>104</b> and HSM partition <b>108</b> to mitigate the impersonation attacks to the system. During its operation, the TPM <b>128</b> is only accessible by the internal management module of the HSM adapter <b>202</b>. Without this otherwise non-accessible TPM <b>128</b>, an attacker having a certificate (with serial number of the HSM adapter <b>202</b> embedded in it) and/or the private key in its hand can impersonate the system <b>100</b> and run cloning kind of security protocols on any arbitrary machine and see the keys in clear format. In some embodiments, each HSM service unit <b>107</b> can also be configured to communicate with another trusted HSM service unit <b>107</b> via a back channel to minimize impersonations in addition to the certificate based authentication.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, the local CA <b>130</b> is a software module of the operating system (e.g., Security Enhanced Linux or SE-Linux) of the HSM <b>102</b> and is established by the TPM <b>128</b> to extend the source authenticity and integrity features to each HSM service unit <b>107</b> of the system <b>100</b>. In some embodiments, the local CA <b>130</b> includes at least the following two types of certificates: <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0053">HSM certificate: which includes the HSM ID for a specific HSM service <b>107</b>. The certificate also specifies one or more of the user role, the domain name, and the purpose it can be used for (e.g., backup, user authorization, etc.).</li><li id="ul0004-0002" num="0054">Backup certificate: which can be used for backup/cloning purposes. Optionally, a different key pair and certificate can be included in the backup certificate to isolate any security breach. <br /> Here, the certificates in the local CA <b>130</b> are verified to be trustworthy. In some embodiments, the local CA <b>130</b> may also perform quick authentication of a certificate by comparing a user supplied certificate to trusted certificate in the local CA <b>130</b>. </li></ul></li></ul>
<figref idref="DRAWINGS">FIG. 4</figref> depicts a flowchart of an example of a process to support secured communication for crypto operation offloading for cloud-based web services. Although this figure depicts functional steps in a particular order for purposes of illustration, the process is not limited to any particular order or arrangement of steps. One skilled in the relevant art will appreciate that the various steps portrayed in this figure could be omitted, rearranged, combined and/or adapted in various ways.
In the example of <figref idref="DRAWINGS">FIG. 4</figref>, the flowchart <b>400</b> starts at block <b>402</b>, where a secured communication channel is established between a web service host and a hardware security module (HSM) virtual machine (VM) created on a host, wherein the HSM-VM is dedicated to an HSM partition of an HSM adapter in a one-to-one correspondence. The flowchart <b>400</b> continues to block <b>404</b>, where the web service host is authenticated based on its provided credentials. The flowchart <b>400</b> continues to block <b>406</b>, where key management and crypto operations are offloaded from the web service host to the HSM partition once the web service host is authenticated. The flowchart <b>400</b> continues to block <b>408</b>, where the key management and crypto operations offloaded from the web service host are performed via the HSM partition. The flowchart <b>400</b> ends at block <b>410</b>, where results of the key management and crypto operations are provided to the web service host via the secured communication channel.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, the HSM managing VM <b>106</b> is configured to serve in an administrator role to manage (e.g., create, delete, backup, restore) the plurality of HSM service units <b>107</b> including both the HSM-VMs <b>104</b> and their corresponding HSM partitions <b>108</b> as well as various devices utilized by the HSM-VMs <b>104</b>. Specifically, the HSM managing VM <b>106</b> determines the number of active HSM partitions <b>108</b> within the HSM <b>102</b>, loads drivers for the various devices (e.g., physical network adapters <b>116</b> and the HSM <b>102</b>) used to communicate with the HSM partitions <b>108</b>, launches and monitors HSM-VMs <b>104</b> dedicated to the HSM partitions <b>108</b>, and handles critical/management updates for the various devices. In some embodiments, the HSM managing VM <b>106</b> runs a secured OS (e.g., Security Enhanced Linux or SE-Linux) <b>122</b>. In some embodiments, the HSM managing VM <b>106</b> includes a physical function (PF) network driver <b>124</b> configured to initialize the physical network adapters/cards <b>116</b> used by the VF network drivers <b>114</b> of the HSM-VMs <b>104</b> to communicate with their respective web service providers. As referred to herein, a PF driver is a PCIe function on a network adapter (e.g., network adapter <b>116</b>) that supports SR-IOV interface. The PF driver is used to configure and manage the SR-IOV functionality of the network adapter such as enabling virtualization and exposing PCIe VFs.
In some embodiments, the HSM managing VM <b>106</b> further includes a PF HSM driver <b>126</b> configured to setup and initialize the HSM <b>102</b> for operating its HSM partitions <b>108</b> with the VF HSM drivers <b>118</b> of the HSM-VMs <b>104</b>. The PF HSM driver <b>126</b> performs an initial handshake and establishes a request/response communication channel with the HSM <b>102</b>. The PF HSM driver <b>126</b> identifies the number of active HSM partitions <b>108</b> in the HSM <b>102</b> and passes it to the HSM managing VM <b>106</b>. If there are active HSM partitions <b>108</b> on the HSM <b>102</b>, the HSM managing VM <b>106</b> checks the integrity of corresponding VM images, creates the plurality of HSM-VMs <b>104</b> each dedicated to one of the HSM partitions <b>108</b>, and uses the commands available to initialize the HSM <b>102</b> and manage the HSM partitions <b>108</b> of the HSM <b>102</b>. If no active HSM partition is available in the HSM <b>102</b>, the HSM managing VM <b>106</b> launches no HSM-VM <b>104</b>. The HSM managing VM <b>106</b> may subsequently create and/or remove HSM-VM <b>104</b> based on the number of HSM partitions available in the HSM <b>102</b> and/or the number of web service providers requesting to offload key management and crypto operations.
In some embodiments, the HSM managing VM <b>106</b> initializes each HSM partition <b>108</b> of an HSM service unit <b>107</b> with required policies and user accounts once the HSM service unit <b>107</b> is created. When an HSM service unit <b>107</b> is created, its HSM partition <b>108</b> is initialized and tied to a domain of a web service host using a certificate. In addition, a default user account is created and a key pair for creating the secured communication channel is generated by the TPM <b>128</b> along with its certificate. Here, the default user is a local user of the HSM partition <b>108</b> and its credentials are maintained in the HSM partition <b>108</b> and are never sent out the FIPS boundary of the HSM appliance <b>200</b>. These credentials are only used for automatic key backup and internal crypto-offloads and are not exposed to the user/web service provider so that it cannot login with these credentials. During operation, HSM-VM <b>104</b> passes the credentials it received from a web service host to its HSM partition <b>108</b> during login, wherein the HSM partition <b>108</b> compares the received credentials against its stored values to determine whether to allow the user to offload its crypto and/or key management operations.
During its operation, the HSM managing VM <b>106</b> creates an HSM service unit <b>107</b> for a user/web service host based on the user's domain certificate, performance requirements and network configuration. The HSM managing VM <b>106</b> then checks if the requested performance configuration (e.g., key store size and crypto operations/sec) is available. If so, the HSM managing VM <b>106</b> creates an HSM partition <b>108</b> of the HSM service unit <b>107</b> with the required storage and assigns crypto cores of the HSM partition <b>108</b> per the requested performance. The HSM managing VM <b>106</b> generates and saves required pair of persistent keys and certificate for identification of the HSM service unit <b>107</b> as well as a storage encryption key for encrypting the persistent keys in the key store <b>109</b> of the HSM partition <b>108</b>. The HSM managing VM <b>106</b> also creates an HSM VM <b>104</b> of the HSM service unit <b>107</b> with the provided network access details such as an IP address and part of a hostname. Finally, the HSM managing VM <b>106</b> starts the HSM service unit <b>107</b> by making it available to the user/web service host to offload its key management and crypto operations when both the created HSM VM <b>104</b> and the HSM partition <b>108</b> are ready.
While the system <b>100</b> depicted in <figref idref="DRAWINGS">FIG. 1</figref> is in operation, the HSM managing VM <b>106</b> communicates with the HSM <b>102</b> to identify the number of active HSM partitions <b>108</b> available in the HSM <b>102</b>. The HSM managing VM <b>106</b> then creates a plurality of HSM service units <b>107</b>, wherein each of the HSM-VMs <b>104</b> in an HSM service unit <b>107</b> is dedicated to and has a one-to-one correspondence with the corresponding HSM partition <b>108</b> in the HSM service unit <b>107</b> following proper authentication. The HSM managing VM <b>106</b> also initializes a plurality of network adapters/cards <b>116</b> used by the HSM-VMs <b>104</b> to communicate with web service providers. During its operation, each HSM-VM <b>104</b> establishes a secured communication channel with a web service host for receiving and transmitting packets of requests and data from and to the web service host. When an HSM-VM <b>104</b> receives a request from the web service host via its network adapter <b>116</b>, the HSM-VM <b>104</b> converts the request into a command for the HSM <b>102</b> and passes the command to the HSM partition <b>108</b> dedicated to serve the HSM-VM <b>104</b> and the web service host. The dedicated HSM partition <b>108</b> maintains encryption/decryption keys as well as other credentials for the web service host in a FIPS 140-2 Level 3 certified environment. The HSM partition <b>108</b> further performs crypto operations including but not limited to key generations and bulk data encryption/decryption operations offloaded from the web service host. The HSM partition <b>108</b> then provides the results of the key and/or crypto operations back to the web service host through the secured communication channel established by the HSM-VM <b>104</b> via the network adapter <b>116</b>.
<figref idref="DRAWINGS">FIG. 5</figref> depicts a diagram of an example of a process flow for the HSM <b>102</b> to move from an initial reset state to an operational state. Upon powering on, the HSM <b>102</b> moves through various states before it becomes accessible by HSM-VMs <b>104</b> to perform any cryptographic operations. The HSM <b>102</b> is in Safe Factory Default state when it is powered up for the very first time. When the HSM <b>102</b> is in this state or PFAdmin Operational state, where the HSM managing VM <b>106</b> creates the HSM partitions <b>108</b>, the HSM <b>102</b> defines a messaging protocol that the PF HSM driver <b>126</b> of the HSM managing VM <b>106</b> follows to move the HSM <b>102</b> to a Secure Operational state and all communication between the PF HSM driver <b>126</b> and the HSM <b>102</b> takes place through host-configured buffers. <figref idref="DRAWINGS">FIG. 6</figref> depicts a diagram of an example of a four-way handshake between the PF HSM driver <b>126</b> and the HSM <b>102</b>. As part of the communication, the number of the HSM partitions <b>108</b> are provided to the HSM managing VM <b>106</b>. The PF HSM driver <b>126</b> receives the number of the HSM partitions <b>108</b> and launches the plurality of HSM-VMs <b>104</b> in one-to-one correspondence with the HSM partitions <b>108</b>. Also as part of this communication, the PF HSM driver <b>126</b> communicates one static secret per HSM partition <b>108</b> to each HSM-VM <b>104</b> to be used for authentication with the HSM partition <b>108</b>. This static secret is configured on the HSM <b>102</b> for the specific HSM partition <b>108</b> and it cannot be read by another HSM partition <b>108</b>. Once this exchange completes, the HSM <b>102</b> moves to Secure Operational state, where it is ready to perform key management and crypto operations.
Similarly, each HSM-VM <b>104</b> and its corresponding HSM partition <b>108</b> also move from an initial reset state to an operational state, where the partition <b>108</b> can be accessed by its HSM-VM <b>104</b> for various cryptographic operations. The HSM-VM <b>104</b> is in HSM Partition (or SingleHSM) Default state when the HSM <b>102</b> is being initialized by the HSM managing VM <b>106</b> for the first time. When in HSM Partition Default or HSM Partition Operational state, where the VF HSM driver <b>118</b> of the HSM-VM <b>104</b> has yet to initialize the HSM partition <b>108</b>, the HSM <b>102</b> defines a messaging protocol that the VF HSM driver <b>118</b> follows to move the HSM partition <b>108</b> to Secure Operational state and all handshake communication between the VF HSM driver <b>118</b> and the HSM partition <b>108</b> takes place through VF-configured buffers. <figref idref="DRAWINGS">FIG. 7</figref> depicts a diagram of an example of a four-way handshake between the VF HSM driver <b>118</b> and the HSM partition <b>108</b>. As part of this handshake mechanism, a portion of a static secret is exchanged, which, in conjunction with the secret exchanged with the PF HSM driver <b>126</b> discussed above, forms a static secret that cannot be read by any other HSM partition <b>108</b>. Once this exchange completes, the HSM-VM <b>104</b> moves to HSM Partition Secure Operational state, where the HSM-VM <b>104</b> work with its corresponding HSM partition <b>108</b> to perform key management and crypto operations offloaded from a web service host to the HSM-VM <b>104</b>.
In the example of <figref idref="DRAWINGS">FIG. 1</figref>, an HSM VM <b>104</b> is configured to import one or more pre-existing keys and credentials from a user/web service host as objects into the key store <b>109</b> of its corresponding HSM partition <b>108</b> in the same HSM service unit <b>107</b> that serves the key management and crypto operations offloaded from the web service host. The HSM VM <b>104</b> is also configured to export/copy/backup objects (e.g., keys and other objects) from the key store <b>109</b> of its corresponding HSM partition <b>108</b> currently serving the offloaded key management and crypto operations to a key store <b>109</b> of another HSM partition <b>108</b> running on the same or a different HSM <b>102</b>/HSM adapter <b>202</b>. Here, importing and exporting keys and other objects to and/or from the key store <b>109</b> of the HSM partition <b>108</b> can be used for key backup and restore among the HSM partitions <b>108</b> running on the same or a different HSM adapter <b>202</b>. Once the objects are received by the key store <b>109</b> of the other HSM partition <b>108</b>, the other HSM partition <b>108</b> is configured to serve the key management and crypto operations offloaded from the web service host. In some embodiments, the other HSM partition <b>108</b> is configured to serve the offloaded key management and crypto operations independently or together with the current HSM partition <b>108</b> through the same HSM VM <b>104</b>. In some embodiments, exporting the objects from the key store <b>109</b> of the current HSM partition <b>108</b> is made transparent to the web service host being served by the current HSM partition <b>108</b>.
In some embodiments, the HSM VM <b>104</b> is configured to import objects (e.g., keys and credentials) to the key store <b>109</b> of its corresponding HSM partition <b>108</b> with pre-assigned handlers for the objects. Such key handlers for the objects are used to identify and access the objects in the key store <b>109</b> and are updated when the objects are moved (imported and/or exported) from one key store <b>109</b> to another as discussed above.
In some embodiments, the HSM VM <b>104</b> is configured to import and/or export objects to and/or from the key store <b>109</b> of its corresponding HSM partition <b>108</b> either on per object basis wherein only a subset of selected objects in the key store <b>109</b> of the HSM partition <b>108</b> are imported or exported, or on per partition basis wherein all objects in the key store <b>109</b> of the HSM partition <b>108</b> are imported or exported. In some embodiments, the objects in the key store <b>109</b> are imported and/or exported along with their attributes stored in the key store <b>109</b>.
In some embodiments, the HSM VM <b>104</b> is configured to wrap/encrypt the objects before they are imported to or exported from its corresponding HSM partition <b>108</b> and to unwrap/decrypt the objects after they have been imported and/or exported to their destination (a key store <b>109</b> in an HSM partition <b>108</b> or an external storage as discussed below). In some embodiments, the objects/keys are wrapped/encrypted with FIPS approved encryption key referred to as the key backup key (KBK), which for a non-limiting example, can be a 256-bit AES key. Here, the KBK is securely generated via a FIPS approved key exchange mechanism during a mutually authenticated secured communication session between the HSM VM <b>104</b> and the user/web service host as discussed above.
In some embodiments, the HSM VM <b>104</b> is configured to utilize a FIPS approved smartcard <b>132</b> to store the KBK used to encrypt/decrypt the objects in the key store <b>109</b> and to block all un-authorized access to the KBK by other VMs and/or users. Keeping the KBK safe and secure is crucial since all objects/keys are encrypted/decrypted using the KBK. In some embodiments, the smartcard <b>132</b> is a programmable Java card loaded with one or more applets capable of running FIPS approved key exchange algorithms. As shown in the example of <figref idref="DRAWINGS">FIG. 1</figref>, the smartcard <b>132</b> communicates with the HSM <b>102</b>/HSM adapter <b>202</b> using the certificate created by TPM <b>128</b> as discussed above. Note that the smartcard <b>132</b> does not need be connected to HSM appliance at all time as communication can happen over the network as well. In some embodiments, the smartcard <b>132</b> is configured to maintain multiple KBKs for different key stores <b>109</b> and their HSM partitions <b>108</b> on different HSMs <b>102</b>.
In some embodiments, the smartcard <b>132</b> may further include one or more of a private key and a certificate of the user/web service host. During the initialization or user creation of the HSM service unit <b>107</b>, a certificate of the user/web service host is submitted and the user/web service host make sure that the corresponding private key is only available on the smartcard <b>132</b>. During a user login the HSM service unit <b>107</b> sends a challenge data to the user, which will then process the challenge using the private key stored in the smartcard <b>132</b> and respond back to the HSM service unit <b>107</b>. The challenge response mechanism is done in the same secured communication channel used for login as discussed above. Such mechanism enables the user/web service host to pass authentication information to the HSM service unit <b>107</b> over the network.
In some embodiments, the HSM VM <b>104</b> is configured to delete and/or archive the objects from the key store <b>109</b> of its current HSM partition <b>108</b> after the objects have been exported from the key store <b>109</b>. A single Application Programming Interface (API) provided by the HSM <b>102</b> may be utilized to delete and/or archive the objects from the key store <b>109</b>.
In some embodiments, the HSM VM <b>104</b> is configured to export/transmit the objects from the key store <b>109</b> of its current HSM partition <b>108</b> to the key store <b>109</b> of the HSM partition <b>108</b> of their destination over a network under a key communication protocol, which can be but is not limited to, Key Management Interoperability Protocol (KMIP).
In some embodiments, the HSM VM <b>104</b> is configured to clone, backup and/or restore the objects from the key store <b>109</b> of its corresponding HSM partition <b>108</b> to and/or from an external storage (not shown), instead of or in addition to exporting the objects to the key store <b>109</b> of another HSM partition <b>108</b>. Here, the external storage is either locally attached to the HSM <b>102</b>/HSM adapter <b>202</b> of the HSM partition <b>108</b> or remotely accessible over a network. Here, the external storage can be a non-volatile (non-transient) storage device, which can be but is not limited to, a solid-state drive (SSD), a static random-access memory (SRAM), a magnetic hard disk drive (HDD), and a flash drive. During the backup and/or restore operation, the HSM VM <b>104</b> is configured to utilize methods and APIs for importing and exporting keys and objects to and/or from the key store <b>109</b> of the HSM partition <b>108</b> as described above.
In some embodiments, the HSM VM <b>104</b> is configured to utilize a back (communication) channel to export/transfer the objects from the key store <b>109</b> of a primary HSM partition <b>108</b> on a first HSM <b>102</b>/HSM adapter <b>202</b> to a backup HSM partition <b>108</b> on a second HSM <b>102</b>/HSM adapter <b>202</b> and/or to the external storage for cloning, backup, and restoring operations. Such back channel runs in parallel to the secured communication channel between the secured communication server <b>120</b> of the HSM VM <b>104</b> and the web service host and may utilize the same or a different network adapter <b>116</b>. In some embodiments, there can be as many a number of back channels established as HSM partitions <b>108</b> available on HSM <b>102</b>/HSM adapter <b>202</b>. In some embodiments, when there are multiple backup HSM partitions available, the network of back channels from the primary HSM partition <b>108</b> on the first HSM <b>102</b> to the secondary/standby HSM partitions <b>108</b> form a star-like topology model, where the primary HSM partition <b>108</b> is configured to establish secured back channels for communication with each of the secondary HSM partitions <b>108</b> to import and/or export objects/keys from/to the secondary HSM partitions <b>108</b>. Here, the objects being exchanged over the back channels are encrypted and are never shared with other HSM partitions <b>108</b>.
<figref idref="DRAWINGS">FIG. 8</figref> depicts a flowchart of an example of a process to support secured hardware security module (HSM) backup for cloud-based web services. Although this figure depicts functional steps in a particular order for purposes of illustration, the process is not limited to any particular order or arrangement of steps. One skilled in the relevant art will appreciate that the various steps portrayed in this figure could be omitted, rearranged, combined and/or adapted in various ways.
In the example of <figref idref="DRAWINGS">FIG. 8</figref>, the flowchart <b>800</b> starts at block <b>802</b>, where a plurality of types of objects for key management and crypto operations offloaded from a web service host are stored in a key store of a first HSM partition in an isolated and tamper proof environment on an HSM adapter. The flowchart <b>800</b> continues to block <b>804</b>, where the key management and crypto operations are offloaded from the web service host to the HSM partition. The flowchart <b>800</b> continues to block <b>806</b>, where the crypto operations offloaded from the web service host are performed using the stored objects of the web service host. The flowchart <b>800</b> ends at block <b>808</b>, where a plurality of objects are exported from the key store of the first HSM partition to a key store of a second HSM partition, wherein the second HSM partition is configured to serve the key management and crypto operations offloaded from the web service host once the objects exported from the key store of the first HSM partition are received.
<figref idref="DRAWINGS">FIG. 9</figref> depicts an example of a diagram of system <b>900</b> to support high availability (HA) of HSMs for key management and crypto operations for cloud-based web services. As shown in <figref idref="DRAWINGS">FIG. 9</figref>, there are a plurality of HSM <b>102</b><i>s </i>(<b>102</b>_<b>1</b>, . . . , <b>102</b><sub>—</sub><i>n</i>), each running on a FIPS-certified SR-IOV-capable HSM adapter <b>202</b> and each having a plurality of HSM partitions <b>108</b> running on it, wherein each of the HSM partition <b>108</b> has a key store <b>109</b> configured to support secured key management and crypto operation offloading for a web service host via an HSM-VM <b>104</b> as discussed above. The set of HSMs <b>102</b>_<b>1</b>, . . . , <b>102</b><sub>—</sub><i>n </i>form an HSM HA domain/set <b>902</b>, wherein all of the HSM partitions <b>108</b> running on the HSMs <b>102</b> in the HSM HA domain <b>902</b> are active and are accessible by the user/web service host via their corresponding HSM VMs <b>104</b> to offload and balance its key management and crypto operations. In some embodiments, the HSM partitions <b>108</b> running on different HSMs <b>102</b> in the HSM HA domain <b>902</b> are configured to communicate with each other over one or more back channels as discussed above. In some embodiments, the HSM service units <b>107</b> that each includes both the HSM partition <b>108</b> and its corresponding HSM VM <b>104</b> as shown in <figref idref="DRAWINGS">FIG. 1</figref> are also configured to support HA, wherein the HSM VMs <b>104</b> are duplicated and deployed over the same or different hosts <b>103</b><i>s </i>(in addition to the HSM partitions <b>108</b> running on different HSMs <b>102</b><i>s</i>) for HA support of the HSM service units <b>107</b>.
In the example of <figref idref="DRAWINGS">FIG. 9</figref>, the HSM managing VM <b>106</b> is configured to utilize the HSM <b>102</b><i>s </i>and their HSM partitions <b>108</b> in the HSM HA domain <b>902</b> to support load balancing of the crypto operations offloaded from the user/web service host. In some embodiments, one of the HSM partitions <b>108</b> on an HSM <b>102</b> in the HSM HA domain <b>902</b> is designated as the primary HSM partition, while the rest of the HSM partitions <b>108</b> running on the HSMs <b>102</b> in the HSM HA domain <b>902</b> are designated as the secondary HSM partitions <b>108</b>. During a load balancing operation, the HSM managing VM <b>106</b> is configured to monitor load information on crypto operations currently being performed among the HSM partitions <b>108</b> running on the same HSM <b>102</b> or on a different HSM <b>102</b> in the HSM HA domain <b>902</b>. In some embodiments, the load information on the key management and crypto operations is monitored by and provided to the HSM managing VM <b>106</b> either via push notifications by the HSM partitions <b>108</b> or by polling from the HSM partitions initiated by the HSM managing VM <b>106</b>. If the HSM managing VM <b>106</b> determines that the primary HSM partition <b>108</b> currently serving the offloaded crypto operations from the web service host is overloaded based on the collected load information, the HSM managing VM <b>106</b> then identifies one or more secondary HSM partitions <b>108</b> running either on the same HSM <b>102</b> as the primary HSM partition <b>108</b> or on a different HSM <b>102</b> in the HSM HA domain <b>902</b> and distributes at least a portion of the crypto operations from the primary HSM partition <b>108</b> to the identified secondary HSM partitions <b>108</b>.
In some embodiments, the primary HSM partition <b>108</b> is configured to maintain information/entries of the secondary HSM partitions <b>108</b> that share its loads in the same HSM HA domain <b>902</b>, wherein such information includes but is not limited to network access details such as hostname and IP address of the secondary HSM partitions <b>108</b>. In some embodiments, the secondary HSM partitions <b>108</b> are configured to serve the offloaded key management and crypto operations independently or together with the primary/first HSM partition <b>108</b> through the same HSM VM <b>104</b>.
In some embodiments, only the primary HSM partition <b>108</b> is accessible by the web service host via a secured communication channel via its HSM-VM <b>104</b>. In some embodiments, the key store <b>109</b> of the primary HSM partition <b>108</b> is solely responsible in the HSM HA domain <b>902</b> for maintaining the objects/keys for the web service host. The primary HSM partition <b>108</b> is further configured to create and/or delete objects/keys in the key store <b>109</b>. In some embodiments, the primary HSM partition <b>108</b> is configured to automatically update and synchronize its key store <b>109</b> with the rest of the secondary HSM partitions in the HSM HA domain <b>902</b> so that all HSM partitions <b>108</b> in the same HSM HA domain <b>902</b> are in sync with respect to their key stores <b>109</b>, which all have the same objects with the same key handles as well as attributes associated with the objects. In some embodiments, the HSM managing VM <b>106</b> is configured to utilize a secured key exchange mechanism to generate a shared Key Masking Key (KMK) to encrypt the objects/keys in the key store <b>109</b> of the primary HSM partition <b>108</b> before they are synchronized/transmitted to the secondary HSM partitions <b>108</b> running on a different HSM <b>102</b>/HSM adapter <b>202</b> from the primary HSM partition <b>108</b>.
In some embodiments, the HSM managing VM <b>106</b> is configured to adjust the configuration of the HSM HA domain <b>902</b> dynamically by adding and/or removing one or more HSM partitions <b>108</b> currently not serving the web service host to and/or from the HSM HA domain <b>902</b>. When a new HSM partition <b>108</b> is added to the HSM HA domain <b>902</b>, the HSM managing VM <b>106</b> designates it as a secondary HSM partition <b>108</b> and copies the key store <b>109</b> of the primary HSM partition <b>108</b> to the newly added secondary HSM partition <b>108</b>. When a secondary HSM partition <b>108</b> is removed from the HSM HA domain <b>902</b>, the HSM managing VM <b>106</b> also deletes information/entries of the secondary HSM partition <b>108</b> from the primary HSM partition <b>108</b>. When a primary HSM partition <b>108</b> is removed from the HSM HA domain <b>902</b>, the HSM managing VM <b>106</b> first pauses all key management and crypto operations currently being performed by the primary HSM partition <b>108</b> and downgrades the primary HSM partition <b>108</b> to a secondary HSM partition <b>108</b>. The HSM managing VM <b>106</b> then designates one of the secondary HSM partitions as the new primary HSM partition <b>108</b> and deletes the downgraded secondary HSM partition <b>108</b> from the HSM HA domain <b>902</b>.
In case the primary HSM partition <b>108</b> fails, the HSM managing VM <b>106</b> is notified by its corresponding HSM-VM <b>104</b>. The HSM managing VM <b>106</b> is configured to identify a secondary/standby HSM partition <b>108</b> as the new primary HSM partition <b>108</b> to replace the failed primary HSM partition <b>108</b>. The HSM managing VM <b>106</b> then reinitiates a secured connection with the new primary HSM partition <b>108</b>, which will assume all object/key operations for the web service host currently being served.
In some embodiments, the HSM managing VM <b>106</b> is configured to clone and/or replicate some or all HSM partitions <b>108</b> on one HSM <b>102</b><sub>—</sub><i>i </i>to another HSM <b>102</b><sub>—</sub><i>j </i>in the same HSM HA domain <b>902</b>. During the replication, some or all HSM partitions <b>108</b> and their key stores <b>109</b> are exported from HSM <b>102</b><sub>—</sub><i>i </i>and created on the HSM <b>102</b><sub>—</sub><i>j </i>as discussed above. In some embodiments, objects (e.g., credentials and keys) of the user/web service host are restored in the key stores <b>109</b> of the HSM partitions <b>108</b> on the HSM <b>102</b><sub>—</sub><i>j</i>, wherein the HSM managing VM <b>106</b> exports the credentials from the HSM <b>102</b><sub>—</sub><i>i </i>as one or more separate blobs and passes them to the HSM <b>102</b><sub>—</sub><i>j </i>while creating the HSM partitions <b>108</b> on the HSM <b>102</b><sub>—</sub><i>j</i>. In some embodiments, the newly created HSM partitions <b>108</b> having the credentials are initially in a deactivated state, which have to be activated by the administrator via the HSM managing VM <b>106</b> before becoming accessible by the web service host. In some embodiments, the HSM managing VM <b>106</b> is configured to clone and/or replicate the HSMs <b>102</b> via a back channel as discussed above, which authenticates the HSMs <b>102</b> to prevent impersonation attack.
<figref idref="DRAWINGS">FIG. 10</figref> depicts a flowchart of an example of a process to support high availability (HA) of hardware security modules (HSMs) for key management and crypto operations offloaded from cloud-based web services. Although this figure depicts functional steps in a particular order for purposes of illustration, the process is not limited to any particular order or arrangement of steps. One skilled in the relevant art will appreciate that the various steps portrayed in this figure could be omitted, rearranged, combined and/or adapted in various ways.
In the example of <figref idref="DRAWINGS">FIG. 10</figref>, the flowchart <b>1000</b> starts at block <b>1002</b>, where key management and crypto operations offloaded from a web service host are performed via one or more of a plurality of HSM partitions running on one or more HSM adapters in an HSM HA domain having a plurality of HSM adapters. The flowchart <b>1000</b> continues to block <b>1004</b>, where load information on the offloaded key management and crypto operations currently being performed by the HSM partitions running on the HSM adapters in the HSM HA domain are monitored. The flowchart <b>1000</b> continues to block <b>1006</b>, where one or more second HSM partitions running on the HSM adapters are identified if a first HSM partition serving the offloaded key management and crypto operations is determined to be overloaded based on the load information. The flowchart <b>1000</b> ends at block <b>1008</b>, where at least a portion of the offloaded key management and crypto operations are distributed from the first HSM partition to the second HSM partitions.
The methods and system described herein may be at least partially embodied in the form of computer-implemented processes and apparatus for practicing those processes. The disclosed methods may also be at least partially embodied in the form of tangible, non-transitory machine readable storage media encoded with computer program code. The media may include, for example, RAMs, ROMs, CD-ROMs, DVD-ROMs, BD-ROMs, hard disk drives, flash memories, or any other non-transitory machine-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the method. The methods may also be at least partially embodied in the form of a computer into which computer program code is loaded and/or executed, such that, the computer becomes a special purpose computer for practicing the methods. When implemented on a general-purpose processor, the computer program code segments configure the processor to create specific logic circuits. The methods may alternatively be at least partially embodied in a digital signal processor formed of application specific integrated circuits for performing the methods.
The foregoing description of various embodiments of the claimed subject matter has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the claimed subject matter to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Embodiments were chosen and described in order to best describe the principles of the invention and its practical application, thereby enabling others skilled in the relevant art to understand the claimed subject matter, the various embodiments and with various modifications that are suited to the particular use contemplated.
Contents4
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9483665B2 | Cited by | United States of America | Search report |
| US2022353073A1 | Cited by | United States of America | Search report |
| US12069171B2 | Cited by | United States of America | Applicant |
| US10097534B2 | Cited by | United States of America | Search report |
| US2023396426A1 | Cited by | United States of America | Search report |
| US10992469B2 | Cited by | United States of America | Search report |
| US11805107B2 | Cited by | United States of America | Search report |
| US11777914B1 | Cited by | United States of America | Search report |
| US2017063832A1 | Cited by | United States of America | Pre-grant |
| US11770379B1 | Cited by | United States of America | Applicant |
| US10461943B1 | Cited by | United States of America | Applicant |
| WO2018236420A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US11310198B2 | Cited by | United States of America | Applicant |
| US10447668B1 | Cited by | United States of America | Search report |
| US10742395B2 | Cited by | United States of America | Applicant |
| US11502854B2 | Cited by | United States of America | Applicant |
| US10417455B2 | Cited by | United States of America | Applicant |
| US10467437B2 | Cited by | United States of America | Applicant |
| US10841089B2 | Cited by | United States of America | Applicant |
| WO2017137959A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| WO2019033193A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US11265160B2 | Cited by | United States of America | Search report |
| US2019260718A1 | Cited by | United States of America | Search report |
| US10778439B2 | Cited by | United States of America | Search report |
| US11057203B2 | Cited by | United States of America | Search report |
| US10560441B2 | Cited by | United States of America | Search report |
| US11140140B2 | Cited by | United States of America | Search report |
| US10461940B2 | Cited by | United States of America | Search report |
| US11316683B2 | Cited by | United States of America | Search report |
| US11095458B2 | Cited by | United States of America | Applicant |
| US10425225B1 | Cited by | United States of America | Search report |
| US10757082B2 | Cited by | United States of America | Search report |
| US11321493B2 | Cited by | United States of America | Search report |
| US11176253B2 | Cited by | United States of America | Search report |
| CN112470425A | Cited by | China | Search report |
| WO2020094638A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10404456B2 | Cited by | United States of America | Search report |
| US12008132B1 | Cited by | United States of America | Search report |
| US2020412533A1 | Cited by | United States of America | Search report |
| US10243731B2 | Cited by | United States of America | Search report |
| US10764047B2 | Cited by | United States of America | Search report |
| WO2018063755A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10225241B2 | Cited by | United States of America | Search report |
| EP3672144A4 | Cited by | European Patent Office (EPO) | Search report |
| US2022108015A1 | Cited by | United States of America | Search report |
| CN109104281A | Cited by | China | Search report |
| US10594669B2 | Cited by | United States of America | Search report |
| US11222117B2 | Cited by | United States of America | Search report |
| US10628333B2 | Cited by | United States of America | Applicant |
| CN112753196A | Cited by | China | Search report |
| US2019042302A1 | Cited by | United States of America | Search report |
| CN106230830A | Cited by | China | Search report |
| US10262130B2 | Cited by | United States of America | Search report |
| US11363021B1 | Cited by | United States of America | Search report |
| CN106327184A | Cited by | China | Search report |
| WO2024163580A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| WO2020049355A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10263778B1 | Cited by | United States of America | Search report |
| US10909250B2 | Cited by | United States of America | Search report |
| US10644885B2 | Cited by | United States of America | Search report |
| US10504179B1 | Cited by | United States of America | Applicant |
| US2019149528A1 | Cited by | United States of America | Search report |
| US11803666B2 | Cited by | United States of America | Applicant |
| US11343081B2 | Cited by | United States of America | Applicant |
| CN107682586A | Cited by | China | Search report |
| US12095641B2 | Cited by | United States of America | Applicant |
| US2015324218A1 | Cited by | United States of America | Pre-grant |
| US10181950B2 | Cited by | United States of America | Search report |
| US10313123B1 | Cited by | United States of America | Applicant |
| CN108713190A | Cited by | China | Search report |
| US11916872B2 | Cited by | United States of America | Applicant |
| US12124580B2 | Cited by | United States of America | Search report |
| US2017061145A1 | Cited by | United States of America | Pre-grant |
| US2017237719A1 | Cited by | United States of America | Search report |
| US9760730B2 | Cited by | United States of America | Search report |
| US2020236093A1 | Cited by | United States of America | Search report |
| US10887294B2 | Cited by | United States of America | Applicant |
| US10310885B2 | Cited by | United States of America | Search report |
| CN113508568A | Cited by | China | Search report |
| EP3648430A1 | Cited by | European Patent Office (EPO) | Search report |
| US11728983B2 | Cited by | United States of America | Search report |
| US2023216662A1 | Cited by | United States of America | Search report |
| US2018262341A1 | Cited by | United States of America | Pre-grant |
| US11726813B2 | Cited by | United States of America | Search report |
| US11102003B2 | Cited by | United States of America | Search report |
| US2024179000A1 | Cited by | United States of America | Search report |
| EP3355217A1 | Cited by | European Patent Office (EPO) | Search report |
| US2017237719A1 | Cited by | United States of America | Pre-grant |
| US2007110244A1 | Cites | United States of America | Search report |
| US2014282936A1 | Cites | United States of America | Search report |
| US6931133B2 | Cites | United States of America | Search report |
| US8468151B2 | Cites | United States of America | Search report |
14 members in 2 offices
Priority claims16
| Document | Office | Kind | Date |
|---|---|---|---|
| 201462008112 | United States of America | P | |
| 201414299739 | United States of America | A | |
| 201514662012 | United States of America | A | |
| 201514667238 | United States of America | A | |
| 201514723858 | United States of America | A | |
| 201514723999 | United States of America | A | |
| 14299739 | – | – | – |
| 14662012 | – | – | – |
| 14667238 | – | – | – |
| 62008112 | – | – | – |
| US201414299739 | – | – | – |
| US201462008112P | – | – | – |
| US201514662012 | – | – | – |
| US201514667238 | – | – | – |
| US201514723858 | – | – | – |
| US201514723999 | – | – | – |
Members14
| Document | Office | Kind | |
|---|---|---|---|
| US2015358161A1 | United States of America | A1 | |
| US2015358294A1 | United States of America | A1 | |
| US2015358311A1 | United States of America | A1 | |
| US2015358312A1 | United States of America | A1 | |
| US2015358313A1 | United States of America | A1 | |
| TW201546649A | Taiwan Province of China | A | |
| US2016028551A1 | United States of America | A1 | |
| US2016149877A1 | United States of America | A1 | |
| TW201635180A | Taiwan Province of China | A | |
| TW201635185A | Taiwan Province of China | A | |
| TW201642169A | Taiwan Province of China | A | |
| TW201642620A | Taiwan Province of China | A | |
| US9571279B2 | United States of America | B2 | |
| TWI632797B | Taiwan Province of China | B |
40 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Mail PUB other miscellaneous communication to applicantMM327-D | MM327-D | |
| PUB Other miscellaneous communication to applicantM327-D | M327-D | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Application Is Now CompleteCOMP | COMP | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by L&R (LARS)L128 | L128 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Referred to Level 2 (LARS) by OIPE CSRL198 | L198 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
12 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20150358161
- Publication, DOCDB
- 2015358161
- Publication, EPODOC
- US2015358161
- Application
- 14723858
- Application, DOCDB
- 201514723858
- Application, EPODOC
- US201514723858
Titles
- English
- SYSTEMS AND METHODS FOR SECURED BACKUP OF HARDWARE SECURITY MODULES FOR CLOUD-BASED WEB SERVICES
Patent term adjustment
- Applicant delay
- −9 days
- Net adjustment
- 0 days
Classification
- CPC, 13
- H04L9/0897
- H04L63/062
- H04L63/06
- G06F9/452
- G06F21/602
- G06F9/45558
- H04L63/0428
- G06F21/335
- H04L9/3234
- H04L63/0485
- H04L63/0823
- H04L63/168
- H04L67/42
- IPC, 3
- H04L9 08
- G06F21 60
- H04L29 06
- USPC, 1
- 713164000