Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The problem here is Canvas fingerprinting - that's what I found the most surprising and interesting.

How do you prevent that, apart from working on 'fixing' browsers to create pixel-perfect renders across different browsers/platforms/configurations. Would that even be possible?

Edit:

> Tor Browser notifies the user for canvas read attempts and provides the option to return blank image data to prevent fingerprinting.

Huh. I guess that's one attempt, but being able to read pixel data out of a canvas is completely reasonable.



> […] but being able to read pixel data out of a canvas is completely reasonable.

Not for every website. Most websites don't need canvas at all. One option would be to ask users to activate canvas support for a website that does need it, so users can judge for themselves if the request is legitimate. This is how the geo-location API works after all.

I am not convinced that this will work very well though.


Seems like just another vector to fingerprint that browser by :)


It is! But a disabled setting has a much lower entropy in terms of identifying bits than the hash generated with an active canvas.


It seems possible to add heuristics like 'the canvas element has requested more than X fonts within about Y seconds' and then treat that as a tracking script and do something like prompt the user, or return the default font from then on.


Disable canvas rendering from 3rd part domains? Prompt to enable canvas support for each domain?


  > apart from working on 'fixing' browsers to create pixel-
  > perfect renders
Alternatively, maybe have browsers slightly randomize canvas drawing results in ways that are essentially undetectable to a human eye.


Or use a pure software rendering implementation so it's always the same across platforms.


If the "fingerprint" really is a checksum/crypto hash, an ever so slight random element in rendering output could help. Of course, together with other techniques, it might just identify your somewhat obfuscating browser.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: