<?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-11" 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="August" day="08"/>

    <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 to help mitigate those risks, and to make end-to-end e-mail simple and secure for the end user.
It provides a useful set of vocabulary as well as suggestions to avoid common failures.
It also identifies a number of currently unsolved usability and interoperability problems.</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.
For example, <xref target="EFAIL"></xref>'s "Direct Exfiltration" attacks leak cleartext due to attacks that splice existing ciphertext into novel messages, which then are handled optimistically (and wrongly) by many mail user agents.</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>This document offers guidance to the implementer of a mail user agent that provides these cryptographic protections, whether for sending or receiving mail.
An implementation that follows this guidance will provide its users with stronger and easier-to-understand security properties, and will also offer more reliable interoperability for messages exchanged with other implementations.</t>

<t>In <xref target="future-work"/>, this document also identifies a number of interoperability and usability concerns for end-to-end cryptographic e-mail which have no current broadly accepted technical standard for resolution.
One major area not covered in this document is the acquisition and long-term maintenance of cryptographic identity information and metadata across multiple mail user agents controlled by the same user.</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.
Typically, 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>
  <t><spanx style="verb">Sender</spanx></t>
  <t><spanx style="verb">Resent-From</spanx></t>
  <t><spanx style="verb">Resent-To</spanx></t>
  <t><spanx style="verb">Resent-Cc</spanx></t>
  <t><spanx style="verb">Resent-Date</spanx></t>
  <t><spanx style="verb">Resent-Sender</spanx></t>
</list></t>

<t>The above list are the header fields most often presented directly to the user who views a message, though a MUA may also decide to treat any other header field as "user-facing".
Of course, many of these header fields are entirely absent from any given message, and an absent header field is not presented to the user at all.</t>

<t>Note that the resending header fields (those beginning with <spanx style="verb">Resent-</spanx>) are typically only added by an intervening MUA (see <xref section="3.6.6" sectionFormat="of" target="RFC5322"/> and <xref target="intervening-mua"/> of this document).
As such, though they may in some cases be presented to the user, they will typically not bear any end-to-end cryptographic protection (even if the original headers of a message are protected, see <xref target="message-headers"/>), because they are unknown to the original sender.</t>

<t>Other header fields 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; or the <spanx style="verb">List-*</spanx> and <spanx style="verb">Archived-At</spanx> headers added by mailing lists may cause additional buttons to be displayed during rendering), 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 a near certainty 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>

<t>(It is of course possible that a message forwarded as a MIME attachment could have its own cryptographic status while still being a message subpart; but that status should be distinct from the status of the enclosing message.)</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 private e-mail communications with a given correspondent, or within a given domain are known to be 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 may be 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.
See also <xref target="expect-e2e"/> for future work.</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 due to ease of implementation and deployment.
These opportunistic transport protections are orthogonal to the end-to-end protections described in this document.</t>

<t>To the extent that opportunistic message 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 (see <xref target="RFC7435"/>).</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.
For example, when crafting an encrypted and signed message using a simple Cryptographic Envelope of a single layer (<xref target="simple-cryptographic-envelopes"/>) with PGP/MIME, the OpenPGP Encrypted Message object should contain an OpenPGP Signed Message.
Likewise, when using a multilayer Cryptographic Envelope (<xref target="multilayer-cryptographic-envelopes"/>), the outer layer should be an encryption layer and the inner layer should be a signing layer.</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="REPLY"></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.
See <xref target="SPOOFING"></xref> for examples of spoofed message signatures that rely on permissive clients willing to validate signatures in poorly-structured messages.</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="REPLY"></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 used to verify the signature was revoked.</t>
  <t>the certificate used to verify the signature was expired at the time that the signature was made.</t>
  <t>the certificate used to verify 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 used to verify 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>
  <t>The signature covers a message that depends on an external subresource that might change (see <xref target="external-subresources"/>).</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 an encryption-capable certificate for each recipient.</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, acquire, or import 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).
Using the same cryptographic key material for multiple algorithms (i.e., for both encryption and signing) has been the source of vulnerabilities in other (non-e-mail) contexts (e.g., <xref target="DROWN"/> and <xref target="IKE"/>).
The simplest way to avoid any comparable risk is to use distinct key material for each cryptographic algorithm.
The MUA <bcp14>SHOULD NOT</bcp14> encourage the use of a single S/MIME certificate for both encryption and signing, to avoid possible cross-protocol key misuse.</t>

