# Evercookie

Evercookie (also known as supercookie) is an open-source JavaScript application programming interface (API) that identifies and reproduces intentionally deleted cookies on the clients' browser storage. This behavior is known as a zombie cookie. It was created by Samy Kamkar in 2010 to demonstrate the possible infiltration from the websites that use respawning. Websites that have adopted this mechanism can identify users even if they attempt to delete the previously stored cookies.
In 2013, Edward Snowden leaked a top-secret NSA document that showed Evercookie can track Tor (anonymity networks) users. Many popular companies use functionality similar to Evercookie to collect user information and track users. Further research on fingerprinting and search engines also draws inspiration from Evercookie's ability to track a user persistently.
In the late 2010s, most modern browsers have implemented ways to get rid of evercookies with minimal manipulation, notably closing the evercookie tab and then clearing website data in the browser.

## Background

There are three commonly used data storages, including HTTP cookies, flash cookies, HTML5 Storage, and others. When the user visits a website for the first time, the web server may generate a unique identifier and store it on the user's browser or local space. The website can read and identify the user in its future visits with the stored identifier, and the website can save user's preferences and display marketing advertisements. Due to privacy concerns, all major browsers include mechanisms for deleting and/or refusing cookies from websites.
In response to the users' increased unwillingness to accept cookies, many websites employ methods to circumvent users' deletion of cookies. Started from 2009, many research teams found popular websites used flash cookies, ETags, and various other data storage to rebuild the deleted cookies by users, including hulu.com, foxnews.com, spotify.com, etc. In 2010, Samy Kamkar, a Californian programmer, built an Evercookie project to further illustrate the tracking mechanism with respawning across various storage mechanisms on browsers.

## Description

Evercookie allows website authors to be able to identify users even after said users have attempted to delete cookies. Samy Kamkar released v0.4 beta of the evercookie on September 13, 2010, as an open source project. Evercookie is capable of respawning deleted HTTP cookies by storing the cookies on multiple different storage systems typically exposed by web browsers. When a browser visits a website with the Evercookie API on its server, the web server can generate an identifier and store it on various storage mechanisms available on that browser. If the user removes some but not all of the stored identifiers on the browser and revisits the website, the web server retrieves the identifier from storage areas that the user failed to delete. Then the web server will copy and restore this identifier to the previously cleared storage areas.
By abusing the various available storage mechanisms, Evercookie creates persistent data identifiers, because users are unlikely to clear all storing mechanisms. From the list provided by Samy Kamkar, 17 storage mechanisms could be used for the v0.4 beta Evercookie when they are available on browsers:
* Standard HTTP cookies
* HTTP Strict Transport Security (HSTS)
* Local shared objects (Flash cookies)
* Silverlight Isolated Storage
* Storing cookies encoded in RGB values of auto-generated, force-cached PNG images using HTML5 Canvas tag to read pixels (cookies) back out
* Storing cookies in Web history
* Storing cookies in HTTP ETags
* Storing cookies in Web cache
* window.name caching
* Internet Explorer userData storage
* HTML5 Session Web storage
* HTML5 Local Web storage
* HTML5 Global Storage
* HTML5 Web SQL Database via SQLite
* HTML5 IndexedDB
* Java JNLP PersistenceService
* Java CVE-2013-0422 exploit
Samy Kamkar claims that he did not intend to use the Evercookie project to violate internet user privacy or to sell to any parties for commercial use. However, it has served as an inspiration for other commercial websites that later implemented similar mechanisms to restore user-deleted cookies. The Evercookie project is open source, meaning everyone can access and examine the code, or use the code for any purpose. The project incorporates HTML5 as one of the storage mechanisms, which was released 6 months before the project and gained public attentions due to its added persistency. Kamkar wished his project could demonstrate how users' privacy can be infiltrated by contemporary tracking tools. In 2010, one way to prevent Evercookie respawning was a Firefox browser plug-in named "Anonymizer Nevercookie™".
The storage mechanisms incorporated in the Evercookie project are constantly being updated, adding to Evercookie's persistency. As it incorporates many existing tracking methods, Evercookie provides an advanced data tracking tool that reduces the redundancy of data collection methods by many commercial websites. An increasing number of commercial websites used the idea of Evercookie, and added upon it by incorporating new storage vectors. In 2014, a research team at the Princeton University conducted a large scale study of three persistent tracking tools: Evercookie, canvas fingerprinting, and cookie syncing. The team crawled and analyzed the top 100,000 Alexa websites, and detected a new storage vector, IndexedDB, that is incorporated into an Evercookie mechanism and used by weibo.com. The team claimed this is the first detection of commercial use for IndexedDB. Moreover, the researchers discovered cookie syncing is used in conjunction with Evercookie. Cookie syncing allows data sharing between different storage mechanisms, facilitating Evercookie's respawning process in different storage locations on users' browsers. The team also discovered instances of Flash cookies respawning HTTP cookies, and HTTP cookies respawning the flash cookies on the commercial websites. Those two mechanisms are different from the Evercookie project in terms of the number of storage mechanisms employed, but they follow the same principle. Among the sites that the research team crawled, 10 out of 200 websites used flash cookies to rebuild HTTP cookies. 9 of the observed sites belonged to China (including sina.com.cn, weibo.com, hao123.com, sohu.com, ifeng.com, youku.com, 56.com, letv.com, and tudo.com). The other website identified was yandex.ru, a top search engine in Russia.

## Applications

A research team from the Slovak University of Technology proposed a mechanism for search engines to infer Internet users' intended search words and produce personalized search results. Often the queries from Internet users contain multiple meanings and range across different fields. As a result, the displayed search results from the search engine contain a multitude of information, many of which are not related to the searcher. The authors proposed that searchers' identity and user preference have a strong indication on the queries meaning and can greatly reduce the ambiguity of the search word. The research team built a metadata-based model to extract users' information with evercookie, and they integrated this user interest model into the search engine to enhance personalization of the search result. The team was aware that traditional cookie can be easily deleted by experiment subjects thus lead to incomplete experiment data. The research team then utilized evercookie's persistency.

## Controversial applications
### KISSMetrics privacy lawsuit

On Friday July 29, 2011, a research team at the University of California, Berkeley crawled the top 100 U.S. websites based upon QuantCast. The team found KISSmetrics, a third party website that provides marketing analytical tools, used HTTP cookies, Flash cookies, ETags, and some but not all storage mechanisms employed in Samy Kamkar's Evercookie project to respawn the user's deleted information. Other popular websites, such as hulu.com and spotify.com, employed KISSmetrics to respawn HTML5 and HTTP first party cookies. The research team claimed this was the first time that Etag was observed to be used in commercial settings.
On the same day of the report's publication, Hulu and Spotify announced their suspended use of KISSmetrics for further investigation. Two consumers sued KISSmetrics over its violation of user privacy. KISSMetrics revised its privacy policies during the weekend, indicating the company had fully respected customers' will if they chose not to be tracked. On August 4, 2011, KISSmetrics' CEO Hiten Shah denied KISSmetrics' implementation of Evercookie and other tracking mechanisms mentioned in the report, and he claimed the company only used legitimate first party cookie trackers. On October 19, 2012, KISSmetrics agreed to pay over $500,000 to settle the accusation and promised to refrain from using Evercookie.

### NSA Tor tracking

In 2013, an internal National Security Agency (NSA)'s presentation was revealed by Edward Snowden, suggesting Evercookie's use in government surveillance to track Tor users. The TOR Blog responded to this leaked document in one post, assuring that TOR Browser Bundles and Tails operating system provide strong protections against evercookie.

## Public attitudes towards data tracking

Evercookie, and many other emerged new technologies in persistent data tracking, is a response to internet users' tendency of deleting cookie storage. In this system of information exchange, some consumers believe they are being compensated with greater personalization information, or sometimes even financial compensation from the related companies. Recent related research, however, shows a gap between the expectations of the consumer and marketers. A Wall Street Journal survey showed 72% felt offended when they saw targeted advertisements while browsing the internet. Another survey showed 66% of Americans felt negative about how marketers track their data to generate individualized information. In another survey, 52% of respondents said they would like to turn off behavioral advertising. Data tracking persists, however.