<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version  -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dkg-lamps-e2e-mail-guidance-00" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.47.0 -->
  <front>
    <title>Guidance on End-to-End E-mail Security</title>
    <seriesInfo name="Internet-Draft" value="draft-dkg-lamps-e2e-mail-guidance-00"/>
    <author initials="D.K." surname="Gillmor" fullname="Daniel Kahn Gillmor">
      <organization abbrev="ACLU">American Civil Liberties Union</organization>
      <address>
        <postal>
          <street>125 Broad St.</street>
          <city>New York, NY</city>
          <code>10004</code>
          <country>USA</country>
        </postal>
        <email>dkg@fifthhorseman.net</email>
      </address>
    </author>
    <date year="2020" month="October" day="31"/>
    <area>int</area>
    <workgroup>lamps</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>End-to-end cryptographic protections for e-mail messages can provide useful security.
However, the standards for providing cryptographic protection are extremely flexible.
That flexibility can trap users and cause surprising failures.
This document offers guidance for mail user agent implementers that need to compose or interpret e-mail messages with end-to-end cryptographic protection.
It provides a useful set of vocabulary as well as suggestions to avoid common failures.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>E-mail end-to-end security using S/MIME <xref target="RFC8551" format="default"/> and PGP/MIME <xref target="RFC3156" format="default"/> cryptographic standards can provide integrity, authentication and confidentiality to MIME e-mail messages <xref target="RFC4289" format="default"/>.</t>
      <t>However, there are many ways that a receiving mail user agent can misinterpret or accidentally break these security guarantees (e.g., <xref target="EFAIL" format="default"/>).</t>
      <t>A mail user agent that interprets a message with end-to-end cryptographic protections needs to do so defensively, staying alert to different ways that these protections can be bypassed by mangling (either malicious or accidental) or a failed user experience.</t>
      <t>A mail user agent that generates a message with end-to-end cryptographic protections should be aware of these defensive interpretation strategies, and should compose any new outbound message conservatively if they want the protections to remain intact.</t>
      <section anchor="requirements-language" numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 (<xref target="RFC2119" format="default"/> and <xref target="RFC8174" format="default"/>) when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="terminology" numbered="true" toc="default">
        <name>Terminology</name>
        <t>For the purposes of this document, we define the following concepts:</t>
        <ul spacing="normal">
          <li>
            <em>MUA</em> is short for Mail User Agent; an e-mail client.</li>
          <li>
            <em>Protection</em> of message data refers to cryptographic encryption and/or signatures, providing confidentiality, authenticity, and/or integrity.</li>
          <li>
            <em>Cryptographic Layer</em>, <em>Cryptographic Envelope</em>, <em>Cryptographic Payload</em>, and <em>Errant Cryptographic Layer</em> are defined in <xref target="cryptographic-structure" format="default"/></li>
          <li>A <em>well-formed</em> e-mail message with cryptographic protection has both a <em>Cryptographic Envelope</em> and a <em>Cryptographic Payload</em>,</li>
          <li>
            <em>Structural Headers</em> are documented in <xref target="structural-headers" format="default"/>.</li>
        </ul>
        <section anchor="structural-headers" numbered="true" toc="default">
          <name>Structural Headers</name>
          <t>A message header whose name begins with <tt>Content-</tt> is referred to in this document as a "structural" header.</t>
          <t>These headers indicate something about the specific MIME part they are attached to, and cannot be transferred or copied to other parts without endangering the readability of the message.</t>
          <t>This includes (but is not limited to):</t>
          <ul spacing="normal">
            <li>
              <tt>Content-Type</tt></li>
            <li>
              <tt>Content-Transfer-Encoding</tt></li>
            <li>
              <tt>Content-Disposition</tt></li>
          </ul>
          <t>FIXME: are there any non-<tt>Content-*</tt> headers we should consider as structural?</t>
        </section>
      </section>
    </section>
    <section anchor="usability" numbered="true" toc="default">
      <name>Usability</name>
      <t>The end user (the operator of the MUA) is unlikely to understand complex end-to-end cryptographic protections on any e-mail message, so keep it simple.</t>
      <t>For clarity to the user, any cryptographic protections should apply to the message as a whole, not just to some subparts.</t>
      <t>This is true for message composition: the standard message composition user interface of an MUA should offer minimal controls which indicate which types of protection to apply to the new message as a whole.</t>
      <t>This is also true for message interpretation: the standard message rendering user interface of an MUA should offer a minimal, clear indicator about the end-to-end cryptographic status of the message as a whole.</t>
    </section>
    <section anchor="types-of-protection" numbered="true" toc="default">
      <name>Types of Protection</name>
      <t>A given message might be:</t>
      <ul spacing="normal">
        <li>signed,</li>
        <li>encrypted, or</li>
        <li>both signed and encrypted.</li>
      </ul>
      <t>Given that many e-mail messages offer no cryptographic protections, the user needs to be able to detect which protections are present for any given message.</t>
    </section>
    <section anchor="cryptographic-structure" numbered="true" toc="default">
      <name>Cryptographic MIME Message Structure</name>
      <t>Implementations use the structure of an e-mail message to protect the headers.
This section establishes some conventions about how to think about message structure.</t>
      <section anchor="cryptographic-layer" numbered="true" toc="default">
        <name>Cryptographic Layers</name>
        <t>"Cryptographic Layer" refers to a MIME substructure that supplies some cryptographic protections to an internal MIME subtree.
The internal subtree is known as the "protected part" though of course it may itself be a multipart object.</t>
        <t>In the diagrams below, <u>↧</u> indicates "decrypts to", and <u>⇩</u> indicates "unwraps to".</t>
        <section anchor="smime-cryptographic-layers" numbered="true" toc="default">
          <name>S/MIME Cryptographic Layers</name>
          <t>For S/MIME <xref target="RFC8551" format="default"/>, there are four forms of Cryptographic Layers: multipart/signed, PKCS#7 signed-data, PKCS7 enveloped-data, PKCS7 authEnveloped-data.</t>
          <section anchor="smime-multipart-signed" numbered="true" toc="default">
            <name>S/MIME Multipart Signed Cryptographic Layer</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
└┬╴multipart/signed; protocol="application/pkcs7-signature"
 ├─╴[protected part]
 └─╴application/pkcs7-signature
]]></artwork>
            <t>This MIME layer offers authentication and integrity.</t>
          </section>
          <section anchor="smime-pkcs7-signed-data" numbered="true" toc="default">
            <name>S/MIME PKCS7 signed-data Cryptographic Layer</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
└─╴application/pkcs7-mime; smime-type="signed-data"
 ⇩ (unwraps to)
 └─╴[protected part]
]]></artwork>
            <t>This MIME layer offers authentication and integrity.</t>
          </section>
          <section anchor="smime-pkcs7-enveloped-data" numbered="true" toc="default">
            <name>S/MIME PKCS7 enveloped-data Cryptographic Layer</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
└─╴application/pkcs7-mime; smime-type="enveloped-data"
 ↧ (decrypts to)
 └─╴[protected part]
]]></artwork>
            <t>This MIME layer offers confidentiality.</t>
          </section>
          <section anchor="smime-pkcs7-authenveloped-data" numbered="true" toc="default">
            <name>S/MIME PKCS7 authEnveloped-data Cryptographic Layer</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
└─╴application/pkcs7-mime; smime-type="authEnveloped-data"
 ↧ (decrypts to)
 └─╴[protected part]
]]></artwork>
            <t>This MIME layer offers confidentiality and integrity.</t>
            <t>Note that <tt>enveloped-data</tt> (<xref target="smime-pkcs7-enveloped-data" format="default"/>) and <tt>authEnveloped-data</tt> (<xref target="smime-pkcs7-authenveloped-data" format="default"/>) have identical message structure and semantics.
The only difference between the two is ciphertext malleability.</t>
            <t>The examples in this document only include <tt>enveloped-data</tt>, but the implications for that layer apply to <tt>authEnveloped-data</tt> as well.</t>
          </section>
          <section anchor="pkcs7-compression-is-not-a-cryptographic-layer" numbered="true" toc="default">
            <name>PKCS7 Compression is NOT a Cryptographic Layer</name>
            <t>The Cryptographic Message Syntax (CMS) provides a MIME compression layer (<tt>smime-type="compressed-data"</tt>), as defined in <xref target="RFC3274" format="default"/>.
While the compression layer is technically a part of CMS, it is not considered a Cryptographic Layer for the purposes of this document.</t>
          </section>
        </section>
        <section anchor="pgpmime-cryptographic-layers" numbered="true" toc="default">
          <name>PGP/MIME Cryptographic Layers</name>
          <t>For PGP/MIME <xref target="RFC3156" format="default"/> there are two forms of Cryptographic Layers, signing and encryption.</t>
          <section anchor="pgpmime-multipart-signed" numbered="true" toc="default">
            <name>PGP/MIME Signing Cryptographic Layer (multipart/signed)</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
└┬╴multipart/signed; protocol="application/pgp-signature"
 ├─╴[protected part]
 └─╴application/pgp-signature
]]></artwork>
            <t>This MIME layer offers authenticity and integrity.</t>
          </section>
          <section anchor="pgpmime-multipart-encrypted" numbered="true" toc="default">
            <name>PGP/MIME Encryption Cryptographic Layer (multipart/encrypted)</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
  ↧ (decrypts to)
  └─╴[protected part]
]]></artwork>
            <t>Note that for PGP/MIME, this MIME layer can offer any of:</t>
            <ul spacing="normal">
              <li>confidentiality (via a Symmetrically Encrypted Data Packet, see Section 5.7 of <xref target="RFC4880" format="default"/>; a MUA MUST NOT generate this form due to ciphertext malleability)</li>
              <li>confidentiality and integrity (via a Symmetrically Encrypted Integrity Protected Data Packet (SEIPD), see section 5.13 of <xref target="RFC4880" format="default"/>), or</li>
              <li>confidentiality, integrity, and authenticity all together (by including an OpenPGP Signature Packet within the SEIPD).</li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="cryptographic-envelope" numbered="true" toc="default">
        <name>Cryptographic Envelope</name>
        <t>The Cryptographic Envelope is the largest contiguous set of Cryptographic Layers of an e-mail message starting with the outermost MIME type (that is, with the Content-Type of the message itself).</t>
        <t>If the Content-Type of the message itself is not a Cryptographic Layer, then the message has no cryptographic envelope.</t>
        <t>"Contiguous" in the definition above indicates that if a Cryptographic Layer is the protected part of another Cryptographic Layer, the layers together comprise a single Cryptographic Envelope.</t>
        <t>Note that if a non-Cryptographic Layer intervenes, all Cryptographic Layers within the non-Cryptographic Layer <em>are not</em> part of the Cryptographic Envelope.
