HN2new | past | comments | ask | show | jobs | submitlogin

Once again I am forced to golf clap for a horrifying idea brilliantly executed.


No kidding. I especially liked:

>Storing cookies in RGB values of auto-generated, force-cached PNGs using HTML5 Canvas tag to read pixels (cookies) back out

and:

>Storing cookies in Web History (seriously. see FAQ)

Brilliant and EVIL. Wow.


I wrote up a technique for storing values in the cache a little while back, no PNG or canvas necessary.

http://joshduck.com/blog/2010/01/29/abusing-the-cache-tracki...


True, but it's more difficult to analyze and attempt to filter a PNG based on content.


You can analyze and filter script that extracts information from PNG, and such unusual script would draw attention.

Cookie stored as a simple variable in a cached JS file is IMHO better solution if you're trying to be sneaky — there's nothing unusual in variable assignment or cacheable JS file.


Storing cookies in RGB values of auto-generated, force-cached PNGs using HTML5 Canvas tag to read pixels (cookies) back out

That's pretty "nice". It might be possible to "improve" it by storing metadata inside the PNG, and then reading it by parsing it out of the raw data after the call to getDataURL().

I haven't tried this though, and it's possible browsers drop the metadata when they recreate the image. The spec says A future version of this specification will probably define other parameters to be passed to toDataURL() to allow authors to more carefully control compression settings, image metadata, etc.


Thinking about it a bit more, it's actually worse than that.

http://www.nihilogic.dk/labs/imageinfo/ shows how to extract EXIF data from JPEG files, so using EXIF + the cache hack is possible for sure.

http://www.nihilogic.dk/labs/id3/ shows how to extract ID3 metadata from MP3s in Javascript, so you could do a similar thing like that.

Can anyone think why just using the cache hack + a JSON data file wouldn't work?


It's even worse then that. http://en.wikipedia.org/wiki/Steganography That slightly larger in disk size logo on the main site could be hiding a tracking token for you....


It's unlikely they'd use a logo, because of the brittleness of the technique (ie, it relies on sending 304 Not Modified response due to the absence of the special tracking cookie, not due to the actual cache status).

Also, it's not clear if you get access to the actual binary data from the image as it is served, or new data generated from the image as it is displayed - hence my question as to if using the metadata would work.


Of course though it's fairly unnecessary.

If all you want to do is track users, it's far easier to use UserAgent/screensize/plugins/etc to uniquely identify users.

https://panopticlick.eff.org/

You can then store anything heavier server side.


It seems to work remarkably well. And they do not even use all the tricks imaginable. E.g. you could add lots of more volatile information to the fingerprint, if you also added some statistical intelligence.


One possible good application: effectively banning trolls and spammers




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: