<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.39 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chuang-mailing-list-modifications-02" category="exp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="Mailing-List Modifications">Tolerating Mailing-List Modifications</title>
    <seriesInfo name="Internet-Draft" value="draft-chuang-mailing-list-modifications-02"/>
    <author fullname="Weihaw Chuang">
      <organization>Google, Inc.</organization>
      <address>
        <email>weihaw@google.com</email>
      </address>
    </author>
    <date year="2023" month="August" day="12"/>
    <workgroup>Independent Stream</workgroup>
    <keyword>DKIM</keyword>
    <keyword>ARC</keyword>
    <keyword>Mailing-list</keyword>
    <abstract>
      <?line 31?>

<t>Mailing-lists distribute email to multiple recipients by forwarding and potentially modifying messages to document the distribution to the recipients.  Unfortunately forwarding breaks SPF (RFC7208) authentication and message modification breaks DKIM (RFC6376) authentication.  This document is based on ARC (RFC8617) to provide a framework to describe forwarding with extensions to tolerate common mailing-list message modifications. This specification characterizes the mailing-list transforms such that a receiver can reverse them to enable digital signatures verification and attribution of the message content.  These message modifications are: 1) adding a description string to the Subject header, 2) rewriting the From header, 3) removing the original DKIM-Signature and 4) appending a footer to the message body.  This also specifies those modifications for the purpose of making them reversible.</t>
    </abstract>
  </front>
  <middle>
    <?line 35?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Mailing-lists have long complicated email authentication.  They break SPF <xref target="RFC7208"/> authentication due to forwarding and break DKIM <xref target="RFC6376"/> authentication due to message modification that used to identify the mailing-list.  This specification provides methods to restore authentication even in the presence of forwarding and message modification.  Being able to restore authentication is particularly important as senders may specify a sender-defined  receiver email handling policy that may prevent delivery of the message as defined in DMARC <xref target="RFC7489"/>.  Moreover malicious content is currently attributed to all parties in the mail flow.  This specification permits a receiver to attribute the email content to its author be it the sender or the mailing-list.</t>
      <t>The approach in this document is to be highly opinionated about only supporting common case mutations to lessen the implementation burden upon mailing-lists and receivers.  This also seeks to eliminate any burden for messages that don't go through mailing-lists.  At origination, it is sufficient to sign a message with a DKIM signature as typically done already.  It does ask those mailing-lists that wish to use this specification to characterize the modifications it performs at each forwarding step.  The goal is to permit receivers to reverse the modification so that the message hash can be recovered and the prior signature verified at each forwarding step, be it from DKIM or ARC.  This allows the receiver to determine which forwarder or the originating sender contributed which content, in the received message.  This specification uses the ARC <xref target="RFC8617"/> framework to describe each forwarder, and then record the mutation performed at each forwarding step.  Consequently this attribution enables more precise reputation systems and UI features.  The supported modifications are: 1) adding a description string to the Subject header, 2) rewriting the "From" header, 3) rewriting the original DKIM-Signature and 4) appending a footer to the message body.   This document specifies the characterization of the modifications and how to apply the modifications.</t>
      <t>The validation results in this specification are orthogonal to the results in</t>
      <t><eref target="https://datatracker.ietf.org/doc/draft-chuang-replay-resistant-arc/">draft-chuang-replay-resistant-arc</eref>.  In addition to better supporting DMARC in the presence of mailing-list modifications, this specification enables attribution of malicious content back to the author.  However this specification is vulnerable to replay much like DKIM and ARC.  <eref target="https://datatracker.ietf.org/doc/draft-chuang-replay-resistant-arc/">draft-chuang-replay-resistant-arc</eref> validation is tolerant of header and message body modifications but unable to provide attribution.  It also detects and prevents replay.  A receiver may want to combine the results of these two validations to create a strong authentication result that provides greater certainty that a message was sent by some originating sender through a mailing-list.</t>
      <section anchor="terminology-and-definitions">
        <name><strong>Terminology and Definitions</strong></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 <xref target="RFC2119"/>.</t>
      </section>
    </section>
    <section anchor="algorithm">
      <name><strong>Algorithm</strong></name>
      <t>The specification in this document is divided into procedures computed at the mailing-list forwarders and at the receiver and is based on the procedures in ARC <xref target="RFC8617"/>.  The steps at the forwarder are further divided at the forwarder into the  inbound validation procedures and outbound forwarding procedures.  The receiver only performs the inbound validation procedures.  The inbound validation procedures are variable length corresponding to the depth of the ARC sets.  At each ARC set corresponding to some earlier forwarder, the receiver computes any reversing procedure described later for any described mailing-list mutations to obtain the message hash of the message as seen at the inbound of the mailing-list.  This hash comes from an ARC-Message-Signature if the sender is a forwarder and a DKIM-Signature (or possibly ARC-message-signature)  if the sender is the originator.  That signature MUST verify correctly, otherwise this is considered a signature verification failure by this specification. Interpretation of that failure is described later.</t>
      <section anchor="forwarder-characterization">
        <name>Forwarder Characterization</name>
        <t>Conformant forwarders characterize message mutations to enable receivers to interpret mutations and potentially verification failures.  A description is added as a tag-value to the ARC-Message-Signature.  The mutator description tag is "m" and has the following values:</t>
        <dl>
          <dt>mailinglist:</dt>
          <dd>
            <t>Describes a forwarder that distributes messages to multiple recipients and any modification conforms to the specification in this document.  Consequently signature validation failures are described as "fail".</t>
          </dd>
          <dt>gateway</dt>
          <dd>
            <t>Optional mutating forwarder that works on behalf of the originating sender or final receiver.  The receiver is presumed to have an established trust model with the gateway outside of this document and, and validation failure result is interpreted by the receiver.  The receiver with such an arrangement MUST NOT use this description to detect the existence of such a relationship.  However a gateway forwarder may provide a description for human operators to interpret gateway's actions.</t>
          </dd>
          <dt>generic</dt>
          <dd>
            <t>Optional self-description for a generic mutator.  This document imposes no judgment on signature validation failures but the description may help a human operator interpret the actions of the forwarder.</t>
          </dd>
          <dt>none</dt>
          <dd>
            <t>Conformant forwarders that do not mutate the message declares their participation and lack of mutation with none value.</t>
          </dd>
        </dl>
        <t>For example:</t>
        <artwork><![CDATA[
ARC-Message-Signature: i=1; m=mailinglist;...
]]></artwork>
        <t>Receivers use this mutator description tag to interpret the forwarder's action and whether they followed the guidelines in this specification.  If the forwarder promised that they did, then it makes it possible to enforce a validation failure that protects that forwarder.</t>
      </section>
      <section anchor="header-rewriting-characterization">
        <name>Header Rewriting Characterization</name>
        <t>A mailing-list forwarder that rewrites a Subject, From or DKIM-Signature headers can store the prior values by substituting with a modified header name i.e. prefixing "Prior-" to the original name.   Moreover the header name retains the original capitalization, its place with respect to other headers, and is not ambiguous if there are multiple headers of the same name.  First the bottoms-up line count of all headers is computed starting from the 0th position.  Then all headers to be rewritten are collected, ordered by position to be prepended to the headers list and given a bottoms-up line count position.  This is an offset from "Prior-" header to it's rewritten counterpart.  It is assumed that the prior header has the following format:</t>
        <artwork><![CDATA[
<header name>:<value including any whitespaces>
]]></artwork>
        <t>The conserved header name is prefixed with a "Prior-".  Then an ARC instance number tag "i" i.e. "=&lt;#&gt;," and line count tag "l" i.e. "l=&lt;bottoms-up line count offset&gt;" are prepended to the header value and separated by a semicolon and one whitespace.  The position of this "i" and "l" is important because they may otherwise be ambiguous with the original header's tag-values e.g DKIM-Signature. Thus the conserved header is:</t>
        <artwork><![CDATA[
Prior-<header name>: i=<#>; l=<bottoms-up line count offset>; 
     <value including any whitespaces>
]]></artwork>
        <t>For example:</t>
        <artwork><![CDATA[
Prior-Dkim-Signature: i=1; l=4; d=example.com; b=...
Prior-Subject: i=1; l=3; Meeting on the 5th
]]></artwork>
        <t>This stores the prior header in a format that SHOULD be ignored by subsequent forwarders, and if not then will cause a verification failure.  The forwarder then rewrites or deletes the header as before by prepending the rewritten header to the message or skipping prepending for deletion.   To protect the integrity of these headers, these headers are hashed separately from ARC-Message-Signature "h" header list.  The forwarder generates the header hash by hashing the "Prior-" headers (and any "Content-footer" header described below) found in bottoms up order as found in the headers.  This specification calls for the rewritten header hash to be explicitly added to the ARC-Message-Signature with a tag "hh".  Conformant forwarders even without mailing-lists mutations MUST report header hash explicitly to better differentiate and tolerate body modifications when verifying headers.</t>
        <t>To reverse the rewriting or deletion of headers, all "Prior-" headers are collected at the given ARC instance number.  The prior header name is extracted from the "Prior-" header, and the original value extracted and restored.  The rewritten header is found by taking the "Prior-" header line count position and adding the offset in the "l" tag's value.  Rewritten headers are deleted in top down order.</t>
      </section>
      <section anchor="message-footer-characterization">
        <name>Message Footer Characterization</name>
        <t>Mailing-lists may choose to add a message footer to the body of the message to notify the recipient of the mailing-list distribution action and conformant mailing-list will describe this mutation to the receiver.   One method is to append the footer text to all content-type text in the top level of MIME <xref target="RFC2045"/> part "multipart/alternative".  Another method is to append a new successor MIME part for a "multipart/mixed" part, and that MIME part contains the footer as a content-type text.  If the message is not mime formatted, the entire body is treated as text and the mailing-list may append a text footer at the bottom of the message.</t>
        <t>Conformant mailing-list forwarders characterize these changes with a new "Content-footer" header.  It contains a list of semicolon and whitespace separated tag-values using the formatting specifications in DKIM.  The first of these is an ARC set instance number describing which forwarder added the header.  When the mailing-list appends a text part, the receiver characterizes it with the beginning and ending byte offset of the MIME part or message-body if MIME unformatted.  If the mailing-list adds a text MIME part as footer, it describes the mime part with its purpose tag-value.  The Content-footer header is added to the MIME part for MIME formatted messages, and to the message headers for unformatted messages. To protect the integrity of the header, in the latter case, the Content-footer is hashed along with "Prior-" headers in the same bottoms up order.  In the former case, Content-footer headers added to the message-body are protected by the message body hash.   The following are the Content-footer header tag-values:</t>
        <dl>
          <dt>i</dt>
          <dd>
            <t>Instance tag. Must be the first tag-value.  The value contains the instance number</t>
          </dd>
          <dt>b</dt>
          <dd>
            <t>Footer beginning octet offset from the start of the text MIME part or the message-body if no MIME unformatted.  MUST always appear with a footer ending offset.</t>
          </dd>
          <dt>e</dt>
          <dd>
            <t>Footer ending octet offset from the start of the text MIME part or the message-body if no mime unformatted.  MUST always appear with a footer beginning offset.</t>
          </dd>
          <dt>m</dt>
          <dd>
            <t>Mime-part purpose description.  If the added MIME part contains the text footer, then the value is "footer".  If the added MIME part is "multipart/mixed" and meant to support adding the text footer, then the value is "mixed".  If the text footer is appended, then this tag-value is not added.</t>
          </dd>
        </dl>
        <t>For example:</t>
        <artwork><![CDATA[
Content-footer: i=1; b=100; e=200
Content-footer: i=2; m=footer
]]></artwork>
        <t>To reverse the footer addition, the receiver looks at the headers to see if the message is MIME formatted.  If not, the receiver looks for a "Content-footer" in the headers.  If so, the receiver looks for "Content-footer" in the MIME tree content headers.  For each "Content-footer" found header at the current ARC set instance, it reverses the footer mutation.  For offset values designated by beginning and ending offset tags, it removes the text from that MIME part or the message-body designated.  For a MIME part text footer, it deletes it along with any supporting "multipart/mixed" MIME part.  Then the receiver deletes the Content-footer header from the updated message if not done so already.</t>
      </section>
      <section anchor="validation">
        <name>Validation</name>
        <t>The receiver verifies prior ARC sets per the procedure described in ARC <xref target="RFC8617"/>. In addition, the receiver validates the ARC sets starting from the largest instance number found to the smallest.  First the receiver verifies the given instance ARC-Message-Signature or DKIM-Signature as appropriate.  Then the receiver computes the rewritten header hash taking the header hash computed by ARC-Message-Signature at the given instance number or DKIM-Signature.   Then the hash is taken for "Prior-" headers and "Content-footer" header if found in the headers at the current ARC set instance number and all prior ones.  This is verified against the header hash value associated with the tag "hh", reporting signature failure if it mismatches.</t>
        <t>Next the receiver determines whether it needs to reverse any header or footer mutations at that ARC set instance by looking for the ARC-Message-Signature mutation tag "m=".  For values of "mailinglist", it attempts to reverse mutations keeping the resulting message so that further validations are possible.  The receiver attempts to provide header reversing procedures given in  "Header Rewriting" section and body reversing procedures given in "Message Footer" section.   For values "gateway" the receiver MAY apply local policy to interpret subsequent validation failures.  For all other mutation tag "m" values, it assumes no mutations are present or outside the scope of mailing-list modifications.</t>
        <t>In addition, the originating sender's DKIM-signature or ARC-Message-Signature MUST successfully verify.  If so and all prior signatures verify, then the result is a "pass".  Verification failures are subject to interpretation in "Footer Characterization" section, and potentially indicate a "fail".    The result of this procedure is written in Authentication-Result <xref target="RFC8601"/> and  ARC-Authentication-Result with a method named "reverse" as the REVERSE result.</t>
        <t>Informationally, if the receiver implements <eref target="https://datatracker.ietf.org/doc/draft-chuang-replay-resistant-arc/">draft-chuang-replay-resistant-arc</eref>, this specification suggests modifying <eref target="https://datatracker.ietf.org/doc/draft-chuang-replay-resistant-arc/">draft-chuang-replay-resistant-arc</eref> PATH results to take into account the REVERSE result.  At each ARC set instance where PATH recursively combines the local DARA (or SeRCi) results, if REVERSE reports "fail" then the PATH result reports "fail".  Because <em>REVERSE _combined with</em> <em>DARA</em> _represents a higher bar of verification than DARA alone, the receiver applies local policy when interpreting the PATH result.</t>
      </section>
    </section>
    <section anchor="mailing-list-modifications">
      <name>Mailing-List Modifications</name>
      <t>When a message body or Subject header is modified by a forwarder, the sender's DKIM signature will no longer validate.  To mitigate this forwarders MAY elect to replace the DKIM signature with their own with a new message hash that takes into account the modifications.  Because the signature is not DMARC aligned, senders also MAY rewrite the From header to take ownership of the message.  The following creates a specification making the message body or Subject header modification, replacing the DKIM signature and applying characterization headers.</t>
      <section anchor="subject-header-modification">
        <name>Subject Header Modification</name>
        <t>The mailing-list may want to communicate to the recipient that a message went through a mailing-list by modifying the Subject header to append the name of the mailing-list.  Typically the name is put between brackets e.g. "[name]" and prepended to the Subject header content.  This specification supports arbitrary text changes by saving the earlier inbound version of the Subject header's content in the "Prior-Subject" header.  The change in Subject text will break the DKIM-Signature so mailing-lists MAY rewrite DKIM-Signature to update the message header hash and resign the signature.  Similarly they MAY update the From header to DMARC align the DKIM-Signature "d=" domain with the From header domain.  Typically the From address is the set to the mailing-list address to further identify the mailing-list.  This specification supports saving the earlier inbound version of the DKIM-Signature and From headers in the "Prior-DKIM-Signature" and "Prior-From" headers respectively.</t>
        <t>For example the original message looks like:</t>
        <artwork><![CDATA[
Dkim-Signature: d=example.com; b=...
From: john.doe@example.com
Subject: Meeting on the 5th
]]></artwork>
        <t>A mailing-list rewrite Subject, From and DKIM-Signature headers and saves the original content in the "Prior-" headers</t>
        <artwork><![CDATA[
Dkim-Signature: d=mailinglist.example.com; b=...
From: mailinglist@mailinglist.example.com
Subject: [mailing-list] Meeting on the 5th
Prior-Dkim-Signature: i=1; l=3; d=example.com; b=...
Prior-From: i=1; l=3; john.doe@example.com
Prior-Subject: i=1; l=3; Meeting on the 5th
]]></artwork>
      </section>
      <section anchor="body-modification">
        <name>Body Modification</name>
        <t>The mailing-list may want to communicate to the recipient that a message went through a mailing-list by adding a text footer describing the mailing-list.  Typically this is done by appending that text description at the bottom of message body text. This specification supports three different footer organizations, depending on the MIME structure, content type and content  transport encoding of the MIME parts of the message.  In particular the organization depends if its MIME parts can be concatenated, meaning whether a text footer can be appended and removed without having to re-encode the original content to preserve the original content.  For example appending new content to "base64", and "binary" will likely introduce artifacts between the original message and the interpretation footer.  MIME parts that can be concatenated are defined as having one of the following type and subtype of Content-type:</t>
        <ul spacing="normal">
          <li>text/plain</li>
          <li>text/html</li>
        </ul>
        <t>and one of the following mechanisms for Content-transfer-encoding:</t>
        <ul spacing="normal">
          <li>7bit</li>
          <li>8bit</li>
          <li>quoted-printable</li>
        </ul>
        <t>Similarly, non-text MIME parts, and complex multipart MIME parts don't lend themselves to appending text.  One exception to this is "multipart/alternative" as will be described shortly.  To handle these scenarios, this specification calls for adding a new text MIME part footer that can handle any encoding or any mime structure but requires altering the MIME tree.</t>
        <t>The following procedure describes how the mailing-lists MAY choose from one of those formats to add a footer.  Here a mailing-list should evaluate in the same order as these three sections, following the steps in each section.  If any footer addition is successful, then the footer algorithm stops.</t>
        <section anchor="unstructured-or-text-message-body">
          <name>Unstructured or Text Message Body</name>
          <t>The simplest structure applies when the message lacks <xref target="RFC2045"/> MIME structure or the top level MIME part can be concatenated.  Here the forwarder appends a text footer with the same content type and content transfer encoding as the message-body.  When a message lacks MIME struct, the default message content-type is "text/plain" (section 5.2) and default content transfer encoding is "7bit" (section 6.1).   Next a "Content-footer" header is prepended describing the start and ending message body octet offsets.  Reversing this transform is a straightforward deletion of the footer at the offsets given.</t>
          <t>For example given an original message of:</t>
          <artwork><![CDATA[
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
From: john.doe@example.com

This is the message body.
]]></artwork>
          <t>A text footer can be appended as follows:</t>
          <artwork><![CDATA[
Content-footer: i=1; b=25; e=67
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
From: john.doe@example.com

This is the message body.

============
This is a mailing-list footer.
]]></artwork>
        </section>
        <section anchor="multipartalternative">
          <name>Multipart/Alternative</name>
          <t>When the top level MIME part is Content-type "multipart/alternative", the forwarder checks if any of the immediate children MIME parts can be concatenated.  If so, it attempts to append a text footer with the same content type and content transfer encoding as the children MIME part.  Next it prepends a Content-footer header in the child MIME part header description with the start and end octet offsets from the beginning of the part.  If a footer can be added to a child MIME part, then this is considered success and the algorithm can halt. The reversing algorithm is to look for the top level MIME part with Content-type "multipart/alternative".  If so then look in the immediate child MIME parts and delete the text at the offsets given by the Content-footer.</t>
          <t>For example given an original message of:</t>
          <artwork><![CDATA[
Content-Type: multipart/alternative; boundary="abcd"
From: john.doe@example.com

--abcd
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

This is the message body.

--abcd--
]]></artwork>
          <t>A text footer can be appended as follows:</t>
          <artwork><![CDATA[
Content-Type: multipart/alternative; boundary="abcd"
From: john.doe@example.com

--abcd
Content-footer: i=1; b=25; e=67
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

This is the message body.

============
This is a mailing-list footer.

--abcd--
]]></artwork>
        </section>
        <section anchor="mime-part-footer">
          <name>MIME Part Footer</name>
          <t>The following procedure adds a MIME "multipart/mixed" at the top level and has as its children the original top level MIME part as the first child and the footer MIME text part as the second child.  This procedure will always succeed no matter the MIME structure or MIME content transfer encoding, however this modifies the MIME tree.  The top level MIME "multipart/mixed" is denoted by adding a "Content-footer" header purpose description with "mixed" value and the footer MIME part denoted by adding a "Content-footer" header purpose of "footer" value.  To reverse the mutation, the original top-level mime part is moved back to the actual top-level and delete the "multipart/mixed" and the footer MIME parts.</t>
          <t>For example given an original message of:</t>
          <artwork><![CDATA[
Content-Type: multipart/mixed; boundary="abcd"
From: john.doe@example.com

--abcd
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

VGhpcyBpcyB0aGUgbWVzc2FnZSBib2R5Lg==

--abcd--
]]></artwork>
          <t>A "multipart/mixed" and text footer MIME parts can be appended as follows:</t>
          <artwork><![CDATA[
Content-footer: m=mixed
Content-Type: multipart/mixed; boundary="efgh"
From: john.doe@example.com

--efgh
Content-Type: multipart/mixed; boundary="abcd"

--abcd
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

VGhpcyBpcyB0aGUgbWVzc2FnZSBib2R5Lg==

--abcd--
--efgh
Content-footer: m=footer
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
============
This is a mailing-list footer.

--efgh--
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>These examples are informational.</t>
      <section anchor="originator-first-mailing-list-second-mailing-list-receiver">
        <name>Originator ⇒ First Mailing-List ⇒ Second Mailing-List ⇒Receiver</name>
        <t>This message is sent through two mailing-lists to some receiver.  The originating sender creates and signs a message as follows:</t>
        <artwork><![CDATA[
DKIM-Signature: d=example.com
From: john.doe@example.com
Subject: A really big announcement

It's Jane Doe's birthday tomorrow!
]]></artwork>
        <t>The first mailing-list adds a Subject header prefix and message-body footer, and denotes this using the procedures and headers specified in this document.   It denotes that it performed mailing-list mutations in the ARC-Message-Signature.</t>
        <artwork><![CDATA[
ARC-Message-Signature: i=1; m=mailinglist...
Content-footer: i=1; b=34; e=78
DKIM-Signature: d=mailinglist.example.com...
From: school@mailinglist.example.com
Subject: [school list] A really big announcement
Prior-DKIM-Signature: i=1; l=3; d=example.com...
Prior-From: i=1; l=5=3; john.doe@example.com
Prior-Subject: i=1; l=3; A really big announcement

It's Jane Doe's birthday tomorrow!

============
This is the school mailing-list.
]]></artwork>
        <t>The second mailing-list adds a Subject header prefix and message-body footer, and denotes this using the procedures and headers specified in this document.  It denotes that it performed mailing-list mutations in the ARC-Message-Signature.</t>
        <artwork><![CDATA[
ARC-Message-Signature: i=2; m=mailinglist...
Content-footer: i=2; b=79; e=124
DKIM-Signature: d=mailinglist.example.com...
From: district@mailinglist.example.com
Subject: [district list] [school list] A really big announcement
ARC-Message-Signature: i=1; m=mailinglist...
Content-footer: i=1; b=34; e=78
Prior-DKIM-Signature: i=2; l=5; d=mailinglist.example.com
Prior-From: i=2; l=5; school@mailinglist.example.com
Prior-Subject: i=2; l=5; [school list] A really big announcement
Prior-DKIM-Signature: i=1; l=3; d=example.com
Prior-From: i=1; l=3; john.doe@example.com
Prior-Subject: i=1; l=3; A really big announcement

It's Jane Doe's birthday tomorrow!

============
This is the school mailing-list.

============
This is the district mailing-list.
]]></artwork>
        <t>The receiver sees the above message on inbound delivery, and attempts to verify the ARC message signature at the i=2.  Upon success, the receiver notices that there were mailing-list mutations at ARC set i=2.  It applies the REVERSE validation algorithm to reverse the mutations from the second mailing-list.  After applying the reverse procedure, the reversed message looks like:</t>
        <artwork><![CDATA[
ARC-Message-Signature: i=2; m=mailinglist...
ARC-Message-Signature: i=1; m=mailinglist...
Content-footer: i=1; b=34; e=79
DKIM-Signature: d=mailinglist.example.com
From: school@mailinglist.example.com
Subject: [school list] A really big announcement
Prior-DKIM-Signature: i=1,l=3, d=example.com
Prior-From: i=1; l=3; john.doe@example.com
Prior-Subject: i=1; l=3; A really big announcement

It's Jane Doe's birthday tomorrow!

============
This is the school mailing-list.
]]></artwork>
        <t>Again the receiver attempts to verify the ARC message signature now at the i=1.  Upon success, the receiver notices that there were mailing-list mutations at ARC set i=1.  It applies the REVERSE validation algorithm to reverse the mutations from the first mailing-list, obtaining the original message.  The reversed message looks like:</t>
        <artwork><![CDATA[
ARC-Message-Signature: i=2; m=mailinglist...
ARC-Message-Signature: i=1; m=mailinglist...
From: john.doe@example.com
DKIM-Signature: d=example.com...
Subject: A really big announcement

It's Jane Doe's birthday tomorrow!
]]></artwork>
        <t>The resulting reversed headers and message body DKIM-Signature verifies, and the REVERSE passing result is published in the ARC-Authentication-Result:</t>
        <artwork><![CDATA[
ARC-Authentication-Result: i=3; mx.example.com; reverse=pass...
ARC-Message-Signature: i=2; m=mailinglist...
Content-footer: i=2; b=79; e=124
DKIM-Signature: d=mailinglist.example.com...
From: district@mailinglist.example.com
Subject: [district list] [school list] A really big announcement
ARC-Message-Signature: i=1; m=mailinglist...
Content-footer: i=1; b=34; e=78
Prior-DKIM-Signature: i=2; l=5; d=mailinglist.example.com...
Prior-From: i=2; l=5; school@mailinglist.example.com
Prior-Subject: i=2; l=5; [school list] A really big announcement
Prior-DKIM-Signature: i=1; l=3; d=example.com...
Prior-From: i=1; l=3; john.doe@example.com
Prior-Subject: i=1; l=3; A really big announcement

It's Jane Doe's birthday tomorrow!

============
This is the school mailing-list.

============
]]></artwork>
        <t><tt>This is the district mailing-list.</tt></t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Care must be used if the reversed transformed message is used for authentication.  The reversed transformed message is vulnerable to replay attacks and "hides" the potentially spammy contribution from the mailing-lists.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>There are no requests at this time.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="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="RFC7489">
          <front>
            <title>Domain-based Message Authentication, Reporting, and Conformance (DMARC)</title>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <author fullname="E. Zwicky" initials="E." role="editor" surname="Zwicky"/>
            <date month="March" year="2015"/>
            <abstract>
              <t>Domain-based Message Authentication, Reporting, and Conformance (DMARC) is a scalable mechanism by which a mail-originating organization can express domain-level policies and preferences for message validation, disposition, and reporting, that a mail-receiving organization can use to improve mail handling.</t>
              <t>Originators of Internet Mail need to be able to associate reliable and authenticated domain identifiers with messages, communicate policies about messages that use those identifiers, and report about mail using those identifiers. These abilities have several benefits: Receivers can provide feedback to Domain Owners about the use of their domains; this feedback can provide valuable insight about the management of internal operations and the presence of external domain name abuse.</t>
              <t>DMARC does not produce or encourage elevated delivery privilege of authenticated email. DMARC is a mechanism for policy distribution that enables increasingly strict handling of messages that fail authentication checks, ranging from no action, through altered delivery, up to message rejection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7489"/>
          <seriesInfo name="DOI" value="10.17487/RFC7489"/>
        </reference>
        <reference anchor="RFC8617">
          <front>
            <title>The Authenticated Received Chain (ARC) Protocol</title>
            <author fullname="K. Andersen" initials="K." surname="Andersen"/>
            <author fullname="B. Long" initials="B." role="editor" surname="Long"/>
            <author fullname="S. Blank" initials="S." role="editor" surname="Blank"/>
            <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>The Authenticated Received Chain (ARC) protocol provides an authenticated "chain of custody" for a message, allowing each entity that handles the message to see what entities handled it before and what the message's authentication assessment was at each step in the handling.</t>
              <t>ARC allows Internet Mail Handlers to attach assertions of message authentication assessment to individual messages. As messages traverse ARC-enabled Internet Mail Handlers, additional ARC assertions can be attached to messages to form ordered sets of ARC assertions that represent the authentication assessment at each step of the message-handling paths.</t>
              <t>ARC-enabled Internet Mail Handlers can process sets of ARC assertions to inform message disposition decisions, identify Internet Mail Handlers that might break existing authentication mechanisms, and convey original authentication assessments across trust boundaries.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8617"/>
          <seriesInfo name="DOI" value="10.17487/RFC8617"/>
        </reference>
        <reference anchor="RFC2045">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This initial document specifies the various headers used to describe the structure of MIME messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2045"/>
          <seriesInfo name="DOI" value="10.17487/RFC2045"/>
        </reference>
        <reference anchor="RFC8601">
          <front>
            <title>Message Header Field for Indicating Message Authentication Status</title>
            <author fullname="M. Kucherawy" initials="M." surname="Kucherawy"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This document specifies a message header field called "Authentication-Results" 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>
      <references>
        <name>Informative References</name>
        <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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
bFnV1IlEV4/IyCKpdYlR5P8CSeMwiqNxAAA=

-->

</rfc>
