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


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-bradshaw-envelope-validation-extension-dkim-00" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>DKIM Envelope Validation Extension (eve)</title>

    <author initials="M." surname="Bradshaw" fullname="Marc Bradshaw">
      <organization>Fastmail, PTY LTD</organization>
      <address>
        <email>marc@fastmailteam.com</email>
      </address>
    </author>

    <date year="2022" month="October" day="04"/>

    
    <workgroup>Independent Stream</workgroup>
    <keyword>DKIM Replay</keyword>

    <abstract>


<t>DKIM as defined in RFC6376 is an IETF standard of cryptographically signing email with a domain key.  DKIM is widely used to build a reputation based on the signing domain and assign that reputation to message filtering.  Section 8.6 defines a vulnerability called DKIM replay, in which a single message can be replayed to a large group of unrelated recipients, thereby hijacking the reputation of the original sender.  This proposal defines a method of declaring the original envelope sender and recipient(s) within a DKIM signature such that compliant DKIM validators can detect a DKIM signature which may have been replayed and modify their use of domain reputation accordingly. This technique remains fully backwards compatible with DKIM validators which do not support the new methods, while allowing compliant forwarders to declare their ingress authentication state in Authentication Results headers for consumption by subsequent validators.</t>



    </abstract>



  </front>

  <middle>


<section anchor="terminology-and-definitions"><name>Terminology and Definitions</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 <xref target="RFC2119"/>.</t>

</section>
<section anchor="goals"><name>Goals</name>

<t>Allow a DKIM (<xref target="RFC6376"/>) validator to detect DKIM replay by validating a DKIM signature against the envelope sender and recipient addresses of the SMTP transaction.</t>

<t><list style="symbols">
  <t>Allow a DKIM signature to assert the envelope addresses for which it is valid.</t>
  <t>Does not require large scale modification of DKIM.</t>
  <t>Does not break existing DKIM mail flows.</t>
  <t>Does not reveal original envelope details to third party viewers when mail is forwarded via an intermediary.</t>
  <t>Does not require non participating intermediaries to modify their handling.</t>
  <t>Builds on existing DKIM mechanism to provide a method of digitally signing the envelope details.</t>
  <t>Does not require modifications to the SMTP protocol.</t>
  <t>Allows messages to be signed by multiple DKIM domains, and assigns envelope assertion only to the domains who signed that portion of the mail flow.</t>
  <t>Allows receivers to determine that a given DKIM signature was added before intermediary redirection of mail, and exclude that DKIM domain from reputational misuse.</t>
</list></t>

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

<t>Allow a DKIM signer to assert the envelope addresses their signature should be considered valid for, without breaking DKIM signatures when sending mail via intermediaries.</t>

<t>DKIM signers add and sign additional headers which contain a hashed list of the valid envelope addresses. This is cross linked back to the DKIM signer(s) by including a unique identifier in the hash generation, and to the message by including the “unique” message-id of that message.</t>

<t>DKIM signers add and sign the eve headers, including the eve headers added by previous hops. A specially formatted eve header is included to indicate the trust boundary.</t>

<t>Eve aware validators check the envelope addresses of received mail against all DKIM signatures present, and add the eve status of each signature in the authentication results entry for that signature. This is then used to determine which signatures have been verified against the envelope details and which have not, and are therefore vulnerable to replay, or may have been forwarded by an intermediary. The receiver can then apply domain reputation based on a validated path, and can avoid applying domain reputation of a domain which is the victim of a DKIM replay attack.</t>

</section>
<section anchor="generating-eve-headers"><name>Generating EVE headers.</name>

<t>DKIM eve headers are added in sets, a set of eve headers is referred to as an eve assertion set. An eve assertion set consists of exactly 1 eve assertion set marker header, and 1 or more eve assertion hash headers. Both of these headers are added as DKIM-EVE headers, this allows us to use the header ordering present in DKIM to treat each set as a single signed unit.</t>

<t>DKIM-EVE headers MUST be signed by 1 or more DKIM signatures, they MUST NOT be oversigned, this allows for intermediaries to continue the EVE chain without breaking the original DKIM signature. The breaks provided by the EVE assertion header prevents the new signer asserting validation of the original envelope details</t>

<t>The eve assertion set marker header is used to define the boundary of eve assertion sets claimed by a given DKIM signature.</t>

<t>The EVE assertion set marker consists of a version number, a semicolon, with the remainder of the header being defined by the version declared. For version 1 the remainder of the header contains the unique eve identifier for this eve assertion set. This is a unique alphanumeric string.</t>

<t>An eve hash is a secure hash of the envelope addresses. A version 1 eve hash is generated using the following algorithm</t>

<t>First, create the following string(s)</t>

<t><spanx style="verb">&lt;unique eve id&gt; ; &lt;message-id&gt; ; &lt;envelope from address&gt; ; &lt;envelope to address&gt;</spanx></t>

<t>A message should have only a single envelope from address, and 1 unique eve hash must be created for each envelope to address. Just in time signers may choose to add only a single eve hash, whereas before queue signers would add 1 eve hash for each intended recipient. Privacy conscious senders who wish to mask the number of recipients a message is intended for may add additional eve-headers, however this may not be recommended.</t>

