-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fingerprinting 2.0: User Agent - follow up to #12097 #12638
Comments
Verification passed on OnePlus 6T with Android 10 running 1.20.85 x64 Beta Build
Verification passed on Samsung Tab A with Android 10 running 1.20.85 x64 Beta Build
|
could someone name an ETA for the UA not containing device name anymore in playstore version? |
It'll be in release 1.20, which is the current beta release, and the next stable release |
Hey, I just installed the new Version and it works very well. Thank you very much. |
I just checked my user agent via DDG and it is reporting my exact device. I am using version 1.21.74 on Android from the Play store.. |
@pilgrim-brave @anthonypkeane did we he hit a bug and mobile / android UA stuff regressed? |
I just updated to Version 1.21.76 and my device model is back in the user agent, unlike to how it was on versions 1.20 |
update to 1.21.77 doesnt resolve this issue... |
The issue that was opened is #14740. It doesn't appear that there has been any work on it yet. |
Yes, we are tracking the issue, and will get it fixed as soon as we finish up the current round of features / development |
So what happened to this issue? It is still a problem. |
The issue was fixed in this PR brave/brave-core#8320 |
@pes10k The issue of unique User Agents still persists. Visit amiunique.org, the user agent and content language are incredibly identifying, everything I've tried results in a unique fingerprint. |
I appreciate the concern, but these are not in practice threats to your privacy, for three reasons
For other, more accurate measures of how fingerprintable you are, I recommend the excellent creepjs site (https://abrahamjuliot.github.io/creepjs/). As you'll see, they report they are able to fingerprint brave with 0% confidence (the "trust score"), despite the sophistication and breath of the fingerprinting techniques they use. The EFF's CoverYourTrack's project also gives an accurate measurement of how fingerprintable Brave is in practice (https://coveryourtracks.eff.org/) Hope this helps |
@pes10k why go through all the trouble of randomizing the content language header and possibly even the agent string when you could just make every Brave users content language header and agent string the same? That is the ultimate anonymity, appearing as everyone else. |
We randomize because every attribute we randomize (without breaking things) provides some umbrella protection over the fingerprinting inputs we can't randomize (w/o breaking things). The blog posts i linked to above explains the rational in more detail. Also as those blog posts note, if we can get a fingerprint to consume a randomized (or "poisoned") input, then that provides much stronger protections than a "make everyone look the same" approach, since it means we can force a different fingerprint on each site and / or session. Again the blog post says more. Finally, for these specific inputs (content language and user agent string), we can't make these specific values the same for everyone without breaking some sites for users; there are sites that use those values for user serving purposes too. Even though we can't make them fixed values, we can (in some cases) add just enough randomness to break the fingerprinter scripts (by rotating fingerprints) but also maintain the user-benefical distinguishing information in the inputs |
@pes10k I see. Thank you for your responses and your effort. |
Description
[Follow up to #12097]
Test plan for both Desktop and Android (per #9190 (comment)):
per @pes10k comment:
i've added a user-agent row to https://dev-pages.brave.software/farbling.html
Things to check:
Original issue description
This is a sub-issue of the larger fingerprint defense reorganization issue: #8787
User Agent String
NavigatorID.userAgent
default protections:
MAX(current minor version number, latest version number as of build)
max protections:
(other notes for future consideration)
In default mode, we could probably get by safely with adding [0, 5] additional whitespace characters, as determined by eTLD+1 seed (only for JS reflected value), but for the first time out, lets be very very conservative with the UA and not make any "clever" changes like that.
Also, we could probably get by with adding [0, 3] additional whitespace characters between UA segments, but again, for the first change, lets be conservative.
The text was updated successfully, but these errors were encountered: