IP Library Granted Patent US 8,244,799
Granted Patent B1
US 8,244,799 · App. 12/176,603 · Granted Aug 14, 2012

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,244,799
App. No.
12/176,603
Granted
Aug 14, 2012
Kind
B1
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 (39)

1. A computer-implemented method, comprising:

receiving a Hypertext Transfer Protocol (HTTP) request over a network, the HTTP request comprising a uniform resource identifier and a plurality of headers;

generating a fingerprint of the request, the fingerprint based at least partly on an ordered sequence reflecting an order of in which a subset of the plurality of headers received over the network occurs in the request, wherein the ordered sequence comprises symbols, each of which corresponds to a respective one of the subset of the plurality of headers;

the fingerprint further comprising a score calculated based on numerical values, each numerical value corresponding to a specific header type;

using the fingerprint to look up information reflective of a type of client application that generated the request; and

determining how to respond to the HTTP request based at least partly on the information reflective of the type of the client application.

2. The method of claim 1 , the symbols comprising ASCII characters.

3. The method of claim 1 , wherein the fingerprint further comprises the symbols comprising ASCII characters.

4. The method of claim 1 , wherein using the fingerprint to look up information comprises determining whether the numerical score falls within at least one predefined numerical range associated with a particular type of client application.

5. The method of claim 1 , wherein generating the fingerprint comprises generating a bitfield comprising bits, wherein the value of the individual bits are based at least in part on the subset of the plurality of headers.

6. The method of claim 1 , wherein using the fingerprint to look up information reflective of the type of the client application comprises looking up information reflective of a brand and version of the client application.

7. The method of claim 1 , wherein using the fingerprint to look up information reflective of the type of the client application comprises looking up information reflective of whether the client application is associated with malicious client activity.

8. The method of claim 1 , wherein the fingerprint is constructed based upon the order and the identity of an HTTP.

9. The method of claim 1 , wherein the fingerprint is additionally based on at least one cookie included in the request.

10. The method of claim 1 , where the request further comprises an indicator of the number of cookie name-value pairs contained in the request.

11. The method of claim 1 , where the request further comprises an indicator of the time of the request.

12. The method of claim 1 , where the request further comprises an indicator of the elapsed time between establishment of a TCP connection and receipt of the request.

13. The method of claim 1 , where the request comprises HTTP and the request comprises an indicator of the request-method used in the request.

14. The method of claim 1 , where the request comprises an indicator of the client-side port used in the request.

15. A computer system comprising:

a processor for generating a fingerprint corresponding to a request comprising headers, the generating being based at least partly on an ordered sequence reflecting an order in which a subset of the plurality of headers received over the network occurs in the request;

at least one association of a header name to an associated value; and

a fingerprinting service adapted to produce a representation corresponding to the request, wherein elements of the representation correspond to the associated values of the headers present in the request, wherein the ordered sequence comprises symbols, each of which corresponds to a respective one of the subset of the plurality of headers, the associated values further comprise numerical values that each correspond to a specific header type, and the representation comprises a score calculated based on the numerical values.

16. A computer system comprising:

a processor for classifying the originating user-client application corresponding to a request comprising headers, the classifying being based at least partly on an ordered sequence reflecting an order in which a subset of the plurality of headers received over the network occurs in the request;

at least one association of a header name to an associated value;

at least one association of a known fingerprint to a known user-client application;

a fingerprinting service adapted to produce a request fingerprint corresponding to the request, wherein elements of the request fingerprint correspond to the associated values of the headers present in the request, wherein the ordered sequence comprises symbols each of which corresponds to a respective one of the subset of the plurality of headers, the associated values further comprise numerical values that each correspond to a specific header type, and the request fingerprint comprises a score calculated based on the numerical values; and

a classifying service adapted to relate the request fingerprint to the known fingerprints.

17. A computer-implemented method, comprising:

receiving a Hypertext Transfer Protocol (HTTP) request over a network, the HTTP request comprising a uniform resource identifier and a plurality of headers;

generating a fingerprint of the request, the fingerprint based at least partly on an ordered sequence reflecting an order of in which a subset of the plurality of headers received over the network occurs in the request, wherein the ordered sequence comprises symbols each of which corresponds to a respective one of the subset of the plurality of headers;

the fingerprint further comprising a score calculated based on numerical values, each of the numerical values corresponding to a specific header type; and

using the fingerprint to look up information reflective of a type of client application that generated the request.

18. A computer-implemented method, comprising:

receiving a Hypertext Transfer Protocol (HTTP) request over a network, the HTTP request comprising a uniform resource identifier and a plurality of cookies;

generating a fingerprint of the request, the fingerprint based at least partly on an ordered sequence reflecting an order of in which a subset of the plurality of headers received over the network occurs in the request, wherein the ordered sequence comprises symbols each of which corresponds to a respective one of the subset of the plurality of headers;

the fingerprint further comprising a score calculated based on numerical values, each of the numerical values corresponding to a specific cookie name-value pair; and

using the fingerprint to look up information reflective of a type of client application that generated the request.

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 →
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 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 16, 2010
From: BANK OF AMERICA, N A
To: AOL INC; AOL ADVERTISING INC; GOING INC; LIGHTNINGCAST LLC; MAPQUEST, INC; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC; TACODA LLC; TRUVEO, INC; YEDDA, INC
Reel/Frame 025323/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2009
From: AOL LLC
To: AOL INC.
Reel/Frame 023720/0309 →
SECURITY AGREEMENT Recorded Dec 14, 2009
From: AOL INC.; AOL ADVERTISING INC.; BEBO, INC.; ICQ LLC; GOING, INC.; LIGHTNINGCAST LLC; MAPQUEST, INC.; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC.; TACODA LLC; TRUVEO, INC.; YEDDA, INC.
To: BANK OF AMERICAN, N.A. AS COLLATERAL AGENT
Reel/Frame 023649/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2008
From: SALUSKY, WILLIAM; THOMAS, MARK ELLZEY
To: AOL LLC
Reel/Frame 021473/0363 →