<t>Generate the SHA256 hash of the eve string, this is the eve hash. Add an eve hash for each set of envelope sender/recipient tuples we are claiming validation for. These may be added in a single DKIM-EVE header enclosed in &lt;&gt;, or one per header, again enclosed in &lt;&gt;</t>

<t>DKIM-EVE headers are added as trace headers, starting with the assertion header (at the bottom), followed by 1 or more data headers (above the assertion header). Headers are added in this way to maintain the DKIM validity of previous signatures.</t>

</section>
<section anchor="parsing-and-validating-eve-headers"><name>Parsing and validating EVE headers.</name>

<t>For each DKIM signature in the message.</t>

<t>Validate DKIM as usual. To participate in EVE the DKIM signature MUST pass.</t>

<t>Check the headers signed by this signature, if they include at least 1 DKIM-EVE header then this signature is making an EVE assertion.</t>

<t>Extract (bottom up) the DKIM-EVE headers from the message, taking the signed last x, these are the headers which were signed by this DKIM signature, which includes both the EVE assertion set added by this hop, and all previous EVE assertion sets.</t>

<t>Starting at the top of this set, consider each eve data header stopping when we reach an eve assertion header. This is the set of eve headers asserted by this DKIM signature.</t>

<t>Using the eve version and unique id from the eve assertion header, generate a new eve hash for each envelope set for the current SMTP transaction. ie one hash per envelope to address.</t>

<t>Check the set of eve hashes in the current assertion set. If there is a valid eve hash present for every envelope to address in the SMTP transaction then the eve result is pass. If there are no matches, or matches for only a subset of addresses, then the eve result for this signature is FAIL. This result is recorded in the Authentication-Results (<xref target="RFC8601"/>) entry for this DKIM signature using the smtp.eve key.</t>

<t>If this signature makes no eve assertion then the eve result is none. Authenticators may choose to record this in the Authentication-Results DKIM results as smtp.eve=none, or may choose to omit this entirely.</t>

<t>if a unique id is repeated within a group of eve assertion sets then a receiver MAY consider the most recently duplicated set invalid.</t>

</section>
<section anchor="example"><name>Example</name>

<t>Message originates at sender.com, is sent by user@sender.com to bob@example.com and alice@intermediate.com</t>

<t>Intermediate.com forwards this message on to sue@recipient.com using the envelope sender address bounces@intermediate.com</t>

<t>recipient.com is able to determine that the DKIM signature for sender.com is valid, but does not assert the envelope addresses as received, an smtp.eve=fail status is applied to this signature.</t>

<t>recipient.com is able to validate that the DKIM signature for intermediate.com is valid, and does assert the envelope addresses received, an smtp.eve=pass status is applied to this signature.</t>

<t>The reputation engine for recipient.com considers the eve status of DKIM signatures when applying domain reputation to the message. It notes that the signature for sender.com does not assert validity of the envelope addresses, and checks for other relevant signatures.</t>

<t>The signature for intermediate.com is found with a valid assertion, and the reputation of intermediate.com (both as an intermediate and as a general signer) is considered. The details of how this reputation is applied is beyond the scope of this document, however it is expected that eve may be used to build forwarding reputation for intermediates forwarding mail send my eve compliant senders allowing these intermediaries to build their own reputation as a forwarder. When mail is forwarded by non eve aware intermediaries the reputation of the sender is still protected, as the recpient is aware that the signature is vulnerable to replay.</t>

<figure><artwork><![CDATA[
Authentication-Results: receiver.net; dkim=pass header.d=example.com
  header.a=rsa-sha256 header.s=foo smtp.eve=fail; dkim=pass
  header.d=intermediate.com header.a=rsa-sha256 header.s=bar
  smtp.eve=pass
DKIM-Signature: v=1; a=rsa-sha256; d=intermediate.com; s=foo;
  h=dkim-eve,dkim-eve,dkim-eve,dkim-eve, etc
DKIM-EVE:
  <92570938870d5d03c444616ed79e4a2fe782d032bd23dc93aad4c3afe3a8add8>
DKIM-EVE: v=1;iddhwhnqwe
Authentication-Results: intermediate.com; dkim=pass
  header.d=sender.com header.a=rsa-sha256 header.s=foo
  smtp.eve=pass
DKIM-Signature: v=1; a=rsa-sha256; d=sender.com; s=foo;
  h=dkim-eve,dkim-eve, etc
DKIM-EVE:
  <fa72687e3485f66825349e19c49f0ef47505adb557dbe71d9c19d143326a37f2>
  <f11ea3da3b7f96c9debed19039352d0372fd7656e696e71de528af11f34b029e>
DKIM-EVE: v=1;sjpoerwejbn
Message-id: message@sender.com
]]></artwork></figure>

<t>Sender.com used the following strings to generate the eve hashes</t>

<t><spanx style="verb">&lt;sjpoerwejbn&gt; : &lt;message@sender.com&gt; : &lt;user@sender.com&gt; : &lt;bob@example.com&gt;</spanx></t>

<t><spanx style="verb">&lt;sjpoerwejbn&gt; : &lt;message@sender.com&gt; : &lt;user@sender.com&gt; : &lt;alice@intermediate.com&gt;</spanx></t>

<t>Resulting in the following 2 hash strings</t>

<t><spanx style="verb">fa72687e3485f66825349e19c49f0ef47505adb557dbe71d9c19d143326a37f2</spanx></t>

<t><spanx style="verb">f11ea3da3b7f96c9debed19039352d0372fd7656e696e71de528af11f34b029e</spanx></t>

<t>Intermediate.com used the following strings to generate the eve hashes</t>

<t><spanx style="verb">&lt;iddhwhnqwe&gt; : &lt;message@sender.com&gt; : &lt;bounces@intermediate.com&gt; : &lt;sue@recipient.com&gt;</spanx></t>

<t>Resulting in the following hash string</t>

<t><spanx style="verb">92570938870d5d03c444616ed79e4a2fe782d032bd23dc93aad4c3afe3a8add8</spanx></t>

<t>Recipient.com uses the eve-id and envelope set set by Intermediate.com to generate the eve hash used to check. As this matches the data used by Intermediate.com the hash is identical, and eve passes for this hop.
# Declination to participate.</t>

<t>A sender who intends to decline to participate may do so be adding a DKIM-EVE: header with a version of 0 and an ID of decline. These messages should be treated as though no EVE headers are present. Intermediaries may add further EVE headers as they process mail, however the intent of the original sender SHOULD be considered by the final recipient system.</t>

<t>An intermediary who intends to decline to participate may do so by adding a similar header, however this MUST NOT override an assertion made by the sender of a message. In this case the receiver SHOULD apply neither the domain reputation of the sender, nor the domain reputation of the intermediary.</t>

<t><spanx style="verb">
    DKIM-EVE: v=0;decline
</spanx></t>

</section>
<section anchor="use-of-eve-results-in-reputation-systems"><name>Use of EVE results in reputation systems.</name>

<t>eve is intended to tie the DKIM signatures, and so the reputation of DKIM domains to envelope details.</t>

<t>When eve is asserted for a message, a receiver using DKIM domains as a reputation anchor may choose to modify which DKIM domain is used as a reputation anchor when eve indicates that the message has been forwarded, as this may indicate a possible replay attack.</t>

<t>Intermediaries participating in eve may re-sign messages with their own DKIM signatures, and so indicate that they take responsibility for the content they are forwarding. Receivers may choose to use the DKIM domain of the forwarding system as a reputation anchor in this case.</t>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>Envelope sender and recipient addresses are hashed, reducing the likelihood of those addresses being leaked to downstream participants in the chain. It is expected that many of these addresses are already present in other headers such as From, To, and Received, however this is considered out of scope for this draft.</t>

<t>Each participant sets a unique eve id, thus hashes for like addresses will not produce identical trackable eve hashes over time.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The security considerations of (<xref target="RFC6376"/>) also apply to this extension.</t>

<t>Implementors MAY consider implementing limits to the number of hashes generated for emails sent or received with a large number of envelope addresses in order to avoid resource issues.</t>

<t>Senders MAY choose to explode messages to multiple recipients before DKIM signing, such that they are adding only a single eve hash per message.</t>

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

<t>IANA is requested to add the following item to the "Email Authentication Results Method Name Registry"</t>

<t>Method: dkim</t>

<t>Defined: TBC</t>

<t>ptype: smtp</t>

<t>property: eve</t>

<t>value: "pass", "fail", or "none"</t>

</section>
<section anchor="notes"><name>Notes</name>

<section anchor="arc"><name>ARC</name>

<t>Receivers using ARC may use verified and trusted ARC-Authentication-Results to determine the EVE authentication status of a message received by a point in their trusted ARC chain. Details of this, and the reputation systems required to support the ARC trust model are beyond the scope of this document.</t>

</section>
</section>


  </middle>

  <back>



    <references title='Informative References'>





<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='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='RFC8601' target='https://www.rfc-editor.org/info/rfc8601'>
<front>
<title>Message Header Field for Indicating Message Authentication Status</title>
<author fullname='M. Kucherawy' initials='M.' surname='Kucherawy'><organization/></author>
<date month='May' year='2019'/>
<abstract><t>This document specifies a message header field called &quot;Authentication-Results&quot; for use with electronic mail messages to indicate the results of message authentication efforts.  Any receiver-side software, such as mail filters or Mail User Agents (MUAs), can use this header field to relay that information in a convenient and meaningful way to users or to make sorting and filtering decisions.</t><t>This document obsoletes RFC 7601.</t></abstract>
</front>
<seriesInfo name='RFC' value='8601'/>
<seriesInfo name='DOI' value='10.17487/RFC8601'/>
</reference>




    </references>


<section anchor="acknowledgments"><name>Acknowledgments</name>

</section>


  </back>

<!-- ##markdown-source:
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
JPk/Rfs/3dY2AAA=

-->

</rfc>

