Decryption key generation and recovery
A decryption key is recovered that is utilized to decrypt an encrypted resource. One or more location attribute policy (LAP) servers determine whether a user attempting to access a resource has the necessary attributes to access the resource and is in a valid location in which the user is required to be to access the resource. The attributes and location are defined by a policy assigned to the resource. To verify that the user has the required attributes, the LAP server(s) request a cryptographic proof from the user that proves that the user has the required attributes. Upon validating the proof, a first portion of the decryption key is released. The LAP server(s) release a second portion of the decryption key after verifying that the user is in the required location. The LAP server(s) generate the decryption key based on the released portions.
1. A system, comprising:
a processor; and
a memory that stores program code that, when executed by the processor, performs operations to recover a decryption key, the operations comprising:
receiving a cryptographic proof that a user is associated with an attribute required to access a resource in accordance with a policy;
verifying that the cryptographic proof is valid using a zero-knowledge proof;
responsive to verifying that the cryptographic proof is valid, providing a first portion of the decryption key;
determining that the user is at a location at which access to the resource is allowed in accordance with the policy;
responsive to determining that the user is at the location, providing a second portion of the decryption key; and
combining the first portion and the second portion to generate the decryption key.
2. The system of claim 1 , wherein the attribute comprises at least one of:
a clearance level of the user;
a rank of the user within an organization; or
a role of the user within the organization.
3. The system of claim 1 , the operations further comprising:
encrypting the decryption key using a public encryption key of the user; and
providing the encrypted decryption key to a computing device associated with the user.
4. The system of claim 1 , wherein said combining comprises:
summing the first portion and the second portion.
5. The system of claim 1 , the operations further comprising:
decrypting the resource utilizing the decryption key; and
providing the decrypted resource to a computing device associated with the user.
6. The system of claim 1 , wherein the cryptographic proof is verified based on a public encryption key associated with the attribute and an encrypted shared secret associated with the attribute.
7. The system of claim 1 , the operations further comprising:
receiving a request to access the resource, the request specifying a policy identifier of the policy; and
obtaining the policy corresponding to the policy identifier.
8. A method for recovering a decryption key, comprising:
receiving a cryptographic proof that a user is associated with an attribute required to access a resource in accordance with a policy;
verifying that the cryptographic proof is valid using a zero-knowledge proof;
responsive to verifying that the cryptographic proof is valid, providing a first portion of the decryption key;
determining that the user is at a location at which access to the resource is allowed in accordance with the policy;
responsive to determining that the user is at the location, providing a second portion of the decryption key; and
combining the first portion and the second portion to generate the decryption key.
9. The method of claim 8 , wherein the attribute comprises at least one of:
a clearance level of the user;
a rank of the user within an organization; or
a role of the user within the organization.
10. The method of claim 8 , further comprising:
encrypting the decryption key using a public encryption key of the user; and
providing the encrypted decryption key to a computing device associated with the user.
11. The method of claim 8 , wherein said combining comprises:
summing the first portion and the second portion.
12. The method of claim 8 , further comprising:
decrypting the resource utilizing the decryption key; and
providing the decrypted resource to a computing device associated with the user.
13. The method of claim 8 , wherein the cryptographic proof is verified based on a public encryption key associated with the attribute and an encrypted shared secret associated with the attribute.
14. The method of claim 8 , further comprising:
receiving a request to access the resource, the request specifying a policy identifier of the policy; and
obtaining the policy corresponding to the policy identifier.
15. A computer-readable storage medium having program instructions recorded thereon that, when executed by a processor, perform a method for recovering a decryption key comprising:
receiving a cryptographic proof that a user is associated with an attribute required to access a resource in accordance with a policy;
verifying that the cryptographic proof is valid using a zero-knowledge proof;
responsive to verifying that the cryptographic proof is valid, providing a first portion of the decryption key;
determining that the user is at a location at which access to the resource is allowed in accordance with the policy;
responsive to determining that the user is at the location, providing a second portion of the decryption key; and
combining the first portion and the second portion to generate the decryption key.
16. The computer-readable storage medium of claim 15 , wherein the attribute comprises at least one of:
a clearance level of the user;
a rank of the user within an organization; or
a role of the user within the organization.
17. The computer-readable storage medium of claim 15 , the method further comprising:
encrypting the decryption key using a public encryption key of the user; and
providing the encrypted decryption key to a computing device associated with the user.
18. The computer-readable storage medium of claim 15 , wherein said combining comprises:
summing the first portion and the second portion.
19. The computer-readable storage medium of claim 15 , the method further comprising:
decrypting the resource utilizing the decryption key; and
providing the decrypted resource to a computing device associated with the user.
20. The computer-readable storage medium of claim 15 , the method further comprising:
receiving a request to access the resource, the request specifying a policy identifier of the policy; and
obtaining the policy corresponding to the policy identifier.