IP Library Granted Patent US 8,694,608
Granted Patent B2
US 8,694,608 · App. 13/584,494 · Granted Apr 8, 2014

Client application fingerprinting based on analysis of client requests

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,694,608
App. No.
13/584,494
Granted
Apr 8, 2014
Kind
B2
Abstract

Processes are disclosed for fingerprinting and identifying client applications based on the analysis of client requests. In an HTTP-based embodiment, a fingerprint is constructed based on the presence and order of HTTP headers included in a request from a client application or device. This fingerprint may then be compared to known fingerprints associated with particular client applications to identify the particular client application and/or to assess whether the client application is malicious. The results of this analysis may, for example, be used to determine how to respond to the current request and/or subsequent requests.

Claims (24)

1. A computer system for generating a fingerprint corresponding to a browser request comprising headers, the computer system comprising:

a database storing a map correlating each of a plurality of header types to a combination of one of a plurality of characters and one of a plurality of values;

a processor configured to:

process the headers in the browser request to retrieve a character and a value from the map for each one of the headers in the browser request based on a header type of the header;

concatenate the retrieved characters of all of the headers in the browser request in the same order as the headers in the browser request to produce an order string;

sum the retrieved values of all of the headers in the browser request to produce a score of the browser request;

generate the fingerprint comprising the order string and the score of the browser request;

analyze the score to determine whether the score falls within at least one predefined numerical range associated with a particular type of client application; and

when the score falls within the at least one predefined numerical range associated with the particular type of client application, identify the particular type of client application as a sender of the browser request.

2. The computer system of claim 1 , wherein each value in the map for each distinct header type is a distinct power of a base.

3. The computer system of claim 1 , wherein the score is represented as bitfields.

4. A method of generating a fingerprint corresponding to a browser request comprising headers, the method comprising:

providing a map correlating each of a plurality of header types to a combination of one of a plurality of values and one of a plurality of characters;

retrieving, for each one of the headers in the browser request, a value and a character from the map based on a header type of the header; and

summing the retrieved values of all of the headers in the browser request to produce a score of the browser request;

concatenating the retrieved characters of all of the headers in the browser request in the same order as the headers in the browser request to produce an order string of the browser request;

combining the score and the order string to generate the finger print;

analyzing the score to determine whether the score falls within at least one predefined numerical range associated with a particular type of client application; and

when the score falls within the at least one predefined numerical range associated with the particular type of client application, identifying the particular type of client application as a sender of the browser request.

5. The method of claim 4 , wherein the values are unique to each header type.

6. The method of claim 4 , wherein requests differing only in the order of the headers will correspond to different order strings.

7. The method of claim 4 , wherein a first request and a second request corresponding to a permutation of the headers of a reference request are assigned distinct order strings.

8. The method of claim 4 , wherein a first request and a second request corresponding to a permutation of the headers of a reference request are assigned the same score.

9. The method of claim 4 , wherein the content of a response to the browser request is based at least partly on an identity of the client application.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: VERIZON MEDIA INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 057453/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
CHANGE OF NAME Recorded Aug 24, 2017
From: AOL INC.
To: OATH INC.
Reel/Frame 043672/0369 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS -RELEASE OF 030936/0011 Recorded Jul 1, 2015
From: JPMORGAN CHASE BANK, N.A.
To: AOL ADVERTISING INC.; AOL INC.; BUYSIGHT, INC.; MAPQUEST, INC.; PICTELA, INC.
Reel/Frame 036042/0053 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME ON PRIOR RECORDATION PREVIOUSLY RECORDED ON REEL 028786 FRAME 0759. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Dec 18, 2013
From: AOL LLC
To: AOL INC.
Reel/Frame 031837/0358 →
SECURITY AGREEMENT Recorded Aug 2, 2013
From: AOL INC.; AOL ADVERTISING INC.; BUYSIGHT, INC.; MAPQUEST, INC.; PICTELA, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 030936/0011 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 028786 FRAME 0759. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST. Recorded Sep 18, 2012
From: AOL LLC
To: AOL INC.
Reel/Frame 029004/0261 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2012
From: SALUSKY, WILLIAM; THOMAS, MARK ELLZEY
To: AOL LLC
Reel/Frame 028786/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2012
From: AOL LLC
To: AOL
Reel/Frame 028786/0759 →