Improve fingerprinting protections in Brave IOS to better match Safari


Starting with WebKit 17 Safari started supporting increased fingerprinting protection in Private Browsing, injecting noise into the 2D Canvas, WebGL and WebAudio APIs. Furthermore, they hardcode some screen metrics into a general value used by all similar devices (so all iPhones look the same for example), reducing uniqueness. Now, starting with IOS 26 they’re also preventing fingerprinters from reliably accessing Hardware concurrency and they’re turning on the “Advanced Tracking and fingerprinting protection” settings on in normal browsing by default for all users.

Brave obviously still has superior tracking prevention capabilities with Brave shields (and Brave users on IOS are always more unique by virtue of the brave HTTP header, simply because the vast majority of IOS users still use Safari) but I think porting these fingerprinting protection tools and features to Brave on IOS would bring it significantly closer in terms of functionality to its Android, Windows and MacOS versions.

As it stands, testing with Brave on CreepJS, EFFs Cover Your Tracks or Browserleaks (with Brave shields set to Aggressive and Fingerprinting protection on of course) has a static, device specific, uncommon fingerprint for 2D canvas, WebGL and WebAudio, where as Safari has them all randomized.