<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version  (Ruby 3.1.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-lamps-e2e-mail-guidance-07" category="info" submissionType="IETF">
  <front>
    <title>Guidance on End-to-End E-mail Security</title>

    <author initials="D. K." surname="Gillmor" fullname="Daniel Kahn Gillmor" role="editor">
      <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>
    <author initials="B." surname="Hoeneisen" fullname="Bernie Hoeneisen" role="editor">
      <organization>pEp Foundation</organization>
      <address>
        <postal>
          <street>Oberer Graben 4</street>
          <city>CH-8400 Winterthur</city>
          <country>Switzerland</country>
        </postal>
        <email>bernie.hoeneisen@pep.foundation</email>
        <uri>https://pep.foundation/</uri>
      </address>
    </author>
    <author initials="A." surname="Melnikov" fullname="Alexey Melnikov" role="editor">
      <organization>Isode Ltd</organization>
      <address>
        <postal>
          <street>14 Castle Mews</street>
          <city>Hampton, Middlesex</city>
          <code>TW12 2NP</code>
          <country>UK</country>
        </postal>
        <email>alexey.melnikov@isode.com</email>
      </address>
    </author>

    <date year="2023" month="April" day="25"/>

    <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>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://dkg.gitlab.io/e2e-mail-guidance/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-e2e-mail-guidance/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        LAMPS Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/dkg/e2e-mail-guidance"/>.</t>
    </note>


  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>E-mail end-to-end security using S/MIME (<xref target="RFC8551"/>) and PGP/MIME (<xref target="RFC3156"/>) cryptographic standards can provide integrity, authentication and confidentiality to MIME (<xref target="RFC4289"/>) e-mail messages.</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"></xref>).</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>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<section anchor="terminology"><name>Terminology</name>

<t>For the purposes of this document, we define the following concepts:</t>

<t><list style="symbols">
  <t><em>MUA</em> is short for Mail User Agent; an e-mail client.</t>
  <t><em>Protection</em> of message data refers to cryptographic encryption and/or signatures, providing confidentiality, authenticity, and/or integrity.</t>
  <t><em>Cryptographic Layer</em>, <em>Cryptographic Envelope</em>, <em>Cryptographic Payload</em>, <em>Cryptographic Summary</em>, and <em>Errant Cryptographic Layer</em> are defined in <xref target="cryptographic-structure"/></t>
  <t>A <em>well-formed</em> e-mail message with cryptographic protection has both a <em>Cryptographic Envelope</em> and a <em>Cryptographic Payload</em>.</t>
  <t><em>Structural Headers</em> are documented in <xref target="structural-headers"/>.</t>
  <t><em>User-Facing Headers</em> are documented in <xref target="user-facing-headers"/>.</t>
  <t><em>Main Body Part</em> is the part (or parts) that are typically rendered to the user as the message itself (not "as an attachment").  See <xref target="main-body-part"/>.</t>
</list></t>

<section anchor="structural-headers"><name>Structural Headers</name>

<t>A message header field named <spanx style="verb">MIME-Version</spanx>, or whose name begins with <spanx style="verb">Content-</spanx> is referred to in this document as a "structural" header.
This is a less-ambiguous name for what <xref target="RFC2045"/> calls "MIME Header Fields".</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:</t>

<t><list style="symbols">
  <t><spanx style="verb">MIME-Version</spanx></t>
  <t><spanx style="verb">Content-Type</spanx></t>
  <t><spanx style="verb">Content-Transfer-Encoding</spanx></t>
  <t><spanx style="verb">Content-Disposition</spanx></t>
</list></t>

</section>
<section anchor="user-facing-headers"><name>User-Facing Headers</name>

<t>Of all the headers that an e-mail message may contain, only a handful are typically presented directly to the user.
The user-facing headers are:</t>

<t><list style="symbols">
  <t><spanx style="verb">Subject</spanx></t>
  <t><spanx style="verb">From</spanx></t>
  <t><spanx style="verb">To</spanx></t>
  <t><spanx style="verb">Cc</spanx></t>
  <t><spanx style="verb">Date</spanx></t>
  <t><spanx style="verb">Reply-To</spanx></t>
  <t><spanx style="verb">Followup-To</spanx></t>
</list></t>

<t>The above is a complete list.  No other headers are considered "user-facing".</t>

<t>Other headers may affect the visible rendering of the message (e.g., <spanx style="verb">References</spanx> and <spanx style="verb">In-Reply-To</spanx> may affect the placement of a message in a threaded discussion), but they are not directly displayed to the user and so are not considered "user-facing".</t>

</section>
</section>
</section>
<section anchor="usability"><name>Usability</name>

<t>Any MUA that enables its user to transition from unprotected messages to messages with end-to-end cryptographic protection needs to consider how the user understands this transition.
That said, the primary goal of the user of an MUA is communication -- so interface elements that get in the way of communication should be avoided where possible.</t>

<t>Furthermore, it is likely is that the user will continue to encounter unprotected messages, and may need to send unprotected messages (for example, if a given recipient cannot handle cryptographic protections).
This means that the MUA needs to provide the user with some guidance, so that they understand what protections any given message or conversation has.
But the user should not be overwhelmed with choices or presented with unactionable information.</t>

<section anchor="simplicity"><name>Simplicity</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>

<t>See <xref target="types-of-protection"/> for more detail about mental models and cryptographic status.</t>

</section>
<section anchor="similar-ux"><name>E-mail Users Want a Familiar Experience</name>

<t>A person communicating over the Internet today often has many options for reaching their desired correspondent, including web-based bulletin boards, contact forms, and instant messaging services.</t>

<t>E-mail offers a few distinctions from these other systems, most notably features like:</t>

<t><list style="symbols">
  <t>Ubiquity: Most correspondents will have an e-mail address, while not everyone is present on every alternate messaging service,</t>
  <t>Federation: interaction between users on distinct domains who have not agreed on a common communications provider is still possible, and</t>
  <t>User Control: the user can interact with the e-mail system using a MUA of their choosing, including automation and other control over their preferred and/or customized workflow.</t>
</list></t>

<t>Other systems (like some popular instant messaging applications, such as WhatsApp and Signal Private Messenger) offer built-in end-to-end cryptographic protections by default, which are simpler for the user to understand.
("All the messages I see on Signal are confidential and integrity-protected" is a clean user story)</t>

<t>A user of e-mail is likely using e-mail instead of other systems because of the distinctions outlined above.
When adding end-to-end cryptographic protection to an e-mail endpoint, care should be taken not to negate any of the distinct features of e-mail as a whole.
If these features are violated to provide end-to-end crypto, the user may just as well choose one of the other systems that don't have the drawbacks that e-mail has.
Implmenters should try to provide end-to-end protections that retain the familiar experience of e-mail itself.</t>

<t>Furthermore, an e-mail user is likely to regularly interact with other e-mail correspondents who <em>cannot</em> handle or produce end-to-end cryptographic protections.
Care should be taken that enabling cryptography in a MUA does not inadvertently limit the ability of the user to interact with legacy correspondents.</t>

</section>
<section anchor="security-indicators"><name>Warning About Failure vs. Announcing Success</name>

<t>Moving the web from http to https offers useful historical similarities to adding end-to-end encryption to e-mail.</t>

<t>In particular, the indicators of what is "secure" vs. "insecure" for web browsers have changed over time.
For example, years ago the default experience was http, and https sites were flagged with "secure" indicators like a lock icon.
In 2018, some browsers reversed that process by downplaying https, and instead visibly marking http as "not secure" (see <xref target="chrome-indicators"></xref>).</t>

<t>By analogy, when the user of a MUA first enables end-to-end cryptographic protection, it's likely that they will want to see which messages <em>have</em> protection.
But a user whose e-mail communications are entirely end-to-end protected might instead want to know which messages do <em>not</em> have the expected protections.</t>

<t>Note also that some messages are expected to be confidential, but other messages are expected to be public -- the types of protection (see <xref target="types-of-protection"/>) that apply to each particular message will be different.
And the types of protection that are <em>expected</em> to be present in any context might differ (for example, by sender, by thread, or by date).</t>

<t>It is out of scope for this document to define expectations about protections for any given message, but an implementer who cares about usable experience should be deliberate and judicious about the expectations their interface assumes that the user has in a given context.</t>

</section>
</section>
<section anchor="types-of-protection"><name>Types of Protection</name>

<t>A given message might be:</t>

<t><list style="symbols">
  <t>signed,</t>
  <t>encrypted,</t>
  <t>both signed and encrypted, or</t>
  <t>none of the above.</t>
</list></t>

<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 anchor="simple-mental-model"><name>Simplified Mental Model</name>

<t>To the extent that an e-mail message actually does have end-to-end cryptographic protections, those protections need to be visible and comprehensible to the end user.
If the user is unaware of the protections, then they do not extend all the way to the "end".</t>

<t>However, most users do not have (or want to have) a sophisticated mental model of what kinds of protections can be associated with a given message.
Even the four states above approach the limits of complexity for an interface for normal users.</t>

<t>While <xref target="no-encrypted-only"/> recommends avoiding deliberate creation of encrypted-only messages, some messages may end up in the encrypted-only state due to signature failure or certificate revocation.</t>

<t>A simple model for the user could be that a message is in one of three normal states:</t>

<t><list style="symbols">
  <t>Unprotected</t>
  <t>Verified (has a valid signature from the apparent sender of the message)</t>
  <t>Confidential (meaning, encrypted, with a valid signature from the apparent sender of the message)</t>
</list></t>

<t>And one error state:</t>

<t><list style="symbols">
  <t>Encrypted But Unverified (meaning, encrypted without a valid signature from the apparent sender of the message)</t>
</list></t>

<t>Note that this last state is not "Confidential" (a secret shared exclusively between the participants in the communication) because the recipient does not know for sure who sent it.</t>

<t>In an ecosystem where encrypted-only messages are never deliberately sent (see <xref target="no-encrypted-only"/>), representing an Encrypted But Unverified message as a type of user-visible error is not unreasonable.</t>

<t>Alternately, a MUA may prefer to represent the state of a Encrypted but Unverified message to the user as though it was Unprotected, since no verification is possible.
However the MUA represents the message to the user, though, it <bcp14>MUST NOT</bcp14> leak cleartext of an encrypted message (even an Encrypted but Unverified message) in subsequent replies (see <xref target="composing-reply"/>) or similar replications of the message.</t>

<t>Note that a cleartext message with an invalid signature <bcp14>SHOULD NOT</bcp14> be represented to the user as anything other than Unprotected (see <xref target="signature-failures"/>).</t>

<t>In a messy legacy ecosystem, a MUA may prefer instead to represent "Signed" and "Encrypted" as orthogonal states of any given message, at the cost of an increase in the complexity of the user's mental model.</t>

</section>
<section anchor="one-cryptographic-status-per-message"><name>One Cryptographic Status Per Message</name>

<t>Some MUAs may attempt to generate multiple copies of a given e-mail message, with different copies offering different types of protection (for example, opportunistically encrypting on a per-recipient basis).
A message resulting from this approach will have a cryptographic state that few users will understand.
Even if the sender understands the different statuses of the different copies, the recipients of the messages may not understand (each recipient might not even know about the other copies).
See for example the discussion in <xref target="mixed-recipients"/> for how this can go wrong.</t>

<t>For comprehensibility, a MUA <bcp14>SHOULD NOT</bcp14> create multiple copies of a given message that differ in the types of end-to-end cryptographic protections afforded.</t>

<t>For opportunistic cryptographic protections that are not surfaced to the user (that is, that are not end-to-end), other mechanisms like transport encryption (<xref target="RFC3207"/>) or domain-based signing (<xref target="RFC6376"/>) may be preferable.
These opportunistic protections are orthogonal to the end-to-end protections described in this document.</t>

<t>To the extent that opportunistic protections are made visible to the user for a given copy of a message, a reasonable MUA will distinguish that status from the message's end-to-end cryptographic status.
But the potential confusion caused by rendering this complex, hybrid state may not be worth the value of additional knowledge gained by the user.
The benefits of opportunistic protections accrue (or don't) even without visibility to the user.</t>

<t>The user needs a single clear, simple, and correct indication about the end-to-end cryptographic status of any given message.
See <xref target="cryptographic-summary"/> for more details.</t>

</section>
</section>
<section anchor="cryptographic-structure"><name>Cryptographic MIME Message Structure</name>

<t>Implementations use the structure of an e-mail message to establish (when sending) and understand (when receiving) the cryptographic status of the message.
This section establishes some conventions about how to think about message structure.</t>

<section anchor="cryptographic-layer"><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"><name>S/MIME Cryptographic Layers</name>

<t>For S/MIME <xref target="RFC8551"></xref>, 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"><name>S/MIME Multipart Signed Cryptographic Layer</name>

<figure><artwork><![CDATA[
└┬╴multipart/signed; protocol="application/pkcs7-signature"
 ├─╴[protected part]
 └─╴application/pkcs7-signature
]]></artwork></figure>

<t>This MIME layer offers authentication and integrity.</t>

</section>
<section anchor="smime-pkcs7-signed-data"><name>S/MIME PKCS7 signed-data Cryptographic Layer</name>

<figure><artwork><![CDATA[
└─╴application/pkcs7-mime; smime-type="signed-data"
 ⇩ (unwraps to)
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers authentication and integrity.</t>

</section>
<section anchor="smime-pkcs7-enveloped-data"><name>S/MIME PKCS7 enveloped-data Cryptographic Layer</name>

<figure><artwork><![CDATA[
└─╴application/pkcs7-mime; smime-type="enveloped-data"
 ↧ (decrypts to)
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers confidentiality.</t>

</section>
<section anchor="smime-pkcs7-authenveloped-data"><name>S/MIME PKCS7 authEnveloped-data Cryptographic Layer</name>

<figure><artwork><![CDATA[
└─╴application/pkcs7-mime; smime-type="authEnveloped-data"
 ↧ (decrypts to)
 └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer offers confidentiality and integrity.</t>

<t>Note that <spanx style="verb">enveloped-data</spanx> (<xref target="smime-pkcs7-enveloped-data"/>) and <spanx style="verb">authEnveloped-data</spanx> (<xref target="smime-pkcs7-authenveloped-data"/>) have identical message structure and very similar semantics.
The only difference between the two is ciphertext malleability.</t>

<t>The examples in this document only include <spanx style="verb">enveloped-data</spanx>, but the implications for that layer apply to <spanx style="verb">authEnveloped-data</spanx> as well.</t>

</section>
<section anchor="pkcs7-compression-is-not-a-cryptographic-layer"><name>PKCS7 Compression is NOT a Cryptographic Layer</name>

<t>The Cryptographic Message Syntax (CMS) provides a MIME compression layer (<spanx style="verb">smime-type="compressed-data"</spanx>), as defined in <xref target="RFC3274"/>.
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"><name>PGP/MIME Cryptographic Layers</name>

<t>For PGP/MIME <xref target="RFC3156"></xref> there are two forms of Cryptographic Layers, signing and encryption.</t>

<section anchor="pgpmime-multipart-signed"><name>PGP/MIME Signing Cryptographic Layer (multipart/signed)</name>

<figure><artwork><![CDATA[
└┬╴multipart/signed; protocol="application/pgp-signature"
 ├─╴[protected part]
 └─╴application/pgp-signature
]]></artwork></figure>

<t>This MIME layer offers authenticity and integrity.</t>

</section>
<section anchor="pgpmime-multipart-encrypted"><name>PGP/MIME Encryption Cryptographic Layer (multipart/encrypted)</name>

<figure><artwork><![CDATA[
└┬╴multipart/encrypted
 ├─╴application/pgp-encrypted
 └─╴application/octet-stream
  ↧ (decrypts to)
  └─╴[protected part]
]]></artwork></figure>

<t>This MIME layer can offer any of:</t>

<t><list style="symbols">
  <t>confidentiality (via a Symmetrically Encrypted Data Packet, see <xref section="5.7" sectionFormat="of" target="RFC4880"/>; a MUA <bcp14>MUST NOT</bcp14> generate this form due to ciphertext malleability)</t>
  <t>confidentiality and integrity (via a Symmetrically Encrypted Integrity Protected Data Packet (SEIPD), see <xref section="5.13" sectionFormat="of" target="RFC4880"/>), or</t>
  <t>confidentiality, integrity, and authenticity all together (by including an OpenPGP Signature Packet within the SEIPD).</t>
</list></t>

</section>
</section>
</section>
<section anchor="cryptographic-envelope"><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"/>).</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"/>.</t>

</section>
<section anchor="cryptographic-payload"><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"><name>Types of Cryptographic Envelope</name>

<section anchor="simple-cryptographic-envelopes"><name>Simple Cryptographic Envelopes</name>

<t>As described above, if the "protected part" identified in the section 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 <bcp14>MAY</bcp14> use the simple MIME structure from <xref target="pgpmime-multipart-encrypted"/> by ensuring that the <xref target="RFC4880"></xref> Encrypted Message within the <spanx style="verb">application/octet-stream</spanx> part contains an <xref target="RFC4880"></xref> Signed Message (the final option described in <xref target="pgpmime-multipart-encrypted"/>.</t>

</section>
<section anchor="multilayer-cryptographic-envelopes"><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>

<figure><artwork><![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></figure>

<t>When handling such a message, the properties of the Cryptographic Envelope are derived from the series <spanx style="verb">A</spanx>, <spanx style="verb">C</spanx>.</t>

<t>As noted in <xref target="simple-cryptographic-envelopes"/>, PGP/MIME applications also have a simpler MIME construction available with the same cryptographic properties.</t>

</section>
</section>
<section anchor="errant-cryptographic-layers"><name>Errant Cryptographic 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 <bcp14>SHOULD NOT</bcp14> 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"/>.</t>

<section anchor="mailing-list-wrapping"><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>

<figure><artwork><![CDATA[
H └┬╴multipart/mixed
I  ├┬╴multipart/signed
J  │├─╴text/plain
K  │└─╴application/pgp-signature
L  └─╴text/plain
]]></artwork></figure>

<t>In this message, <spanx style="verb">L</spanx> is the footer added by the mailing list.  <spanx style="verb">I</spanx> is now an Errant Cryptographic Layer.</t>

<t>Note that this message has no Cryptographic Envelope at all.</t>

<t>It is <bcp14>NOT RECOMMENDED</bcp14> to produce e-mail messages with this structure, because the data in part <spanx style="verb">L</spanx> may appear to the user as though it were part of <spanx style="verb">J</spanx>, though they have different cryptographic properties.
In particular, if the user believes that the message is signed, but cannot distinguish <spanx style="verb">L</spanx> from <spanx style="verb">J</spanx> then the author of <spanx style="verb">L</spanx> can effectively tamper with content of the signed message, breaking the user's expectation of integrity and authenticity.</t>

</section>
<section anchor="baroque-example"><name>A Baroque Example</name>

<t>Consider a message with the following overcomplicated structure:</t>

<figure><artwork><![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></figure>

<t>The 3 Cryptographic Layers in such a message are rooted in parts <spanx style="verb">M</spanx>, <spanx style="verb">Q</spanx>, and <spanx style="verb">S</spanx>.
But the Cryptographic Envelope of the message consists only of the properties derived from the series <spanx style="verb">M</spanx>, <spanx style="verb">Q</spanx>.
The Cryptographic Payload of the message is part <spanx style="verb">R</spanx>.
Part <spanx style="verb">S</spanx> 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 <bcp14>NOT RECOMMENDED</bcp14> 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 <spanx style="verb">T</spanx> compared to part <spanx style="verb">V</spanx>.</t>

</section>
</section>
<section anchor="cryptographic-summary"><name>Cryptographic Summary</name>

<t>The cryptographic status of an e-mail message with end-to-end cryptographic protections is known as the Cryptographic Summary.
A reasonable, simple Cryptographic Summary is derived from the aggregate properties of the layers in the Cryptographic Envelope.
This is a conceptual tool and a feature that a MUA can use to guide behavior and user experience, but it is not necessarily always directly exposed in any given user interface.
See <xref target="well-formed"/> for guidance and considerations about rendering the Cryptographic Summary to the user.</t>

</section>
</section>
<section anchor="message-composition"><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"><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>

<t><list style="symbols">
  <t><spanx style="verb">origbody</spanx>: the traditional unprotected message body as a well-formed MIME tree (possibly just a single MIME leaf part).
As a well-formed MIME tree, <spanx style="verb">origbody</spanx> already has structural headers present (see <xref target="structural-headers"/>).</t>
  <t><spanx style="verb">origheaders</spanx>: the intended non-structural headers for the message, represented here as a list of <spanx style="verb">(h,v)</spanx> pairs, where <spanx style="verb">h</spanx> is a header field name and <spanx style="verb">v</spanx> is the associated value.</t>
  <t><spanx style="verb">crypto</spanx>: 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.</t>
</list></t>

<t>The algorithm returns a MIME object that is ready to be injected into the mail system:</t>

<t><list style="symbols">
  <t>Apply <spanx style="verb">crypto</spanx> to <spanx style="verb">origbody</spanx>, yielding MIME tree <spanx style="verb">output</spanx></t>
  <t>For each header name and value <spanx style="verb">(h,v)</spanx> in <spanx style="verb">origheaders</spanx>:
  <list style="symbols">
      <t>Add header <spanx style="verb">h</spanx> to <spanx style="verb">output</spanx> with value <spanx style="verb">v</spanx></t>
    </list></t>
  <t>Return <spanx style="verb">output</spanx></t>
</list></t>

</section>
<section anchor="sign-then-encrypt"><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>

<t><list style="symbols">
  <t>The details of the signature remain confidential, visible only to the parties capable of decryption.</t>
  <t>Any mail transport agent that modifies the message is unlikely to be able to accidentally break the signature.</t>
</list></t>

<t>A MUA <bcp14>SHOULD NOT</bcp14> generate an encrypted and signed message where the only signature is outside the encryption.</t>

</section>
<section anchor="no-encrypted-only"><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 <bcp14>SHOULD</bcp14> offer no more than three choices:</t>

<t><list style="symbols">
  <t>no end-to-end cryptographic protection</t>
  <t>Verified (signed only)</t>
  <t>Confidential (signed and encrypted)</t>
</list></t>

<t>Note that these choices correspond to the simplified mental model in <xref target="simple-mental-model"/>.</t>

</section>
<section anchor="composing-reply"><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 <bcp14>MUST</bcp14> either:</t>

<t><list style="symbols">
  <t>compose the reply with end-to-end encryption, or</t>
  <t>avoid including quoted text from the original message.</t>
</list></t>

<t>In general, MUAs <bcp14>SHOULD</bcp14> 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 <bcp14>SHOULD</bcp14> 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"/>.</t>

</section>
</section>
<section anchor="message-interpretation"><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="well-formed"><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 assemble the cryptographic properties of the Cryptographic Envelope into a Cryptographic Summary 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 <bcp14>MUST NOT</bcp14> 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 <bcp14>SHOULD</bcp14> not be rendered otherwise.</t>

</section>
<section anchor="errant-layers"><name>Errant Cryptographic Layers</name>

<t>If an incoming message has any Errant Cryptographic Layers, the interpreting MUA <bcp14>SHOULD</bcp14> ignore those layers when rendering the Cryptographic Summary of the message to the user.</t>

<section anchor="errant-signing-layer"><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>

<figure><artwork><![CDATA[
A └┬╴multipart/mixed
B  ├╴text/plain
C  ├┬╴multipart/signed
D  │├─╴image/jpeg
E  │└─╴application/pgp-signature
F  └─╴text/plain
]]></artwork></figure>

<t>Should be rendered identically to this:</t>

<figure><artwork><![CDATA[
A └┬╴multipart/mixed
B  ├─╴text/plain
D  ├─╴image/jpeg
F  └─╴text/plain
]]></artwork></figure>

<t>In such a situation, an MUA <bcp14>SHOULD NOT</bcp14> indicate in the Cryptographic Summary that the message is signed.</t>

<section anchor="exception-mailing-list-footers"><name>Exception: Mailing List Footers</name>

<t>The use case described in <xref target="mailing-list-wrapping"/> is common enough in some contexts, that a MUA <bcp14>MAY</bcp14> decide to handle it as a special exception.</t>

<t>If the MUA determines that the message comes from a mailing list (for example, it has a <spanx style="verb">List-ID</spanx> header), and it has a structure that appends a footer to a signing-only Cryptographic Layer with a valid signature, such as:</t>

<figure><artwork><![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></figure>

<t>or:</t>

<figure><artwork><![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></figure>

<t>Then, the MUA <bcp14>MAY</bcp14> 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 <bcp14>MUST</bcp14> distinguish the footer (part <spanx style="verb">L</spanx>) from the protected part (part <spanx style="verb">J</spanx>) 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>

<figure><artwork><![CDATA[
Cryptographic Protections: none
H └┬╴multipart/mixed
J  ├─╴[protected part, may be arbitrary MIME subtree]
L  └─╴[footer, typically text/plain]
]]></artwork></figure>

<t>or the "sender's view", which shows the Cryptographic Summary but hides the footer:</t>

<figure><artwork><![CDATA[
Cryptographic Protections: signed [details from part I]
J └─╴[protected part, may be arbitrary MIME subtree]
]]></artwork></figure>

</section>
</section>
<section anchor="errant-encryption-layer"><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 <bcp14>SHOULD</bcp14> decrypt the part.</t>

<t>In this case, though, the MUA <bcp14>MUST NOT</bcp14> 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>

<t>Furthermore, when decrypting an Errant Cryptographic Layer, the MUA <bcp14>MUST</bcp14> treat the decrypted cleartext as a distinct MIME subtree, and not attempt to merge or splice it together with any other part of the message.
This offers protection against the direct exfiltration (also known as EFAIL-DE) attacks described in <xref target="EFAIL"></xref> and so-called <spanx style="verb">multipart/oracle</spanx> attacks described in <xref target="ORACLE"></xref>.</t>

<section anchor="reply-to-errant-encryption"><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>When composing a reply to a message that has any encryption layer, even an errant one, the reply message <bcp14>SHOULD</bcp14> be marked for encryption, as noted in <xref target="composing-reply"/>.</t>

<t>When composing a reply to a message with an errant cryptographic layer, the MUA <bcp14>MUST NOT</bcp14> decrypt any errant cryptographic layers when generating quoted or attributed text.
This will typically mean either leaving the ciphertext itself in the generated reply message, or simply no generating any quoted or attributed text at all.
This offers protection against the reply-based attacks described in <xref target="EFAIL"></xref>.</t>

<t>In all circumstances, if the reply message cannot be encrypted (or if the user elects to not encrypt the reply), the composed reply <bcp14>MUST NOT</bcp14> include any material from the decrypted subpart.</t>

</section>
</section>
<section anchor="avoiding-non-mime-cryptographic-mechanisms"><name>Avoiding Non-MIME Cryptographic Mechanisms</name>

<t>In some cases, there may be a cryptographic signature or encryption that does not coincide with a MIME boundary.
For example so-called "PGP Inline" messages typically contain base64-encoded ("ASCII-armored", see <xref section="6" sectionFormat="of" target="RFC4880"/>) ciphertext, or within the content of a MIME part.</t>

<section anchor="do-not-validate-non-mime-signatures"><name>Do Not Validate Non-MIME Signatures</name>

<t>When encountering cryptographic signatures in these positions, a MUA <bcp14>MUST NOT</bcp14> attempt to validate any signature.
It is challenging to communicate to the user exactly which part of such a message is covered by the signature, so it is better to leave the message marked as unsigned.</t>

</section>
<section anchor="skip-or-isolate-non-mime-decryption-when-rendering"><name>Skip or Isolate Non-MIME Decryption When Rendering</name>

<t>When encountering what appears to be encrypted data not at a MIME boundary, the MUA <bcp14>MAY</bcp14> decline to decrypt the data at all.</t>

<t>During message rendering, if the MUA attempts decryption of such a non-MIME encrypted section of an e-mail, it <bcp14>MUST</bcp14> synthesize a separate MIME part to contain only the decrypted data, and not attempt to merge or splice that part together with any other part of the message.
Keeping such a section distinct and isolated from any other part of the message offers protection against the direct exfiltration attacks (also known as EFAIL-DE) described in <xref target="EFAIL"></xref>.</t>

</section>
<section anchor="do-not-decrypt-non-mime-decryption-when-replying"><name>Do Not Decrypt Non-MIME Decryption when Replying</name>

<t>When composing a reply to a message with such a non-MIME encrypted section, the MUA <bcp14>MUST NOT</bcp14> decrypt the any non-MIME encrypted section when generating quoted or attributed text, similar to the guidance in <xref target="reply-to-errant-encryption"/>.</t>

<t>This offers protection against the reply-based attacks described in <xref target="EFAIL"></xref>.</t>

</section>
</section>
</section>
<section anchor="forwarded-messages-with-cryptographic-protection"><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 <spanx style="verb">Content-Type: message/rfc822</spanx> (<xref target="RFC5322"/>) or <spanx style="verb">Content-Type: message/global</spanx> (<xref target="RFC5355"/>).</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 <bcp14>MUST NOT</bcp14> conflate the cryptographic protections of the forwarded message with the cryptographic protections of the incoming message.</t>

<t>The rendering MUA <bcp14>MAY</bcp14> render a Cryptographic 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, and cannot be spoofed either by the enclosing message or by the forwarded message.</t>

</section>
<section anchor="signature-failures"><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 <xref section="6.1" sectionFormat="of" target="RFC6376"/>).</t>

<t>A MUA <bcp14>SHOULD NOT</bcp14> 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 <bcp14>SHOULD</bcp14> 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>

<t><list style="symbols">
  <t>the signature is not cryptographically valid (the math fails).</t>
  <t>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 RSA)</t>
  <t>the signature is made by a certificate which the receiving MUA does not have access to.</t>
  <t>the certificate that made the signature was revoked.</t>
  <t>the certificate that made the signature was expired at the time that the signature was made.</t>
  <t>the certificate that made the signature does not correspond to the author of the message. (for X.509, there is no subjectAltName of type RFC822Name whose value matches an e-mail address found in <spanx style="verb">From:</spanx> or <spanx style="verb">Sender:</spanx>)</t>
  <t>the certificate that made the signature was not issued by an authority that the MUA user is willing to rely on for certifying the sender's e-mail address, and the user has no other reasonable indication that the certificate belongs to the sender's e-mail address.</t>
  <t>the signature indicates that it was made at a time much before or much after from the date of the message itself.</t>
</list></t>

<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="reasoning-about-message-parts"><name>Reasoning about Message Parts</name>

<t>When generating or rendering messages, it is useful to know what parts of the message are likely to be displayed, and how.
This section introduces some common terms that can be applied to parts within the Cryptographic Payload.</t>

<section anchor="main-body-part"><name>Main Body Part</name>

<t>When an e-mail message is composed or rendered to the user there is typically one main view that presents a (mostly textual) part of the message.</t>

<t>While the message itself may be constructed of several distinct MIME parts in a tree, the part that is rendered to the user is the "Main Body Part".</t>

<t>When rendering a message, one of the primary jobs of the receiving MUA is identifying which part (or parts) is the Main Body Part.
Typically, this is found by traversing the MIME tree of the message looking for a leaf node that has a primary content type of <spanx style="verb">text</spanx> (e.g. <spanx style="verb">text/plain</spanx> or <spanx style="verb">text/html</spanx>) and is not <spanx style="verb">Content-Disposition: attachment</spanx>.</t>

<t>MIME tree traversal follows the first child of every <spanx style="verb">multipart</spanx> node, with the exception of <spanx style="verb">multipart/alternative</spanx>.
When traversing a <spanx style="verb">multipart/alternative</spanx> node, all children should be scanned, with preference given to the last child node with a MIME type that the MUA is capable of rendering directly.</t>

<t>A MUA <bcp14>MAY</bcp14> offer the user a mechanism to prefer a particular MIME type within <spanx style="verb">multipart/alternative</spanx> instead of the last renderable child.
For example, a user may explicitly prefer a <spanx style="verb">text/plain</spanx> alternative part over <spanx style="verb">text/html</spanx>.</t>

<t>Note that due to uncertainty about the capabilities and configuration of the receiving MUA, the composing MUA <bcp14>SHOULD</bcp14> consider that multiple parts might be rendered as the Main Body Part when the message is ultimately viewed.</t>

<t>When composing a message, an originating MUA operating on behalf of an active user can identify which part (or parts) are the "main" parts: these are the parts the MUA generates from the user's editor.
Tooling that automatically generates e-mail messages should also have a reasonable estimate of which part (or parts) are the "main" parts, as they can be programmatically identified by the message author.</t>

<t>For a filtering program that attempts to transform an outbound message without any special knowledge about which parts are Main Body Parts, it can identify the likely parts by following the same routine as a receiving MUA.</t>

</section>
<section anchor="attachments"><name>Attachments</name>

<t>A message may contain one or more separated MIME parts that are intended for download or extraction.
Such a part is commonly called an "attachment", and is commonly identified by having <spanx style="verb">Content-Disposition: attachment</spanx>.</t>

<t>An MUA <bcp14>MAY</bcp14> identify a subpart as an attachment, or permit extraction of a subpart even when the subpart does not have <spanx style="verb">Content-Disposition: attachment</spanx>.</t>

<t>For a message with end-to-end cryptographic protection, any attachment <em><bcp14>MUST</bcp14></em> be included within the Cryptographic Payload.
If an attachment is found outside the Cryptographic Payload, then the message is not well-formed (see <xref target="well-formed"/>).</t>

<t>Some MUAs have tried to compose messages where each attachment is placed in its own cryptographic envelope.
Such a message is problematic for several reasons:</t>

<t><list style="symbols">
  <t>The attachments can be stripped, replaced, or reordered without breaking any cryptographic integrity mechanism.</t>
  <t>The resulting message may have a mix of cryptographic statuses (e.g. if a signature on one part fails but another succeeds, or if one part is encrypted and another is not).
This mix of statuses is difficult to represent to the user in a comprehensible way.</t>
</list></t>

</section>
<section anchor="mime-part-examples"><name>MIME Part Examples</name>

<t>Consider a common message with the folloiwing MIME structure:</t>

<figure><artwork><![CDATA[
M └─╴application/pkcs7-mime
   ↧ (decrypts to)
N  └─╴application/pkcs7-mime
    ⇩ (unwraps to)
O   └┬╴multipart/mixed
P    ├┬╴multipart/alternative
Q    │├─╴text/plain
R    │└─╴text/html
S    └─╴image/png
]]></artwork></figure>

<t>Parts M and N comprise the Cryptographic Envelope.</t>

<t>Parts Q and R are both Main Body Parts.</t>

<t>If part S is <spanx style="verb">Content-Disposition: attachment</spanx>, then it is an attachment.
If part S has no <spanx style="verb">Content-Disposition</spanx> header, it is potentially ambiguous whether it is an attachment or not.
If the sender prefers a specific behavior, it should explicitly set the <spanx style="verb">Content-Disposition</spanx> header on part S to either <spanx style="verb">inline</spanx> or <spanx style="verb">attachment</spanx> as guidance to the receiving MUA.</t>

<t>Consider also this alternate structure:</t>

<figure><artwork><![CDATA[
M └─╴application/pkcs7-mime
   ↧ (decrypts to)
N  └─╴application/pkcs7-mime
    ⇩ (unwraps to)
O   └┬╴multipart/alternative
P    ├─╴text/plain
Q    └┬╴multipart/related
R     ├─╴text/html
S     └─╴image/png
]]></artwork></figure>

<t>In this case, parts M and N are still the Cryptographic Envelope.</t>

<t>Parts P and R (the first two leaf nodes within each subtree of part O) are the Main Body Parts.</t>

<t>Part S is more likely not to be an attachment, as the subtree layout suggests that it is only relevant for the HTML version of the message.
For example, it might be rendered as an image within the HTML alternative.</t>

</section>
</section>
<section anchor="cert-management"><name>Certificate Management</name>

<t>A cryptographically-capable MUA typically maintains knowledge about certificates for the user's own account(s), as well as certificates for the peers that it communicates with.</t>

<section anchor="peer-certificates"><name>Peer Certificates</name>

<t>Most certificates that a cryptographically-capable MUA will use will be certificates belonging to the parties that the user communicates with through the MUA.
This section discusses how to manage the certificates that belong to such a peer.</t>

<t>The MUA will need to be able to discover X.509 certificates for each peer, cache them, and select among them when composing an encrypted message.</t>

<t>Detailed guidance about how to do this is beyond the scope of this document, but future revisions may bring it into scope (see <xref target="more-peer-certs"/>).</t>

<section anchor="peer-cert-selection"><name>Peer Certificate Selection</name>

<t>When composing an encrypted message, the MUA needs to select a certificate for each recipient that is capable of encryption.</t>

<t>To select such a certificate for a given destination e-mail address, the MUA should look through all of its known certificates and verify that <em>all</em> of the conditions below are met:</t>

<t><list style="symbols">
  <t>The certificate must be valid, not expired or revoked.</t>
  <t>It must have a subjectAltName of type rFC822Name whose contents match the destination address.
In particular, the local-part of the two addresses should be an exact bytewise match, and the domain parts of the two addresses should be matched by ensuring label equivalence across the full domain name, as described in <xref section="2.3.2.4" sectionFormat="of" target="RFC5890"/>.</t>
  <t>The algorithm OID in the certificate's SPKI is known to the MUA and capable of encryption.
Examples include:
  <list style="symbols">
      <t>rsaEncryption (OID 1.2.840.113549.1.1.1), with keyUsage (OID 2.5.29.15) extension present and the "key encipherment" bit (value 32) set.</t>
      <t>curveX25519 (OID 1.3.101.110) with keyUsage extension present and the "key agreement" bit (value 8) set.</t>
    </list></t>
  <t>If extendedKeyUsage (OID 2.5.29.37) is present, it contains at least one of the following OIDs: e-mail protection (OID 1.3.6.1.5.5.7.3.4), anyExtendedKeyUsage(OID 2.5.29.37.0).</t>
</list></t>

<t>A reasonable MUA may include more considerations when selecting a peer certificate as well, see <xref target="more-peer-cert-selection"/> for examples.</t>

</section>
</section>
<section anchor="local-certificates"><name>Local Certificates</name>

<t>The MUA also needs to know about one or more certificates associated with the user's e-mail account.
It is typically expected to have access to the secret key material associated with the public keys in those certificates.</t>

<t>While some basic guidance is offered here, it is beyond the scope of this document to describe all possible relevant guidance for local certificate and key material handling.
See <xref target="more-local-certs"/> for suggestions of guidance that a future version might bring into scope.</t>

<section anchor="local-certificate-setup"><name>Getting Certificates for the User</name>

<t>If the MUA does not have any certificate or secret key for the user, it <bcp14>SHOULD</bcp14> help the user to generate or acquire them with a minimum of difficulty.</t>

<section anchor="local-cert-smime"><name>User Certificates for S/MIME</name>

<t>For S/MIME, the user <bcp14>SHOULD</bcp14> have both a signing-capable certificate and an encryption-capable certificate (and the corresponding secret keys).
The MUA <bcp14>SHOULD NOT</bcp14> encourage the use of a single S/MIME certificate for both uses, to avoid possible key misuse.</t>

<t>The simplest and least helpful option for an S/MIME-capable MUA is for the MUA to permit the user to import a PKCS #12 (<xref target="RFC7292"/>) object that is expected to contain secret key material, end entity certificates for the user, and intermediate certification authority certificates that permit chaining from the end entity certs to widely-accepted trust anchors.
This is not particularly helpful because it requires the end user to produce the PKCS #12 object, which typically can only be done with the aid of a certification authority via non-standardized, labor-intensive, and error-prone procedures that most users do not understand.
Furthermore, manual import incurs ongoing labor by the user which most users are unprepared to do (see <xref target="local-cert-maintenance"/>).</t>

<t>A better approach is for the MUA to integrate some form of automated certificate issuance procedure, for example, by using the ACME protocol for end user S/MIME certificates (<xref target="RFC8823"/>).</t>

</section>
<section anchor="local-cert-pgp"><name>User Certificates for PGP/MIME</name>

<t>As distinct from S/MIME, OpenPGP (<xref target="RFC4880"/>) has a different set of common practices.
For one thing, a single OpenPGP certificate can contain both a signing-capable key and a distinct encryption-capable key, so only one certificate is needed for an e-mail user of OpenPGP, as long as the certificate has distinct key material for the different purposes.</t>

<t>Furthermore, a single OpenPGP certificate <bcp14>MAY</bcp14> be only self-signed, so the MUA can generate such a certificate entirely on its own.
Since an OpenPGP certificate <bcp14>MAY</bcp14> be certified by third parties (whether formal certification authorities or merely other well-connected peers) the MUA <bcp14>SHOULD</bcp14> offer affordances to help the user acquire and merge third party certifications on their certificate.
When doing this, the MUA should prioritize third-party certifications from entities that the user's peers are likely to know about and be willing to rely on.</t>

<t>Since an OpenPGP certificate can grow arbitrarily large with third-party certifications, the MUA should assist the user in pruning it to ensure that it remains a reasonable size when transmitting it to other parties.</t>

</section>
<section anchor="local-key-generation"><name>Generate Secret Key Material Locally</name>

<t>Regardless of protocol used (S/MIME or PGP), when producing certificates for the end user, the MUA <bcp14>SHOULD</bcp14> ensure that it has generated secret key material locally, and <bcp14>MUST NOT</bcp14> accept secret key material from an untrusted third party as the basis for the user's certificate.</t>

<t>An MUA that accepts secret key material from a third party cannot prevent that third party from retaining this material.
A third party with this level of access could decrypt messages intended to be confidential for the user, or could forge messages that would appear to come from the user.</t>

</section>
</section>
<section anchor="local-cert-maintenance"><name>Local Certificate Maintenance</name>

<t>The MUA <bcp14>SHOULD</bcp14> warn the user when/if:</t>

<t><list style="symbols">
  <t>The user's own certificate set does not include a valid, unexpired encryption-capable X.509 certificate, and a valid, unexpired signature-capable X.509 certificate.</t>
  <t>Any of the user's own certificates is due to expire in the next month (or at some other reasonable cadence).</t>
  <t>Any of the user's own certificates does not match the e-mail address associated with the user's account.</t>
  <t>Any of the user's own S/MIME certificates does not have a keyUsage extension.</t>
  <t>Any of the user's own S/MIME certificates does not contain an extendedKeyUsage extension.</t>
  <t>Any of the user's own S/MIME certificates would be considered invalid by the MUA for any other reason if it were a peer certificate.</t>
</list></t>

<t>An MUA that takes active steps to fix any of these problems before they arise is even more usable, but guidance on how to do active certificate maintenance is beyond scope for this current document (see <xref target="more-local-cert-maintenance"/>).</t>

</section>
<section anchor="sending-certificates"><name>Shipping Certificates in Outbound Messages</name>

<t>When sending mail, an MUA <bcp14>SHOULD</bcp14> include copies of the user's own certificates (and potentially other certificates) in each message to facilitate future communication.</t>

<t>The mechanism for including these certificates, and which certificates to include in the message, are protocol specific.</t>

<section anchor="shipping-certificates-in-smime-messages"><name>Shipping Certificates in S/MIME Messages</name>

<t>In any S/MIME SignedData object, certificates can be shipped in the "certificates" member.
In S/MIME EnvelopedData object, certificates can be shipped in the "originatorInfo.certs" member.</t>

<t>When a single S/MIME-protected e-mail message is encrypted and signed, it is usually sufficient to ship all the relevant certificates in the inner SignedData object's "certificates" member.</t>

<t>The S/MIME certificates shipped in such a message <bcp14>SHOULD</bcp14> include:</t>

<t><list style="symbols">
  <t>The user's own S/MIME signing certificate, so that signature on the current message can be validated.</t>
  <t>The user's own S/MIME encryption-capable certificate, so that the recipient can reply in encrypted form.</t>
  <t>On an encrypted message to multiple recipients, the encryption-capable peer certificates of the other recipients, so that any recipient can easily "reply all" without needing to search for certificates.</t>
  <t>Any intermediate certificates needed to chain all of the above to a widely-trusted set of root authorities.</t>
</list></t>

</section>
<section anchor="shipping-certificates-in-pgpmime-messages"><name>Shipping Certificates in PGP/MIME Messages</name>

<t>PGP/MIME does not have a single specific standard location for shipping certificates.</t>

<t>Some MUAs ship relevant OpenPGP certificates in a single MIME leaf of Content-Type "application/pgp-keys".
When such a message has cryptographic protections, to ensure that the message is well-formed, this kind of MIME part <bcp14>SHOULD</bcp14> be a leaf of the Cryptographic Payload, and not outside of it.
One problem with this approach is that it appears to recipients with legacy MUAs as an "attachment", which can lead to confusion if the user does not know how to use it.</t>

<t>Other implementations ship relevant OpenPGP certificates in "Autocrypt" or "Autocrypt-Gossip" message headers (see <xref target="AUTOCRYPT"/>).
To ensure that those headers receive the same cryptographic authenticity as the rest of the message, these headers <bcp14>SHOULD</bcp14> be protected as described in <xref target="I-D.ietf-lamps-header-protection"/>.</t>

<t>The OpenPGP certificates shipped in such a message <bcp14>SHOULD</bcp14> include:</t>

<t><list style="symbols">
  <t>The user's own OpenPGP certificate, capable of both signing and encryption, so that the user can validate the message's signature and can encrypt future messages</t>
  <t>On an encrypted message to multiple recipients, the OpenPGP certificates of the other recipients, so that any recipient can easily "reply all" without needing to search for certificates.</t>
</list></t>

</section>
</section>
</section>
</section>
<section anchor="common-pitfalls"><name>Common Pitfalls and Guidelines</name>

<t>This section highlights a few "pitfalls" and guidelines based on these discussions and lessons learned.</t>

<section anchor="reading-sent-messages"><name>Reading Sent Messages</name>

<t>When composing a message, a typical MUA will store a copy of the message sent in sender's Sent mail folder so that the sender can read it later.
If the message is an encrypted message, storing it encrypted requires some forethought to ensure that the sender can read it in the future.</t>

<t>It is a common and simple practice to encrypt the message not only to the recipients of the message, but also to the sender.
One advantage of doing this is that the message that is sent on the wire can be identical to the message stored in the sender's Sent mail folder.
This allows the sender to review and re-read the message even though it was encrypted.</t>

<t>There are at least three other approaches that are possible to ensure future readability by the sender of the message, but with different tradeoffs:</t>

<t><list style="symbols">
  <t>Encrypt two versions of the message: one to the recipients (this version is sent on the wire), and one to the sender only (this version is stored in the sender's Sent folder).
This approach means that the message stored in the Sent folder is not byte-for-byte identical to the message sent to the recipients.
In the event that message delivery has a transient failure, the MUA cannot simply re-submit the stored message into the SMTP system and expect it to be readable by the recipient.</t>
  <t>Store a cleartext version of the message in the Sent folder.
This presents a risk of information leakage: anyone with access to the Sent folder can read the contents of the message.
Furthermore, any attempt to re-send the message needs to also re-apply the cryptographic transformation before sending, or else the message contents will leak upon re-send.</t>
  <t>A final option is that the MUA can store a copy of the message's encryption session key.
Standard e-mail encryption mechanisms (e.g. S/MIME and PGP/MIME) are hybrid mechanisms: the asymmetric encryption steps simply encrypt a symmetric "session key", which is used to encrypt the message itself.
If the MUA stores the session key itself, it can use the session key to decrypt the Sent message without needing the Sent message to be decryptable by the user's own asymmetric key.
An MUA doing this must take care to store (and backup) its stash of session keys, because if it loses them it will not be able to read the sent messages; and if someone else gains access to them, they can decrypt the sent messages.
This has the additional consequence that any other MUA accessing the same Sent folder cannot decrypt the message unless it also has access to the stashed session key.</t>
</list></t>

</section>
<section anchor="message-headers"><name>Unprotected Message Headers</name>

<t>Many legacy cryptographically-aware MUAs only apply cryptographic protections to the body of the message, but leave the headers unprotected.
This gives rise to vulnerabilities like information leakage (e.g., the Subject line is visible to a passive intermediary) or message tampering (e.g., the Subject line is replaced, effectively changing the semantics of a signed message).
These are not only security vulnerabilities, but usability problems, because the distinction between what is a header and what is the body of a message is unclear to many end users, and requires a more complex mental model than is necessary.
Useful security comes from alignment between simple mental models and tooling.</t>

<t>To avoid these concerns, a MUA <bcp14>SHOULD</bcp14> implement header protection as described in <xref target="I-D.ietf-lamps-header-protection"/>.</t>

</section>
<section anchor="bcc-variants"><name>Composing an Encrypted Message with Bcc</name>

<t>When composing an encrypted message containing at least one recipient address in the <spanx style="verb">Bcc</spanx> header field, there is a risk that the encrypted message itself could leak information about the actual recipients, even if the <spanx style="verb">Bcc</spanx> header field does not mention the recipient.
For example, if the message clearly indicates which certificates it is encrypted to, the set of certificates can identify the recipients even if they are not named in the message headers.</t>

<t>Because of these complexities, there are several interacting factors that need to be taken into account when composing an encrypted message with Bcc'ed recipients.</t>

<t><list style="symbols">
  <t><xref section="3.6.3" sectionFormat="of" target="RFC5322"/> describes a set of choices about whether (and how) to populate the <spanx style="verb">Bcc</spanx> field explicitly on Bcc'ed copies of the message, and in the copy stored in the sender's <spanx style="verb">Sent</spanx> folder.</t>
  <t>When separate copies are made for <spanx style="verb">Bcc</spanx>ed recipients, should each separate copy <em>also</em> be encrypted to the named recipients, or just to the designated <spanx style="verb">Bcc</spanx> recipient?</t>
  <t>When a copy is stored in the <spanx style="verb">Sent</spanx> folder, should that copy also be encrypted to <spanx style="verb">Bcc</spanx>ed recipients? (see also <xref target="reading-sent-messages"/>)</t>
  <t>When a message is encrypted, if there is a mechanism to include the certificates of the recipients, whose certificates should be included?</t>
</list></t>

<section anchor="bcc-recommendation"><name>Simple Encryption with Bcc</name>

<t>Here is a simple approach that tries to minimize the total number of variants of the message created while leaving a coherent view of the message itself:</t>

<t><list style="symbols">
  <t>No cryptographic payload contains any <spanx style="verb">Bcc</spanx> header field.</t>
  <t>The main copy of the message is signed and encrypted to all named recipients and to the sender.
A copy of this message is also stored in the sender's <spanx style="verb">Sent</spanx> folder.</t>
  <t>Each <spanx style="verb">Bcc</spanx> recipient receives a distinct copy of the message, with an identical cryptographic payload, and the message is signed and encrypted to that specific recipient and all the named recipients.
These copies are not stored in the sender's <spanx style="verb">Sent</spanx> folder.</t>
  <t>To the extent that spare certificates are included in the message, each generated copy of the message should include certificates for the sender and for each named recipient.
Certificates for Bcc'ed recipients are not included in any message.</t>
</list></t>

<section anchor="rationale"><name>Rationale</name>

<t>The approach described in <xref target="bcc-recommendation"/>  aligns the list of cryptographic recipients as closely as possible with the set of named recipients, while still allowing a <spanx style="verb">Bcc</spanx>ed recipient to read their own copy, and to "Reply All" should they want to.</t>

<t>This should reduce user confusion on the receiving side: a recipient of such a message who naively looks at the user-facing headers from their own mailbox will have a good sense of what cryptographic treatments have been applied to the message.
It also simplifies message composition and user experience: the message composer sees fields that match their expectations about what will happen to the message.
Additionally, it may preserve the ability for a Bcc'ed recipient to retain their anonymity, should they need to offer the signed cryptographic payload to an outside party as proof of the original sender's intent without revealing their own identity.</t>

</section>
</section>
</section>
<section anchor="draft-messages"><name>Draft Messages</name>

<t>When composing a message, most MUAs offer the opportunity to save a copy of the as-yet-unsent message to a "Drafts" folder.
If that folder is itself stored somewhere not under the user's control (e.g. and IMAP mailbox), it would be a mistake to store the draft message in the clear, because its contents could leak.</t>

<t>This is the case even if the message is ultimately sent deliberately in the clear.
During message composition, the MUA does not know whether the message is intended to be sent encrypted or not.
For example, just before sending, the sender could decide to encrypt the message, and the MUA would have had no way of knowing.</t>

<t>Furthermore, when encrypting a draft message, the message <bcp14>SHOULD</bcp14> only be encrypted to the user's own certificate, or to some equivalent secret key that only the user possesses.
A draft message encrypted in this way can be decrypted when the user wants to resume composing the message, but cannot be read by anyone else, including a potential intended recipient.
Note that a draft message encrypted in this way will only be resumable by another MUA attached to the same mailbox if that other MUA has access to the user's decryption-capable secret key.
This shared access to key material is also likely necessary for useful interoperability, but is beyond the scope of this document (see <xref target="cross-mua-local-keys"/>).</t>

<t>The message should only be encrypted to its recipients upon actually sending the message.
No reasonable user expects their message's intended recipients to be able to read a message that is not yet complete.</t>

</section>
<section anchor="mixed-recipients"><name>Composing a Message to Heterogeneous Recipients</name>

<t>When sending a message that the user intends to be encrypted, it's possible that some recipients will be unable to receive an encrypted copy.
For example, when Carol composes a message to Alice and Bob, Carol's MUA may be able to find a valid encryption-capable certificate for Alice, but none for Bob.</t>

<t>In this situation, there are four possible strategies, each of which has a negative impact on the experience of using encrypted mail.
Carol's MUA can:</t>

<t><list style="numbers">
  <t>send encrypted to Alice and Bob, knowing that Bob will be unable to read the message.</t>
  <t>send encrypted to Alice only, dropping Bob from the message recipient list.</t>
  <t>send the message in the clear to both Alice and Bob.</t>
  <t>send an encrypted copy of the message to Alice, and a cleartext copy to Bob.</t>
</list></t>

<t>Each of these strategies has different drawbacks.</t>

<t>The problem with approach 1 is that Bob will receive unreadable mail.</t>

<t>The problem with approach 2 is that Carol's MUA will not send the message to Bob, despite Carol asking it to.</t>

<t>The problem with approach 3 is that Carol's MUA will not encrypt the message, despite Carol asking it to.</t>

<t>Approach 4 has two problems:</t>

<t><list style="symbols">
  <t>Carol's MUA will release a cleartext copy of the message, despite Carol asking it to send the message encrypted.</t>
  <t>If Alice wants to "reply all" to the message, she may not be able to find an encryption-capable certificate for Bob either.
This puts Alice in an awkward and confusing position, one that users are unlikely to understand.
In particular, if Alice's MUA is following the guidance about replies to encrypted messages in <xref target="composing-reply"/>, having received an encrypted copy will make Alice's Reply buffer behave in an unusual fashion.</t>
</list></t>

<t>This is particularly problematic when the second recipient is not "Bob" but in fact a public mailing list or other visible archive, where messages are simply never encrypted.</t>

<t>Carol is unlikely to understand the subtleties and negative downstream interactions involved with approaches 1 and 4, so presenting the user with those choices is not advised.</t>

<t>The most understandable approach for a MUA with an active user is to ask the user (when they hit "send") to choose between approach 2 and approach 3.
If the user declines to choose between 2 and 3, the MUA can drop them back to their message composition window and let them make alternate adjustments.</t>

<t>See also further discussion of these scenarios in <xref target="I-D.dkg-mail-cleartext-copy"/>.</t>

</section>
<section anchor="message-transport-protocol-proxy-a-dangerous-implementation-choice"><name>Message Transport Protocol Proxy: A Dangerous Implementation Choice</name>

<t>An implementor of end-to-end cryptographic protections may be tempted by a simple software design that piggybacks off of a mail protocol like SMTP Submission (<xref target="RFC6409"/>), IMAP (<xref target="RFC3501"/>), or JMAP (<xref target="RFC8621"/>) to handle message assembly and interpretation.
In such an architecture, a naive MUA speaks something like a "standard" protocol like SMTP, IMAP, or JMAP to a local proxy, and the proxy handles signing and encryption (outbound), and decryption and verification (inbound) internally on behalf of the user.
While such a "pluggable" architecture has the advantage that it is likely to be easy to apply to any mail user agent, it is problematic for the goals of end-to-end communication, especially in an existing cleartext ecosystem like e-mail, where any given message might be unsigned or signed, cleartext or encrypted.
In particular:</t>

<t><list style="symbols">
  <t>the user cannot easily and safely identify what protections any particular message has (including messages currently being composed), and</t>
  <t>the proxy itself is unaware of subtle nuances about the message that the MUA actually knows.</t>
</list></t>

<t>With a trustworthy and well-synchronized sidechannel or protocol extension between the MUA and the proxy, it is possible to deploy such an implementation safely, but the requirement for the sidechannel or extension eliminates the universal-deployability advantage of the scheme.</t>

<t>Similar concerns apply to any implementation bound by an API which operates on message objects alone, without any additional contextual parameters.</t>

<t>This section attempts to document some of the inherent risks involved with such an architecture.</t>

<section anchor="proxy-for-message-composition"><name>Dangers of a Submission Proxy for Message Composition</name>

<t>When composing and sending a message, the act of applying cryptographic protections has subtleties that cannot be directly expressed in the SMTP protocol used by Submission <xref target="RFC6409"/>, or in any other simple protocol that hands off a cleartext message for further processing.</t>

<t>For example, the sender cannot indicate via SMTP whether or not a given message <em>should</em> be encrypted (some messages, like those sent to a publicly archived mailing list, are pointless to encrypt), or select among multiple certificates for a recipient, if they exist (see <xref target="peer-cert-selection"/>).</t>

<t>Likewise, because such a proxy only interacts with the message when it is ready to be sent, it cannot indicate back to the user <em>during message composition</em> whether or not the message is able to be encrypted (that is, whether a valid certificate is available for each intended recipient).
A message author may write an entirely different message if they know that it will be protected end-to-end; but without this knowledge, the author is obliged either to write text that they presume will be intercepted, or to risk revealing sensitive content.</t>

<t>Even without encryption, deciding whether to sign or not (and which certificate to sign with, if more than one exists) is another choice that the proxy is ill-equipped to make.
The common message-signing techniques either render a message unreadable by any client that does not support cryptographic mail (i.e., PKCS7 signed-data), or appear as an attachment that can cause confusion to a naive recipient using a legacy client (i.e., multipart/signed).
If the sender knows that the recipient will not check signatures, they may prefer to leave a cleartext message without a cryptographic signature at all.</t>

<t>Furthermore, handling encryption properly depends on the context of any given message, which cannot be expressed by the MUA to the Submission proxy.
For example, decisions about how to handle encryption and quoted or attributed text may depend on the cryptographic status of the message that is being replied to (see <xref target="composing-reply"/>).</t>

<t>Additionally, such a proxy would need to be capable of managing the user's own key and certificate (see <xref target="local-certificates"/>).
How will the implementation indicate to the user when their own certificate is near expiry, for example?
How will any other error conditions be handled when communication with the user is needed?</t>

<t>While an extension to SMTP might be able to express all the necessary semantics that would allow a generic MUA to compose messages with standard cryptographic protections via a proxy, such an extension is beyond the scope of this document.
See <xref target="I-D.ietf-jmap-smime-sender-extensions"/> for an example of how a MUA using a proxy protocol might indicate signing and encryption instructions to its proxy.</t>

</section>
<section anchor="dangers-of-an-imap-proxy-for-message-rendering"><name>Dangers of an IMAP Proxy for Message Rendering</name>

<t>When receiving and rendering a message, the process of indicating to the user the cryptographic status of a message requires subtleties that are difficult to offer from a straightforwad IMAP (or POP <xref target="RFC1939"/>, or JMAP) proxy.</t>

<t>One approach such a proxy could take is to remove all the Cryptographic Layers from a well-formed message, and to package a description of those layers into a special header field that the MUA can read.
But this merely raises the question: what semantics need to be represented?
For example:</t>

<t><list style="symbols">
  <t>Was the message signed?  If so, by whom?  When?</t>
  <t>Should the details of the cryptographic algorithms used in any signatures found be indicated as well?</t>
  <t>Was the message encrypted?  if so, to whom?  What key was used to decrypt it?</t>
  <t>If both signed and encrypted, was the signing outside the encryption or inside?</t>
  <t>How should errant Cryptographic Layers (see <xref target="errant-cryptographic-layers"/>) be dealt with?</t>
  <t>What cryptographic protections do the headers of the message have? (see <xref target="I-D.ietf-lamps-header-protection"/>)</t>
  <t>How are any errors or surprises communicated to the user?</t>
</list></t>

<t>If the proxy passes any of this cryptographic status to the client in an added header field, it must also ensure that no such header field is present on the messages it receives before processing it.
If it were to allow such a header field through unmodified to any client that is willing to trust its contents, an attacker could spoof the field to make the user believe lies about the cryptographic status of the message.
In order for a MUA to be confident in such a header field, then, it needs a guarantee from the proxy that any header it produces will be safe.
How does the MUA reliably negogiate this guarantee with the proxy?
If the proxy can no longer offer this guarantee, how will the MUA know that things have changed?</t>

<t>If such a proxy handles certificate discovery in inbound messages (see <xref target="peer-discovery-incoming"/>), it will also need to communicate the results of that discovery process to its corresponding proxy for message composition (see <xref target="proxy-for-message-composition"/>).</t>

<t>While an extension to IMAP (or POP, or JMAP) might be able to express all the necessary semantics that would allow a generic MUA to indicate standardized cryptographic message status, such an extension is beyond the scope of this document.
<xref target="RFC9219"/> describes S/MIME signature verification status over JMAP, which is a subset of the cryptographic status information described here.</t>

</section>
<section anchor="who-controls-the-proxy"><name>Who Controls the Proxy?</name>

<t>Finally, consider that the naive proxy deployment approach is risky precisely because of its opacity to the end user.
Such a deployment could be placed anywhere in the stack, including on a machine that is not ultimately controlled by the end user, making it effectively a form of transport protection, rather than end-to-end protection.</t>

<t>A MUA explicitly under the control of the end user with thoughtful integration can offer UI/UX and security guarantees that a proxy cannot provide.</t>

</section>
</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document does not require anything from IANA.</t>

</section>
<section anchor="security-considerations"><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="acknowledgements"><name>Acknowledgements</name>

<t>The set of constructs and recommendations in this document are derived from discussions with many different implementers, including
Bjarni Rúnar Einarsson,
David Bremner,
Deb Cooley,
Holger Krekel,
Jameson Rollins,
Jonathan Hammell,
juga,
Patrick Brunschwig,
Santosh Chokhani, and
Vincent Breitmoser.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC8551'>
<front>
<title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<author fullname='B. Ramsdell' initials='B.' surname='Ramsdell'><organization/></author>
<author fullname='S. Turner' initials='S.' surname='Turner'><organization/></author>
<date month='April' year='2019'/>
<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>
<seriesInfo name='RFC' value='8551'/>
<seriesInfo name='DOI' value='10.17487/RFC8551'/>
</reference>



<reference anchor='RFC3156'>
<front>
<title>MIME Security with OpenPGP</title>
<author fullname='M. Elkins' initials='M.' surname='Elkins'><organization/></author>
<author fullname='D. Del Torto' initials='D.' surname='Del Torto'><organization/></author>
<author fullname='R. Levien' initials='R.' surname='Levien'><organization/></author>
<author fullname='T. Roessler' initials='T.' surname='Roessler'><organization/></author>
<date month='August' year='2001'/>
<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>
<seriesInfo name='RFC' value='3156'/>
<seriesInfo name='DOI' value='10.17487/RFC3156'/>
</reference>



<reference anchor='RFC4289'>
<front>
<title>Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures</title>
<author fullname='N. Freed' initials='N.' surname='Freed'><organization/></author>
<author fullname='J. Klensin' initials='J.' surname='Klensin'><organization/></author>
<date month='December' year='2005'/>
<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>
<seriesInfo name='BCP' value='13'/>
<seriesInfo name='RFC' value='4289'/>
<seriesInfo name='DOI' value='10.17487/RFC4289'/>
</reference>



<reference anchor='RFC2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<date month='March' year='1997'/>
<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>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference anchor='RFC8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<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>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference anchor='RFC5890'>
<front>
<title>Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework</title>
<author fullname='J. Klensin' initials='J.' surname='Klensin'><organization/></author>
<date month='August' year='2010'/>
<abstract><t>This document is one of a collection that, together, describe the protocol and usage context for a revision of Internationalized Domain Names for Applications (IDNA), superseding the earlier version.  It describes the document collection and provides definitions and other material that are common to the set.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5890'/>
<seriesInfo name='DOI' value='10.17487/RFC5890'/>
</reference>


<reference anchor='I-D.ietf-lamps-header-protection'>
   <front>
      <title>Header Protection for Cryptographically Protected E-mail</title>
      <author fullname='Daniel Kahn Gillmor' initials='D. K.' surname='Gillmor'>
         <organization>American Civil Liberties Union</organization>
      </author>
      <author fullname='Bernie Hoeneisen' initials='B.' surname='Hoeneisen'>
         <organization>pEp Foundation</organization>
      </author>
      <author fullname='Alexey Melnikov' initials='A.' surname='Melnikov'>
         <organization>Isode Ltd</organization>
      </author>
      <date day='6' month='April' year='2023'/>
      <abstract>
	 <t>   S/MIME version 3.1 introduced a mechanism to provide end-to-end
   cryptographic protection of e-mail message headers.  However, few
   implementations generate messages using this mechanism, and several
   legacy implementations have revealed rendering or security issues
   when handling such a message.

   This document updates the S/MIME specification to offer a different
   mechanism that provides the same cryptographic protections but with
   fewer downsides when handled by legacy clients.  The header
   protection schemes described here are also applicable to messages
   with PGP/MIME cryptographic protections.  Furthermore, this document
   offers more explicit guidance for clients when generating or handling
   e-mail messages with cryptographic protection of message headers.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-lamps-header-protection-14'/>
   
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="AUTOCRYPT" target="https://autocrypt.org/">
  <front>
    <title>Autocrypt - Convenient End-to-End Encryption for E-Mail</title>
    <author initials="V." surname="Breitmoser" fullname="Vincent Breitmoser">
      <organization></organization>
    </author>
    <author initials="H." surname="Krekel" fullname="Holger Krekel">
      <organization></organization>
    </author>
    <author initials="D. K." surname="Gillmor" fullname="Daniel Kahn Gillmor">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="chrome-indicators" target="https://blog.chromium.org/2018/05/evolving-chromes-security-indicators.html">
  <front>
    <title>Evolving Chrome's security indicators</title>
    <author initials="E." surname="Schechter" fullname="Emily Schechter">
      <organization></organization>
    </author>
    <date year="2018" month="May"/>
  </front>
</reference>
<reference anchor="EFAIL" target="https://efail.de">
  <front>
    <title>EFAIL</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="ORACLE" target="https://www.usenix.org/conference/usenixsecurity23/presentation/ising">
  <front>
    <title>Content-Type: multipart/oracle Tapping into Format Oracles in Email End-to-End Encryption</title>
    <author initials="F." surname="Ising" fullname="Fabian Ising">
      <organization></organization>
    </author>
    <author initials="D." surname="Poddebniak" fullname="Damian Poddebniak">
      <organization></organization>
    </author>
    <author initials="T." surname="Kappert" fullname="Tobias Kappert">
      <organization></organization>
    </author>
    <author initials="C." surname="Saatjohann" fullname="Christoph Saatjohann">
      <organization></organization>
    </author>
    <author initials="S." surname="Schinzel" fullname="Sebastian Schinzel">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>




<reference anchor='RFC2045'>
<front>
<title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
<author fullname='N. Freed' initials='N.' surname='Freed'><organization/></author>
<author fullname='N. Borenstein' initials='N.' surname='Borenstein'><organization/></author>
<date month='November' year='1996'/>
<abstract><t>This initial document specifies the various headers used to describe the structure of MIME messages.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2045'/>
<seriesInfo name='DOI' value='10.17487/RFC2045'/>
</reference>



<reference anchor='RFC3207'>
<front>
<title>SMTP Service Extension for Secure SMTP over Transport Layer Security</title>
<author fullname='P. Hoffman' initials='P.' surname='Hoffman'><organization/></author>
<date month='February' year='2002'/>
<abstract><t>This document describes an extension to the SMTP (Simple Mail Transfer Protocol) service that allows an SMTP server and client to use TLS (Transport Layer Security) to provide private, authenticated communication over the Internet.  This gives SMTP agents the ability to protect some or all of their communications from eavesdroppers and attackers.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3207'/>
<seriesInfo name='DOI' value='10.17487/RFC3207'/>
</reference>



<reference anchor='RFC6376'>
<front>
<title>DomainKeys Identified Mail (DKIM) Signatures</title>
<author fullname='D. Crocker' initials='D.' role='editor' surname='Crocker'><organization/></author>
<author fullname='T. Hansen' initials='T.' role='editor' surname='Hansen'><organization/></author>
<author fullname='M. Kucherawy' initials='M.' role='editor' surname='Kucherawy'><organization/></author>
<date month='September' year='2011'/>
<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>
<seriesInfo name='STD' value='76'/>
<seriesInfo name='RFC' value='6376'/>
<seriesInfo name='DOI' value='10.17487/RFC6376'/>
</reference>



<reference anchor='RFC3274'>
<front>
<title>Compressed Data Content Type for Cryptographic Message Syntax (CMS)</title>
<author fullname='P. Gutmann' initials='P.' surname='Gutmann'><organization/></author>
<date month='June' year='2002'/>
<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>
<seriesInfo name='RFC' value='3274'/>
<seriesInfo name='DOI' value='10.17487/RFC3274'/>
</reference>



<reference anchor='RFC4880'>
<front>
<title>OpenPGP Message Format</title>
<author fullname='J. Callas' initials='J.' surname='Callas'><organization/></author>
<author fullname='L. Donnerhacke' initials='L.' surname='Donnerhacke'><organization/></author>
<author fullname='H. Finney' initials='H.' surname='Finney'><organization/></author>
<author fullname='D. Shaw' initials='D.' surname='Shaw'><organization/></author>
<author fullname='R. Thayer' initials='R.' surname='Thayer'><organization/></author>
<date month='November' year='2007'/>
<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>
<seriesInfo name='RFC' value='4880'/>
<seriesInfo name='DOI' value='10.17487/RFC4880'/>
</reference>



<reference anchor='RFC5322'>
<front>
<title>Internet Message Format</title>
<author fullname='P. Resnick' initials='P.' role='editor' surname='Resnick'><organization/></author>
<date month='October' year='2008'/>
<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 &quot;electronic mail&quot; messages.  This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, &quot;Standard for the Format of ARPA Internet Text Messages&quot;, updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5322'/>
<seriesInfo name='DOI' value='10.17487/RFC5322'/>
</reference>



<reference anchor='RFC5355'>
<front>
<title>Threats Introduced by Reliable Server Pooling (RSerPool) and Requirements for Security in Response to Threats</title>
<author fullname='M. Stillman' initials='M.' role='editor' surname='Stillman'><organization/></author>
<author fullname='R. Gopal' initials='R.' surname='Gopal'><organization/></author>
<author fullname='E. Guttman' initials='E.' surname='Guttman'><organization/></author>
<author fullname='S. Sengodan' initials='S.' surname='Sengodan'><organization/></author>
<author fullname='M. Holdrege' initials='M.' surname='Holdrege'><organization/></author>
<date month='September' year='2008'/>
<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>
<seriesInfo name='RFC' value='5355'/>
<seriesInfo name='DOI' value='10.17487/RFC5355'/>
</reference>



<reference anchor='RFC7292'>
<front>
<title>PKCS #12: Personal Information Exchange Syntax v1.1</title>
<author fullname='K. Moriarty' initials='K.' role='editor' surname='Moriarty'><organization/></author>
<author fullname='M. Nystrom' initials='M.' surname='Nystrom'><organization/></author>
<author fullname='S. Parkinson' initials='S.' surname='Parkinson'><organization/></author>
<author fullname='A. Rusch' initials='A.' surname='Rusch'><organization/></author>
<author fullname='M. Scott' initials='M.' surname='Scott'><organization/></author>
<date month='July' year='2014'/>
<abstract><t>PKCS #12 v1.1 describes a transfer syntax for personal identity information, including private keys, certificates, miscellaneous secrets, and extensions.  Machines, applications, browsers, Internet kiosks, and so on, that support this standard will allow a user to import, export, and exercise a single set of personal identity information.  This standard supports direct transfer of personal information under several privacy and integrity modes.</t><t>This document represents a republication of PKCS #12 v1.1 from RSA Laboratories' Public Key Cryptography Standard (PKCS) series.  By publishing this RFC, change control is transferred to the IETF.</t></abstract>
</front>
<seriesInfo name='RFC' value='7292'/>
<seriesInfo name='DOI' value='10.17487/RFC7292'/>
</reference>



<reference anchor='RFC8823'>
<front>
<title>Extensions to Automatic Certificate Management Environment for End-User S/MIME Certificates</title>
<author fullname='A. Melnikov' initials='A.' surname='Melnikov'><organization/></author>
<date month='April' year='2021'/>
<abstract><t>This document specifies identifiers and challenges required to enable the Automated Certificate Management Environment (ACME) to issue certificates for use by email users that want to use S/MIME.</t></abstract>
</front>
<seriesInfo name='RFC' value='8823'/>
<seriesInfo name='DOI' value='10.17487/RFC8823'/>
</reference>


<reference anchor='I-D.dkg-mail-cleartext-copy'>
   <front>
      <title>Encrypted E-mail with Cleartext Copies</title>
      <author fullname='Daniel Kahn Gillmor' initials='D. K.' surname='Gillmor'>
         </author>
      <date day='21' month='February' year='2023'/>
      <abstract>
	 <t>   When an e-mail program generates an encrypted message to multiple
   recipients, it is possible that it has no encryption capability for
   at least one of the recipients.

   In this circumstance, an e-mail program may choose to send the
   message in cleartext to the recipient it cannot encrypt to.

   This draft currently offers several possible approaches when such a
   choice is made by the sender, so that the recipient can reason about
   and act on the cryptographic status of the message responsibly.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-dkg-mail-cleartext-copy-01'/>
   
</reference>



<reference anchor='RFC6409'>
<front>
<title>Message Submission for Mail</title>
<author fullname='R. Gellens' initials='R.' surname='Gellens'><organization/></author>
<author fullname='J. Klensin' initials='J.' surname='Klensin'><organization/></author>
<date month='November' year='2011'/>
<abstract><t>This memo splits message submission from message relay, allowing each service to operate according to its own rules (for security, policy, etc.), and specifies what actions are to be taken by a submission server.</t><t>Message relay is unaffected, and continues to use SMTP over port 25.</t><t>When conforming to this document, message submission uses the protocol specified here, normally over port 587.</t><t>This separation of function offers a number of benefits, including the ability to apply specific security or policy requirements.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='72'/>
<seriesInfo name='RFC' value='6409'/>
<seriesInfo name='DOI' value='10.17487/RFC6409'/>
</reference>



<reference anchor='RFC3501'>
<front>
<title>INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1</title>
<author fullname='M. Crispin' initials='M.' surname='Crispin'><organization/></author>
<date month='March' year='2003'/>
<abstract><t>The Internet Message Access Protocol, Version 4rev1 (IMAP4rev1) allows a client to access and manipulate electronic mail messages on a server. IMAP4rev1 permits manipulation of mailboxes (remote message folders) in a way that is functionally equivalent to local folders.  IMAP4rev1 also provides the capability for an offline client to resynchronize with the server. IMAP4rev1 includes operations for creating, deleting, and renaming mailboxes, checking for new messages, permanently removing messages, setting and clearing flags, RFC 2822 and RFC 2045 parsing, searching, and selective fetching of message attributes, texts, and portions thereof.  Messages in IMAP4rev1 are accessed by the use of numbers. These numbers are either message sequence numbers or unique identifiers. IMAP4rev1 supports a single server.  A mechanism for accessing configuration information to support multiple IMAP4rev1 servers is discussed in RFC 2244. IMAP4rev1 does not specify a means of posting mail; this function is handled by a mail transfer protocol such as RFC 2821.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3501'/>
<seriesInfo name='DOI' value='10.17487/RFC3501'/>
</reference>



<reference anchor='RFC8621'>
<front>
<title>The JSON Meta Application Protocol (JMAP) for Mail</title>
<author fullname='N. Jenkins' initials='N.' surname='Jenkins'><organization/></author>
<author fullname='C. Newman' initials='C.' surname='Newman'><organization/></author>
<date month='August' year='2019'/>
<abstract><t>This document specifies a data model for synchronising email data with a server using the JSON Meta Application Protocol (JMAP). Clients can use this to efficiently search, access, organise, and send messages, and to get push notifications for fast resynchronisation when new messages are delivered or a change is made in another client.</t></abstract>
</front>
<seriesInfo name='RFC' value='8621'/>
<seriesInfo name='DOI' value='10.17487/RFC8621'/>
</reference>


<reference anchor='I-D.ietf-jmap-smime-sender-extensions'>
   <front>
      <title>JMAP extension for S/MIME signing and encryption</title>
      <author fullname='Alexey Melnikov' initials='A.' surname='Melnikov'>
         <organization>Isode Ltd</organization>
      </author>
      <date day='13' month='March' year='2023'/>
      <abstract>
	 <t>   This document specifies an extension to JMAP for sending S/MIME
   signed and S/MIME encrypted messages.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-jmap-smime-sender-extensions-03'/>
   
</reference>



<reference anchor='RFC1939'>
<front>
<title>Post Office Protocol - Version 3</title>
<author fullname='J. Myers' initials='J.' surname='Myers'><organization/></author>
<author fullname='M. Rose' initials='M.' surname='Rose'><organization/></author>
<date month='May' year='1996'/>
<abstract><t>The Post Office Protocol - Version 3 (POP3) is intended to permit a workstation to dynamically access a maildrop on a server host in a useful fashion.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='53'/>
<seriesInfo name='RFC' value='1939'/>
<seriesInfo name='DOI' value='10.17487/RFC1939'/>
</reference>



<reference anchor='RFC9219'>
<front>
<title>S/MIME Signature Verification Extension to the JSON Meta Application Protocol (JMAP)</title>
<author fullname='A. Melnikov' initials='A.' surname='Melnikov'><organization/></author>
<date month='April' year='2022'/>
<abstract><t>This document specifies an extension to &quot;The JSON Meta Application Protocol (JMAP) for Mail&quot; (RFC 8621) for returning the S/MIME signature verification status.</t></abstract>
</front>
<seriesInfo name='RFC' value='9219'/>
<seriesInfo name='DOI' value='10.17487/RFC9219'/>
</reference>


<reference anchor='I-D.ietf-openpgp-crypto-refresh'>
   <front>
      <title>OpenPGP</title>
      <author fullname='Paul Wouters' initials='P.' surname='Wouters'>
         <organization>Aiven</organization>
      </author>
      <author fullname='Daniel Huigens' initials='D.' surname='Huigens'>
         <organization>Proton AG</organization>
      </author>
      <author fullname='Justus Winter' initials='J.' surname='Winter'>
         <organization>Sequoia-PGP</organization>
      </author>
      <author fullname='Niibe Yutaka' initials='N.' surname='Yutaka'>
         <organization>FSIJ</organization>
      </author>
      <date day='13' month='March' year='2023'/>
      <abstract>
	 <t>   This document specifies the message formats used in OpenPGP.  OpenPGP
   provides encryption with public-key or symmetric cryptographic
   algorithms, digital signatures, compression and key management.

   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.

   This document obsoletes: RFC 4880 (OpenPGP), RFC 5581 (Camellia in
   OpenPGP) and RFC 6637 (Elliptic Curves in OpenPGP).

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-openpgp-crypto-refresh-08'/>
   
</reference>



<reference anchor='RFC9216'>
<front>
<title>S/MIME Example Keys and Certificates</title>
<author fullname='D. K. Gillmor' initials='D. K.' role='editor' surname='Gillmor'><organization/></author>
<date month='April' year='2022'/>
<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>
<seriesInfo name='RFC' value='9216'/>
<seriesInfo name='DOI' value='10.17487/RFC9216'/>
</reference>



<reference anchor='RFC4511'>
<front>
<title>Lightweight Directory Access Protocol (LDAP): The Protocol</title>
<author fullname='J. Sermersheim' initials='J.' role='editor' surname='Sermersheim'><organization/></author>
<date month='June' year='2006'/>
<abstract><t>This document describes the protocol elements, along with their semantics and encodings, of the Lightweight Directory Access Protocol (LDAP).  LDAP provides access to distributed directory services that act in accordance with X.500 data and service models.  These protocol elements are based on those described in the X.500 Directory Access Protocol (DAP).  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4511'/>
<seriesInfo name='DOI' value='10.17487/RFC4511'/>
</reference>


<reference anchor='I-D.koch-openpgp-webkey-service'>
   <front>
      <title>OpenPGP Web Key Directory</title>
      <author fullname='Werner Koch' initials='W.' surname='Koch'>
         <organization>GnuPG e.V.</organization>
      </author>
      <date day='14' month='November' year='2022'/>
      <abstract>
	 <t>   This specification describes a service to locate OpenPGP keys by mail
   address using a Web service and the HTTPS protocol.  It also provides
   a method for secure communication between the key owner and the mail
   provider to publish and revoke the public key.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-koch-openpgp-webkey-service-15'/>
   
</reference>



<reference anchor='RFC8162'>
<front>
<title>Using Secure DNS to Associate Certificates with Domain Names for S/MIME</title>
<author fullname='P. Hoffman' initials='P.' surname='Hoffman'><organization/></author>
<author fullname='J. Schlyter' initials='J.' surname='Schlyter'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>This document describes how to use secure DNS to associate an S/MIME user's certificate with the intended domain name, similar to the way that DNS-Based Authentication of Named Entities (DANE), RFC 6698, does for TLS.</t></abstract>
</front>
<seriesInfo name='RFC' value='8162'/>
<seriesInfo name='DOI' value='10.17487/RFC8162'/>
</reference>



<reference anchor='RFC7929'>
<front>
<title>DNS-Based Authentication of Named Entities (DANE) Bindings for OpenPGP</title>
<author fullname='P. Wouters' initials='P.' surname='Wouters'><organization/></author>
<date month='August' year='2016'/>
<abstract><t>OpenPGP is a message format for email (and file) encryption that lacks a standardized lookup mechanism to securely obtain OpenPGP public keys.  DNS-Based Authentication of Named Entities (DANE) is a method for publishing public keys in DNS.  This document specifies a DANE method for publishing and locating OpenPGP public keys in DNS for a specific email address using a new OPENPGPKEY DNS resource record.  Security is provided via Secure DNS, however the OPENPGPKEY record is not a replacement for verification of authenticity via the &quot;web of trust&quot; or manual verification.  The OPENPGPKEY record can be used to encrypt an email that would otherwise have to be sent unencrypted.</t></abstract>
</front>
<seriesInfo name='RFC' value='7929'/>
<seriesInfo name='DOI' value='10.17487/RFC7929'/>
</reference>




    </references>


<section anchor="future-work"><name>Future work</name>

<t>This document contains useful guidance for MUA implementers, but it cannot contain all possible guidance.
Future revisions to this document may want to further explore the following topics, which are out of scope for this version.</t>

<section anchor="test-vectors"><name>Test Vectors</name>

<t>A future version of this document (or a companion document) could contain examples of well-formed and malformed messages using cryptographic key material and certificates from <xref target="I-D.ietf-openpgp-crypto-refresh"/> and <xref target="RFC9216"/>.</t>

<t>It may also include example renderings of these messages.</t>

</section>
<section anchor="more-peer-certs"><name>Further Guidance on Peer Certificates</name>

<section anchor="peer-discovery-incoming"><name>Certificate Discovery from Incoming Messages</name>

<t>As described in <xref target="sending-certificates"/>, an incoming e-mail message may have one or more certificates embedded in it.
This document currently acknowledges that receiving MUA should assemble a cache of certificates for future use, but providing more detailed guidance for how to assemble and manage that cache is currently out of scope.</t>

<t>Existing recommendations like <xref target="AUTOCRYPT"/> provide some guidance for handling incoming certificates about peers, but only in certain contexts.
A future version of this document may describe in more detail how these incoming certs should be handled.</t>

</section>
<section anchor="peer-discovery--directory"><name>Certificate Directories</name>

<t>Some MUAs may have the capability to look up peer certificates in a directory, for example via LDAP <xref target="RFC4511"/>, WKD <xref target="I-D.koch-openpgp-webkey-service"/>, or the DNS (e.g. SMIMEA <xref target="RFC8162"/> or OPENPGPKEY <xref target="RFC7929"/> resource records).</t>

<t>A future version of this document may describe in more detail what sources a MUA should consider when searching for a peer's certificates, and what to do with the certificates found by various methods.</t>

</section>
<section anchor="cert-revocation"><name>Checking for Certificate Revocation</name>

<t>A future version of this document could discuss how/when to check for revocation of peer certificates, or of the user's own certificate.</t>

<t>Such discussion should address privacy concerns: what information leaks to whom when checking peer cert revocations?</t>

</section>
<section anchor="more-peer-cert-selection"><name>Further Peer Certificate Selection</name>

<t>A future version of this document may describe more prescriptions for deciding whether a peer certificate is acceptable for encrypting a message.
For example, if the SPKI is an EC Public Key and the keyUsage extension is absent, what should the encrypting MUA do?</t>

<t>A future version of this document might also provide guidance on what to do if multiple certificates are all acceptable for encrypting to a given recipient.
For example, the sender could select among them in some deterministic way; it could encrypt to all of them; or it could present them to the user to let the user select any or all of them.</t>

</section>
</section>
<section anchor="more-local-certs"><name>Further Guidance on Local Certificates and Secret Keys</name>

<section anchor="cross-mua-local-keys"><name>Cross-MUA sharing of Local Certificates and Secret Keys</name>

<t>Many users today use more than one MUA to access the same mailbox (for example, one MUA on a mobile device, and another MUA on a desktop computer).</t>

<t>A future version of this document might offer guidance on how multiple MUAs attached to the same mailbox can efficiently and securely share the user's own secret key material and certificates between each other.
This guidance should include suggestions on how to maintain the user's keys (e.g. avoiding certificate expiration) and safe secret key transmission.</t>

</section>
<section anchor="smartcards"><name>Use of Smartcards or Other Portable Secret Key Mechanisms</name>

<t>Rather than having to transfer secret key material between clients, some users may prefer to rely on portable hardware-backed secret keys in the form of smartcards, USB tokens or other comparable form factors.
These secret keys sometimes require direct user interaction for each use, which can complicate the usability of any MUA that uses them to decrypt a large number of messages.</t>

<t>Guidance on the use of this kind of secret key management are beyond the scope of this document, but future revisions may bring them into scope.</t>

</section>
<section anchor="more-local-cert-maintenance"><name>Active Local Certificate Maintenance</name>

<t><xref target="local-cert-maintenance"/> describes conditions where the MUA <bcp14>SHOULD</bcp14> warn the user that something is going wrong with their certificate.</t>

<t>A future version of this document might outline how a MUA could actively avoid these warning situations, for example, by automatically updating the certificate or prompting the user to take specific action.</t>

</section>
</section>
<section anchor="cert-authorities"><name>Certification Authorities</name>

<t>A future document could offer guidance on how an MUA should select and manage root certification authorities (CAs).</t>

<t>For example:</t>

<t><list style="symbols">
  <t>Should the MUA cache intermediate CAs?</t>
  <t>Should the MUA share such a cache with other PKI clients (e.g., web browsers)?</t>
  <t>What distinctions are there between a CA for S/MIME and a CA for the web?</t>
</list></t>

</section>
<section anchor="indexing-and-search"><name>Indexing and Search of Encrypted Messages</name>

<t>A common use case for MUAs is search of existing messages by keyword or topic.
This is done most efficiently for large mailboxes by assembling an index of message content, rather than by a linear scan of all message content.</t>

<t>When message contents and headers are encrypted, search by index is complicated.
If the cleartext is not indexed, then messages cannot be found by search.
On the other hand, if the cleartext is indexed, then the index effectively contains the sensitive contents of the message, and needs to be protected.</t>

<t>Detailed guidance on the tradeoff here, including choices about remote search vs local search, are beyond the scope of this document, but a future version of the document may bring them into scope.</t>

</section>
<section anchor="cached-sigs"><name>Cached Signature Validation</name>

<t>Asymmetric signature validation can be computationally expensive, and the results can also potentially vary over time (e.g. if a signing certificate is discovered to be revoked).
In some cases, the user may care about the signature validation that they saw when they first read or received the message, not only about the status of the signature verification at the current time.</t>

<t>So, for both performance reasons and historical perspective, it may be useful for an MUA to cache signature validation results in a way that they can be easily retrieved and compared.
Documenting how and when to cache signature validation, as well as how to indicate it to the user, is beyond the scope of this document, but a future version of the document may bring these topics into scope.</t>

</section>
<section anchor="aggregate-cryptographic-status"><name>Aggregate Cryptographic Status</name>

<t>This document limits itself to consideration of the cryptographic status of single messages as a baseline concept that can be clearly and simply communicated to the user.
However, some users and some MUAs may find it useful to contemplate even higher-level views of cryptographic status which are not considered directly here.</t>

<t>For example, a future version of the document may also consider how to indicate a simple cryptographic status of message threads (groups of explicitly related messages), conversations (groups of messages with shared sets of participants), peers, or other perspectives that a MUA can provide.</t>

</section>
<section anchor="secure-deletion"><name>Secure Deletion</name>

<t>One feature many users desire from a secure communications medium is the ability to reliably destroy a message such that it cannot be recovered even by a determined adversary.
Doing this with standard e-mail mechanisms like S/MIME and PGP/MIME is challenging because of two interrelated factors:</t>

<t><list style="symbols">
  <t>A copy of of an e-mail message may be retained by any of the mail transport agents that handle it during delivery, and</t>
  <t>The secret key used to decrypt an encrypted e-mail message is typically retained indefinitely.</t>
</list></t>

<t>This means that an adversary aiming to recover the cleartext contents of a deleted message can do so by getting access to a copy of the encrypted message and the long-term secret key material.</t>

<t>Some mitigation measures may be available to make it possible to delete some encrypted messages securely, but this document considers this use case out of scope.
A future version of the document may elaborate on secure message deleton in more detail.</t>

</section>
<section anchor="interaction-with-opportunistic-encryption"><name>Interaction with Opportunistic Encryption</name>

<t>This document focuses on guidance for strong, user-comprehensible end-to-end cryptographic protections for e-mail.
Other approaches are possible, including various forms of opportunistic and transport encryption, which are out of scope for this document.</t>

<t>A future version of this document could describe the interaction between this guidance and more opportunistic forms of encryption, for example some of the scenarios contemplated in <xref target="I-D.dkg-mail-cleartext-copy"/>.</t>

</section>
</section>
<section anchor="document-history"><name>Document History</name>

<section anchor="substantive-changes-from-draft-ietf-06-to-draft-ietf-07"><name>Substantive changes from draft-ietf-...-06 to draft-ietf-...-07</name>

<t><list style="symbols">
  <t>Add Bernie Hoeneisen and Alexey Melnikov as editors</t>
  <t>Explicitly avoid requiring anything from IANA</t>
  <t>Simplify description of "attachments"</t>
  <t>Add concrete detail on how to compare e-mail addresses</t>
  <t>Explicitly define "Cryptographic Summary"</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-05-to-draft-ietf-06"><name>Substantive changes from draft-ietf-...-05 to draft-ietf-...-06</name>

<t><list style="symbols">
  <t>Expand proxy implementation warning to comparable APIs</t>
  <t>Move many marked TODO and FIXME items to "Future Work"</t>
  <t>More detailed guidance on local certificates</t>
  <t>Provide guidance on encrypting draft messages</t>
  <t>More detailed guidanc eon shipping certificates in outbound messages</t>
  <t>Recommend implementing header protection</t>
  <t>Added "Future Work" subsection about interactions with opportunistic approaches</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-04-to-draft-ietf-05"><name>Substantive changes from draft-ietf-...-04 to draft-ietf-...-05</name>

<t><list style="symbols">
  <t>Adopt and update text about Bcc from draft-ietf-lamps-header-protection</t>
  <t>Add section about the dangers of an implementation based on a network protocol proxy</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-03-to-draft-ietf-04"><name>Substantive changes from draft-ietf-...-03 to draft-ietf-...-04</name>

<t><list style="symbols">
  <t>Added reference to <spanx style="verb">multipart/oracle</spanx> attacks</t>
  <t>Clarified that "Structural Headers" are the same as RFC2045's "MIME Headers"</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-02-to-draft-ietf-03"><name>Substantive changes from draft-ietf-...-02 to draft-ietf-...-03</name>

<t><list style="symbols">
  <t>Added section about mixed recipients</t>
  <t>Noted SMIMEA and OPENPGPKEY DNS RR cert discovery mechanisms</t>
  <t>Added more notes about simplified mental models</t>
  <t>More clarification on one-status-per-message</t>
  <t>Added guidance to defend against EFAIL</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-01-to-draft-ietf-02"><name>Substantive changes from draft-ietf-...-01 to draft-ietf-...-02</name>

<t><list style="symbols">
  <t>Added definition of "user-facing" headers</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-ietf-00-to-draft-ietf-01"><name>Substantive changes from draft-ietf-...-00 to draft-ietf-...-01</name>

<t><list style="symbols">
  <t>Added section about distinguishing Main Body Parts and Attachments</t>
  <t>Updated document considerations section, including reference to auto-built editor's copy</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-dkg-01-to-draft-ietf-00"><name>Substantive changes from draft-dkg-...-01 to draft-ietf-...-00</name>

<t><list style="symbols">
  <t>WG adopted draft</t>
  <t>moved Document History and Document Considerations sections to end of appendix, to avoid section renumbering when removed</t>
</list></t>

</section>
<section anchor="substantive-changes-from-draft-dkg-00-to-draft-dkg-01"><name>Substantive changes from draft-dkg-...-00 to draft-dkg-...-01</name>

<t><list style="symbols">
  <t>consideration of success/failure indicators for usability</t>
  <t>clarify extendedKeyUsage and keyUsage algorithm-specific details</t>
  <t>initial section on certificate management</t>
  <t>added more TODO items</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA829y5IbZ5YmuMdTeIUWiqAB4F0XZnWpgjcpUqQYySCllMlk
Ew7AAbgCcEe6OyKIpLFsrBfdL5C968Xs2tpslrOa5cyb5JPMuf/nd3cEg8qq
trG0KjEcfvkv5z/3853RaDRo8maVPUq+3eaztJhmSVkkz4rZqClH8J/k2Wid
5qvkLJtuq7zZDWbltEjXcP+sSufNKM+a+WiVrjf1KLuX0b2jhbxpdOfLwTRt
skVZ7R4leTEvB4N8Uz1KmmpbN/fu3Pn6zr1BWmUp/tgMrsrqYlGV282jhF44
uMh2cG32KDkpmqwqsmb0FL85qLeTdV7XeVm82W1gJCfP3jwfDOomLWb/W7oq
C7i0y+rBZVZss0eDJJGXHrw4fnl6dgAXGnrs4Cf4YF4skm/xd7yOo4fr9Sat
1/+KMxuX1QJ/SKvpEn5YNs2mfnT7Nt6Hl/LLbKy33cYLtydVeVVnt+kNt/HJ
KtuU7skFrHU6GU/L9e3ZxeJ2Z8nwkRUsWd24h+DOsTyYl91n4DuDdNssywon
O4L/S2A960fJ03Hy/Tj5Nl+t1mVFl3nnnqZFnq2S79NlEf0Ks3iUHK+zKp+m
RfIkv4R9f5FPsqrJszp5W8CC0311U2UZDPDuvYfJ46pMZ8lZM6ZfpkAhj5If
sqvkZ1jbYfLDz3y5nMFn7965c+eB/L0tGqSJt2fHdCGdTKrsEj7+5MVbupDx
VsDM/3Wez5slTK6Ga8UYqIBuqEqk2WyWNzR4N+vH4+S7MiuyvM4KN+nHQEF5
1vqJZrx5tkmew4hmadOe4SuYfFYBgaSTrEgeuDk++W701YM7d5KfcqTNZrmt
4pmdXeXNX7NqBTTpJzShUYyXOop/3WSb8Tz+OJyzR4nuffz77Y/M/XicvMxW
RX5RXrqpH6+yd9ku/oVmflLDxiQvmlm8rQ+SJ2kNPAGeuKrdnL+DU9mUxTB5
mc9mq6zO3rndffPT3XvJvR9OWxv8vZ99SgMZr2Ug/5rj9/EwdKeF3KJaw6Qv
6Qgfv33z6snrn0/fPKJbm7Ra4FB1lYD8y2m12zR0EvkW5mrH+ksySp6UBfCE
PCuaiMEV9DusbgKfBH73EsbKVGmHKtFV1iX9MYeDB+95XGV5sy7rrJKfaRt+
HHd+iB//rlwtgK6+r7KLbOWf/G4cXYyf2ndu9xz36bIq19koL2ZwnmFN6/61
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

-->

</rfc>

