<?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.0.4) -->


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

]>


<rfc ipr="trust200902" docName="draft-ietf-lamps-e2e-mail-guidance-04" 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>

    <date year="2022" month="November" day="22"/>

    <area>int</area>
    <workgroup>lamps</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>End-to-end cryptographic protections for e-mail messages can provide useful security.
However, the standards for providing cryptographic protection are extremely flexible.
That flexibility can trap users and cause surprising failures.
This document offers guidance for mail user agent implementers that need to compose or interpret e-mail messages with end-to-end cryptographic protection.
It provides a useful set of vocabulary as well as suggestions to avoid common failures.</t>



    </abstract>

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


  </front>

  <middle>


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

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

<t>However, there are many ways that a receiving mail user agent can misinterpret or accidentally break these security guarantees (e.g., <xref target="EFAIL"></xref>).</t>

<t>A mail user agent that interprets a message with end-to-end cryptographic protections needs to do so defensively, staying alert to different ways that these protections can be bypassed by mangling (either malicious or accidental) or a failed user experience.</t>

<t>A mail user agent that generates a message with end-to-end cryptographic protections should be aware of these defensive interpretation strategies, and should compose any new outbound message conservatively if they want the protections to remain intact.</t>

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

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

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

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

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

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

<t>These headers indicate something about the specific MIME part they are attached to, and cannot be transferred or copied to other parts without endangering the readability of the message.</t>

<t>This includes:</t>

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

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

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

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

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

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

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

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

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

<section anchor="simplicity"><name>Simplicity</name>

<t>The end user (the operator of the MUA) is unlikely to understand complex end-to-end cryptographic protections on any e-mail message, so keep it simple.</t>

<t>For clarity to the user, any cryptographic protections should apply to the message as a whole, not just to some subparts.</t>

<t>This is true for message composition: the standard message composition user interface of an MUA should offer minimal controls which indicate which types of protection to apply to the new message as a whole.</t>

<t>This is also true for message interpretation: the standard message rendering user interface of an MUA should offer a minimal, clear indicator about the end-to-end cryptographic status of the message as a whole.</t>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<t>Given that many e-mail messages offer no cryptographic protections, the user needs to be able to detect which protections are present for any given message.</t>

<section anchor="simple-mental-model"><name>Simplified Mental Model</name>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<t>The user needs a single clear, simple, and correct indication about the end-to-end cryptographic status of any given message.</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 Crytptographic Layers</name>

<t>Due to confusion, malice, or well-intentioned tampering, a message may contain a Cryptographic Layer that is not part of the Cryptographic Envelope.
Such a layer is an Errant Cryptographic Layer.</t>

<t>An Errant Cryptographic Layer <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>
<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> of <spanx style="verb">output</spanx> with value <spanx style="verb">v</spanx></t>
    </list></t>
  <t>Return <spanx style="verb">output</spanx></t>
</list></t>

</section>
<section anchor="sign-then-encrypt"><name>Encryption Outside, Signature Inside</name>

<t>Users expect any message that is both signed and encrypted to be signed <em>inside</em> the encryption, and not the other way around.</t>

<t>Putting the signature inside the encryption has two advantages:</t>

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

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

</section>
<section anchor="no-encrypted-only"><name>Avoid Offering Encrypted-only Messages</name>

<t>When generating an e-mail, the user has options about what forms of end-to-end cryptographic protections to apply to it.</t>

<t>In some cases, offering any end-to-end cryptographic protection is harmful: it may confuse the recipient and offer no benefit.</t>

<t>In other cases, signing a message is useful (authenticity and integrity are desirable) but encryption is either impossible (for example, if the sender does not know how to encrypt to all recipients) or meaningless (for example, an e-mail message to a mailing list that is intended to be be published to a public archive).</t>

<t>In other cases, full end-to-end confidentiality, authenticity, and integrity are desirable.</t>

<t>It is unclear what the use case is for an e-mail message with end-to-end confidentiality but without authenticity or integrity.</t>

<t>A reasonable MUA will keep its message composition interface simple, so when presenting the user with a choice of cryptographic protection, it <bcp14>SHOULD</bcp14> offer no more than three choices:</t>

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

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

</section>
<section anchor="composing-reply"><name>Composing a Reply Message</name>

<t>When replying to a message, most MUAs compose an initial draft of the reply that contains quoted text from the original message.
A responsible MUA will take precautions to avoid leaking the cleartext of an encrypted message in such a reply.</t>

<t>If the original message was end-to-end encrypted, the replying MUA <bcp14>MUST</bcp14> either:</t>

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

<t>In general, MUAs <bcp14>SHOULD</bcp14> prefer the first option: to compose an encrypted reply.
This is what users expect.</t>

<t>However, in some circumstances, the replying MUA cannot compose an encrypted reply.
For example, the MUA might not have a valid, unexpired, encryption-capable certificate for all recipients.
This can also happen during composition when a user adds a new recipient into the reply, or manually toggles the cryptographic protections to remove encryption.</t>

<t>In this circumstance, the composing MUA <bcp14>SHOULD</bcp14> strip the quoted text from the original message.</t>

<t>Note additional nuance about replies to malformed messages that contain encryption in <xref target="reply-to-errant-encryption"/>.</t>

</section>
</section>
<section anchor="message-interpretation"><name>Message Interpretation</name>

<t>Despite the best efforts of well-intentioned senders to create e-mail messages with well-formed end-to-end cryptographic protection, receiving MUAs will inevitably encounter some messages with malformed end-to-end cryptographic protection.</t>

<t>This section offers guidance on dealing with both well-formed and malformed messages containing Cryptographic Layers.</t>

<section anchor="well-formed"><name>Rendering Well-formed Messages</name>

<t>A message is well-formed when it has a Cryptographic Envelope, a Cryptographic Payload, and no Errant Cryptographic Layers.
Rendering a well-formed message is straightforward.</t>

<t>The receiving MUA should evaluate and summarize the cryptographic properties of the Cryptographic Envelope, and display that status to the user in a secure, strictly-controlled part of the UI.
In particular, the part of the UI used to render the cryptographic summary of the message <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 {#composing-reply}.</t>

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

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

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

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

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

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

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

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

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

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

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

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

</section>
</section>
</section>
<section anchor="forwarded-messages-with-cryptographic-protection"><name>Forwarded Messages with Cryptographic Protection</name>

<t>An incoming e-mail message may include an attached forwarded message, typically as a MIME subpart with <spanx style="verb">Content-Type: message/rfc822</spanx> (<xref target="RFC5322"/>) or <spanx style="verb">Content-Type: message/global</spanx> (<xref target="RFC5355"/>).</t>

<t>Regardless of the cryptographic protections and structure of the incoming message, the internal forwarded message may have its own Cryptographic Envelope.</t>

<t>The Cryptographic Layers that are part of the Cryptographic Envelope of the forwarded message are not Errant Cryptographic Layers of the surrounding message -- they are simply layers that apply to the forwarded message itself.</t>

<t>The rendering MUA <bcp14>MUST NOT</bcp14> conflate the cryptographic protections of the forwarded message with the cryptographic protections of the incoming message.</t>

<t>The rendering MUA <bcp14>MAY</bcp14> render a cryptographic summary of the protections afforded to the forwarded message by its own Cryptographic Envelope, as long as that rendering is unambiguously tied to the forwarded message itself, and cannot be spoofed either by the enclosing message or by the forwarded message.</t>

</section>
<section anchor="signature-failures"><name>Signature failures</name>

<t>A cryptographic signature may fail in multiple ways.
A receiving MUA that discovers a failed signature should treat the message as though the signature did not exist.
This is similar to the standard guidance for about failed DKIM signatures (see <xref section="6.1" sectionFormat="of" target="RFC6376"/>).</t>

<t>A MUA <bcp14>SHOULD NOT</bcp14> render a message with a failed signature as more dangerous or more dubious than a comparable message without any signature at all.</t>

<t>A MUA that encounters an encrypted-and-signed message where the signature is invalid <bcp14>SHOULD</bcp14> treat the message the same way that it would treat a message that is encryption-only.</t>

<t>Some different ways that a signature may be invalid on a given message:</t>

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

<t>A valid signature must pass all these tests, but of course invalid signatures may be invalid in more than one of the ways listed above.</t>

</section>
</section>
<section anchor="reasoning-about-message-parts"><name>Reasoning about Message Parts</name>

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

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

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

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

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

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

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

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

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

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

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

<t>A message may contain one or more separated MIME parts that are intended for download or extraction.
Such a part is commonly called an "attachment", and is commonly identified by having <spanx style="verb">Content-Disposition: attachment</spanx>, and is a subpart of a <spanx style="verb">multipart/mixed</spanx> or <spanx style="verb">multipart/related</spanx> container.</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.</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>

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

<t>TODO: incoming PKCS#7 messages tend to have a bundle of certificates in them.
How should these certs be handled?</t>

<t>TODO: point to Autocrypt certificate discovery mechanism</t>

<t>TODO: point to OpenPGP embedded certificate subpacket proposal</t>

<t>TODO: compare mechanisms, explain where each case is useful.</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.</t>

<t>TODO: more information here about X.509 directories -- LDAP?</t>

<t>TODO: mention WKD for OpenPGP certificates?</t>

<t>TODO: mention SMIMEA and OPENPGPKEY DNS RRs</t>

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

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

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

<t><list style="symbols">
  <t>The certificate must be valid, not expired or revoked.</t>
  <t>It must have a subjectAltName of type rFC822Name whose contents exactly match the destination address.</t>
  <t>The algorithm OID in the certificate's SPKI is known to the MUA and capable of encryption.
Examples include (TODO: need OIDs)
  <list style="symbols">
      <t>RSA, with keyUsage present and the "key encipherment" bit set</t>
      <t>EC Public Key, with keyUsage present and the "key agreement" bit set</t>
      <t>EC DH, with keyUsage present and the "key agreement" bit set</t>
    </list></t>
  <t>If extendedKeyUsage is present, it contains at least one of the following OIDs: e-mail protection, anyExtendedKeyUsage.</t>
</list></t>

<t>TODO: If OID is EC Public Key and keyUsage is absent, what should happen?</t>

<t>TODO: what if multiple certificates meet all of these criteria for a given recipient?</t>

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

<t>TODO: discuss how/when to check for peer certificate revocation</t>

<t>TODO: privacy concerns: what information leaks to whom when checking peer cert revocations?</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>

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

<t>TODO: mention ACME SMIME?</t>

<t>TODO: mention automatic self-signed certs e.g. OpenPGP?</t>

<t>TODO: <bcp14>SHOULD</bcp14> generate secret key material locally, and <bcp14>MUST NOT</bcp14> accept secret key material from an untrusted third party as the basis for the user's certificate.</t>

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

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

<t><list style="symbols">
  <t>The user's own certificate set does not include a valid, unexpired encryption-capable X.509 certificate, and a valid, unexpired signature-capable X.509 certificate.</t>
  <t>Any of the user's own certificates is due to expire soon (TODO: what is "soon"?)</t>
  <t>Any of the user's own certificates does not match the e-mail address associated with the user's account.</t>
  <t>Any of the user's own certificates does not have a keyUsage section</t>
  <t>Any of the user's own certificates does not contain an extendedKeyUsage extension</t>
</list></t>

<t>TODO: how does the MUA do better than warning in the cases above?
What can the MUA actually <em>do</em> here to fix problems before they happen?</t>

<t>TODO: discuss how/when to check for own certificate revocation, and what to do if it (or any intermediate certificate authority) is found to be revoked.</t>

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

<t>TODO: What certificates should the MUA include in an outbound message so that peers can discover them?</t>

<t><list style="symbols">
  <t>local signing certificate so that signature can be validated</t>
  <t>local encryption-capable certificate(s) so that incoming messages can be encrypted.</t>
  <t>On an encrypted message to multiple recipients, the encryption-capable peer certs of the other recipients (to enable "reply all")?</t>
  <t>intermediate certificates to chain all of the above to some set of root authorities?</t>
</list></t>

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

<t>TODO: how should the MUA select root certificate authorities?</t>

<t>TODO: should the MUA cache intermediate CAs?</t>

<t>TODO: should the MUA share such a cache with other PKI clients (e.g., web browsers)?
Are there distinctions between a CA for S/MIME and for the web?</t>

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

<t>FIXME: some possible additional commentary on:</t>

<t><list style="symbols">
  <t>indexing and search of encrypted messages</t>
  <t>managing access to cryptographic secret keys that require user interaction</t>
  <t>secure deletion</t>
  <t>storage of composed/sent messages</t>
  <t>encrypt-to-self during composition</t>
  <t>cached signature validation</t>
  <t>interaction between encryption and Bcc</t>
  <t>aggregated cryptographic status of threads/conversations ?</t>
  <t>Draft messages</t>
  <t>copies to the Sent folder</t>
</list></t>

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

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

<t>MAYBE: provide an indicator in the IANA header registry for which headers are "structural" and which are "user-facing"?
This is probably unnecessary.</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
Alexey Melnikov,
Bernie Hoeneisen,
Bjarni Rúnar Einarsson,
David Bremner,
Deb Cooley,
Holger Krekel,
Jameson Rollins,
Jonathan Hammell,
juga,
Patrick Brunschwig,
Santosh Chokhani, and
Vincent Breitmoser.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC8551' target='https://www.rfc-editor.org/info/rfc8551'>
<front>
<title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<author fullname='B. Ramsdell' initials='B.' surname='Ramsdell'><organization/></author>
<author fullname='S. Turner' initials='S.' surname='Turner'><organization/></author>
<date month='April' year='2019'/>
<abstract><t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0.  S/MIME provides a consistent way to send and receive secure MIME data.  Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality.  Compression can be used to reduce data size.  This document obsoletes RFC 5751.</t></abstract>
</front>
<seriesInfo name='RFC' value='8551'/>
<seriesInfo name='DOI' value='10.17487/RFC8551'/>
</reference>



<reference anchor='RFC3156' target='https://www.rfc-editor.org/info/rfc3156'>
<front>
<title>MIME Security with OpenPGP</title>
<author fullname='M. Elkins' initials='M.' surname='Elkins'><organization/></author>
<author fullname='D. Del Torto' initials='D.' surname='Del Torto'><organization/></author>
<author fullname='R. Levien' initials='R.' surname='Levien'><organization/></author>
<author fullname='T. Roessler' initials='T.' surname='Roessler'><organization/></author>
<date month='August' year='2001'/>
<abstract><t>This document describes how the OpenPGP Message Format can be used to provide privacy and authentication using the Multipurpose Internet Mail Extensions (MIME) security content types described in RFC 1847. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3156'/>
<seriesInfo name='DOI' value='10.17487/RFC3156'/>
</reference>



<reference anchor='RFC4289' target='https://www.rfc-editor.org/info/rfc4289'>
<front>
<title>Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures</title>
<author fullname='N. Freed' initials='N.' surname='Freed'><organization/></author>
<author fullname='J. Klensin' initials='J.' surname='Klensin'><organization/></author>
<date month='December' year='2005'/>
<abstract><t>This document specifies IANA registration procedures for MIME external body access types and content-transfer-encodings.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='13'/>
<seriesInfo name='RFC' value='4289'/>
<seriesInfo name='DOI' value='10.17487/RFC4289'/>
</reference>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></author>
<date month='March' year='1997'/>
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></author>
<date month='May' year='2017'/>
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>




    </references>

    <references title='Informative References'>

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




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



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



<reference anchor='RFC6376' target='https://www.rfc-editor.org/info/rfc6376'>
<front>
<title>DomainKeys Identified Mail (DKIM) Signatures</title>
<author fullname='D. Crocker' initials='D.' role='editor' surname='Crocker'><organization/></author>
<author fullname='T. Hansen' initials='T.' role='editor' surname='Hansen'><organization/></author>
<author fullname='M. Kucherawy' initials='M.' role='editor' surname='Kucherawy'><organization/></author>
<date month='September' year='2011'/>
<abstract><t>DomainKeys Identified Mail (DKIM) permits a person, role, or organization that owns the signing domain to claim some responsibility for a message by associating the domain with the message.  This can be an author's organization, an operational relay, or one of their agents.  DKIM separates the question of the identity of the Signer of the message from the purported author of the message.  Assertion of responsibility is validated through a cryptographic signature and by querying the Signer's domain directly to retrieve the appropriate public key.  Message transit from author to recipient is through relays that typically make no substantive change to the message content and thus preserve the DKIM signature.</t><t>This memo obsoletes RFC 4871 and RFC 5672.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='76'/>
<seriesInfo name='RFC' value='6376'/>
<seriesInfo name='DOI' value='10.17487/RFC6376'/>
</reference>



<reference anchor='RFC3274' target='https://www.rfc-editor.org/info/rfc3274'>
<front>
<title>Compressed Data Content Type for Cryptographic Message Syntax (CMS)</title>
<author fullname='P. Gutmann' initials='P.' surname='Gutmann'><organization/></author>
<date month='June' year='2002'/>
<abstract><t>This document defines a format for using compressed data as a Cryptographic Message Syntax (CMS) content type.  Compressing data before transmission provides a number of advantages, including the elimination of data redundancy which could help an attacker, speeding up processing by reducing the amount of data to be processed by later steps (such as signing or encryption), and reducing overall message size. Although there have been proposals for adding compression at other levels (for example at the MIME or SSL level), these don't address the problem of compression of CMS content unless the compression is supplied by an external means (for example by intermixing MIME and CMS). [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3274'/>
<seriesInfo name='DOI' value='10.17487/RFC3274'/>
</reference>



<reference anchor='RFC4880' target='https://www.rfc-editor.org/info/rfc4880'>
<front>
<title>OpenPGP Message Format</title>
<author fullname='J. Callas' initials='J.' surname='Callas'><organization/></author>
<author fullname='L. Donnerhacke' initials='L.' surname='Donnerhacke'><organization/></author>
<author fullname='H. Finney' initials='H.' surname='Finney'><organization/></author>
<author fullname='D. Shaw' initials='D.' surname='Shaw'><organization/></author>
<author fullname='R. Thayer' initials='R.' surname='Thayer'><organization/></author>
<date month='November' year='2007'/>
<abstract><t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format.  It is not a step-by-step cookbook for writing an application.  It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network.  It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t><t>OpenPGP software uses a combination of strong public-key and symmetric cryptography to provide security services for electronic communications and data storage.  These services include confidentiality, key management, authentication, and digital signatures.  This document specifies the message formats used in OpenPGP.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4880'/>
<seriesInfo name='DOI' value='10.17487/RFC4880'/>
</reference>



<reference anchor='RFC5322' target='https://www.rfc-editor.org/info/rfc5322'>
<front>
<title>Internet Message Format</title>
<author fullname='P. Resnick' initials='P.' role='editor' surname='Resnick'><organization/></author>
<date month='October' year='2008'/>
<abstract><t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of &quot;electronic mail&quot; messages.  This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, &quot;Standard for the Format of ARPA Internet Text Messages&quot;, updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5322'/>
<seriesInfo name='DOI' value='10.17487/RFC5322'/>
</reference>



<reference anchor='RFC5355' target='https://www.rfc-editor.org/info/rfc5355'>
<front>
<title>Threats Introduced by Reliable Server Pooling (RSerPool) and Requirements for Security in Response to Threats</title>
<author fullname='M. Stillman' initials='M.' role='editor' surname='Stillman'><organization/></author>
<author fullname='R. Gopal' initials='R.' surname='Gopal'><organization/></author>
<author fullname='E. Guttman' initials='E.' surname='Guttman'><organization/></author>
<author fullname='S. Sengodan' initials='S.' surname='Sengodan'><organization/></author>
<author fullname='M. Holdrege' initials='M.' surname='Holdrege'><organization/></author>
<date month='September' year='2008'/>
<abstract><t>Reliable Server Pooling (RSerPool) is an architecture and set of protocols for the management and access to server pools supporting highly reliable applications and for client access mechanisms to a server pool.  This document describes security threats to the RSerPool architecture and presents requirements for security to thwart these threats.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='5355'/>
<seriesInfo name='DOI' value='10.17487/RFC5355'/>
</reference>


<reference anchor='I-D.draft-bre-openpgp-samples-01'>
   <front>
      <title>OpenPGP Example Keys and Certificates</title>
      <author fullname='Bjarni Rúnar Einarsson' initials='B. R.' surname='Einarsson'>
         <organization>Mailpile ehf</organization>
      </author>
      <author fullname='&quot;juga&quot;' initials='' surname='&quot;juga&quot;'>
         <organization>Independent</organization>
      </author>
      <author fullname='Daniel Kahn Gillmor' initials='D. K.' surname='Gillmor'>
         <organization>American Civil Liberties Union</organization>
      </author>
      <date day='20' month='December' year='2019'/>
      <abstract>
	 <t>   The OpenPGP development community benefits from sharing samples of
   signed or encrypted data.  This document facilitates such
   collaboration by defining a small set of OpenPGP certificates and
   keys for use when generating such samples.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-bre-openpgp-samples-01'/>
   <format target='https://www.ietf.org/archive/id/draft-bre-openpgp-samples-01.txt' type='TXT'/>
</reference>



<reference anchor='RFC9216' target='https://www.rfc-editor.org/info/rfc9216'>
<front>
<title>S/MIME Example Keys and Certificates</title>
<author fullname='D. K. Gillmor' initials='D. K.' role='editor' surname='Gillmor'><organization/></author>
<date month='April' year='2022'/>
<abstract><t>The S/MIME development community benefits from sharing samples of signed or encrypted data. This document facilitates such collaboration by defining a small set of X.509v3 certificates and keys for use when generating such samples.</t></abstract>
</front>
<seriesInfo name='RFC' value='9216'/>
<seriesInfo name='DOI' value='10.17487/RFC9216'/>
</reference>




    </references>


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

<t>FIXME: This document should contain examples of well-formed and malformed messages using cryptographic key material and certificates from <xref target="I-D.draft-bre-openpgp-samples-01"/> and <xref target="RFC9216"/>.</t>

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

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

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


  </back>

<!-- ##markdown-source:
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
SHazUDuDN3TFu4meF7ics6WKZXjY1sWMZsL2k+WOHIYVWeD7I0PW4/q2Wkve
uKuVv4mCaTLRnc4qLZ8STzUwKR0ac7ddWm1VQ99s2u6O3lMdoqjCNarY/SaR
VphxIFmMaotGnX3QISFTN5v3bSF2fIK8fkiyjnyzDnmIhIVJThIdhj08KiXt
hxoMsf0n+zbO68q0F59L/+eGsr0faGJ1RJAvGw7ak1VSSsno1phL07hKO0aB
t3mFXAeP2F4jCufsMx9o47X7wUMrJeC7uMydDg40fpAurBjybJJAB0tqvzRM
M3s7zbr6enV11Gi9UrD7sUsT3Pmt6VFaLHxgdUQx/GcSQJOxo6pA3aDPsqpo
iIfDrw7vN6TdvZOVrXSdPURoqe/jplKxbllyZTsRfswo9o6cvCt0+EHl8UFY
VvylkdzzwhaRIBcF2OPdy8K1SJKJ8hVpf5rCYaX+rJZWaUfz4kiUWjqSRfrW
uI4rk4BTy80dgWjZz9PbGOr4ruCXtMDkkvyUixEPilIL+pFwksy5X7M/gk2I
OnT+ezENrcYl18GtUrkn56Sl2r800TDPXNMrbjqsnncoAPNHcRaX1kkLpcnp
daJt5spA8QgA8tZ4hRH3FYia2YJt1xrQtH7t3NzqnDdFTHP7+f4WfAfVoR2s
nUdtPf5eTfU4epn32gZs0xtFwvXzE6W8Zw1W6tr0E5NiZm8EOuB+sPz2UCpC
CCGHh1/RInYhgnSdWzHJWNVFL9+DtcJ1rnLRKO7EsHiTJirxfR597H406ov3
/nuf7Fpnr6YMT9GHpqln1bU+Fb9EsL+T451vVyt2N6rJxJ8y/xJYQqOfZQpM
ySi9S6bRtCzu0DKSIHks9Mup05KUpGaO1CuTpD9mitXb5UCcRtjRSF+xN06i
EZdpvSCQiymFm6+SjPvhcE0uvTDe6AvtixFW6XKVwR/IKeDJXTQ0bw55rKUb
S+phClPVp0zGFnegDAT/Rkm8VMQ9O//jxdlTOXbbk9hrrIiloRcrkv9zlqMp
sdi3pkC7StAC2DN6vG5+9C67sPhdq3a1AlNWrbCZ/39qINI0BERnHBupIC3o
yIbLEvOkLkop37IZbg/YSPGWoOtCqJQTz7p9MtHnVAp4HK9QJiG/esuw5+5V
nQIOX89m6H26JHtoyTKyL/4mxIaG9tUDElucHSXYBII95b6z3spnxUa7WAKZ
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
WQmas/1fIXdL5knTAAA=

-->

</rfc>

