IP Library Granted Patent US 8,954,560
Granted Patent B2
US 8,954,560 · App. 14/035,580 · Granted Feb 10, 2015

Incremental browser-based device fingerprinting

Inventor: Eric A Johannsen (San Juan Capistrano, CA)
Assignee: Bluecava, Inc.
H04L41/0853G06F21/44H04L63/0876H04L67/02H04L63/168
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 8,954,560
App. No.
14/035,580
Granted
Feb 10, 2015
Kind
B2
Abstract

A method for incrementally fingerprinting a computing device includes steps for executing device-identification code programmed to retrieve a complete set of device configuration metrics from a web browser of the computing device, interrupting execution of the device-identification code after retrieval of a first subset of the device configuration metrics, generating a partial device fingerprint from the first subset, generating a temporary device identifier from the partial device fingerprint, and generating a subset indicator identifying the device configuration metrics that compose the first subset. Additional steps include writing the temporary device identifier and the subset indicator to browser-based storage of the computing device, resuming execution of the device-identification code, querying the browser-based storage for presence of the temporary device identifier, and retrieving, responsive to detecting the temporary device identifier, a second subset of the device configuration metrics, the second subset comprising device configuration metrics not identified by the subset indicator.

Claims (24)

1. A method for incrementally fingerprinting a computing device, comprising:

(a) executing from a website, responsive to the website receiving a resource request through a web browser of a computing device, device-identification code for identifying the computing device, the device-identification code programmed to retrieve a complete set of device configuration metrics from the web browser;

(b) interrupting execution of the device-identification code after retrieval of a first subset of the device configuration metrics;

(c) generating a partial device fingerprint from the first subset of device configuration metrics;

(d) generating a temporary device identifier from the partial device fingerprint;

(e) generating a subset indicator identifying the device configuration metrics that compose the first subset;

(f) writing the temporary device identifier and the subset indicator to browser-based storage of the computing device;

(g) resuming execution of the device-identification code;

(h) querying the browser-based storage for presence of the temporary device identifier; and

(i) retrieving, responsive to detecting the temporary device identifier, a second subset of the device configuration metrics, the second subset comprising device configuration metrics not identified by the subset indicator.

2. The method of claim 1 further comprising storing the partial device fingerprint and the subset indicator in a fingerprint database.

3. The method of claim 2 further comprising updating the partial device fingerprint responsive to retrieving the second subset of the device configuration metrics.

4. The method of claim 1 wherein the interrupting of execution of the device-identification code occurs as a result of one of (i) the web browser exiting the web page, (ii) the first subset satisfying a predetermined fingerprinting criteria, and (iii) expiration of an allotted execution time.

5. The method of claim 1 wherein the resuming of execution of the device-identification code occurs as a result of one of (i) the web browser revisiting the web page, (ii) the web page fulfilling the resource request, and (iii) the web page reaching a predetermined stage in its rendering sequence.

6. The method of claim 1 further comprising, upon resuming execution of the device-identification code,

(a) querying the browser-based storage for the subset indicator, and if the subset indicator indicates that all device configuration metrics in the set have been retrieved:

(b) omitting further retrieving steps; and

(c) promoting the temporary device identifier to a permanent device identifier by (i) marking the subset indicator as permanent in the browser-based storage, and (ii) writing the temporary device identifier to device-based storage on the computing device.

7. The method of claim 6 wherein device-based storage comprises storage reserved for a Flash cookie.

8. The method of claim 1 wherein browser-based storage comprises one of DOM storage and HTML 5 storage.

9. The method of claim 1 wherein the partial device fingerprint is generated by a hashing algorithm operating on data that represents a combination of the retrieved device configuration metrics.

10. The method of claim 1 wherein the first subset consists of device configuration metrics from the complete set of device configuration metrics that:

(a) are retrievable from the web browser within a time period specified by the website; and

(b) provide highest probability among all subsets satisfying condition (i) of uniquely identifying the computing device.

Assignments (4)
CHANGE OF NAME Recorded Nov 2, 2022
From: ALC, INC.
To: ADSTRA, INC.
Reel/Frame 061875/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2018
From: BLUECAVA, INC.
To: ALC, INC.
Reel/Frame 047315/0425 →
RELEASE OF SECURITY INTEREST Recorded Oct 23, 2018
From: COMERICA BANK
To: BLUECAVA, INC.
Reel/Frame 047270/0696 →
SECURITY INTEREST Recorded May 2, 2014
From: BLUECAVA, INC.
To: COMERICA BANK
Reel/Frame 032808/0459 →
Continuity (3)
Continuation 13290549 · Nov 7, 2011
Provisional Application 61410815 · Nov 5, 2010
Related Publication 20140025791A1 · Jan 23, 2014