Software Signature Verification Usability Issues and Proposed Solutions
Severe Usability Issues with Software Signature Verification such as GnuPG and Proposed Solutions / Secure Downloader Development Notes
For greater system security, it is strongly recommended to avoid installing unsigned software. Always make sure that signing keys and signatures are correct and/or use mechanisms that heavily simplify and automate this process, like apt upgrades.
As a reminder, digital signatures are not a magic bullet. While they increase the certainty that no backdoor was introduced by a third party during transit, this does not mean the software is absolutely "backdoor-free". Learn more about this process and what digital signatures prove.
Surveys (example) have shown that very few users use software signature verification. Even fewer users have a sufficient understanding of the threat model. In case of an attack by an advanced adversary most users would get compromised. This is the very strong opinion of the author of this text. Usually the author of this text seldom raises strong opinions.
Required knowledge is far too much. Usability of tools used for manual verification of software signatures is such as GnuPG is far too bad. For an elaboration of these issues, see Conceptual Challenges in Software Digital Signatures Verification and Verifying Software Signatures.
Metalink are links which support additional metadata. Such as in theory links to signing keys, software signatures. Browser could implement support for metalink and automation of software verification.
Would require Metalink including OpenPGP support.
GSoC may be way to get this feature into Firefox.
Metalink would only be a gradual improvement. Download security is harder than just verification of software signatures. Rollback (downgrade), indefinite freeze attacks and other attacks would still be possible. See TUF Threat Model, TUF: Attacks and Weaknesses for further information.
OpenPGP Signed Website
OpenPGP Signed Websites and browsers verifying website signatures do not exist yet either.
Even if browsers (such as Firefox, Chrome) and/or downloaders (such as wget, curl, aria2c) had support for metalink and OpenPGP verification there would still be no concept on how to distribute the signing keys. This is a hard problem. TLS has the same issue. The certificate authority (CA) system problem.
DANE (DNS-based Authentication of Named Entities) might be a way put the root anchor into the DNS but that's no perfect end-to-end authentication either.
Stub downloader. Similar to the one that Mozilla is providing for Firefox downloads. A small tool that is used to download and install the real tool.
Securing downloads may be better when written as a general purpose tool (not specific to Kicksecure).
No other projects such as Firefox or Debian support this use case.
- How to download and verify the host program in the first place?
- Without being able to answer this question the thing becomes a circle and doesn't actually solve anything.
- How to download the secure downloader itself in censored countries?
- How to download files in censored countries?
- Torify downloads?
Such a host program is host operating system specific, well you can write it in a cross platform language but still have to struggle with platform specific quirks.
The Tor Project never managed to get such a downloader up and running, see.
Not useful. Better to fix the root issue upstream.
- liberationtech: secure download tool - doesn't exist?!?
- proposal to defend a permanent takedown threat
TUF (The Update Framework)
- TUF Threat Model,
TUF: Attacks and Weaknesses
- GPG signatures do not authenticate filenames
- update checking requirements discussion for bitcoin-qt by Bitcoin developer
- Verifying Software Signatures
- Verify the virtual machine images
- Kicksecure Signing Key
- Software Signature Verification Usability Issues and Proposed Solutions
- OpenPGP Signed Websites