Table of Contents

Web - Browser Fingerprinting

About

A digital fingerprint is a string that represents a unique id of a device (browser).

The more unique is the browser, the more it has a one on one relationship with a user.

A digital fingerprint may be computed for a device:

Example

The below example is a device characteristic fingerprinting that has been computed with the valve library.

Type

Characteristic

A characteristic device fingerprinting is computed by collecting characteristics of a user's device and by generating a unique string of this collection via a hash function.

Example of characteristics:

See example

Canvas

Canvas fingerprinting is a type of browser or device fingerprinting technique that was first presented by (2012) Mowery and Shacham in 2012 (Pixel Perfect: Fingerprinting Canvas in HTML5) -

The rendering of a canvas is heavily dependent on the device.

Algo: Render a picture on the canvas > To Base64 encoded > digest function to get the fingerprint value.

Etag

An etag is an unique identifier resource send with a HTTP request.

Because the etag is used by the browser when validating the cache in a conditional request, it could be used as fingerprint.

Implementation

Valve

Valve is a browser fingerprinting library (Valve/fingerprintjs2) that implements a characteristics fingerprinting. The example is based on it.

Browser DNA

https://www.npmjs.com/package/@ch1/browser-dna

Aloodo

See also:

panopticlick

Panopticlick, Eckersley’s “open-source” implementation of browser fingerprinting. They take:

Documentation / Reference