IP Library Granted Patent US 11,626,980
Granted Patent B2
US 11,626,980 · App. 17/646,823 · Granted Apr 11, 2023

Authentication using key agreement

Inventors: Prasad Peddada (Alameda, CA); Taher Elgamal (San Francisco, CA)
Assignee: Salesforce, Inc.
H04L9/0844G06F16/182G06K19/06037H04L9/0894H04L9/3066H04L9/3247H04L9/3271H04L63/0435H04L67/01
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,626,980
App. No.
17/646,823
Granted
Apr 11, 2023
Kind
B2
Abstract

A client may transmit an authentication request to a server. The server may initiate a key agreement process using a short-lived private key generated at the server and a public key of the device, generate a shared secret, and derive a symmetric key. The symmetric key may be used to encrypt a random challenge. Further, the server initiates a key agreement process for the client using the partial private key that was generated for the client and the short-lived public key generated at the server. A partial key agreement result and the encrypted random challenge may be transmitted to the client. The client may complete the key agreement process using the partial key agreement result and a respective portion of the private key. The client may derive the encryption key and decrypt the random challenge. An indication of the random challenge may be transmitted to the server, which authenticates the client.

Claims (57)

1. A method for authentication of a client to a server, comprising:

receiving, at the server and from the client, an authentication request;

transmitting, based at least in part on receiving the authentication request, an encrypted random challenge and a partial key agreement result to the client, wherein the partial key agreement result is based on a first portion of a split private key, and the server having transmitted a second portion of the split private key to the client, the client being configured to derive a symmetric key for decrypting the encrypted random challenge using the partial key agreement result; and

authenticating the client based at least in part on receiving an indication of successful decryption of the encrypted random challenge by the client.

2. The method of claim 1 , further comprising:

generating, on the server in response to receiving the authentication request, a short-lived asymmetric key pair, wherein the encrypted random challenged is encrypted based at least in part on the short-lived asymmetric key pair.

3. The method of claim 2 , further comprising:

generating, based at least in part on receiving the authentication request, a symmetric key using a client public key and a short-lived private key of the short-lived asymmetric key pair; and

encrypting a random challenge using the symmetric key to generate the encrypted random challenge.

4. The method of claim 3 , further comprising:

erasing the short-lived private key from memory in response to generating the symmetric key using the short-lived private key, the erasing resulting in the short-lived private key being a one-time use key.

5. The method of claim 1 , further comprising:

generating the partial key agreement result using a first portion of a split private key, the server having transmitted a second portion of the split private key to the client, the split private key being associated with a client public key.

6. The method of claim 1 , further comprising:

receiving, at the server and from the client, a request for an authentication;

generating, based at least in part on the request, a first key pair including a client public key and a private key;

generating, based at least in part on the private key, a split private key including a first portion of the split private key and a second portion of the split private key; and

transmitting, to the client, an indication of the second portion of the split private key, wherein the server is configured to receive the authentication request from the client based at least in part on transmitting the indication of the second portion of the split private key to the client.

7. The method of claim 6 , wherein transmitting the indication of the first portion of the split private key comprises:

generating an encoded version of the second portion of the split private key; and

causing display of the encoded version of the first portion of the split private key on a user interface of a computing device.

8. The method of claim 7 , wherein generating the encoded version of the first portion of the split private key comprises:

generating a quick response (QR) code, wherein the QR code is displayed to a user on the user interface.

9. The method of claim 6 , wherein transmitting the indication of the first portion of the split private key comprises:

causing a first sub portion of the second portion of the split private key to be stored at the client; and

causing display of a second sub portion of the split private key to be displayed by a user interface associated with the client.

10. The method of claim 6 , further comprising:

storing the first portion of the split private key in association with the client public key.

11. An apparatus for authentication of a client to a server, comprising:

a processor;

memory coupled with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

receive, at the server and from the client, an authentication request;

transmit, based at least in part on receiving the authentication request, an encrypted random challenge and a partial key agreement result to the client, wherein the partial key agreement result is based on a first portion of a split private key, and the server having transmitted a second portion of the split private key to the client, the client being configured to derive a symmetric key for decrypting the encrypted random challenge using the partial key agreement result; and

authenticate the client based at least in part on receiving an indication of successful decryption of the encrypted random challenge by the client.

12. The apparatus of claim 11 , wherein the instructions are further executable by the processor to cause the apparatus to:

generate, on the server in response to receiving the authentication request, a short-lived asymmetric key pair, wherein the encrypted random challenged is encrypted based at least in part on the short-lived asymmetric key pair.

13. The apparatus of claim 12 , wherein the instructions are further executable by the processor to cause the apparatus to:

generate, based at least in part on receiving the authentication request, a symmetric key using a client public key and a short-lived private key of the short-lived asymmetric key pair; and

encrypt a random challenge using the symmetric key to generate the encrypted random challenge.

14. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

erase the short-lived private key from memory in response to generating the symmetric key using the short-lived private key, the erasing resulting in the short-lived private key being a one-time use key.

15. The apparatus of claim 11 , wherein the instructions are further executable by the processor to cause the apparatus to:

generate the partial key agreement result using a first portion of a split private key, the server having transmitted a second portion of the split private key to the client, the split private key being associated with a client public key.

16. A non-transitory computer-readable medium storing code for authentication of a client to a server, the code comprising instructions executable by a processor to:

receive, at the server and from the client, an authentication request;

transmit, based at least in part on receiving the authentication request, an encrypted random challenge and a partial key agreement result to the client, wherein the partial key agreement result is based on a first portion of a split private key, and the server having transmitted a second portion of the split private key to the client, the client being configured to derive a symmetric key for decrypting the encrypted random challenge using the partial key agreement result; and

authenticate the client based at least in part on receiving an indication of successful decryption of the encrypted random challenge by the client.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions are further executable by the processor to:

generate, on the server in response to receiving the authentication request, a short-lived asymmetric key pair, wherein the encrypted random challenged is encrypted based at least in part on the short-lived asymmetric key pair.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions are further executable by the processor to:

generate, based at least in part on receiving the authentication request, a symmetric key using a client public key and a short-lived private key of the short-lived asymmetric key pair; and

encrypt a random challenge using the symmetric key to generate the encrypted random challenge.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions are further executable by the processor to:

erase the short-lived private key from memory in response to generating the symmetric key using the short-lived private key, the erasing resulting in the short-lived private key being a one-time use key.

20. The non-transitory computer-readable medium of claim 16 , wherein the instructions are further executable by the processor to:

generate the partial key agreement result using a first portion of a split private key, the server having transmitted a second portion of the split private key to the client, the split private key being associated with a client public key.

Assignments (3)
CHANGE OF NAME Recorded Mar 6, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062961/0292 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE ON THE COVER LETTER PREVIOUSLY RECORDED ON REEL 058530 FRAME 0172. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 6, 2023
From: PEDDADA, PRASAD; ELGAMAL, TAHER
To: SALESFORCE.COM, INC.
Reel/Frame 063282/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2022
From: PEDDADA, PRASAD; ELGAMAL, TAHER
To: QUALCOMM INCORPORATED
Reel/Frame 058530/0172 →
Continuity (2)
Continuation 16938632 · Jul 24, 2020
Related Publication 20220131688A1 · Apr 28, 2022
Cited By (2)
US 12,418,404 US 12,659,160