<?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.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chuang-replay-resistant-arc-00" category="exp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.0 -->
  <front>
    <title abbrev="Replay Resistant ARC">Replay Resistant Authenticated Receiver Chain</title>
    <seriesInfo name="Internet-Draft" value="draft-chuang-replay-resistant-arc-00"/>
    <author fullname="Weihaw Chuang">
      <organization>Google, Inc.</organization>
      <address>
        <email>weihaw@google.com</email>
      </address>
    </author>
    <author fullname="Allen Robin">
      <organization>Google, Inc.</organization>
      <address>
        <email>arobins@google.com</email>
      </address>
    </author>
    <date year="2022" month="October" day="03"/>
    <workgroup>Independent Stream</workgroup>
    <keyword>DKIM</keyword>
    <keyword>ARC</keyword>
    <keyword>Replay</keyword>
    <abstract>
      <t>DKIM (<eref target="https://tools.ietf.org/html/rfc6376">RFC6376</eref>) is an IETF standard for the cryptographic protocol to authenticate email at the domain level and protect the integrity of messages during transit.  <eref target="https://www.rfc-editor.org/rfc/rfc6376.html#section-8.6">Section 8.6</eref> 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 (<eref target="https://www.rfc-editor.org/rfc/rfc8617.html">RFC8617</eref>).  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.</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.  These results 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.</t>
    </section>
    <section anchor="terminology-and-definitions">
      <name>Terminology and Definitions</name>
      <t>Acronyms</t>
      <ul spacing="normal">
        <li>ARC (<eref target="https://www.rfc-editor.org/rfc/rfc8617.html">RFC8617</eref>) - is a protocol that is meant to resolve some of the issues for DMARC (<eref target="https://datatracker.ietf.org/doc/html/rfc7489">RFC7489</eref>) 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 (<eref target="https://www.rfc-editor.org/rfc/rfc8601">RFC8601</eref>) by Administrative Management Domain (ADMD) and a versioning mechanism for them.</li>
        <li>Authentication-Results (<eref target="https://www.rfc-editor.org/rfc/rfc8601">RFC8601</eref>)- A header containing a list of validation results and comments.</li>
        <li>DKIM (<eref target="https://tools.ietf.org/html/rfc6376">RFC6376</eref>)- IETF standard for the cryptographic protocol to authenticate email at the domain level and protect the integrity of messages during transit.</li>
        <li>DKIM replay- <eref target="https://tools.ietf.org/html/rfc6376">RFC6376</eref> <eref target="https://www.rfc-editor.org/rfc/rfc6376.html#section-8.6">Section 8.6</eref> 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>
        <li>DMARC (<eref target="https://datatracker.ietf.org/doc/html/rfc7489">RFC7489</eref>)- 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 To, Cc and Forwarded-to 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 anchor="arc-set-improvements">
      <name>ARC Set Improvements</name>
      <t>This protocol uses ARC (<eref target="https://www.rfc-editor.org/rfc/rfc8617.html">RFC8617</eref>) to describe all ADMDs using the ARC set number as the ADMD version numbers.  The initial ARC set "i=1" is defined for the message originator, and signs for the outbound message with an empty ARC-Authentication-Results.  Traditionally ARC signing happens on inbound, however with these changes ARC implementations should be modified to sign on outbound as well that enables marking origination and forwarding.  This protocol adds additional new ARC-Seal tag/values to describe protocol settings and new ARC-Authentication-Results status and comments.  This protocol also heavily leverages ARC sealing and message signing which in turn leverages DKIM cryptographic primitives.</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 Bcc 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 Forwarded-to 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 Forwarded-to 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 Forwarded-to recipient to maintain privacy between recipients.  Subsequent forwarders MUST not strip the Forwarded-to header from the message.  To handle the email forwarder and mailing list scenario, we also use the Forwarded-to 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 Forwarded-to 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 shouldn't 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 neutral and SHOULD treat success as passes.  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 may 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 To, or Cc headers, and in this case also adds a Forwarded-to 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 To, Cc and Forwarded-to 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=pass/fail/neutral.</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 "pass" if the recipient verification passes.</li>
        </ul>
        <t>ARC-Authentication-Results tags</t>
        <ul spacing="normal">
          <li>"dara=": Value of "pass" if recipient validation passes, otherwise "fail".  In some circumstances this tag/value may not be set or be treated as "neutral".</li>
        </ul>
      </section>
      <section anchor="header-examples">
        <name>Header Examples</name>
        <section anchor="mbp-mailing-list-mbp">
          <name>MBP-Mailing-List-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-MBP-Replay-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-Naive-Forwarder-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 (<eref target="https://datatracker.ietf.org/doc/html/rfc7208">RFC7208</eref>) 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>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 base64 message hash used in the outbound ARC-Message-Signature, destination domain as defined in the next paragraph, and timestamp.  That signature then should be base64 encoded and disclosed to the receiver as:</t>
        <artwork><![CDATA[
SERCI-SIGNATURE <sender domain> <selector> <signature> 
]]></artwork>
        <t>where domain corresponds to the sender's DKIM domain and selector that is used to find the DKIM public key DNS record.  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(signsender(<base64(message hash),destination domain,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 (<eref target="https://www.rfc-editor.org/rfc/rfc8601">RFC8601</eref>) which enables tracing this domain from sender to receiver as described later.  The domain name is specified <tt>serci=&amp;lt;domain&gt;</tt> in the DNS policy record.  Once discovered this domain is put in the sender's ARC-Seal as <tt>serci=&amp;lt;domain&gt;</tt>, 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 RFC822 FROM 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), in addition to return OK , the receiver adds the signature as part of the SeRCi  ARC-Authentication-Results as a comment:</t>
        <artwork><![CDATA[
ARC-Authentication-Results i=1; serci=<pass|fail> 
        (<sender domain>,<selector>,<base64(message hash)>,
         <timestamp>,<signature>); 
]]></artwork>
        <t>The destination domain present in the signature is the same as that ADMD's ARC-Seal "d=" domain.  The domain, selector, message-hash, timestamp and the signature should allow a 3rd party to verify the signature given a public key.  Verification success or failure would also be indicated in the ARC-Authentication-Results for SeRCi as "<tt>serci=&lt;pass|fail\&gt;</tt>".  The receiver indicates agreement i.e. verification success with the sender's signed signature by sealing the signature and indicating a passing result.   A 3rd party can take the ARC-seal and SeRCi signatures  and verify them to prove that a message was sent from the sender to receiver at the given time.</t>
        <t>If a sender does not provide a SERCI-SIGNATURE, most likely this is because the sender is unaware of the protocol.  However a receiver MAY lookup the sender's SeRCi policy contained in the DNS txt record.  If it detects such an active policy yet SERCI-SIGNATURE was not issued, then the receiver may note a SeRCi ARC-Authentication-Results verification failure.  Lack of SERCI-SIGNATURE potentially may happen due to MiTM in the SMTP transaction even with TLS.</t>
        <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 tags</t>
          <ul spacing="normal">
            <li>"serci=": Value of "pass" if sender/recipient signing validation succeeds, otherwise "fail".</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 (source.example.com, message_hash_base64, selector, 1664511950175, 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="chaining">
      <name>Chaining</name>
      <t>A receiver may check that a message was forwarded from the originator to it without discontinuities, and as intended by the originator.  With SeRCi the sender defines a tag "serci=" with a value of the  intended destination domain.  If a discontinuity is detected, that 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.  Moreover the path that the message traverses can be used as the message flow identifier in a reputation system.  It can help differentiate benign message flows from malicious ones to help identify a different form of replay.  If the originator is malicious and intends for a message to be replayed even as part of an identified ADMD path, a path based reputation system can better segregate those malicious messages than a domain based one.</t>
      <t>We define nodes of the path as the ARC-Seal "d=" identities and form edges from SeRCi destination domain identities.  Because building the edges of a path is recursive, we call this chain building.  The edge is defined as a pair of nodes n1, n2 where n1 is some ARC-Seal "d=" domain and the "SeRCi=" domain is n2.  This assumes that validation results from SeRCi and potentially DARA have already run and the results already populate the ARC-Authentication-Results.  Chain building starts at the origination at ARC set "i=1", and walk through the ARC headers to the final receiver's ARC set "i=N".  First the verifier looks up the SeRCi policy associated with the ARC set "i=1" ARC-Seal "d=" domain.  If there is a valid SeRCi policy, then chain building can proceed.  At ARC set "i=1" only the ARC seal and message-signature is checked.  Starting at ARC set "i=2",  path verifier MUST evaluate the local result, meaning the ARC seal, message-signature and SeRCi verification results, and the prior ARC set results are correct, and take the AND of the results.   If any one of them is a failure or neutral, the path result is a failure or neutral.   If the SeRCi result is missing, the path verifier checks if there was "snr=" tag at that node or prior node, then treats the SeRCi result as neutral, to tolerate the naive receiver.  If not then treat the SeRCi result as missing and hence a fail.  Otherwise if all the local results passed, then the current path results is a pass.  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>)  The path verifier SHOULD incorporate meaning AND the DARA local results if available as well.  In the local evaluation, the verifier SHOULD independently verify the SeRCi signature instead of taking the result from ARC-Authentication-Result and having to trust an externally generated result.  The path verifier then evaluates the next ARC set results until it reaches the final recipient to compute a global result.  That global result is published in the final receiver's at ARC set "i=N" ARC-Authentication-Results as a "chain=" result.  The chain builder will internally collect the list of ARC-Seal "d=" nodes from ARC set 1 to N for when there is a "serci=" edge defined and passing result.  The "snr=" domain may also be used to fill in a naive domain in the path.  The path is for reputation building but this is not added to ARC-Authentication-Results.</t>
      <section anchor="definitions-2">
        <name>Definitions</name>
        <t>ARC-Authentication-Results tags</t>
        <ul spacing="normal">
          <li>"chain=": Value of "pass" if local results and prior nodes are all passes, otherwise if "snr=" was present in the flow then "neutral", else "fail".</li>
        </ul>
      </section>
      <section anchor="header-examples-1">
        <name>Header Examples</name>
        <section anchor="mbp-mailing-list-mbp-1">
          <name>MBP-Mailing-List-MBP</name>
          <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=terminator.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=terminator.example.com
ARC-Authentication-Results: i=3; serci=pass; chain=pass
ARC-Seal: i=2; d=mailinglist.example.com; serci=terminator.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 path verification result is "pass".  The constructed path is (originator.example.com, mailinglist.example.com, terminator.example.com).</t>
        </section>
        <section anchor="mbp-naive-forwarder-aware-forwarder-mbp">
          <name>MBP-Naive-Forwarder-Aware-Forwarder-MBP</name>
          <t>This example includes naive forwarder naive.example.com that doesn't not support SeRCi.  This is taken after the last 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 path verification result is "neutral".  The constructed path is (source.example.com, naive.example.com, intermediary.example.com, destination.example.com).</t>
        </section>
        <section anchor="mbp-mbp-replay-mbp-1">
          <name>MBP-MBP-Replay-MBP</name>
          <t>Final headers as seen by the victim MBP 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 path verification result is "fail".  The constructed path is (source.example.com, destination.example.com).</t>
        </section>
      </section>
    </section>
    <section anchor="dmarc">
      <name>DMARC</name>
      <t>These protocols can act as authenticators for DMARC (<eref target="https://datatracker.ietf.org/doc/html/rfc7489">RFC7489</eref>).  In particular SeRCi can act similarly to SPF in authenticating peers, while Chain's path is similar to DKIM in being tolerant of forwarding.  This protocol modifies DMARC to permit the SeRCi and Chain to authenticate for DMARC.  It requires alignment with the RFC822 domain for SeRCi sender's ARC-Seal "d=" domains.   With Chain, that is further restricted to the originating sender's domain at ARC set "i=1".</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>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks goes to Brandon Long, John R. Levine, Murray S. Kucherawy and Bruce Nan for their sage advice.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
