IP Library Granted Patent US 10,007,776
Granted Patent B1
US 10,007,776 · App. 15/588,244 · Granted Jun 26, 2018

Systems and methods for distinguishing among human users and software robots

Inventors: Christopher Everett Bailey (Langley, CA); Randy Lukashuk (Errington, CA); Jonathan Cunningham (Vancouver, CA)
Assignee: Mastercard Technologies Canada ULC
G06F21/36G06T3/0093G06T11/001H04L63/083H04L63/10G06T2210/32
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,007,776
App. No.
15/588,244
Granted
Jun 26, 2018
Kind
B1
Abstract

A technique for distinguishing between a human user and a software robot. The technique includes: receiving a first communication from a device different from the at least one computer; identifying, from the first communication, a request to access a web resource; transmitting software code and location information to the device, wherein the location information specifies a plurality of locations encoding a visual representation of a challenge text, and wherein the software code, when executed by an Internet browser, causes a plurality of graphical elements to be displayed at the plurality of locations in a webpage so that the webpage displays the challenge text; receiving a second communication from the device; identifying, from the second communication, a response text; and providing the device with access to the web resource based on a comparison between the challenge text and the response text.

Claims (61)

1. A system, comprising:

at least one computer; and

at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer, cause the at least one computer to perform:

receiving, via at least one network, a first communication from a device different from the at least one computer;

identifying, from the first communication, a request to access a web resource;

generating a webpage comprising:

location information representing a challenge text, the location information identifying a plurality of webpage locations at which to display a plurality of graphical elements having a different visual appearance from a background of the webpage in order to display a visual representation of the challenge text, the location information comprising coordinates for at least some of the plurality of webpage locations; and

software code that, when executed by an Internet browser, causes the Internet browser, when rendering the webpage, to display the visual representation of the challenge text at least in part by displaying the plurality of graphical elements at the plurality of webpage locations, wherein the plurality of graphical elements comprises HTML elements and/or OpenGL elements;

transmitting, via the at least one network, the webpage to the device;

receiving, via the at least one network, a second communication from the device;

identifying, from the second communication, a response text; and

providing the device with access to the web resource when a number of errors between the challenge text and the response text is less than a threshold number of errors.

2. The system of claim 1 , wherein the location information does not include an image.

3. The system of claim 1 , wherein the processor-executable instructions, when executed, further cause the at least one computer to perform:

generating the software code and the location information.

4. The system of claim 1 , wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by displaying a plurality of span elements at the plurality of webpage locations.

5. The system of claim 1 , wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by displaying a plurality of HTML canvas elements at the plurality of webpage locations.

6. The system of claim 1 , wherein the software code includes OpenGL instructions, and wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by using at least one graphical processing unit (GPU) to execute the OpenGL instructions to render the plurality of graphical elements.

7. The system of claim 1 , wherein the software code, when executed by the Internet browser, sets a color of at least one of the plurality of graphical elements to a color different from a background color of the webpage.

8. The system of claim 1 , wherein the software code, when executed by the Internet browser, sets a color of at least one of the plurality of graphical elements to a first color at a first time and sets the color of the at least one of the plurality of graphical elements to a second color at a second time different from the first time, wherein the first color is different from the second color.

9. The system of claim 1 , wherein the software code, when executed by the Internet browser, causes a first text to be displayed and subsequently causes the challenge text to be displayed after a threshold amount of time, wherein the first text is different from the challenge text.

10. The system of claim 1 , wherein the processor-executable instructions further cause the at least one computer to perform:

identifying a challenge token from the second communication; and

validating the second communication using the challenge token.

11. A method, performed by at least one computer, the method comprising:

receiving, via at least one network, a first communication from a device different from the at least one computer;

identifying, from the first communication, a request to access a web resource;

generating a webpage comprising:

location information representing a challenge text, the location information identifying a plurality of webpage locations at which to display a plurality of graphical elements having a different visual appearance from a background of the webpage in order to display a visual representation of the challenge text, the location information comprising coordinates for at least some of the plurality of webpage locations; and

software code that, when executed by an Internet browser, causes the Internet browser, when rendering the webpage, to display the visual representation of the challenge text at least in part by displaying the plurality of graphical elements at the plurality of webpage locations, wherein the plurality of graphical elements comprises HTML elements and/or OpenGL elements;

