Felony PGP
PGP is frequently criticized as being difficult to use; moreover, this difficulty is cited as a key reason why end-to-end email encryption has not taken off with the public at large. Consequently, efforts to improve on the usability of PGP are common. One of the latest to hit the scene is Felony, a cross-platform desktop application written with Node.js. Felony succeeds at simplifying many of the steps involved in PGP-encrypted communication, but it is harder to say whether it offers a solution that the general public will find a reason to explore.
Typically, complaints about PGP focus on the set-up and maintenance tasks imposed on the user: creating and distributing one's keys, collecting and importing the keys of others, and so forth. Those tasks invariably involve educating the user about facets of public-key infrastructure (PKI) like keyservers that may be hard to understand (or to trust), and that is on top of the problem of explaining public-key cryptography in general, which can certainly be a challenge. But there is no denying that PGP implementations have historically been hard to use as well.
Felony is work of Henry Boldizsar. It has been in development
since January 2016, although the initial public release was not made
until June. The current version of the application is release number
0.10.3,
from July 4. Packages are available to download for Linux, Mac
OS X, and Windows, in addition to source-code bundles. The code
is under the MIT license.
Some Linux users may experience startup trouble (in the form of a blank application window) on the latest release; no official fix has been pushed out yet, but a patched version is available in a GitHub fork. A discussion of the problem (including a link to the fork) is available in this issue.
The project page describes Felony as "the first PGP app
that's easy for anyone to use, without a tutorial
". To that
end, it masks over many of the key-management tasks and PKI issues to
present, instead, a simplified interface more akin to an
instant-messaging app.
The application presents the user with a small "contact list"-like
window that lists known contacts by their full names. Clicking on
someone's name opens the "compose a message" field, with a simple
"Encrypt" button below it. Similarly, signing a message and checking
the signature on a message are simple operations accessible with one
click as well.
Furthermore, Felony performs key generation for the user the first time it is started up, requiring the user only to supply their name and email address (and choose a passphrase). There are a great many key-generation options hidden by such a service, but there is no denying that it is simple to use. The app is visually pleasing, to be sure; it would look at home on most modern smartphones.
But Felony does not implement a full end-to-end messaging solution. The only way to add a contact to the list is through the "Add Key" button, which simply provides a text field and tells the user to "Paste a public key" into it. Where one would get such a public key is left up to the imagination. Similarly, while there is a handy one-click button to copy one's own public key to the clipboard, no help is provided for how to get that key distributed to other users.
Perhaps more importantly, when one selects a contact and types up a
message to encrypt or sign, the
result of the operation is a block of text that must be copied and pasted
into some other application to send. Likewise, Felony can easily
decrypt ciphertext or verify signatures, but the text in question must
be copied into the application through the system clipboard.
In addition, Felony does not integrate with any existing keyrings. Users can add additional private keys by copying them into the felony.json that the application places in the home directory. To import existing public keys, one needs to open them up for copying in another application. Neither task is particularly arduous, of course, until one realizes that keeping Felony in sync with other PGP tools would entail doing these steps on a regular basis.
Looking inside the felony.json file (which stores public and private keys), pgpdump indicates that the key generated at start-up is a 2048-bit RSA key with no expiration date. Awkwardly, though, Felony also inserts some emoji characters into the Version and Comment fields. It is also somewhat alarming to note that the file is, at least as of the latest release, created with world-readable permissions.
But some of these issue are, no doubt, the product of Felony's relative newness. The emphasis of the developers has been placed on making PGP easy to use; security hardening and integration can still be addressed.
On the usability front, however, Felony still has a lot of ground left to cover. Composing text and hitting the "Encrypt" button is hardly the most difficult part of exchanging encrypted messages. The real trick will be integrating those functions into the messaging applications that people actually use, and it is not clear how Felony plans on doing that.
Furthermore, while the contact-list approach is visually appealing, it is difficult to see how Felony would connect to the keyservers that make up the PKI infrastructure already in use. Perhaps the project has no plans to do so, and the goal is simply to create a separate web of trust between users. But that approach can hardly scale. And real-world PGP usage invariably dictates the occasional foray into examining keys; Felony provides no interface to, for example, compare two keys that share the same person's name (say, to figure out which is associated with what email address, or to check the expiration dates).
Lastly, there is the lingering issue of the project's choice of names. In a Hacker News discussion in June, readers were quick to point out that "Felony" is an off-putting name with expressly negative connotations. So far, while many people have suggested alternatives (in both the Hacker News thread and on the GitHub issue), Boldizsar has yet to make a change.
Attempts to make PGP encryption more user-friendly are appealing, and it is certainly hard to fault Boldizsar for taking a crack at the task in a different manner than others. But a lot of challenging problems remain.
Perhaps Felony can address them in time; even if it does not, however, the project is worth examining. It has design decisions in common with other PGP-simplification efforts from the past, such as the automatic key-generation feature of STEED. But it also has its own share of fresh takes, like the ability to copy one's public key to the clipboard with one click.
Wherever it goes from here, though, it is
good to see that new developers are taking up the challenge of
improving an old system like PGP encryption. Felony may not be a
complete solution, but it has its merits nonetheless.
| Index entries for this article | |
|---|---|
| Security | Encryption/Email |
| Security | Mobile phones/Apps |
