IP Library Granted Patent US 10,708,049
Granted Patent B2
US 10,708,049 · App. 16/186,426 · Granted Jul 7, 2020

Secure escrow service

Inventors: Dallas B. De Atley (San Francisco, CA); Jerrold V. Hauck (Windermere, FL); Mitchell D. Adler (Los Gatos, CA)
Assignee: Apple Inc.
H04L9/0894G06F21/00G06F21/33G06F21/445G06F21/606G06F21/6245G06F21/64H04L9/0861H04L63/0428H04L63/0442H04L63/06H04L63/062H04L63/08H04L63/101
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 10,708,049
App. No.
16/186,426
Granted
Jul 7, 2020
Kind
B2
Abstract

A method of restoring confidential information items of a first device to a second device by using a set of servers. The method generates a public and private key pair and ties the private key to the hash of executable code of the servers at the time of generating the public and private keys. The method receives the encrypted confidential information items in a secure object which is encrypted with a user-specific key and the public key. The method only provides the confidential information to the second device when the second device provides the same user-specific key as the key that encrypts the secure object and the hash of the executable code of the servers at the time of accessing the private key to decrypt the secure object matches the hash of the executable code running on the servers at the time of generating the private key.

Claims (56)

1. A method comprising:

receiving, by a server and from a first device, a request to provide a recovery key to a second device, the request comprising the recovery key encrypted by a first key generated at the first device based on a first set of user-specific data, wherein the server is separate from the first and second devices;

receiving, by the server and from the second device, a second key generated at the second device based on a second set of user-specific data; and

when the second key matches the first key:

decrypting, by the server, the encrypted recovery key; and

providing, by the server, the recovery key to the second device.

2. The method of claim 1 , wherein the encrypted recovery key is received in secure data object that is encrypted with a public key associated with the server and the method further comprises:

decrypting, using a private key corresponding to the public key, the secure data object to obtain the encrypted recovery key.

3. The method of claim 1 , wherein providing the recovery to the second device comprises:

receiving, by the server, a session key generated by the second device;

encrypting, by the server, the recovery key with the session key; and

sending, by the server, the recovery key encrypted with the session key to the second device.

4. The method of claim 1 , wherein the recovery key is a device dependent key generated by the first device.

5. The method of claim 1 , further comprising:

when the second key does not match the first key:

when a number of times that the second device provided the second key that does not match the first key exceeds a threshold, permanently blocking the second device from accessing the recovery key.

6. The method of claim 5 , further comprising:

when the number of times that the second device provided the second key that does not match the first key does not exceed the threshold, increasing an amount of time before another request will be accepted from the second device.

7. The method of claim 1 , wherein the first and second sets of user-specific data comprise data entered by at least one user on the first and second devices respectively.

8. A device comprising:

a memory; and

at least one processor configured to:

receive, from a first device, a request to provide a recovery key to a second device, the request comprising the recovery key encrypted by a first key generated at the first device based on a first set of user-provided data;

receive, from the second device, a second key generated at the second device based on a second set of user-provided data; and

when the second key matches the first key:

decrypt the encrypted recovery key; and

provide the recovery key to the second device.

9. The device of claim 8 , wherein the encrypted recovery key is received in a secure data object that is encrypted with a public key associated with the device and the at least one processor is further configured to:

decrypt, using a private key corresponding to the public key, the secure data object to obtain the encrypted recovery key.

10. The device of claim 8 , wherein the at least one processor is configured to provide the recovery to the second device by:

receiving a session key generated by the second device;

encrypting the recovery key with the session key; and

sending the recovery key encrypted with the session key to the second device.

11. The device of claim 8 , wherein the recovery key is a device dependent key generated by the first device.

12. The device of claim 8 , wherein the at least one processor is further configured to:

when the second key does not match the first key:

when a number of times that the second device provided a respective second key that does not match the first key exceeds a threshold, permanently block the second device from accessing the recovery key.

13. The device of claim 12 , wherein the at least one processor is further configured to:

when the number of times that the second device provided the respective second key that does not match the first key does not exceed a threshold, increase an amount of time before another request will be accepted from the second device.

14. The device of claim 8 , wherein the first and second sets of user-provided data comprise data entered by at least one user on the first and second devices respectively.

15. A non-transitory machine readable medium comprising code that, when executed by one or more processors causes the one or more processors to perform operations, the code comprising:

code to receive, from a first device, a request to provide a recovery key to a second device, the request comprising the recovery key encrypted by a first key generated at the first device;

code to receive, from the second device, a second key generated at the second device; and

when the second key matches the first key:

code to decrypt the encrypted recovery key; and

code to provide the recovery key to the second device.

16. The non-transitory machine readable medium of claim 15 , wherein the encrypted recovery key is received in a secure data object that is encrypted with a public key and the code further comprises:

code to decrypt, using a private key corresponding to the public key, the secure data object to obtain the encrypted recovery key.

17. The non-transitory machine readable medium of claim 15 , wherein the code to provide the recovery to the second device further comprises:

code to receive a session key generated by the second device;

code to encrypt the recovery key with the session key; and

code to send the recovery key encrypted with the session key to the second device.

18. The non-transitory machine readable medium of claim 15 , wherein the recovery key is a device dependent key generated by the first device.

19. The non-transitory machine readable medium of claim 15 , wherein the code further comprises:

when the second key does not match the first key, permanently block the second device from accessing the recovery key.

20. The non-transitory machine readable medium of claim 15 , wherein the first and second sets of user-provided data comprise data entered by at least one user on the first and second devices respectively.

Continuity (6)
Continuation 15730487 · Oct 11, 2017
Continuation 15268471 · Sep 16, 2016
Continuation 14792572 · Jul 6, 2015
Division 13767847 · Feb 14, 2013
Provisional Application 61707996 · Sep 30, 2012
Related Publication 20190182041A1 · Jun 13, 2019