IP Library › Granted Patent US 10,554,636
Granted Patent B2
US 10,554,636 · App. 16/186,425 · Granted Feb 4, 2020

Lightweight encrypted communication protocol

Inventors: Ramkishore Bhattacharyya (Woodinville, WA); Amit J. Mhatre (Seattle, WA); Ashutosh Thakur (Bellevue, WA); Atulya S. Beheray (Sammamish, WA); Rameez Loladia (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L63/0435H04L9/0841H04L9/0861H04L9/14H04L63/0869
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,554,636
App. No.
16/186,425
Granted
Feb 4, 2020
Kind
B2
Abstract

A lightweight network protocol provides mutual authentication and encryption of a communication channel in environments where the amount of computing resources available to the networked devices is constrained. When a new device is added to a network, the device contacts a registration service and provides information that is published via a device directory. The network entity locates the device via information provided by the device directory, and establishes an encrypted network connection with the device. A shared secret is established between the device and the network entity using a key-exchange protocol. Consecutive messages that are sent or received are encrypted or decrypted with a sequence of cryptographic keys generated based at least in part on the shared secret. Key-exchange parameters are added to message exchanges between the device and the network entity to facilitate regenerating the shared secret.

Claims (72)

1. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:

generate a first cryptographic key from a first shared secret acquired by performing a key-exchange process over a network with a network entity;

generate a first key-exchange solution from a first set of key-exchange parameters received from the network entity;

generate a second set of key-exchange parameters;

send a first message to the network entity, the first message encrypted with the first cryptographic key, the first message including a first message payload, the first key-exchange solution, and the second set of key-exchange parameters; and

generate a second cryptographic key from a second shared secret derived from the first set of key-exchange parameters and the first key-exchange solution.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the executable instructions further cause the computer system to:

send a second message to the network entity, the second message encrypted with the second cryptographic key, the second message including a second message payload; and

generate a third cryptographic key from the second shared secret.

3. The non-transitory computer-readable storage medium of claim 1 , wherein the executable instructions further cause the computer system to:

receive a second message from the network entity, the second message encrypted with the second cryptographic key, the second message including a second message payload, and a second key-exchange solution for the second set of key-exchange parameters;

generate a third shared secret from the second set of key-exchange parameters and the second key-exchange solution; and

generate a third cryptographic key from the third shared secret.

4. The non-transitory computer-readable storage medium of claim 3 , wherein the executable instructions further cause the computer system to:

receive an acknowledgment message from the network entity, the acknowledgment message encrypted with the second cryptographic key, the acknowledgment message including a second key-exchange solution for the second set of key-exchange parameters;

generate a third shared secret from the second set of key-exchange parameters and the second key-exchange solution; and

generate a third cryptographic key from the third shared secret.

5. The non-transitory computer-readable storage medium of claim 1 , wherein:

the computer system receives a threshold number of messages from the network entity without sending an intervening response; and

as a result of having not sent an intervening response, the computer system:

sends an acknowledgment message to the network entity, the acknowledgment message including a key-exchange solution; and

generates a new shared secret based at least in part on the key-exchange solution.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the key-exchange process is a Diffie-Hellman, Elliptic Curve Diffie-Hellman, or Ephemeral Elliptic Curve Diffie-Hellman process.

7. A computer-implemented method performed by a networked device, comprising:

generating a first cryptographic key from a first shared secret obtained by performing a key-exchange process over a network with a network entity;

generating a first key-exchange solution from a first set of key-exchange parameters received from the network entity;

generating a second set of key-exchange parameters;

sending a first message to the network entity, the first message encrypted with the first cryptographic key, the first message including a first message payload, the first key-exchange solution, and the second set of key-exchange parameters; and

generating a second cryptographic key from a second shared secret derived from the first set of key-exchange parameters and the first key-exchange solution.

8. The computer-implemented method of claim 7 , wherein:

the first set of key exchange parameters includes a first prime number, a first generator, a first elliptic curve, and a first challenge;

the second set of key-exchange parameters includes a second prime number, a second generator, a second elliptic curve, and a second challenge; and

the first set of key-exchange parameters is different than the second set of key-exchange parameters.

9. The computer-implemented method of claim 7 , wherein:

the first cryptographic key is generated from the first shared secret using a key derivation function; and

the second cryptographic key is generated from the second shared secret using the key derivation function.

10. The computer-implemented method of claim 7 , wherein the second cryptographic key is based at least in part on a cryptographic hash of the first cryptographic key and a cryptographic hash of the second shared secret.

11. The computer-implemented method of claim 7 , wherein:

the first cryptographic key is generated from a cryptographic hash of a combination of the first shared secret and a first number of a number sequence;

the second cryptographic key is generated from a cryptographic hash of a combination of the second shared secret and a second number of the number sequence; and

the first number of the number sequence and the second number of the number sequence are consecutive numbers in the number sequence.

12. The computer-implemented method of claim 7 , wherein:

the networked device and the network entity establish a TCP connection over the network;

the first set of key-exchange parameters and the second set of key-exchange parameters are exchanged over the TCP connection; and

the networked device and the network entity exchange authentication information that allows the networked device and the network entity to be mutually authenticated.

13. A system, comprising at least one computing device that includes one or more processors and a physical memory containing instructions that, when executed by the one or more processors causes the system to:

generate a first cryptographic key from a first shared secret acquired by performing a key-exchange process over a network with a network entity;

generate a first key-exchange solution from a first set of key-exchange parameters received from the network entity;

generate a second set of key-exchange parameters;

send a first message to the network entity, the first message encrypted with the first cryptographic key, the first message including a first message payload, the first key-exchange solution, and the second set of key-exchange parameters; and

generate a second cryptographic key from a second shared secret derived from the first set of key-exchange parameters and the first key-exchange solution.

14. The system of claim 13 , wherein the instructions further cause the system to:

acquire information from a directory service that enables the system to locate the network entity on a computer network; and

authenticate the network entity using authentication information acquired from the directory service.

15. The system of claim 13 , wherein the instructions further cause the system to:

determine that at least a threshold number of consecutive incoming messages have been received; and

as a result of receiving at least a threshold number of consecutive incoming messages, send an acknowledgment message to the device, the acknowledgment message including a key-exchange parameter that causes the system and the network entity to generate a new shared secret.

16. The system of claim 13 , wherein the system:

obtain a threshold number of consecutive incoming messages; and

as a result of obtaining the threshold number of consecutive incoming messages, provide the first message to the network entity where the first message payload is empty.

17. The system of claim 13 , wherein:

the instructions further cause the system to send a sequence of message payloads to the network entity, the sequence of message payloads encrypted with a sequence of symmetric cryptographic keys;

the sequence of symmetric cryptographic keys are generated using a key derivation function applied to a sequence of seed values;

the seed values are cryptographic hashes of a combination of the first shared secret and individual elements of a numerical sequence; and

the numerical sequence is known to the network entity.

18. The system of claim 13 , wherein the instructions further cause the system to:

send a threshold number of messages to the network entity, the threshold number of messages encrypted with the first cryptographic key; and

generate the second cryptographic key as a result of sending the threshold number of messages encrypted with the first cryptographic key.

19. The system of claim 13 , wherein the key-exchange process is an Elliptic Curve Diffie-Hellman process using an X25519 curve or an X448 curve.

20. The system of claim 13 , wherein:

the key-exchange process is an Elliptic Curve Diffie-Hellman process; and

the first set of key-exchange parameters includes a named elliptic curve or a set of elements defining an elliptic curve.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2018
From: BHATTACHARYYA, RAMKISHORE; MHATRE, AMIT J.; THAKUR, ASHUTOSH; BEHERAY, ATULYA S.; LOLADIA, RAMEEZ
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 047467/0441 →
Continuity (2)
Division 15360862 · Nov 23, 2016
Related Publication 20190097982A1 · Mar 28, 2019