This profile is from a federated server and may be incomplete. Browse more on the original instance.

How can I prove that a downloadable executable is built from the published source?

I have forked a project’s source code on GitHub. The program takes a private key as an input and that key must never leave the client. If I want to share a pre-built executable as a release it is essential that I can prove beyond reasonable doubt that it is built from the published source....

prcrst,
@prcrst@lemmy.world avatar

I don’t know whether github actions output can be tampered with by you, but the only actually reliable way (that I know of) to prove that your binaries correspond to a certain state of the sourcecode is to support reproducible builds (See e.g. reproducible-builds.org).

All other methods require trust (in either the developer or w.r.t. github actions towards github).

The drawback is of course, that to verify whether your binaries are good, someone needs to rebuild the software, but it is a good tool to build and maintain trust in your signed binaries, especially if they deal with sensitive information like private keys.

prcrst,
@prcrst@lemmy.world avatar

But I am thinking that their workflows are reproducible builds, correct?

A reproducible build is more than an automated build. It is a build process which enables any third party to build a binary that is bit-by-bit identical (see reproducible-builds.org/docs/definition/).

So if I would build a specific release/commit of your application on my PC (given an identical development environment, i.e. same version dependencies, compiler, etc.) it MUST result in a bit-by-bit identical binary to the one you built on your development machine and the one the github workflows built.

All these binaries would result in the same hash (and thus be verifiable by the same signature files).

“Here is my very simple commit that you can read, and here is the executable in case you want to download the fixed wallet but are not technically savvy enough to build it”

Other than a signed binary from a trusted developer/organization, there is (IMHO) no way for a non-tech savvy user to gauge the trustworthiness of a binary they download from the internet, and even then a signing key might have been lost or broken (see the recent Microsoft debacle w.r.t. AD signing key misuse).

prcrst,
@prcrst@lemmy.world avatar

True, while I think the page that I linked explains the concept well, it might not be easy to digest for someone who is new to software development.

But then again, if you handle cryptographic materiel, you better learn fast 😃

prcrst,
@prcrst@lemmy.world avatar

Yeah, this topic would actually lend itself to an intro video which demonstrates the problem on a tiny project.

prcrst,
@prcrst@lemmy.world avatar

Basically, yes. IIRC the FIDO/U2F handling is implemented in google libs.

They are however re-implemented in microG: github.com/microg/…/Implementation-Status, so if you are open to using that it should work with apps using the corresponding google client libraries.

I have used Firefox on Lineage/microG and tested FIDO2 there, it does NOT work with Fennec as that does not include the required client side libraries.

prcrst,
@prcrst@lemmy.world avatar

Not that I know of. I think this needs to be implemented in a system framework.

prcrst,
@prcrst@lemmy.world avatar

Very interesting. Cross compilation is always daunting.

I’ll just throw zig on the ever growing list of ‘things to take a look at’

prcrst,
@prcrst@lemmy.world avatar

I use nextcloud.export which comes with the snap (github.com/…/How-to-backup-your-instance), but the backup app looks nicer.

prcrst,
@prcrst@lemmy.world avatar

You might need to get them in batches, i.e. use the page parameter to get multiples of 50.

prcrst,
@prcrst@lemmy.world avatar

Note that due to new posts appearing the results might overlap in content.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • aaaaaaacccccccce
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • KamenRider
  • Ask_kbincafe
  • TheResearchGuardian
  • KbinCafe
  • Socialism
  • oklahoma
  • SuperSentai
  • feritale
  • All magazines