Spoofing Openpgp and S/MIME Signatures in Emails
Total Page:16
File Type:pdf, Size:1020Kb
“Johnny, you are fired!” – Spoofing OpenPGP and S/MIME Signatures in Emails Jens Müller and Marcus Brinkmann, Ruhr University Bochum; Damian Poddebniak, Münster University of Applied Sciences; Hanno Böck, unaffiliated; Sebastian Schinzel, Münster University of Applied Sciences; Juraj Somorovsky and Jörg Schwenk, Ruhr University Bochum https://www.usenix.org/conference/usenixsecurity19/presentation/muller This paper is included in the Proceedings of the 28th USENIX Security Symposium. August 14–16, 2019 • Santa Clara, CA, USA 978-1-939133-06-9 Open access to the Proceedings of the 28th USENIX Security Symposium is sponsored by USENIX. “Johnny, you are fired!” – Spoofing OpenPGP and S/MIME Signatures in Emails Jens Müller1, Marcus Brinkmann1, Damian Poddebniak2, Hanno Böck, Sebastian Schinzel2, Juraj Somorovsky1, and Jörg Schwenk1 1Ruhr University Bochum 2Münster University of Applied Sciences Abstract however, do not extend to authenticating the sending person, which is necessary to provide message authenticity. OpenPGP and S/MIME are the two major standards to en- Two competing email security standards, OpenPGP [4] crypt and digitally sign emails. Digital signatures are sup- and S/MIME [5], offer end-to-end authenticity of messages posed to guarantee authenticity and integrity of messages. In by digital signatures and are supported by many email clients this work we show practical forgery attacks against various since the late 1990s. Digital signatures provide assurance implementations of OpenPGP and S/MIME email signature that a message was written by a specific person (i.e., au- verification in five attack classes: (1) We analyze edge cases thentication and non-repudiation) and that it was not changed in S/MIME’s container format. (2) We exploit in-band sig- since then (i.e., integrity of messages). Adoption is still low1 naling in the GnuPG API, the most widely used OpenPGP due to severe usability issues, but both technologies have implementation. (3) We apply MIME wrapping attacks that a large footprint either in the industry (S/MIME) or with abuse the email clients’ handling of partially signed mes- high-risk roles such as journalists, lawyers, and freedom ac- sages. (4) We analyze weaknesses in the binding of signed tivists (OpenPGP). One example: Debian (a volunteer group messages to the sender identity. (5) We systematically test with over 1000 members) relies on the authenticity of signed email clients for UI redressing attacks. emails for voting on project leaders and proposals. We thus Our attacks allow the spoofing of digital signatures for ar- ask: Is it possible to spoof a signed email such that it is in- bitrary messages in 14 out of 20 tested OpenPGP-capable distinguishable from a valid one even by an attentive user? email clients and 15 out of 22 email clients supporting S/MIME signatures. While the attacks do not target the un- derlying cryptographic primitives of digital signatures, they raise concerns about the actual security of OpenPGP and S/MIME email applications. Finally, we propose mitigation strategies to counter these attacks. 1 Introduction Email is still the most important communication medium on the Internet and predates the World Wide Web by roughly one decade. At that time, message authenticity was not a ma- jor concern, so the early SMTP and email [1, 2] standards did Figure 1: Screenshot of a spoofed PGP signature in Apple Mail, not address confidentiality or the authenticity of messages. based on wrapping a signed email published by Phil Zimmermann. Email Authenticity As the ARPANET evolved into the In- Spoofing Valid Signatures Signature verification in the ternet, email usage changed. Email is now used for sensitive context of email is complex. For example, emails can be communication in business environments, by the military, signed by an entity other than the sender or signed emails politicians and journalists. While technologies such as SPF, may be forwarded (resulting in partly signed messages). DKIM, and DMARC can be used to authenticate the domain 1We examined OpenPGP keyservers and measured over 20k key uploads of the sending SMTP server, these are merely helpful in mit- per month consistently over the last 4 years. We also found that Thunderbird igating spam and phishing attacks [3]. These technologoies, reports 150k daily users (on work days) for the PGP-plugin Enigmail. USENIX Association 28th USENIX Security Symposium 1011 Also, signatures are an optional feature of email and there- • We show that our attacks bypass signature validation in fore generally not enforced. Most importantly, the result of about 70% of the tested email clients, including Out- the verification must be presented to the user such that there look, Thunderbird, Apple Mail, and iOS Mail. is no room for misinterpretation. Any failure to do so may lead to a signature spoofing attack as shown in Figure 1. This Coordinated Disclosure We reported all our attacks and paper describes the results of our analysis of the most widely additional findings to the affected vendors and gave advice used email clients supporting PGP or S/MIME signatures. on appropriate countermeasures. Attack Classes Our attacks do not break the cryptography 2 Background in digital signatures, but rather exploit weaknesses in the way PGP and S/MIME signatures are verified by email clients, and how the verification outcome is presented to the user. 2.1 End-to-End Email Authenticity We define the following five attack classes: The digital signature parts of the OpenPGP and S/MIME standards provide end-to-end authenticity for email mes- 1. CMS attacks. Cryptographic Message Syntax (CMS) sages. First and foremost, both technologies are configured is a versatile standard for signed and encrypted mes- on the endpoints and technically-versed users can therefore sages within the X.509 public-key infrastructure. We choose to use them independently of the email server config- found flaws in the handling of emails with contradicting uration. In both standards, the keys are bound to users and or unusual data structures (such as multiple signers) and thus authenticate users independently of the transport. in the presentation of issues in the X.509 trust chain. OpenPGP Email Signing Phil Zimmerman invented PGP GPG API attacks. 2. GnuPG is the most widely used (Pretty Good Privacy) in 1991 and due to its popularity, OpenPGP implementation, but it only offers a very re- PGP was standardized as OpenPGP by the IETF [6]. The stricted command line interface for validating signa- most popular implementation is GnuPG.2 There are two tures. This interface is vulnerable to injection attacks. common ways to use OpenPGP in emails. With Inline 3. MIME attacks. The body of an email is conceptu- PGP, the email body directly contains the OpenPGP data. ally a MIME tree, but typically the tree has only one The MIME multipart standard is not used and the MIME leaf which is signed. We construct non-standard MIME type is text/plain. With PGP/MIME, the email has trees that trick clients into showing an unsigned text a multipart/signed MIME structure, where the signed while verifying an unrelated signature in another part. message is the first part and the detached signature is the second part. Some email clients support PGP natively, but 4. ID attacks. The goal of this attack class is to display a most (in particular Thunderbird, Apple Mail, and Outlook) valid signature from the identity (ID) of a trusted com- need a plugin, which provides an intermediate layer between munication partner located in the mail header, although the mail client and a PGP implementation like GnuPG. the crafted email is actually signed by the attacker. 5. UI attacks. Email clients indicate a valid signature by S/MIME Email Signing In 1999, the IETF published showing some security indicators in the user interface S/MIME (Secure/Multipurpose Internet Mail Extension) (UI), for example, a letter with a seal. However, several version 3 as an extension to the MIME standard with clients allow the mimicking of important UI elements certificate-based cryptography [5]. S/MIME is the result of by using HTML, CSS, and other embedded content. a long history of secure email protocols and can be seen as the first Internet standards-based framework to digitally sign, authenticate, or encrypt emails. S/MIME uses the Crypto- Contributions We make the following contributions: graphic Message Syntax (CMS) as its underlying container • We present the results of our structured analysis of format. The signatures themselves are always CMS encoded, OpenPGP and S/MIME signature verification in 25 but the signed message can either be included in the CMS widely used email clients. (opaque signature) or be transmitted as the first part of a multipart/signed message (detached signature). • We present three new attack classes: attacks based on CMS evaluation, on the syntax of the GnuPG machine interface, and on wrapping signed content within invis- 2.2 Trust and Validity ible subtrees of the MIME tree. Verifying the cryptographic integrity of a signature is often not sufficient. In addition to this verification, the public key • We adapt two attack classes of web security to the email context, namely UI redressing and ID spoofing. 2W. Koch, GNU Privacy Guard, https://gnupg.org/. 1012 28th USENIX Security Symposium USENIX Association that generated the signature must be connected to some ac- An overview of the attack classes and attacker models is tual person or entity, such as an email address, by a certifi- given in Table 1. Each attack class is described in section 4 cate. S/MIME certificates are issued by certificate authorities and the subscript identifies the specific attack, i.e., M1 iden- which are trusted by the email clients. It is easy for users to tifies attack 1 in the MIME attack class. order S/MIME certificates and sign messages which are ac- cepted by all clients.