IP Library Granted Patent US 12,244,737
Granted Patent B2
US 12,244,737 · App. 17/944,739 · Granted Mar 4, 2025

Systems and methods for distributed, stateless, and dynamic browser challenge generation and verification

Inventors: Harkeerat Singh Bedi (Los Angeles, CA); Revathi Sabanayagam (Torrance, CA); Devender Singh (Westminster, CA); Reed Morrison (Torrance, CA)
Assignee: DRNC HOLDINGS, INC.
H04L9/3271H04L9/0825H04L9/0869H04L9/3213
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 12,244,737
App. No.
17/944,739
Granted
Mar 4, 2025
Kind
B2
Abstract

Provided is an unobtrusive client verification system with one verification devices having processors that are configured to receive a first request from an unverified client device, generate a random number in response to receiving the first request from the unverified client device, define a set of expressions as a browser challenge problem that evaluates to an answer specified by the random number, encrypt the answer within an answer token, provide the browser challenge problem with the answer token to the unverified client device, receive a second request with a solution to the browser challenge problem and the answer token from the unverified client device, and verify the unverified client device in response to the solution matching the answer that is decrypted from the answer token provided with the second request.

Claims (44)

1. A method comprising:

analyzing a response received by a device from a client device subsequent to the client device requesting verification from a different device and the different device responding to the client device with an electronic message comprising (i) an answer token indicating a first identifier associated with the client device and (ii) a prompt including one or more browser-executable instructions, the response received by the device from the client device comprising the answer token, a second identifier associated with the client device, and a browser-generated answer to the prompt, the analyzing comprising determining, by the device, whether the browser-generated answer included in the response matches a known answer indicated by the answer token included in the electronic message from the different device and whether the second identifier matches the first identifier indicated by the answer token of the response; and

in response to determining, by the device, that the browser-generated answer received from the client device matches the known answer indicated by the answer token received from the client device and the first identifier matches the second identifier, triggering, by the device, the verification of the client device by the device, the verification enabling the client device access to content.

2. The method of claim 1 , further comprising:

receiving, by the different device, a request from the client device for the verification of the client device respective to the access to the content;

communicating, by the different device to the client device and in response to the request, the electronic message comprising the answer token and the prompt including the one or more browser-executable instructions; and

receiving, by the device, the response from the client device, the response including the answer token and the browser-generated answer to the prompt.

3. The method of claim 2 , further comprising:

generating, in response to the request from the client device, the answer token and the prompt including the one or more browser-executable instructions.

4. The method of claim 3 , wherein generating the answer token comprises generating the known answer and encoding information regarding the known answer in the answer token.

5. The method of claim 4 , wherein encoding the information regarding the known answer in the answer token comprises encoding the known answer in the answer token.

6. The method of claim 1 , wherein determining, by the device, whether the browser-generated answer included in the response matches the known answer indicated by the answer token comprises:

decoding the answer token to produce the known answer; and

comparing the browser-generated answer from the client device to the known answer.

7. The method of claim 1 , further comprising:

performing the verification, the verification comprising generating a verification token based on the verification, the verification token comprising a value that enables the access to the content.

8. The method of claim 7 , further comprising:

communicating, over a network, the verification token to the client device, wherein the access to the content is based on the client device having the verification token associated therewith.

9. The method of claim 7 , wherein:

the verification token further comprises an identifier, and

the access to the content is enabled upon the first identifier of the answer token matching the identifier of the verification token.

10. The method of claim 1 , further comprising:

in response to determining, by the device, that the browser-generated answer from the client device does not match the known answer indicated by the answer token, denying the verification of the client device.

11. The method of claim 1 , wherein the browser-generated answer to the prompt is generated by a browser of the client device based on execution, by the browser, of the one or more browser-executable instructions included in the prompt.

12. The method of claim 11 , further comprising generating, by the browser of the client device, the browser-generated answer to the prompt, wherein generating the browser-generated answer to the prompt includes the browser executing the one or more browser-executable instructions included in the prompt.

13. A system comprising:

at least one processor; and

at least one storage medium having encoded thereon executable instructions that, when executed by the at least one processor, cause the at least one processor to carry out a method of processing verification for a client device subsequent to the client device requesting verification from a different device and the client device receiving from the different device an electronic message including (i) an answer token indicating a first identifier associated with the client device and (ii) a prompt including one or more browser-executable instructions, the method comprising:

analyzing a response received from the client device in response to the electronic message presented by the different device, the response received from the client device comprising the answer token, a second identifier associated with the client device, and a browser-generated answer to the prompt, the analyzing comprising determining whether the browser-generated answer matches a known answer indicated by the answer token and whether the second identifier matches the first identifier indicated by the answer token of the response; and

in response to determining that the browser-generated answer from the client device matches the known answer indicated by the answer token and the first identifier matches the second identifier, triggering the verification of the client device, the verification enabling the client device access to content.

14. The system of claim 13 , wherein the method further comprises:

receiving a request from a verification-seeking device for the verification of the verification-seeking device respective to the access to the content;

communicating to the verification-seeking device, in response to the request, an electronic message comprising a verification prompt and a verification answer token; and

in response to receiving a verification response from the verification-seeking device, the verification response including a verification answer to the verification prompt, analyzing the verification response using the verification answer to the verification prompt and the verification answer token.

15. The system of claim 14 , wherein the method further comprises:

generating, in response to the request from the verification-seeking device, the verification prompt and the verification answer token.

16. The system of claim 15 , wherein generating the verification answer token comprises generating a known verification answer and encoding information regarding the known verification answer in the verification answer token.

17. The system of claim 16 , wherein:

generating the verification prompt comprises generating a set of operations to be performed to yield a result and encoding the set of operations in the browser-executable verification prompt as browser-executable instructions; and

generating the result of the set of operations as the known verification answer.

18. The system of claim 17 , wherein the set of operations comprises one or more expressions, mathematical computations, and/or browser operations.

19. At least one non-transitory computer-readable storage medium having encoded thereon executable instructions that, when executed by at least one processor, cause the at least one processor to carry out a method of processing verification for a client device subsequent to the client device requesting verification from a different device and the client device receiving from the different device an electronic message including (i) an answer token indicating a first identifier associated with the client device and (ii) a prompt including one or more browser-executable instructions, the method comprising:

analyzing a response received from the client device in response to the electronic message presented by the different device, the response received from the client device comprising the answer token, a second identifier associated with the client device, and a browser-generated answer to the prompt, the analyzing comprising determining whether the browser-generated answer matches a known answer to the prompt indicated by the answer token and whether the second identifier matches the first identifier indicated by the answer token of the response; and

in response to determining that the browser-generated answer from the client device matches the known answer indicated by the answer token, triggering the verification of the client device, the verification enabling the client device access to content.

Assignments (10)
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0406] Recorded Jul 9, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: UPLYNK, INC. (F/K/A EDGIO, INC.)
Reel/Frame 071875/0105 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0212] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071817/0877 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 068763/0276] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071818/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2025
From: EDGIO, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 069800/0653 →
PATENT SECURITY AGREEMENT Recorded Aug 23, 2024
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 068763/0276 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065597/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2022
From: BEDI, HARKEERAT SINGH; SABANAYAGAM, REVATHI; SINGH, DEVENDER; MORRISON, REED
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 061826/0562 →
CHANGE OF NAME Recorded Nov 18, 2022
From: VERIZON DIGITAL MEDIA SERVICES INC.
To: EDGECAST INC.
Reel/Frame 061967/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: EDGECAST INC.
To: EDGIO, INC.
Reel/Frame 061738/0972 →