They are Errant Cryptographic Layers (see <xref target="errant-cryptographic-layers" format="default"/>).</t>
        <t>Note also that the ordering of the Cryptographic Layers implies different cryptographic properties.
A signed-then-encrypted message is different than an encrypted-then-signed message.
See <xref target="sign-then-encrypt" format="default"/>.</t>
      </section>
      <section anchor="cryptographic-payload" numbered="true" toc="default">
        <name>Cryptographic Payload</name>
        <t>The Cryptographic Payload of a message is the first non-Cryptographic Layer - the "protected part" - within the Cryptographic Envelope.</t>
      </section>
      <section anchor="types-of-cryptographic-envelope" numbered="true" toc="default">
        <name>Types of Cryptographic Envelope</name>
        <section anchor="simple-cryptographic-envelopes" numbered="true" toc="default">
          <name>Simple Cryptographic Envelopes</name>
          <t>As described above, if the "protected part" identified in the sction above is not itself a Cryptographic Layer, that part <em>is</em> the Cryptographic Payload.</t>
          <t>If the application wants to generate a message that is both encrypted and signed, it MAY use the simple MIME structure from <xref target="pgpmime-multipart-encrypted" format="default"/> by ensuring that the <xref target="RFC4880" format="default"/> Encrypted Message within the <tt>application/octet-stream</tt> part contains an <xref target="RFC4880" format="default"/> Signed Message (the final option described in <xref target="pgpmime-multipart-encrypted" format="default"/>.</t>
        </section>
        <section anchor="multilayer-cryptographic-envelopes" numbered="true" toc="default">
          <name>Multilayer Cryptographic Envelopes</name>
          <t>It is possible to construct a Cryptographic Envelope consisting of multiple layers with either S/MIME or PGP/MIME , for example using the following structure:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
A └─╴application/pkcs7-mime; smime-type="enveloped-data"
B  ↧ (decrypts to)
C  └─╴application/pkcs7-mime; smime-type="signed-data"
D   ⇩ (unwraps to)
E   └─╴[protected part]
]]></artwork>
          <t>When handling such a message, the properties of the Cryptographic Envelope are derived from the series <tt>A</tt>, <tt>C</tt>.</t>
          <t>As noted in <xref target="simple-cryptographic-envelopes" format="default"/>, PGP/MIME applications also have a simpler MIME construction available with the same cryptographic properties.</t>
        </section>
      </section>
      <section anchor="errant-cryptographic-layers" numbered="true" toc="default">
        <name>Errant Crytptographic Layers</name>
        <t>Due to confusion, malice, or well-intentioned tampering, a message may contain a Cryptographic Layer that is not part of the Cryptographic Envelope.
Such a layer is an Errant Cryptographic Layer.</t>
        <t>An Errant Cryptographic Layer SHOULD NOT contribute to the message's overall cryptographic state.</t>
        <t>Guidance for dealing with Errant Cryptographic Layers can be found in <xref target="errant-layers" format="default"/>.</t>
        <section anchor="mailing-list-wrapping" numbered="true" toc="default">
          <name>Mailing List Wrapping</name>
          <t>Some mailing list software will re-wrap a well-formed signed message before re-sending to add a footer, resulting in the following structure seen by recipients of the e-mail:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
H └┬╴multipart/mixed
I  ├┬╴multipart/signed
J  │├─╴text/plain
K  │└─╴application/pgp-signature
L  └─╴text/plain
]]></artwork>
          <t>In this message, <tt>L</tt> is the footer added by the mailing list.  <tt>I</tt> is now an Errant Cryptographic Layer.</t>
          <t>Note that this message has no Cryptographic Envelope at all.</t>
          <t>It is NOT RECOMMENDED to produce e-mail messages with this structure, because the data in part <tt>L</tt> may appear to the user as though it were part of <tt>J</tt>, though they have different cryptographic properties.
In particular, if the user believes that the message is signed, but cannot distinguish <tt>L</tt> from <tt>J</tt> then the author of <tt>L</tt> can effectively tamper with content of the signed message, breaking the user's expectation of integrity and authenticity.</t>
        </section>
        <section anchor="baroque-example" numbered="true" toc="default">
          <name>A Baroque Example</name>
          <t>Consider a message with the following overcomplicated structure:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
M └┬╴multipart/encrypted
N  ├─╴application/pgp-encrypted
O  └─╴application/octet-stream
P   ↧ (decrypts to)
Q   └┬╴multipart/signed
R    ├┬╴multipart/mixed
S    │├┬╴multipart/signed
T    ││├─╴text/plain
U    ││└─╴application/pgp-signature
V    │└─╴text/plain
W    └─╴application/pgp-signature
]]></artwork>
          <t>The 3 Cryptographic Layers in such a message are rooted in parts <tt>M</tt>, <tt>Q</tt>, and <tt>S</tt>.
But the Cryptographic Envelope of the message consists only of the properties derived from the series <tt>M</tt>, <tt>Q</tt>.
The Cryptographic Payload of the message is part <tt>R</tt>.
Part <tt>S</tt> is an Errant Cryptographic Layer.</t>
          <t>Note that this message has both a Cryptographic Envelope <em>and</em> an Errant Cryptographic Layer.</t>
          <t>It is NOT RECOMMENDED to generate messages with such complicated structures.
Even if a receiving MUA can parse this structure properly, it is nearly impossible to render in a way that the user can reason about the cryptographic properties of part <tt>T</tt> compared to part <tt>V</tt>.</t>
        </section>
      </section>
    </section>
    <section anchor="message-composition" numbered="true" toc="default">
      <name>Message Composition</name>
      <t>This section describes the ideal composition of an e-mail message with end-to-end cryptographic protection.
A message composed with this form is most likely to achieve its end-to-end security goals.</t>
      <section anchor="composition" numbered="true" toc="default">
        <name>Message Composition Algorithm</name>
        <t>This section roughly describes the steps that a MUA should use to compose a cryptographically-protected message that has a proper cryptographic envelope and payload.</t>
        <t>The message composition algorithm takes three parameters:</t>
        <ul spacing="normal">
          <li>
            <tt>origbody</tt>: the traditional unprotected message body as a well-formed MIME tree (possibly just a single MIME leaf part).
As a well-formed MIME tree, <tt>origbody</tt> already has structural headers present (see <xref target="structural-headers" format="default"/>).</li>
          <li>
            <tt>origheaders</tt>: the intended non-structural headers for the message, represented here as a table mapping from header names to header values..
For example, <tt>origheaders['From']</tt> refers to the value of the <tt>From</tt> header that the composing MUA would typically place on the message before sending it.</li>
          <li>
            <tt>crypto</tt>: The series of cryptographic protections to apply (for example, "sign with the secret key corresponding to X.509 certificate X, then encrypt to X.509 certificates X and Y").
This is a routine that accepts a MIME tree as input (the Cryptographic Payload), wraps the input in the appropriate Cryptographic Envelope, and returns the resultant MIME tree as output.</li>
        </ul>
        <t>The algorithm returns a MIME object that is ready to be injected into the mail system:</t>
        <ul spacing="normal">
          <li>Apply <tt>crypto</tt> to <tt>origbody</tt>, yielding MIME tree <tt>output</tt></li>
          <li>
            <t>For header name <tt>h</tt> in <tt>origheaders</tt>:
            </t>
            <ul spacing="normal">
              <li>Set header <tt>h</tt> of <tt>output</tt> to <tt>origheaders[h]</tt></li>
            </ul>
          </li>
          <li>Return <tt>output</tt></li>
        </ul>
      </section>
      <section anchor="sign-then-encrypt" numbered="true" toc="default">
        <name>Encryption Outside, Signature Inside</name>
        <t>Users expect any message that is both signed and encrypted to be signed <em>inside</em> the encryption, and not the other way around.</t>
        <t>Putting the signature inside the encryption has two advantages:</t>
        <ul spacing="normal">
          <li>The details of the signature remain confidential, visible only to the parties capable of decryption.</li>
          <li>Any mail transport agent that modifies the message is unlikely to be able to accidentally break the signature.</li>
        </ul>
        <t>A MUA SHOULD NOT generate an encrypted and signed message where the only signature is outside the encryption.</t>
      </section>
      <section anchor="avoid-offering-encrypted-only-messages" numbered="true" toc="default">
        <name>Avoid Offering Encrypted-only Messages</name>
        <t>When generating an e-mail, the user has options about what forms of end-to-end cryptographic protections to apply to it.</t>
        <t>In some cases, offering any end-to-end cryptographic protection is harmful: it may confuse the recipient and offer no benefit.</t>
        <t>In other cases, signing a message is useful (authenticity and integrity are desirable) but encryption is either impossible (for example, if the sender does not know how to encrypt to all recipients) or meaningless (for example, an e-mail message to a mailing list that is intended to be be published to a public archive).</t>
        <t>In other cases, full end-to-end confidentiality, authenticity, and integrity are desirable.</t>
        <t>It is unclear what the use case is for an e-mail message with end-to-end confidentiality but without authenticity or integrity.</t>
        <t>A reasonable MUA will keep its message composition interface simple, so when presenting the user with a choice of cryptographic protection, it SHOULD offer no more than three choices:</t>
        <ul spacing="normal">
          <li>no end-to-end cryptographic protection</li>
          <li>signing-only</li>
          <li>signed and encrypted</li>
        </ul>
      </section>
      <section anchor="composing-reply" numbered="true" toc="default">
        <name>Composing a Reply Message</name>
        <t>When replying to a message, most MUAs compose an initial draft of the reply that contains quoted text from the original message.
