IP Library Granted Patent US 11,044,088
Granted Patent B2
US 11,044,088 · App. 16/451,351 · Granted Jun 22, 2021

System and method for rotating client security keys

Inventor: Anton Mityagin (San Francisco, CA)
Assignee: Dropbox, Inc.
H04L9/0891H04L9/08H04L9/0819H04L9/12H04L9/16H04L63/0428H04L63/068
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,044,088
App. No.
16/451,351
Granted
Jun 22, 2021
Kind
B2
Abstract

Systems, methods, and non-transitory computer-readable storage media for rotating security keys for an online synchronized content management system client. A client having a first security key as an active security key may send a request to a server for a new security key as a replacement for the first security key. The server may receive the request and generate a candidate security key. The server can issue the candidate security key to the client device. After receiving the candidate security key, the client may send a key receipt confirmation message to the server. In response to the confirmation message, the server may mark the candidate key as the new security key for the client and discard the client's old security key. The server may send an acknowledgment message to the client device. In response, the client may also mark the candidate key as its new active key.

Claims (76)

1. A method, comprising:

receiving, at a server from a client device, a request for a new security key as a replacement for a first security key, wherein the request is encrypted with the first security key;

generating, by the server, a candidate security key responsive to the request for the new security key;

transmitting, by the server, the candidate security key to the client device;

receiving, at the server from the client device, a second request for the new security key as a replacement for the first security key, wherein the second request is encrypted with the first security key;

generating, by the server, a second candidate security key responsive to the second request for the new security key, the second candidate security key distinct from the candidate security key;

transmitting, by the server, the second candidate security key to the client device;

receiving, by the server, a key receipt confirmation from the client device, the key receipt confirmation encrypted with one of the candidate security key or the second candidate security key;

determining, by the server, that the key receipt confirmation is encrypted using the candidate security key;

responsive to the determining that the key receipt confirmation is encrypted using the candidate security key, retiring the first security key; and

marking, by the server, the candidate security key as the new security key associated with the client device.

2. The method of claim 1 , further comprising:

prior to receiving the request for the new security key, receiving, by the server from the client device, an operation request encrypted with the first security key;

determining, by the server, that the first security key has expired; and

transmitting, by the server, an expired security key notification to the client device, prompting the client device to request the new security key.

3. The method of claim 1 , further comprising:

discarding, by the server, the second candidate security key responsive to determining that the key receipt confirmation is encrypted using the candidate security key.

4. The method of claim 1 , further comprising:

prompting, by the server, the client device to mark the candidate security key as the new security key by transmitting an acknowledgement message to the client device.

5. The method of claim 1 , wherein further communication between the server and the client device is encrypted with the new security key.

6. The method of claim 1 , wherein the server is an online synchronized content management system.

7. The method of claim 1 , wherein generating, by the server, the candidate security key responsive to the request for the new security key comprises:

determining that the client device is associated with a first user account and a second user account;

identifying that the first user account generated the request for a new security key; and

generating the candidate security key for first user account, without modifying a security key associated with the second user account.

8. A system comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions which, when executed by the processor, cause the processor to perform operations comprising:

receiving, from a client device, a request for a new security key as a replacement for a first security key, wherein the request is encrypted with the first security key;

generating a candidate security key responsive to the request for the new security key;

transmitting the candidate security key to the client device;

receiving, from the client device, a second request for the new security key as a replacement for the first security key, wherein the second request is encrypted with the first security key;

generating a second candidate security key responsive to the second request for the new security key, the second candidate security key distinct from the candidate security key;

transmitting the second candidate security key to the client device;

receiving a key receipt confirmation from the client device, the key receipt confirmation encrypted with one of the candidate security key or the second candidate security key;

determining that the key receipt confirmation is encrypted using the candidate security key;

responsive to the determining that the key receipt confirmation is encrypted using the candidate security key, retiring the first security key; and

marking the candidate security key as the new security key associated with the client device.

9. The system of claim 8 , wherein the operations further comprise:

prior to receiving the request for the new security key, receiving, from the client device, an operation request encrypted with the first security key;

determining that the first security key has expired; and

transmitting an expired security key notification to the client device, prompting the client device to request the new security key.

10. The system of claim 8 , wherein the operations further comprise:

discarding the second candidate security key responsive to determining that the key receipt confirmation is encrypted using the candidate security key.

11. The system of claim 8 , wherein the operations further comprise:

prompting the client device to mark the candidate security key as the new security key by transmitting an acknowledgement message to the client device.

12. The system of claim 8 , wherein further communication between the system and the client device is encrypted with the new security key.

13. The system of claim 8 , wherein the system is an online synchronized content management system.

14. The system of claim 8 , wherein generating the candidate security key responsive to the request for the new security key comprises:

determining that the client device is associated with a first user account and a second user account;

identifying that the first user account generated the request for a new security key; and

generating the candidate security key for first user account, without modifying a security key associated with the second user account.

15. A non-transitory computer-readable storage medium storing instructions which, when executed by a processor, cause the processor to perform operations comprising:

receiving, at a server from a client device, a request for a new security key as a replacement for a first security key, wherein the request is encrypted with the first security key;

generating, by the server, a candidate security key responsive to the request for the new security key;

transmitting, by the server, the candidate security key to the client device;

receiving, at the server from the client device, a second request for the new security key as a replacement for the first security key, wherein the second request is encrypted with the first security key;

generating, by the server, a second candidate security key responsive to the second request for the new security key, the second candidate security key distinct from the candidate security key;

transmitting, by the server, the second candidate security key to the client device;

receiving, by the server, a key receipt confirmation from the client device, the key receipt confirmation encrypted with one of the candidate security key or the second candidate security key;

determining, by the server, that the key receipt confirmation is encrypted using the candidate security key;

responsive to the determining that the key receipt confirmation is encrypted using the candidate security key, retiring the first security key; and

marking, by the server, the candidate security key as the new security key associated with the client device.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the operations further comprise:

prior to receiving the request for the new security key, receiving, by the server from the client device, an operation request encrypted with the first security key;

determining, by the server, that the first security key has expired; and

transmitting, by the server, an expired security key notification to the client device, prompting the client device to request the new security key.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the operations further comprise:

discarding, by the server, the second candidate security key responsive to determining that the key receipt confirmation is encrypted using the candidate security key.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the operations further comprise:

prompting, by the server, the client device to mark the candidate security key as the new security key by transmitting an acknowledgement message to the client device.

19. The non-transitory computer-readable storage medium of claim 15 , wherein further communication between the server and the client device is encrypted with the new security key.

20. The non-transitory computer-readable storage medium of claim 15 , wherein generating, by the server, the candidate security key responsive to the request for the new security key comprises:

determining that the client device is associated with a first user account and a second user account;

identifying that the first user account generated the request for a new security key; and

generating the candidate security key for first user account, without modifying a security key associated with the second user account.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2019
From: MITYAGIN, ANTON
To: DROPBOX, INC.
Reel/Frame 049579/0058 →
Continuity (3)
Continuation 15814331 · Nov 15, 2017
Continuation 14513938 · Oct 14, 2014
Related Publication 20190312724A1 · Oct 10, 2019
Cited By (1)
US 12,200,124