3 ms·
I tend to disagree with your statements. The codebases provide enough evidence that this is not the case. > - Leanplum seems to be there for A/B testing and do
by cookiengineer 6y ago
I tend to disagree with your statements. The codebases provide enough evidence that this is not the case.
> - Leanplum seems to be there for A/B testing and doesn't have access to anything sensitive.
Leanplum has access to at least geolocation and the device id (See [1]), due to their geofencing A/B testing feature. Combine that with an IP and you can uniquely identify any user. Additionally, Leanplum sends its messages via their own Firebase Provider [2].
> - Firebase is partially unavoidable (GCM)
Firebase Push Notifications are necessary since Android 10, and only if your application consistently runs in the background. If you have e.g. a download notification with a high priority displayed, your app is allowed to continue to run without any firebase, at all. Source: The Telegram FOSS fork does this, actually. See [3] for details
> - Google Safe Browsing seems to be designed in a way that makes it nearly impossible to violate privacy, even if you wanted to.
Okay, now it's time to refine this in context of "Firefox Klar", "Firefox Focus" or say, the Fenix codebase(s). I'm focussing on Fenix here only, because all current Firefox products for mobile rely on it as an engine.
(Usually the same metrics are included in Firefox for Desktop, too, but this post would explode this comment; see spywarewatchdog or similar audits for more details on it, which still hasn't been improved over the years by mozilla.)
- Mozilla implemented their own ads distribution system that hijacks google ads on pages and replaces the id with the one that was specifically generated for the web browser (after first opening the web browser) [4].
- Mozilla's Safebrowsing uses a generated hash, that is used specifically to identify a single device [5].
- The server for both of those hash URLs is hosted by Alibaba in CHINA, which is certainly a GDPR "violation by the book", as the server is contacted for everyone, not only people that live within China; every time the Browser is online again; even in an interval. (also [5])
- Fenix also adds Tab interactions and sends the data to their telemetry service; including the URL and history of that specific tab [6]
> On top of that, FF takes extra measures to protect privacy "just in case".
As my links prove: No, they don't. For example, they activate Leanplum's device id specific tracking even if the user is outside the geofences, so they track users even if they already know it's unnecessary. [7]
=========
[1] https://github.com/Leanplum/Leanplum-Android-SDK https://github.com/Leanplum/Leanplum-Android-SDK (especially the AndroidSdkCore is relevant here, assuming the discussion of the "most privacy respecting" featureset)
[2] https://github.com/Leanplum/Leanplum-Android-SDK/blob/master/AndroidSDKFcm/src/main/java/com/leanplum/LeanplumPushFirebaseMessagingService.java https://github.com/Leanplum/Leanplum-Android-SDK/blob/master...
[3] https://github.com/Telegram-FOSS-Team/Telegram-FOSS/blob/master/Notifications.md https://github.com/Telegram-FOSS-Team/Telegram-FOSS/blob/mas...
[4] https://github.com/mozilla-mobile/fenix/blob/5ad714db864bce7a3defff4a82c6838b6e85f290/app/src/main/java/org/mozilla/fenix/search/telemetry/ads/AdsTelemetry.kt https://github.com/mozilla-mobile/fenix/blob/5ad714db864bce7...
[5] https://github.com/mozilla-mobile/fenix/blob/686f7bd7c65cbaa8fa8c7dd0b390cd6adf11e079/app/src/geckoNightly/java/org/mozilla/fenix/engine/GeckoProvider.kt#L24 https://github.com/mozilla-mobile/fenix/blob/686f7bd7c65cbaa...
[6] https://github.com/mozilla-mobile/fenix/blob/556fea5591acbde48b9659900bf023294c710c6b/app/src/main/java/org/mozilla/fenix/TelemetryMiddleware.kt https://github.com/mozilla-mobile/fenix/blob/556fea5591acbde...
[7] https://github.com/mozilla-mobile/fenix/blob/41a92a8d8b316446e21a2fc8a6eadec43e6f4799/app/src/main/java/org/mozilla/fenix/components/metrics/LeanplumMetricsService.kt#L224-L242 https://github.com/mozilla-mobile/fenix/blob/41a92a8d8b31644...
- franga2000 6y ago> Leanplum, location, "device id" Doesn't have access to location and the unique id is specific to leanplum so it can't be tied to anything else. See [1] for an explanation (the source seems to match from my quick look) > GCM Firefox has certain real-time features (like sending tabs) that wouldn't be feasible without cloud messaging. Telegram FOSS and many other apps use workarounds that are less reliable, worse UX and drain battery anywhere from a bit more to HOLY SHIT WHERE DID THOSE 4500mAh GO? (source: Telegram FOSS on my OP3T) If you want to propose a better solution, I'm sure the 3 remaining devs at Mozilla would love to hear it. > Okay, now it's time to refine this in context of "Firefox Klar", "Firefox Focus" or say, the Fenix codebase(s). ... Sure, let's talk about Fenix - what is now available in G Play as the standard "Firefox for Android". I don't use Klar or Focus, but they use much of the same code, so all of this is quite general. > - Mozilla implemented their own ads distribution system that hijacks google ads on pages and replaces the id with the one that was specifically generated for the web browser The link you provided doesn't make that clear and neither do you. What "id" are you referring to? What is its significance and where in the code is it replaced? > - Mozilla's Safebrowsing uses a generated hash, that is used specifically to identify a single device The link you give makes no sense. The URL at the marked line is the URL from which hashes of unsafe URLs are fetched (for China). The hashes are (anonymized) URLs, not devices, and they are received, not sent. If what you're concerned about is "SAFEBROWSIND_ID" in that string, it is mapped to an implementation-specific not instance-specific identifier, as is clearly required by Google's API [2] and is in fact taken from a the about:config entry "browser.safebrowsing.id" that you can check for yourself only contains something generic like "navclient-auto-ffox". > - The server for both of those hash URLs is hosted by Alibaba in CHINA ... Only for Chinese builds of the engine. See the if statement at [3] and explanation of the config option at [4]. The code you linked simply overrides the default SafeBrowsing API URL for the Chinese market as the original URL is not available there. The browsers treats it identically as the original, so all the client-side privacy guarantees are still there. > > On top of that, FF takes extra measures to protect privacy "just in case". > As my links prove: No, they don't That part of my post was still referring to SafeBrowsing, specifically the part where they separate the cookie jar and inject some extra noise. [5] explains the whole process quite well (it's similar to how HaveIBeenPwned works) > For example, they activate Leanplum's device id specific tracking even if the user is outside the geofences, so they track users even if they already know it's unnecessary. [7] But they're not "tracking" them in any significant way. My first link outlines this quite well. As for why those locales are hard-coded, It's probably because those are the biggest markets and will usually be the first in A/B any rollouts, so using geofences would just be wasteful as they'd always return true anyways. Either way, nothing nefarious there. [1] https://github.com/mozilla-mobile/fenix/blob/b8de7079a963efb140ed318d876f23a17a0e3d9e/docs/mma.md https://github.com/mozilla-mobile/fenix/blob/b8de7079a963efb... [2] https://developers.google.com/safe-browsing/v4/reference/rest/v4/ClientInfo https://developers.google.com/safe-browsing/v4/reference/res... [3] https://github.com/mozilla-mobile/fenix/blob/master/app/src/geckoNightly/java/org/mozilla/fenix/engine/GeckoProvider.kt#L63 https://github.com/mozilla-mobile/fenix/blob/master/app/src/... [4] https://github.com/mozilla-mobile/fenix/blob/baaa85db804a09635500eafeb40548a0adb61cb3/app/src/main/java/org/mozilla/fenix/Config.kt#L60 https://github.com/mozilla-mobile/fenix/blob/baaa85db804a096... [5] https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-in-firefox/ https://feeding.cloud.geek.nz/posts/how-safe-browsing-works-...