transmitting, via the at least one network, the webpage to the device;

receiving, via the at least one network, a second communication from the device;

identifying, from the second communication, a response text; and

providing the device with access to the web resource when a number of errors between the challenge text and the response text is less than a threshold number of errors.

12. The method of claim 11 , further comprising:

generating the software code and the location information.

13. The method of claim 11 , wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by displaying a plurality of span elements at the plurality of webpage locations.

14. The method of claim 11 , wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by displaying a plurality of HTML canvas elements at the plurality of webpage locations.

15. The method of claim 11 , wherein the software code includes OpenGL instructions, and wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by using at least one graphical processing unit (GPU) to execute the OpenGL instructions to render the plurality of graphical elements.

16. The method of claim 11 , wherein the software code, when executed by the Internet browser, causes the webpage to initially display a first text and subsequently display the challenge text after a threshold amount of time, wherein the first text is different from the challenge text.

17. At least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by at least one computer, cause the at least one computer to perform:

receiving, via at least one network, a first communication from a device different from the at least one computer;

identifying, from the first communication, a request to access a web resource;

generating a webpage comprising:

location information representing a challenge text, the location information identifying a plurality of webpage locations at which to display a plurality of graphical elements having a different visual appearance from a background of the webpage in order to display a visual representation of the challenge text, the location information comprising coordinates for at least some of the plurality of webpage locations; and

software code that, when executed by an Internet browser, causes the Internet browser, when rendering the webpage, to display the visual representation of the challenge text at least in part by displaying the plurality of graphical elements at the plurality of webpage locations, wherein the plurality of graphical elements comprises HTML elements and/or OpenGL elements;

transmitting, via the at least one network, the webpage to the device

receiving, via the at least one network, a second communication from the device;

identifying, from the second communication, a response text; and

providing the device with access to the web resource when a number of errors between the challenge text and the response text is less than a threshold number of errors.

18. The at least one non-transitory computer readable storage medium of claim 17 , wherein the processor-executable instructions, when executed, further cause the at least one computer to perform:

generating the software code and the location information.

19. The at least one non-transitory computer readable storage medium of claim 17 , wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by displaying a plurality of span elements at the plurality of webpage locations.

20. The at least one non-transitory computer readable storage medium of claim 17 , wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by displaying a plurality of HTML canvas elements at the plurality of webpage locations.

21. The at least one non-transitory computer readable storage medium of claim 17 , wherein the software code includes OpenGL instructions, and wherein the software code, when executed by the Internet browser, causes the Internet browser to display the visual representation at least in part by using at least one graphical processing unit (GPU) to execute the OpenGL instructions to render the plurality of graphical elements.

22. The at least one non-transitory computer readable storage medium of claim 17 , wherein the software code, when executed by the Internet browser, sets a color of at least one of the plurality of graphical elements to a color different from a background color of the webpage.

23. The at least one non-transitory computer readable storage medium of claim 17 , wherein the software code, when executed by the Internet browser, sets a color of at least one of the plurality of graphical elements to a first color at a first time and sets the color of the at least one of the plurality of graphical elements to a second color at a second time different from the first time, wherein the first color is different from the second color.

24. The at least one non-transitory computer readable storage medium of claim 17 , wherein the software code, when executed by the Internet browser, causes a first text to be displayed and subsequently causes the challenge text to be displayed after a threshold amount of time, wherein the first text is different from the challenge text.

25. The at least one non-transitory computer readable storage medium of claim 17 , wherein the processor-executable instructions further cause the at least one computer to perform:

identifying a challenge token from the second communication; and

validating the second communication using the challenge token.

Assignments (2)
CERTIFICATE OF AMALGAMATION Recorded Apr 23, 2018
From: NUDATA SECURITY INC.
To: MASTERCARD TECHNOLOGIES CANADA ULC
Reel/Frame 045997/0492 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: BAILEY, CHRISTOPHER EVERETT; LUKASHUK, RANDY; CUNNINGHAM, JONATHAN
To: NUDATA SECURITY INC.
Reel/Frame 042710/0594 →
Cited By (1)
US 12,511,368