De bekende beveiligingsonderzoeker Samy Kamkar, die in 2005 de eerste cross-site scripting worm ontwikkelde, heeft nu een niet te verwijderen cookie bedacht. De 'evercookie' is een JavaScript API dat "extreem persistente cookies in een browser produceert". Zodoende zijn gebruikers toch nog door een website of advertentiebedrijf te identificeren, ook al hebben ze de standaard cookies, Flash cookies en andere bestanden verwijderd.
De evercookie doet dit door de cookiegegevens in verschillende soorten opslag mechanismen op te slaan waar de browser toegang toe heeft. Als evercookie ontdekt dat de gebruiker cookies heeft verwijderd, maakt het die zelf weer aan. "Zie het als cookies die gewoon niet weg gaan", zo laat Kamkar op zijn weblog weten. Daar is inmiddels ook de broncode en een proof-of-concept versie van de evercookie te vinden.
Afbeelding
Als evercookie een cookie plaats, benadert het evercookie.php met een speciale HTTP cookie, die van de standaard sessiegegevens verschilt. Dit speciale cookie wordt door het PHP bestand gelezen, en indien gevonden, genereert een PNG-bestand waar alle ingestelde RGB waarden gelijk zijn aan de te bewaren sessiegegevens. Vervolgens wordt het PNG-bestand terug naar de browser gestuurd, met het verzoek om het bestand voor de komende twintig jaar te cachen.
Als evercookie dit bestand weer ophaalt, verwijdert het het speciale HTTP cookie en stuurt vervolgens hetzelfde verzoek naar het zelfde bestand, zonder informatie van de gebruiker. Als het PHP script ziet dat het geen informatie heeft om een PNG-bestand mee te genereren, stuurt het een valse HTTP response terug, die de browser dwingt om de lokale cache aan te roepen. De browser produceert dan het gecachte PNG-bestand en past de HTML5 Canvas tag toe. Via de Canvas tag kan evercookie elke pixel uitlezen, de RGB waarden achterhalen en zo de oorspronkelijke, maar verwijderde cookie herstellen.
Gebruikers die zich zorgen maken adviseert Kamkar om de private browsing optie van Safari te kiezen, aangezien dit alle evercookie methoden na een browser herstart stopt.
Deze posting is gelocked. Reageren is niet meer mogelijk.