IP Library Granted Patent US 11,184,169
Granted Patent B1
US 11,184,169 · App. 16/231,887 · Granted Nov 23, 2021

Systems and methods for crowd-storing encrypiion keys

Inventors: Ilya Sokolov (Boston, MA); Lei Gu (Bedford, MA); Daniel Kats (Culver City, CA)
Assignee: NortonLifeLock Inc.
H04L9/0894H04L9/085H04L9/0861H04L9/14H04L2209/38
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,184,169
App. No.
16/231,887
Granted
Nov 23, 2021
Kind
B1
Abstract

The disclosed computer-implemented method for crowd-storing encryption keys may include (i) sending, from a client computing device and to a server, a recovery request, (ii) creating a first public-private key pair, (iii) receiving a plurality of encrypted shares of an encryption key from the server in response to the recovery request, where the encrypted shares are encrypted with a first public key of the first public-private key pair, and (iv) performing a security action including (A) decrypting the plurality of encrypted shares of the encryption key with a first private key of the first public-private key pair and (B) recovering the encryption key from the decrypted plurality of shares of the encryption key. Various other methods, systems, and computer-readable media are also disclosed.

Claims (60)

1. A computer-implemented method for crowd-storing encryption keys, at least a portion of the method being performed by a client computing device comprising at least one processor, the method comprising:

encrypting each share of an encryption key with a public key of a respective crowd worker computing device,

wherein the encrypting comprises encrypting multiple copies of a share, each copy of the share being encrypted with a different public key of a different respective crowd worker computing device;

sending, to a server, each encrypted share of the encryption key for storage on the server along with identity information associated with the respective crowd worker computing device;

creating a first public-private key pair;

sending, to the server, a request to recover the encryption key along with the first public key of the first public-private key pair;

receiving, from the server, re-encrypted shares of the encryption key in response to the recovery request and subsequent to the server waiting for each respective crowd worker computing device to log in to the server,

wherein the re-encrypted shares comprise each of the shares of the encryption key decrypted by the respective crowd worker computing device and re-encrypted with the first public key of the first public-private key pair; and

performing a security action to recover the encryption key comprising decrypting each of the re-encrypted shares of the encryption key with the first private key of the first public-private key pair.

2. The method of claim 1 , further comprising generating a keychain having authentication credentials.

3. The method of claim 2 , wherein sending the request to recover the encryption key along with the first public key of the first public-private key pair comprises sending the keychain to the server for storage at the server.

4. The method of claim 2 , further comprising deriving the first public-private key pair from the authentication credentials.

5. The method of claim 4 , further comprising storing the recovered encryption key on the keychain at the client computing device.

6. The method of claim 1 , wherein re-encrypting each share of the encryption key with the first public key of the first public-private key pair comprises, for each respective crowd worker computing device:

receiving an encrypted share of the encryption key;

decrypting the encrypted share of the encryption key with a crowd worker private key; and

re-encrypting the decrypted share of the encryption key with the first public key of the first public-private key pair.

7. The method of claim 1 , further comprising receiving public keys for a number of crowd worker computing devices comprising each of the respective crowd worker computing devices; and

wherein encrypting each share of the encryption key with the public key of the respective crowd worker computing device comprises dividing the encryption key into a number of shares less than or equal to the number of crowd worker computing devices.

8. The method of claim 7 , wherein the number of crowd worker computing devices is based on crowd worker computing device authentication profiles.

9. The method of claim 8 , wherein the authentication profiles comprise per-crowd worker computing device factors comprising at least one of:

a frequency of credential reset on the crowd worker computing device;

a number of credentials stored on the crowd worker computing device;

an identity of specific credentials stored on the crowd worker computing device;

a frequency of a user logging-in to the crowd worker computing device;

a number of security-related applications installed on the crowd worker computing device;

a rate of a user logging-in by the crowd worker computing device; and

a quantity of sensitive information stored on the crowd worker computing device.

10. The method of claim 7 , further comprising storing the first private key of the first public-private key pair on a digital information storage device in a manner such that the server is unable to access the first private key of the first public-private key pair.

11. The method of claim 1 , further comprising receiving, by the client computing device and from a graphical user interface depicted on a display device of the client computing device, input indicating a user request to send the request to recover the encryption key.

12. A system for crowd-sourcing encryption keys, the system comprising:

at least one physical processor; and

physical memory comprising computer-executable instructions that, when executed by the at least one physical processor, cause the at least one physical processor to:

encrypt each share of an encryption key with a public key of a respective crowd worker computing device,

wherein the encrypting comprises encrypting multiple copies of a share, each copy of the share being encrypted with a different public key of a different respective crowd worker computing device;

send each encrypted share of the encryption key for storage on a server along with identity information associated with the respective crowd worker computing device;

create a first public-private key pair;

send a request to recover the encryption key from the server along with the first public key of the first public-private key pair;

receive re-encrypted shares of the encryption key from the server in response to the recovery request and subsequent to the server waiting for each respective crowd worker computing device to log in to the server, wherein the re-encrypted shares comprise each of the shares of the encryption key decrypted by the respective crowd worker computing device and re-encrypted with the first public key of the first public-private key pair; and

perform a security action to recover the encryption key comprising decrypting each of the re-encrypted shares of the encryption key with the first private key of the first public-private key pair.

13. The system of claim 12 , further comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:

create authentication credentials;

derive the first public-private key pair from the authentication credentials; and

store the recovered encryption key on a keychain.

14. The system of claim 12 , further comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to receive input indicating a request to send the recovery request.

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

encrypt each share of an encryption key with a public key of a respective crowd worker computing device,

wherein the encrypting comprises encrypting multiple copies of a share, each copy of the share being encrypted with a different public key of a different respective crowd worker computing device;

send, to a server, each encrypted share of the encryption key for storage on the server along with identity information associated with the respective crowd worker computing device;

create a first public-private key pair;

send, to the server, a request to recover the encryption key from the server along with the first public key of the first public-private key pair;

receive, from the server, re-encrypted shares of the encryption key in response to the recovery request and subsequent to the server waiting for each respective crowd worker computing device to log in to the server, wherein the re-encrypted shares comprise each of the shares of the encryption key decrypted by the respective crowd worker computing device and re-encrypted with the first public key of the first public-private key pair; and

perform a security action to recover the encryption key comprising decrypting each of the re-encrypted shares of the encryption key with the first private key of the first public-private key pair.

16. The non-transitory computer-readable medium of claim 15 , further comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

create authentication credentials;

derive the first public-private key pair from the authentication credentials; and

store the recovered encryption key on a keychain.

17. The non-transitory computer-readable medium of claim 15 , further comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to receive input indicating a request to send the recovery request.

18. The method of claim 2 , wherein generating the keychain having authentication credentials comprises generating a new keychain having new authentication credentials, wherein the new keychain is locked using a new passphrase that is different from a previous passphrase used to lock a previous keychain having previous authentication credentials.

19. The method of claim 18 , wherein creating the first public-private key pair comprises deriving the first public-private key pair from the new authentication credentials.

Assignments (6)
CHANGE OF NAME Recorded Feb 6, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 062714/0605 →
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Feb 14, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 051935/0228 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 24, 2018
From: SOKOLOV, ILYA; GU, LEI; KATS, DANIEL
To: SYMANTEC CORPORATION
Reel/Frame 047849/0670 →
Cited By (2)
US 12,519,621 US 12,596,844