IP Library Granted Patent US 11,075,755
Granted Patent B2
US 11,075,755 · App. 16/393,033 · Granted Jul 27, 2021

Zero-knowledge key escrow

Inventors: Chaoting Xuan (Duluth, GA); Qimin Yao (Dunwoody, GA); Litao Shen (Alpharetta, GA)
Assignee: VMWARE, INC.
H04L9/0894G06F21/604H04L9/085H04L9/14H04L9/3218
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,075,755
App. No.
16/393,033
Granted
Jul 27, 2021
Kind
B2
Abstract

Disclosed are various embodiments for implementing a key escrow system without disclosure of a client's encryption key to third parties. An encryption key is split into a plurality of key segments pursuant to a shared secret protocol. A plurality of peer client devices are then identified. Each peer client device in the plurality of peer client devices is then verified and the respective one of the plurality of key segments are sent to a respective one of the plurality of peer client devices. A response is then received from each respective one of the plurality of peer client devices, the response confirming receipt of the respective one of the plurality of key segments. A list identifying the plurality of peer client devices is finally provided to a key escrow service, the list comprising key-value pairs that identify each respective one of the plurality of peer client devices and the respective one of the plurality of key segments.

Claims (54)

1. A system, comprising:

a client device comprising a processor and a memory; and

machine readable instructions stored in the memory that, when executed by the processor, cause the client device to at least:

split an encryption key stored in the memory into a plurality of key segments pursuant to a shared secret protocol;

identify a plurality of peer client devices by causing the client device to at least:

scan a network for potential peer client devices that comply with at least one policy; and

randomly select a subset of the potential peer client devices for inclusion in the plurality of peer client devices;

verify that each peer client device in the plurality of peer client devices is authorized to receive a respective one of the plurality of key segments;

send the respective one of the plurality of key segments to a respective one of the plurality of peer client devices;

receive a response from each respective one of the plurality of peer client devices, the response confirming receipt of the respective one of the plurality of key segments;

and

provide a list identifying the plurality of peer client devices to a key escrow service, the list comprising key-value pairs that identify each respective one of the plurality of peer client devices and the respective one of the plurality of key segments.

2. The system of claim 1 , wherein the machine readable instructions, when executed by the processor, further cause the client device to at least send a public encryption key stored on the client device to each respective one of the plurality of peer client devices.

3. The system of claim 1 , wherein the machine readable instructions that cause the client device to verify that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further cause the client device to at least:

render a prompt in a user interface of the client device for each peer client device, the prompt requesting the user to verify each peer client device.

4. The system of claim 3 , wherein the machine readable instructions that cause the client device to verify that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further cause the client device to at least verify each peer client device based on a manipulation of a user interface element in the prompt.

5. The system of claim 1 , wherein the machine readable instructions that cause the client device to verify that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further cause the client device to at least:

determine that each peer client device complies with at least one policy.

6. The system of claim 1 , wherein the machine readable instructions, when executed by the processor, further cause the client device to at least encrypt the respective one of the plurality of key segments with a public encryption key of the respective one of the plurality of peer client devices prior to sending the respective one of the plurality of key segments.

7. The system of claim 1 , wherein the shared secret protocol allows for the encryption key to be reconstructed from a subset of the plurality of key segments.

8. A method, comprising:

splitting an encryption key into a plurality of key segments pursuant to a shared secret protocol;

identifying a plurality of peer client devices by;

scanning a network for potential peer client devices that comply with at least one policy; and

randomly selecting a subset of the potential peer client devices for inclusion in the plurality of peer client devices;

verifying that each peer client device in the plurality of peer client devices is authorized to receive a respective one of the plurality of key segments;

sending the respective one of the plurality of key segments to a respective one of the plurality of peer client devices;

receiving a response from each respective one of the plurality of peer client devices, the response confirming receipt of the respective one of the plurality of key segments; and

providing a list identifying the plurality of peer client devices to a key escrow service, the list comprising key-value pairs that identify each respective one of the plurality of peer client devices and the respective one of the plurality of key segments.

9. The method of claim 8 , further comprising sending a public encryption key to each respective one of the plurality of peer client devices.

10. The method of claim 8 , wherein verifying that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further comprises:

rendering a prompt in a user interface for each peer client device, the prompt requesting the user to verify each peer client device.

11. The method of claim 10 , wherein verifying that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further comprises verifying each peer client device based on a manipulation of a user interface element in the prompt.

12. The method of claim 8 , wherein verifying that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further comprises:

determine that each peer client device complies with at least one policy.

13. The method of claim 8 , further comprising encrypting the respective one of the plurality of key segments with a public encryption key of the respective one of the plurality of peer client devices prior to sending the respective one of the plurality of key segments.

14. The method of claim 8 , wherein the shared secret protocol allows for the encryption key to be reconstructed from a subset of the plurality of key segments.

15. A non-transitory, computer-readable medium comprising machine-readable instructions that, when executed by a processor of a client device, cause the client device to at least:

split an encryption key stored in a memory of the client device into a plurality of key segments pursuant to a shared secret protocol;

identify a plurality of peer client devices by causing the client device to at least:

scan a network for potential peer client devices that comply with at least one policy; and

randomly select a subset of the potential peer client devices for inclusion in the plurality of peer client devices;

verify that each peer client device in the plurality of peer client devices is authorized to receive a respective one of the plurality of key segments;

send the respective one of the plurality of key segments to a respective one of the plurality of peer client devices;

receive a response from each respective one of the plurality of peer client devices, the response confirming receipt of the respective one of the plurality of key segments; and

provide a list identifying the plurality of peer client devices to a key escrow service, the list comprising key-value pairs that identify each respective one of the plurality of peer client devices and the respective one of the plurality of key segments.

16. The non-transitory, computer-readable medium of claim 15 , wherein the machine readable instructions, when executed by the processor, further cause the client device to at least:

send a public encryption key stored on the client device to each respective one of the plurality of peer client devices.

17. The non-transitory, computer-readable medium of claim 15 , wherein the machine readable instructions that cause the client device to verify that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further cause the client device to at least:

determine that each peer client device complies with at least one policy.

18. The non-transitory, computer-readable medium of claim 15 , wherein the machine readable instructions that cause the client device to verify that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further cause the client device to at least:

render a prompt in a user interface of the client device for each peer client device, the prompt requesting the user to verify each peer client device.

19. The non-transitory, computer-readable medium of claim 18 , wherein the machine readable instructions that cause the client device to verify that each peer client device in the plurality of peer client devices is authorized to receive the respective one of the plurality of key segments further cause the client device to at least verify each peer client device based on a manipulation of a user interface element in the prompt.

20. The non-transitory, computer-readable medium of claim 15 , wherein the machine readable instructions, when executed by the processor, further cause the client device to at least encrypt the respective one of the plurality of key segments with a public encryption key of the respective one of the plurality of peer client devices prior to sending the respective one of the plurality of key segments.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2019
From: XUAN, CHAOTING; YAO, QIMIN; SHEN, LITAO
To: VMWARE, INC.
Reel/Frame 049661/0662 →