<t>The simplest 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.</t>

<t>An S/MIME-capable MUA that has access to user certificates and their corresponding secret key material should also offer the ability to export those objects into a well-formed PKCS #12 object that could be imported into another MUA operated by the same user.</t>

<t>Manual handling of PKCS #12 objects is challenging for most users.
Producing the initial PKCS #12 object 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 export and import incurs ongoing labor (for example, before certificate expiration) 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>

<t>See also <xref target="I-D.woodhouse-cert-best-practice"/> for more recommendations about managing user certificates.</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.</t>

<t>An OpenPGP-capable MUA should have the ability to import and export OpenPGP Tranferable Secret Keys (see <xref section="11.2" sectionFormat="of" target="RFC4880"/>), to enable manual transfer of user certificates and secret key material between multiple MUAs controlled by the user.</t>

<t>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 external 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>In the context of a single e-mail account managed by a MUA, where that e-mail account is expected to be able to use end-to-end cryptographic protections, the MUA <bcp14>SHOULD</bcp14> warn the user (or proactively fix the problem) when/if:</t>

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

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

<t>If the MUA does find any of these issues and chooses to warn the user, it should use one aggregate warning with simple language that the certificates might not be acceptable for other people, and recommend a course of action that the user can take to remedy the problem.</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="reading-encrypted-messages-after-certificate-expiration"><name>Reading Encrypted Messages after Certificate Expiration</name>

<t>When encrypting a message, the sending MUA should decline to encrypt to an expired certificate (see <xref target="peer-cert-selection"/>).
But when decrypting a message, as long as the viewing MUA has access to the appropriate secret key material, it should permit decryption of the message, even if the associated certificate is expired.
That is, the viewing MUA should not prevent the user from reading a message that they have already received.</t>

<t>The viewing MUA may warn the user when decrypting a message that appears to have been encrypted to an encryption-capable certificate that was expired at the time of encryption (e.g., based on the <spanx style="verb">Date:</spanx> header field of the message, or the timestamp in the cryptographic signature), but otherwise should not complain.</t>

<t>The primary goal of certificate expiration is to facilitate rotation of secret key material, so that secret key material does not need to be retained indefinitely.
Certificate expiration permits the user to destroy an older secret key if access to the messages received under it is no longer necessary (see also <xref target="secure-deletion"/>).</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>

<t>Note that some message header fields, like <spanx style="verb">List-*</spanx>, <spanx style="verb">Archived-At</spanx>, and <spanx style="verb">Resent-*</spanx> are typically added by an intervening MUA (see <xref target="intervening-mua"/>), not by one of the traditional "ends" of an end-to-end e-mail exchange.
A receiving MUA may choose to consider the contents of these header fields on an end-to-end protected message as markers added during message transit, even if they are not covered by the end-to-end cryptographic 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 anchor="intervening-mua"><name>Intervening MUAs Do Not Handle End-to-End Cryptographic Protections</name>

<t>Some Mail User Agents (MUAs) will resend a message in identical form (or very similar form) to the way that they received it.
For example, consider the following use cases:</t>

<t><list style="symbols">
  <t>A mail expander or mailing list that receives a message and re-sends it to all subscribers.</t>
  <t>An individual user who "bounces" a message they received to a different e-mail address (see <xref section="3.6.6" sectionFormat="of" target="RFC5322"/>).</t>
  <t>An automated e-mail intake system that forwards a report to the mailboxes of responsible staffers.</t>
</list></t>

<t>These MUAs intervene in message transport by receiving and then re-injecting messages into the mail transport system.
In some cases, the original sender or final recipient of a message that has passed through such an MUA may be unaware of the intervention.
(Note that an MUA that forwards a received message as a attachment (MIME subpart) of type <spanx style="verb">message/rfc822</spanx> or <spanx style="verb">message/global</spanx> or "inline" in the body of a message is <em>not</em> acting as an intervening MUA in this sense, because the forwarded message is encapsulated within a visible outer message that is clearly from the MUA itself.)</t>

<t>An intervening MUA should be aware of end-to-end cryptographic protections that might already exist on messages that they re-send.
In particular, it is unclear what the "end-to-end" properties are of a message that has been handled by an intervening MUA.
For signed-only messages, if the intervening MUA makes any substantive modifications to the the message as it passes it along, it may break the signature from the original sender.
In many cases, breaking the original signature is the appropriate result, since the original message has been modified, and the original sender has no control over the modifications made by the intervening MUA.
For encrypted-and-signed messages, if the intervening MUA is capable of decrypting the message, it must be careful when re-transmitting the message.
Will the new recipient be able to decrypt it?
If not, will the message be useful to the recipient?
If not, it may not make sense to re-send the message.</t>

<t>Beyond the act of re-sending, an intervening MUA should not itself try to apply end-to-end cryptographic protections on a message that it is resending unless directed otherwise by some future specification.
Additional layers of cryptographic protection added in an ad-hoc way by an intervening MUA are more likely to confuse the recipient and will not be interpretable as end-to-end protections as they do not originate with the original sender of the message.</t>

</section>
<section anchor="external-subresources"><name>External Subresources in MIME Parts Break Cryptographic Protections</name>

<t>A MIME part with a content type that can refer to external resources (like <spanx style="verb">text/html</spanx>) may itself have some sort of end-to-end cryptographic protections.
However, retrieving or rendering these external resources may violate the properties that users expect from cryptographic protection.</t>

<t>For example, an signed e-mail message with at <spanx style="verb">text/html</spanx> part that refers to an external image (i.e. via <spanx style="verb">&lt;img src="https://example.com/img.png"&gt;</spanx>) may render differently if the hosting webserver decides to serve different content at the source URL for the image.
This effectively breaks the goals of integrity and authenticity that the user should be able to rely on for signed messages, unless the external subresource has strict integrity guarantees (e.g. via <xref target="SRI"/>).</t>

<t>Likewise, fetching an external subresource for an encrypted-and-signed message effectively breaks goals of privacy and confidentiality for the user.</t>

<t>This is loosely analogous to security indicator problems that arose for web browsers as described in <xref target="mixed-content"/>.
However, while fetching the external subresource over https is sufficient to avoid a "mixed content" warning from most browsers, it is insufficicent for a MUA that wants to offer its users true end-to-end guarantees for e-mail messages.</t>

<t>A sending MUA that applies signing-only cryptographic protection to a new e-mail message with an external subresource should take one of the following options:</t>

<t><list style="symbols">
  <t>pre-fetch the external subresource and include it in the message itself,</t>
  <t>use a strong integrity mechanism like Subresource Integrity (<xref target="SRI"/>) to guarantee the content of the subresource, or</t>
  <t>prompt the composing user to remove the subresource from the message.</t>
</list></t>

<t>A sending MUA that applies encryption to a new e-mail message with an external resource cannot depend on subresource integrity to protect the privacy and confidentiality of the message, so it should either pre-fetch the external resource to include it in the message, or prompt the composing user to remove it before sending.</t>

<t>A receiving MUA that encounters a message with end-to-end cryptographic protections that contain a subresource should either refuse to retrieve and render the external subresource, or it should decline to treat the message as having cryptographic protections.
For example, it could decline to indicate that the message is signed, or it could treat the message as not properly encrypted.</t>

</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,
Eliot Lear,
Fabian Ising,
Holger Krekel,
Jameson Rollins,
John Levine,
Jonathan Hammell,
juga,
Patrick Brunschwig,
Pete Resnick,
Santosh Chokhani,
Stephen Farrell, 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'/>
    <author fullname='B. Ramsdell' initials='B.' surname='Ramsdell'/>
    <author fullname='S. Turner' initials='S.' surname='Turner'/>
    <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'/>
    <author fullname='D. Del Torto' initials='D.' surname='Del Torto'/>
    <author fullname='R. Levien' initials='R.' surname='Levien'/>
    <author fullname='T. Roessler' initials='T.' surname='Roessler'/>
    <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'/>
    <author fullname='J. Klensin' initials='J.' surname='Klensin'/>
    <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'/>
    <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'/>
    <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'/>
    <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='26' 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-15'/>
   
</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="2018" month="July"/>
  </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: breaking S/MIME and OpenPGP email encryption using exfiltration channels</title>
    <author initials="D." surname="Poddebniak" fullname="Damian Poddebniak">
      <organization></organization>
    </author>
    <author initials="C." surname="Dresen" fullname="Christian Dresen">
      <organization></organization>
    </author>
    <author initials="J." surname="Müller" fullname="Jens Müller">
      <organization></organization>
    </author>
    <author initials="F." surname="Ising" fullname="Fabian Ising">
      <organization></organization>
    </author>
    <author initials="S." surname="Schinzel" fullname="Sebastian Schinzel">
      <organization></organization>
    </author>
    <author initials="S." surname="Friedberger" fullname="Simon Friedberger">
      <organization></organization>
    </author>
    <author initials="J." surname="Somorovsky" fullname="Juraj Somorovsky">
      <organization></organization>
    </author>
    <author initials="J." surname="Schwenk" fullname="Jörg Schwenk">
      <organization></organization>
    </author>
    <date year="2018" month="August"/>
  </front>
</reference>
<reference anchor="mixed-content" target="https://www.w3.org/TR/mixed-content/">
  <front>
    <title>Mixed Content</title>
    <author >
      <organization></organization>
    </author>
    <date year="2023" month="February"/>
  </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="2023" month="August"/>
  </front>
</reference>
<reference anchor="SRI" target="https://www.w3.org/TR/SRI/">
  <front>
    <title>Subresource Integrity</title>
    <author >
      <organization></organization>
    </author>
    <date year="2016" month="June"/>
  </front>
</reference>
<reference anchor="DROWN" target="https://drownattack.com/">
  <front>
    <title>DROWN: Breaking TLS using SSLv2</title>
    <author initials="N." surname="Aviram" fullname="Nimrod Aviram">
      <organization></organization>
    </author>
    <author initials="S." surname="Schinzel" fullname="Sebastian Schinzel">
      <organization></organization>
    </author>
    <author initials="J." surname="Somorovsky" fullname="Juraj Somorovsky">
      <organization></organization>
    </author>
    <author initials="N." surname="Heninger" fullname="Nadia Heninger">
      <organization></organization>
    </author>
    <author initials="M." surname="Dankel" fullname="Maik Dankel">
      <organization></organization>
    </author>
    <author initials="J." surname="Steube" fullname="Jens Steube">
      <organization></organization>
    </author>
    <author initials="L." surname="Valenta" fullname="Luke Valenta">
      <organization></organization>
    </author>
    <author initials="D." surname="Adrian" fullname="David Adrian">
      <organization></organization>
    </author>
    <author initials="J. A." surname="Halderman" fullname="J. Alex Halderman">
      <organization></organization>
    </author>
    <author initials="V." surname="Dukhovni" fullname="Viktor Dukhovni">
      <organization></organization>
    </author>
    <author initials="E." surname="Käsper" fullname="Emilia Käsper">
      <organization></organization>
    </author>
    <author initials="S." surname="Cohney" fullname="Shaanan Cohney">
      <organization></organization>
    </author>
    <author initials="S." surname="Engels" fullname="Susanne Engels">
      <organization></organization>
    </author>
    <author initials="C." surname="Paar" fullname="Christof Paar">
      <organization></organization>
    </author>
    <author initials="Y." surname="Shavitt" fullname="Yuval Shavitt">
      <organization></organization>
    </author>
    <date year="2016" month="March"/>
  </front>
</reference>
<reference anchor="IKE" target="https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-felsch.pdf">
  <front>
    <title>The Dangers of Key Reuse: Practical Attacks on IPsec IKE</title>
    <author initials="D." surname="Felsch" fullname="Dennis Felsch">
      <organization></organization>
    </author>
    <author initials="M." surname="Grothe" fullname="Martin Grothe">
      <organization></organization>
    </author>
    <author initials="J." surname="Schwenk" fullname="Jörg Schwenk">
      <organization></organization>
    </author>
    <author initials="A." surname="Czubak" fullname="Adam Czubak">
      <organization></organization>
    </author>
    <author initials="M." surname="Szymane" fullname="Marcin Szymane">
      <organization></organization>
    </author>
    <date year="2018" month="August"/>
  </front>
</reference>


