<?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-dkg-lamps-expect-signed-mail-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Expect Signed Mail</title>

    <author initials="D. K." surname="Gillmor" fullname="Daniel Kahn Gillmor">
      <organization>American Civil Liberties Union</organization>
      <address>
        <email>dkg@fifthhorseman.net</email>
      </address>
    </author>
    <author initials="A." surname="Wussler" fullname="Aron Wussler">
      <organization>Proton AG</organization>
      <address>
        <postal>
          <country>Switzerland</country>
        </postal>
        <email>aron@wussler.it</email>
      </address>
    </author>

    <date year="2023" month="October" day="01"/>

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

    <abstract>


<t>This draft proposes a mechanism for e-mail users to indicate to their peers that the peer should expect all future e-mail from them to be cryptographically signed.</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/expect-signed-mail/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dkg-lamps-expect-signed-mail/"/>.
      </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/expect-signed-mail"/>.</t>
    </note>


  </front>

  <middle>


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

<t>E-mail signature validation is hard.
When an e-mail signature is absent (or invalid), a reasonable mail user agent will hide their cryptographic authenticity security indicator for the message.
But an absent security indicator is hard to notice.</t>

<t>Some e-mail users create end-to-end signatures of all of their e-mails.
The peers of those users may want to display a more significant warning message when a signature is absent or invalid.</t>

<t>This draft proposes a mechanism whereby an e-mail author can indicate to a peer that they should expect all their future messages to be cryptographically signed.</t>

<section anchor="requirements-language"><name>Requirements Language</name>

<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>
<section anchor="terminology"><name>Terminology</name>

<t>The terms Message Submission Agent (MSA), Message Transfer Agent (MTA), and Message User Agent (MUA) are to be interpreted as defined in <xref target="RFC6409"/>.</t>

</section>
</section>
<section anchor="signalling-mechanism"><name>Signalling Mechanism</name>

<t>A sender that intends to signal their intention to activate the Expected-Signed mechanism <bcp14>MUST</bcp14> add an "Expected-Signed" header to the outgoing email, specifying an expiration date in the value of the header.</t>

<t>The authenticity of the header <bcp14>MUST</bcp14> be validated.
The header <bcp14>SHOULD</bcp14> be transmitted in the protected headers (see <xref target="I-D.ietf-lamps-header-protection-16"/>), and a recipient MUA <bcp14>SHOULD</bcp14> deem it valid if the signing key is already trusted.
Alternatively, the recipient's MUA:</t>

<t><list style="symbols">
  <t><bcp14>SHOULD</bcp14> validate the DKIM headers <xref target="RFC6376"/> and <bcp14>SHOULD</bcp14> require them to be in the protected headers.</t>
  <t><bcp14>SHOULD</bcp14> validate the SPF records <xref target="RFC7208"/> to verify it is coming from an authorized source and <bcp14>SHOULD</bcp14> require the message to be delivered over TLS before deeming it valid.</t>
</list></t>

<t>FIXME: Do we want to support them all?</t>

<t>A recipient MUA that receives a valid "Expected-Signed" header <bcp14>SHOULD</bcp14> safely store this information and its expiration date indexed per email address.</t>

<section anchor="expect-signed-syntax"><name>Expect-Signed syntax</name>

<t>The ABNF (Augmented Backus-Naur Form) syntax for the Expect-Signed header field is given below, as described by <xref target="RFC2616"/>.</t>

<figure><artwork><![CDATA[
Expect-Signed = "Expect-Signed" ":"
                [ directive ]  *( ";" [ directive ] )

directive                 = directive-name [ "=" directive-value ]
directive-name            = token
directive-value           = token | quoted-string
]]></artwork></figure>

<t>Note that:</t>

<t><list style="symbols">
  <t>The Expect-Signed header field name and directive names are not case sensitive.</t>
  <t>All directives <bcp14>MUST</bcp14> appear only once in an Expect-Signed header field.
Directives are either optional or required, as stipulated in their definitions.</t>
  <t>The order of appearance of directives is not significant.</t>
  <t>MUAs <bcp14>MUST</bcp14> ignore any Expect-Signed header field containing directives, or other header field value data, that does not conform to the syntax defined in this specification.</t>
  <t>If an Expect-Signed header field contains directive(s) not recognized by the MUA, the MUA <bcp14>MUST</bcp14> ignore the unrecognised directives.
