Composer

Scope

This work is financed by the BASICS project of Internews to improve the usability of OpenPGP for at-risk users: journalists, activists, and human-rights defenders who use OpenPGP in Thunderbird to protect their sensitive communications.

I worked with Kai, Alex, and Magnus from the Thundebird team and Gus Andrews.

I started working on the usability of OpenPGP in the composer window, because:

This work would address the following Bugzilla issues:

Methodology

I recruited 4 usability test participants who use OpenPGP in Thunderbird to protect sensitive information as part of their work or activism. They use and advocate for OpenPGP as a way to protect their communications from surveillance and repression from State and private actors. I call them at-risk users:

I asked them to perform 3 tasks on 2 proposals developed by our team, Proposal A and Proposal B, using the think-aloud protocol:

Both proposals were displayed to the test participants as paper prototypes that I manipulated following their instructions and shared on video. I improved on each proposal after each test, as a way of improving on the design as quickly and cheaply as possible. This method is called formative testing.

Gus Andrews helped interview, facilitate, and debrief the tests with P1 and P2.

Composer window

Example screen

Account settings

It will replace the current radio buttons:

These account settings allow people to choose between 2 main categories: those who want to encrypt as little as possible and those who want to encrypt as much as possible (or everything):

Encryption toggle

Whether the user wants to encrypt the email or not is displayed in the label of the Encryption toggle button in the toolbar, right of the Send button.

Default state

When opening the composer, encryption is turned on by default depending on various heuristics:

If neither OpenPGP nor S/MIME are configured for the current identity, the toggle is off and clicking on it could open a configuration assistant (not designed yet).

Key notification

If encryption is turned on, but the user doesn’t have a valid and accepted key for one of the recipients, a key notification appears at the bottom the body of the email:

If keys are missing for several recipients:

If I’m serious about encryption, problems should be shown right away because I have to act on them anyway. The emails I work a lot with I have an interest in getting them in order. – P1

Recipient pill

When a key notification is diplayed, the pill of the problematic recipients is highlighted:

Additional options

The same OpenPGP and S/MIME options are available from either:

According to Kai, the options from the split button should also be available from a top-level menu for accessibility.

Moving OpenPGP and S/MIME options to a dedicated top-level menu helps to make them more discoverable. It also keeps the set of options in the split button and the top-level menu consistent and helps people understand that the top-level menu mirrors the options in the split button.

It wouldn’t be a problem to keep these options in the Options menu as we’re doing right now as most people will rather use the split button than the top-level menu.

The label of the Encryption menu is slightly incorrect technically because this menu also includes options for cryptographic signatures, and not only for encryption. Test participants didn’t care or didn’t even know about the cryptographic signature of OpenPGP. I assume that the Encryption label is clearer and most discoverable by the vast majority of users that are mostly interested in encryption. I assume that the few people who are also interested in cryptographic signatures won’t have problems finding these options in this menu despite the Encryption label.

OpenPGP-S/MIME split button

If the user has accounts with both OpenPGP and S/MIME, the choice between both encryption technologies is available from:

Search on key servers

Searching on key servers is made available from the recipient pills, their right-click menu, and the key notifications.

None of the test participants used key servers to share their keys: some don’t know that they exist and some others avoid using them by lack of trust.

I never search on key servers because I don’t trust them. Someone can pretend to be someone else and send a wrong key. — P2

When the user searches on key servers, it’s a good opportunity to educate them about key servers:

Key properties

P1 didn’t read the current text despite being interested in learning more about fingerprint verification.

I don’t know what a fingerprint is so I would choose ‘accepted’. I don’t know how I can verify if the key is correct but I’m curious what a correct fingerprint means. I want to know. I would like an explanation of the difference between ‘accepted’ and ‘verified’. — P1

I rephrased and restructured the acceptance tab of the key properties to:

Subject encryption toggle

If encryption is turned on, subject encryption is turned on by default as well.

The status of subject encryption is displayed through a label Encrypted Subject and can be toggled with a lock icon on the left of the subject line:

Subject encryption is also available in the additional options for accessibility.

If encryption is turned off, the usual Subject line with no icon is displayed:

Implementation and release strategy

This design could be released in increments in the following order:

  1. Encryption split button, additional options, and OpenPGP-S/MIME split button

    Most pressing in terms of ease of use and visibility of system status.

    Default state could be mapped to the current “Do Not Encrypt” and “Require Encryption”.

  2. Key notifications, Never Encrypt dialog, and Send button

    More useful than recipient pills.

    Implementing the Never Encrypt dialog reduces the number of notifications.

  3. Key properties

    Not super important but easy.

  4. Recipient pills

    Sugar on top of key notifications.

  5. Account settings

    Could require more discussion.

  6. Search on key servers

    At-risk and less technical users are defiant of key servers and already have other key distribution mechanisms.

  7. Subject encryption toggle

    Mostly educational.

Software prototype

The following patch includes proof-of-concept code for almost all the design elements described earlier:

It can be applied on top of changeset de35d92fd3ea.

This patch is a prototype made to demonstrate the design and is probably broken in many ways. Please report any unexpected behavior.

Known issues

Next steps

Key assistant

Variations

Encryption split button

Additional features

Never Encrypt dialog

When the user chooses Do Not Encrypt in a notification: