IP Library Granted Patent US 11,658,961
Granted Patent B2
US 11,658,961 · App. 17/480,673 · Granted May 23, 2023

Method and system for authenticated login using static or dynamic codes

Inventors: Armin Ebrahimi (Los Gatos, CA); Gaurav Khot (Cupertino, CA); Vladimir Reshetnikov (San Jose, CA); Robert Gadbois (Los Gatos, CA)
Assignee: Ping Identity Corporation
H04L63/083G06F21/31G06F21/645H04L9/3236H04L9/3247H04L9/3271H04L9/3297H04L9/40H04L63/0435H04L63/0442H04L63/061H04L63/08H04L63/0861H04L9/50H04L63/0876
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,658,961
App. No.
17/480,673
Granted
May 23, 2023
Kind
B2
Abstract

Method of authentication including sending a login web page to a first device of a user including a scannable code having an envelope ID and a login challenge. The envelope ID generated by an identity manager is associated with a first envelope of data including a session ID. A confirmation login request is received from a second device associated with the user, and includes a second envelope of data comprising the session ID, a user ID, and a seal of the user ID registering the user ID with the identity manager. The confirmation login request to the login challenge is verified using the session ID, and the user is verified using the user ID and seal. User login is authorized upon successful verification of the login challenge and user, and a communication session having the session ID is established between the web server and the first device.

Claims (78)

1. A method, comprising:

sending, from a server to a first device of a user, a first scannable code encoding an envelope identifier and a login challenge, the envelope identifier associated with a first envelope of data having a session identifier;

receiving, at the server and from a second device of the user, a challenge envelope of data, the challenge envelope of data including the session identifier, a user identifier, a shared-string, and a first digital signature defined by digitally signing a first hash value of the shared-string using a private key associated with the user;

verifying the first digital signature using a public key associated with the user;

extracting the shared-string from the challenge envelope of data;

generating, at the server, a challenge response including at least one of the shared-string or a second digital signature defined by digitally signing a second hash value of the shared-string using a private key of the server;

generating, at the server, a second scannable code encoding the challenge response;

sending, from the server to the first device of the user, the second scannable code;

receiving, at the server and from the second device of the user, a confirmation login request responding to the login challenge, the confirmation login request including a second envelope of data, the second envelope of data having the user identifier, the session identifier, and the shared-string;

authorizing the user after verifying the user identifier, the session identifier, and the shared-string from the second envelope of data; and

establishing a communication session having the session identifier between the server and the first device of the user.

2. The method of claim 1 , wherein:

the shared-string is a Globally Unique Identifier (GUID) generated by the second device of the user.

3. The method of claim 1 , further comprising:

decrypting the challenge envelope using the private key of the server after the challenge envelope is encrypted by the second device of the user using a public key of the server.

4. The method of claim 1 , further comprising:

receiving, at the server, a request for a login web page from the first device;

generating, at the server, the session identifier in response to the request for the login web page;

generating, at the server, the first envelope of data;

sending, from the server, the first envelope of data to an identity manager that generates the envelope identifier associated with the first envelope of data;

receiving, at the server, the envelope identifier from the identity manager; and

generating, at the server, the first scannable code and the login web page including the first scannable code.

5. The method of claim 1 , wherein the first scannable code encodes a public key of the server.

6. The method of claim 1 , wherein the first scannable code or the second scannable code includes at least one of a QR code, a bar code, or a PDF417 code.

7. The method of claim 1 , wherein:

the verifying the session identifier includes determining that the session identifier in the confirmation login request is valid when it matches the session identifier in the first envelope of data.

8. The method of claim 1 , wherein:

the verifying the user identifier includes certifying the user using the user identifier and a certification seal included in the second envelope of data.

9. The method of claim 1 , wherein:

the second envelope of data includes a third digital signature defined by digitally signing a hash value of the user identifier, the session identifier, and the shared-string using the private key associated with the user,

the authorizing the user includes verifying the third digital signature.

10. The method of claim 1 , further comprising:

sending, from the server to the second device of the user, a unique challenge string;

receiving, at the server from the second device, a third digital signature defined by digitally signing a hash value of user data using the private key associated with the user, the user data including newly-captured biometric data of the user, the unique challenge string, and a certification seal of original biometric data; and

the authorizing the user includes comparing a hash value of the newly-captured biometric data with a hash value of the original biometric data retrieved based on the certification seal of the original biometric data.

11. An apparatus, comprising:

a memory; and

a processor operatively coupled with the memory, the processor configured to:

send, from a server to a first device of a user, a scannable code encoding an envelope identifier and a login challenge, the envelope identifier associated with a first envelope of data having a session identifier;

receive, at the server and from a second device of a user, a challenge envelope of data, the challenge envelope of data including the session identifier, a digital signature defined by digitally signing a hash value of newly-captured biometric data of the user using a private key of the user, and a certification seal of original biometric data of the user, and;

verify the digital signature using a public key of the user;

