IP Library Granted Patent US 9,979,747
Granted Patent B2
US 9,979,747 · App. 15/256,610 · Granted May 22, 2018

Systems and methods for detecting and preventing spoofing

Inventors: Christopher Everett Bailey (Langley, CA); Randy Lukashuk (Errington, CA); Gary Wayne Richardson (Port Moody, CA)
Assignee: Mastercard Technologies Canada ULC
H04L63/1466G06F7/08G06F17/3033G06F17/3053G06F17/30598G06F17/30867G06F21/602H04L41/20H04L43/12H04L43/16H04L63/0861H04L63/1408H04L63/1416H04L63/1425H04L67/303H04L67/02
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 9,979,747
App. No.
15/256,610
Granted
May 22, 2018
Kind
B2
Abstract

Techniques for detecting device type spoofing. The techniques include: receiving a communication from a client device different from the at least one computer; identifying from the communication an asserted type of the client device; and verifying the asserted type of the client device at least in part by: interacting with the client device to obtain additional information about the client device, and determining whether the additional information about the client device is consistent with the asserted type of the client device.

Claims (63)

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

receiving a communication from a client device different from the at least one computer;

identifying from the communication an asserted type of the client device; and

determining whether the client device is of the asserted type at least in part by:

interacting with the client device to measure an amount of time it takes the client device to perform a task, the interacting comprising:

providing a software program to the client device for execution by the client device; and

measuring an amount of time it takes the client device to execute the software program;

determining whether the measured amount of time it takes the client device to perform the task is consistent with the asserted type of the client device, the determining comprising:

comparing the measured amount of time for the client device to perform the task to a range of expected performance times for devices of the asserted type;

granting the client device access to a resource in response to determining that the client device is of the asserted type; and

denying the client device access to the resource in response to determining that the client device is not of the asserted type.

2. The method of claim 1 ,

wherein providing the software program further comprises providing, to the client device, at least one input to the software program, and

wherein measuring the amount of time it takes the client device to execute the software program comprises measuring how long it takes the client device to use the software to generate at least one output based on the at least one input.

3. The method of claim 2 , further comprising:

receiving the at least one output from the client device; and

verifying that the at least one output is accurate.

4. The method of claim 1 , wherein providing the software program further comprises providing, to the client device, a software program comprising a serial cumulative calculation challenge for execution by the client device.

5. The method of claim 1 , wherein providing the software program further comprises providing, to the client device, a software program comprising a parallel checkpoints calculation challenge for execution by the client device.

6. The method of claim 1 , wherein providing the software program further comprises providing, to the client device, a software program comprising a neural network calculation challenge for execution by the client device.

7. The method of claim 1 , wherein providing the software program further comprises providing, to the client device, a software program comprising a graphics processing unit calculation challenge for execution by the client device.

8. The method of claim 1 , wherein determining whether the measured amount of time it takes the client device to perform the task is consistent with how long it takes client devices of the asserted type to perform the task comprises:

accessing information indicating the range of expected performance times, associated with the task, for a population of client devices of the asserted type; and

comparing the measured amount of time with the range of expected performance times.

9. The method of claim 1 ,

wherein the communication indicates that the client device is asserted to be a mobile device of a certain type, and

wherein determining whether the measured amount of time it takes the client device to perform the task is consistent with the asserted type of the client device comprises determining whether the amount of time it takes the client device to perform the task is consistent with how long it takes mobile devices of the certain type to perform the task.

10. The method of claim 1 , wherein interacting with the client device to measure the amount of time it takes the client device to perform the task is performed in response to receiving the communication from the client device.

11. The method of claim 1 ,

wherein the resource comprises a webpage.

12. The method of claim 1 , wherein granting the client device access to the resource comprises granting the client device access to a service.

13. The method of claim 1 , wherein the software program comprises a Javascript program.

14. A system, comprising:

at least one computer;

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

receiving a communication from a client device different from the at least one computer;

identifying from the communication an asserted type of the client device; and

determining whether the client device is of the asserted type at least in part by:

interacting with the client device to measure an amount of time it takes the client device to perform a task, the interacting comprising:

providing a software program to the client device for execution by the client device; and

measuring an amount of time it takes the client device to execute the software program;

determining whether the measured amount of time it takes the client device to perform the task is consistent with the asserted type of the client device, the determining comprising:

comparing the measured amount of time for the client device to perform the task to a range of expected performance times for devices of the asserted type;

granting the client device access to a resource in response to determining that the client device is of the asserted type; and

denying the client device access to the resource in response to determining that the client device is not of the asserted type.

15. The system of claim 14 , wherein providing the software program further comprises providing, to the client device, a software program comprising a serial cumulative calculation challenge, a parallel checkpoints calculation challenge, a neural network challenge, and/or a graphics processing unit challenge for execution by the client device.

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

receiving at least one output from the client device resulting from execution of the software program; and

verifying that the at least one output is accurate.

17. The system of claim 14 , wherein the resource comprises a webpage.

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

receiving a communication from a client device different from the at least one computer;

identifying from the communication an asserted type of the client device; and

determining whether the client device is of the asserted type at least in part by:

interacting with the client device to measure an amount of time it takes the client device to perform a task, the interacting comprising:

providing a software program to the client device for execution by the client device; and

measuring an amount of time it takes the client device to execute the software program;

determining whether the measured amount of time it takes the client device to perform the task is consistent with the asserted type of the client device, the determining comprising:

comparing the measured amount of time for the client device to perform the task to a range of expected performance times for devices of the asserted type;

granting the client device access to a resource in response to determining that the client device is of the asserted type; and

denying the client device access to the resource in response to determining that the client device is not of the asserted type.

19. The at least one non-transitory computer readable storage of claim 18 , wherein providing the software program further comprises providing, to the client device, a software program comprising a serial cumulative calculation challenge, a parallel checkpoints calculation challenge, a neural network challenge, and/or a graphics processing unit challenge for execution by the client device.

20. The at least one non-transitory computer readable storage medium of claim 18 , wherein the resource comprises a webpage.

Assignments (3)
CERTIFICATE OF AMALGAMATION Recorded Apr 23, 2018
From: NUDATA SECURITY INC.
To: MASTERCARD TECHNOLOGIES CANADA ULC
Reel/Frame 045997/0492 →
CERTIFICATE OF AMALGAMATION Recorded Apr 9, 2018
From: NUDATA SECURITY INC.
To: MASTERCARD TECHNOLOGIES CANADA ULC
Reel/Frame 045869/0908 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2016
From: BAILEY, CHRISTOPHER EVERETT; LUKASHUK, RANDY; RICHARDSON, GARY WAYNE
To: NUDATA SECURITY INC.
Reel/Frame 040594/0526 →
Continuity (2)
Provisional Application 62214969 · Sep 5, 2015
Related Publication 20170070533A1 · Mar 9, 2017