IP Library › Granted Patent US 11,818,268
Granted Patent B2
US 11,818,268 · App. 17/502,851 · Granted Nov 14, 2023

Hub-based token generation and endpoint selection for secure channel establishment

Inventors: Allan Henry Vermeulen (Corvallis, OR); Matthew John Campagna (Bainbridge Island, WA); Colm Gearóid MacCárthaigh (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L9/3213G06F9/505H04L9/085H04L63/061H04L63/08
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,818,268
App. No.
17/502,851
Filed
Oct 15, 2021
Granted
Nov 14, 2023
Kind
B2
Art Unit
2498
USPC
713/171
Abstract

Systems and processes are described for establishing and using a secure channel. A shared secret may be used for authentication of session initiation messages as well as for generation of a private/public key pair for the session. A number of ways of agreeing on the shared secret are described and include pre-sharing the keys, reliance on a key management system, or via a token mechanism that uses a third entity such as a hub to manage authentication, for example. In some instances, the third party may also perform endpoint selection (e.g., load balancing) by providing a particular endpoint along with the token.

Claims (101)

1. A system, comprising:

a first computing device including at least one hardware processor and memory and configured to:

generate an initiation message body for initiating a secure channel, the initiation message body comprising a public key of an initiator private-public key pair;

generate an initiation message authentication code based at least in part on the initiation message body;

select a cipher suite from a set of cryptographic protocols or algorithms for use during initiation, establishment, or use of the secure channel, the selected cipher suite comprising:

a particular scheme for generating the initiator private-public key pair and a responder private-public key pair, or

a particular scheme for generating the initiation message authentication code and a response message authentication code; and

send a secure channel initiation message to a second computing device, the secure channel initiation message including the initiation message body and the initiation message authentication code, and wherein the secure channel initiation message indicates the selected cipher suite for use during initiation, establishment, or use of the secure channel.

2. The system as recited in claim 1 , wherein the first computing device is further configured to:

responsive to receipt, from the second computing device, of a secure channel response message comprising a response message authentication code:

authenticate the secure channel response message using at least the response message authentication code according to the selected cipher suite; and

generate an initiator data communication key block to receive and send data over the secure channel with the second computing device, wherein the initiator data communication key block is generated using at least the private key of the initiator private-public key pair, the public key of the second private-public key pair, and a shared secret key according to the selected cipher suite.

3. The system as recited in claim 2 , wherein the selected cipher suite specifies a key derivation function for use in generating the initiator data communication key block and the initiator data communication key block.

4. The system as recited in claim 2 , further comprising:

a key management service configured to store the shared secret key.

5. The system as recited in claim 4 , wherein:

the first computing device comprises a stream client; and

the second computing device comprises a stream provider configured to provide data streams to requesting stream clients, the stream provider configured to:

receive an encrypted token from the stream client of the first computing device;

decrypt the encrypted token to obtain an identifier for the shared secret key; and

use the identifier to obtain the shared secret key from the key management service.

6. The system as recited in claim 5 ,

wherein the stream client of the first computing device and the stream provider are both configured to:

generate, based at least in part on the shared secret key, the respective private-public key pair for encrypting or decrypting the data stream; and

authenticate, based at least in part on the shared secret key, the control messages for establishing the secure channel.

7. The system as recited in claim 2 , wherein:

the second computing device comprises a stream provider configured to provide data streams to requesting stream clients; and

the first computing device comprises one of the requesting stream clients, configured to independently derive the shared secret key based at least in part on salt and the security credentials for the stream client; and

the security credentials for the stream client are not revealed to the stream provider.

8. The system as recited in claim 1 , wherein:

the second computing device comprises a stream provider configured to provide data streams to requesting stream clients;

the first computing device comprises one of the requesting stream clients; and

the system further comprises a hub service configured to:

receive a stream request and security credentials from the stream client of the first computing device;

authenticate the stream client based at least in part on the security credentials;

generate an encrypted token comprising information for establishing a secure channel between the stream client and the stream provider;

sign the encrypted token with a cryptographic signature; and

return, to the stream client, the encrypted token and an endpoint for the stream provider;

the stream provider is configured to verify that the encrypted token originated from the hub service based at least in part on the cryptographic signature; and

the encrypted token is not decryptable by the stream client.

9. A method, comprising;

performing, by a first computing device:

generating an initiation message body for initiating a secure channel, the initiation message body comprising a public key of an initiator private-public key pair;

generating an initiation message authentication code based at least in part on the initiation message body;

selecting a cipher suite from a set of cryptographic protocols or algorithms for use during initiation, establishment, or use of the secure channel, the selected cipher suite comprising:

a particular scheme for generating the initiator private-public key pair and a responder private-public key pair, or

a particular scheme for generating the initiation message authentication code and a response message authentication code; and

generating a secure channel initiation message that:

includes the initiation message body and the initiation message authentication code; and

indicates the selected cipher suite for use during initiation, establishment;

sending the secure channel initiation message to a second computing device.

10. The method as recited in claim 9 , further comprising:

responsive to receiving, by the first computing device from the second computing device, a secure channel response message comprising a response message authentication code:

authenticating, by the first computing device, the secure channel response message using at least the response message authentication code according to the selected cipher suite; and

generating, by the first computing device, an initiator data communication key block to receive and send data over the secure channel with the second computing device, wherein generating the initiator data communication key block comprises generating the key block using at least the private key of the initiator private-public key pair, the public key of the second private-public key pair, and a shared secret key according to the selected cipher suite.

11. The method as recited in claim 10 , wherein the selected cipher suite specifies a key derivation function for use in generating the initiator data communication key block and the initiator data communication key block.

12. The method as recited in claim 10 , further comprising:

obtaining, by the first computing device from a key management service, the shared secret key used in said generating the initiator data communication key block.

13. The method as recited in claim 12 , wherein:

the first computing device comprises a stream client;

the second computing device comprises a stream provider configured to provide data streams to requesting stream clients;

the method further comprises:

receiving, by the stream provider, an encrypted token from the stream client of the first computing device;

decrypting, by the stream provider, the encrypted token to obtain an identifier for the shared secret key; and

using, by the stream provider, the identifier to perform said obtaining the shared secret key from the key management service.

14. The method as recited in claim 13 ,

wherein the stream client of the first computing device and the stream provider are individually configured to perform:

generating, based at least in part on the shared secret key, the respective private-public key pair for encrypting or decrypting the data stream; and

authenticating, based at least in part on the shared secret key, the control messages for establishing the secure channel.

15. The method as recited in claim 10 , wherein:

the second computing device comprises a stream provider configured to provide data streams to requesting stream clients;

the first computing device comprises one of the requesting stream clients;

the method further comprises independently deriving, by the requesting stream client of the first computing device, the shared secret key based at least in part on salt and the security credentials for the stream client; and

the security credentials for the stream client are not revealed to the stream provider.

16. The method as recited in claim 9 , wherein:

the second computing device comprises a stream provider configured to provide data streams to requesting stream clients;

the first computing device comprises one of the requesting stream clients; and

the method further comprises:

receiving, by a hub service, a stream request and security credentials from the stream client of the first computing device;

authenticating, by the hub service, the stream client based at least in part on the security credentials;

generating, by the hub service, an encrypted token comprising information for establishing a secure channel between the stream client and the stream provider;

signing, by the hub service, the encrypted token with a cryptographic signature;

returning, by the hub service to the stream client, the encrypted token and an endpoint for the stream provider; and

verifying, by the stream provider, that the encrypted token originated from the hub service based at least in part on the cryptographic signature, wherein the encrypted token is not decryptable by the stream client.

17. One or more non-transitory computer-readable media storing program instructions executable on or across one or more processors to perform:

generating an initiation message body for initiating a secure channel, the initiation message body comprising a public key of an initiator private-public key pair;

generating an initiation message authentication code based at least in part on the initiation message body;

selecting a cipher suite from a set of cryptographic protocols or algorithms for use during initiation, establishment, or use of the secure channel, the selected cipher suite comprising:

a particular scheme for generating the initiator private-public key pair and a responder private-public key pair, or

a particular scheme for generating the initiation message authentication code and a response message authentication code; and

generating a secure channel initiation message that:

includes the initiation message body and the initiation message authentication code; and

indicates the selected cipher suite for use during initiation, establishment, or use of the secure channel;

sending the secure channel initiation message to a computing device.

18. The one or more non-transitory computer-readable media as recited in claim 17 , storing program instructions executable on or across the one or more processors to perform:

responsive to receiving, from the computing device, a secure channel response message comprising a response message authentication code:

authenticating the secure channel response message using at least the response message authentication code according to the selected cipher suite; and

generating an initiator data communication key block to receive and send data over the secure channel with the computing device, wherein generating the initiator data communication key block comprises generating the key block using at least the private key of the initiator private-public key pair, the public key of the second private-public key pair, and a shared secret key according to the selected cipher suite.

19. The one or more non-transitory computer-readable media as recited in claim 18 , wherein the selected cipher suite specifies a key derivation function and the program instructions are executable on or across the one or more processors to perform generating the initiator data communication key block and the initiator data communication key block using the key derivation function specified by the indicated cipher suite.

20. The one or more non-transitory computer-readable media as recited in claim 18 , storing program instructions executable on or across the one or more processors to perform:

obtaining, from a key management service, the shared secret key used in said generating the initiator data communication key block.

Continuity (2)
Continuation 14983246 · Dec 29, 2015
Related Publication 20220038283A1 · Feb 3, 2022
Cited By (3)
US 12,567,972 US 12,706,740 US 12,744,663