Closed Bug 1978414 Opened 3 months ago Closed 2 months ago

Ship Available Screen Resolution, Processor Count, and Touch Points fingerprinting resistance

Categories

(Core :: Privacy: Anti-Tracking, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
143 Branch
Tracking Status
relnote-firefox --- 143+
firefox143 --- fixed

People

(Reporter: tjr, Assigned: tjr)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 2 obsolete files)

This patch will enable the Available Screen Resolution and Processor Count defenses in PBM and ETP Strict on Firefox Desktop. Processor Count will be reported as 2. Available Screen Resolution will be a fixed height offset on Windows and Mac, and equal to the screen resolution on all other platforms.

The experiment results - which enabled these protections in Normal Browsing Mode also - look within normal range. The only outlier that doesn't look like a random deviation is Tab Reloads, which baseline was 4.80 to 7.72 and in the experiment branches was 5.86 to 8.78 and 5.54 to 10.59 - still I think this is just an outlier like other changes reported - I strongly doubt lying about hardware concurrency meaningfully increased user retention. We could have someone from Data review the results however.

No bug reports were found in Bugzilla or WebCompat reports.

Changes on Android will be forthcoming.

Assignee: nobody → tom
Status: NEW → ASSIGNED
Attachment #9501901 - Attachment description: Bug 1978414: Ship Available Screen Resolution and Processor Count fingerprinting resistance on desktop r?neha → Bug 1978414: Ship Available Screen Resolution, Touch Points, and Processor Count fingerprinting resistance on desktop and android r?freddyb

After discussion, we can ship all three protections to Nightly.

Depends on: 1977836
Summary: Ship Available Screen Resolution and Processor Count fingerprinting resistance → Ship Available Screen Resolution, Processor Count, and Touch Points fingerprinting resistance

Release Note Request (optional, but appreciated)
[Why is this notable]: We are shipping additional fingerprinting protections that alter the behavior of some Web APIs in certain browsing modes.

Putting this flag here to help me remember to help write a release note and edit the SUMO page

relnote-firefox: --- → ?
Pushed by tritter@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/c5ef3944d374 https://hg.mozilla.org/integration/autoland/rev/a85a020008e7 Ship Available Screen Resolution, Touch Points, and Processor Count fingerprinting resistance on desktop and android r=freddyb
Pushed by csabou@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/dc0700abe277 https://hg.mozilla.org/integration/autoland/rev/2ea6d2269b5c Revert "Bug 1978414: Ship Available Screen Resolution, Touch Points, and Processor Count fingerprinting resistance on desktop and android r=freddyb" for causing bc failures on browser_fingerprintingWebCompat.

Backed out for causing bc failures on browser_fingerprintingWebCompat.

Push with failures

Failure log

Backout link

Flags: needinfo?(tom)

This is something that I wanted to do for a while. In tests where we only care if a RFP target is active or not in XYZ context, we always check for the effect of that particular RFP target. In this particular case, this approach caused a conflict between ScreenAvail and ScreenAvailToResolution. Both modify screen properties, but in a different way, but we aren't interested in how they work in browser_fingerprintingWebCompat.js file. We are just interested in if it is active or not. So, in this patch, I'm exposing active RFP targets to be able check them directly instead of observing their effects.

Pushed by tritter@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/9350cf844726 https://hg.mozilla.org/integration/autoland/rev/6bed22fdd2fd Ship Available Screen Resolution, Touch Points, and Processor Count fingerprinting resistance on desktop and android r=freddyb
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 143 Branch
Blocks: 1980622

Hi Tom, can you please add a suggested release note for this when you get a chance? Thanks!

I don't write release notes very often, does this fit the style?

Firefox has expanded its Fingerprinting Protection by reporting constant values for several more attributes of user's computers. More Details

Flags: needinfo?(tom)

That'll work for now, thanks! Added to the Fx143 relnotes.

Regressions: 1982336

Comment on attachment 9503967 [details]
Bug 1978414: Introduce activeRFPTargets and check active targets through it rather than checking for its effects. r?tjr

Revision D259226 was moved to bug 1980622. Setting attachment 9503967 [details] to obsolete.

Attachment #9503967 - Attachment is obsolete: true
QA Whiteboard: [qa-triage-done-c144/b143]
Regressions: 1984132

Bug 1984132 benefits from spoofing to 3+ and 5+ it seems.

(Andy Leiserson from comment #6)
With dom.maxHardwareConcurrency set to 2, Meet auto-selects send resolution of 180p. With 3 or 4, it selects 360p. With 5, it selects 720p.

Depends on: 1984333

Copying it here because I think it is interesting (and relevant).

Interestingly, Safari, by default, does what we are doing in bug 1984333. And as an added privacy, they do 1 + random(min: 0, max: 63) based on privacy settings

Attachment #9503877 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: