IncreaseWKDUsage2021 bachelor thesis [WIP]

Christoph Klassen is writing his bachelor thesis (at Intevation) about how usage of WKD can be furthered. Bernhard Reiter does the mentoring, see gnupg-devel@ for discussion and for contacting Christoph or Bernhard.

Started at 2021-10
End: 2022-02-18

Goal

WKD is easy to implement and brings the advantage of good usability. Because of that it is desirable to spread it and increase its usage. At first, the aim was to find out, which measures are effective to spread WKD. But, while different products were tested, it became obviously that it isn't 100% clear, how to implement WKD.
For example, products have to use the advanced method, when the subdomain "openpgpkey" is available. The question is how to check this availability. While implementing the advanced method for Mailvelope it was found out that Chrome doesn't offer the possibility to resolve a DNS-name. In the section about Mailvelope you can see how this problem was solved in this work.
Another aspect that became visible after testing the products was that the developers of the products have very different ways how they integrated WKD into theirs products. Very often it was not user-friendly how WKD was made available to the users. Sometimes it was complicated to make the product ready for WKD or it was difficult to find out how to enable it.
This are reasons for finding measures to make the implementation of WKD easier for developers. Also, it is important that WKD can be used easily. That means that the usability of it has to be increased.

Use Cases

It is necessary to define use cases, so it is easier to speak about how to implement the WKD-standard. These use cases were written by using Cockburns template [1].

Use Case #1: Write an encrypted email

Goal: Sending a confidential message.
Precondition:

Success: An encrypted email was sent
Failure:

Actors: A random person
Trigger: A person wants to write a confidential message to another person in a way that no other person can read its contents.
Description:

  1. Person opens the email-client
  2. Person opens the area to compose an email
  3. Person enters address, subject and message
  4. Person sends the email

Extensions:

  1. Person checks, if the pubkey is trustworthy
  2. Person checks, how trustworthy the pubkey is

Use Case #2: Validate the signature of an email

Goal: Check, if an email was written by the person, whose email address was used.
Precondition:

Success: The signature of the email could be checked
Failure: The signature of the email could not be checked
Actors: A random person
Trigger: A person receives an email with important information and wants to know, if it was really written by the person, whose address was used to send the email.
Description:

  1. Person opens the email-client
  2. Person opens the area with all received emails
  3. Person opens a signed email
  4. Person starts the verification of the signature
  5. Person sees if the signature of the email is valid

Extensions:

  1. Person checks, if the pubkey, which was used to check the signature of the received email, is trustworthy
  2. Person checks, how trustworthy the pubkey is, which was used to check the signature of the received email
Activity diagram for use case #2:

use_case_2.png

Criterions for implementing WKD with a good usability

Another way to evaluate products is to do a heuristic evaluation. Jakob Nielson created ten different heuristics to examine the usability of products. On [2] is a recent article, where he summarizes the heuristics. The essence of these heuristics is that users want to be able to predict the softwares behavior and to have the feeling of control about the software. Therefore it is necessary that the application gives users enough information to know, what is going on. On the other hand users shouldn't be overwhelmed with to much information or too many choices and UI elements. It is also important that a software is consistent in itself and with other applications, which the users also use, so they can re-use their experience.

State of products and progress

Here it will be described what state different products had at the beginning of the work and what measures were taken to increase the usage of WKD.
For some products it is necessary to prepare them for encryption. But after doing that WKD is enabled by default. For this reason they fulfill the criterion "WKD is enabled by default".

Overview

Criterion\ProductMailvelopeClaws MailFairEmailK9MailKMailThunderbird
The product is compatible to the last version of the WKD-standard icon-error.png no checkmark.png yes icon-error.png no icon-error.png no checkmark.png yes icon-error.png no
WKD is enabled by default checkmark.png yes checkmark.png yes checkmark.png yes checkmark.png yes icon-error.png no checkmark.png yes
WKD is available, when composing an email checkmark.png yes icon-error.png no icon-error.png no icon-error.png no checkmark.png yes icon-error.png no°
WKD is used automatically, when entering an email checkmark.png yes icon-error.png no icon-error.png no icon-error.png no checkmark.png yes icon-error.png no
WKD is available, when checking a signature ? checkmark.png yes icon-error.png no icon-error.png no icon-error.png no icon-error.png no
Displays, if a basic trust exists (when composing) icon-error.png no icon-error.png no icon-error.png no checkmark.png yes checkmark.png yes icon-error.png no
Displays, if a basic trust exists (when checking a signature) ? checkmark.png yes icon-error.png no checkmark.png yes checkmark.png yes checkmark.png yes
Displays different levels of trust (when composing) icon-error.png no icon-error.png no icon-error.png no icon-error.png no icon-error.png no icon-error.png no
Displays different levels of trust (when checking a signature) ? checkmark.png yes icon-error.png no icon-error.png no icon-error.png no checkmark.png yes

°: Users need to click on some buttons and open two additional windows before they can search for a key via WKD, so the WKD-button is a bit more hidden.

Mailvelope

Previous state (analyzed version 4.4.1)

Measures

Claws Mail

Previous state (analyzed version 3.18.0)

Measures

FairEmail/ K9Mail

Previous state

FairEmail

Previous state (analyzed version 1.1776)

Measures

K9Mail

Previous state (analyzed version 5.806)

KMail

Thunderbird

mail.de

The email-provider mail.de is a special case in this work because it represents the server-side of WKD and not the client-side as the other products.

Previous state

Measures

Sources

[1] H. Balzert, Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, 3. Edition, Spektrum Akademischer Verlag Heidelberg: 2009
[2] J. Nielsen, 10 Usability Heuristics for User Interface Design, https://www.nngroup.com/articles/ten-usability-heuristics/ [Accessed 15.12.2021].
[3] I. Klöcker, Error when trying to locate key via WKD, https://lists.gnupg.org/pipermail/gnupg-users/2021-October/065510.html, [Accessed 15.12.2021].
[4] https://datatracker.ietf.org/doc/draft-koch-openpgp-webkey-service/07/, [Accessed 04.01.2022].
[5] Release GnuPG 2.2.17, https://dev.gnupg.org/T4606, [Accessed 04.01.2022].

WKD/BachelorThesisIncreaseWKDUsage2021 (last edited 2022-01-20 11:06:13 by Christoph Klassen)