<?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.20 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chuang-replay-resistant-arc-05" category="exp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="Replay Resistant ARC">Replay Resistant Authenticated Receiver Chain</title>
    <seriesInfo name="Internet-Draft" value="draft-chuang-replay-resistant-arc-05"/>
    <author fullname="Weihaw Chuang">
      <organization>Google, Inc.</organization>
      <address>
        <email>weihaw@google.com</email>
      </address>
    </author>
    <author fullname="Bron Gondwana">
      <organization>Fastmail Pty Ltd</organization>
      <address>
        <email>brong@fastmailteam.com</email>
      </address>
    </author>
    <author fullname="Allen Robin">
      <organization>Google, Inc.</organization>
      <address>
        <email>arobins@google.com</email>
      </address>
    </author>
    <date year="2023" month="January" day="20"/>
    <workgroup>Independent Stream</workgroup>
    <keyword>DKIM</keyword>
    <keyword>ARC</keyword>
    <keyword>Replay</keyword>
    <abstract>
      <t>DKIM (RFC6376) is an IETF standard for the cryptographic protocol to authenticate email at the domain level and protect the integrity of messages during transit.  Section 8.6 defines a vulnerability called DKIM Replay as a spam message sent through a SMTP MTA DKIM signer, that then is sent to many more recipients, leveraging the reputation of the signer.  We propose two Replay Resistant cryptographic domain based protocols that leverage ARC (RFC8617).  The first technique discloses all SMTP recipients as signed RFC822 headers by the sender which allows a receiver to verify this.  The second technique defines a SMTP extension that allows both the sender and receiver to participate in signing the message signature.  It includes a path building technique that accurately defines the SMTP forwarding path of the message.  Both techniques permit a receiver to detect DKIM and ARC replay attacks and other attacks.  This specification also defines a relay flow identifier to prevent spammers from using relay forwarding,  We do this by having relays categorize their authenticated traffic flows and publish to receivers identifiers associated with those flows.  Receivers can use this identifier to help categorize traffic through the relay and use that identifier to apply fine-grain anti-abuse policies instead of on the entire traffic through the relay.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>This protocol provides two different techniques to authenticate email by domain that is replay resistant.  It leverages the features of ARC to name ADMD in the email forwarding path and the intermediate results.   The first technique discloses all SMTP recipients as signed RFC822 headers by the sender which allows a receiver to verify this.  The second technique defines a SMTP extension that allows both the sender and receiver to participate in signing the message signature, and can be built into a path of signing ADMDs called chaining.  The results of the two techniques MAY be used by spam filtering to apply some local policy, and/or applied to DMARC policy evaluation as one of its input email authenticators.  These two techniques are independent of each other with different methods, benefits and limitations in tackling replay.  Both are presented in case the limitations of one precludes using it.  This also depends upon ARC improvements to ensure that the results of the first two techniques are propagated correctly to the receiver.</t>
      <t>Spammers utilize relays to obfuscate their identities and often to spoof some other identity with email receivers.  For example a spammer may exploit the shared tenancy vulnerability of SPF to spoof some identity as follows.  It finds a relay that hosts many different enterprise customers who include the relay's IPs in their SPF policies.  The spammer then sends traffic through the relay assuming the identity of one of those customers i.e. it spoofs the MAIL FROM identity of the victim domain. While the SPF validation (if done) of the initial send by the spammer to the relay fails, a subsequent SPF validation when forwarded to some other victim receiver from the relay will pass SPF because the IPs are contained in the victim's SPF policy.  At some point, the receiver notices the spam via the relay and wants to apply anti-abuse counter measures.  With existing authentication methods, this policy would impact all mail flows through that relay, both innocent and malicious.  A better approach would be to selectively apply anti-abuse counter measures to the spammer's flow which is what this proposal enables.</t>
      <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 <xref target="RFC2119"/>.</t>
        <t>Acronyms</t>
        <ul spacing="normal">
          <li>Authenticated Received Chain (ARC) <xref target="RFC8617"/> - is a protocol that is meant to resolve some of the issues for DMARC <xref target="RFC7489"/> to fix the problems that DMARC policy rejects caused by mail forwarding, and is based on DKIM, but suffers from similar issues as DKIM replay. ARC defines digital signatures and Authentication-Results by ADMD and a versioning mechanism for them.</li>
          <li>Authentication-Results <xref target="RFC8601"/>- A header containing a list of validation results and comments.</li>
          <li>
            <t>DomainKeys Identified Mail (DKIM) <xref target="RFC6376"/>- IETF standard for the cryptographic protocol to authenticate email at the domain level and protect the integrity of messages during transit.
            </t>
            <ul spacing="normal">
              <li>DKIM replay- <xref target="RFC6376"/> section 8.6 defines a vulnerability called DKIM Replay as a spam message sent through a SMTP MTA DKIM signer, that then is sent to many more recipients, leveraging the reputation of the signer.</li>
            </ul>
          </li>
          <li>Sender Policy Framework (SPF) <xref target="RFC7208"/>- IETF standard for authenticating sending servers typically based on IP address.</li>
          <li>ADministrative Management Domain (ADMD) <xref target="RFC5598"/> defines Mail Submission Agent (MSA), Mail Transfer Agent (MTA) and Mail Delivery Agent (MDA).</li>
          <li>Domain-based Message Authentication, Reporting, and Conformance (DMARC) <xref target="RFC7489"/>- Defines a sender's domain identity and from that a sender's message handling policy when messages are being spoofed.  It defines using SPF and DKIM as methods to determine the authenticity of messages.</li>
          <li>Signed RFC822 header recipients- These identities are defined by <em>To</em>, <em>Cc</em> and <em>Forwarded-to</em> headers, and MUST be a signed headers present in the ARC-Seal.</li>
          <li>SMTP recipients- The RFC5321 MAIL FROM recipients are disclosed during the SMTP transmission.  These identities define the inboxes that the message is intended for.</li>
        </ul>
      </section>
    </section>
    <section anchor="arc-set-improvements">
      <name>ARC Set Improvements</name>
      <t>This protocol leverages the concepts and features of ARC <xref target="RFC8617"/> for propagating authentication results and protecting the integrity of the headers and message body.  It adds additional new ARC-Seal tag/values to describe protocol settings and new ARC-Authentication-Results status and comments as described in later sections.  As the ARC chain identifies the message traversal over the forwarding path, this uses ARC set number as the per ADMD versioning.  Unlike ARC, this proposal mandates that the aware ADMDs explicitly identify themselves as an ARC set in the identified path or makes explicit when the message exits the identified path into some naive, unaware ADMD as described later.</t>
      <t>The identified path traverses ADMDs starting with the MSA, optionally traverses one or more MTA, and terminates delivery into the inbox at the MDA.  The MSA ADMD i.e. the responsible originating sender of the message is identified as the initial ARC set "i=1".  This protocol requires that the <em>From</em> header domain MUST be the same as the ARC-Seal d= domain i.e. tying the sender's identity to the cryptographic signer that claims that.  As the originator has no email authentication results, the ARC-Authentication-Results MUST be empty.  Similarly when the message is delivered to the inbox by the MDA ADMD at ARC set "i=N", it alters the ARC set to make termination identifiable and to make it more difficult to replay the ARC sets.  The MDA strips the ARC-Seal and ARC-Message-Signature but leaves behind the ARC-Authentication-Result before sending the message to the MUA.  A message lacking ARC-Seal and ARC-Message-Signatures has been delivered to the inbox, and the last ARC set ARC-Authentication-Result present indicates the MDA ARC set.   ADMDs that act as MTA will upon receiving a message, forward to some new destination.  Note that an ADMD MAY be both a MTA and MDA i.e MAY forward the message and deliver to some inbox.</t>
      <t>To prevent reuse of ARC headers from one message in another,  this protocol mandates generating the ARC-Message-Signature signature upon any outbound traversal from one ADMD to a different ADMD.  In addition there MAY be ARC signing internal to the ADMD.  Having this outbound message body signing invariant permits the receiver to verify the integrity of the message as sent by the prior ADMD.  To verify the integrity of the ARC sets then, a receiver MUST verify the previous ARC set's ARC-Message-Signature and verify each ARC set's ARC-Seal signature from "i=N" (sender's ARC set number) to "i=1" as well as the presence of all headers in the ARC set.  Failure from the immediate sender at "i=N" is treated differently than failures from prior senders at "i=N-1" or earlier with the intention that verifiers MAY potentially use the subsequent ARC set verification results hence differentiated.  If the receiver sees a verification failure from the immediate sender's ARC-Message-Signature or ARC-Seal, or from missing headers, that is "hard" <em>fail</em>.  Prior failures from "i=N-1" to "i=1" ARC-Seal are treated as <em>softfail</em>.  The result of the verification is published in the Authentication-Result and the ARC-Authentication-Result with a tag "arc=".  Even if ARC verification fails, this specification asks the receiver to continue ARC generation and verification to provide forensics evidence for subsequent receivers via the authentication results.  For example the SPF authentication results of the potentially malicious sender MAY help identify that sender to some subsequent receiver.  The propagated ARC verification failure will help prevent inadvertent use of the authentication results by subsequent receivers.</t>
    </section>
    <section anchor="declare-all-recipients-and-affirm-dara">
      <name>Declare All Recipients and Affirm (DARA)</name>
      <section anchor="concepts">
        <name>Concepts</name>
        <t>We can harden the protocol against replay attacks by explicitly identifying all recipients in the headers, including when the recipient is "hidden" such as <em>Bcc</em> or Mailing-lists.  That way when a signed message arrives, the receiver can check if the RCPT TO recipient correctly is a subset of the recipient in the signed message header.  If not, then the message MAY be part of a replay attack.  For blind carbon copy, while a  Bcc header MAY be added, it can be stripped by subsequent forwarders.  Instead we create a new <em>Forwarded-to</em> header that includes an ARC set versioning number to indicate which ADMD sent the message to a new recipient.</t>
        <artwork><![CDATA[
Forwarded-to: i=1; user@example.com
]]></artwork>
        <t>The <em>Forwarded-to</em> header MUST be signed by the ARC-Message-Signature i.e. be present in the "h=", then prepended to the headers of the message.  For privacy, if there are multiple recipients, the message MUST be split and signed exclusively for each <em>Forwarded-to</em> recipient to maintain privacy between recipients.  Subsequent forwarders MUST NOT strip the <em>Forwarded-to</em> header from the message.  To handle the email forwarder and mailing list scenario, we also use the <em>Forwarded-to</em> header to indicate that a message is sent to a new recipient.  Messages sent to a new ADMD but with the same recipient identity disclosed by <em>Forwarded-to</em> MAY reuse the prior header.</t>
        <t>Senders and receivers MAY variously support the Declare All Recipients and Affirm (DARA) protocol or not, so the protocol needs to be tolerant of naive ADMDs.  For example a naive mailing list sender sending to a protocol aware receiver SHOULD NOT have traffic rejected simply because it didn't follow the protocol.  Yet simultaneously, the DARA protocol needs to discourage abuse by spammers seeking to use the naive ADMD path for DKIM replay.  In this protocol, that sender publishes their capability in the ARC-Seal as "dara=" tag/value, and whether the receiver SHOULD validate recipients.  A value of "v" indicates that the receiver MUST validate the recipients, and if it fails verification, treat the message as DARA unauthenticated with the implication that the message is being replayed.  As with other email authentication methods, the verifier is free to apply a locally defined policy against unauthenticated email.  A value of "d" indicates that the receiver MAY choose to discretionally validate the recipients.  If a receiver validates the recipients, it SHOULD treat recipient verification failure as <em>neutral</em> and SHOULD treat success as <em>pass</em>.  The discretionary validation mode is to support the scenario of sending to a naive ADMD that does not support ARC or the DARA protocol.  Because such naive forwarders might not add any indication of its presence e.g. adding an ARC set,  the sender MUST protect subsequent DARA aware receivers from misinterpreting prior settings while allowing for recipient updates that MAY otherwise trigger false positive verification failures.  All ADMD supporting the DARA protocol MUST publish a DNS txt policy record as described below.  The sender fetches the receiver's policy record to determine whether to select the required verification "dara=v" which is done when the receiver supports the DARA protocol, otherwise the sender selects the optional "dara=d" validation profile.   In addition when the receiver does not support the protocol, the sender always identifies the individual signed recipient.  This MAY be needed when the recipient is in the <em>To</em>, or <em>Cc</em> headers, and in this case also adds a <em>Forwarded-to</em> header per recipient, then signs the message only for that recipient.  Unique identification of the recipient and the receiving domain allows a receiver to adjust the reputation system in case there is a replay attack.  Instead of penalizing the sender that is DARA aware, the receiver MAY elect to apply the reputation penalty to the receiving domain that is naive to DARA.</t>
        <t>The receiver's verification process is to collect all the recipients in the <em>To</em>, <em>Cc</em> and <em>Forwarded-to</em> headers.  It verifies that they are signed appropriately in the sender's ARC-Message-Signature and if so, put them into a set of signed headers.  The receiver then collects all the RCPT TO recipients as the envelope recipients.  The receiver then verifies that the envelope recipients are a subset of the signed headers.  It applies the policy depending on the sender's capabilities as described in the ARC-Seal "dara=" tag/value.  The result of this check SHOULD be published in the ARC-Authentication-Results as "dara" <xref target="RFC8601"/> method as <em>pass</em> or <em>fail</em> or <em>neutral</em>.</t>
        <t>The DARA DNS policy record identifies whether an ADMD supports the protocol.  It is a TXT DNS record located at the same domain name as the MX record.  Quite likely it will share the policy record with SPF.  Such a policy record starts with a SeRCi version number "dara_version=" which MUST be set to "ver1.0" indicating that ADMD supports DARA.  While usually the sender looks up the DARA TXT DNS record, a receiver MAY elect to check the sender's policy if it suspects that a MiTM has stripped off the sender's DARA policy.  If it detects a DARA declaration in the DNS policy, but not in the message, the receiver MAY elect to treat the message as spam.</t>
      </section>
      <section anchor="definitions">
        <name>Definitions</name>
        <t>DNS TXT Policy tags</t>
        <ul spacing="normal">
          <li>"dara_version=": Value of "ver1.0" if the ADMD supports the DARA verification protocol.</li>
        </ul>
        <t>ARC-Seal tags</t>
        <ul spacing="normal">
          <li>"dara=": Value of "v" if the sender mandates that the receiver verify the recipients.  Value "d" if the sender asks the receiver to optionally verify the recipients, and writes a <em>pass</em> if the recipient verification passes.</li>
        </ul>
        <t>ARC-Authentication-Results method</t>
        <ul spacing="normal">
          <li>"dara=": Value of <em>pass</em> if recipient validation passes, otherwise <em>fail</em>.  In some circumstances this tag/value may be unset or be treated as <em>neutral</em>.</li>
        </ul>
      </section>
      <section anchor="header-examples">
        <name>Header Examples</name>
        <section anchor="mbp-mailing-list-mbp">
          <name>MBP ==&gt; Mailing-List ==&gt; MBP</name>
          <t>First MBP outbound (after ARC seal)</t>
          <artwork><![CDATA[
ARC-Seal: i=1; dara=v
ARC-Authentication-Results: i=1
To: mailing.list@example.com
]]></artwork>
          <t>Mailing-List inbound (after ARC seal)</t>
          <artwork><![CDATA[
ARC-Seal: i=2; dara=v
ARC-Authentication-Results: i=2; dara=pass (rcpt.to 
    mailing.list@example.com matches signed header)
ARC-Seal: i=1; dara=v
ARC-Authentication-Results: i=1
To: mailing.list@example.com
]]></artwork>
          <t>Mailing-List outbound (after ARC seal)</t>
          <artwork><![CDATA[
Forwarded-to: i=2; user@example.com
ARC-Seal: i=2; dara=v
ARC-Authentication-Results: i=2; dara=pass (rcpt.to 
    mailing.list@example.com matches signed header)
ARC-Seal: i=1; dara=v
ARC-Authentication-Results: i=1
To: mailing.list@example.com
]]></artwork>
          <t>Final MBP inbound (after ARC seal)</t>
          <artwork><![CDATA[
ARC-Seal: i=3; dara=v; 
ARC-Authentication-Results: i=3; dara=pass (rcpt.to 
    user@example.com matches signed header)
Forwarded-to: i=2; user@example.com
ARC-Seal: i=2; dara=v; 
ARC-Authentication-Results: i=2; dara=pass (rcpt.to 
    mailing.list@example.com matches signed header)
ARC-Seal: i=1; dara=v
ARC-Authentication-Results: i=1
To: mailing.list@example.com
]]></artwork>
        </section>
        <section anchor="mbp-mbp-replay-mbp">
          <name>MBP ==&gt; MBP-Replay ==&gt; MBP</name>
          <t>First MBP outbound (after ARC seal)</t>
          <artwork><![CDATA[
ARC-Seal: i=1; dara=v
ARC-Authentication-Results: i=1
To: user@example.com
]]></artwork>
          <t>Second MBP inbound (after ARC seal)</t>
          <artwork><![CDATA[
ARC-Seal: i=2; dara=v; 
ARC-Authentication-Results: i=2; dara=pass (rcpt.to 
    user@example.com matches signed header)
ARC-Seal: i=1; dara=v
ARC-Authentication-Results: i=1
To: user@example.com
]]></artwork>
          <t>Above message captured by spammer, modified (add additional headers) and then resent.  A spammer might send the message to john.doe@example.com which would be unspecified in the headers.</t>
          <t>Victim (last) MBP inbound (after ARC seal)</t>
          <artwork><![CDATA[
ARC-Seal: i=3; dara=v
ARC-Authentication-Results: i=3; dara=fail (rcpt.to 
    john.doe@example.com mismatches signed header);
ARC-Seal: i=2; dara=v
ARC-Authentication-Results: i=2; dara=pass (rcpt.to 
    user@example.com matches signed header);
ARC-Seal: i=1; dara=v
ARC-Authentication-Results: i=1
To: user@example.com
]]></artwork>
        </section>
        <section anchor="mbp-naive-forwarder-mbp">
          <name>MBP ==&gt; Naive-Forwarder ==&gt; MBP</name>
          <t>This describes a forwarder that doesn't not support DARA.</t>
          <t>First MBP outbound (after ARC seal)</t>
          <artwork><![CDATA[
Forwarded-to: i=1; user@naive.example.com
ARC-Seal: i=1; dara=d
ARC-Authentication-Results: i=1
To: user@example.com
]]></artwork>
          <t>Forwarder headers will be the same as above as the forwarder is naive to the protocol.</t>
          <t>Final MBP inbound (after ARC seal).  In this case the envelope recipient will change weihaw@example.com.  The declared recipient user@other.example.com will mismatch the envelope recipient, and fail DARA.  However the protocol is set to optional verification with DARA=d, and so does not report the failure.</t>
          <artwork><![CDATA[
ARC-Seal: i=2; dara=v
ARC-Authentication-Results: i=2
Forwarded-to: i=1; user@naive.example.com
ARC-Seal: i=1; dara=d
ARC-Authentication-Results: i=1
To: user@naive.example.com
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sender-receiver-co-signing-serci">
      <name>Sender Receiver Co-Signing (SeRCi)</name>
      <section anchor="concepts-1">
        <name>Concepts</name>
        <t>We can create a challenge response system using cryptographic signing orchestrated between the sender and receiver of an SMTP transaction.  The receiver challenges the sender to sign a mutually agreed upon value with their secret key, and can demonstrate a proof of that SMTP client-server relationship to 3rd parties.  One problem is that the receiver can't proactively issue the challenge, so as part of the EHLO, the server issues the challenge as an optional SMTP extension argument.  The sender can respond with the signature incorporating the shared value as a SMTP extension verb.   Another problem is preventing a malicious party from intercepting a message and trying to replicate the challenge.   We propose using a timestamp that can't be used in the future i.e. both parties make sure the timestamp reasonably represents the current time.  This cryptographic challenge needs to sign a hash that ties the signature back to the message, and for this proposal, we take the whole message hash from the ARC-message-signature.  In addition the destination domain is specified to reduce the risk for this signature to be intercepted and reused for other communications with other destination domains.</t>
        <t>Such a protocol can help authenticate to a receiver that some sender sent a message without risk of replay via some third party.  Sender Receiver Co-Signing (SeRCi pronounced Cersei as in the GoT character) could be used similarly to SPF <xref target="RFC7208"/> but without the risk of shared tenancy <eref target="https://www.7elements.co.uk/resources/blog/smtp-multipass/">attack</eref>, <eref target="https://arxiv.org/abs/2204.05122">IP reuse</eref> attack, and BPG <eref target="http://people.scs.carleton.ca/~kranakis/Papers/TR-05-07.pdf">vulnerabilities</eref>.  Moreover a third party can independently verify the result that some sender and receiver sent the given message at the given time.  This obviates the need to trust the ARC-Authentication-Results.  Later we use SeRCi metadata to describe the forwarding path of the message.</t>
        <t>This protocol signs the messages content at the exit to the ADMD to protect the SMTP transaction and yet be insensitive to message body or header modifications by the ADMD.  This is necessary to tolerate the changes that a legitimate forwarder may make such as a mailing list adding a footer or adding the name of the mailing list to the Subject header.  Other forwarders may alter the Content-Transfer-Encoding or delete attachments which this protocol also tolerates.  However malicious forwarders may add or replace malicious content to otherwise benign messages and this must be detected.  SeRCi identifies message body changes via different body hashes between the originator and the destination.  If a message is unchanged between the originator to destination, then malicious content is attributed to the originator.  If a message is changed and there is malicious content, then the originator and the mutating ADMDs are assigned responsibility.  Potentially the attribution can affect the receiver reputation given to the ADMDs.  The existing ARC protocol can do this, however it is a risky endeavor due to the potential for ARC replay and looseness around when ARC does its ARC-Message-Signature.</t>
        <t>The SMTP extension for SeRCi for generating the hash and then publishing it, is meant to prove that the sender and receiver collaborated to create the hash.  The protocol is advertised as a SMTP extension in the SMTP EHLO named SERCI with a timestamp argument.  That timestamp will be in UTC seconds.  If the timestamp is acceptable to the sender, then it SHOULD sign a tuple of url-safe base64  <xref target="RFC4648"/> message hash used in the outbound ARC-Message-Signature, destination domain as defined in the next paragraph, and timestamp.   (Subsequent base64 operations are assumed to be url-safe encoded base64 <xref target="RFC4648"/> to avoid quoted-string) That signature then SHOULD be base64 encoded and disclosed to the receiver as:</t>
        <artwork><![CDATA[
SERCI-SIGNATURE <sender domain> <selector> <header-body hash> 
<message-body hash> <signature> 
]]></artwork>
        <t>where signature is upon a hash of the formatted SeRCi result comment string to be presented by the receiver minus the signature.  Note there are no white spaces in the hashed string.  To create the canonical version whitespace they are removed.  Thus the signature is:</t>
        <artwork><![CDATA[
base64(signsender(sha256(<sender domain><selector><header hash>
<message body hash><timestamp>)))
]]></artwork>
        <t>where domain corresponds to the sender's DKIM domain and selector that is used to find the DKIM public key DNS record.  It also discloses the header hash and body hash that is used to compute the message hash, and are present to allow detection of differences between ARC sets.   If the timestamp is not acceptable, the sender can report this as SERCI-SIGNATURE "out-of-time" and potentially the receiver will return a new timestamp.  The sender is allowed to do this once, and after that the receiver MUST report an error.  To prevent eavesdropping and potential spoofing, this protocol MUST be secured by SMTP TLS.  Upon obtaining the signature, the receiver MUST then validate the SeRCi signature.  It looks at the sender's ARC-Message-Signature hash to see if that is acceptable, meaning matches a hash the receiver generates of the message.  Next it checks if the timestamp is the same as provided to the sender, and if the destination domain is the same as the receiver's ARC-Seal "d=" domain. The SERCI-SIGNATURE command returns OK on success, otherwise some error code.</t>
        <t>An example SMTP transaction might look like:</t>
        <artwork><![CDATA[
EHLO sender.example.com
250-sender.example.com at your service, [1.2.3.4]
250-SIZE 157286400
...
250 SMTPUTF8
250 SERCI <timestamp>
MAIL FROM:<sender>`     
RCPT TO:<recipient>
DATA <message>
SERCI-SIGNATURE <sender domain> <selector> \
base64(<message body hash>) base64(<header hash>) \
base64(signsender(sha256(<sender domain><selector><header hash> \
<message body hash><timestamp>)))
]]></artwork>
        <t>The sender discovers the receiver's support for this protocol by a DNS txt policy lookup upon the recipient email address domain.  Within this policy record MAY be a tag value indicating which SeRCi version number "SERCI_version=" which MUST be set to "ver1.0<tt>"</tt> when that ADMD indicates it supports SeRCi.  The lookup also discovers the normalized destination domain name, and that destination domain MUST match the ADMD ARC-Seal "d=" domain <xref target="RFC8617"/>  which enables tracing this domain <em>From</em> sender to receiver as described later.  The domain name is specified "serci=&lt;domain&gt;" in the DNS policy record.  Once discovered this domain is put in the sender's ARC-Seal as" serci=&lt;domain&gt;", which indicates support by the receiver for the SeRCi as well as identify the intended receiver domain.   If no such DNS txt policy record is found, then the receiver does not support the SeRCi protocol.  This is indicated in the ARC-Seal by a SeRCi naive receiver tag/value of "snr=<tt>"</tt> and <em>From</em> header domain for path building described later.  Further the "snr=" tag indicates to subsequent SeRCi aware receivers that there was an intermediate naive forwarder.  If a domain advertises a SMTP SeRCi-SIGNATURE extension but does not publish a DNS txt policy, the sender MUST NOT call the SeRCi-SIGNATURE command as the receiver is declaring their intent to not participate in SeRCi.</t>
        <t>The SeRCi aware receiver will verify the signature after the SeRCi-SIGNATURE verb.  Assuming the receiver agrees with the signature (i.e. verifies it), the receiver will add to the ARC-Authentication-Result a new authentication-results method "serci" that has a <em>pass</em> result or <em>fail</em> result otherwise.  It also adds as authentication-results <xref target="RFC8601"/> properties, the values needed to contribute to the signature verification.  The <xref target="RFC8601"/> ptype is "smtp".  The sender domain property is "sd".  The selector is "s".  The message body hash is "bh" and the value is encoded in base64.  The header hash is "hh" and the value is encoded in base64.  The timestamp is "t".   This is illustrated as:</t>
        <artwork><![CDATA[
ARC-Authentication-Results i=1; serci=<pass|fail> (<comment>) 
     smtp.sd=<sender domain>
     smtp.s=<sender domain>
     smtp.bh=base64(<message body hash>)
     smtp.hh=base64(<header body hash>)
     smtp.t=<timestamp> 
     smtp.s=<selector>
     smtp.b=base64(<signature>)
]]></artwork>
        <section anchor="definitions-1">
          <name>Definitions</name>
          <t>DNS TXT Policy tags</t>
          <ul spacing="normal">
            <li>"serci_version=": Value of "ver1.0" if the ADMD supports the SeRCi verification protocol.</li>
            <li>"serci=": Value of the receiver's ARC-Seal "d=" domain</li>
          </ul>
          <t>ARC-Seal tags</t>
          <ul spacing="normal">
            <li>"serci=": Value of the receiver's ARC-Seal "d=" domain when the receiver is SeRCi capable.</li>
            <li>"snr=": Value of RFC822 recipient's domain name when the receiver is naive of SeRCi.</li>
          </ul>
          <t>ARC-Authentication-Results method and ptype-properties</t>
          <ul spacing="normal">
            <li>"serci=": Value of "pass" if sender/recipient signing validation succeeds, otherwise "fail".</li>
            <li>"smtp.sd=": sender domain</li>
            <li>"smtp.s=": selector</li>
            <li>"smtp.bh=": body hash in base64</li>
            <li>"smtp.hh=": body hash in base64</li>
            <li>"smtp.t=": timestamp in seconds from UTC</li>
            <li>"smtp.b=": signature in base64</li>
          </ul>
        </section>
      </section>
      <section anchor="header-example">
        <name>Header Example</name>
        <artwork><![CDATA[
ARC-Seal: i=2; d=destination.example.com
ARC-Authentication-Results: i=2; serci=pass (comment) 
     smtp.sd=source.example.com smtp.s=selector 
     smtp.bh=message_body_hash_base64 smtp.t=1664511950175 
     smtp.s=signature_base64
ARC-Seal: i=1; d=source.example.com; serci=destination.example.com
ARC-Authentication-Results: i=1
To: user@destination.example.com
]]></artwork>
      </section>
    </section>
    <section anchor="relay-flow-identifier">
      <name>Relay Flow Identifier</name>
      <t>This specification defines an identifier name for mail traversing a relay.  Typically the relay uses password authentication such as methods provided for in <xref target="RFC4954"/> but other methods MAY be possible.  This identifier MAY also be used for authenticated forwarding flows such as mailing lists and with other authentication methods such DKIM or SPF that verify who the sender is.  Because some traffic may have originated at the relay, which traditionally may be DKIM signed, this document provides a specification for DKIM <xref target="RFC6376"/>.  In other instances, the relay forwards traffic originated elsewhere, and these are typically not DKIM signed by the relay, so instead this document provides a specification using ARC <xref target="RFC8617"/>.</t>
      <t>Email Service Providers can delegate relay and forwarding services to enterprise customers, typically associated with some customer domain.  Spammers utilize these features either by acting as an enterprise customer or by hijacked accounts.  This specification proposes naming flows by enterprise customers to help the email receiver with categorization and application of anti-abuse counter measures.  As some mechanisms for mail forwarding such as mailing lists are often opaque after being sent and problematic for debug and abuse protection, this offers a naming scheme to help identify those mechanisms.</t>
      <section anchor="flow-identification-token">
        <name>Flow Identification Token</name>
        <t>The relaying service choosing to use this specification MUST categorize and name relayed traffic flows such that receivers can do anti-abuse analysis upon them if necessary.  In order for the identifier to be effective, it SHOULD be persistent in time and uniquely named across all flows through the relay.  As relayed traffic flow is often associated with a delegated domain, the first part of the identifier MUST either include a domain associated url-safe base64 <xref target="RFC4648"/> token, or be empty if no such delegated domain is present.  It MAY include a local part url-safe base64 <xref target="RFC4648"/> token after the domain token and separated by a period '.'.  This local part token can help describe the mail forwarding mechanism.  Combined the domain token and the optional local token form the relay flow identifier name.  If a message is associated with more than one flow, the relay SHOULD select the more specific flow based on local policy.  That name MUST NOT be any relay internal name though MAY be a secure cryptographic hash of such.  Also that name MUST NOT contain or be associated with any Personally Identifiable Information (PII).  The parser should ignore commas '+' whose use may be specified in the future.</t>
        <t>Example valid names:</t>
        <artwork><![CDATA[
0123456789
0123456789.abcdwxyz
.abcdwxyz
<empty>
]]></artwork>
      </section>
      <section anchor="arc-authentication-result-method">
        <name>ARC Authentication-Result Method</name>
        <t>This proposes a new ARC <xref target="RFC8617"/> ARC-Authentication-Result defined method <xref target="RFC8601"/> that identifies the presence of a relay flow and its property that identifies a relay flow identifier name.  The defined method is "relay", which when present, takes a single result value of "pass" that indicates the relay was authenticated.   The relay method will have a propspec tag-value with a policy ptype with a "rfid" property i.e "policy.rfid" that takes a single token value.  That token value consists of a domain url-safe base64 token and the optional local url-safe base64 token separated by a period.  The token parsers MUST ignore a reserved plus that may be further specified in the future.</t>
        <t>Example:</t>
        <artwork><![CDATA[
ARC-Authentication-Results: i=1; auth.example.com; 
     relay=pass (comments) policy.rfid=0123456789.abcdwxyz
]]></artwork>
      </section>
    </section>
    <section anchor="chaining">
      <name>Chaining</name>
      <t>The local results of SeRCi can be combined into a path of verified ADMD domains as defined by the ARC-Seal "d=" domains.  Path building can help detect if replay potentially occurred, that is a receiver MAY check that a message was forwarded from the originator to it with verification errors.   If there are Chain building verification errors, then it indicates either there is a protocol unaware forwarder, or that there is a malicious sender attempting to take the message and reinject it along a new path outside the intent of the originator.  A verifier can then check for some prior sender SeRCi declaration of "snr=" vs "serci=" which clarifies definitively which of these two scenarios applies.  At that point, it is up to the receiver's local policy to determine what receiver does with the result.  The protocol for this verification is described in more detail in subsequent paragraphs.</t>
      <t>The verified path that the message traverses can be used as the message flow identifier in a reputation system.  Unlike purely domain based reputation systems, a path based one can help differentiate benign message flows from malicious ones to help identify replay or other abuse by identifying the spammer forwarding malicious content.  In the Header Examples we describe a scenario where the spammer exploits some gullible but otherwise benign intermediate forwarder in an attempt to hide their tracks and path based reputation can be particularly helpful in uncovering them.</t>
      <section anchor="chain-building-algorithm">
        <name>Chain Building Algorithm</name>
        <t>The following defines an algorithm for path building using SeRCi identifiers.  We define the nodes of a path as the ARC-Seal "d=" identities and who form edges as domain identities pairs.  Because building the edges of a path is a repeated process across edges that are like links, we call this Chain building.  It starts at the destination at ARC set "i=N", and walks through the ARC headers to the originator ARC set "i=1".  The edge is defined as a pair of nodes (<em>d<sub>N</sub></em> , <em>d<sub>N-1</sub></em>) where the sender's ARC-Seal "serci=" domain is <em>d<sub>N</sub></em>  and the receiver's ARC-Seal "d=" domain <em>d'<sub>N</sub></em> MUST match.  If so, edge building considers this a local <em>pass</em>.  If the "serci=" result is missing, the verifier checks if there is instead a "snr=" tag at this or prior ARC set, then specifies an edge result of <em>neutral</em>, otherwise as <em>fail</em>.  Next the receiver's ARC-Set number MUST be "i=N-1" and if so then the ARC-Seal "d=" domain is defined as <em>d<sub>N-1</sub></em>.  This recursively is extended for (<em>d<sub>N-1</sub></em> , <em>d<sub>N-2</sub></em>) i.e. for ARC set "i=N-2" and so forth for each "i=n" to <em>d<sub>1</sub></em>.</t>
        <t>Local Chain verifier is done for each ARC set n following the above edge building from "i=N" to "i=1" and builds two vectors.  One vector keeps the local chain results and the other ARC-Seal "d=" domains.  The verifier assumes that results from ARC header and message-body signature verification, SeRCi and potentially DARA verifications have already run and the results already populate the ARC-Authentication-Results.  For ARC set "i=N" to ARC set "i=2", the verifier MUST evaluate the local result, meaning the ARC result (i.e. from ARC seal verification and sometime ARC message-signature verification), edge building result, and SeRCi verification result, and optionally the DARA verification result, and take the AND of those results.   If all of them are <em>pass</em>, the local Chain result is <em>pass</em>.  Otherwise if any of them are <em>neutral</em> or SeRCi is <em>softfail</em>, and the rest pass, the result is <em>neutral</em>.  Otherwise the result is <em>failure</em>.   Further local policy MAY modify the ARC message-signature result (perhaps due to future work around this <eref target="https://datatracker.ietf.org/doc/draft-kucherawy-dkim-transform/">draft</eref> or this <eref target="https://datatracker.ietf.org/doc/draft-kucherawy-dkim-list-canon/">one</eref>)  As with ARC improvements, this protocol recommends continuing Chain verification even if the sender's Chain result is failure or neutral, to provide forensics evidence for subsequent receivers.  Receivers SHOULD independently verify the SeRCi signature rather than taking the result from ARC-Authentication-Result and having to trust an externally generated result.   At the originator ARC set "i=1" corresponding to <em>d<sub>1</sub></em>, the verifier first verifies alignment between header <em>From</em> domain and the ARC-Seal "serci=" domain.  That domain defines <em>d<sub>1</sub></em>, and the verifier looks up the SeRCi policy associated with the domain which MUST exist.  If they are not aligned, then the message is not considered originated at "i=1", and local Chain verification is considered <em>neutral</em> as likely the message was forwarded to some SeRCi aware domain.  In addition the ARC seal validation for  "i=1" MUST <em>pass</em> or local Chain verification is considered <em>fail</em>.  Once these checks pass, then Chain building for "i=1" is considered to pass.  The local Chain results is added onto the result vector at that index for all indexes, and similarly the ARC-Seal "d=" domain onto the domain vector.  If relay flow identifier is available for that ARC set, the relay flow identifier may be used instead of the domain per local policy.</t>
        <t>To compute the global Chain result, there is a walk over the vector of results.  The global Chain result is initialized to <em>pass</em>.  Starting from "i=N" index to "i=1", if the local result is <em>fail</em> then the global result is <em>fail</em>, else if local result is <em>neutral</em> then the global is <em>neutral</em>.  If the local result is <em>fail</em>, then the domain result is cleared from that index to i=1.  This will attempt to extend the domain list by looking at the prior ARC sets SPF result.  If that has a SPF <em>pass</em>, then the SPF domain is placed in that index, otherwise this inserts a failure indication with the cause e.g. "arc-fail" at that index.  If there are multiple failures, this chooses the most specific error as the cause e.g "serci-fail" over "arc-fail".  This then truncates cleared domain entries from the domain list.  If the local result is <em>fail</em>, this walk halts.  If the local result is <em>neutral</em>, and there is a "snr=" then this inserts the domain in the domain list after the current index which helps identify it in the constructed path.  A synthetic <em>neutral _result is also inserted in the result path.  This also similarly extends the path when "i=1" and the message doesn't originate at that domain (missing alignment between the _From</em> header domain and ARC-Seal "d=" domain) to better identify the flow.  If so and the SPF result is a <em>pass</em>, this prepends the SPF domain and synthetic result into the respective vectors.  If there is a non-passing SPF result, this prepends a SPF status string such as "spf-neutral" to the domain vector and the status to status vector.   The global Chain result is published ARC-Authentication-Results as a "chain=".  result.  If the result is <em>pass</em>, then the message is considered to be <em>authenticated</em> by SeRCi, otherwise <em>unauthenticated</em>.</t>
      </section>
      <section anchor="modified-body-algorithm">
        <name>Modified Body Algorithm</name>
        <t>The protocol can detect when a message is modified along the forwarding path by looking at the current and previous message body hash and comparing them to find for changes.  If the message content is considered spammy and phishy, then ADMDs that may have contributed to that problematic message body content will have their reputation per domain reputation of ADMDs negatively reduced.  Other ADMDs that are proven to not have contributed message content SHOULD NOT be affected.  A per domain reputation sensitive to message modification is useful when the path based reputation has not been established, and instead the per domain reputation can initialize the reputation of the sender.  For this we keep a reputation table indexed by domains.  We collect the domains that modify the messages in a forwarding path including the sender, and update their reputation collectively and equally based on the spam and phishing scores.  Alternatively the path identifier can be further specialized by adding an indicator whether a forwarding ADMD modified the message.  That differentiates path sensitive reputation by whether a forwarder modified the message or not.</t>
      </section>
      <section anchor="definitions-2">
        <name>Definitions</name>
        <t>ARC-Authentication-Results tags</t>
        <ul spacing="normal">
          <li>"chain=": Value of <em>pass</em> if local results and prior nodes are all passes, otherwise if "snr=" was present in the flow then <em>neutral</em>, else <em>fail</em>.</li>
        </ul>
      </section>
    </section>
    <section anchor="chaining-header-examples">
      <name>Chaining Header Examples</name>
      <t>The following two examples illustrate working SeRCi/Chain-Building verification.  This is followed by an example of DKIM replay attack.  The second to last example is illustrative of how this protocol behaves with a SPF upgrade attack.  The last example demonstrates a modified message body by a forwarder.  (Other examples do not have a forwarder that modifies the message) .</t>
      <section anchor="mbp-mailing-list-mbp-1">
        <name>MBP ==&gt; Mailing-List ==&gt; MBP</name>
        <t>This is an example of mail being sent from one Mail-Box-Provider to another through a Mailing-List where all ADMDs participate in SeRCi.  In this illustrative example, we show the construction of the headers.</t>
        <t>First MBP outbound (after ARC seal)</t>
        <artwork><![CDATA[
ARC-Seal: i=1; d=originator.example.com;
    serci=mailinglist.example.com
ARC-Authentication-Results: i=1
To: mailing.list@mailinglist.example.com
]]></artwork>
        <t>Mailing-List outbound (after ARC seal)</t>
        <artwork><![CDATA[
ARC-Seal: i=2; d=mailinglist.example.com;
    serci=destination.example.com
ARC-Authentication-Results: i=2; serci=pass; chain=pass
ARC-Seal: i=1; d=originator.example.com;
    serci=mailinglist.example.com
ARC-Authentication-Results: i=1
To: mailing.list@mailinglist.example.com
]]></artwork>
        <t>Final MBP inbound (after ARC seal)</t>
        <artwork><![CDATA[
ARC-Seal: i=3; d=destination.example.com
ARC-Authentication-Results: i=3; serci=pass; chain=pass
ARC-Seal: i=2; d=mailinglist.example.com;
    serci=destination.example.com
ARC-Authentication-Results: i=2; serci=pass; chain=pass
ARC-Seal: i=1; d=originator.example.com;
    serci=mailinglist.example.com
ARC-Authentication-Results: i=1
To: mailing.list@mailinglist.example.com
]]></artwork>
        <t>The global Chain verification result is <em>pass</em> and the message is considered SeRCi <em>authenticated</em>.  The constructed path is [originator.example.com, mailinglist.example.com, destination.example.com].</t>
      </section>
      <section anchor="mbp-naive-forwarder-aware-forwarder-mbp">
        <name>MBP ==&gt; Naive-Forwarder ==&gt;Aware-Forwarder ==&gt;MBP</name>
        <t>This demonstrates a naive forwarder naive.example.com that doesn't not support SeRCi.  The headers represent what would be seen after inbound delivery to the destination MBP.</t>
        <artwork><![CDATA[
ARC-Seal: i=3; d=destination.example.com
ARC-Authentication-Results: i=3; serci=pass; chain=neutral
ARC-Seal: i=2; d=intermediate.example.com;
    serci=destination.example.com
ARC-Authentication-Results: i=2; chain=neutral
ARC-Seal: i=1; d=source.example.com; snr=naive.example.com
ARC-Authentication-Results: i=1
To: user@destination.example.com
]]></artwork>
        <t>The global Chain verification result is <em>neutral</em> and the message is considered SeRCi <em>unauthenticated</em>.  The constructed path is [source.example.com, naive.example.com, intermediary.example.com, destination.example.com].</t>
      </section>
      <section anchor="mbp-spammer-replay-mbp">
        <name>MBP ==&gt; Spammer ; Replay ==&gt; MBP</name>
        <t>Final headers as seen by the victim ADMD after replay injection to victim.example.com domain.</t>
        <artwork><![CDATA[
ARC-Seal: i=3; d=victim.example.com
ARC-Authentication-Results: i=3; chain=fail
ARC-Seal: i=2; d=destination.example.com
ARC-Authentication-Results: i=2; serci=pass; chain=pass
ARC-Seal: i=1; d=source.example.com;
    serci=destination.example.com
ARC-Authentication-Results: i=1
To: user@destination.example.com
]]></artwork>
        <t>Due to the path discontinuity, the global Chain verification result is <em>fail</em> and the message is considered SeRCi <em>unauthenticated</em>.  The constructed path is [serci-fail].</t>
      </section>
      <section anchor="spammer-gullible-forwarder-mbp">
        <name>Spammer ==&gt; Gullible Forwarder ==&gt; MBP</name>
        <t>In this example the spammer does not participate in ARC or this protocol.  The spammer forwards a message through an permissive cloud provider gullible.forwarder.com to reach the inbox of some user at desination.example.com.  Spammer selects a victim domain that uses email services of gullible.forwarder.com such that they include the IPs of gullible.forwarder.com in their SPF policy.  While the spammer cannot SPF authenticate at inbound to gullible.forwarder.com, they can SPF authenticate at inbound to destination.example.com, hence the SPF upgrade attack.</t>
        <artwork><![CDATA[
ARC-Seal: i=2; d=destination.example.com
ARC-Authentication-Results: i=2; spf=pass; serci=pass; chain=pass
ARC-Seal: i=1; d=gullible.forwarder.com;
    serci=destination.example.com
ARC-Authentication-Results: i=1; spf=neutral
To: user@destination.example.com
From: spoofed_user@victim.example.com
]]></artwork>
        <t>While SPF and consequently DMARC is <em>pass</em> at the destination, SeRCi/Chain verification result is <em>neutral</em> because the message was not originated at victim.example.com.  A DMARC evaluation would likely pick the SPF result.  Instead a better approach might be to use the path based reputation system.  The spammy forwarding path is [spf-neutral, gullible.forwarder.com, destination.example.com] which include evidence of the spammer.  Contrasts that to the path from a normal message delivery by victim.example.com using their cloud provider which either would look like [victim.example.com, destination.example.com] or [victim.example.com, gullible.forwarder.com, destination.example.com].  Both would be distinct from the spammer forwarding flow in a path aware reputation system.</t>
        <t>The spammer may attempt to confuse the receiver by replaying ARC headers before forwarding to gullible.forwarder.com.  This would change the SeRCi/Chain verification result to <em>fail</em> and the constructed path very much [arc-fail, gullible.forwarder.com, destination.example.com].  As gullible.forwarder.com is ARC and SeRCi aware, it would indicate that the replayed ARC headers would not pass ARC verification.</t>
      </section>
      <section anchor="mbp-modifying-forwarder-mbp">
        <name>MBP ==&gt; Modifying Forwarder ==&gt;MBP</name>
        <t>This demonstrates a spammy message where the forwarder modifies the message content, representing for example a mailing list adding a footer.</t>
        <artwork><![CDATA[
ARC-Seal: i=3; d=destination.example.com
ARC-Authentication-Results: i=3; serci=pass; chain=neutral
ARC-Seal: i=2; d=modifying.example.com;
    serci=destination.example.com
ARC-Authentication-Results: i=2; chain=pass
ARC-Seal: i=1; d=source.example.com;
    serci=modifying.example.com
ARC-Authentication-Results: i=1
To: user@destination.example.com
]]></artwork>
        <t>While the global Chain verification result is <em>pass</em> and the message is considered SeRCi <em>authenticated</em>, the modified message body change is visible via the modified body algorithm.  The constructed path is [source.example.com, modified-message-body, intermediary.example.com, destination.example.com] where we embellish the path with the modification result.  The set of contributing domains associated with the spammy message is {source.example.com, modifying.example.com}.</t>
        <t>A different message may travel along the same forwarding path but is not modified by the forwarder.  That non-modifying forwarder constructed path is: [source.example.com, intermediary.example.com, destination.example.com], and is distinct from above.  The set of contributing domains associated with the message content is now {source.example.com}.</t>
      </section>
      <section anchor="spammer-relay-mbp">
        <name>Spammer ==&gt; Relay ==&gt;MBP</name>
        <t>This demonstrates a spammer sending a message through a relay to a destination MBP.</t>
        <artwork><![CDATA[
ARC-Seal: i=2; d=destination.example.com
ARC-Authentication-Results: i=2; spf=pass; serci=pass; chain=pass
ARC-Seal: i=1; d=relay.forwarder.com;
    serci=destination.example.com
ARC-Authentication-Results: i=1; spf=neutral; relay=pass 
    policy.rfid=relay+flow+id
To: user@destination.example.com
From: spoofed_user@victim.example.com
]]></artwork>
        <t>As with the above, a better approach might be to use the path based reputation system where the relay flow identifier is used to replace the domain in the path .  The spammy forwarding path is [spf-neutral, relay+flow+id, destination.example.com].  Reputation analysis using this identifier with the relay flow identifier will be more specific than the domain based approach.</t>
      </section>
    </section>
    <section anchor="dmarc">
      <name>DMARC</name>
      <t>These protocols can act as authenticators for DMARC <xref target="RFC7489"/>.  In particular SeRCi can act similarly to                                                                                                                                                                                                                                                                                                                                 requires alignment with the <em>From</em> header domain and SeRCi originator's ARC-Seal "d=" domains at ARC set "i=1".  Assuming From alignment, a SeRCi/Chain building global pass on a message will indicate a DMARC pass.  As noted in the prior example, when available SeRCi/Chain can provide more accurate authentication than SPF or DKIM, and it is up to local policy to determine preferencing or exclusion of results.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions yet.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative 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">
            <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="RFC8617">
        <front>
          <title>The Authenticated Received Chain (ARC) Protocol</title>
          <author fullname="K. Andersen" initials="K." surname="Andersen">
            <organization/>
          </author>
          <author fullname="B. Long" initials="B." role="editor" surname="Long">
            <organization/>
          </author>
          <author fullname="S. Blank" initials="S." role="editor" surname="Blank">
            <organization/>
          </author>
          <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy">
            <organization/>
          </author>
          <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="RFC7489">
        <front>
          <title>Domain-based Message Authentication, Reporting, and Conformance (DMARC)</title>
          <author fullname="M. Kucherawy" initials="M." role="editor" surname="Kucherawy">
            <organization/>
          </author>
          <author fullname="E. Zwicky" initials="E." role="editor" surname="Zwicky">
            <organization/>
          </author>
          <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="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 "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>
      <reference anchor="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="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">
            <organization/>
          </author>
          <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="RFC5598">
        <front>
          <title>Internet Mail Architecture</title>
          <author fullname="D. Crocker" initials="D." surname="Crocker">
            <organization/>
          </author>
          <date month="July" year="2009"/>
          <abstract>
            <t>Over its thirty-five-year history, Internet Mail has changed significantly in scale and complexity, as it has become a global infrastructure service.  These changes have been evolutionary, rather than revolutionary, reflecting a strong desire to preserve both its installed base and its usefulness.  To collaborate productively on this large and complex system, all participants need to work from a common view of it and use a common language to describe its components and the interactions among them.  But the many differences in perspective currently make it difficult to know exactly what another participant means.  To serve as the necessary common frame of reference, this document describes the enhanced Internet Mail architecture, reflecting the current service.  This memo provides  information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5598"/>
        <seriesInfo name="DOI" value="10.17487/RFC5598"/>
      </reference>
      <reference anchor="RFC4648">
        <front>
          <title>The Base16, Base32, and Base64 Data Encodings</title>
          <author fullname="S. Josefsson" initials="S." surname="Josefsson">
            <organization/>
          </author>
          <date month="October" year="2006"/>
          <abstract>
            <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4648"/>
        <seriesInfo name="DOI" value="10.17487/RFC4648"/>
      </reference>
      <reference anchor="RFC4954">
        <front>
          <title>SMTP Service Extension for Authentication</title>
          <author fullname="R. Siemborski" initials="R." role="editor" surname="Siemborski">
            <organization/>
          </author>
          <author fullname="A. Melnikov" initials="A." role="editor" surname="Melnikov">
            <organization/>
          </author>
          <date month="July" year="2007"/>
          <abstract>
            <t>This document defines a Simple Mail Transport Protocol (SMTP) extension whereby an SMTP client may indicate an authentication mechanism to the server, perform an authentication protocol exchange, and optionally negotiate a security layer for subsequent protocol interactions during this session.  This extension includes a profile of the Simple Authentication and Security Layer (SASL) for SMTP.</t>
            <t>This document obsoletes RFC 2554.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4954"/>
        <seriesInfo name="DOI" value="10.17487/RFC4954"/>
      </reference>
    </references>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks goes to Brandon Long, John R. Levine, Murray S. Kucherawy, Emanuel Schorsch and Bruce Nan for their knowledgeable feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
YKfrzI5z3Z3LcVmwwv8HRyvlcMy/AAA=

-->

</rfc>
