This application claims the priority benefits of Israel application serial no. 310499, filed on Jan. 23, 2024. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.
The present invention relates to computer systems, and in particular, but not exclusively to, secure key replacement.
A signing server or other centralized entity may provide data to devices (such as secure flash devices) signed with a private key of the signing server yielding a signature. The devices each possess a corresponding public key and can therefore authenticate the data against the signature using the public key. It may be important to prevent the public key from being overwritten by an attacker who wants to spoof the signing server.
On the side of the signing server, the private key may become lost, corrupted, or otherwise unavailable, so that signatures can no longer be generated using the private key for authentication by the devices using the corresponding public key. One solution is to make backup copies of the private key and store the private key in one or more secure locations if needed.
There is provided in accordance with an embodiment of the present disclosure, a secure key replacement system, including an active signing server including a secure storage and processing unit configured to store a first private key, generate signatures using the first private key for authentication by devices storing a first public key forming a key pair with the first private key, and sign a replacement command using the first private key, the replacement command being configured to be used to instruct the devices to replace the first public key with a second public key forming a key pair with a second private key, and an interface configured to provide the signatures to the devices and the replacement command to at least one entity, which is remote to the active signing server and the devices for storage, the at least one entity including an orchestration server and/or at least one other signing server.
There is also provided in accordance with another embodiment of the present disclosure, a secure key replacement device, including a secure storage configured to securely store a first public key forming a key pair with a first private key stored by an active signing server, and a secure processor configured to reject an instruction to replace the first public key, the instruction not being authorized by a signature formed by the active signing server using the first private key, receive a replacement command signed by the first private key, the replacement command being configured to be used to instruct the device to replace the first public key with a second public key forming a key pair with a second private key stored by a new active signing server, authenticate the replacement command using the first public key, and replace the first public key with the second public key responsibly to authenticating the replacement command using the first public key.
There is also provided in accordance with still another embodiment of the present disclosure a secure key replacement method, including storing a first private key, generating signatures by an active signing server using the first private key for authentication by devices storing a first public key forming a key pair with the first private key, signing a replacement command by the active signing server using the first private key, the replacement command being configured to be used to instruct the devices to replace the first public key with a second public key forming a key pair with a second private key, and providing the signatures to the devices and the replacement command to at least one entity, which is remote to an active signing server and the devices for storage, the at least one entity including an orchestration server and/or at least one other signing server.
There is also provided in accordance with still another embodiment of the present disclosure, a secure key replacement method, including securely storing a first public key forming a key pair with a first private key stored by an active signing server, receiving a replacement command signed by the first private key, the replacement command being configured to be used to instruct the device to replace the first public key with a second public key forming a key pair with a second private key stored by a new active signing server, authenticating the replacement command using the first public key, and replacing the first public key with the second public key responsibly to authenticating the replacement command using the first public key.
The present invention will be understood from the following detailed description, taken in conjunction with the drawings in which:
As previously mentioned, a signing server may backup its private key in one or more secure locations in the event that the private key that is in use becomes lost, corrupted, or otherwise unavailable. However, private key backup may not provide a solution to the problem in some cases, one of which is mentioned below.
The National Institute of Standards and Technology (NIST) recommends using hashed-based signatures (i.e., stateful signatures), which are one-time signatures using an index that is advanced each time a signature is generated. It has the advantage that it cannot be cracked by a quantum computer. However, it is critical for the same index not to be used twice as the signatures will be broken. Therefore, backing up a private key is not enough, and the index would also need backing up and for this there is no practical solution. Hence, NIST recommends always keeping the index and key together in a hardware module (e.g., hardware security module (HSM)), which increments the index each time it uses the key, and therefore the key cannot be backed up as if you remove the key, you lose the connection with the index and cannot ensure the security of the signature scheme. The signing server is an entity which includes an HSM for securely storing the private key and performing cryptographic processes (e.g., generating signatures) with the private key.
If the private key cannot be backed up, then if the private key becomes lost, corrupt, or otherwise unavailable, it is proposed that a new key pair is generated by the signing server or another signing server to sign data for authentication by the devices. Generating a new key pair by itself, however, does not yet solve the problem, since each device has the public key which corresponds to the “lost” private key installed therein in a protected fashion so that the public key cannot be replaced. Therefore, the device has now become useless in this regard as it cannot overwrite the old public key with a new one, and the ability of a signing server to provide signatures to all the devices is lost forever.
Embodiments of the present invention solve the above drawbacks by providing a system which can use a replacement command generated from an original private key when the original private key is unavailable (e.g., lost, corrupted or otherwise). Next, the devices are sent to replace original public key with a new public key to recover from the situation where the private key is unavailable.
Reference is now made to
Each signing server SS includes a secure storage and processing unit 16 (e.g., a hardware security module (HSM)) and an interface 26 for sharing data with other ones of the signing servers SS, the orchestration server 18 and the devices 20 (e.g., via the orchestration server 18). In the example of
Each device 20 includes an interface 28 for sharing data with the orchestration server 18 and each of signing servers SS. Each device 20 also includes a secure processor 22 and a secure storage 24. The secure storage 24 of each device 20 is configured to store a public key (PUBK) 32 (e.g., the public key 32 (PUBK_0) forming a key pair with the private key 30 (PRVK_0) of the active signing server 14 (signing server 0)).
The orchestration server 18 is configured to assign signing server 0 as the active signing server 14 (step 202). The secure storage and processing unit 16 of signing server 14 (signing server 0) is configured to generate key pair and store the generated private key 30 (PRVK_0), and optionally store the index related to the private key 30 (not shown). The secure storage and processing unit 16 of the active signing server 14 (signing server 0) is configured to distribute its generated public key 32 (PUBK_0) to each device 20. The public key 32 (PUBK_0) of the active signing server 14 (signing Server 0) is then stored in the secure storage 24 of each device 20 (step 204). In one embodiment, the secure storage and processing unit 16 of the active signing server 14 (signing server 0) is also configured to distribute the public key 32 (PUBK_0) generated to all signing servers SS and/or the orchestration server 18 (not shown).
Each of the secure storage and processing unit 16 (HSM 1 to HSM N-1) of the backup signing servers (signing server 1 to signing server N-1) are configured to generate key pair (public key 32 (PUBK_1 to PUBK_N-1) and private key 30 (PRVK_1 to PRVK_N-1)) and store the generated private key 30 and optionally store an index (not shown) related to the private key 30 (step 206). In other words, the secure storage and processing unit 16 of the N-1 signing servers are configured to generate N-1 corresponding key pairs, each key pair including a respective public key and a respective private key. As shown in the example of
The secure storage and processing unit 16 of the active signing server 14 (signing server 0) is configured to sign the replacement command corresponding to each backup signing server SS using its private key 30 (PRVK_0) (step 212). Where N is equal to 2, there will be one replacement command. Wherein, each replacement command may include: the public key of each backup signing server, and a signature using the private key 30 of the active signing server 14 to sign the data including the public key. For example, “replacement command 0>1” may include public key 32 (PUBK_1) of the backup signing server 1 and the signature signed by the active signing server 14 (signing server 0) using private key 30 (PRVK_0) of the active signing server 14 (signing server 0).
The replacement commands are configured to be used instruct the devices 20 to replace public key 32 (PUBK_0) of the active signing server 14 (signing server 0) with the public key 32 corresponding to the replacement commands. For example, The secure storage and processing unit 16 of the active signing server 14 (signing server 0) can use its private key 30 (PRVK_0) to sign the “replacement command 0>1” corresponding to the backup signing server 1 (block 34 of
The interface 26 of the active signing server 14 (signing server 0) is configured to provide (e.g., send) the replacement command(s) to one or more entities (e.g., to the orchestration server 18 and/or the backup signing servers (e.g., signing server 1 to signing server N-1)), which is/are remote to the active signing server 14 and the devices 20 for storage replacement commands (step 214). In an embodiment, the orchestration server 18 may store all of the replacement commands, and/or each of the replacement commands may be stored by the relevant signing server(s) 12. For example, “command 0>1” (block 34) may be stored by signing server 1, and “command 0>N-1” (block 36) may be stored by signing server N-1.
The secure storage and processing unit 16 of the active signing server 12 is configured to generate signatures 38 using its private key 30 (PRVK_0) for authentication by devices 20 (step 216). In an embodiment, the secure storage and processing unit 16 of the active signing server 14 (signing server 0) is configured to generate hash-based signatures using private key PRVK_0 and the stored index (stored in the secure storage and processing unit 16 of the active signing server 14) for authentication by the devices 20. In embodiments in which hash-based signatures are generated, the secure storage and processing unit 16 of the active signing server 14 is configured to update (e.g., increment) the index in response to generating each hash-based signature (step 218, optionally). The interface 26 of the active signing server 14 is configured to provide the signatures 38 to the devices 20 (e.g., via the orchestration server 18), so as to provide device 20 to authenticate using stored public key 32 (PUBK_0) corresponding to the active signing server 14 (signing server 0) (step 220). The steps 216-220 may be repeated (arrow 222).
Please refer to
The orchestration server 18 is configured to assign a backup signing server (e.g., signing server 1) to be the new active signing server 14′ (step 504). The orchestration server 18 is configured to provide the replacement command (e.g., “replacement command 0>1” (block 34 in
The orchestration server 18 may be configured to add a new signing server SS (block 48 in
The secure storage and processing unit 16 of the new active signing server 14′ (signing server 1) is configured to sign replacement commands corresponding to each of the backup signing servers SS using its private key 30 (PRVK_1) (block 516). Wherein, each replacement command may include: the public key of each backup signing server, and a signature using the private key 30 of the active signing server 14′ to sign the data including the public key. For example, “replacement command 1>N” may include the public key 32 (PUBK_N) of the backup signing server N and the signature signed by the active signing server 14 (signing server 1) using the private key 30 (PRVK_1) of the active signing server 14′ (signing server 1).
The replacement commands are configured to be used to instruct the devices 20 to replace public key 32 (PUBK_1) of the active signing server with the public key 32 corresponding to the replacement command. For example, the secure storage and processing unit 16 of the active signing server 14′ (signing server 1) can use its private key 30 (PRVK_1) to sign the “replacement command 1>N-1” (Block 46 of
The interface 26 of the active signing server 14′ (signing server 1) is configured to provide (e.g., send) the replacement command(s) to one or more entities (e.g., to the orchestration server 18 and/or the backup signing servers (e.g., signing server 2 to signing server N)), which is/are remote to the active signing server 14′ and the devices 20 to store replacement commands (step 518). In an embodiment, the orchestration server 18 may store all of the replacement commands, and/or each of the replacement commands may be stored by the relevant signing server SS. For example, “replacement command 1>N-1” (block 46 in
The secure storage and processing unit 16 of the active signing server 14′ (signing server 1) is configured to generate signatures 38 using private key 30 (PRVK_1) for authentication by devices 20 (step 520). In an embodiment, the secure storage and processing unit 16 of the active signing server 14′ (signing server 1) is configured to generate hash-based signatures 38 using its private key PRVK_1 and the stored index (stored in the secure storage and processing unit 16 of the active signing server 14′) for authentication by the devices 20. In embodiments where hash-based signatures are generated, the secure storage and processing unit 16 of the active signing server 14′ is configured to update (e.g., increment) the index responsively to generating each of the hash-based signatures (step 522, optionally). The interface 26 of the active signing server 14′ is configured to provide the signatures 38 to the devices 20 (e.g., via the orchestration server 18), so as to provide device 20 to authenticate using stored public key 32 (PUBK_1) corresponding to the active signing server 14′ (signing server 1) (step 524). The steps 520-524 may be repeated (arrow 526).
Based on the above, in some embodiments of the present invention, the active signing server includes a secure storage and processing unit that generates a key pair including a public key and a private key, and stores the generated private key. The public key generated by the active signing server is sent to the devices (e.g., via orchestration server) and stored in the secure storage of the devices for use of authentication. Each of the backup signing server includes a secure storage and processing unit that generates a key pair including a public key and a private key, and stores the generated private key. The secure storage and processing unit of the active signing server uses its private key to pre-sign replacement commands corresponding to each backup signing server. Each replacement command may include the public key generated by the corresponding backup signing server and the signature signed by the active signing server. Each replacement command is used to instruct the device to replace its originally stored public key with the public key corresponding to the replacement command when necessary. Each replacement command is sent to a remote entity (e.g., an orchestration server or a signing server corresponding to the replacement command) for storage. In the event that the active signing server or its private key is unavailable, the remote entity can provide this replacement command to the device. Each device uses the original public key to authenticate the authenticity of the replacement command, and replaces the original public key with the public key corresponding to the replacement command in response to successful authentication. In this way, each device can protect its currently stored public keys by accepting replacement commands signed by a live signing server and rejecting replacement commands that are not signed by the signing server. Then, the signing server corresponding to the replacement command becomes the new active signing server and can use its private key to generate signatures so that each device can use the new public key to authenticate the data.
In addition, the new signing server can then use its private key to sign new replacement command corresponding to each backup signing server, which can be used to instruct the device to replace its stored public key again with one public key generated by other backup signing server when necessary. Each new replacement command is sent to a remote entity (e.g., an orchestration server or a signing server corresponding to the replacement command) for storage.
In practice, some or all of these functions may be combined in a single physical component or, alternatively, implemented using multiple physical components. These physical components may comprise hard-wired or programmable devices, or a combination of the two. In some embodiments, at least some of the functions of the processing circuitry may be carried out by a programmable processor under the control of suitable software. This software may be downloaded to a device in electronic form, over a network, for example. Alternatively, or additionally, the software may be stored in tangible, non-transitory computer-readable storage media, such as optical, magnetic, or electronic memory.
The embodiments described above are cited by way of example, and the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the invention includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art.
Number | Date | Country | Kind |
---|---|---|---|
310499 | Jan 2024 | IL | national |