If the Expect-Signed header field otherwise satisfies the above requirements, the MUA <bcp14>MUST</bcp14> process the recognized directives.</t>
</list></t>

<section anchor="the-expiry-directive"><name>The expiry directive</name>

<t>The expiry directive defines an expiration date for the expectation of a signature.
The policy <bcp14>MUST</bcp14> be enforced until the expiry date is in the past.</t>

<t>This value is expressed by the sender with a fixed-length and single-zone subset of the date and time specification used by the Internet Message Format <xref target="RFC5322"/>.</t>

<figure><artwork><![CDATA[
expiry-name  = "expiry"
expiry-value = IMF-fixdate
]]></artwork></figure>

<t>This value <bcp14>SHOULD</bcp14> be safely stored by the recipient’s MUA, and <bcp14>SHOULD</bcp14> be updated when a valid newer one is received.</t>

<t>NOTE: any date in the past will effectively cease the policy enforcement.</t>

</section>
</section>
<section anchor="header-examples"><name>Header Examples</name>

<t>The Expect-Signed header stipulates an Expect-Signed policy to remain in effect until the specified date:</t>

<figure><artwork><![CDATA[
Expect-Signed: expiry="Sun, 20 Oct 2019 14:19:20 GMT";
]]></artwork></figure>

<t>NOTE: the expiry-value must be quoted since it is not a token.</t>

<t>FIXME: should the expiry use a more sane date format, like ISO-8601?</t>

</section>
</section>
<section anchor="validating-policy"><name>Validating Policy</name>

<t>All e-mails coming from addresses that are stored and valid as Expect-Signed <bcp14>MUST</bcp14> be validated.
To validate a message's signature the recipient's client <bcp14>MUST</bcp14> follow OpenPGP's specification <xref section="5.2.4" sectionFormat="of" target="RFC4880"/>.</t>

<t>FIXME: This is not only OpenPGP.
Should include a reference to PGP/MIME <xref target="RFC3156"/>, S/MIME <xref target="RFC8551"/>, and <xref target="I-D.ietf-lamps-e2e-mail-guidance-12"/>.</t>

<t>The sender's key can be retrieved from any trusted storage or repository, and if none is found it <bcp14>SHOULD</bcp14> be indicated in the feedback.
This mechanism will allow the sender to automatically reply with their key.</t>

</section>
<section anchor="on-policy-violation"><name>On Policy Violation</name>

<t>In the scenario where a sender has enabled the Expect-Signature it is expected that all the outgoing messages are provided with a a valid signature, and both the sender and recipient should be notified when a signature is missing or invalid.</t>

<t>An MSA, MTA, or MUA <bcp14>SHOULD NOT</bcp14> prevent a message from being received due to a missing signature.
The MUA <bcp14>MUST</bcp14> warn the user if an expected signature is missing or invalid, and <bcp14>SHOULD</bcp14> provide feedback as specified in the following sections.</t>

<section anchor="warn"><name>Warn</name>

<t>The recipient's MUA <bcp14>MUST</bcp14> warn the user that the signature is missing or invalid on every instance where the signature is expected but not verified.
The two cases <bcp14>SHOULD</bcp14> be treated as equal, because a missing signature is not any more suspicious than a broken signature: a malicious attacker that alters a message can easily remove the signature too.</t>

</section>
<section anchor="explicit-feedback"><name>Explicit Feedback</name>

<t>FIXME: describe TLSRPT-style feedback</t>

<t>The MUA <bcp14>MAY</bcp14> avoid automatic explicit feedback, as it introduces a vector for attackers to know if an email is reachable or if a user read the message.</t>

<section anchor="sender-behaviour"><name>Sender behaviour</name>

<t>FIXME: Define what to do with the explicit feedback.
FIXME: Key points: Should it be machine or human readable? Localization?</t>

</section>
</section>
<section anchor="inline-feedback"><name>Inline Feedback</name>

<t>When replying to a message whose expectation of signature is failed the MUA <bcp14>SHOULD</bcp14> introduce an <spanx style="verb">Expect-Signed-Failure</spanx> header to signal to the original sender that the message signature was missing or invalid.</t>

<t>The syntax of the <spanx style="verb">Expect-Signed-Failure</spanx> field, described by the ABNF <xref target="RFC2616"/> is as follows:</t>

<figure><artwork><![CDATA[
"Expect-Signed-Failure" ":" failure-reason CRLF
]]></artwork></figure>

<t>Note that the Expect-Signed-Failure header field name and failure-reason value are not case sensitive.</t>

<section anchor="failure-reason"><name>Failure-reason</name>

<t>There are four categories of failure for signature verification:</t>

<t><list style="symbols">
  <t><strong>no-signature</strong>: The message is not provided with a signature packet or part.</t>
  <t><strong>signature-invalid</strong>: The message is provided with a not matching signature, and the key ID matches the signature key ID, i.e., the content is different from the signed data.</t>
  <t><strong>signature-not-verified</strong>: The message is provided with a signature, but the MUA is unable to verify it because it does not have or can not retrieve the matching key.</t>
  <t><strong>signature-expired</strong>: The message has a corresponding signature, that is invalid because either the key or signature expiration are in the past.
In this case an MUA <bcp14>SHOULD NOT</bcp14> give any feedback to the sender.</t>
</list></t>

<t>The failure-reason value can then assume the following values:</t>

<figure><artwork><![CDATA[
failure-reason =  (   "no-signature"
                    / "signature-invalid"
                    / "signature-not-verified"
                    / "signature-expired"
                  )
]]></artwork></figure>

</section>
<section anchor="sender-behaviour-1"><name>Sender behaviour</name>

<t>The sender's MUA receiving an inline feedback <bcp14>MUST</bcp14> display a warning to the user if the reason is "no-signature" or "signature-invalid", and <bcp14>MAY</bcp14> display a warning if the reason is "signature-not-verified" or "signature-expired".</t>

<t>The purpose of this warning is to warn the sender that there might be some misconfigured option in the mail client, that result in messages being unsigned or malformed, or that he is victim of an impersonation.</t>

<t>Furthermore, when receiving an inline feedback with reason "signature-not-verified" the sender's MUA <bcp14>MAY</bcp14> automatically attach a copy of their public key to a successive reply.</t>

</section>
</section>
</section>
<section anchor="common-ux-for-absent-and-invalid-signatures"><name>Common UX for Absent and Invalid Signatures</name>

<t>FIXME: explain why receiving MUAs should display the same thing when a
signature is missing as when it is absent.</t>

</section>
<section anchor="related-work"><name>Related Work</name>

<t>This draft is inspired by (and similar to) HSTS, MTA-STS, TLSRPT, etc.</t>

<t>FIXME: include references</t>

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

<t>IANA might need to register the e-mail headers <spanx style="verb">Expect-Signed</spanx> and <spanx style="verb">Expect-Signed-Failure</spanx>.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<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='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='I-D.ietf-lamps-header-protection-16'>
   <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='13' month='September' 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-16'/>
   
</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='RFC7208'>
  <front>
    <title>Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1</title>
    <author fullname='S. Kitterman' initials='S.' surname='Kitterman'/>
    <date month='April' year='2014'/>
    <abstract>
      <t>Email on the Internet can be forged in a number of ways. In particular, existing protocols place no restriction on what a sending host can use as the "MAIL FROM" of a message or the domain given on the SMTP HELO/EHLO commands. This document describes version 1 of the Sender Policy Framework (SPF) protocol, whereby ADministrative Management Domains (ADMDs) can explicitly authorize the hosts that are allowed to use their domain names, and a receiving host can check such authorization.</t>
      <t>This document obsoletes RFC 4408.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7208'/>
  <seriesInfo name='DOI' value='10.17487/RFC7208'/>
</reference>

<reference anchor='RFC2616'>
  <front>
    <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
    <author fullname='R. Fielding' initials='R.' surname='Fielding'/>
    <author fullname='J. Gettys' initials='J.' surname='Gettys'/>
    <author fullname='J. Mogul' initials='J.' surname='Mogul'/>
    <author fullname='H. Frystyk' initials='H.' surname='Frystyk'/>
    <author fullname='L. Masinter' initials='L.' surname='Masinter'/>
    <author fullname='P. Leach' initials='P.' surname='Leach'/>
    <author fullname='T. Berners-Lee' initials='T.' surname='Berners-Lee'/>
    <date month='June' year='1999'/>
    <abstract>
      <t>HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='2616'/>
  <seriesInfo name='DOI' value='10.17487/RFC2616'/>
</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='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='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='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='I-D.ietf-lamps-e2e-mail-guidance-12'>
   <front>
      <title>Guidance on End-to-End E-mail Security</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='13' month='September' year='2023'/>
      <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>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-lamps-e2e-mail-guidance-12'/>
   
</reference>




    </references>



<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>FIXME</t>

</section>
<section anchor="mapping-the-solution-space"><name>Mapping the Solution Space</name>

<t>[ RFC Editor: please remove this section before publication ]</t>

<t>The range of possible solutions in this problem space is potentially quite wide.</t>

<t>The draft attempts to make some decisions, but they can be revisted.
This appendix tries to document some distinct axes along which the problem can be resolved.</t>

<t>The completed draft should provide a clear choice along each axis, or a mechanism for some active participant in the protocol to select a choice.</t>

<section anchor="signal-location"><name>Signal Location</name>

<t>Where should the signal be emitted?
Is it a per-message signal?
Is it in the sender's certificate?
Is it in the DNS?</t>

</section>
<section anchor="signal-scope"><name>Signal Scope</name>

<t>What is the scope of the signal?
For example, does it cover a particular e-mail address in the "From" field?
Could it cover all e-mail addresses in a given domain?
Or does it only cover a specific pair-wise promise (e.g., "alice@example.com will sign all mail that is only addressed to bob@example.net")?
Does it apply to all mail, or could it be limited to end-to-end-encrypted mail?</t>

</section>
<section anchor="intervening-mail-user-agents"><name>Intervening Mail User Agents</name>

<t>How does this signal interact with messages that arrive through intervening MUAs, like mailing lists or bug-tracking systems that may (deliberately or not) break signatures while forwarding mail?</t>

</section>
<section anchor="how-to-signal"><name>How to Signal?</name>

<t>How does the sender opt into emitting this signal such that all of their MUAs are aware of it?
Clearly, you'd want each MUA controlled by the sender to know that the signal has been published so that they can all adjust their signing policy.</t>

</section>
<section anchor="retraction"><name>Retraction</name>

<t>How does the sender change their mind once such a signal has been emitted?
Does the signal expire?
What happens to messages during the period where the signal is in some sort of indeterminate state?</t>

</section>
<section anchor="consequences"><name>Consequences</name>

<t>What should the available consequences be when an unsigned (or broken-signature) message arrives from a sender who has emitted that signal?
Should the recieving MUA show the message with a warning?
Should the receiving MUA report the failure to the sender (e.g., like MTA-STS)?
Should they reject the message entirely?
How much control should the signaller be able to exercise?</t>

</section>
<section anchor="what-kind-of-cryptographic-signature"><name>What Kind of Cryptographic Signature?</name>

<t>Does the signal commit the sender to any particular kind of cryptographic signature?
For example, PGP/MIME, or S/MIME?
To signatures verifiable by any particular certificate?</t>

</section>
</section>
<section anchor="document-considerations"><name>Document Considerations</name>

<t>[ RFC Editor: please remove this section before publication ]</t>

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

<section anchor="changes-from-draft-dkg-lamps-expect-signed-mail-00-to-draft-dkg-lamps-expect-signed-mail-01"><name>Changes from draft-dkg-lamps-expect-signed-mail-00 to draft-dkg-lamps-expect-signed-mail-01</name>

<t><list style="symbols">
  <t>add Aron Wussler to authors</t>
</list></t>

</section>
</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA6Va7XIbt5L9P0+BpX/EcomU5NiJw7tehbEsW2XL8pry9U1l
XRtwBiRxPRxMBjOS6bup2tfYf/ss+yj7JHu6G5gPSopTtam61yIGH41G9+nT
DYzH46S2dW6m6vnn0qS1mttVYTJ1rm2eZC4t9Abfskov63H2aTXO9ab0Y8N9
x577jjfoOz48SlJdm5WrtlNli6VLEltWU1VXja8fHh7+cPgw0ZXR9LFOrl31
aVW5ppwqnjH5ZLZoy6bqrKhNVZh6fEJrJr5ZbKz31hWX2xKSnD2/PE2SK1M0
ZpooFeYYvZ6dv52P0FBzr9EHzG+LlXpB36mdZES7L7Xf/GhNvZy4akUfdJWu
8WFd16WfHhxQP2qyV2YSux1Qw8GictfeHPAMBzSyMqXrjVxBjXoxSd3mAIo6
uKkiGpNDRb7ujULXSRhp3S2DsFLia11k/65zV2BrW+OT0k7VL7VL95V3VV2Z
pcdf2w398TFJdFOvXQXtjLGggrr9VJ1M1KuJemHzfOMqbpaDPdGFNbl6pdfF
4Ct2PVWzjalsqgv1zF7ZXL22C1PV1nj1vsB5cD8jesUuflzaZb3Gwh5txQQn
OBBgNlEfGu9z0199Vrli0MzLvq1cjfbZC25KXVPUZFPza1t/MVUOXfSX1pjj
x2uZY2LrJBmPx0ovfF3pFL8u19aL+aqycqXzEF+rjUnX2LnfqKWrlGFNq8ab
yqvaQeDMki3T3/Xa2EqVhj+tdU0N/FP5tWvyTMmRKZ3natnUTWXidMvKbaj3
hqZZGJVW27J2q0qXa8ye51slxzwRkTc2y3KTJPfIAyqXNWlNSk6ey2zUV/P0
Vzq3maaPCltb6wozfFibQuGgzG5n9IAuTFGr+9ioLXjw3j5UAFf0rtCL3Kh2
90qvqOs1DEGtbWbC7geSKzIv9LKprbEFkzYV/RF0hkVIo6SkjfEe802Sn5qa
ZAty3DIibIP0VDhMjDHJ3G3M8GBSSIwzMUU2rt0Y/3Tb9Mot+QTwj4gsI/0E
52/C6fE3nH+YbqO36lpDIKyaWV/m+A3DcFAazWuXZPnQha4KApKwG3XNmr5V
w52CJ1+3O8xTmcW2d2jitor8rW+AWqwt2t72FruTLQfrC4L6r1vdvXvqnfmt
sZXZQHyvXuti1WBowkoDICtCZK9G5+/nl6N9+Ve9ueC/3z3/1/dn756f0N/z
l7PXr9s/ktBj/vLi/euT7q9u5LOL8/Pnb05kMFrVoCkZnc9+xhf4uRpdvL08
u3gzez2CTrBP0qlLG5IXjm/CHi2FjLIyNeKW9klmfFoBqzIa89Ozt//z30eP
1D/+8U/vTp89PDr64fffw48nR98/wg86UVnNFVCP/CRNJ7osjaZDZS2nurS1
zgG12tMhXBeKzhCKfPALaebjVP3zIi2PHv1LaKANDxqjzgaNrLObLTcGixJv
abplmVabg/YdTQ/lnf08+B313mtkg7k01cYWLnerrZgJNL/x6jx4x7yN1mrG
UHL/fD4D3MTvl5Uu/BLmHL9e0lfSfezx3ve+vp/t3XnMKjNLW8ghy3l+9+gQ
h0uGzSQGZ0aOex5dLklmAJ8ii85E0xUZ+wl7c/Qjbmd4Je8DCl+xJ2KvwpAQ
mANH6ryZj1tnGbnzaKfbCGaieVWOJso19cqRZBzAELjR2y631EJg8Lm0laB7
Ruuy2TPoNybAW5hvIgcwgONBB5Fq0UYMcvrL7muwHnyv6VQ2tq5FmxzhEIN5
E6G3V/e9MaTos/EJE6PABOXzOPSH2OOj737/PRwqRZnUlpZOE4cZl8wMgqKt
RS5lRWYGXeiAcIcwNQfcZ1uhjyT5LCdeCM1cmXzLDtpN/o2n6acIpHGJuGXu
d/Lq7LzdR7CVb7+HmCxkGFEJFPYj9l26mNy10PztKQnFqCnrfP/w8AnWwXxX
4FLLLW0buwNJpL0yRaDQyNBvv2AJ75oqNXcI1kYhkS8zObRRYZTDP+ry9Ryt
S4pgpGFaICoZEp+e/e38OQifU9emDXy+KUswSNk0HOaYnGR4ZuwraDJYikKY
HNqdRh6E9nppKNbUjiXHliklqDZi2bQ7i4hz09gz8xnbKTGRkaCYZQjvXqKV
rBm9z2+LWn8WJ5j99OZU3Z81K4oM+PaTTj81fvxGN5U6xbJ7oXdLToZTBdmX
oMIZHc8Key2gy9xd7wvUxIiCiB0iyXdk55CLqOhwtqdRO61uRtMR99v97xcw
j4rc5sqoj0o9uK9GfxnttO7JEl3T7n9Pu29jotUYP3o66jUKdnwcTiNdB9PU
7pMpdnrJ2Bu91H+o3xpHxw+eDUNLkjeOfUDX7IWXf6xiXpuMoNsVNXkGe1BA
xFrwNIC1t/SR/W2GENx29wFxJUBz3HZFyh4Ld7p75Qm2d9JNQssZC3vAHCWZ
IYIADCR4XCaRvrZlQ2lbxEaECA49lgYIFtB24fQ0zTIIpUkc/OqJDMOivfXY
JQ+Gk4Xt4AO5iy62f6S81MGSLWNlN/k+ye14J4POcn5wLr0vnpw5I2JgGnLI
GJWCf/SCKnutBCcio9gsi3u2/GMVR/l8J919v8dLEjRi71/Ej2hV7H0//jHQ
AbU1RRjgTc9SoPGz5dd8mDVxbcmIILlfUtJKQ/QCSBnPl1nvzvLA+hR4E8NL
FLe/OpDoHp84o9e2+yZQtNsaVOpvC+4RjYTLyweyoC69CAmMy226beO5oZNL
IRYyY5vHGXhVRlHfRi7t65iLiCVYBl2C1O4QAilCer3G0ksLBB7npljRT86y
ilVuxl9cga4NUp060gxejbrUFv48MBVKstoFYkmnJXmnHAkCkj7+9uHDFkll
HwGcAKTye9T/Jht5qs7OT8cQloQYbLHjNf0g1ArTRrf//c//8mKAvWCLUU3J
XClmehLvCnNN3l2wBkM0pKgKTo2gSh7bZ2ukd8mizXIpZgA5UkOoVnfnGc6R
7FAC3Eux4eefQa1y48WgbjXzFpX8TW8Ms8OxKwqilE4GOXoGE06LbBuzTG+J
Y9Og8KejeYOM6OGhusAMDw+PflBHj6ZHP0zR8uL8cvSXqIXODsMZbUDdSKMS
KsiQCKLrCIRaYknHTUJm27NnWFGblOvCtF4D69lXuf0E25pfjJ98d3h0TLT/
r6E0Amh8y0oAnaFDkGLAkHUJsTChqkORINgJWYMcOtB/qNnbCLXrKKCO/Ax8
tCsQ7DLVNA/cCnMtXQ6OoS5KU7x98fabHbyFg8yFVKvHk4eTR+R35DGPnjw5
ZI8JemPjD0rlWBjmmyRz0SgUnzeZYT6O7MvQOcA80OXg/Oz8eXDEb48eg9Ls
q3m/8cnjx0fUSFq5yf7NQ9HteNVABZh2fCS+fNniCjZFlJ7KGgtSBPiCge9E
7tsyfFY/gQMH4NIh9LtqKwsjRSiC7y1dw+Sx57CxWtImL0tjsgUY4ERgoVd0
IZfUrPIe8FGa19SOuKlUSLA8FQIIDyXeYwOcVl4Uwa7UX63LtRTozmRRn5pC
V9ZJZYcwXGZfw4oM19my3agVCkh1QGXJMcQcparT5YptVYcMFUHqymYEUQLZ
EaRamxOtLZxsIEpCbR23D862YMIlSHBbbYvTeQgwKG7NCoW8Hmn95YyJRy+3
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
g9AL7uT/AGKUAcYXMAAA

-->

</rfc>

