A device fingerprint, machine fingerprint, or browser fingerprint is information collected about a remote computing device for the purpose of identification. Fingerprints can be used to fully or partially identify individual users or devices even when persistent cookies (and also zombie cookies) can't be read or stored in the browser, the client IP address is hidden, and even if one switches to another browser on the same device. This may allow a remote application to detect and prevent online identity theft and credit card fraud, but also to compile long-term records of individuals' browsing histories even when they're attempting to avoid tracking, raising a major concern for internet privacy advocates. Some computer security experts consider the ease of bulk parameter extraction offered by web browsers to be a security hole.
Basic web browser configuration information has long been collected by web analytics services in an effort to accurately measure real human web traffic and discount various forms of click fraud. With the assistance of client-side scripting languages, collection of much more esoteric parameters is possible. Assimilation of such information into a single string comprises a device fingerprint.
In 2010, Electronic Frontier Foundation launched a website where visitors can test their browser fingerprint. After collecting a sample of 470161 fingerprints, they measured at least 18.1 bits of entropy possible from browser fingerprinting, but that was before the advancements of canvas fingerprinting, which claims to add another 5.7 bits.
At WWDC 2018 Apple announced that Safari on macOS Mojave "presents simplified system information when users browse the web, preventing them from being tracked based on their system configuration."
Motivation for the device fingerprint concept stems from the forensic value of human fingerprints. In the "ideal" case, all web client machines would have a different fingerprint value (diversity), and that value would never change (stability). Under those assumptions, it would be possible to uniquely distinguish between all machines on a network, without the explicit consent of the users themselves.
In practice neither diversity nor stability is fully attainable, and improving one has a tendency to adversely impact the other.
- Diversity requires that no two machines have the same fingerprint. However, large numbers of machines are likely to have exactly the same configuration data and thus the same fingerprint. This is particularly true in the case of factory installed operating systems. One remedy is to use a scripting language to harvest a large numbers of parameters from the client machine; however, this is likely to reduce stability, as there are more parameters that may change over time.
- Stability requires that fingerprints remain the same over time. However, by definition browser configuration preferences are not tamper proof. For example, if one measured attribute is whether the browser has cookies on or off, then a simple change of that setting is sufficient to change the fingerprint. One remedy is to reduce the number of parameters collected to only those that are very unlikely to change; however, this is likely to reduce diversity, as fewer parameters are being measured.
Active vs passive collection
Fingerprinting methods range from passive to active.
Passive fingerprinting refers to techniques which do not involve the obvious querying of the client machine. These methods rely upon precise classification of such factors as the client's TCP/IP configuration, OS fingerprint, IEEE 802.11 (wireless) settings, and hardware clock skew.
Active fingerprinting assumes the client will tolerate some degree of invasive querying. The most active method is installation of executable code directly on the client machine. Such code may have access to attributes not typically available by other means, such as the MAC address, or other unique serial numbers assigned to the machine hardware. Such data is useful for fingerprinting by programs that employ digital rights management.
OSI model fingerprints
Passive collection of device attributes below the web-browser layer may occur at several OSI model layers. In normal operation, various network protocols transmit or broadcast packets or headers from which one may infer client configuration parameters. Sorted by layer, some examples of such protocols are:
- OSI Layer 7: SMB, FTP, HTTP, Telnet, TLS/SSL, DHCP
- OSI Layer 5: SNMP, NetBIOS
- OSI Layer 4: TCP (see TCP/IP stack fingerprinting)
- OSI Layer 3: IPv4, IPv6, ICMP, IEEE 802.11
- OSI Layer 2: CDP
A separate issue is that a single device may have multiple web clients installed or even multiple virtual operating systems. As each distinct client and operating system has distinct internal parameters, one may change the device fingerprint by simply running a different browser on the same machine, unless a new crossbrowser fingerprinting technique is used.
Furthermore, sandboxed devices like the iPhone will exhibit so little uniqueness that most fingerprinting techniques involving technical information about the device, the browser, and the font list will not be sufficient to create a unique fingerprint.
- Canvas fingerprinting
- Internet privacy
- Anonymous web browsing
- Browser security
- Browser sniffing
- Cao, Yinzhi (2017-02-26). "(Cross-)Browser Fingerprinting via OS and Hardware Level Features" (PDF). Archived (PDF) from the original on 2017-03-07. Retrieved 2017-02-28. Cite uses deprecated parameter
- "User confidence takes a Net loss". Infoworld.com. 2005-07-01. Archived from the original on 2015-10-04. Retrieved 2015-10-03. Cite uses deprecated parameter
- "7 Leading Fraud Indicators: Cookies to Null Values". 2016-03-10. Archived from the original on 2016-10-03. Retrieved 2016-07-05. Cite uses deprecated parameter
- "EFF's Top 12 Ways to Protect Your Online Privacy | Electronic Frontier Foundation". Eff.org. 2002-04-10. Archived from the original on 2010-02-04. Retrieved 2010-01-28. Cite uses deprecated parameter
- "MSIE clientCaps "isComponentInstalled" and "getComponentVersion" registry information leakage". Archive.cert.uni-stuttgart.de. Archived from the original on 2011-06-12. Retrieved 2010-01-28. Cite uses deprecated parameter
- "BrowserSpy". gemal.dk. Archived from the original on 2008-09-26. Retrieved 2010-01-28. Cite uses deprecated parameter
- "IE "default behaviors [sic]" browser information disclosure tests: clientCaps". Mypage.direct.ca. Archived from the original on 2011-06-05. Retrieved 2010-01-28. Cite uses deprecated parameter
- "About Panopticlick". eff.org. Retrieved 2018-07-07.
- Eckersley, Peter (17 May 2010). "How Unique Is Your Web Browser?" (PDF). eff.org. Electronic Frontier Foundation. Archived (PDF) from the original on 9 March 2016. Retrieved 13 Apr 2016. Cite uses deprecated parameter
- "meta: tor uplift: privacy.resistFingerprinting". Retrieved 2018-07-06.
- "Firefox's protection against fingerprinting". Retrieved 2018-07-06.
- "Apple introduces macOS Mojave". Retrieved 2018-07-06.
- "Wireless Device Driver Fingerprinting" (PDF). Archived (PDF) from the original on 2009-05-12. Retrieved 2010-01-28. Cite uses deprecated parameter
- "Remote Physical Device Detection". Cs.washington.edu. Archived from the original on 2010-01-10. Retrieved 2010-01-28. Cite uses deprecated parameter
- "Chatter on the Wire: A look at DHCP traffic" (PDF). Archived (PDF) from the original on 2014-08-11. Retrieved 2010-01-28. Cite uses deprecated parameter
- "Chatter on the Wire: A look at excessive network traffic and what it can mean to network security" (PDF). Archived from the original (PDF) on 2014-08-28. Retrieved 2010-01-28. Cite uses deprecated parameter
- "Browser Fingerprints, Zombie Cookies, & the Death of Privacy". PrivacyPolicies.com. Archived from the original on 9 June 2017. Retrieved 14 June 2017. Cite uses deprecated parameter
- Newman, Drew (2007). "The Limitations of Fingerprint Identifications". Criminal Justice. 1(36): 36–41.
- Angwin, Julia; Valentino-DeVries, Jennifer (2010-11-30). "Race Is On to 'Fingerprint' Phones, PCs". Wall Street Journal. ISSN 0099-9660. Retrieved 2018-07-10.
- Segal, Ory; Fridman, Aharon; Shuster, Elad (2017-06-05). "Passive Fingerprinting of HTTP/2 Clients" (PDF). Akamai. Retrieved 2018-07-10.