IP Library Granted Patent US 9,813,250
Granted Patent B2
US 9,813,250 · App. 14/945,649 · Granted Nov 7, 2017

Combined authentication and encryption

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 9,813,250
App. No.
14/945,649
Granted
Nov 7, 2017
Kind
B2
Abstract

A system and methods are provided for establishing an authenticated and encrypted communication connection between two devices with at most two round-trip communications. During establishment of an initial authenticated, encrypted communication connection (or afterward), a first device (e.g., a server) provides the second device (e.g., a client) with a token (e.g., a challenge) that lives or persists beyond the current connection. After that connection is terminated and the second device initiates a new connection, it uses the token as part of the handshaking process to reduce the necessary round-trip communications to one.

Claims (62)

1. A method comprising:

providing a device with a first unsolicited token during an authenticated first communication connection;

terminating the first authenticated communication connection;

receiving encrypted authentication data from the device;

generating a session key from the first unsolicited token;

determining whether the encrypted authentication data decryptable with the session key;

acknowledging to the device establishment of a second communication connection as a response to the receiving of the encrypted authentication data, if the encrypted authentication data decryptable with the session key; and

providing the device with a second token if the encrypted authentication data not decryptable with the session key.

2. The method of claim 1 , further comprising:

receiving from the device new encrypted authentication data;

generating a new session key from the second token;

decrypting the new encrypted authentication data with the new session key; and

acknowledging to the device establishment of a second communication connection.

3. The method of claim 1 , wherein the authentication data comprises:

an identifier of a user of the device;

the first unsolicited token or the second token; and

device-specific data.

4. The method of claim 3 , wherein the authentication data further comprises a timestamp.

5. The method of claim 3 , wherein the identifier of the user of the device is a telephone number associated with the user.

6. The method of claim 3 , wherein the device-specific data is a user agent operating on a second device.

7. The method of claim 3 , wherein the token is one of the first unsolicited token or the second token.

8. The method of claim 6 , wherein generating the session key comprises applying a function to the first unsolicited token and to a secret shared between a first device and the second device.

9. The method of claim 8 , wherein shared secret is a password to an application hosted by the first device and executed on the second device.

10. A non-transitory computer readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

provide a device with a first unsolicited persistent challenge before termination of a first authenticated communication connection with the device; and

establish a second communication connection with the device after termination of the first authenticated communication connection;

receive a set of encrypted authentication data generated by the device based in part on the first unsolicited persistent challenge and a shared secret that is shared by the device and an authenticating device; and

transmit an acknowledgement of the second communication connection in response to receiving the set of encrypted authentication data.

11. The non-transitory computer readable medium of claim 10 , further storing instructions for, after receipt of the set of encrypted authentication data:

generating a session key based in part on the first unsolicited persistent challenge and the shared secret;

decrypting the set of encrypted authentication data with the session key; and

parsing the set of decrypted authentication data to verify its content.

12. The non-transitory computer readable medium of claim 11 , wherein the content of the set of decrypted authentication data includes:

a user identifier of a user of the device; and

the first unsolicited persistent challenge.

13. The non-transitory computer readable medium of claim 12 , wherein the shared secret is a password for an application executed on a second device and hosted by a first device.

14. A system comprising:

a processor; and

memory configured to store instructions that, when executed by the processor, cause the system to:

provide a client device with a first unsolicited temporary challenge during a first authenticated connection with the client device;

receive a set of authentication data encrypted with a key generated from the first unsolicited temporary challenge after termination of the first authenticated connection;

generate a session key based in part on the first unsolicited temporary challenge and a shared secret that is shared with the client device;

if encrypted authentication data decryptable with the session key, acknowledge establishment of a second connection with the client device in response to receiving the set of authentication data; and

providing the device with a second token if the encrypted authentication data not decryptable with the session key.

15. The system of claim 14 , wherein: the shared secret is a password for an application executed on the client device and hosted by the system; and

the set of authentication data comprises a telephone number associated with the client device.

16. The system of claim 14 , wherein the memory is further configured to store instructions that, when executed by the processor, cause the system to:

when the set of authentication data not decryptable with the session key:

provide the client device with a new challenge;

receive a new set of authentication data encrypted with a new key generated from the new challenge;

generate a new session key based in part on the new challenge and the secret shared with the client device;

decrypt new encrypted authentication data with the new session key;

parse decrypted authentication data to authenticate the client device; and

acknowledge establishment of the second connection with the client device.

17. The system of claim 14 , wherein the authentication data comprises:

an identifier of a user of the client device;

a token associated with the first unsolicited temporary challenge; and

device-specific data.

18. The system of claim 17 , wherein the authentication data further comprises:

a timestamp.

19. The system of claim 17 , wherein the user identifier is a telephone number of the user, or a user agent operating on the client device.

20. The system of claim 14 , wherein generation of the session key comprises application of a function to a first token associated with the first unsolicited temporary challenge and to a secret shared with the client device, wherein the shared secret is a password to an application executed on the client device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2022
From: O'CONNOR, BRYAN D.; FOOKSMAN, EUGENE
To: WHATSAPP INC.
Reel/Frame 061762/0234 →
CHANGE OF NAME Recorded Jun 22, 2021
From: WHATSAPP INC.
To: WHATSAPP LLC
Reel/Frame 056646/0001 →