IP Library › Granted Patent US 9,098,687
Granted Patent B2
US 9,098,687 · App. 13/886,518 · Granted Aug 4, 2015

User and device authentication in enterprise systems

Inventor: Richard Hayton (Cambridge, GB)
Assignee: Citrix Systems, Inc.
G06F21/31G06F21/32G06F21/41H04L63/0815
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 9,098,687
App. No.
13/886,518
Filed
May 3, 2013
Granted
Aug 4, 2015
Kind
B2
Art Unit
2436
USPC
713/186
Abstract

Methods and systems for authenticating users of client devices to allow access of resources and services in enterprise systems are described herein. An authentication device may validate a user based on authentication credentials received from a client device. Validation data stored by the authentication device, and a corresponding access token transmitted to the client device, may be used to authenticate the user for future resource access requests. A user secret also may be stored by the authentication device and used to validate the user for future resource access requests. Additionally, after validating a user with a first set of authentication credentials, additional sets of credentials for the user may be retrieved and stored at an access gateway for future requests to access other services or resources in an enterprise system.

Claims (114)

1. A method, comprising:

receiving, by an authentication computing system and from a client device, authentication credentials, received by the client device from a user, for a secure resource associated with the authentication computing system;

receiving, by the authentication computing system and from the client device, a reusable user secret, received by the client device from the user via a prompt generated by the client device in response to the client device receiving the authentication credentials, for the authentication computing system, the reusable user secret being different from the authentication credentials;

encrypting, by the authentication computing system and using a cryptographic key, first validation data comprising the authentication credentials and the reusable user secret;

transmitting, by the authentication computing system and to the client device, the cryptographic key;

receiving, by the authentication computing system and from the client device: a request to access the secure resource; data comprising the cryptographic key; and authentication data received by the client device from the user; and

responsive to determining by the authentication computing system that the authentication data corresponds to a portion of the validation data, decrypted by the authentication computing system using the data comprising the cryptographic key, comprising the reusable user secret, authenticating, by the authentication computing system, the request using a portion of the validation data, decrypted by the authentication computing system using the data comprising the cryptographic key, comprising the authentication credentials.

2. The method of claim 1 , comprising:

receiving, by the authentication computing system and from the client device: a subsequent request to access the secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining by the authentication computing system that the additional authentication data corresponds to the portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the reusable user secret, authenticating, by the authentication computing system, the subsequent request using the portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the authentication credentials.

3. The method of claim 1 , comprising:

receiving, by the authentication computing system and from a different client device, the authentication credentials;

receiving, by the authentication computing system and from the different client device, a different reusable user secret, received by the different client device from the user via a prompt generated by the different client device in response to the different client device receiving the authentication credentials;

encrypting, by the authentication computing system and using a different cryptographic key, validation data comprising the authentication credentials and the different reusable user secret;

transmitting, by the authentication computing system and to the different client device, the different cryptographic key;

receiving, by the authentication computing system and from the different client device: a subsequent request to access the secure resource; data comprising the different cryptographic key; and authentication data received by the different client device from the user; and

responsive to determining by the authentication computing system that the authentication data received by the different client device corresponds to a portion of the validation data comprising the authentication credentials and the different reusable user secret, decrypted by the authentication computing system using the data comprising the different cryptographic key, comprising the different reusable user secret, authenticating, by the authentication computing system, the subsequent request using a portion of the validation data comprising the authentication credentials and the different reusable user secret, decrypted by the authentication computing system using the data comprising the different cryptographic key, comprising the authentication credentials.

4. The method of claim 1 , comprising:

receiving, by the authentication computing system and from the client device, authentication credentials, received by the client device from the user, for a different secure resource associated with the authentication computing system;

encrypting, by the authentication computing system and using the cryptographic key, validation data comprising the authentication credentials for the different secure resource;

receiving, by the authentication computing system and from the client device: a request to access the different secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining by the authentication computing system that the additional authentication data corresponds to the portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the reusable user secret, authenticating, by the authentication computing system, the request to access the different secure resource using a portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the authentication credentials for the different secure resource.

5. The method of claim 1 , comprising:

receiving, by the authentication computing system and from the client device: a subsequent request to access the secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining by the authentication computing system that the additional authentication data corresponds to the portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the reusable user secret:

determining, by the authentication computing system, that the subsequent request cannot be authorized using the portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the authentication credentials;

receiving, by the authentication computing system and from the client device, new authentication credentials, received by the client device from the user via a prompt generated by the client device in response to the authentication computing system determining that the subsequent request cannot be authorized using the portion of the validation data, for the secure resource; and

encrypting, by the authentication computing system and using the cryptographic key, validation data comprising the new authentication credentials.

6. The method of claim 1 , wherein:

