# US 10,375,067 B2 · Mutual authentication with symmetric secrets and signatures

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,375,067 B2
- Document ID: US10375067B2
- Status: Granted
- Kind: B2
- Application number: 15/675,605
- Filed: 2017-08-11
- Published: 2017-11-30
- Granted: 2019-08-06
- Earliest claimed: 2014-06-26
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Gregory Branchek Roth; Gregory Alan Rubin
- Web page: https://patentgrep.com/patent/US10375067B2

## CPC

- H04L 63/0869: {for achieving mutual authentication (cryptographic mechanisms or cryptographic arrangements for mutual authentication H04L9/3273)}
- H04L 9/0861: {Generation of secret information including derivation or calculation of cryptographic keys or passwords}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/321: {involving a third party or a trusted authority}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3273: {for mutual authentication (network architectures or network communication protocols for achieving mutual authentication in a packet data network H04L63/0869)}
- H04L 63/061: {for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838)}
- H04L 63/123: {received data contents, e.g. message integrity}
- H04L 63/166: {at the transport layer}
- H04L 9/32: including means for verifying the identity or authority of a user of the system {or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A client and server negotiate a secure communication channel using a pre-shared key where the server, at the time the negotiation initiates, lacks access to the pre-shared key. The server obtains the pre-shared key from another server that shares a secret with the client. A digital signature or other authentication information generated by the client may be used to enable the other server to determine whether to provide the pre-shared key.

## Claims

### Claim 1

A non-transitory computer-readable storage medium storing thereon instructions that, as a result of execution by one or more processors of a computer system, cause the computer system to:
access a cryptographic key usable to derive a signing key, the signing key accessible to a second computer system and usable to generate a digital signature of a request to cause the second computer system to fulfill the request;
derive, from the cryptographic key, a session key by at least deriving a pre-shared key from the cryptographic key and generating the session key from the pre-shared key; and
use the session key to encrypt at least a portion of one or more communications to the second computer system, the one or more communications comprising a first request that is digitally signed using the signing key.

### Claim 2 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the signing key is different from the session key.

### Claim 3 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the instructions further comprise instructions that, as a result of execution by the one or more processors, cause the computer system to complete a handshake process in accordance with a protocol to cause the second computer system to utilize the session key.

### Claim 4

A system, comprising:
one or more processors; and
memory storing instructions that, if executed by the one or more processors, cause the system to:
access a secret usable to derive a signing key, the signing key accessible to a second computer system and usable to generate a digital signature of a request to cause the second computer system to fulfill the request;
derive a session key based at least in part on the secret;
use the signing key to digitally sign information that is based at least in part on multiple messages transmitted between the system and the second computer system; and
use the session key to cryptographically protect at least a portion of one or more communications to the second computer system, the one or more communications comprising a first request that is digitally signed using the signing key.

### Claim 5 (depends on 4)

The system of claim 4, wherein the signing key and session key are different.

### Claim 6 (depends on 4)

The system of claim 4, wherein use of the session key to encrypt at least a portion of one or more communications to the second computer system is according to a protocol for cryptographically protected communications that utilizes a pre-shared key.

### Claim 7 (depends on 4)

The system of claim 4, wherein use the session key to encrypt at least a portion of one or more communications to the second computer system comprises encrypting the one or more communications.

### Claim 8 (depends on 4)

The system of claim 4, wherein the instructions further include instructions that, if executed by the one or more processors, cause the system to transmit a set of parameters to derive the session key.

### Claim 9 (depends on 4)

The system of claim 4, wherein the instructions further comprise instructions that, if executed by the one or more processors, cause the computer system to use the signing key to digitally sign information that is based at least in part on multiple messages transmitted between the computer system and the second computer system.

### Claim 10 (depends on 4)

The system of claim 4, wherein the instructions that cause the computer system to derive the session key, as a result of execution by the one or more processors, cause the computer system to perform a plurality of iterations to derive the session key, each iteration of the plurality of iterations involving a different derivation parameter input into a function.

### Claim 11

A computer-implemented method, comprising:
deriving a session key based at least in part on a secret, the secret usable to derive a signing key, the signing key accessible to a second computer system and usable to generate a digital signature of a request to cause the second computer system to fulfill the request; and
using the session key to cryptographically protect at least a portion of one or more communications to the second computer system, the one or more communications comprising a first request that is digitally signed using the signing key.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, wherein the signing key and session key are different.

### Claim 13 (depends on 11)

The computer-implemented method of claim 11, wherein cryptographically protecting the at least the portion of the one or more communications comprises encrypting the one or more communications.

### Claim 14 (depends on 11)

The computer-implemented method of claim 11, wherein deriving the session key based at least in part on the secret comprises performing a plurality of iterations, wherein the plurality of iterations comprises a first iteration utilizing a first derivation parameter and a second iteration utilizing a second derivation parameter different from the first derivation parameter.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, wherein at least one of the plurality of iterations uses the secret as input into a derivation function.

### Claim 16 (depends on 14)

The computer-implemented method of claim 14, wherein the first derivation parameter and second derivation parameter are non-secret values.

### Claim 17

A non-transitory computer-readable storage medium storing thereon instructions that, as a result of execution by one or more processors of a computer system, cause the computer system to:
derive a session key based at least in part on a secret, the secret usable to derive a signing key, the signing key accessible to a second computer system and usable to generate a digital signature of a request to cause the second computer system to fulfill the request, the session key being iteratively derived using a plurality of iterations, each iteration of the plurality of iterations involving a different derivation parameter input into a function;
use the session key to cryptographically protect at least a portion of one or more communications to the second computer system, the one or more communications comprising a first request that is digitally signed using the signing key.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions that cause the computer system to derive the session key, comprise instructions that, as a result of execution by the one or more processors, cause the computer system to derive a pre-shared key from the secret and generate the session key from the pre-shared key.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions further comprise instructions that, as a result of execution by the one or more processors, cause the computer system to use the signing key to digitally sign information that is based at least in part on multiple messages transmitted between the computer system and the second computer system.

### Claim 20 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions further comprise instructions that, as a result of execution by the one or more processors, cause the computer system to provide parameters for deriving the session key to enable the second computer system to derive the session key.

### Claim 21 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein:
the secret is a symmetric cryptographic key;
the function is a one-way function; and
cryptographically protecting the at least the portion of the one or more communications comprises encrypting the at least the portion of the one or more communications.
