System and methods for a control plane to cryptographically trust anonymous software artifacts or devices
Systems and methods for a control plane to cryptographically trust and revoke the trust of anonymous software artifacts or devices are described. In an illustrative, non-limiting embodiment, an Information Handling System (IHS) may include: a processor; and a memory coupled to the processor, where the memory includes program instructions stored thereon that, upon execution by the processor, cause a control plane of the IHS to: receive an anonymous token of a distributed anonymous token set package from a requestor; verify the anonymous token; and subsequent to verifying the anonymous token, establish a trust relationship with the requestor.
1 . An Information Handling System (IHS), comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprises program instructions stored thereon that, upon execution by the processor, cause a control plane of the IHS to:
receive an anonymous token of a distributed anonymous token set package from a requestor, the received anonymous token comprising a signature of the control plane and information regarding an expiration date or time, wherein the received anonymous token is encrypted using a public key of the control plane;
verify the anonymous token by performing operations comprising:
decrypting the received anonymous token using a secret key of the control plane;
verifying the signature of the control plane; and
determining that the expiration date or time, indicated by the information regarding the expiration date or time of the anonymous token, has not expired; and
subsequent to verifying the anonymous token, establish a trust relationship with the requestor.
2 . The IHS of claim 1 , wherein prior to receiving the anonymous token from the requestor, the program instructions further cause the control plane of the IHS to:
receive a request from the requestor to decrypt at least a part of the distributed anonymous token set package;
decrypt at least the part of the distributed anonymous token set package to produce a decrypted part of the anonymous token set package; and
provide the decrypted part of the anonymous token set package to the requestor.
3 . The IHS of claim 2 , wherein the control plane of the IHS uses blind decryption to decrypt the at least part of the distributed anonymous token set package.
4 . The IHS of claim 1 , wherein prior to receiving the anonymous token from the requestor, the program instructions further cause the control plane of the IHS to:
generate an anonymous token set comprising a plurality of anonymous tokens, including the anonymous token;
generate the anonymous token set package comprising the anonymous token set; and
encrypt the anonymous token set package.
5 . The IHS of claim 4 , wherein the program instructions further cause the control plane of the IHS to:
distribute the encrypted anonymous token set package to a software artifact, a software deployment orchestrator, a device, or a user.
6 . The IHS of claim 1 , wherein the requestor is a software artifact or a device of a system comprising the IHS.
7 . A method, comprising:
determining, by a control plane of a system, a secret value unique for an anonymous token set of a distributed anonymous token set package;
determining, by the control plane, and based at least in part on the secret value, a starting token identifier;
determining, by the control plane, a first token identifier based at least in part on the starting token identifier;
determining, by the control plane, a first anonymous token of the anonymous token set, wherein the first anonymous token comprises the first token identifier, information regarding an expiration date or time, and a signature of the control plane
receiving, at the control plane, the first anonymous token of the anonymous token set of the distributed anonymous token set package from a requestor;
verifying, by the control plane, the first anonymous token; and
subsequent to verifying the first anonymous token, establishing, by the control plane, a trust relationship with the requestor.
8 . The method of claim 7 , wherein prior to receiving the first anonymous token from the requestor, the method further comprises:
receiving, at the control plane, a request from the requestor to decrypt at least a part of the distributed anonymous token set package;
decrypting, by the control plane, at least the part of the distributed anonymous token set package to produce a decrypted part of the anonymous token set package; and
providing, by the control plane, the decrypted part of the anonymous token set package to the requestor.
9 . The method of claim 8 , wherein the part of the distributed anonymous token set package is further encrypted by the requestor before being sent to the control plane, and wherein the decrypting, by the control plane, of at least the part of the distributed anonymous token set package is performed using blind decryption.
10 . The method of claim 7 , wherein prior to receiving the anonymous token from the requestor, the method further comprises:
generating, at the control plane, an anonymous token set comprising a plurality of anonymous tokens, including the first anonymous token;
generating, at the control plane, the anonymous token set package comprising the anonymous token set; and
encrypting, by the control plane, the anonymous token set package.
11 . The method of claim 10 , further comprising:
distributing, by the control plane, the encrypted anonymous token set package to a software artifact, a software deployment orchestrator, a device, or a user of the system.
12 . The method of claim 7 , wherein the requestor is a software artifact or a device of the system.
13 . The method of claim 7 , wherein the first token identifier is a hash of the starting token identifier based, at least in part, on a secure hash function.
14 . The method of claim 7 , further comprising:
determining, by the control plane, a second token identifier based at least in part on the first token identifier; and
determining, by the control plane, a second anonymous token of the anonymous token set, wherein the second anonymous token comprises the second token identifier, information regarding the expiration date or time, and a second signature of the control plane.
15 . The method of claim 7 , wherein the received first anonymous token is encrypted using a public key of the control plane, and wherein verifying the first anonymous token further comprises:
decrypting, by the control plane, the encrypted received first anonymous token using a secret key of the control plane;
verifying, by the control plane, the signature of the control plane; and
determining, by the control plane, that the expiration date or time, indicated by the information regarding the expiration date or time of the anonymous token, has not expired.
16 . One or more non-transitory computer-readable storage media storing program instructions that when executed on or across one or more processors of an Information Handling System (IHS), cause the IHS to:
generate an anonymous token set comprising an anonymous token;
obtain, by a control plane of the IHS, a symmetric key;
obtain, by the control plane, a Rivest-Shamir-Adleman (RSA) cryptographic key pair, comprising an RSA public key and an RSA secret key;
encrypt, by the control plane, the anonymous token set using the symmetric key to produce an encrypted anonymous token set;
encrypt, by the control plane, the symmetric key using the RSA public key to produce an encrypted symmetric key;
generate, by the control plane, an anonymous token set package comprising the encrypted anonymous token set and the encrypted symmetric key;
receive, at the control plane, a request from a requestor to decrypt the encrypted symmetric key, wherein the encrypted symmetric key is further encrypted by the requestor using a requestor RSA public key of the requestor;
decrypt, by the control plane, the encrypted symmetric key using the RSA secret key to produce a partially decrypted result, wherein the decrypting is performed using blind decryption;
provide, by the control plane, the partially decrypted result to the requestor receive the anonymous token of the anonymous token set of the anonymous token set package from the requestor;
verify the anonymous token; and
subsequent to the verification of the anonymous token, establish a trust relationship with the requestor.
17 . The one or more non-transitory computer-readable storage media of claim 16 , wherein prior to receiving the anonymous token from the requestor, the program instructions further cause the IHS to:
receive a request from the requestor to decrypt at least a part of the anonymous token set package;
decrypt, using blind decryption, at least the part of the anonymous token set package to produce at least a partially decrypted part of the anonymous token set package; and
provide the at least partially decrypted part of the anonymous token set package to the requestor.