|
|
Subscribe / Log in / New account

STEED: End-to-end email encryption

October 26, 2011

This article was contributed by Nathan Willis

Is end-to-end email encryption a lost cause, or do the existing protocols simply fail to meet the ease-of-use requirements needed for widespread adoption? That is a question the security community has debated for years without arriving at a consensus. Two key developers from the GnuPG project have outlined a new approach to email encryption that they call STEED, for "Secure Transmission of Encrypted Electronic Data." It is backwards compatible with existing OpenPGP and S/MIME standards, but seeks to smooth out the stumbling blocks that "casual" and non-technical users typically find onerous.

STEED is outlined in an October 17 white paper [PDF] co-authored by Werner Koch, co-founder of FSF Europe and lead developer of GNU Privacy Guard (GnuPG aka GPG), and Marcus Brinkmann, longtime Debian and GNU/Hurd developer and Koch's partner at security consulting firm g10code. The paper outlines the overall security approach taken by OpenPGP and S/MIME — including the setup, configuration, and maintenance tasks expected of the user, as well as the trust model that each scheme employs. S/MIME's trust model is called PKIX, for "public-key infrastructure for X.509," and encompasses the existence and operation of trusted certificate authorities (CAs). In contrast, OpenPGP's trust model is the web-of-trust (WoT), which depends on a global, decentralized reputation system.

Koch and Brinkmann argue that email encryption has failed to take off both because of "usability pitfalls" in OpenPGP and S/MIME approaches, and because the PKIX and WoT trust models fail to match up with user expectations and the "mental model" users associate with email. Ultimately, STEED is a set of practices that, if implemented in mail user agents (MUAs), mail servers, and encryption utilities, would put secure-by-default choices into play with a minimum of user involvement. The resulting system amounts to a different trust model, which the authors feel would seem saner to end users. The paper merely outlines the pieces that make up STEED; the authors are seeking feedback and input, but plan to push the work forward with actual specifications in the future, and code targeting Thunderbird, Outlook, Kmail, and a webmail client.

Components

STEED is comprised of three functional techniques: automatic key generation, automatic key distribution via DNS, and opportunistic encryption.

With automatic key generation, the MUA would automatically create an OpenPGP key-pair or a self-signed S/MIME certificate whenever creating a new mail account. The name and email address associated with the key or certificate are taken directly from the account set-up data, and cryptographic parameters are pre-configured in the MUA using sane defaults. S/MIME, like TLS, is intended to work with CA-signed certificates, but self-signed certificates are cryptographically equivalent — the difference is that self-signed certificates do not follow the PKIX trust model, which STEED is intending to supplant anyway.

If there is anything more confusing to new users than public-private key-pairs, the authors suggest, then it is the "unpractical" methods used to store, distribute, and retrieve keys. Their solution is to replace dedicated keyservers with a DNS-based distribution method. DNS is decentralized, widely available, and the fact that email addresses include a domain name makes it fit naturally into the structures of existing DNS records. Obtaining an encryption key would be matter of querying the DNS server at the relevant person's email domain and asking for the record associated with that person's user name. An added bonus is that piggybacking on DNS automatically benefits from other security advances like DNSSEC. The white paper does not recommend a specific DNS resource record type, but does suggest that the DNS records store a key or certificate fingerprint and an associated URL linking to the full key.

Opportunistic encryption is, quite simply, encrypting messages by default. Encryption is intended to happen in the MUA, which will be left to implement its own policies regarding message headers, options presented to the user, and when to fall back to sending a message in the clear.

Trust

If everyone has a key, and other users' keys are easily retrievable via a DNS query performed transparently by the MUA, then email encryption and digital signatures would work smoothly. The remaining problem in the scheme is how to authenticate the key or email address of a remote person — particularly one that has not made contact in the past. After all, an attacker could intercept DNS queries and spoof an identity or perform a man-in-the-middle attack against a legitimate-looking contact.

The existing email encryption schemes tackle this problem with PKIX and WoT. But the authors cite a PGP usability study that indicates that these trust models are confusing to users:

Both systems require a significant investment by the user: X.509 asks the user to sink money into the artificial certificate market that provides a dubious return, while OpenPGP asks the user harder and harder questions about the trustworthiness of peers away from the center of his personal web of trust.

Furthermore, they add, neither trust model matches up with users' natural expectations when using email, because both defer trust decisions to someone else. PKIX defers all trust judgments to an external authority, while WoT defers it to peer recommendations. In both cases, a binary trust determination is made before the communication is even read: "Neither system utilizes the users own experience with the peer in the context of the communication happening over time".

STEED's trust model is "trust upon first contact" (TUFC), which accepts the certificate or key of the remote party upon first contact, but persists and tracks it for the user. This is the trust model used by SSH, the authors note, and is what "virtually all users do anyway, when faced with the task to make a trust decision that interrupts their line of work". In other words, TUFC exists outside of an external "trust infrastructure," and leaves it up to the user to verify suspicious first contacts through other means (in person, phone calls, etc.). After the first contact, the system helps the user by flagging changed or revoked keys.

Challenges

Implementing STEED would require changes to the popular MUAs and encryption frameworks (including GnuPG), which the authors discuss, but there are also other challenges that cannot be solved by hard work alone. For example, automatic key generation is fine, except that users will either be interrupted to create (and then memorize) a passphrase, or else the passphrase must be stored somewhere. The paper suggests relegating passphrase storage to a "PIM service" — although the authors do not go into any significant detail. They appear to expect such a service to be network-accessible, and acknowledge that it must be able to communicate with MUAs (and other applications) from more than one platform. At one point, they refer to the service having a "passphrase vault", which implies encryption. Perhaps such a service is to protected by a user's existing account credentials, or else it would be imposing yet-another-password-to-remember, when one of STEED's goals is to spare users from choosing and remembering an encryption passphrase.

Since many email users today are content to store even sensitive correspondence with commercial SaaS companies, there might not be an elevated privacy concern with tossing a passphrase into the mix, but it is also just one more piece of information that could be stolen. On the other hand, STEED makes room for savvy users to create their own keys or use existing keys and security devices, so perhaps the extra-cautious could take that route. STEED's goal is to lower the bar for participation in secure email — at some point surely the benefits of preventing eavesdropping outweigh the risk of losing a passphrase.

A bigger issue is that STEED would require email providers to implement a key system in their DNS infrastructure, and a way for users to store and update their keys. That may not present them with a technical challenge, but convincing providers to change their policies and DNS infrastructure would be a huge undertaking. In addition to that, so many users today use webmail services like GMail that are available over SSL/TLS, which makes implementing a "new" security system an even harder sell.

There is also the issue of how to properly handle user mobility, particularly when users wish to access the same mail account from multiple devices. The authors do not offer easy solutions to any of these questions in the paper, but there is a sizable STEED discussion thread running on the GnuPG mailing list.

Jerome Baum suggested bypassing email providers' DNS and including a URL (privately-hosted or on a keyserver) for the sender's encryption key as a mail header instead. That idea has the benefit of being "in-band" and not requiring email provider support, though it still requires changes to the MUA. Peter Lebbing suggested using Bittorrent or another peer-to-peer system for hosting and retrieving keys.

Mark H. Wood said that attempting to bypass the passphrase-management problem is asking for trouble. "To be secure without being involved in the process is an unreasonable expectation which can never be met". Better, he said, to focus on generating passphrases that can be easily memorized, than to suggest storing them off-site.

Perhaps the thorniest problem was raised by Tom Ritter, who observed that supporting multiple devices also means supporting temporary usage of any random computer. "There's the very practical problem of _sometimes_ I do need to read my mail from a machine that is not my own. As a security person I almost never do it. But 'the young crowd' do it all the time. You have to satisfy that requirement also." Of course, most temporary email access of this type is done through a web mail interface, which has its own share of problems: either implementing the cryptographic functions in JavaScript or another client-side technology, or decrypting messages on the remote server. Either option carries risks. In addition, doing the encryption/decryption on the server breaks the "end-to-end encryption" principle.