the client device comprises a plurality of distinct input interfaces;

receiving the authentication credentials comprises receiving data received by the client device from the user via a first of the plurality of distinct input interfaces;

receiving the reusable user secret comprises receiving data received by the client device from the user via a second of the plurality of distinct input interfaces; and

receiving the authentication data comprises receiving data received by the client device from the user via the second of the plurality of distinct input interfaces.

7. The method of claim 6 , wherein:

the first of the plurality of distinct input interfaces comprises a keyboard interface;

the second of the plurality of distinct input interfaces comprises at least one of a touchscreen-gesture interface, a voice-recognition interface, or a biometric interface;

receiving the authentication credentials comprises receiving data received by the client device from the user via the keyboard interface;

receiving the reusable user secret comprises receiving data received by the client device from the user via the at least one of the touchscreen-gesture interface, the voice-recognition interface, or the biometric interface; and

receiving the authentication data comprises receiving data received by the client device from the user via the at least one of the touchscreen-gesture interface, the voice-recognition interface, or the biometric interface.

8. An authentication computing system, comprising:

at least one processor; and

a memory storing instructions that when executed by the at least one processor cause the authentication computing system to:

receive, from a client device, authentication credentials, received by the client device from a user, for a secure resource associated with the authentication computing system;

receive, from the client device, a reusable user secret, received by the client device from the user via a prompt generated by the client device in response to the client device receiving the authentication credentials, for the authentication computing system, the reusable user secret being different from the authentication credentials;

encrypt, using a cryptographic key, validation data comprising the authentication credentials and the reusable user secret;

communicate, to the client device, the cryptographic key;

receive, from the client device: a request to access the secure resource;

data comprising the cryptographic key; and authentication data received by the client device from the user; and

responsive to determining that the authentication data corresponds to a portion of the validation data, decrypted using the data comprising the cryptographic key, comprising the reusable user secret, authenticate the request using a portion of the validation data, decrypted using the data comprising the cryptographic key, comprising the authentication credentials.

9. The authentication computing system of claim 8 , wherein the instructions, when executed by the at least one processor, cause the authentication computing system to:

receive, from the client device: a subsequent request to access the secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining that the additional authentication data corresponds to the portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the reusable user secret, authenticate the subsequent request using the portion of the validation data, decrypted by the authentication computing system using the additional data comprising the cryptographic key, comprising the authentication credentials.

10. The authentication computing system of claim 8 , wherein the instructions, when executed by the at least one processor, cause the authentication computing system to:

receive, from a different client device, the authentication credentials;

receive, from the different client device, a different reusable user secret, received by the different client device from the user via a prompt generated by the different client device in response to the different client device receiving the authentication credentials;

encrypt, using a different cryptographic key, validation data comprising the authentication credentials and the different reusable user secret;

communicate, to the different client device, the different cryptographic key;

receive, from the different client device: a subsequent request to access the secure resource; data comprising the different cryptographic key; and authentication data received by the different client device from the user; and

responsive to determining that the authentication data received by the different client device corresponds to a portion of the validation data comprising the authentication credentials and the different reusable user secret, decrypted using the data comprising the different cryptographic key, comprising the different reusable user secret, authenticate the subsequent request using a portion of the validation data comprising the authentication credentials and the different reusable user secret, decrypted using the data comprising the different cryptographic key, comprising the authentication credentials.

11. The authentication computing system of claim 8 , wherein the instructions, when executed by the at least one processor, cause the authentication computing system to:

receive, from the client device, authentication credentials, received by the client device from the user, for a different secure resource associated with the authentication computing system;

encrypt, using the cryptographic key, validation data comprising the authentication credentials for the different secure resource;

receive, from the client device: a request to access the different secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining that the additional authentication data corresponds to the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the reusable user secret, authenticate the request to access the different secure resource using a portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the authentication credentials for the different secure resource.

12. The authentication computing system of claim 8 , wherein the instructions, when executed by the at least one processor, cause the authentication computing system to:

receive, from the client device: a subsequent request to access the secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining that the additional authentication data corresponds to the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the reusable user secret:

determine that the subsequent request cannot be authorized using the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the authentication credentials;

receive, from the client device, new authentication credentials, received by the client device from the user via a prompt generated by the client device in response to the authentication computing system determining that the subsequent request cannot be authorized using the portion of the validation data, for the secure resource; and

encrypt, using the cryptographic key, validation data comprising the new authentication credentials.

13. The authentication computing system of claim 8 , wherein:

the client device comprises a plurality of distinct input interfaces;

the authentication credentials comprise data received by the client device from the user via a first of the plurality of distinct input interfaces;

the reusable user secret comprises data received by the client device from the user via a second of the plurality of distinct input interfaces; and

the authentication data comprises data received by the client device from the user via the second of the plurality of distinct input interfaces.

14. The authentication computing system of claim 13 , wherein:

the first of the plurality of distinct input interfaces comprises a keyboard interface;

the second of the plurality of distinct input interfaces comprises at least one of a touchscreen-gesture interface, a voice-recognition interface, or a biometric interface;

the authentication credentials comprise data received by the client device from the user via the keyboard interface;

the reusable user secret comprises data received by the client device from the user via the at least one of the touchscreen-gesture interface, the voice-recognition interface, or the biometric interface; and

the authentication data comprises data received by the client device from the user via the at least one of the touchscreen-gesture interface, the voice-recognition interface, or the biometric interface.

15. One or more non-transitory computer-readable media comprising instructions that when executed by one or more computers of an authentication computing system cause the one or more computers to:

receive, from a client device, authentication credentials, received by the client device from a user, for a secure resource associated with the authentication computing system;

receive, from the client device, a reusable user secret, received by the client device from the user via a prompt generated by the client device in response to the client device receiving the authentication credentials, for the authentication computing system, the reusable user secret being different from the authentication credentials;

encrypt, using a cryptographic key, validation data comprising the authentication credentials and the reusable user secret;

communicate, to the client device, the cryptographic key;

receive, from the client device: a request to access the secure resource; data comprising the cryptographic key; and authentication data received by the client device from the user; and

responsive to determining that the authentication data corresponds to a portion of the validation data, decrypted using the data comprising the cryptographic key, comprising the reusable user secret, authenticate the request using a portion of the validation data, decrypted using the data comprising the cryptographic key, comprising the authentication credentials.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the instructions, when executed by the one or more computers, cause the one or more computers to:

receive, from the client device: a subsequent request to access the secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining that the additional authentication data corresponds to the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the reusable user secret, authenticate the subsequent request using the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the authentication credentials.

17. The one or more non-transitory computer-readable media of claim 15 , wherein the instructions, when executed by the one or more computers, cause the one or more computers to:

receive, from a different client device, the authentication credentials;

receive, from the different client device, a different reusable user secret, received by the different client device from the user via a prompt generated by the different client device in response to the different client device receiving the authentication credentials;

encrypt, using a different cryptographic key, validation data comprising the authentication credentials and the different reusable user secret;

communicate, to the different client device, the different cryptographic key;

receive, from the different client device: a subsequent request to access the secure resource; data comprising the different cryptographic key; and authentication data received by the different client device from the user; and

responsive to determining that the authentication data received by the different client device corresponds to a portion of the validation data comprising the authentication credentials and the different reusable user secret, decrypted using the data comprising the different cryptographic key, comprising the different reusable user secret, authenticate the subsequent request using a portion of the validation data comprising the authentication credentials and the different reusable user secret, decrypted using the data comprising the different cryptographic key, comprising the authentication credentials.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the instructions, when executed by the one or more computers, cause the one or more computers to:

receive, from the client device, authentication credentials, received by the client device from the user, for a different secure resource associated with the authentication computing system;

encrypt, using the cryptographic key, validation data comprising the authentication credentials for the different secure resource;

receive, from the client device: a request to access the different secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining that the additional authentication data corresponds to the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the reusable user secret, authenticate the request to access the different secure resource using a portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the authentication credentials for the different secure resource.

19. The one or more non-transitory computer-readable media of claim 15 , wherein the instructions, when executed by the one or more computers, cause the one or more computers to:

receive, from the client device: a subsequent request to access the secure resource; additional data comprising the cryptographic key; and additional authentication data received by the client device from the user; and

responsive to determining that the additional authentication data corresponds to the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the reusable user secret:

determine that the subsequent request cannot be authorized using the portion of the validation data, decrypted using the additional data comprising the cryptographic key, comprising the authentication credentials;

receive, from the client device, new authentication credentials, received by the client device from the user via a prompt generated by the client device in response to the one or more computers determining that the subsequent request cannot be authorized using the portion of the validation data, for the secure resource; and

encrypt, using the cryptographic key, validation data comprising the new authentication credentials.

20. The one or more non-transitory computer-readable media of claim 15 , wherein:

the client device comprises a plurality of distinct input interfaces;

the authentication credentials comprise data received by the client device from the user via a first of the plurality of distinct input interfaces;

the reusable user secret comprises data received by the client device from the user via a second of the plurality of distinct input interfaces; and

the authentication data comprises data received by the client device from the user via the second of the plurality of distinct input interfaces.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2013
From: HAYTON, RICHARD
To: CITRIX SYSTEMS, INC.
Reel/Frame 030345/0676 →
Continuity (1)
Related Publication 20140331060A1 · Nov 6, 2014