brave / brave-browser

Brave browser for Android, iOS, Linux, macOS, Windows.
https://brave.com
Mozilla Public License 2.0
17.65k stars 2.3k forks source link

Probe for Brave-owned domains instead of Google ones when user selects custom DoH provider #38555

Open ShivanKaul opened 4 months ago

ShivanKaul commented 4 months ago

Description

As discussed in https://github.com/brave/brave-browser/issues/38058, when the user chooses a custom DoH provider, Brave asks the new DoH provider to resolve gstatic.com and google.com. Importantly, the connection is not actually made to these domains, it's simply a test query that tells the DoH provider that some Chromium-based browser has selected it to be its custom DoH provider. This is not a privacy leak, but it might be worth patching out just for appearance sake ("why is Brave doing a DNS query for google domains?")

See: https://github.com/GrapheneOS/Vanadium/blob/main/patches/0064-use-grapheneos.network-when-verifying-DNS-over-HTTPS.patch

Steps to reproduce

Follow the steps on https://github.com/brave/brave-browser/issues/38058#issuecomment-2118199829

Actual result

DoH query for google and gstatic

Expected result

DoH query for a Brave-owned domain

Reproduces how often

Easily reproduced

Desktop Brave version (brave://version info)

All

Android device

All

Channel information

Reproducibility

Miscellaneous information

No response

celenityy commented 4 months ago

If it isn't high maintenance and doesn't have any real downsides, then yeah I agree, I'd love to see this for the extra peace of mind. Would it be possible to just use Vanadium's patch and change the domains to Brave ones? IANAL but my understanding is that Vanadium's GPL 2.0 is compatible with Brave's MPL 2.0. Would be low maintenance that way. @ShivanKaul

ShivanKaul commented 4 months ago

The patch itself is very trivial, it's the maintenance of the patch that's the problem :) if Chromium changes code underneath us that's yet another conflict to resolve for our Chromium rebase team, which is why our coding guidelines suggest patches as the last resort. See https://github.com/brave/brave-browser/wiki/Patching-Chromium

celenityy commented 4 months ago

@ShivanKaul I see your point. That's the main reason why I suggested using the Vanadium patch, since the GrapheneOS team actively maintains and rebases immediately when a new Chromium release is available, and even before Brave does. (For instance, Vanadium shipped the latest Chromium release 19 hours ago, Brave's shipped 9 hours ago). This way if there are any issues for the rebasing team, they could always just reference Vanadium's patch.