Koch is scheduled to speak about STEED in November at the 2011 Free Society Conference and Nordic Summit (FSCONS); there may be changes to the proposal or further details on the protocols at that time. Until then, despite all of the debate, the consensus view on the GnuPG list is that STEED is at least taking on a very important problem: most people do not use email encryption because it is too difficult to configure and manage. Taking most of the decisions out of the user's hands and settling them in the MUA may not be perfect, but it would make for a vast improvement.

Even that, however, would not tackle the biggest obstacle to email encryption of all — the naive assumption by many users that their email is already secure because the lock icon is visible in the browser's location bar. At its heart, STEED is an attempt to make MUAs "do the right thing" more and rely less on the user, because the technical underpinnings of end-to-end encryption are already well-understood by the developer community. STEED is completely compatible with user-driven OpenPGP and S/MIME. But whether or not it could push the apathetic masses into end-to-end encryption remains to be seen. Perhaps nothing can, but making it simpler is certainly better than nothing.


Index entries for this article
SecurityEncryption/Email
GuestArticlesWillis, Nathan


to post comments

STEED: End-to-end email encryption

Posted Oct 27, 2011 9:19 UTC (Thu) by nmav (guest, #34036) [Link] (3 responses)

Very interesting idea and approach. It might be the key to turn e-mail to secure by default. Congratulations to Werner and Marcus.

STEED: End-to-end email encryption

Posted Oct 27, 2011 13:08 UTC (Thu) by Klavs (guest, #10563) [Link] (2 responses)

Nice idea - but I for one - would very much prefer my email being stored UNENCRYPTED on my own imap server (which may store things on an encrypted home-partition or not) - and then just access my mail using imaps and https (for webmail).

I hope they make room for that in the standard. In this way, postfix (or some other mailserver) could simply decrypt the email, if it's for local delivery - and set some markers for the MUA - to verify keys etc.

STEED: End-to-end email encryption

Posted Oct 27, 2011 13:51 UTC (Thu) by brinkmd (guest, #45122) [Link] (1 responses)

Hi,

stripping the encryption locally and storing unencrypted is fine, there is nothing standing in the way. You will want to keep signatures though (that's possible because mail is first signed then encrypted, and you only strip the outer layer), and use our trust model. You will also want to use opportunistic encryption and automatic key retrieval and distribution.

Thanks,
Marcus Brinkmann

STEED: End-to-end email encryption

Posted Oct 28, 2011 10:56 UTC (Fri) by josh (subscriber, #17465) [Link]

Personally, I'd like to do the opposite: encrypt email to my GPG public key upon receipt, so that I can store it on my IMAP server for convenient access from a couple of devices, without leaving it on my server unencrypted.

STEED: End-to-end email encryption

Posted Oct 27, 2011 18:50 UTC (Thu) by jonabbey (guest, #2736) [Link]

Well done for attempting to tackle this problem, all.

Preventing the perfect becoming the enemy of the good

Posted Oct 27, 2011 19:17 UTC (Thu) by copsewood (subscriber, #199) [Link]

There seems to be some useful thinking here. Requiring the user to input a secure passphrase in order to read email where they currently do not need to do this would be a backwards step. Assuming the reason for opportunistically encrypting email is to prevent it being read as plaintext in transit, having user-unfriendly defences to protect keys against compromised clients would seem to defeat the main purpose.

Better to get email encrypted by default (wherever the domain admins support this) with most users not noticing. Protecting credentials against compromised hosts in a manner which doesn't cause users to want to tear their hair out is another job, which should not be done using solutions designed just for this purpose alone.

There is a similar kind of conflict between the perfect and the good concerning the fact that the way that browsers handle self signed HTTPS certificates scares most users off, so sites which can't be bothered with the costs of certificates now of very limited security value choose to use plaintext HTTP in preference to HTTPS, because the former doesn't frighten the horses.

STEED: End-to-end email encryption

Posted Oct 28, 2011 10:58 UTC (Fri) by josh (subscriber, #17465) [Link] (1 responses)

Passphrase management does not seem like a particularly hard problem. Users shouldn't need to have more than one password: the one which unlocks their password storage system. (In my case, that password decrypts my hard drive, and everything else follows from that.)

STEED: End-to-end email encryption

Posted Oct 28, 2011 13:38 UTC (Fri) by nybble41 (subscriber, #55106) [Link]

That works securely only if the password storage system itself is secure (e.g., does not run in the same account as the user's other programs) and the user is at least alerted (securely) when a program accesses the stored credentials. Otherwise any unprivileged local exploit would grant free access to all your passwords. Full-disk encryption, by itself, meets the first requirement, but not the second--once the disk is unlocked anything running in your account can read the password list.

STEED: End-to-end email encryption

Posted Oct 28, 2011 18:16 UTC (Fri) by njwhite (guest, #51848) [Link] (5 responses)

Why replace keyservers with DNS? When we already have keyservers, with keys on them, which work well. Creating a key automatically when a new mail account is set up and sharing it with a keyserver sounds great, and ssh style trust as a default option rather than the web of trust seems reasonably valid. But the DNS part is the toughest to deploy, and as far as I can see has no real benefit.

STEED: End-to-end email encryption

Posted Oct 28, 2011 19:29 UTC (Fri) by dd9jn (✭ supporter ✭, #4459) [Link] (4 responses)

Some of the keyservers work quite well. However many of them go offline for longer periods and from time to time you will see one of the long-time keyserver to be switched-off. It is something a geek is able to manage but it needs too much knowledge. With the ~2 million keys and the low traffic we have today you may have not noticed problems. However, we aim for hundred of millions of keys.

I contrast, DNS is a replicated and well matured database with enough people knowing how to maintain the system. It just works. There is even a standard for the key storage; something we do not have for keyservers (the de-facto standard for keyservers is the latest SKS version).

Another really important feature of DNS is that it allows for key revocation or rollover. Keyservers are not able to do this.

Werner

STEED: End-to-end email encryption

Posted Nov 1, 2011 0:06 UTC (Tue) by micah (guest, #20908) [Link] (3 responses)

>Another really important feature of DNS is that it allows for key revocation or rollover. Keyservers are not able to do this.

key servers don't allow for revocation? last i checked they did.

STEED: End-to-end email encryption

Posted Nov 1, 2011 8:10 UTC (Tue) by spaetz (guest, #32870) [Link] (1 responses)

> key servers don't allow for revocation? last i checked they did.

An even if they didn't that were mainly an argument to add that capability. I believe that running a few reliable key servers will be less hassle than convincing my mail provider to fudge their DNS server to provide my gpg key.

STEED: End-to-end email encryption

Posted Nov 2, 2011 8:29 UTC (Wed) by dd9jn (✭ supporter ✭, #4459) [Link]

It is not a matter of running a few keyservers. We are talking about hundreds of millions of keys. We need a reliable and scalable distributed database. DNS does just this for decades.

STEED: End-to-end email encryption

Posted Nov 2, 2011 8:26 UTC (Wed) by dd9jn (✭ supporter ✭, #4459) [Link]

Revocations in OpenPGP work by updating the public key (e.g. from a keyserver). Thus the keyservers obviously support this kind of revocations - it is nothing more than an updated key. However, if you look at the response times of keyservers you will notice a delay of some seconds. This is too long for regular revocation checks. Further, most gpg frontends don't even have an easy way to generate a revocation and send it to the keyservers.

It is also impossible to remove a key from a keyserver - that is by design and we can't do anything about it. Now with DNS, it is pretty simple to remove the key. In our proposed trust model this removal is also used as an equivalent to a key revocation. Sure, anyone can simply put copies of the keys on keyservers etc - but that is not the point.

STEED: End-to-end email encryption

Posted Nov 7, 2011 1:06 UTC (Mon) by cras (guest, #7000) [Link]

If mails are stored encrypted on server side without server knowing the private key, it also means that the server can't support server side searching of mails. Users like search..


Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds