Canvas fingerprinting
Canvas fingerprinting is one of a number of browser fingerprinting techniques of tracking online users that allow websites to identify and track visitors using HTML5 canvas element instead of browser cookies or other similar means. The technique received wide media coverage in 2014[1][2][3][4] after researchers from Princeton University and KU Leuven University described it in their paper The Web never forgets.[5]
Contents
Description
Canvas fingerprinting works by exploiting the HTML5 canvas element. When a user visits a website with canvas fingerprinting, their browser is instructed to "draw" a hidden line of text or 3D graphic that is then converted to a digital token. Variations in which GPU is installed or the graphics driver cause the variations in the rendered digital token. The token can be stored and shared with advertising partners to identify users when they visit affiliated websites. A profile can be created from the user's browsing activity allowing advertisers to target advertising to the user's inferred demographics and preferences.[3][6]
Uniqueness
The fingerprint is primarily based on browser, operating system, and installed graphics hardware, so does not uniquely identify users. In a small-scale study with 294 participants from Amazon's Mechanical Turk, an experimental entropy of 5.7 bits was observed, but the authors of the study suggest more entropy could likely be observed in the wild and with more patterns used in the fingerprint. While not sufficient to uniquely identify users by itself, this fingerprint could be combined with other sources of entropy to provide a unique identifier. It is claimed that because the technique is effectively fingerprinting the GPU, that the entropy is "orthogonal" to the entropy of previous browser fingerprint techniques such as screen resolution and browser Javascript capabilities.[7]
Mitigation
Tor Browser notifies the user for canvas read attempts and provides the option to return blank image data to prevent fingerprinting.[5] Browser add-ons like Privacy Badger,[8] DoNotTrackMe[9] or Adblock Plus[10] manually enhanced with EasyPrivacy list are able to block third-party ad network trackers and will block canvas fingerprinting provided that the tracker is served by a third party server (as opposed to being implemented by the visited website itself). The Pale Moon browser added optional inbuilt fingerprinting protection in version 25.6.[11]
History
In May 2012, Keaton Mowery and Hovav Shacham, researchers at University of California, San Diego, wrote a paper Pixel Perfect: Fingerprinting Canvas in HTML5 describing how the HTML5 canvas could be used to create digital fingerprints of web users.[3][7]
Social bookmarking technology company AddThis began experimenting with canvas fingerprinting early in 2014 as a potential replacement for cookies. 5% of the top 100,000 websites used canvas fingerprinting while it was deployed.[8] According to AddThis CEO Richard Harris, the company has only used data collected from these tests to conduct internal research. Users will be able to install an opt-out cookie on any computer to prevent being tracked with canvas fingerprinting.[3]
An article in Forbes notes that device fingerprinting may have been utilized prior to the publication of the 2012 paper, but for the purpose of preventing unauthorized access to systems, not for tracking users without their consent.[2]
As of 2014 the technique is widespread in all sorts of websites with at least a dozen of high-profile web ads and user tracking suppliers using it.[12]
See also
- Evercookie – a type of browser cookie that is intentionally difficult to delete
- Local shared object – a persistent browser cookie also known as a Flash cookie
- Web storage – are web application software methods and protocols used for storing data in a web browser.
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
External links
- Academic research paper describing canvas fingerprinting
- Partial database of websites that have used canvas fingerprinting
- Demonstration of the technique
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 3.0 3.1 3.2 3.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 8.0 8.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ http://forum.palemoon.org/viewtopic.php?f=1&t=8943
- ↑ Lua error in package.lua at line 80: module 'strict' not found.