IP Library Granted Patent US 11,687,631
Granted Patent B2
US 11,687,631 · App. 17/808,505 · Granted Jun 27, 2023

Method for generating a human likeness score

Inventors: Tyler James Paxton (Ann Arbor, MI); Reid Michael Tatoris (Ann Arbor, MI); Benjamin Trenda (Ann Arbor, MI); Elvis Jakupovic (Ann Arbor, MI); Steven P. Burkett (Ann Arbor, MI); Adam Michael Janower (Ann Arbor, MI)
Assignee: Imperva, Inc.
G06F21/316G06F16/24578G06F21/32G06F21/36G06F21/31G06F2221/2103G06F2221/2133H04L63/083
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,687,631
App. No.
17/808,505
Granted
Jun 27, 2023
Kind
B2
Abstract

A method for determining whether a user is a human is disclosed. The method includes receiving a request to determine whether a user attempting to access a service provided by a host compute device is a human, obtaining an input motion that the user entered while the user solved a challenge-response test for accessing the service, extracting a noise component of the input motion, retrieving a noise model characterizing noise patterns of input motions previously entered into graphical user interfaces by humans, comparing the noise component with the noise model, calculating a human likeness score of the user based on the comparison, determining whether the user is a human based on the human likeness score, and sending a result of the determination to the host compute device such that the host compute device can allow or restrict access to the service by the user depending on the result.

Claims (72)

1. An apparatus, comprising:

one or more processors; and

a non-transitory computer-readable medium storing computer code, which when executed by the one or more processors, causes the apparatus to:

receive a request to determine whether a user attempting to access a service provided by a host compute device is a human or an automated software;

obtain an input motion that the user entered while the user solved a challenge-response test for accessing the service;

extract a noise component of the input motion, wherein the noise component of the input motion represents oscillations with respect to a smooth input motion;

retrieve a noise model characterizing noise patterns of input motions previously entered into graphical user interfaces by humans;

compare the noise component of the input motion with the noise model;

calculate a human likeness score of the user based on the comparison of the noise component of the input motion with the noise model, wherein the human likeness score indicates a likelihood that the user is a human as opposed to an automated software;

determine whether the user is a human or an automated software based on the human likeness score of the user; and

send a result of the determination of whether the user is a human or an automated software to the host compute device such that the host compute device can allow or restrict access to the service by the user depending on the result of the determination of whether the user is a human or an automated software.

2. The apparatus of claim 1 , wherein the input motion is entered by the user using a mouse interaction or a touch interaction.

3. The apparatus of claim 1 , wherein the comparison of the noise component of the input motion with the noise model comprises comparing a signal-to-noise ratio of the input motion with a model signal-to-noise ratio included in the noise model that represents a signal-to-noise ratio of the input motions previously entered into graphical user interfaces by humans.

4. The apparatus of claim 1 , wherein the input motion includes an input path having smooth input portions and oscillation input portions, the noise component being defined by at least some of the oscillation input portions of the input path.

5. The apparatus of claim 1 , wherein the computer code, when executed by the one or more processors further causes the apparatus to:

generate identification data of the user based on the request; and

store, in a database, an association between the identification data and the result of the determination of whether the user is a human or an automated software.

6. The apparatus of claim 5 , wherein the identification data of the user is an Internet Protocol (IP) address of the user.

7. The apparatus of claim 5 , wherein the computer code, when executed by the one or more processors further causes the apparatus to:

retrieve, from the database, the result of the determination of whether the user is a human or an automated software in response to receiving a second request to determine whether the user is a human or an automated software, wherein the second request is received as a result of the user attempting to access a second service provided by a second host compute device; and

send the result of the determination of whether the user is a human or an automated software to the second host compute device.

8. The apparatus of claim 1 , wherein the computer code, when executed by the one or more processors further causes the apparatus to:

obtain a second input motion entered by the user;

extract a noise component of the second input motion;

compare the noise component of the second input motion with the noise model;

calculate a second human likeness score of the user based on the comparison of the noise component of the second input motion with the noise model;

determine an aggregate human likeness score of the user based on the human likeness score and the second human likeness score;

reassess the determination of whether the user is a human or an automated software based on the aggregate human likeness score; and

send a result of the reassessed determination of whether the user is a human or an automated software to the host compute device.

9. A non-transitory computer-readable medium storing computer code, which when executed by one or more processors of a compute device, causes the compute device to perform operations comprising:

receiving a request to determine whether a user attempting to access a service provided by a host compute device is a human or an automated software;

obtaining an input motion that the user entered while the user solved a challenge-response test for accessing the service;

extracting a noise component of the input motion, wherein the noise component of the input motion represents oscillations with respect to a smooth input motion;

retrieving a noise model characterizing noise patterns of input motions previously entered into graphical user interfaces by humans;

comparing the noise component of the input motion with the noise model;

calculating a human likeness score of the user based on the comparison of the noise component of the input motion with the noise model, wherein the human likeness score indicates a likelihood that the user is a human as opposed to an automated software;

determining whether the user is a or an automated software human based on the human likeness score of the user; and

sending a result of the determination of whether the user is a human to the host compute device such that the host compute device can allow or restrict access to the service by the user depending on the result of the determination of whether the user is a human or an automated software.

10. The non-transitory computer-readable medium of claim 9 , wherein the input motion is entered by the user using a mouse interaction or a touch interaction.

11. The non-transitory computer-readable medium of claim 9 , wherein the comparison of the noise component of the input motion with the noise model comprises comparing a signal-to-noise ratio of the input motion with a model signal-to-noise ratio included in the noise model that represents a signal-to-noise ratio of the input motions previously entered into graphical user interfaces by humans.

12. The non-transitory computer-readable medium of claim 9 , wherein the input motion includes an input path having smooth input portions and oscillation input portions, the noise component being defined by at least some of the oscillation input portions of the input path.

13. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

generating identification data of the user based on the request; and

storing, in a database, an association between the identification data and the result of the determination of whether the user is a human or an automated software.

14. The non-transitory computer-readable medium of claim 13 , wherein the identification data of the user is an Internet Protocol (IP) address of the user.

15. The non-transitory computer-readable medium of claim 13 , wherein the operations further comprise:

retrieving, from the database, the result of the determination of whether the user is a human or an automated software in response to receiving a second request to determine whether the user is a human or an automated software, wherein the second request is received as a result of the user attempting to access a second service provided by a second host compute device; and

sending the result of the determination of whether the user is a human or an automated software to the second host compute device.

16. The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

obtaining a second input motion entered by the user;

extracting a noise component of the second input motion;

comparing the noise component of the second input motion with the noise model;

calculating a second human likeness score of the user based on the comparison of the noise component of the second input motion with the noise model;

determining an aggregate human likeness score of the user based on the human likeness score and the second human likeness score;

reassessing the determination of whether the user is a human or an automated software based on the aggregate human likeness score; and

sending a result of the reassessed determination of whether the user is a human or an automated software to the host compute device.

17. A computer-implemented method comprising:

receiving a request to determine whether a user attempting to access a service provided by a host compute device is a human or an automated software;

obtaining an input motion that the user entered while the user solved a challenge-response test for accessing the service;

extracting a noise component of the input motion, wherein the noise component of the input motion represents oscillations with respect to a smooth input motion;

retrieving a noise model characterizing noise patterns of input motions previously entered into graphical user interfaces by humans;

comparing the noise component of the input motion with the noise model;

calculating a human likeness score of the user based on the comparison of the noise component of the input motion with the noise model, wherein the human likeness score indicates a likelihood that the user is a human as opposed to an automated software;

determining whether the user is a human or an automated software based on the human likeness score of the user; and

sending a result of the determination of whether the user is a human or an automated software to the host compute device such that the host compute device can allow or restrict access to the service by the user depending on the result of the determination of whether the user is a human or an automated software.

18. The computer-implemented method of claim 17 , wherein the input motion is entered by the user using a mouse interaction or a touch interaction.

19. The computer-implemented method of claim 17 , further comprising:

generate identification data of the user based on the request; and

store, in a database, an association between the identification data and the result of the determination of whether the user is a human or an automated software.

20. The computer-implemented method of claim 19 , further comprising:

retrieving, from the database, the result of the determination of whether the user is a human in response to receiving a second request to determine whether the user is a human or an automated software, wherein the second request is received as a result of the user attempting to access a second service provided by a second host compute device; and

sending the result of the determination of whether the user is a human or an automated software to the second host compute device.

Continuity (7)
Continuation 16783590 · Feb 6, 2020
Continuation 16118771 · Aug 31, 2018
Continuation 14734806 · Jun 9, 2015
Continuation In Part 14292266 · May 30, 2014
Continuation 13411071 · Mar 2, 2012
Provisional Application 61467124 · Mar 24, 2011
Related Publication 20220350868A1 · Nov 3, 2022