1

For a given software release published by Mozilla, how can I cryptographically verify the authenticity and integrity of the file that I downloaded before I execute it to install that program?

Today I wanted to download firefox and thunderbird for Windows, but the download page said nothing about how to verify the release after download.

I expected to see a message telling me the fingerprint of their release signing key, a link to further documentation, and links to [a] a manifest file (eg SHA256SUMS) and [b] a detached signature of that manifest file (eg SHA256SUMS.asc, SHA256SUMS.sig, SHA256SUMS.gpg, etc)

How can I preform this verification with mozilla products, such as firefox and thunderbird?

2

1 Answer 1

3

Windows releases are signed using Authenticode, so the signature is embedded into the executable and the OS automatically verifies it upon launch against a Microsoft-maintained list of X.509 certificate authorities. The individual files extracted into 'C:\Program Files' are likewise Authenticode-signed when possible.

You can view the signature details in the file's "Properties" window, or using sigcheck (from Sysinternals), or using Get-AuthenticodeSignature (PowerShell cmdlet), or using signtool verify (part of Windows developer kit), or using osslsigncode verify (available in many Linux distributions).

Linux releases (source and pre-compiled) are signed using PGP, with a detached signature being available at the same URL + .asc suffix. They're at https://ftp.mozilla.org/pub/firefox/releases/:

(Mozilla's "Downloading the source code" article points to https://archive.mozilla.org, but that is basically the same server with the same contents.)

Of course, for PGP to be useful at all, you need to find some other way to verify the signing key instead of just grabbing it from the same directory. It seems Mozilla publishes their release keys on their blog.

As long as you're dealing with single files, a separate "SUMS" manifest is basically redundant – it only adds several extra steps for verification while doing nothing for the actual security. You get exactly the same value from verifying a signature made directly against the file that you wanted to verify.

Nevertheless, the Mozilla FTP server does include SHA256SUMS manifests containing every file belonging to the release (including Windows and macOS), together with a PGP signature.

2
  • Great response, thanks! btw, Mozilla's wiki has a great article enumerating the many disadvantages of the X.509 PKI model (eg used by Microsoft's Authenticode) compared to "people-based security" (eg gpg) wiki.mozilla.org/Apps/Security/… Commented Dec 9, 2020 at 15:57
  • I do not see where that article would compare the X.509 PKI model with PGP WoT, and I couldn't find any mentions of general PKI issues such as certificate cost, misissuance, EV validation, and so on. Rather it seems to be listing arguments about file signing vs transport protection (i.e. the usage of HTTPS or FTPS). For example, it says "SSL PKI is host-based" – this is true for X.509-based TLS but completely untrue for X.509 in general (be it Authenticode or S/MIME or PKCS#7 signatures); code-signing certificates are held by people and their signatures are fully verifiable offline.
    – grawity
    Commented Dec 9, 2020 at 16:57

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.