Software Signature Verification Usability Issues and Proposed Solutions

From Kicksecure
Jump to navigation Jump to search

Severe Usability Issues with Software Signature Verification such as GnuPG and Proposed Solutions / Secure Downloader Development Notes

Problem[edit]

Quote Warning page, Always Verify Signatures:

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 ([Dev/Download_Statistics 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.

Solutions[edit]

Metalink[edit]

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 Weaknessesarchive.org for further information.

https://daniel.haxx.se/blog/2021/06/07/bye-bye-metalink-in-curl/archive.org

Subresource Integrity[edit]

Would solve mirror issue.

Unavailable for file downloads.

https://github.com/w3c/webappsec-subresource-integrity/issues/68archive.org

OpenPGP Signed Website[edit]

OpenPGP Signed Websites and browsers verifying website signatures do not exist yet either.

Key Distribution[edit]

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.

DANEarchive.org (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.

Deprecated Ideas[edit]

JavaScript Based Verification[edit]

Threat model:

  • A) When avoiding mirrors: No JavaScript (JS) based verification is required because both download and JS come from the same source with the same trust level.
  • B) If using mirrors: JS based verification can make sense but gpg bases is much more secure.

Usability considerations:

  • Lack of automation: Cannot be automated. The user manually using the verification button is always required.

Security considerations:

  • JS dependency: Conflicts with noJS users. Impossible to implement without JS.

Development effort considerations:

  • High effort: Lots of effort to then be ignored by noJS users.

SecureDownloader[edit]

Introduction[edit]

Deprecated idea.

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.

Open Questions[edit]

  • 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?

Challanges[edit]

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 Thandy.

Conclusion[edit]

Not useful. Better to fix the root issue upstream.

Resources[edit]

See Also[edit]

Footnotes[edit]

We believe security software like Kicksecure needs to remain Open Source and independent. Would you help sustain and grow the project? Learn more about our 12 year success story and maybe DONATE!