IP Library Granted Patent US 10,068,075
Granted Patent B2
US 10,068,075 · App. 14/734,806 · Granted Sep 4, 2018

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: Distil Networks, Inc.
G06F21/316G06F17/3053G06F21/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 10,068,075
App. No.
14/734,806
Granted
Sep 4, 2018
Kind
B2
Abstract

One embodiment of the invention is a method utilizing a CAPTCHA to generate a human likeness score including blocks: a) receiving a user solution to the CAPTCHA; b) receiving a user interaction pattern descriptive of an interaction undertaken by the user, through a graphical interface of the CAPTCHA, to achieve the user solution; c) determining the accuracy of the user solution; d) comparing the user interaction pattern against an interaction model generated from interaction patterns of previous users; e) calculating the human likeness score based upon the determination of block c) and the comparison of block d), wherein the human likeness score lies within a continuum of human likeness scores.

Claims (57)

1. A method for distinguishing a human user from automated software, the method comprising:

receiving a request from a publisher for a human likeness score of a user accessing a web page through a web browser executing on a computing device;

based on the request, collecting identification data of the user;

collecting a cursor motion entered by the user into a graphical user interface (GUI) of the web browser;

extracting a noise component from the cursor motion, the cursor motion comprising a cursor input path viewable within the GUI having visible smooth input portions and visible oscillation input portions or visible deviation input portions defined by a visible cursor within the GUI that moves along the GUI, the noise component being defined by some or all the visible oscillation input portions or the visible deviation input portions of the cursor input path;

identifying a motion geometry in the cursor motion, the motion geometry defined by one or more visible angles of direction change or one or more visible linearities of portions of the cursor input path viewable within the GUI;

accessing a noise model defining input noise characteristics of cursor inputs previously entered into graphical user interfaces by known humans different from the user;

accessing a motion model characterizing cursor motion geometries previously entered into graphical user interfaces by known humans different from the user;

calculating the human likeness score of the user based on a comparison of the noise component to the noise model and based on a comparison of the motion geometry to the motion model, the human likeness score lying within a continuum of human likeness scores; and

associating the identification data of the user with a human determination based on the human likeness score falling within a range of human likeness scores corresponding to humans.

2. The method of claim 1 , wherein collecting identification data of the user comprises collecting an Internet Protocol address of the computing device; and further comprising, in response to the human likeness score falling within the range of human likeness scores corresponding to humans, storing the Internet Protocol address of the computing device in a database of Internet Protocols addresses of other users associated with human determinations.

3. The method of claim 2 , wherein storing the Internet Protocol address of the computing device in the database comprises storing the human likeness score of the user with the Internet Protocol address of the computing device in the database; and further comprising retrieving the human likeness score of the user from the database in response to receipt of a request from a second publisher for the human likeness score associated with the Internet Protocol address of the computing device.

4. The method of claim 1 , wherein the cursor motion is a first cursor motion, the web page is a first web page, the noise component is a first noise component, the motion geometry is a first motion geometry, and the human likeness score is a first human likeness score, the method further comprising:

collecting a second cursor motion entered by the user into the web browser over a second web page distinct from the first web page;

extracting a second noise component from the second cursor motion;

identifying a second motion geometry in the second cursor motion;

calculating a second human likeness score of the user based on a comparison of the second noise component to the noise model and based on a comparison of the second motion geometry to the motion model;

combining the first human likeness score and the second human likeness score into an aggregate human likeness score; and

reassessing the human determination based on the aggregate human likeness score.

5. The method of claim 1 , wherein collecting the cursor motion comprises recording a set of discrete cursor motions input into the web browser; wherein extracting the noise component from the cursor motion comprises generating a characterization of noise across the set of discrete cursor motions; and wherein calculating the human likeness score of the user comprises calculating the human likeness score of the user based on a comparison of the characterization of the noise across the set of discrete cursor motions to the noise model and based on a comparison of motion geometries for discrete cursor motions, in the set of discrete cursor motions, to the motion model.

6. The method of claim 1 , wherein collecting the cursor motion entered by the user into the web browser comprises recording the cursor motion entered by the user through the web browser in response to access of the web page by the computing device through the web browser.

7. The method of claim 1 , wherein accessing the noise model comprises accessing the noise model comprising a signal-to-noise ratio pattern of the cursor motion geometries previously entered into graphical user interfaces by known humans.

8. The method of claim 1 , wherein the user is a first user, the method further comprising associating identification data of a second user with an automated software determination based on a human likeness score of the second user falling outside the range of human likeness scores corresponding to humans.

9. The method of claim 1 , wherein identifying the motion geometry in the cursor motion comprises extracting a speed of a cursor movement within the web browser, a direction of the cursor motion within the web browser, and a change of direction of the cursor motion within the web browser; and wherein calculating the human likeness score of the user comprises calculating the human likeness score of the user based on a degree of similarity of the speed of the cursor movement, the direction of the cursor motion, and the change of direction of the cursor motion to a model human cursor movement, a model human direction of the cursor motion, and a model human cursor direction change, respectively, defined in the motion model.

10. The method of claim 1 , further comprising setting a custom range of human likeness scores corresponding to humans for the user based on web traffic history of the user; and wherein associating the identification data of the user with the human determination comprises associating the identification data of the user with the human determination based on the human likeness score falling within the custom range of human likeness scores corresponding to humans.

11. The method of claim 1 :

further comprising, in response to receiving the request from the publisher, generating a Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA) comprising a graphical interface and a first object and a second object depicted within the graphical interface;

further comprising assigning a visual characteristic of the first object within the graphical interface to differentiate the CAPTCHA from a previously-generated CAPTCHA, the first object distinct from the second object by the visual characteristic;

further comprising assigning an instruction for solving the CAPTCHA based on the visual characteristic of the first object;

further comprising submitting the CAPTCHA to the publisher for delivery to the user through the web page;

wherein collecting the cursor motion comprises receiving a cursor input provided by the user, through the graphical interface presented through the web page accessed within the web browser, to solve the CAPTCHA;

further comprising determining an accuracy of the cursor input in satisfying the instruction for solving the CAPTCHA;

wherein identifying the motion geometry in the cursor motion comprises extracting an interaction pattern from the cursor motion; and

wherein calculating the human likeness score of the user comprises calculating the human likeness score of the user based on a comparison of the interaction pattern to an interaction pattern model generated from interaction patterns of previous users and based on the accuracy of the cursor input in satisfying the instruction for solving the CAPTCHA.

12. A method for distinguishing a human user from automated software, the method comprising:

receiving a request from a publisher for a human likeness score of users accessing a web page affiliated with the publisher;

in response to accessing of the web page by a user through a web browser executing on a computing device, collecting a cursor motion entered by the user into a graphical user interface (GUI) of the web browser;

extracting a noise component from the cursor motion, the cursor motion comprising a cursor input path viewable within the GUI having visible smooth input portions and visible oscillation input portions or visible deviation input portions defined by a visible cursor within the GUI that moves along the GUI, the noise component being defined by some or all the visible oscillation input portions or the visible deviation input portions of the cursor input path;

identifying a motion geometry in the cursor motion, the motion geometry defined by one or more visible angles of direction change or one or more visible linearities of portions of the cursor input path viewable within the GUI;

accessing a noise model defining input noise characteristics of cursor inputs previously entered into graphical user interfaces by known humans different from the user;

accessing a motion model characterizing cursor motion geometries previously entered into graphical user interfaces by known humans different from the user;

calculating the human likeness score of the user based on a comparison of the noise component to the noise model and based on a comparison of the motion geometry to the motion model, the human likeness score lying within a continuum of human likeness scores; and

transmitting a human determination of the user to the publisher based on the human likeness score of the user falling within a range of human likeness scores corresponding to humans.

13. The method of claim 12 , further comprising collecting identification data of the user and storing the identification data of the user and the human determination of the user in a database.

14. The method of claim 13 , wherein storing the identification data of the user and the human determination of the user in the database comprises, storing the identification data of the user and the human likeness score of the user in a database of identification information of other users associated with human determinations.

15. The method of claim 13 , wherein the cursor motion is a first cursor motion, the web page is a first web page, the noise component is a first noise component, and the human likeness score is a first human likeness score, the method further comprising:

collecting a second cursor motion entered by the user into the web browser over a second web page distinct from the first web page;

extracting a second noise component from the second cursor motion;

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

combining the first human likeness score and the second human likeness score into an aggregate human likeness score;

reassessing the human determination based on the aggregate human likeness score; and

updating the database with the human determination based on the aggregate human likeness score.

16. The method of claim 13 , wherein the pubisher is a first publisher, the method further comprising retrieving the human likeness score of the user from the database in response to receipt of a request from a second publisher for the human likeness score of the user.

17. The method of claim 12 , wherein extracting the noise component from the cursor motion comprises characterizing a signal-to-noise ratio pattern of the cursor motion; wherein accessing the noise model comprises accessing the noise model comprising a model signal-to-noise ratio pattern based on cursor motions previously entered into graphical user interfaces by known humans; and wherein calculating the human likeness score of the user comprises calculating the human likeness score of the user based on a degree of similarity between the signal-to-noise ratio pattern of the cursor motion and the model signal-to-noise ratio pattern.

18. The method of claim 12 , wherein the user is a first user, the method further comprising transmitting an automated software determination to the publisher based on a human likeness score of a second user falling within a range of human likeness scores corresponding to automated software, the range of human likeness scores corresponding to automated software substantially distinct from the range of human likeness scores corresponding to humans.

19. The method of claim 1 , wherein the comparison of the noise component to the noise model includes comparing the visible oscillation input portions or the visible deviation input portions of the cursor input path to oscillations or deviations of the noise model, and wherein the comparison of the motion geometry to the motion model includes comparing the one or more visible angles of direction change or the one or more visible linearities of portions of the cursor input path to one or more angles of direction change or one or more linearities of the motion model.

20. The method of claim 12 , wherein the comparison of the noise component to the noise model includes comparing the visible oscillation input portions or the visible deviation input portions of the cursor input path to oscillations or deviations of the noise model, and wherein the comparison of the motion geometry to the motion model includes comparing the one or more visible angles of direction change or the one or more visible linearities of portions of the cursor input path to one or more angles of direction change or one or more linearities of the motion model.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 050258/0928 Recorded Dec 1, 2023
From: BANK OF AMERICA, N.A., AS AGENT
To: DISTIL NETWORKS, INC.
Reel/Frame 065744/0892 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 050259/0288 Recorded Dec 1, 2023
From: GOLDMAN SACHS BANK USA, AS AGENT
To: DISTIL NETWORKS, INC.
Reel/Frame 065744/0902 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Sep 3, 2019
From: DISTIL NETWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 050258/0928 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Sep 3, 2019
From: DISTIL NETWORKS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 050259/0288 →
MERGER Recorded Jul 1, 2019
From: DISTIL NETWORKS, INC.
To: IMPERVA, INC.
Reel/Frame 049647/0988 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2018
From: PAXTON, TYLER JAMES; TATORIS, REID MICHAEL; TRENDA, BENJAMIN; JAKUPOVIC, ELVIS; BURKETT, STEVEN P.; JANOWER, ADAM MICHAEL; ARE YOU A HUMAN, INC.
To: DISTIL NETWORKS, INC.
Reel/Frame 045646/0658 →
MERGER Recorded Nov 2, 2017
From: AYAH, LLC
To: ARE YOU A HUMAN, LLC
Reel/Frame 044020/0575 →
CHANGE OF NAME Recorded Nov 2, 2017
From: ARE YOU A HUMAN, LLC
To: ARE YOU A HUMAN, INC.
Reel/Frame 044359/0144 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: PAXTON, TYLER
To: ARE YOU A HUMAN, LLC
Reel/Frame 044001/0901 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: TATORIS, REID
To: ARE YOU A HUMAN, LLC
Reel/Frame 044001/0935 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: JAKUPOVIC, ELVIS
To: ARE YOU A HUMAN, LLC
Reel/Frame 044002/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: BURKETT, STEVEN P.
To: ARE YOU A HUMAN, INC.
Reel/Frame 044002/0120 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: JANOWER, ADAM
To: ARE YOU A HUMAN, LLC
Reel/Frame 044002/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: ARE YOU A HUMAN, INC.
To: DISTIL NETWORKS, INC.
Reel/Frame 043718/0252 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2015
From: PAXTON, TYLER; TATORIS, REID; TRENDA, BENJAMIN; ELVIS, JAKUPOVIC; BURKETT, STEVEN P.; JANOWER, ADAM MICHAEL
To: AYAH, LLC
Reel/Frame 036206/0502 →
Continuity (4)
Continuation In Part 14292266 · May 30, 2014
Continuation 13411071 · Mar 2, 2012
Provisional Application 61467124 · Mar 24, 2011
Related Publication 20150271166A1 · Sep 24, 2015