zlacker

F-Droid Fake Signer PoC

submitted by pabs3+(OP) on 2025-01-03 22:47:11 | 234 points 90 comments
[view article] [source] [go to bottom]

NOTE: showing posts with links only show all posts
◧◩
6. gruez+mb[view] [source] [discussion] 2025-01-04 00:31:28
>>kuschk+X8
>The only reason this didn't turn into a disaster was pure luck.

Is it? Or is it a case of "It rather involved being on the other side of this airtight hatchway"[1]? The apk signature done by fdroidserver seems totally superfluous. Android is already going to verify the certificate if you try to update an app, and presumably whatever upload mechanism is already authenticated some other way (eg. api token or username/password), so it's unclear what the signature validation adds, aside from maybe preventing installation failures.

[1] https://devblogs.microsoft.com/oldnewthing/20060508-22/?p=31...

◧◩
21. pserwy+ty[view] [source] [discussion] 2025-01-04 04:38:03
>>bsimps+nc
While this is true of many projects, F-Droid has a track record of sourcing funding for security audits. To date there have been at least three audits, in 2015, 2018, and 2022.

https://www.opentech.fund/security-safety-audits/f-droid/

https://f-droid.org/2018/09/04/second-security-audit-results...

https://f-droid.org/2022/12/22/third-audit-results.html

I was involved in addressing in issues identified in the first one in 2015. It was a great experience, much more thorough than the usual "numerous static analysers and a 100 page PDF full of false positives that you often receive.

◧◩◪
23. Nullab+lE[view] [source] [discussion] 2025-01-04 06:05:35
>>gruez+mb
> The apk signature done by fdroidserver seems totally superfluous. Android is already going to verify the certificate if you try to update an app, and presumably whatever upload mechanism is already authenticated some other way (eg. api token or username/password), so it's unclear what the signature validation adds, aside from maybe preventing installation failures.

If you try to update the app. Anyone installing the app from scratch will still be vulnerable. Effectively, both cases are Trust On First Use, but AllowedAPKSigningKeys moves the First Use boundary from "the first time you install the app" to "the first time F-Droid saw the app". Izzy wrote a blog post about it a while ago.[0]

> and presumably whatever upload mechanism is already authenticated some other way (eg. api token or username/password)

IzzyOnDroid (and, I believe, F-Droid) don't have their own upload UI or authentication, they poll the upstream repo periodically.

[0]: https://f-droid.org/2023/09/03/reproducible-builds-signing-k...

◧◩◪
25. yjftsj+7G[view] [source] [discussion] 2025-01-04 06:31:52
>>Dalewy+ve
> The answer is that, no, nobody akshuarry audits anything. This has been proven time and time again, especially in the last few years.

Sooo how about the audits linked in >>42592444 ?

◧◩
27. KennyB+sJ[view] [source] [discussion] 2025-01-04 07:25:57
>>mappu+ib
Well, this is pretty concerning all on its own:

> Instead of adopting the fixes we proposed, F-Droid wrote and merged their own patch [10], ignoring repeated warnings it had significant flaws (including an incorrect implementation of v1 signature verification and making it impossible to have APKs with rotated keys in a repository).

This concerns me more than the vulnerabilities themselves. It's a pretty serious failure in leadership and shows that F-Droid is still driven by egos, not sound software engineering practices and a genuine interest in doing right for the community.

F-Droid has numerous issues:

* glacially slow to release updates even when security patches are released

* not enforcing 2FA for developer accounts

* no automatic vulnerability or malware scanning

...and more problems: https://privsec.dev/posts/android/f-droid-security-issues/

◧◩
29. udev40+VJ[view] [source] [discussion] 2025-01-04 07:30:39
>>Retr0i+U7
A malicious app can bypass the certificate pinning feature to install the app. More info: https://gitlab.com/fdroid/fdroidserver/-/issues/1128
◧◩◪◨
31. ignora+4K[view] [source] [discussion] 2025-01-04 07:32:22
>>yjftsj+WF
> ...owing to the horrific mess that is their kernel situation.

Do you mean OEM drivers or the Android Kernel, specifically?

Google invests quite a bit on hardening the (Android Commons) Kernel including compile-time/link-time & runtime mitigations (both in hardware & software).

Ex: https://android-developers.googleblog.com/2018/10/control-fl...

◧◩◪◨⬒
56. rollca+1m1[view] [source] [discussion] 2025-01-04 16:04:21
>>Y_Y+5j1
Then why no such efforts are being pursued for PGP(GPG) nowadays?

signify[1] is approachable at least for the power users - I could print out that man page on a T-shirt. HTTPS is ubiquitous and easy, thanks to ACME & Let's Encrypt. E2EE with optional identity verification is offered in mainstream chat apps.

And of course there are usability improvements to GPG, being made by third parties: Debian introduced package verification a couple decades ago, Github does commit verification, etc. What's to stop e.g. Nautilus or Dolphin from introducing similar features?

[1]: https://man.openbsd.org/signify

◧◩◪◨⬒⬓
63. Y_Y+mu1[view] [source] [discussion] 2025-01-04 17:13:32
>>rollca+1m1
> Then why no such efforts are being pursued for PGP(GPG) nowadays?

I wonder why there aren't more, but there are some, for example Proton's efforts towards encrypted email.

https://proton.me/support/how-to-use-pgp

(I won't mention the relative shortcomings of HTTPS and E2E chat apps here.)

◧◩◪◨⬒⬓
65. gruez+bw1[view] [source] [discussion] 2025-01-04 17:27:42
>>hnacco+Yu1
>In a previous post you said that - in case of matching builds - the dev's version is used

Which post are you talking about? >>42592150 was made by FuturisticGoo, not me.

Also, the wording on f-droid suggests the version that f-droid hosts is built by them, rather than a version that's uploaded by the dev. If you go on any app and check the download section, it says

> It is built by F-Droid and guaranteed to correspond to this source tarball.

◧◩◪◨⬒⬓
71. NotPra+NQ1[view] [source] [discussion] 2025-01-04 20:23:53
>>hnacco+Yu1
Android will block any update to an existing app that wasn't signed with the same signature. The benefit of using the developer's signature (even if the app is built by F-Droid) is that the F-Droid release of the app is not treated as a "different app" by the Android OS, and thus it can be updated by other app stores or through direct APK releases from the developer. If the user chooses to stop using F-Droid in the future, they can still receive updates through other means without uninstalling and reinstalling the app.

It also allows the user to place a little less trust on F-Droid because the developer, as well as F-Droid, must confirm any release before it can be distributed. (Now that I think of it, that probably creates an issue where if malware somehow slips in, F-Droid has no power to remove it via an automatic update. Perhaps they should have a malware response or notification system?)

More: https://f-droid.org/2023/09/03/reproducible-builds-signing-k...

◧◩◪◨⬒
73. yjftsj+4Y1[view] [source] [discussion] 2025-01-04 21:38:56
>>ignora+4K
The drivers; last I heard, literally every Android device on the market was using a forked kernel in order to support its hardware. And Google keeps trying things to improve that situation, but... https://lwn.net/Articles/680109/ was ~9 years ago and since then not even Google themselves have managed to ship a device running a mainline kernel. Supposedly it should get better with their latest attempt to just put drivers and user space, but 1. I haven't heard of any devices actually shipping with an unmodified kernel, probably because 2. AIUI that doesn't cover all drivers anyways.
◧◩◪◨
75. ranger+zc2[view] [source] [discussion] 2025-01-05 00:46:49
>>rollca+Ob1
https://www.latacora.com/blog/2019/07/16/the-pgp-problem/
[go to top]