<reference anchor='REPLY'>
  <front>
    <title>Re: What’s Up Johnny?: Covert Content Attacks on Email End-to-End Encryption</title>
    <author fullname='Jens Müller' initials='J.' surname='Müller'>
      <organization/>
    </author>
    <author fullname='Marcus Brinkmann' initials='M.' surname='Brinkmann'>
      <organization/>
    </author>
    <author fullname='Damian Poddebniak' initials='D.' surname='Poddebniak'>
      <organization/>
    </author>
    <author fullname='Sebastian Schinzel' initials='S.' surname='Schinzel'>
      <organization/>
    </author>
    <author fullname='Jörg Schwenk' initials='J.' surname='Schwenk'>
      <organization/>
    </author>
    <date year='2019'/>
  </front>
  <seriesInfo name='Applied Cryptography and Network Security' value='pp. 24-42'/>
  <seriesInfo name='DOI' value='10.1007/978-3-030-21568-2_2'/>
</reference>


<reference anchor="SPOOFING" target="https://www.usenix.org/system/files/sec19-muller.pdf">
  <front>
    <title>“Johnny, you are fired!” – Spoofing OpenPGP and S/MIME Signatures in Emails</title>
    <author initials="J." surname="Müller" fullname="Jens Müller">
      <organization></organization>
    </author>
    <author initials="M." surname="Brinkmann" fullname="Marcus Brinkmann">
      <organization></organization>
    </author>
    <author initials="D." surname="Poddebniak" fullname="Damian Poddebniak">
      <organization></organization>
    </author>
    <author initials="H." surname="Böck" fullname="Hanno Böck">
      <organization></organization>
    </author>
    <author initials="S." surname="Schinzel" fullname="Sebastian Schinzel">
      <organization></organization>
    </author>
    <author initials="J." surname="Somorovsky" fullname="Juraj Somorovsky">
      <organization></organization>
    </author>
    <author initials="J." surname="Schwenk" fullname="Jörg Schwenk">
      <organization></organization>
    </author>
    <date year="2019" month="August"/>
  </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'/>
    <author fullname='N. Borenstein' initials='N.' surname='Borenstein'/>
    <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'/>
    <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'/>
    <author fullname='T. Hansen' initials='T.' role='editor' surname='Hansen'/>
    <author fullname='M. Kucherawy' initials='M.' role='editor' surname='Kucherawy'/>
    <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='RFC7435'>
  <front>
    <title>Opportunistic Security: Some Protection Most of the Time</title>
    <author fullname='V. Dukhovni' initials='V.' surname='Dukhovni'/>
    <date month='December' year='2014'/>
    <abstract>
      <t>This document defines the concept "Opportunistic Security" in the context of communications protocols. Protocol designs based on Opportunistic Security use encryption even when authentication is not available, and use authentication when possible, thereby removing barriers to the widespread use of encryption on the Internet.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7435'/>
  <seriesInfo name='DOI' value='10.17487/RFC7435'/>
</reference>

<reference anchor='RFC3274'>
  <front>
    <title>Compressed Data Content Type for Cryptographic Message Syntax (CMS)</title>
    <author fullname='P. Gutmann' initials='P.' surname='Gutmann'/>
    <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'/>
    <author fullname='L. Donnerhacke' initials='L.' surname='Donnerhacke'/>
    <author fullname='H. Finney' initials='H.' surname='Finney'/>
    <author fullname='D. Shaw' initials='D.' surname='Shaw'/>
    <author fullname='R. Thayer' initials='R.' surname='Thayer'/>
    <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'/>
    <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 "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <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'/>
    <author fullname='R. Gopal' initials='R.' surname='Gopal'/>
    <author fullname='E. Guttman' initials='E.' surname='Guttman'/>
    <author fullname='S. Sengodan' initials='S.' surname='Sengodan'/>
    <author fullname='M. Holdrege' initials='M.' surname='Holdrege'/>
    <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'/>
    <author fullname='M. Nystrom' initials='M.' surname='Nystrom'/>
    <author fullname='S. Parkinson' initials='S.' surname='Parkinson'/>
    <author fullname='A. Rusch' initials='A.' surname='Rusch'/>
    <author fullname='M. Scott' initials='M.' surname='Scott'/>
    <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'/>
    <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.woodhouse-cert-best-practice'>
   <front>
      <title>Recommendations for applications using X.509 client certificates</title>
      <author fullname='David Woodhouse' initials='D.' surname='Woodhouse'>
         <organization>Amazon Web Services</organization>
      </author>
      <author fullname='Nikos Mavrogiannopoulos' initials='N.' surname='Mavrogiannopoulos'>
         </author>
      <date day='25' month='July' year='2023'/>
      <abstract>
	 <t>   X.509 certificates are widely used for client authentication in many
   protocols, especially in conjunction with Transport Layer Security
   ([RFC5246]) and Datagram Transport Layer Security ([RFC6347].  There
   exist a multitude of forms in which certificates and especially their
   corresponding private keys may be stored or referenced.

   Applications have historically been massively inconsistent in which
   subset of these forms have been supported, and what knowledge is
   demanded of the user.  This memo sets out best practice for
   applications in the interest of usability and consistency.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-woodhouse-cert-best-practice-01'/>
   
</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'/>
    <author fullname='J. Klensin' initials='J.' surname='Klensin'/>
    <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'/>
    <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'/>
    <author fullname='C. Newman' initials='C.' surname='Newman'/>
    <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='3' month='August' year='2023'/>
      <abstract>
	 <t>   This document specifies an extension to JMAP for sending S/MIME
   signed and/or S/MIME encrypted messages, as well as automatic
   decryption of received S/MIME messages.

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

<reference anchor='RFC1939'>
  <front>
    <title>Post Office Protocol - Version 3</title>
    <author fullname='J. Myers' initials='J.' surname='Myers'/>
    <author fullname='M. Rose' initials='M.' surname='Rose'/>
    <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'/>
    <date month='April' year='2022'/>
    <abstract>
      <t>This document specifies an extension to "The JSON Meta Application Protocol (JMAP) for Mail" (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='21' month='June' 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-10'/>
   
</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'/>
    <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'/>
    <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='22' month='May' year='2023'/>
      <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-16'/>
   
</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'/>
    <author fullname='J. Schlyter' initials='J.' surname='Schlyter'/>
    <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'/>
    <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 "web of trust" 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="expect-e2e"><name>Expectations of Cryptographic Protection</name>

<t>As mentioned in <xref target="security-indicators"/>, the types of security indicators displayed to the user may well vary based on the expectations of the user for a given communication.
At present, there is no widely shared method for the MUA to establish and maintain reasonable expectations about whether a specific received message should have cryptographic protections.</t>

<t>If such a standard is developed, a future version of this document should reference it and encourage the deployment of clearer and simpler security indicators.</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-10-to-draft-ietf-11"><name>Substantive changes from draft-ietf-...-10 to draft-ietf-...-11</name>

<t><list style="symbols">
  <t>Mention List-* and Archived-At message header fields</t>
  <t>Add additional references to papers that describe flaws in e2e e-mail</t>
</list></t>

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

<t><list style="symbols">
  <t>Introduction: describe one major theme of Future Work</t>
</list></t>

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

<t><list style="symbols">
  <t>Clarify goals of document</t>
  <t>Identify cross-protocol attacks in more detail to justify prescription against key reuse</t>
  <t>Add informative references to Opportunistic Encryption RFC and Certificate Best Practice draft</t>
  <t>Add "Reading Encrypted Messages after Certificate Expiration" section to Common Pitfalls and Guidelines</t>
  <t>Clean up nits identified by Stephen Farrell and Eliot Lear</t>
</list></t>

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

<t><list style="symbols">
  <t>Add guidance about importing and exporting secret key material</t>
  <t>More explanation about "encryption outside, signature inside"</t>
  <t>Guidance about Intervening (resending) MUAs</t>
  <t>Include Sender and Resent-* as user-facing headers</t>
  <t>Guidance about external subresources for cryptographically protected messages</t>
  <t>Relax "user-facing" definition to be more advisory</t>
</list></t>

</section>
<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:
H4sIAAAAAAAAA8y9S28kV5YmuOevsGIsRAbcPV56RlaViopgSJTiwQyGpBIE
oWnubk430d3M0x5keAaiUOhF9w+Y6l03MIsBGg3MctCLwaym/kn+kjnve66Z
OYNSVjUG1Y1UOM2u3ce55/mdc8bj8V6TN6vscfJ1m8/TYpYlZZEcF/NxU47h
f5Lj8TrNV8lZNmurvNnuzctZka7h+XmVLppxnjWL8Spdb+px9jCjZ8cXMtL4
wYO9WdpkF2W1fZzkxaLc28s31eOkqdq6eXj//hf3H+6lVZbiH5u967K6vKjK
dvM4oQH3LrMt/DZ/nJwUTVYVWTN+it/cq9vpOq/rvCzebDcwk5PjN8/29uom
Leb/IV2VBfy0zeq9q6xos8d7SSKD7j8/enF6tg8/NPTa/o/wwby4SL7Gv+Pv
OHv4vd6k9fofcGWTsrrAP6TVbAl/WDbNpn587x4+hz/lV9lEH7uHP9ybVuV1
nd2jEe7hm1W2Kd2bF7DX6XQyK9f35pcX93pbhq+sYMvqxr0ET07kxbzsvwPf
2UvbZllWuNgx/P8E9rN+nDydJN9Nkq/z1WpdVvQzn9zTtMizVfJduiyiv8Iq
HidH66zKZ2mRPMmv4Nyf59OsavKsTr4vYMPpubqpsgwm+ODhJ8lXVZnOk7Nm
Qn+ZAYU8Tl5m18lPsLej5OVP/HM5h88+uH///sfy77ZokCa+PzuiH9LptMqu
4ONPnn9PP2R8FLDyf1jki2YJi6vht2ICVEAPVCXSbDbPG5q8W/VXk+SbMiuy
vM4Kt+ivgILyrPMnWvHmeJM8gxnN06a7wlew+KwCAkmnWZF87Nb45Jvx5x/f
v5/8mCNtNsu2ild2dp03f86qFdCkX9CUZjFZ6iz+YZNtJov443DPHid69vHf
731g7UeT5EW2KvLL8sot/WiVvc228V9o5Sc1HEzyvJnHx/px8iStgSfAG9e1
W/M3cCubshglL/L5fJXV2Vt3um9+fPAwefjytHPA3/nVpzSRyVom8g85fh8v
Q39ZyC2qNSz6iq7w0fdvXj15/dPpm8f0aJNWFzhV3SUg/3JWbTcN3UR+hLna
kf4lGSdPygJ4Qp4VTcTgCvo77G4CnwR+9wLmSkPAnsMI37arbfLw/oPPmVLt
oiW687rNP+RwGWHsr6osb9ZlnVVDT31Tri6ApL6rsstsNfTArtu541LPllW5
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
s7Gp/1y3A4b5r3/5l3+GYX6OyeAX/fO/8J9vGEnQXrQyonsDufRz+F2WV7Qj
vHFuh2/ckjABedrvyfBs8b0/JPw66lB/t+9e1734z/8jOQgUd9jZgt4O/Zut
OyajWyw9fuH3rD4eQTfgP/335MBdzd+9A52Uv8FF92/JLRbOW/vXLr7/6X/n
DejRQPAGnMfLOUcl94ajliob5/0l9N4c2Ct4m8GBc6bPVV/I0fCE+lK/BhU2
hadrFijkEVP7bZZFvrrmuiTAeChEsQbDNRMMgihJYnLV/Sw4GlrSu3obY9D+
hLHEaQiX0Uby/lsscXCHBM+i9MiE+IRsNrH7ajLRBkmRZ9/RmlRh2oIW9DY5
ePLi7NCXgiHKmLkP8CwPzj056t+VFs8PKTM6Sj5l8wjTrCfi0ldfSDwyYog1
w55yy1hIg7B7caZo+k6ew/C9U/f6zpRkkcdW72W3RLZHfpZ6ML84kYwkc6NE
Hpn5l0ZgDztEHf1MHhtazUFXSh4CY9lcbP5tJezF5t9GvvpxPixlhvhLvDOu
hOwHNsd8p8P7Y3/evUX2SGf93QX2nhvYiBK2q0GTI7Pqgzs49G9h0ei2Ecg4
AewoXtJl2AdXeQo342y7XmdNJbcpuI+forg6TWeXWaOZXpr19snkMyRlvLAf
f/75/ffv/yAuIPNam1+R7hMSvzoudjDOw4EJRif+oelaeUoNssdLSA7Ojk9O
nx72l/LgkeTv8VIOJWbeS+n3lZswCBvRJkZkywuu2nIwVQ4vkRAtM2e15XRO
AqxBHsSzGzK/lMEP8Wb9m2ahr7BGHQGkYWacQy0lugZNukHbFQzJqrFMSfIr
tlhmBN3VRGIUsgneMXvMZyV3swzYsCIn/OKWDysbH+TdITge8tjTug9XUAE7
QTvVNmVfXY0kf3L1Tlxlzi7j9S12iA7N+o8uIu8n+wR3zZkvaB2oheRbjrmA
6k0ZPuJIo6J5FWUxHpybpJ5SFhgQ5uDRO9LbNc5dcXnetcU1OwmQ9CZOSNxd
cMKCTBk9Mh7wJ0ikpgPtIiKs4pzPwfFJbUIMWfC9d90KUr1oQrF2Mo+Qksb9
iFruh6FQkw+88VuCuem4qPDXaFSpz9CZs5S2GLrX8qdORirTHOMKdx2awNR6
Hg/43R35ThK748BKu9jQHQXn7BqnDhid+Ij1NlIBCu9Fpss30lBLb/JW2mmu
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
lpSOBPPIixiU5rCz/cYZoUEAsEctL+aSqFPrs9NY+DMIvBHoUOyiWQ7mlTJQ
4IjIzuWyBSCyIpDlLK3rjobHsZSZwg4vJNefGjERU/r+5N73/yj+acliNhZl
zZyNp3GtifIKDpUDuydxKm+dPC2Tl/DQN2yBH/Ny4H+6ZSyd+vDuTjfzV4t9
osuG+vQcXXCBLPzEoUJqGCfl0VUhjYd2HHkBMaVaAhz466FSDvWUM4ecQTzy
LiA5yg4OGBPyBKWgXTzm4kSScbxJuSBXFcMv6EMuLclcl1z8rCbvCeN8kC3h
9aQLV0m9V2I3sO0YJhGrvEz2kbvPsPyvBzT6xZB+HzygnaLznR40mIv5aZSL
eSgfD/2hZATsUw6agEQrBT9fIdaHu39wVzPBHDEOl9PzWBgobjDFiQnirJay
DEoLdKBRxjQNOt127MWGTUgQYr9Kd1SH6nFTcGPwtDmOjnRGx8hGZifdAc+R
q05F6TEd/CgGZkjTDNqYcnqH0XRxTI5Y8Tr5gh84YLQrdB9tqpypyzJPvZfy
gIVBO0X34qH1cD6X5+9Vi9nnDx+e45Lst4tVOU1X9Nt+XiAOZV+Z42AdhbvA
AO4mki/MftJuMr+itym9J67nIKvxad6U8pluasrd5XAdle5VlBLolFnV87hp
Hrape/Rhrn51yECRzqxcb2k9hFuBRzj9hzQILZbD4Zvgwa4jLiL1yrpgtcZX
obhWabgf5rAvztRGs/+GyYwSodRlNlhNgbmX+LYpShQCYXlMeqEawqUYSch3
GlSBrhA2NXfNjOQmecMuJY4lJhbVlSoxV0PSm6YVZu2rHcv6iZ1X55rRflFh
DrmK9LK6O8PDNpCku/iyTKySjrDo8yyL3/OwBNpAtZQCnKV77/HRogyy9Upz
W6JNofRu0QIGj8Gs+jF8aBxXTNl9HkjhwfXrSi253Q+26JRLo6GIvxZeGHVa
isyuH3NTeq8dT3PasfdUgMEBF34UrBTdyWmmyQxNp5RjeEnogNueXGaS79cM
Fhek0gWmBktIXJ6jBKABRuMKMAlYpKkciudW17ssupdMQ6YarZeyaRxdx+hB
owWg4Ny5YiyXENWMX8FoBT+/ett6qaW+bMvc8lvhv8fLckbqyXC5FCosUEaN
wzgklcVHweAWV+Mu4MgIAlkPa5u1lETbaodMbZjgTN6emOxY96gaHmurqrMW
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

-->

</rfc>