retrieve a hash value of the original biometric data from a distributed ledger based on the certification seal of the original biometric data;

compare the hash value of the newly-captured biometric data with the hash value of the original biometric data;

authorize the user upon successful verification of the hash value of the newly-captured biometric data with the hash value of the original biometric data; and

establish a communication session having the session identifier between the server and the first device of the user.

12. The apparatus of claim 11 , wherein:

the original biometric data is at least one of a fingerprint identification or a facial image.

13. The apparatus of claim 11 , wherein:

the challenge envelope of data includes a shared-string and a first digital signature defined by digitally signing a first hash value of the shared-string generated by the second device of the user;

the processor is further configured to:

extract the shared-string from the challenge envelope of data,

generate, at the server, a challenge response including at least one of the shared-string or a second digital signature defined by digitally signing a second hash value of the shared-string using a private key of the server,

generate, at the server, a second scannable code including the challenge response;

send, from the server to the first device of the user, the second scannable code;

receive, at the server and from the second device of the user, a confirmation login request responding to the login challenge, the confirmation login request including a second envelope of data having a user identifier, the session identifier, and the shared-string,

the processor configured to authorize the user upon successful verification of the shared-string.

14. The apparatus of claim 13 , wherein the shared-string is a Globally Unique Identifier (GUID) generated by the second device of the user.

15. The apparatus of claim 13 , wherein:

the processor is further configured to decrypt the challenge envelope using the private key of the server after the challenge envelope is encrypted by the second device of the user using a public key of the server.

16. The apparatus of claim 11 , wherein the scannable code includes the public key of the server.

17. The apparatus of claim 11 , wherein the scannable code includes at least one of a QR code, a bar code, or a PDF417 code.

18. The apparatus of claim 13 , wherein:

the second envelope of data includes a third digital signature defined by digitally signing a hash value of the user identifier, the session identifier, and the shared-string using the private key associated with the user,

the processor is configured to authorize the user based on verifying the third digital signature.

19. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:

send, from a server to a first device of a user, a first scannable code encoding an envelope identifier and a login challenge, the envelope identifier associated with a first envelope of data having a session identifier;

receive, at the server and from a second device of the user, a challenge envelope of data, the challenge envelope of data including a session identifier, user data, a hash value of newly-captured biometric data of the user, and a first digital signature defined by digitally signing a hash value of user data using a private key of the user, the user data including a user identifier, a shared-string, the newly-captured biometric data of the user and a certification seal of original biometric data of the user;

retrieve a hash value of the original biometric data from a distributed ledger based on the certification seal of the original biometric data;

compare the hash value of the newly-captured biometric data with the hash value of the original biometric data;

authorize the user upon successful verification of the hash value of the newly-captured biometric data with the hash value of the original biometric data;

send, from the server to the first device of the user, a second scannable code encoding at least one of a shared-string or a second digital signature defined by digitally signing a hash value of the shared-string using a private key of the server;

receive, at the server and from the second device of the user, a confirmation login request responding to the login challenge, the confirmation login request including a second envelope of data having the user identifier, the session identifier, and the shared-string;

verify the shared-string by comparing the hash value of the shared-string with a hash of the shared-string received with the confirmation login request;

authorize the user after successful verification of the shared-string; and

establish a communication session having the session identifier between the server and the first device of the user.

20. The non-transitory processor-readable medium of claim 19 , wherein:

the original biometric data is at least one of a fingerprint identification or a facial image.

21. The non-transitory processor-readable medium of claim 19 , wherein the shared-string is a Globally Unique Identifier (GUID) generated by the second device of the user.

Assignments (8)
RELEASE OF SECURITY INTEREST AT R/F 61703/0988 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION
Reel/Frame 073570/0777 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2022
From: BANK OF AMERICA, N.A.
To: PING IDENTITY CORPORATION
Reel/Frame 061709/0527 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 18, 2022
From: PING IDENTITY CORPORATION
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 061703/0988 →
SECURITY INTEREST Recorded Nov 23, 2021
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 058944/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2021
From: SHOCARD, LLC
To: PING IDENTITY CORPORATION
Reel/Frame 057563/0959 →
CHANGE OF NAME Recorded Sep 22, 2021
From: SHOCARD, INC.
To: SHOCARD, LLC
Reel/Frame 057569/0306 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2021
From: EBRAHIMI, ARMIN; KHOT, GAURAV; RESHETNIKOV, VLADIMIR; GADBOIS, ROBERT
To: SHOCARD, INC.
Reel/Frame 057563/0889 →
Continuity (6)
Continuation 16227632 · Dec 20, 2018
Continuation 15449902 · Mar 3, 2017
Provisional Application 62455199 · Feb 6, 2017
Provisional Application 62304934 · Mar 7, 2016
Provisional Application 62304144 · Mar 4, 2016
Related Publication 20220078178A1 · Mar 10, 2022
Cited By (2)
US 12,381,866 US 12,518,278