News for hackers. Stuff that matters.
Re:Trust is good, control is better: Reproducible builds at ... by 75dvtwin on Saturday July 20, 2019 @09:04AM (#20485505)
WRT to this bit:

> truly every single app is built from source and therefore F-Droid’s build infrastructure is highly secured, with only Ciaran Gultnieks, who founded the project almost nine years ago, having access to it.

What assurances (including legal) are there (besides best intentions) that Ciaran Gultnieks is the only one that has access to the infrastructure that builds F-droid?

Also what happens if Ciaran no longer works on the project?

Re:Trust is good, control is better: Reproducible builds at ... by zimbatm on Saturday July 20, 2019 @10:20AM (#20485904)
Because the builds are reproducible, it means that anyone can re-build the projects and verify that the output is the same, independently. That's the beauty of it, it's the only system that doesn't need a chain of trust.

That being said, I don't know enough about the project to say if there are actually people doing the verification work.

Re:Trust is good, control is better: Reproducible builds at ... by akerl_ on Saturday July 20, 2019 @12:24PM (#20486660)
I think it would be more precise to say that reproducible builds rely on asynchronous trust: individual users trust the pre-built packages on the expectation that some users are building from source and comparing against the package results.

It’s worth noting here that it’s not sufficient for some users to build from source for their own usage: they have to additionally compare their build results against the version served by the repository, and then they have to publicize if there’s a mismatch.

As somebody who builds many things from source, but has never attempted to validate a packaged repo using my results, I’m curious: does anybody here perform this validation?

Re:Trust is good, control is better: Reproducible builds at ... by bovine3dom on Saturday July 20, 2019 @01:37PM (#20487156)
Mozilla's add-on reviewers do. I know because our build wasn't totally reproducible and they made us make it so.
Re:Trust is good, control is better: Reproducible builds at ... by rectang on Saturday July 20, 2019 @10:13AM (#20485858)
> what happens if Ciaran no longer works on the project?

You get a situation like QuadrigaCX when CEO Gerald Cotten passed away and 190 USD in bitcoin became unavailable.

https://www.quadrigacxtrustee.com/

Or, to address the problem, something like Shamir's Secret Sharing algorithm could help.

Re:Trust is good, control is better: Reproducible builds at ... by MaxBarraclough on Saturday July 20, 2019 @12:45PM (#20486827)
Re:Trust is good, control is better: Reproducible builds at ... by Avamander on Saturday July 20, 2019 @12:21PM (#20486633)
I don't know why the downvotes, the bus factor in this case is 1 and that's horrible.
Re:Trust is good, control is better: Reproducible builds at ... by codewiz on Saturday July 20, 2019 @03:03PM (#20487658)
Where does HN display the downvote count for a post?
Re:Trust is good, control is better: Reproducible builds at ... by vinceguidry on Saturday July 20, 2019 @05:36PM (#20488534)
You can get a sense for how much a post is being downvoted by the shade of gray the post is displayed with. The closer to white, the more downvotes. HN stopped greying out your own posts, so it's not easy to determine exactly how the behavior is implemented.

Personally, I find the greying of a post on even a single downvote to be quite unfortunate and easily abused. I feel a post should only start greying on the second downvote.

Re:Trust is good, control is better: Reproducible builds at ... by brewdad on Saturday July 20, 2019 @06:53PM (#20488832)
I find it useful and will upvote gray posts that I feel have been downvoted over disagreement rather than truly deserving the downvote. It's probably my most common reason for upvoting.
Re:Trust is good, control is better: Reproducible builds at ... by akerl_ on Sunday July 21, 2019 @06:10AM (#20490678)
It’s potentially worth noting that downvoting over disagreement is considered in-line with the rules: https://news.ycombinator.com/item?id=17996858
Re:Trust is good, control is better: Reproducible builds at ... by ardani on Saturday July 20, 2019 @04:42PM (#20488244)
I don't think downvote counts are shown, even to high-karma posters.
Re:Trust is good, control is better: Reproducible builds at ... by Hitton on Saturday July 20, 2019 @10:19AM (#20485897)
The part about Signal is inaccurate. Signal actually offers reproducible builds on their website, they don't want to publish on F-Droid at this time precisely because it wouldn't be signed by their own key, but by F-Droid's which would now just add one more party who would have to be trusted.
Re:Trust is good, control is better: Reproducible builds at ... by Boulth on Saturday July 20, 2019 @01:11PM (#20486985)
> they don't want to publish on F-Droid at this time precisely because it wouldn't be signed by their own key

Actually developers can sign with their own key if the build is reproducible (in an FDroid build system) and F-Droid would have no issues with distributing this app.

See the diagram here: https://f-droid.org/en/docs/Reproducible_Builds/

Re:Trust is good, control is better: Reproducible builds at ... by ardani on Saturday July 20, 2019 @04:39PM (#20488231)
Let me get this straight, this does not involve handing private keys to F-Droid? The app is verified reproducible minus the signature?

AFAIK it should work that way but I couldn't tell from the diagram and skimming the text.

Re:Trust is good, control is better: Reproducible builds at ... by Boulth on Sunday July 21, 2019 @03:05AM (#20490292)
Yes, F Droid builds it itself. Then compares with your build minus the signature. If it's the same it publishes with your signature. No need for any private key handling.
Re:Trust is good, control is better: Reproducible builds at ... by upofadown on Saturday July 20, 2019 @12:49PM (#20486850)
How hard have the Signal people tried? The article specifically says that a reproducible build could be signed by the originator:

>If Signal would be built reproducibly, everyone including F-Droid could check whether the app has been built straight from its source code and could then include it in F-Droid’s store

Re:Trust is good, control is better: Reproducible builds at ... by akerl_ on Saturday July 20, 2019 @01:10PM (#20486979)
It’s not really a matter of “trying”. Signal’s issue has always been that regardless of reproducible builds, the packages served by F-Droid are signed by F-Droid, not the developer (Signal, in this example). I’m not sure what they could do on their end to change that practice from F-Droid.
Re:Trust is good, control is better: Reproducible builds at ... by jacoblambda on Saturday July 20, 2019 @01:31PM (#20487120)
F-droid has a method for serving upstream signed APKs along with F-droid signed APKs as well as a method for exclusively serving upstream signed APKs.
Re:Trust is good, control is better: Reproducible builds at ... by akerl_ on Saturday July 20, 2019 @01:43PM (#20487193)
Interesting; TIL. Do you happen to have a link handy for the docs on setting that up?
Re:Trust is good, control is better: Reproducible builds at ... by ardani on Saturday July 20, 2019 @04:40PM (#20488234)
A nephew comment posted the docs:

https://f-droid.org/en/docs/Reproducible_Builds/

Re:Trust is good, control is better: Reproducible builds at ... by throwaway2048 on Saturday July 20, 2019 @12:57PM (#20486900)
Judging by signals history of apathy and hostility towards other open source projects and distributions, my guess would be "they haven't tried at all".
Re:Trust is good, control is better: Reproducible builds at ... by bubblethink on Sunday July 21, 2019 @02:44AM (#20490253)
This attitude is tiring. F-droid is fine and appreciated, but I really wouldn't want anything critical (say a journalist or whistelblower) to depend on it. If you have to depend on f-droid doing builds, there are no guarantees (it's all best-effort). Firefox and its flavours are routinely outdated. Firefox klar(focus) was outdated for six months because they couldn't build it. Now, let's say that f-droid is poor and run by hobbyists, and upstream ought to do better FOSS builds. Even with that, they don't even have the bandwidth to serve packages. They have one main server which is routinely swamped. It's a struggle to download anything from f-droid reliably. They added mirrors recently, but the main server is still the bottleneck without which the mirrors are useless.
Re:Trust is good, control is better: Reproducible builds at ... by chacha2 on Sunday July 21, 2019 @12:39PM (#20492152)
So a journalist or whistle-blower should use Play Store instead? You can put any repository you want on F-Droid and it'll alert you when there's new updates, that's much better than just having the apk.

> Firefox klar(focus) was outdated for six months because they couldn't build it.

A build that can't be reproduced is also a security threat.

Re:Trust is good, control is better: Reproducible builds at ... by bubblethink on Sunday July 21, 2019 @04:32PM (#20493487)
>So a journalist or whistle-blower should use Play Store instead?

Of course. There is nothing wrong with the play store per se in this context other than it not being FOSS.

>A build that can't be reproduced is also a security threat.

No. That's not the issue. F-droid has its own requirements which basically boil down to building software in their own debian VM with no/limited external software. That's an orthogonal engineering issue unrelated to security outside this narrow scope. There is a lot of upstream software that cannot be 'built' by f-droid. It can demonstrably be built if you follow the upstream's README.

Re:Trust is good, control is better: Reproducible builds at ... by southerntofu on Monday July 22, 2019 @09:59AM (#20498011)
> There is nothing wrong with the play store per se in this context other than it not being FOSS.

Well, the store itself isn't free-software. But the software it distributes also isn't free software and is many times crapware/malware, without any human review. F-Droid has "AntiFeatures" tags on applications, and while these could be better, they're already more informational for end-users than blindly downloading/running programs : https://f-droid.org/wiki/page/Antifeatures

Then, there's also the problem that Google Play Store relies on Google Play Services. So if you don't want to install Google's universal backdoor on your phone (which Google used last year to push silent config updates on some phones, wtf?) you can't use that. Or you have to use F-Droid to setup a Play Store scrapper such as Yalp or Aurora.

Re:Trust is good, control is better: Reproducible builds at ... by eropple on Saturday July 20, 2019 @10:53AM (#20486087)
I'm not super familiar with F-Droid, but isn't that effectively the solution they have for Google Play and the iOS App Store?
Re:Trust is good, control is better: Reproducible builds at ... by maxerickson on Saturday July 20, 2019 @12:06PM (#20486525)
Developers sign their apps with their own keys for the app stores. F-Droid builds and signs the apps they distribute.

https://f-droid.org/en/docs/FAQ_-_App_Developers/#what-about...

Re:Trust is good, control is better: Reproducible builds at ... by kuschkufan on Saturday July 20, 2019 @01:22PM (#20487058)
Google is now offering to sign apps for developers themselves.

https://support.google.com/googleplay/android-developer/answ...

I wonder when it becomes mandatory and hope it doesn't.

Re:Trust is good, control is better: Reproducible builds at ... by aasasd on Saturday July 20, 2019 @01:54PM (#20487258)
I feel like current understanding of reproducible builds stops short of solving the problem, particularly because I don't quite see users religiously building and comparing the packages, especially hundreds of them.

A practical solution, IMO, would be several organizations running and publishing the builds—i.e. several independent F-Droids. Then, a few interested people could rather trivially automatically download the binaries and compare them. If one of the ‘stores’ gets compromised, a mismatch in binaries would indicate that.

This implies that versions should be built fully automatically from updated sources, without action on the part of the authors that is specific to the stores.

Edit: the idea of distributed builds, mentioned in the article, is similar—but IMO it's still unlikely that people will spend resources on apps that they personally don't use.

Re:Trust is good, control is better: Reproducible builds at ... by Foxboron on Sunday July 21, 2019 @07:06AM (#20490800)
>A practical solution, IMO, would be several organizations running and publishing the builds—i.e. several independent F-Droids. Then, a few interested people could rather trivially automatically download the binaries and compare them. If one of the ‘stores’ gets compromised, a mismatch in binaries would indicate that.

This idea has been discussed for years in the reproducible builds project. There has been some progress on this part on the Debian side of things, and you can in practice deploy rebuilders and make APT communicate and compare signed attestations.

Lukas from NYU did a presentation during miniDebConf in June. https://www.youtube.com/watch?v=hbHa4OFv7Qo

Disclaimer: I worked on this project and contribute to the reproducible builds project.

Re:Trust is good, control is better: Reproducible builds at ... by brachi on Saturday July 20, 2019 @02:21PM (#20487398)
but isn't the target users of F-droid developers? E.g. someone who could build things from scratch if they decide to go beyond trusting the signature?
Re:Trust is good, control is better: Reproducible builds at ... by aasasd on Saturday July 20, 2019 @11:12PM (#20489759)
No. I myself use F-Droid, and my knowledge of Android development consists of editing a line in an XML file in AnkiDroid and rebuilding the app with Gradle like the readme says.

And even if the share of nerds is higher among F-Droid users, I still don't think coders often go “wait, this app is open-source, let me build it myself instead of getting a binary.”

Re:Trust is good, control is better: Reproducible builds at ... by dTal on Saturday July 20, 2019 @10:11PM (#20489548)
I don't think that's the case at all. F-Droid is very user-friendly. It supports advanced users, but then all software should.
Re:Trust is good, control is better: Reproducible builds at ... by ardani on Saturday July 20, 2019 @04:47PM (#20488272)
Tech generally arrives in the consumer space only after becoming the standard for developers.

Literal wizards, they build from source.

Re:Trust is good, control is better: Reproducible builds at ... by Avamander on Saturday July 20, 2019 @12:21PM (#20486625)
They should make reproducible builds mandatory and then sign over apks built by devs. That way they don't have to be trusted specifically and that's how it must be.
Re:Trust is good, control is better: Reproducible builds at ... by brachi on Saturday July 20, 2019 @02:25PM (#20487436)
I think this concept of reproducible builds is very interesting. Related in Arch Linux[1]:

> Arch Linux is currently in the process of having it 100% reproducible, for the exact definition of reproducible builds and it's benefits take a look at the project website[2]. Arch users can help contribute to Reproducible Build issues by looking at the continuous reproducing environment[3]

[1] https://wiki.archlinux.org/index.php/DeveloperWiki:Reproduci... [2] https://reproducible-builds.org/ [3] https://tests.reproducible-builds.org/archlinux/archlinux.ht...

Re:Trust is good, control is better: Reproducible builds at ... by MYEUHD on Saturday July 20, 2019 @11:02AM (#20486146)
>the organization behind Signal forbids distributing other binaries than the ones signed by them.

Isn't this a GPL violation?

Re:Trust is good, control is better: Reproducible builds at ... by mcny on Saturday July 20, 2019 @11:11AM (#20486197)
No because GPL does not require you to open your network to anyone.

My understanding is you can distribute Signal binaries but you'd have to connect it to your own servers so it is not Signal anymore... It is something based on Signal like whatsapp (which nobody wants)

Re:Trust is good, control is better: Reproducible builds at ... by MaxBarraclough on Saturday July 20, 2019 @12:53PM (#20486876)
> No because GPL does not require you to open your network to anyone.

I don't know what you meant by this, but MYEUHD is correct: you can't release software under GPL and then dictate the terms under which binaries may be distributed, beyond the relevant copyleft restrictions already imposed by the GPL.

I'm not convinced that Signal attempt any such prohibition though. There's a discussion over here [0] on this question. Someone rightly points out Stallman's Freedom 2.

[0] https://github.com/signalapp/Signal-Android/issues/282#issue...

Re:Trust is good, control is better: Reproducible builds at ... by cwyers on Saturday July 20, 2019 @01:44PM (#20487199)
Firefox distributes the source via an open source license, but if you want to distribute binaries, you can't use trademarks not covered by the source license without Mozilla's permission.
Re:Trust is good, control is better: Reproducible builds at ... by MaxBarraclough on Saturday July 20, 2019 @01:53PM (#20487251)
Ah, right. So they don't try to prohibit distributing 'unofficial' binaries, they just insist that if you do so, you don't call it 'Signal'.

As you say, Mozilla have done the same thing, and it's not hard to see why, though some FOSS folks (Debian in particular) took issue with this [0][1]

[0] https://lwn.net/Articles/676799/

[1] https://en.wikipedia.org/wiki/Mozilla_software_rebranded_by_...

Re:Trust is good, control is better: Reproducible builds at ... by jdnenej on Saturday July 20, 2019 @07:38PM (#20488976)
Not only can you not call it signal, you may also not connect it to the signal network so you have to host your own which can't message anyone.
Re:Trust is good, control is better: Reproducible builds at ... by southerntofu on Monday July 22, 2019 @10:19AM (#20498166)
Here's some relevant piece by m0xie, a maintainer of Signal : https://github.com/libresignal/libresignal/issues/37#issueco...

He and his colleagues are hostile towards federated protocols. This culminated in an article called "The ecosystem is moving" to which Daniel Gultsch (maintainer of conversations.im) answered here: https://gultsch.de/objection.html

Re:Trust is good, control is better: Reproducible builds at ... by MYEUHD on Saturday July 20, 2019 @01:50PM (#20487238)
The license that Mozilla uses has such restrictions. But this isn't the case with the GPL.
Re:Trust is good, control is better: Reproducible builds at ... by MaxBarraclough on Saturday July 20, 2019 @02:04PM (#20487312)
I don't think that's quite right. The GPLv2 makes no mention of trademarks [0], and the GPLv3 mentions trademarks only to clarify that you may be protective of them, independent of the terms of the GPLv3.

If you license under GPL, you're still free to be protective of your trademarks.

This makes sense given that although Mozilla like to use their own licence, they've been careful over the years to either release under the GPL as well, or to use a licence of their own which has been constructed to be GPL-compatible [2]. Clearly, the GPL didn't force Mozilla to be permissive with their trademark.

[0] https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt

[1] https://www.gnu.org/licenses/gpl-3.0.txt

[2] https://en.wikipedia.org/wiki/Firefox#Licensing

Re:Trust is good, control is better: Reproducible builds at ... by thatcat on Saturday July 20, 2019 @12:45PM (#20486832)
There was a Noise messaging app on copperhead os that connected to everyone though, I'm not sure how it worked.
Re:Trust is good, control is better: Reproducible builds at ... by afiori on Saturday July 20, 2019 @11:10AM (#20486195)
I believe this applies specifically to the Signal brand.
Re:Trust is good, control is better: Reproducible builds at ... by awinter-py on Saturday July 20, 2019 @02:22PM (#20487408)
I LOVE the idea of multi-signer reproducible builds

F-droid feels incomplete to me -- open source + third party builds are still not enough, we need privacy linting and community code review to have any assurance of what these apps are doing.

(But don't mean to dis, F-droid is IMO the best thing about mobile right now)