The collar/padlock is such a good look for a cryptography talk
GnuPG is one of those tools I never got around to use. How could something designed for human communication be so utterly cumbersome and confusing ?
How could something designed for human communication be so utterly cumbersome and confusing ?
Several reasons, I guess?
1. The PGP (later, OpenPGP) protocol.
The proprietary PGP software, which was the initial implementation of the PGP protocol(s) also suffered from usability problems:
-
- Whitten, A., and Tygar, J. D. Usability of Security: a case study
-
- Whitten, A., and Tygar, J. D. Why Johnny Can’t Encrypt: A Usability Evaluation of PGP 5.0
-
- Atwater, E., Bocovich, C., Hengartner, U., Lank, E., & Goldberg, I. Leading Johnny to Water: Designing for Usability and Trust
-
- Ruoti, S., Andersen, J., Zappala, D., & Seamons, K. Why Johnny still, still can’t encrypt: Evaluating the usability of a modern PGP client
2. GnuPG maintainers are implicitly using asymptotic software versioning
Donald Knuth was probably the most notable proponent of the idea that software packages should increasingly tend toward stability, with fewer and fewer patches needed. He used explicitly asymptotic version numbering for TeX and Metafont.
Some of the quotes in OP’s video make imply GnuPG’s maintainers are implicitly following a similar approach, e.g. the section about “Sequoia’s need for churn”.
With encryption software, there is an especially strong argument for being conservative about changes. Patches may have unforeseen consequences, adding subtle vulnerabilities.
However, the downside of this, as the gpg.fail team pointed out, is that it biases the GnuPG maintainers towards excessive rejection of patches. Especially patches that would improve usability. Arguably, TeX suffered from a similar bias; hence the development of LaTeX and newer TeX front-ends to improve usability.
3. Changing the interface would be effortful
Improving GnuPG’s interface would require quite a lot of work in itself, both to the codebase and the documentation.
Releasing a version with those changes would also require fielding a lot of support queries for many years, because decades of software manuals all over the web were written for the traditional GnuPG interface, and aren’t going to be updated overnight. Some of those manuals will surely never get updated, because they are no longer maintained even though they are still online and still used.
I can sympathise with the GnuPG maintainers for finding this daunting. But the improvements are needed. Thankfully, developers of tools like
minisign,age, andsequoiaare taking on much of this work; it’s just a pity that the work had to be done in this fragmented way through third-party efforts, instead of in GnuPG itself.-
If you ignore most of it, it’s actually fine.
I use it for git commit signing.
Very interesting talk, thanks for sharing!




