this post was submitted on 26 Mar 2024
214 points (97.8% liked)

Firefox

17899 readers
48 users here now

A place to discuss the news and latest developments on the open-source browser Firefox

founded 4 years ago
MODERATORS
 

My apologies to the Bugzilla team for wasting their time holding my hand on this one. Would have honestly never noticed the little "HTML5" info icon to the left of the URL bar though without their help.

top 29 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 7 months ago

OHHHHHHHHHHHHHHHH

That's why Champ'd Up doesn't work properly in Mull Browser! Thanks for this!

[–] [email protected] 3 points 7 months ago (1 children)

Or email those admins and tell them to fix their website

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago)

HTML5 is a perfectly valid technology when used for good purposes though? Their zoomable charts are fine as long as it is enabled. I don’t think they’re using them for tracking, just to make it easier to enable certain technologies.

The company I work for does all our interactive lessons in HTML5 Canvas via Animate CC. When Flash was EOL’d it saved us from having to redo literally thousands of lessons completely.

[–] [email protected] 30 points 7 months ago (2 children)

And when you do this, you are now more fingerprintable than you were with resistFingerprinting off, as the specific combination of anti-fingerprinting measures and canvas-enablement makes you more unique. Which is why it's hidden in about:config.

[–] [email protected] 0 points 7 months ago (1 children)

If you're fingerprintable and your fingerprint changes every 60 seconds then it doesn't really matter

You're still better off hardening these settings

[–] [email protected] 4 points 7 months ago (1 children)

Why would you assume your fingerprint would change every 60 seconds? Are you flipping all the settings every minute or so?

[–] [email protected] 3 points 7 months ago (1 children)

I use the plugin Chameleon to chagney my browser attributes every 60 seconds so my fingerprint changes constantly.

[–] [email protected] 2 points 7 months ago (1 children)

Will I agree and are also a Chameleon user... There are so many attributes that makes you finger printable that I'm slowly thinking to switch to Tor.

[–] [email protected] 6 points 7 months ago

In that case remember not to use any plugins, don't change any of the default settings, and run with a 1080p resolution, never maximize the TOR window either. Since even screen size and resolution is used for your fingerprint.

[–] [email protected] 4 points 7 months ago

Yeah, as stated, only for sites you trust.

I was enabling it on at a cycling site that uses HTML5 Canvas to make their charts of how long chain lubricants last zoomable, haha.

[–] [email protected] 4 points 7 months ago (1 children)

Yeah if it even drew something like “Canvas approval needed to see this image” or just the dang icon in the location bar that would be a start.

[–] [email protected] 1 points 7 months ago (1 children)

I suspect the assumption is that if you are okay digging into about:config to turn on the feature, you're okay with all further interactions veins similarly hidden.

[–] [email protected] 1 points 7 months ago

Yeah, I guess to a degree? This all came about because I went to fingerprint.com and realized they could track across VPN etc. was trying to figure out how to block it and that came up. And since not many sites use HTML5 canvas, I had long forgotten I enabled it by the time I hit a corrupted looking graphics site.

I think in the end it shows they really need a better way to inform you what is going in than striped lines instead of a canvas graphic. Something that prompts you to either allow HTML5 canvas or that at least has a message/image you can google for further info in the issue easily.

[–] [email protected] 46 points 7 months ago (3 children)

Surely this is a user experience that could be improved, no? Awesome feature but confusing solution.

[–] [email protected] 5 points 7 months ago (1 children)

Not really, because doing this will make you more fingerprintable (see my other comment). That's why the default settings are striking a balance between making all users look similar and not breaking too many things (that would cause users to use user-specific overrides that make them more unique), and why resistFingerprinting is in about:config rather than a user-facing setting or enabled by default.

[–] [email protected] 0 points 7 months ago

Or use something like Chameleon and mess with about:config which makes every unique fingerprint, different as your data is scrambled. Firefox still has webRTC leakage, font fingerprinting, audio fingerprinting... That's the reason why people use arkenfox's user.js !

[–] [email protected] 4 points 7 months ago (1 children)

On librewolf I just get a popup asking to allow canvas

[–] [email protected] 4 points 7 months ago (1 children)

A popup sounds like an annoyance you must deal with on every webpage. Not just the ones that use the canvas for useful things

[–] [email protected] 3 points 7 months ago* (last edited 7 months ago)

Canvas is rarely on a web page or at least it rarely affects me

[–] [email protected] 28 points 7 months ago (2 children)

The resist fingerprinting mode scrambles canvas read out to prevent sites from using it to create a fingerprint. Because of that, any site that needs to read the canvas back for legitimate purposes will also receive scrambled data. You get more privacy for the minor inconvenience of having to manually allow canvas usage for the sites that actually need it.

[–] [email protected] 16 points 7 months ago

Yes I’m aware, but the user interface doesn’t make it easy to understand A) why the canvas looks scrambled, and B) how to permit it on a per-site basis.

The technical implementation is fine, it’s just the user workflow that needs fixed.

[–] [email protected] 4 points 7 months ago

And very few sites actually need it.

[–] [email protected] 7 points 7 months ago (2 children)

How do u do fingerprinting with a canvas

[–] [email protected] 5 points 7 months ago

Different graphics stacks (graphics hardware, their drivers (of which there are different ones for all major OSes), the display server (on Linux)) draw things slightly differently. As I remember this especially applies to text rendering using different fonts, but slightly tilted lines, bent lines, and color blending is probably also part of it, and more.

[–] [email protected] 30 points 7 months ago (1 children)

https://en.m.wikipedia.org/wiki/Canvas_fingerprinting

When a user visits a page, the fingerprinting script first draws text with the font and size of its choice and adds background colors (1). Next, the script calls Canvas API’s ToDataURL method to get the canvas pixel data in dataURL format (2), which is basically a Base64 encoded representation of the binary pixel data. Finally, the script takes the hash of the text-encoded pixel data (3), which serves as the fingerprint ...

Variations in which the graphics processing unit (GPU), or the graphics driver, is installed may cause the fingerprint variation. The fingerprint can be stored and shared with advertising partners to identify users when they visit affiliated websites. A profile can be created from the user's browsing activity, allowing advertisers to target advertise to the user's inferred demographics and preferences.

By January 2022, the concept was extended to fingerprinting performance characteristics of the graphics hardware, called DrawnApart by the researchers.

[–] [email protected] 8 points 7 months ago* (last edited 7 months ago) (1 children)

Hmm seems like their would be ways to mitigate this. Why not just introduce some random human undetectable changes to every pixel ie change breightness color alpha etc by 1 or something so every time u call the ToDataURL it returns different data? Might break some things but since canvases dont seem to be predictable systems anyway whats the harm?

[–] [email protected] 14 points 7 months ago* (last edited 7 months ago)

Yes, that is one method to resist canvas fingerprinting, but only resist it. Notice the portion about GPU performance testing, that would work even if the data was fuzzed. The best method seems to be to return fake data that changes frequently, but even that is contested.

Here's a good document with other methods (but not focusing on just canvas fingerprinting): https://2019.www.torproject.org/projects/torbrowser/design/#fingerprinting-linkability

For what it's worth, Firefox does protect against canvas fingerprinting by default it seems. I am not exactly sure how, however.

[–] [email protected] 1 points 7 months ago

Yarp I've had this also.

[–] [email protected] 10 points 7 months ago

I've actually seen that had no idea what it was!