IP Library Granted Patent US 9,225,516
Granted Patent B1
US 9,225,516 · App. 14/045,192 · Granted Dec 29, 2015

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,225,516
App. No.
14/045,192
Granted
Dec 29, 2015
Kind
B1
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 (55)

1. A method of establishing an authenticated and encrypted communication connection between two devices, the method comprising, at a first device:

during a first communication connection with a second device, providing the second device with a first token; and

after termination of the first communication connection:

receiving from the second device encrypted authentication data;

generating a session key from the first token;

attempting to decrypt the encrypted authentication data with the session key;

if the encrypted authentication data can be decrypted with the session key, acknowledging to the second device establishment of a second communication connection as part of a single round trip that comprises the receiving of the second device encrypted authentication data and the acknowledging of the establishment of the second communication connection; and

if the encrypted authentication data cannot be decrypted with the session key:

providing the second device with a second token;

receiving from the second 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 second device establishment of a second communication connection.

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

an identifier of a user of the second device;

a token provided by the first device; and

device-specific data.

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

a timestamp.

4. The method of claim 2 , wherein the user identifier is a telephone number of the user.

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

6. The method of claim 2 , wherein the token is one of the first token and the second token.

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

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

9. A method of establishing an authenticated and encrypted communication connection between two devices, the method comprising, at a first device:

before termination of a first communication connection between the first device and a second device, providing the second device with a persistent challenge; and

after termination of the first communication connection, establishing a second communication connection with the second device with a single round-trip communication comprising:

receipt of a set of encrypted authentication data generated by the second device based in part on the persistent challenge and a secret shared by the first device and the second device; and

transmission of an acknowledgement of the second communication connection.

10. The method of claim 9 , further comprising, after receipt of the set of encrypted authentication data:

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

decrypting the encrypted authentication data with the session key; and

parsing the decrypted authentication data to verify its content.

11. The method of claim 9 , wherein the content of the decrypted authentication data includes:

a user identifier of a user of the second device; and

the persistent challenge.

12. The method of claim 11 , wherein the shared secret is a password for an application executed on the second device and hosted by the first device.

13. A system for establishing an authenticated and encrypted communication connection with a client device, the system comprising:

a processor; and

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

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

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

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

if the encrypted authentication data can be decrypted with the session key, acknowledge establishment of a second connection with the client device in a single round trip without sending any other communications to the client device after receipt of the encrypted authentication data.

14. The system of claim 13 , wherein:

the shared secret is a password for an application executed on the client device and hosted by the system; and

the authentication data comprises a telephone number of the client device.

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

if the encrypted authentication data cannot be decrypted 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 the new encrypted authentication data with the new session key;

parse the decrypted authentication data to authenticate the client device; and

acknowledge establishment of the second connection with the client device.

Assignments (3)
CHANGE OF NAME Recorded Jun 22, 2021
From: WHATSAPP INC.
To: WHATSAPP LLC
Reel/Frame 056646/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE STATE OF CORPORATION FROM CALIFORNIA TO DELAWARE PREVIOUSLY RECORDED ON REEL 031502 FRAME 0109. ASSIGNOR(S) HEREBY CONFIRMS THE STATE OF CORPORATION IS INCORRECT. Recorded Feb 4, 2014
From: O'CONNOR, BRYAN D.; FOOKSMAN, EUGENE
To: WHATSAPP INC.
Reel/Frame 032160/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2013
From: O'CONNOR, BRYAN D.; FOOKSMAN, EUGENE
To: WHATSAPP INC.
Reel/Frame 031502/0109 →