IP Library Granted Patent US 11,520,918
Granted Patent B2
US 11,520,918 · App. 17/166,752 · Granted Dec 6, 2022

Protection for restricted actions on critical resources

Inventors: Anuj Dhawan (Redmond, WA); Brijesh Bhupendra Desai (Redmond, WA); Kameshwar Jayaraman (Redmond, WA); Ayla Kol (Sammamish, WA); Amit A. Bapat (Sammamish, WA); Qi Cao (Redmond, WA); Steven Jay Lieberman (Sammamish, WA); Ganesh Pandey (Redmond, WA); Parul Manek (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F21/6218G06F21/602G06F21/604G06F2221/2113G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,520,918
App. No.
17/166,752
Granted
Dec 6, 2022
Kind
B2
Abstract

Methods, systems, and computer programs are presented for protecting restricted actions on encryption keys that control the management of data stored by a service provider. In some implementations, a of the service provider receives a request to generate a data encryption policy (DEP) for data stored by the of the service provider for a customer, the request including a reference to a customer key and an availability key. The customer key and the availability key are root keys for encrypting a data encryption key. The data encryption key is used to encrypt the data stored by the service provider for the customer. Further, destructive changes to the availability key require receiving an approval from an account of the service provider. The of the service provider validates the DEP. The of the service provider stores the DEP based on the validation.

Claims (69)

1. A computer-implemented method comprising:

receiving, by a server of a service provider, a request to generate a data encryption policy (DEP) for data stored by the server of the service provider for a customer, the DEP defining how encryption and decryption is performed for the data, the request including a reference to a customer key and an availability key, the customer key and the availability key being root keys for encrypting a data encryption key, the data encryption key used to encrypt the data stored by the service provider for the customer, wherein destructive changes to the availability key require receiving an approval from an account of the service provider;

validating, by the server of the service provider, the DEP; and

storing, by the server of the service provider, the DEP based on the validation.

2. The method as recited in claim 1 , further comprising:

receiving a destructive request to purge the DEP;

tracking, by a directory service of the server, approvals from a plurality of user accounts to purge the DEP;

tracking, by the server, approval from the account of the service provider to purge the DEP; and

purging the DEP based on the approvals from the plurality of user accounts and the account of the service provider.

3. The method as recited in claim 1 , further comprising:

detecting a request for access to the customer key;

sending requests, by a directory service of the server, to a plurality of user accounts for approval of the request for access; and

approving the request for access when the plurality of user accounts approve the request for access.

4. The method as recited in claim 3 , wherein the request for access is approved for a predetermined amount of time and the approval is revoked after an expiration of the predetermined amount of time.

5. The method as recited in claim 1 , further comprising:

detecting, by the server, a request for accessing the availability key;

sending a notification to an account of the service provider for the request for accessing the availability key; and

approving the request for accessing the availability key when the account of the service provider approves the request.

6. The method as recited in claim 1 , further comprising:

encrypting the encryption key with the customer key to obtain a first encrypted encryption key;

encrypting the encryption key with the availability key to obtain a second encrypted encryption key; and

storing the first encrypted encryption key and the second encrypted encryption key under the DEP, wherein the server provides control of the customer key to the customer and provides control of the availability key to the service provider.

7. The method as recited in claim 1 , wherein the DEP includes the customer key, the availability key, and a key vault for storing the customer key and the availability key.

8. The method as recited in claim 7 , wherein validating the DEP comprises:

validating that the key vault is configured for access; and

validating that access to the customer key requires a plurality of approvals.

9. The method as recited in claim 1 , wherein the server comprises:

a policy manager for managing an approval process;

an approval tracker for tracking pending approvals; and

an approval notifier for sending requests for approval.

10. The method as recited in claim 1 , wherein destructive changes to the customer key require receiving approval from a plurality of customer accounts.

11. The method as recited in claim 1 , further comprising:

providing, by the server, a user interface for entering approvals.

12. A of a service provider, the comprising:

a memory comprising instructions; and

one or more computer processors, wherein the instructions, when executed by the one or more computer processors, cause the to perform operations comprising:

receiving a request to generate a data encryption policy (DEP) for data stored by the of the service provider for a customer, the DEP defining how encryption and decryption is performed for the data, the request including a reference to a customer key and an availability key, the customer key and the availability key being root keys for encrypting a data encryption key used to encrypt the data stored by the service provider, wherein destructive changes to the availability key require receiving an approval from an account of the service provider;

validating the DEP; and

storing the DEP based on the validation.

13. The as recited in claim 12 , wherein the instructions further cause the one or more computer processors to perform operations comprising:

receiving a destructive request to purge the DEP;

tracking, by a directory service of the system, approvals from a plurality of user accounts to purge the DEP;

tracking, by the system, approval from the account of the service provider to purge the DEP; and

purging the DEP based on the approvals from the plurality of user accounts and the account of the service provider.

14. The as recited in claim 12 , wherein the instructions further cause the one or more computer processors to perform operations comprising:

detecting a request for access to the customer key;

sending requests, by a directory service of the system, to a plurality of user accounts for approval of the request for access; and

approving the request for access when the plurality of user accounts approve the request for access.

15. The as recited in claim 14 , wherein the request for access is approved for a predetermined amount of time and the approval is revoked after an expiration of the predetermined amount of time.

16. The as recited in claim 12 , wherein the instructions further cause the one or more computer processors to perform operations comprising:

detecting, by the system, a request for accessing the availability key;

sending a notification to an account of the service provider for the request for accessing the availability key; and

approving the request for accessing the availability key when the account of the service provider approves the request.

17. The as recited in claim 12 , wherein the DEP includes the customer key, the availability key, and a key vault for storing the customer key and the availability key, wherein validating the DEP comprises:

validating that the key vault is configured for access; and

validating that access to the customer key requires a plurality of approvals.

18. A tangible machine-readable storage medium including instructions that, when executed by a machine, cause the machine to perform operations comprising:

receiving, by a server of a service provider, a request to generate a data encryption policy (DEP) for data stored by the server of the service provider for a customer, the DEP defining how encryption and decryption is performed for the data, the request including a reference to a customer key and an availability key, the customer key and the availability key being root keys for encrypting a data encryption key used to encrypt the data stored by the service provider, wherein destructive changes to the availability key require receiving an approval from an account of the service provider;

validating, by the server of the service provider, the DEP; and

storing, by the server of the service provider, the DEP based on the validation.

19. The tangible machine-readable storage medium as recited in claim 18 , wherein the machine further performs operations comprising:

receiving a destructive request to purge the DEP;

tracking, by a directory service of the server, approvals from a plurality of user accounts to purge the DEP;

tracking, by the server, approval from the account of the service provider to purge the DEP; and

purging the DEP based on the approvals from the plurality of user accounts and the account of the service provider.

20. The tangible machine-readable storage medium as recited in claim 18 , wherein the machine further performs operations comprising:

detecting a request for access to the customer key;

sending requests, by a directory service of the server, to a plurality of user accounts for approval of the request for access; and

approving the request for access when the plurality of user accounts approve the request for access.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2021
From: DHAWAN, ANUJ; DESAI, BRIJESH BHUPENDRA; JAYARAMAN, KAMESHWAR; KOL, AYLA; BAPAT, AMIT A.; CAO, QI; LIEBERMAN, STEVEN JAY; PANDEY, GANESH; MANEK, PARUL
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 055216/0913 →
Continuity (1)
Related Publication 20220245268A1 · Aug 4, 2022
Cited By (1)
US 12,299,159