IP Library Granted Patent US 10,374,802
Granted Patent B2
US 10,374,802 · App. 14/950,726 · Granted Aug 6, 2019

Multi-factor simple password exponential key exchange (SPEKE) authentication

Inventor: Nathaniel McCallum (Nicholasville, KY)
Assignee: Red Hat, Inc.
H04L9/3226H04L9/3228H04L9/3231H04L9/3236
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,374,802
App. No.
14/950,726
Granted
Aug 6, 2019
Kind
B2
Abstract

A method relates to receiving, by a processing device of an authentication server over a public network, an authentication request from a client device, the authentication request comprising a user identifier associated with first factor data, in which the first factor data comprises a password stored in a storage associated with the authentication server, calculating a generator value in view of the first factor data and a second factor data associated with the user identifier, and generating a session key in view of the generator value and a first public key received from the client device.

Claims (69)

1. A method comprising:

receiving, by a processing device of an authentication server over a public network, an authentication request and a first public key from a client device, wherein the first public key generated by the client device, and wherein the authentication request comprising:

a user identifier;

first factor data associated with the user identifier, wherein the first factor data comprises a password, and wherein the password is stored in a storage associated with the authentication server prior to receiving the authentication request; and

second factor data associated with the user identifier, wherein the second factor data comprises one of:

a one-time password, wherein the one-time password is different than the password; or

biometric data; and

generating a session key that is a function of a combination of the first factor data, the second factor data, and the first public key received from the client device, wherein the combination comprises determining a generator value by:

combining the first factor data with the second factor data to generate a combined value, wherein combining comprises one of concatenating the first factor data with the second factor data or calculating an exclusive-OR of the first factor data and the second factor data; and

calculating a hash value of the combined value.

2. The method of claim 1 , further comprising:

receiving a first twice-hashed value from the client device;

generating a derived session key in view of the session key;

calculating a second hash value of the derived session key; and validating the second hash value in view of the first twice-hashed value received from the client device.

3. The method of claim 2 , further comprising:

in response to successfully validating the second hash value with the first twice-hashed value, issuing a proof of authentication token to the client device.

4. The method of claim 3 , wherein the proof of authentication token is issued without requiring using a security certificate.

5. The method of claim 2 , further comprising:

in response to failing to validate the second hash value with the first hash value, issuing a denial-of-authentication token to the client device.

6. The method of claim 1 , wherein the one-time password is valid for one of a pre-determined period of time or a pre-determined count according to a counter.

7. The method of claim 1 , further comprising:

generating a random number;

generating a second public key in view of the generator value and the random number; and

transmitting the second public key to the client device.

8. The method of claim 1 , wherein a processing device of the client device is to:

calculate a second generator value in view of a combination of the first factor data and the second factor data;

generate a second random number;

generate the first public key in view of the second generator value and the second random number; and

transmit the first public key to the authentication server.

9. A non-transitory machine-readable storage medium storing instructions which, when executed, cause a processing device to:

receive, by the processing device of an authentication server over a public network, an authentication request and a first public key from a client device, wherein the first public key generated by the client device, and wherein the authentication request comprising:

a user identifier;

first factor data associated with the user identifier, wherein the first factor data comprises a password, and wherein the password is stored in a storage associated with the authentication server prior to receiving the authentication request; and

second factor data associated with the user identifier, wherein the second factor data comprises one of:

a one-time password, wherein the one-time password is different than the password; or

biometric data; and

generate a session key that is a function of a combination of the first factor data, the second factor data, and the first public key received from the client device, wherein the combination comprises determining a generator value by:

combine, by the processing device of an authentication server over a public network, the first factor data with the second factor data to generate a combined value, wherein combining comprises one of concatenating the first factor data with the second factor data or calculating an exclusive-OR of the first factor data and the second factor data; and

calculate a hash value of the combined value.

10. The non-transitory machine-readable storage medium of claim 9 , wherein the processing device is further to:

receive a first twice-hashed value from the client device;

generate a derived session key in view of the session key;

calculate a second hash value of the derived session key; and

validate the second hash value in view of the first twice-hashed value received from the client device.

11. The non-transitory machine-readable storage medium of claim 10 , wherein the processing device is further to:

in response to successfully validating the second hash value with the first twice-hashed value, issue a proof of authentication token to the client device.

12. The non-transitory machine-readable storage medium of claim 9 , wherein the one-time password is valid for one of a pre-determined period of time or a pre-determined count according to a counter.

13. A server, comprising:

a memory to store a first factor data and a second factor data; and

a processing device, operatively coupled to the memory, the processing device to:

receive, over a public network, an authentication request and a first public key from a client device, wherein the first public key generated by the client device, and wherein the authentication request comprising:

a user identifier;

first factor data associated with the user identifier, wherein the first factor data comprises a password, and wherein the password is stored in the memory prior to receiving the authentication request; and

second factor data associated with the user identifier, wherein the second factor data comprises one of:

a one-time password, wherein the one-time password is different than the password; or

biometric data; and

generate a session key that is a function of a combination of the first factor data, the second factor data, and the first public key received from the client device, wherein the combination comprises determining a generator value by:

combine, by the processing device of an authentication server over a public network, the first factor data with the second factor data to generate a combined value, wherein combining comprises one of concatenating the first factor data with the second factor data or calculating an exclusive-OR of the first factor data and the second factor data; and

calculate a hash value of the combined value.

14. The server of claim 13 , wherein the processing device is further to:

receive a first twice-hashed value from the client device,

generate a derived session key in view of the session key,

calculate a second hash value of the derived session key, and

validate the second hash value in view of the first twice-hashed value received from the client device.

15. The server of claim 14 , wherein the processing device is further to:

in response to successfully validating the second hash value with the first twice hashed value, issue a proof of authentication token to the client device.

16. The server of claim 14 , wherein the processing device is further to:

in response to failing to validate the second hash value with the first hash value, issue a denial-of-authentication token to the client device.

17. The server of claim 13 , wherein the one-time password is valid for one of a pre-determined period of time or a pre-determined count according to a counter.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER, PREVIOUSLY RECORDED AT REEL: 037190 FRAME: 0591. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 29, 2015
From: MCCALLUM, NATHANIEL
To: RED HAT, INC.
Reel/Frame 037395/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2015
From: MCCALLUM, NATHANIEL
To: RED HAT, INC.
Reel/Frame 037190/0591 →
Continuity (2)
Provisional Application 62152217 · Apr 24, 2015
Related Publication 20170070497A1 · Mar 9, 2017