A responsible MUA will take precautions to avoid leaking the cleartext of an encrypted message in such a reply.</t>
        <t>If the original message was end-to-end encrypted, the replying MUA MUST either:</t>
        <ul spacing="normal">
          <li>compose the reply with end-to-end encryption, or</li>
          <li>avoid including quoted text from the original message.</li>
        </ul>
        <t>In general, MUAs SHOULD prefer the first option: to compose an encrypted reply.
This is what users expect.</t>
        <t>However, in some circumstances, the replying MUA cannot compose an encrypted reply.
For example, the MUA might not have a valid, unexpired, encryption-capable certificate for all recipients.
This can also happen during composition when a user adds a new recipient into the reply, or manually toggles the cryptographic protections to remove encryption.</t>
        <t>In this circumstance, the composing MUA SHOULD strip the quoted text from the original message.</t>
        <t>Note additional nuance about replies to malformed messages that contain encryption in <xref target="reply-to-errant-encryption" format="default"/>.</t>
      </section>
    </section>
    <section anchor="message-interpretation" numbered="true" toc="default">
      <name>Message Interpretation</name>
      <t>Despite the best efforts of well-intentioned senders to create e-mail messages with well-formed end-to-end cryptographic protection, receiving MUAs will inevitably encounter some messages with malformed end-to-end cryptographic protection.</t>
      <t>This section offers guidance on dealing with both well-formed and malformed messages containing Cryptographic Layers.</t>
      <section anchor="rendering-well-formed-messages" numbered="true" toc="default">
        <name>Rendering Well-formed Messages</name>
        <t>A message is well-formed when it has a Cryptographic Envelope, a Cryptographic Payload, and no Errant Cryptographic Layers.
Rendering a well-formed message is straightforward.</t>
        <t>The receiving MUA should evaluate and summarize the cryptographic properties of the Cryptographic Envelope, and display that status to the user in a secure, strictly-controlled part of the UI.
In particular, the part of the UI used to render the cryptographic summary of the message MUST NOT be spoofable, modifiable, or otherwise controllable by the received message itself.</t>
        <t>Aside from this cryptographic summary, the message itself should be rendered as though the Cryptographic Payload is the body of the message.
The Cryptographic Layers themselves SHOULD not be rendered otherwise.</t>
      </section>
      <section anchor="errant-layers" numbered="true" toc="default">
        <name>Errant Cryptographic Layers</name>
        <t>If an incoming message has any Errant Cryptographic Layers, the interpreting MUA SHOULD ignore those layers when rendering the cryptographic summary of the message to the user.</t>
        <section anchor="errant-signing-layer" numbered="true" toc="default">
          <name>Errant Signing Layer</name>
          <t>When rendering a message with an Errant Cryptographic Layer that provides authenticity and integrity (via signatures), the message should be rendered by replacing the Cryptographic layer with the part it encloses.</t>
          <t>For example, a message with this structure:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
A └┬╴multipart/mixed
B  ├╴text/plain
C  ├┬╴multipart/signed
D  │├─╴image/jpeg
E  │└─╴application/pgp-signature
F  └─╴text/plain
]]></artwork>
          <t>Should be rendered identically to this:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
A └┬╴multipart/mixed
B  ├─╴text/plain
D  ├─╴image/jpeg
F  └─╴text/plain
]]></artwork>
          <t>In such a situation, an MUA SHOULD NOT indicate in the cryptographic summary that the message is signed.</t>
          <section anchor="exception-mailing-list-footers" numbered="true" toc="default">
            <name>Exception: Mailing List Footers</name>
            <t>The use case described in <xref target="mailing-list-wrapping" format="default"/> is common enough in some contexts, that a MUA MAY decide to handle it as a special exception.</t>
            <t>If the MUA determines that the message comes from a mailing list (it has a <tt>List-ID</tt> header), and it has a structure that appends a footer to a signing-only Cryptographic Layer with a valid signature, such as:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
H └┬╴multipart/mixed
I  ├┬╴multipart/signed
J  │├─╴[protected part, may be arbitrary MIME subtree]
K  │└─╴application/{pgp,pkcs7}-signature
L  └─╴[footer, typically text/plain]
]]></artwork>
            <t>or:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
H └┬╴multipart/mixed
I  ├─╴application/pkcs7-mime; smime-type="signed-data"
   │⇩ (unwraps to)
J  │└─╴[protected part, may be an arbitrary MIME subtree]
L  └─╴[footer, typically text/plain]
]]></artwork>
            <t>Then, the MUA MAY indicate to the user that this is a signed message that has been wrapped by the mailing list.</t>
            <t>In this case, the MUA MUST distinguish the footer (part <tt>L</tt>) from the protected part (part <tt>J</tt>) when rendering any information about the signature.</t>
            <t>One way to do this is to offer the user two different views of the message: the "mailing list" view, which hides any cryptographic summary but shows the footer:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
Cryptographic Protections: none
H └┬╴multipart/mixed
J  ├─╴[protected part, may be arbitrary MIME subtree]
L  └─╴[footer, typically text/plain]
]]></artwork>
            <t>or the "sender's view", which shows the cryptographic summary but hides the footer:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
Cryptographic Protections: signed [details from part I]
J └─╴[protected part, may be arbitrary MIME subtree]
]]></artwork>
          </section>
        </section>
        <section anchor="errant-encryption-layer" numbered="true" toc="default">
          <name>Errant Encryption Layer</name>
          <t>An MUA may encounter a message with an Errant Cryptographic Layer that offers confidentiality (encryption), and the MUA is capable of decrypting it.</t>
          <t>The user wants to be able to see the contents of any message that they receive, so an MUA in this situation SHOULD decrypt the part.</t>
          <t>In this case, though, the MUA MUST NOT indicate in the message's cryptographic summary that the message itself was encrypted.
Such an indication could be taken to mean that other (non-encrypted) parts of the message arrived with cryptographic confidentiality.</t>
          <section anchor="reply-to-errant-encryption" numbered="true" toc="default">
            <name>Replying to a Message with an Errant Encryption Layer</name>
            <t>Note that there is an asymmetry here between rendering and replying to a message with an Errant Encryption Layer.</t>
            <t>When rendering, the MUA does not indicate that the message was encrypted, even if some subpart of it was decrypted for rendering.</t>
            <t>But when composing a reply that contains quoted text from the decrypted subpart, the reply message SHOULD be marked for encryption, as noted in {#composing-reply}.</t>
            <t>Alternately, if the reply message cannot be encrypted (or if the user elects to not encrypt the reply), the composed reply MUST NOT include any material from the decrypted subpart.</t>
          </section>
        </section>
      </section>
      <section anchor="forwarded-messages-with-cryptographic-protection" numbered="true" toc="default">
        <name>Forwarded Messages with Cryptographic Protection</name>
        <t>An incoming e-mail message may include an attached forwarded message, typically as a MIME subpart with <tt>Content-Type: message/rfc822</tt> (<xref target="RFC5322" format="default"/>) or <tt>Content-Type: message/global</tt> (<xref target="RFC5355" format="default"/>).</t>
        <t>Regardless of the cryptographic protections and structure of the incoming message, the internal forwarded message may have its own Cryptographic Envelope.</t>
        <t>The Cryptographic Layers that are part of the Cryptographic Envelope of the forwarded message are not Errant Cryptographic Layers of the surrounding message - they are simply layers that apply to the forwarded message itself.</t>
        <t>The rendering MUA MUST NOT conflate the cryptographic protections of the forwarded message with the cryptographic protections of the incoming message.</t>
        <t>The rendering MUA MAY render a cryptograpic summary of the protections afforded to the forwarded message by its own Cryptographic Envelope, as long as that rendering is unambiguously tied to the forwarded message itself.</t>
      </section>
      <section anchor="signature-failures" numbered="true" toc="default">
        <name>Signature failures</name>
        <t>A cryptographic signature may fail in multiple ways.
A receiving MUA that discovers a failed signature should treat the message as though the signature did not exist.
This is similar to the standard guidance for about failed DKIM signatures (see section 6.1 of <xref target="RFC6376" format="default"/>).</t>
        <t>A MUA SHOULD NOT render a message with a failed signature as more dangerous or more dubious than a comparable message without any signature at all.</t>
        <t>A MUA that encounters an encrypted-and-signed message where the signature is invalid SHOULD treat the message the same way that it would treat a message that is encryption-only.</t>
        <t>Some different ways that a signature may be invalid on a given message:</t>
        <ul spacing="normal">
          <li>the signature is not cryptographically valid (the math fails).</li>
          <li>the signature relies on suspect cryptographic primitives (e.g. over a legacy digest algorithm, or was made by a weak key, e.g., 1024-bit R.SA)</li>
          <li>the signature is made by a certificate which the receiving MUA does not have access to.</li>
          <li>the certificate that made the signature was revoked.</li>
          <li>the certificate that made the signature was expired at the time that the signature was made.</li>
          <li>the certificate that made the signature does not correspond to the author of the message.</li>
          <li>the signature indicates that it was made at a time much before or much after from the date of the message itself.</li>
        </ul>
        <t>A valid signature must pass all these tests, but of course invalid signatures may be invalid in more than one of the ways listed above.</t>
      </section>
    </section>
    <section anchor="common-pitfalls" numbered="true" toc="default">
      <name>Common Pitfalls and Guidelines</name>
      <t>This section highlights a few "pitfalls" and guidelines based on these discussions and lessons learned.</t>
      <t>FIXME: some possible additional commentary on:</t>
      <ul spacing="normal">
        <li>indexing and search of encrypted messages</li>
        <li>managing access to cryptographic secret keys that require user interaction</li>
        <li>secure deletion</li>
        <li>inline PGP, ugh</li>
      </ul>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>MAYBE: provide an indicator in the IANA header registry for which headers are "structural" ?
This is probably unnecessary.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This entire document addresses security considerations about end-to-end cryptographic protections for e-mail messages.</t>
    </section>
    <section anchor="document-considerations" numbered="true" toc="default">
      <name>Document Considerations</name>
      <t>[ RFC Editor: please remove this section before publication ]</t>
      <t>This document is currently edited as markdown.
Minor editorial changes can be suggested via merge requests at https://gitlab.com/dkg/e2e-mail-guidance or by e-mail to the author.
Please direct all significant commentary to the public IETF LAMPS mailing list: spasm@ietf.org</t>
      <section anchor="document-history" numbered="true" toc="default">
        <name>Document History</name>
      </section>
    </section>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The set of constructs and recommendations in this document are derived from discussions with many different implementers, including
Alexey Melnikov,
Bernie Hoeneisen,
Bjarni Runar Einarsson,
David Bremner,
Holger Krekel,
Jameson Rollins,
juga,
Patrick Brunschwig, and
Vincent Breitmoser.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC3156" target="https://www.rfc-editor.org/info/rfc3156">
          <front>
            <title>MIME Security with OpenPGP</title>
            <seriesInfo name="DOI" value="10.17487/RFC3156"/>
            <seriesInfo name="RFC" value="3156"/>
            <author initials="M." surname="Elkins" fullname="M. Elkins">
              <organization/>
            </author>
            <author initials="D." surname="Del Torto" fullname="D. Del Torto">
              <organization/>
            </author>
            <author initials="R." surname="Levien" fullname="R. Levien">
              <organization/>
            </author>
            <author initials="T." surname="Roessler" fullname="T. Roessler">
              <organization/>
            </author>
            <date year="2001" month="August"/>
            <abstract>
              <t>This document describes how the OpenPGP Message Format can be used to provide privacy and authentication using the Multipurpose Internet Mail Extensions (MIME) security content types described in RFC 1847. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC4289" target="https://www.rfc-editor.org/info/rfc4289">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures</title>
            <seriesInfo name="DOI" value="10.17487/RFC4289"/>
            <seriesInfo name="RFC" value="4289"/>
            <seriesInfo name="BCP" value="13"/>
            <author initials="N." surname="Freed" fullname="N. Freed">
              <organization/>
            </author>
            <author initials="J." surname="Klensin" fullname="J. Klensin">
              <organization/>
            </author>
            <date year="2005" month="December"/>
            <abstract>
              <t>This document specifies IANA registration procedures for MIME external body access types and content-transfer-encodings.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8551" target="https://www.rfc-editor.org/info/rfc8551">
          <front>
            <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
            <seriesInfo name="DOI" value="10.17487/RFC8551"/>
            <seriesInfo name="RFC" value="8551"/>
            <author initials="J." surname="Schaad" fullname="J. Schaad">
              <organization/>
            </author>
            <author initials="B." surname="Ramsdell" fullname="B. Ramsdell">
              <organization/>
            </author>
            <author initials="S." surname="Turner" fullname="S. Turner">
              <organization/>
            </author>
            <date year="2019" month="April"/>
            <abstract>
              <t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0.  S/MIME provides a consistent way to send and receive secure MIME data.  Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality.  Compression can be used to reduce data size.  This document obsoletes RFC 5751.</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="EFAIL" target="https://efail.de">
          <front>
            <title>EFAIL</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.draft-bre-openpgp-samples-01" target="http://www.ietf.org/internet-drafts/draft-bre-openpgp-samples-01.txt">
          <front>
            <title>OpenPGP Example Keys and Certificates</title>
            <seriesInfo name="Internet-Draft" value="draft-bre-openpgp-samples-01"/>
            <author initials="B" surname="Einarsson" fullname="Bjarni Einarsson">
              <organization/>
            </author>
            <author initials="j" surname="juga" fullname="juga">
              <organization/>
            </author>
            <author initials="D" surname="Gillmor" fullname="Daniel Gillmor">
              <organization/>
            </author>
            <date month="December" day="20" year="2019"/>
            <abstract>
              <t>The OpenPGP development community benefits from sharing samples of signed or encrypted data.  This document facilitates such collaboration by defining a small set of OpenPGP certificates and keys for use when generating such samples.</t>
            </abstract>
          </front>
          <format type="PDF" target="http://www.ietf.org/internet-drafts/draft-bre-openpgp-samples-01.pdf"/>
        </reference>
        <reference anchor="I-D.draft-dkg-lamps-samples-02" target="http://www.ietf.org/internet-drafts/draft-dkg-lamps-samples-02.txt">
          <front>
            <title>S/MIME Example Keys and Certificates</title>
            <seriesInfo name="Internet-Draft" value="draft-dkg-lamps-samples-02"/>
            <author initials="D" surname="Gillmor" fullname="Daniel Gillmor">
              <organization/>
            </author>
            <date month="December" day="24" year="2019"/>
            <abstract>
              <t>The S/MIME development community benefits from sharing samples of signed or encrypted data.  This document facilitates such collaboration by defining a small set of X.509v3 certificates and keys for use when generating such samples.</t>
            </abstract>
          </front>
          <format type="PDF" target="http://www.ietf.org/internet-drafts/draft-dkg-lamps-samples-02.pdf"/>
        </reference>
        <reference anchor="RFC3274" target="https://www.rfc-editor.org/info/rfc3274">
          <front>
            <title>Compressed Data Content Type for Cryptographic Message Syntax (CMS)</title>
            <seriesInfo name="DOI" value="10.17487/RFC3274"/>
            <seriesInfo name="RFC" value="3274"/>
            <author initials="P." surname="Gutmann" fullname="P. Gutmann">
              <organization/>
            </author>
            <date year="2002" month="June"/>
            <abstract>
              <t>This document defines a format for using compressed data as a Cryptographic Message Syntax (CMS) content type.  Compressing data before transmission provides a number of advantages, including the elimination of data redundancy which could help an attacker, speeding up processing by reducing the amount of data to be processed by later steps (such as signing or encryption), and reducing overall message size. Although there have been proposals for adding compression at other levels (for example at the MIME or SSL level), these don't address the problem of compression of CMS content unless the compression is supplied by an external means (for example by intermixing MIME and CMS). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC4880" target="https://www.rfc-editor.org/info/rfc4880">
          <front>
            <title>OpenPGP Message Format</title>
            <seriesInfo name="DOI" value="10.17487/RFC4880"/>
            <seriesInfo name="RFC" value="4880"/>
            <author initials="J." surname="Callas" fullname="J. Callas">
              <organization/>
            </author>
            <author initials="L." surname="Donnerhacke" fullname="L. Donnerhacke">
              <organization/>
            </author>
            <author initials="H." surname="Finney" fullname="H. Finney">
              <organization/>
            </author>
            <author initials="D." surname="Shaw" fullname="D. Shaw">
              <organization/>
            </author>
            <author initials="R." surname="Thayer" fullname="R. Thayer">
              <organization/>
            </author>
            <date year="2007" month="November"/>
            <abstract>
              <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format.  It is not a step-by-step cookbook for writing an application.  It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network.  It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
              <t>OpenPGP software uses a combination of strong public-key and symmetric cryptography to provide security services for electronic communications and data storage.  These services include confidentiality, key management, authentication, and digital signatures.  This document specifies the message formats used in OpenPGP.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC5322" target="https://www.rfc-editor.org/info/rfc5322">
          <front>
            <title>Internet Message Format</title>
            <seriesInfo name="DOI" value="10.17487/RFC5322"/>
            <seriesInfo name="RFC" value="5322"/>
            <author initials="P." surname="Resnick" fullname="P. Resnick" role="editor">
              <organization/>
            </author>
            <date year="2008" month="October"/>
            <abstract>
              <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages.  This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC5355" target="https://www.rfc-editor.org/info/rfc5355">
          <front>
            <title>Threats Introduced by Reliable Server Pooling (RSerPool) and Requirements for Security in Response to Threats</title>
            <seriesInfo name="DOI" value="10.17487/RFC5355"/>
            <seriesInfo name="RFC" value="5355"/>
            <author initials="M." surname="Stillman" fullname="M. Stillman" role="editor">
              <organization/>
            </author>
            <author initials="R." surname="Gopal" fullname="R. Gopal">
              <organization/>
            </author>
            <author initials="E." surname="Guttman" fullname="E. Guttman">
              <organization/>
            </author>
            <author initials="S." surname="Sengodan" fullname="S. Sengodan">
              <organization/>
            </author>
            <author initials="M." surname="Holdrege" fullname="M. Holdrege">
              <organization/>
            </author>
            <date year="2008" month="September"/>
            <abstract>
              <t>Reliable Server Pooling (RSerPool) is an architecture and set of protocols for the management and access to server pools supporting highly reliable applications and for client access mechanisms to a server pool.  This document describes security threats to the RSerPool architecture and presents requirements for security to thwart these threats.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC6376" target="https://www.rfc-editor.org/info/rfc6376">
          <front>
            <title>DomainKeys Identified Mail (DKIM) Signatures</title>
            <seriesInfo name="DOI" value="10.17487/RFC6376"/>
            <seriesInfo name="RFC" value="6376"/>
            <seriesInfo name="STD" value="76"/>
            <author initials="D." surname="Crocker" fullname="D. Crocker" role="editor">
              <organization/>
            </author>
            <author initials="T." surname="Hansen" fullname="T. Hansen" role="editor">
              <organization/>
            </author>
            <author initials="M." surname="Kucherawy" fullname="M. Kucherawy" role="editor">
              <organization/>
            </author>
            <date year="2011" month="September"/>
            <abstract>
              <t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message.  This can be an author's organization, an operational relay, or one of their agents.  DKIM separates the question of the identity of the Signer of the message from the purported author of the message.  Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key.  Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t>
              <t>This memo obsoletes RFC 4871 and RFC 5672.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="test-vectors" numbered="true" toc="default">
      <name>Test Vectors</name>
      <t>FIXME: This document should contain examples of well-formed and malformed messages using cryptographic key material and certificates from <xref target="I-D.draft-bre-openpgp-samples-01" format="default"/> and  <xref target="I-D.draft-dkg-lamps-samples-02" format="default"/>.</t>
      <t>It may also include example renderings of these messages.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Z3WgIP4Pw0ZdaIVsAAA=

-->

</rfc>
