<?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-01" 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="2023" month="April" day="11"/>

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

<t>As EVE authentication state is asserted within the dkim section of the Authentication-Results headers this state is propigated in the ARC chain.</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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
6HdoNwAA

-->

</rfc>

