Suvarna Garge (Editor)

Evercookie

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Evercookie

Evercookie is a JavaScript-based application created by Samy Kamkar which produces zombie cookies in a web browser that are intentionally difficult to delete. In 2013, a top-secret NSA document was leaked by Edward Snowden, citing Evercookie as a method of tracking Tor users.

Contents

Background

A traditional HTTP cookie is a relatively small amount of textual data that is stored by the user's browser. Cookies can be used to save preferences and login session information; however, they can also be employed to track users for marketing purposes. Due to concerns over privacy, all major browsers include mechanisms for deleting and/or refusing to accept cookies from websites.

The size restrictions, likelihood of eventual deletion, and simple textual nature of traditional cookies motivated Adobe Systems to add the local shared object (LSO) mechanism to the Adobe Flash player. While Adobe has published a mechanism for deleting LSO cookies (which can store 100 KB of data per website, by default), it has met with some criticism from security and privacy experts. Since version 4, Firefox has treated LSO cookies the same way as traditional HTTP cookies, so they can be deleted together.

Description

Samy Kamkar released v0.4 beta of the Evercookie on September 13, 2010, as open source. According to the project's website:

Evercookie is designed to make persistent data just that, persistent. By storing the same data in several locations that a client can access, if any of the data is ever lost (for example, by clearing cookies), the data can be recovered and then reset and reused.

Simply think of it as cookies that just won't go away.

Evercookie is a javascript API available that produces extremely persistent cookies in a browser. Its goal is to identify a client even after they've removed standard cookies, Flash cookies (Local Shared Objects or LSOs), and others.

Evercookie accomplishes this by storing the cookie data in several types of storage mechanisms that are available on the local browser. Additionally, if Evercookie has found the user has removed any of the types of cookies in question, it recreates them using each mechanism available.

An Evercookie is not merely difficult to delete. It actively "resists" deletion by copying itself in different forms on the user's machine and resurrecting itself if it notices that some of the copies are missing or expired. Specifically, when creating a new cookie, Evercookie uses the following storage mechanisms when available:

  • Standard HTTP cookies
  • local shared objects (Flash cookies)
  • Silverlight Isolated Storage
  • Storing cookies in RGB values of auto-generated, force-cached PNGs 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
  • The developer is looking to add the following features:

  • Caching in HTTP Authentication
  • Using Java to produce a unique key based on NIC information.
  • References

    Evercookie Wikipedia