-
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
Desktop :: Implement "Enabling Sites to Determine Brave" Spec #8216
Comments
Please set default to enabled. |
@FatBirdie we'll share more details as the spec (not public, it's on our G-Drive as mentioned) gets hardened As it stands, this would be something always available 😄 |
(BELOW IS OUTDATED) no longer relevant, but here for posterityHere's the implementation matching what our spec (private) captures: navigator.getUserAgent().then((response) => {
if (response.brand === "Brave") {
// browser is Brave
}
});
|
Patches some client hints code but does NOT enable client hints. No additional info is specified (arch, model, platform, etc) Fixes brave/brave-browser#8216
Is this 'hints' option default on or off? |
@FatBirdie client hints is still turned off. The patch I did effectively only allows this one method and nulls out the other fields (architecture, model, platform, etc) |
@bsclifton that doesn’t seem to match what I’m observing in the Isn’t the Or does Brave intend to not ship support for the
It’s still a draft specification not in the standards track. The spec deprecates the |
@da2x I can't speak to the standards aspect of this, but the work that was done in my pull request is separate from the I wasn't aware we are supporting this header yet? Did you have to compile with |
I just re-read the relevant parts of the spec. These should definitely be the same value.
Just enable |
Brave on Android identifies as Correction: Brave Beta on Android also identifies as |
@bsclifton, with that flag enabled on the current stable version |
@da2x thanks for the input- after discussion, we've made some changes 😄 And the PR I created is updated to implement that. Please check out the JS Bin for example usage: |
@bsclifton so that took an unexpected direction. Is the I don’t believe that adding the |
@da2x I believe the idea would be that we could extend this attribute and add more methods if necessary. But starting off with just the 1. And correct, clients could potentially just check for |
I agree with @da2x that it seems silly to add |
@bridiver the thinking here is that its very likely that we'll want to add more JS functionality in the future, and having a single place to hang them off makes sense. (otherwise the chances of collisions on |
Will those pieces of functionality not be expected to be somewhat on a standards track? The benefit to not exposing Brave specific functionality would reduce the ability to fingerprint the difference in Brave over any other Chromium based browser. I'm interested why this also couldn't be agreed with other browsers also. For example the original API promise could resolve as "chrome" in tor/private browsing mode to reduce fingerprinting. |
@pes10k I'm saying it should just an empty object for now. That doesn't prohibit us from adding stuff later |
We're not concerned about Brave being distinguishable from Chrome or other browsers. Folks can easily distinguish already, and will be able to more so going forward. For fingerprinting concerns, our only goal (and the only goal we can reasonably hope to achieve) is to keep Brave users from being distinguishable from each other.
I doubt that we'll be proposing anything like this for standards track anytime soon. FWIW, Client Hints UA is not standards track either currently (its all WICG).
@bridiver I have no strong feeling about this either way other than the precedent it would set. This was proposed weeks ago, and no one objected despite several last calls for comment, and continued debating over the shape of this extremely minor feature has meant this tiny thing has taken weeks to ship, and its needed on all platforms w/in two weeks or so. |
along the lines of what @jonathanKingston is saying, why |
Verification passed on
Verification passed on
Verified the test plan from the description Verified passed with
|
So did I get this right, you've implemented this detection without any way to disable it? |
@2b what is your specific concern? As @pes10k mentioned we are working on a lot of projects to make Brave users indistinguishable from other Brave users, but hiding the fact that you're using Brave is very difficult because we are intentionally blocking some features that Chrome provides, among other things. |
@bridiver correct me if I'm wrong but up until now, with brave-related stuff like shields and rewards disabled, it was possible to tell with certainty only that someone uses Chromium-based browser. I understand it's not brave's privacy threat model to keep brave indistinguishable from chrome, as @pes10k mentioned, but don't you think it would be harder to track someone across Chromium users rather than just Brave users, considering the amount of them? Especially in Tor-windows. |
@2b thats not correct. While we sent the Chromium UA, its easy for folks to tell Brave from Chrome/Chromium/etc by (for example) checking to see if the FP apis we modify work as expected, or if the referrer header is as expected, or any of the other features mentioned here https://github.com/brave/brave-browser/wiki/Deviations-from-Chromium-(features-we-disable-or-remove). Because of how fingerprinting attacks are carried out, there is no privacy benefit from being different from Chromium in known ways, and then adding an additional explicit way of knowing its Brave. Put diff, theres no change in the anonymity sets. Happy to share more if the thinking is still unclear, but fwiw, you can be confident that this change does not affect how identifiable you are when using Brave. |
You’ll waste less CPU cycles on websites trying to fingerprint your browser to work out if you’re using Brave or not. |
Description
Please implement the "Enabling Sites to Determine Brave" Spec
Search for "Enabling Sites to Determine Brave" in G-Drive for the Spec
(also described in below post)
cc @snyderp
Android Link: #8215
iOS Link: brave/brave-ios#2323
Test plan
The text was updated successfully, but these errors were encountered: