Hacker news

  • Top
  • New
  • Past
  • Ask
  • Show
  • Jobs

Cloudflare Turnstile requiring fingerprintable WebGL (https://hacktivis.me)

786 points by HypnoticOcelot 6 days ago | 479 comments | View on ycombinator

denysvitali 6 days ago |

Cloudflare is known to use fingerprinting to detect scrapers For example, they use JA3 fingerprints and match them against the UA to block stuff like cURL while allowing OkHttp (Android clients) - but this can be easily be spoofed with packages such as CycleTLS [1].

I don't want to defend them, because they gate away a good chunk of the internet with their "bot protection", but unless you do PoW (which is also ecologically a nightmare), probably fingerprinting is the way to go - completely destroying the privacy of everyone involved.

Cromite, a privacy conscious fork of Chromium for Android, has constantly issues with CloudFlare Turnstile [2] because they (Cloudflare) try to fingerprint it in multiple ways in order to pass the challenge. The only way to get it to work would be to join the CloudFlare Browser Developer program - which requires signing an NDA. Rightfully so, the project maintainer didn't want to do it.

If you want to see the extent of what CloudFlare does to fingerprint the browsers, just have a look in the issue [2] and see which flags need to be disabled in order to allow CloudFlare to pass the challenge.

I understand both sides, but at least CloudFlare could be flexible enough to fall back to PoW instead of just blocking people from sending forms or accessing websites...

[1]: https://github.com/Danny-Dasilva/CycleTLS

[2]: https://github.com/uazo/cromite/issues/2365

jeroenhd 6 days ago |

> Plus privacy.resistfingerprinting isn't enabled even when selecting "Strict" "Enhanced Privacy Protection" in the settings, great job there Mozilla.

For good reason. I've run that setting for ages but I kept having to disable it and add workarounds because websites would break in weird ways. Timezones in scheduling websites being messed up nearly made me miss a couple of appointments. There's no way to tell the user Firefox isn't broken without displaying a permanent banner like "if websites are broken in any way or you see weird glitches or your computer's time is wrong or fonts look weird or videos don't always work right, click here to disable fingerprinting protection".

Interestingly, Turnstile breaks with resistfingerprinting but works with fingerprintingProtection, I guess the latter takes this crap into account.

userbinator 6 days ago |

"If they know you're spoofing, you're not spoofing hard enough."

This stupid "war against bots" is going to lead to the downfall of the Internet and effectively turn it into another walled garden where only "approved" (anti-)user agents are allowed. Don't fall for the nonsense about "AI scrapers" --- it's just a way to manufacture consent.

konform 6 days ago |

I'm maintaining a minority browser[0] and as of a couple of weeks this is affecting several of our users[1]. While I'm currently not considering this a browser bug (one could be involved, of course), more eyes are better and any help or ideas on improving or mitigating the situation would be appreciated.

[0]: https://konform-browser.codeberg.page/

[1]: Most? All? Without any telemetry, relying on user reports and our own testing here.

Animats 6 days ago |

Is there a deal between Google and Cloudflare to make non-Chrome browsers harder to use? The pressure to use Chrome keeps increasing, and the amount of ad filtering you can do in Chrome keeps decreasing.

petterroea 6 days ago |

"Your browser appears suspicious because it looks like you are trying to hide your identity"

Another case of the much predicted downfall of freedom due to "people who hide themselves must have something to hide, so they are automatically suspicious"

rfl890 6 days ago |

>It looks like you're trying to hide your identity.

You were never entitled to it in the first place

malka1986 6 days ago |

Thanks, i did not know about `privacy.resistfingerprinting`

I'll make sure to fail all cloudflare turnshit in the future.

megous 6 days ago |

They use all kinds of obscure APIs, which you'll learn if you're privacy/security conscious and disable random web APIs that are of no use to YOU as a web user, but only can ever serve the people who serve you stuff or want to hack you or track you.

Normally websites feature test and just skip using obscure disabled APIs, or more likely, websites don't use those APIs at all or only tracking scripts use it, which are already optional usually.

Problem with CF is that if you want increased security they'll prevent you from gaining it everywhere, even on sites they don't protect, or prevent you from accessing services even the ones you paid for. Browsers don't allow disabling APIs per domain, so you're either at risk everywhere or you're blocked from accessing a lot of things for no particular reason.

CF can't be bothered to feature test.

Kiboneu 6 days ago |

In other words, Cloudflare requires you to substantially increase your browser’s attack surface in order to visit websites.

dblohm7 6 days ago |

> Plus privacy.resistfingerprinting isn't enabled even when selecting "Strict" "Enhanced Privacy Protection" in the settings, great job there Mozilla.

That pref is there for the Tor Browser.

avallach 6 days ago |

Doesn't this mean we just need to make the webgl fingerprint resistance implementation smarter? Instead of explicitly rejecting webgl access or responding with dummy data, respond with data that is random within space of N common and reproducible patterns. E.g. emulate webgl implementation of some low spec but actually popular devices.

AgentReinAi 5 days ago |

This is a concerning trend. Turnstile was marketed as a privacy-respecting CAPTCHA alternative, but requiring WebGL fingerprinting undermines that entirely. At this point what's the actual difference between this and the tracking they claimed to replace?

1vuio0pswjnm7 6 days ago |

adamtaylor_13 6 days ago |

So if you need to prevent bot abuse, but also don't want an ugly captcha every time someone goes to sign up, is there a better option?

4oo4 6 days ago |

I tested this extension that I've been using for a long time on the turnstile page and it got through, fwiw. I think it's a bit more subtle than how resistfingerprinting works but not sure what the privacy tradeoff is.

https://github.com/kkapsner/CanvasBlocker

gorgoiler 6 days ago |

I always like the axiom with crime that once X% of the population are violating a statute then it should probably struck off. Recreational drugs being the obvious example.

If randomized canvas stuff was cracked down upon as a bot thing but now everyone with a copy of Firefox is doing it, maybe Cloudflare should just “legalize” it?

ai_fry_ur_brain 6 days ago |

Ive been concerned about Cloudflare turnstile fingerprinting ever since I started being forced to "prove I was human" on my anonymous X/Twitter accounts anytime I'd say something anti police/government/military.

I would get locked out of the account on all devices after saying these things until I compeleted their turnstile. For many accounts I just never used them again.

I could go more into this, but im highly suspicious of Cloudflare and of course X/Twitter in this regard. Ive been reccomend people to follow on anonymous twitter accounts for people I went to elementary school with and havent spoken to in years and have no digital connection to. Its very weird.

baq 6 days ago |

The logical next step would be for them to allow to pay you to pass the check and become the ultimate Internet tool booth.

nulledy 6 days ago |

As turnstile users on several of our sites, I think we need to revisit that decision.

fulafel 6 days ago |

WebGL fingerprinting is of course an attack and a unintended use of the WebGL API. Browser vendors should respond to this misuse somehow (reputation based blacklist?).

bflesch 6 days ago |

Firefox has so much built-in tracking it seems they want to push me to build my own browser. For example every time you open the settings there are several ways they are sending out pings to certain extensions.

Also by default addons.mozilla.org is a privileged site so of course they include google tracking in it and they get the proper fingerprint no matter what you have configured.

tomrittervg 5 days ago |

The Bugzilla bug is at https://bugzilla.mozilla.org/show_bug.cgi?id=2036440

The breadth of responses here about people who can't reproduce this (or can) is one of the most frustrating things about working on fingerprinting protection. I also cannot reproduce this behavior, and have to assume that there is some complicated, behind-the-scenes risk assessment that is being done and some people trigger it and some don't. If any Cloudflare devs want to chat, I would love to. While not a normal way to contact us (support requests will be ignored), I can be reached at [email protected]

aussieguy1234 6 days ago |

For the malicious bot authors, if WebGL is a "free pass" so that their browser is not detected as a bot, they'll simply switch to a chrome based browser such as CloakBrowser, which already passes CloudFlare Turnstile.

So no real benefit for bot detection here. Just a privacy nightmare for everyone else.

JensenTorp 6 days ago |

I want to point out that Cloudflare Turnstyle is a separate and more strict product than their usual "are you a bot" protection.

I use Cloudflare protection on all my website but only the account creation page uses Turnstyle.

whatwhyisthis 6 days ago |

You hiding things from them automatically lots automatically bins you with agents having a reason to hide things from them.

Which, to be clear, is the entire problem: given how much of the internet goes through them, they should have enough alternative signals as to wether you’re not a bad actor that are stronger than this specific one.

However, this also presents the problem that there’s barely any users in their base with your exact configuration, so getting any actual solutions might just take forever.

gspr 5 days ago |

This makes me think we need something like https://www.ietf.org/archive/id/draft-venhoek-tls-client-puz... sooner rather than later. It seems pretty absurd that everyone is running around with bespoke application layer solutions for this.

JoshTriplett 6 days ago |

"This makes your browser appear suspicious because it looks like you're trying to hide your identity."

Yeah, this needs to be burned to the ground.

kordlessagain 6 days ago |

I did warmups in Grub Crawler to fight this: https://deepbluedynamics.com/grub

jameson 6 days ago |

I use LibreWolf which disables creating WebGL API by default and I don't have this issue. Why could be the reasons I'm passing CF turnstile?

undefined 6 days ago |

undefined

mixologic 6 days ago |

Privacy and Bot defense are opposite ends of the same fulcrum. If you permit privacy, the site/service has to trust users to behave and follow the rules. If you track users, then the users have to trust the site/service owners not to abuse that trust. There isn't really an in between.

So if you want privacy, you have to accept poor and sometimes insecure services.

Wowfunhappy 6 days ago |

...in the age of AI, does anyone have an actual solution for keeping out bots while preserving the privacy of humans?

Obviously this is terrible, but I think there's a possibility it's the least terrible option? Another option is IP reputation, which I think is worse. Or scanning a code with a non-rooted phone, which I think is even worse than that!

SilverElfin 6 days ago |

This company makes the internet unusable if you value privacy and use VPNs or whatever. Evil.

gausswho 6 days ago |

Brazenly requiring the abuse of a browser feature's intended use against the user. What an age.

I'd like to hear from someone who worked on WebGL and how they feel about their ambitions being utterly subverted. Remember when the dream was playing games i. the browser?

meszmate 5 days ago |

I don't really understand why verifying I'm human would require fingerprinting my device in the first place. The whole framing feels backwards.

Dwedit 6 days ago |

Adding noise to a canvas element is a mistake anyway. It means you can't develop a proper paint program using web technologies because your browser will mess with the image.

X-Istence 6 days ago |

This is an issue I am running up against on Safari (Version 26.5 (21624.2.5.11.4)) on MacOS 26.5.

I keep getting the turnstile and having to click the "I a human" button.

morpheuskafka 6 days ago |

I'm getting this error on Safari 26.3.1 even without an adblocker extension, and advanced tracking prevention is set to private tabs online.

DR_MING 5 days ago |

It feels like we're moving toward a web where proving you're a human becomes a larger part of the browsing experience.

cdolan 5 days ago |

The battle against the bots is becoming tiring. Stop trying to be a middleman broker of the entire Web, CF

mring33621 5 days ago |

Why does Cloudflare get to decide that it's wrong/bad to hide your identity?

undefined 6 days ago |

undefined

anonym29 6 days ago |

Say no to malware - say no to Cloudflare

elivoncoder 6 days ago |

interesting topic. 3 of my browsers failed that test page. konqueror. and on android, vanadium and cromite.

https://browser-compat.turnstile.workers.dev/

m463 6 days ago |

cloudflare is becoming more and more of a gatekeeper of the public internet.

rg2004 6 days ago |

Question, can we spoof a fingerprint to be random and valid each time?

boesboes 6 days ago |

Cloudflare is just a fucking protection racket. Next we'll need to pay to use services too

zuzululu 6 days ago |

Dont like it but is a reality due to bots

Fokamul 6 days ago |

Please, anyone from EU (US is doomed rofl) create a petition to ban browser-fingerprinting in EU, across all existing browsers.

I'm not good at creating petitions but can happily sign it. Also with stop killing games and anti-chat control.

I can imagine this can get a traction, if it's explained in youtube video to "normal" people.

boywitharupee 6 days ago |

> has been looping indefinitely

this can mean WebContent process is crashing

shevy-java 6 days ago |

I wondered about that too. So they allege that bots require that everyone now has to ID to the big service providers. Very dystopian situation. Skynet is currently winning the war.

J37T3R 6 days ago |

Web3.0 and beyond was a mistake

kykat 6 days ago |

What? Big tech company is evil? No way! I thought cloudflare were good guys...

hanzeweiasa 6 days ago |

[flagged]

Ruslan1095 6 days ago |

[flagged]

ryanshrott 6 days ago |

[dead]

hbwang2076 6 days ago |

[flagged]

348752389 6 days ago |

[dead]

flintenmuschi 5 days ago |

[flagged]

gruez 6 days ago |

This blog post is filled with false assumptions.

>Turns out it's because Cloudflare wants to have a fingerprint of your device via WebGL, the only reason for doing this would be tracking.

> So Cloudflare just banned all WebKitGTK browsers as I guess they put an exception for Safari.

This is false. I ran firefox with:

* hardware acceleration disabled (so software renderer, nothing to fingerprint)

* resistfingerprinting enabled, including letterboxing with default window size

* webgl disabled

* VPN enabled

* In a Windows VM

By all accounts this should be the most suspicious fingerprint ever, but turnstile happily lets me through. If they want to track people, they're doing a pretty bad job. My guess is that OP's browser is getting banned because his WebKitGTK has a weird fingerprint, not because of webgl or whatever.

> Such things are blocked in WebKit, and have been for years. Meaning it's tracking so awful that even Apple would block it, and as far as I can tell it's not the kind of privacy protection you can easily disable in it.

This is also false. Webgl fingerprinting works just fine on Safari. They might try to mitigate it by adding some noise, but that's not so different than what firefox does, and is certainly not "blocked".