Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sign releases on github or website #692

Open
maltfield opened this issue Apr 25, 2024 · 3 comments
Open

Sign releases on github or website #692

maltfield opened this issue Apr 25, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@maltfield
Copy link

maltfield commented Apr 25, 2024

Description

Currently it is not possible to verify the authenticity or cryptographic integrity of the downloads from mau.fi or github.com because the releases are not cryptographically signed.

This makes it hard for your users to safely obtain the bridge software, and it introduces them (and potentially their instance's users) to numerous vulnerabilities.

Steps to Reproduce

  1. Go to the docs https://docs.mau.fi/bridges/go/setup.html?bridge=whatsapp
  2. Click Github releases link in the doc's Step 1: Installation section
  3. Look for signature file
  4. ???
  5. Get confused and open ticket

Expected behavior: [What you expected to happen]

A few things are expected:

  1. I should be able to download the mautrix PGP key out-of-band from popular third-party keyservers (eg https://keys.openpgp.org/)
  2. I should be able to download a cryptographic signature of the release (or, better, the releases' digest file, such as a SHA256SUMS.asc file) along with the release itself
  3. The "instalation" section of the documentation page itself should include a link to the documentation page that describes how to do the above two steps

Actual behavior: [What actually happened]

There's just literally no information on verifying downloads, and it appears that it is not possible to do so.

@maltfield maltfield added the enhancement New feature or request label Apr 25, 2024
@maltfield
Copy link
Author

maltfield commented Apr 25, 2024

I see that you already provide a sha256sums.txt asset for your releases.

As I'm sure you're aware, hashes do not provide security -- unless those hashes are signed. Hashes without signatures protect against download corruption; they do not provide any security.

An example attack that would be protected by signatures is a Publishing Infrastructure Compromise. Here's a great list of historically relevant cases where this happened:

The easiest solution to this ticket (to provide a way for users to verify the authenticity of your release after download and before install) would be to sign your sha256sums.txt file, either

  1. with an "iinline signature" in the same sha256sums.txt file, or
  2. in a separate "detached signature" file, perhaps named sha256sums.txt.sig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

1 participant