<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.0.28 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC1345 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1345.xml">
<!ENTITY RFC5234 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
<!ENTITY RFC5321 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5321.xml">
<!ENTITY RFC5322 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5322.xml">
<!ENTITY RFC3463 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3463.xml">
<!ENTITY RFC7601 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7601.xml">
<!ENTITY RFC7208 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7208.xml">
<!ENTITY RFC6651 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6651.xml">
<!ENTITY RFC5863 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5863.xml">
<!ENTITY RFC6377 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6377.xml">
<!ENTITY RFC5585 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5585.xml">
<!ENTITY RFC6376 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6376.xml">
<!ENTITY RFC4686 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4686.xml">
<!ENTITY RFC5598 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5598.xml">
<!ENTITY RFC5226 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY RFC2142 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2142.xml">
<!ENTITY RFC2606 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2606.xml">
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC6982 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6982.xml">
<!ENTITY RFC7489 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7489.xml">
<!ENTITY RFC7960 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7960.xml">
<!ENTITY SELF "[I-D.ARC]">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-dmarc-arc-protocol-07" category="std">

  <front>
    <title abbrev="ARC-Protocol">Authenticated Received Chain (ARC) Protocol</title>

    <author initials="K." surname="Andersen" fullname="Kurt Andersen">
      <organization>LinkedIn</organization>
      <address>
        <postal>
          <street>1000 West Maude Ave</street>
          <city>Sunnyvale</city>
          <region>California</region>
          <code>94085</code>
          <country>USA</country>
        </postal>
        <email>kurta@linkedin.com</email>
      </address>
    </author>
    <author initials="B." surname="Long" fullname="Brandon Long" role="editor">
      <organization>Google</organization>
      <address>
        <email>blong@google.com</email>
      </address>
    </author>
    <author initials="S." surname="Jones" fullname="Steven Jones" role="editor">
      <organization>TDP</organization>
      <address>
        <email>smj@crash.com</email>
      </address>
    </author>
    <author initials="M." surname="Kucherawy" fullname="Murray Kucherawy" role="editor">
      <organization>TDP</organization>
      <address>
        <email>superuser@gmail.com</email>
      </address>
    </author>

    <date year="2017" month="July" day="21"/>

    <area>art</area>
    <workgroup>DMARC Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The Authenticated Received Chain (ARC) protocol creates a mechanism whereby a series
of handlers of a message can conduct authentication of a message as it passes
among them on the way to its destination, and record the status of that
authentication at each step along the handling path, for use by the final
recipient in making choices about the disposition of the message.</t>



    </abstract>


  </front>

  <middle>


<section anchor="intro" title="Introduction">

<t>Modern email authentication techniques such as the Sender Policy Framework
(SPF) <xref target="RFC7208"/> and DomainKeys Identified Mail (DKIM) <xref target="RFC6376"></xref> have become
ubiquitious.  However, they are stymied by a small number of common
applications, most notably mailing list managers, as these applications have
handling properties that prevent these authentication schemes from universal
effectiveness.  These issues are described in substantial detail in those
protocols’ defining documents as well as in <xref target="RFC6377"/>.</t>

<t>In an effort to reduce the success of fraudulent email campaigns, there has
been an effort to develop and deploy technologies that use SPF and DKIM to
assure legitimate use of the identity of the apparent message author, i.e., the
visible “From:” field in a message.  To this end, Domain-based Mail
Authentication, Reporting and Compliance (DMARC) <xref target="RFC7489"/> has been developed
and deployed.  However, its deployment in environments where mailing lists are
used has had the negative impacts predicted in the documents listed above.</t>

<t>What is needed is a mechanism by which legitimate alteration of a message,
invalidating SPF and DKIM, does not ultimately result in a rejection of an
email message on delivery.  An Authenticated Received Chain (ARC), described
here, provides a superset of the functionality of DKIM in order to provide to
the final message recipient a more complete view into the handling chain of a
message and the points in that chain where alterations of the content may have
occurred.  Equipped with this more compelte information, the final recipient
can make a more informed handling choice, reducing or eliminating the
false postives inherent in use of DKIM and/or SPF themselves.</t>

</section>
<section anchor="overview" title="Overview">

<t>In DKIM, every participating signing agent attaches a signature that is based
on the content of the message, local policy, and the domain name of the
participating Administrative Management Domain (ADMD).  Any verifier can
process such a signature; a verified signature means the message content that
was “covered” by the signature has not been altered since the signature was
applied.  The signatures themselves are generally independent of one another.</t>

<t>By contrast, this protocol seeks to have each signature be able to convey the
following pieces of information:</t>

<t><list style="numbers">
  <t>As with DKIM, an assertion that, for a passing signature, the domain name
in the signature takes some responsibility for handling of the message and that
the message is unchanged since that signature was applied;</t>
  <t>A further assertion that, at the time that same ADMD processed the message,
the various assertions already attached to the message by other ADMDs were or
were not valid;</t>
  <t>A further assertion that combines and protects the above against alteration
by later handlers.</t>
</list></t>

<t>This protocol accomplishes each of these by adding a new header field to the
message for each of them, as follows:</t>

<t><list style="symbols">
  <t>ARC-Authentication-Results:  (referred to below as “AAR”) virtually identical
in syntax to an Authentication-Results field <xref target="RFC7601"/>, this field records
the results of all message authentication checks done by the recording ADMD at
the time the message arrived;</t>
  <t>ARC-Message-Signature:  (referred to below as “AMS”) virtually identical in
syntax to DKIM-Signature, this field contains the assertions about the message
header and body as they existed at the time of handling by the ADMD adding it;
and</t>
  <t>ARC-Seal:  (referred to below as “AS”) highly similar in structure and format
to a DKIM-Signature, this field applies a digital signature that protects the
integrity of all three of these new fields when they are added by an ADMD, plus
all instances of these fields added by prior ADMDs.</t>
</list></t>

<t>A distinguishing feature of all of these is that an ARC participant always adds
all of them before relaying a message to the next handling agent en route to
its destination.  Moreover, as described in <xref target="i-defn"/>, they each have an
“instance” number that increases with each ADMD in the handling chain so that
their original order can be preserved and the three of them can be processed as
a group.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>This section defines terms used in the rest of the document.</t>

<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>Readers are encouraged to be familiar with the contents of <xref target="RFC5598"/>, and in
particular, the potential roles of intermediaries in the delivery of email.</t>

<t>Syntax descriptions use Augmented BNF (ABNF) <xref target="RFC5234"/>.</t>

<t>A single group of the header fields introduced in <xref target="overview"/> is called an “ARC
Set”, and the complete sequence of these groups is called an “Authenticated
Received Chain” or merely an “ARC chain”.  Although the “Received” header field is
typically not included in the signed content, the name is based on the notion
that this is in essence a cryptographically signed series of header fields that
attest to the handling chain of a message much as Received fields always have.</t>

</section>
<section anchor="i-defn" title="Instance (‘i=’) Tags">

<t>The header fields comprising a single ARC set are identified by the presence of
a string in the value portion of the header field that complies with
the “tag-spec” ABNF found in Section 3.2 of <xref target="RFC6376"/>.  The tag-name is always
the single character “i” and the value is the text representation of a positive
integer, indicating the position in the ARC sequence this set occupies, where
the first ARC set is numbered 1.  In ABNF terms:</t>

<figure><artwork><![CDATA[
   instance = [FWS] %x69 [FWS] "=" [FWS] 1*DIGIT [FWS] ";"
]]></artwork></figure>

<t>At any delivery stage, it is an error if any ARC set is invalid (i.e., does not
contain exactly one of the three header fields defined by this protocol).</t>

<t>Note that because the AMS and AS header field values are made up of tag-spec
constructs, the i= tag may be found anywhere within the header field value, but is
represented throughout this spec in the initial position for convenience. Implementers
SHOULD seek to start with the i= tag to facilitate human inspection of the headers.</t>

<section anchor="i-hdr" title="Valid Range for Instance Tags">

<t>The ‘i’ tag value can range from 1-1024 (inclusive).</t>

<t>ARC implementations MUST support at least ten (10) intermediary steps.</t>

<t>More than fifty (50) intermediaries is considered extremely unlikely so
ARC chains with more than fifty intermediaries may be marked with “cv=fail”.</t>

</section>
</section>
<section anchor="the-arc-header-fields" title="The ARC Header Fields">

<t>The three header fields that are part of this specification borrow heavily from
existing specifications.  Rather than repeating all of the formal definitions
that are being recycled in ARC, this document instead only describes and
specifies changes in syntax and semantics.</t>

<section anchor="aar-defn" title="ARC-Authentication-Results (AAR)">

<t>The ARC-Authentication-Results header field is defined.  It is syntactically
and semantically identical to an Authentication-Results header field <xref target="RFC7601"/> (A-R),
as is the mechanism by which it is constructed, with the following exception:</t>

<t><list style="symbols">
  <t>There is an “i” tag, as described in <xref target="i-defn"/>.</t>
</list></t>

<t>The instance identifier MUST be separated from the rest of the Authentication-Results
value contents with a semi-colon (‘;’, 0x3b).</t>

<t>An ARC signer generates this field in the same way that a conventional
A-R field would be generated. Because the AAR is designed for machine-based consumption
over the course of a message’s transit through a series of mediators and to facilitate
troubleshooting of problematic sources by sending organizations, two additional 
fields of data SHOULD be added to the normal A-R content, if available to the A-R
generating system:</t>

<t><list style="symbols">
  <t>source.ip - The connecting client IP address from which the message is received; and</t>
  <t>header.s - The selector value associated with each dkim signature (added to the 
dkim or arc data sections of the A-R/AAR record</t>
</list></t>

<t>The purpose of this header field is to incorporate into the record the success
or failure of any authentication done on the message upstream of the
participating ADMD, to validate and continue the authentication chain.</t>

<t>In processing, some architectures will generate multiple A-R records for the 
same authserv-id. In such cases, the resinfo value from each of the A-R records should 
be concatenated into a single record just as they would have been if they were
generated in a single A-R record.</t>

</section>
<section anchor="ams-defn" title="ARC-Message-Signature (AMS)">

<t>The ARC-Message-Signature header field is defined.  It is syntactically and
semantically identical to a DKIM-Signature header field <xref target="RFC6376"/>, as is the
mechanism by which it is constructed, with the following exceptions:</t>

<t><list style="symbols">
  <t>There is an “i” tag, as described in <xref target="i-defn"/>.</t>
  <t>There is no “v” tag.</t>
  <t>ARC-Seal header fields MUST never be included in the content covered
by the signature in this header field.</t>
</list></t>

<t>The AMS SHOULD include any DKIM-Signature header fields already present on the
message in the header fields covered by this signature.</t>

<t>Authentication-Results header fields SHOULD NOT be included since they are
likely to be deleted by downstream ADMDs, thereby breaking the AMS signature.</t>

<t>As with a DKIM-Signature, the purpose of this header field is to allow the ADMD
generating it to take some responsibility for handling this message as it
progresses toward delivery.</t>

</section>
<section anchor="as-defn" title="ARC-Seal (AS)">

<t>The ARC-Seal header field is defined.  It is syntactically and semantically
similar to a DKIM-Signature field, with the following exceptions:</t>

<t><list style="symbols">
  <t>There is an “i” tag, as described in <xref target="i-defn"/>.</t>
  <t>The ARC-Seal covers none of the body content of the message.  It only covers
specific header fields.  (See below: <xref target="implicit-as-h"/>.)  As a result, no body
canonicalization is done.  Further, only “relaxed” header canonicalization
(Section 3.4.2 of <xref target="RFC6376"/>) is used.</t>
  <t>The only supported tags are “i” (<xref target="i-defn"/> supercedes the <xref target="RFC6376"/> 
definition), and “a”, “b”, “d, “s”, “t”. The latter 5 tag definitions are 
copied from Section 3.5 of <xref target="RFC6376"/>.</t>
  <t>An additional tag, “cv” is defined.  (See below: <xref target="cv-defn"/>)</t>
</list></t>

<t>The purpose of this field is to assure the integrity of the ARC set being added
by the ADMD generating this header field, and moreover to ensure no tampering
with the ARC overall.</t>

<section anchor="cv-defn" title="The ‘cv’ Tag">

<t>A new tag “cv” (chain validation) is defined, which indicates the state of the
ARC chain as evaluated when it arrived at the ADMD adding this header field.
It includes one of three possible values:</t>

<t><list style="symbols">
  <t>none:  There was no chain on the message when it arrived for validation;
typically occurs when the message arrives at a Message Transfer Agent (MTA)
from a Message Submission Agent (MSA) or when any upstream MTAs may not be
participating in ARC handling;</t>
  <t>fail:  The message has a chain whose validation failed;</t>
  <t>pass:  The message has a chain whose validation succeeded.</t>
</list></t>

<t>In ABNF terms:</t>

<figure><artwork><![CDATA[
 seal-cv-tag = %x63.76 [FWS] "=" [FWS]
               ("none" / "fail" / "pass")
]]></artwork></figure>

</section>
<section anchor="implicit-as-h" title="Selected Header Fields">

<t>The ARC-Seal signature is an encryption of the hash of the concatenation of the
canonicalized form of the ARC sets present on the message at the time of
sealing, in increasing instance order, starting at 1, including the one being
added at the time of sealing the message.</t>

<t>Within a set, the header fields are presented in the following order:</t>

<t><list style="numbers">
  <t>ARC-Authentication-Results</t>
  <t>ARC-Message-Signature</t>
  <t>ARC-Seal</t>
</list></t>

<t>Where the ARC-Seal is the one being generated, it is presented to the hash
function in its final form except with an empty “b=” value, in the same manner
by which a DKIM-Signature signs itself.</t>

</section>
</section>
</section>
<section anchor="cv-calc" title="Verifier Actions">

<t>The verifier takes the following steps to determine the current state of the
ARC on the message:</t>

<t><list style="numbers">
  <t>Collect all ARC sets currently on the message.  If there were none, the ARC
state is “none” and the algorithm stops here.</t>
  <t>If any ARC set is invalid (e.g., does not contain exactly one of each of the
three ARC-specific header fields), then the chain state is “fail” and the
algorithm stops here.</t>
  <t>Conduct verification of the ARC-Message-Signature header field bearing the
highest instance number.  If this verification fails, then the chain state is
“fail” and the algorithm stops here.</t>
  <t>For each ARC-Seal from the “N”th instance to the first, apply the following
logic:
  <list style="numbers">
      <t>If the value of the “cv” tag on that seal is “fail”, the chain state is
“fail” and the algorithm stops here.</t>
      <t>If the instance number being processed is greater than 1 and the value of the
“cv” tag is “none”, the chain state is “fail” and the algorithm stops here.</t>
      <t>If the instance number being processed is 1 and the value of the
“cv” tag is not “none”, the chain state is “fail” and the algorithm stops here.</t>
      <t>Prepare a hash function corresponding to the “a” tag of the ARC-Seal.</t>
      <t>Compute the canonicalized form of the ARC header fields, in the order
described in <xref target="implicit-as-h"/>, using the “relaxed” header
canonicalization defined in (Section 3.4.2 of <xref target="RFC6376"/>.  Pass them to the
hash function.</t>
      <t>Retrieve the final digest from the hash function.</t>
      <t>Retrieve the public key identified by the “s” and “d” tags in the
ARC-Seal, as described in <xref target="key-mgmt"/>.</t>
      <t>Determine whether the signature portion (“b” tag) of the ARC-Seal and
the digest computed above are valid according to the public key.</t>
      <t>If the signature is not valid, the chain state is “fail” and the
algorithm stops here.</t>
    </list></t>
  <t>If all seals pass validation, then the chain state is “pass”, and the
algorithm is complete.</t>
</list></t>

<t>The verifier should record the cv state for subsequent use by any sealing which
may be done later (potentially after message modification) within the same
trust boundary. The cv state may be recorded by sealing at the time of verification
in an additional ARC set or may be recorded out of band depending on the 
architecture of the ADMD.</t>

</section>
<section anchor="signer-actions" title="Signer Actions">

<t>This section includes a walk-through of the actions an ARC signing
implementation takes when presented with a message.</t>

<t>The signing agent should undertake the following steps:</t>

<t><list style="numbers">
  <t>Do any authentication steps that the ADMD normally does:
  <list style="numbers">
      <t>If a message is traveling within the same trust boundary, this would
include any transitive trust conveyance with the message;</t>
      <t>If a message is coming from outside the same trust boundary, this would
include any SPF / DKIM / DMARC / other authentication evaluation steps.</t>
    </list></t>
  <t>Do any DKIM signing or authentication assertion steps that the ADMD normally
does.</t>
  <t>Generate and optionally attach to the message an Authentication-Results
header field using the ADMD’s authserv-id (see Section 2.5 of <xref target="RFC7601"/>)
indicating whatever authentication might have been done by the MTA, or possibly
indicate that none was done.
  <list style="numbers">
      <t>If an ARC chain exists on the message, then set “N” equal to the highest
instance number found on the chain (i=); otherwise set “N” equal to zero for
the following steps.</t>
    </list></t>
  <t>Generate and attach to the message an ARC-Authentication-Results header
field using instance number N+1 and the same content from the previous step.</t>
  <t>Generate and attach to the message an ARC-Message-Signature header field
using the general algorithm described in Section 5 of <xref target="RFC6376"/> and as modified
in <xref target="aar-defn"/> above, using instance number N+1.</t>
  <t>Generate and attach to the message an ARC-Seal header field using the
general algorithm described in <xref target="as-defn"/> above, using a chain validation
status as determined in <xref target="cv-calc"/> and instance number N+1.</t>
</list></t>

</section>
<section anchor="key-mgmt" title="Key Management">

<t>The public keys for ARC header fields follow the same requirements, syntax and
semantics as those for DKIM signatures, described in Section 3.6 of <xref target="RFC6376"/>.
Operators may use distinct selectors and/or domains for the ARC header fields
at their own discretion.</t>

</section>
<section anchor="usage-of-chain-validity" title="Usage of Chain Validity">

<section anchor="assessing-chain-validity-violations" title="Assessing Chain Validity Violations">

<t>There are a wide variety of ways in which the ARC set of header fields can be broken.
Receivers need to be wary of ascribing motive to such breakage although patterns
of common behaviour may provide some basis for adjusting local policy decisions.</t>

<t>This specification is exclusively focused on well-behaved, participating intermediaries
that result in a valid chain of ARC-related header fields. The value of such a well-formed,
valid chain needs to be interpreted with care since malicious content can be
easily introduced by otherwise well-intended senders through machine or account
compromises. All normal content-based analysis still needs to be performed on any
messages bearing a valid chain of ARC header sets.</t>

</section>
<section anchor="seal-failed" title="Marking and Sealing Invalid Chains">

<t>The header fields signed by the AS header field b= value in the case of a major
violation MUST be only the matching ‘i=’ instance headers created by the MTA
which detected the malformed chain, as if this newest ARC set was the only set
present. (This is the same procedure required for handling major/structural
validity problems.)</t>

</section>
<section anchor="dns-arc" title="Handling DNS Problems While Validating ARC">

<t>DNS failures to resolve or return data which is needed for ARC validation SHOULD
result in a 421 tempfail during the SMTP conversation with the sending system. 
Temporary or intermittent DNS problems will generally not be sufficiently transitory
to allow a mediator to obtain a different result during the ordinary transit
duration so it is better to have the source system queue the problematic message(s)
than to generate (potential) backscatter.</t>

<t>DNS-based failures to verify a chain are treated no differently than any other
ARC violation. They result in a cv=fail verdict.</t>

</section>
<section anchor="responding-to-arc-validity-violations" title="Responding to ARC Validity Violations">

<t>If a receiver determines that the ARC chain has failed, the
receiver MAY signal the breakage through the extended SMTP response code 5.7.7 <xref target="RFC3463"/> 
“message integrity failure” <xref target="ENHANCED-STATUS"/> and corresponding SMTP response code.</t>

</section>
<section anchor="recording-the-results-of-arc-evaluation" title="Recording the Results of ARC Evaluation">

<t>Receivers MAY add an “arc=[pass|fail|policy]” method annotation into a locally-affixed
Authentication-Results <xref target="RFC7601"/> header field along with any salient comment(s).</t>

<section anchor="arc-data" title="Output Information from an ARC Evaluation">

<t>The evaluation of a series of ARC sets results in the following data which MAY be
used to inform local-policy decisions:</t>

<t><list style="symbols">
  <t>A list of the “d=” domains found in the validated (== all) ARC-Seal header fields;</t>
  <t>The “d=” domain found in the most recent (highest instance number) AMS header field
(since that is the only one necessarily validated)</t>
</list></t>

<t>In the case of a failed chain, only the terminal ARC set is covered by the ARC-Seal
so the reporting is limited to the findings in that terminal ARC set.</t>

</section>
<section anchor="reporting-arc-effects-for-dmarc-local-policy-interim" title="Reporting ARC Effects for DMARC Local Policy - Interim">

<t>[[ Note: Discussion on the IETF DMARC-WG list has indicated some interest in more substantial
reporting for analytic purposes. To support that effort, the following guidance is 
provided only as an interim, minimal data set. A more complete reporting construct
will be specified in a related spec - TBD. (see also the note at <xref target="aar-defn"/>) ]]</t>

<t>Receivers SHOULD indicate situations in which ARC evaluation influenced the
results of their local policy determination. DMARC reporting of ARC-informed decisions
is augmented by adding a local_policy comment explanation containing the list
of data discovered in the ARC evaluation (<xref target="arc-data"/>):</t>

<figure><artwork><![CDATA[
<policy_evaluated>
  <disposition>delivered</disposition>
  <dkim>fail</dkim>
  <spf>fail</spf>
  <reason>
   <type>local_policy</type>
   <comment>arc=pass ams=d2.example d=d2.example,d1.example</comment>
  </reason>
</policy_evaluated>
]]></artwork></figure>

<t>In the suggested sample, d2.example is the sealing domain for ARC[2] and 
d1.example is the sealing domain for ARC[1].</t>

<t>Mediators SHOULD generate DMARC reports on messages which transit their system 
just like any other message which they receive. This will result in multiple
reports for each mediated message as they transit the series of handlers.
DMARC report consumers should be aware of this behaviour and make the
necessary accommodations.</t>

</section>
</section>
</section>
<section anchor="supporting-alternate-signing-algorithms" title="Supporting Alternate Signing Algorithms">

<t>[[ Note: Some additional development of this section is needed. ]]</t>

<t>In the following branch diagrams, each algorithm is represented by an ‘A’ or
‘B’ at each hop to depict the ARC chain that develops over a five hop scenario.
‘x’ represents a hop that does not support that algorithm.</t>

<t>Note that during a transitional period where multiple algorithms are allowed, 
all of the statements in this spec which refer to “exactly one set of ARC headers
per instance” need to be understood as “at least one set per instance and no more 
than one instance-set per algorithm”.</t>

<section anchor="introductory-period" title="Introductory Period">

<t>Intermediaries MUST be able to validate ARC chains build with either algorithm
but MAY create ARC sets with either (or both) algorithm.</t>

<t>The introductory period should be at least six (6) months.</t>

</section>
<section anchor="co-existence-period" title="Co-Existence Period">

<t>Intermediaries MUST be able to validate ARC chains build with either algorithm
and MUST create ARC sets with both algorithms.  Chains ending with either
algorithm may be used for the result.</t>

</section>
<section anchor="deprecation-period" title="Deprecation Period">

<t>ARC sets built with algorithms that are being deprecated MAY be considered
valid within an ARC chain, however, intermediaries MUST not create additional
sets with the deprecated algorithm.</t>

<t>The deprecation period should be at least two (2) years.</t>

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

<t>The ARC chain provides a verifiable record of the handlers for a message.
Anonymous remailers will probably not find this to match their operating goals.</t>

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

<t>This specification adds three new header fields as defined below.</t>

<section anchor="authentication-results-method-registry-update" title="Authentication-Results Method Registry Update">

<t>This draft adds one item to the IANA “Email Authentication Methods” registry:</t>

<t><list style="symbols">
  <t>Method : arc  <vspace blankLines='1'/>
Defined: &SELF;  <vspace blankLines='1'/>
ptype: header  <vspace blankLines='1'/>
Property: chain evaluation result  <vspace blankLines='1'/>
Value: chain evaluation result status (see <xref target="as-defn"/>)  <vspace blankLines='1'/>
Status: active  <vspace blankLines='1'/>
Version: 1</t>
</list></t>

</section>
<section anchor="definitions-of-the-arc-header-fields" title="Definitions of the ARC header fields">

<t>This specification adds three new header fields to the “Permanent Message Header
Field Registry”, as follows:</t>

<t><list style="symbols">
  <t>Header field name: ARC-Seal  <vspace blankLines='1'/>
Applicable protocol:  mail  <vspace blankLines='1'/>
Status:  draft  <vspace blankLines='1'/>
Author/Change controller:  IETF  <vspace blankLines='1'/>
Specification document(s):  &SELF;  <vspace blankLines='1'/>
Related information:  <xref target="RFC6376"/></t>
  <t>Header field name:  ARC-Message-Signature  <vspace blankLines='1'/>
Applicable protocol:  mail  <vspace blankLines='1'/>
Status:  draft  <vspace blankLines='1'/>
Author/Change controller:  IETF  <vspace blankLines='1'/>
Specification document(s):  &SELF;  <vspace blankLines='1'/>
Related information: <xref target="RFC6376"/></t>
  <t>Header field name:  ARC-Authentication-Results  <vspace blankLines='1'/>
Applicable protocol:  mail  <vspace blankLines='1'/>
Status:  standard  <vspace blankLines='1'/>
Author/Change controller:  IETF  <vspace blankLines='1'/>
Specification document(s):  &SELF;  <vspace blankLines='1'/>
Related information:  <xref target="RFC7601"/></t>
</list></t>

</section>
</section>
<section anchor="implstat" title="Implementation Status">

<t>[[ Note to the RFC Editor: Please remove this section before 
publication along with the reference to <xref target="RFC6982"/>. ]]</t>

<t>This section records the status of known implementations of the protocol
defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC6982"/>.  The description of
implementations in this section is intended to assist the IETF in its decision
processes in progressing drafts to RFCs.  Please note that the listing of any
individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors.  This is not intended as, and must not
be construed to be, a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>

<t>This information is known to be correct as of the seventh interoperability 
test event which was held on 2017-07-15 &amp; 16 at IETF99.</t>

<section anchor="gmail-test-reflector-and-incoming-validation" title="GMail test reflector and incoming validation">

<t>Organization: Google</t>

<t>Description: Internal prototype implementation with both debug
    analysis and validating + sealing pass-through function</t>

<t>Status of Operation: Production - Incoming Validation</t>

<t>Coverage: Full spec implemented as of <xref target="ARC-DRAFT-03"/></t>

<t>Licensing: Proprietary - Internal only</t>

<t>Implementation Notes: Full functionality was demonstrated during
   the interop testing on 2016-06-17</t>

<t>In place for reporting usage only as of 2016-11-21 on all GMail flows.</t>

<t>Rechecked general incoming validation as of 2017-02-24 interop event.</t>

<t>Contact Info: <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref></t>

</section>
<section anchor="aol-test-reflector-and-internal-tagging" title="AOL test reflector and internal tagging">

<t>Organization: AOL</t>

<t>Description: Internal prototype implementation with both debug
    analysis and validating + sealing pass-through function</t>

<t>Status of Operation: Beta</t>

<t>Coverage: ARC chain validity status checking is not operational, but
    otherwise this system conforms to <xref target="ARC-DRAFT-03"/></t>

<t>Licensing: Proprietary - Internal only</t>

<t>Implementation Notes: Full functionality with the exception of chain
   validity checking was demonstrated during the interop testing on 2016-06-17</t>

<t>Available for production mail via selected account whitelisting for test
   validation only.</t>

<t>Intermittent stability problems discovered at the interop event on 
   2017-02-24. Remediation underway as of the publication of this draft.</t>

<t>Contact Info: <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref></t>

</section>
<section anchor="dkimpy" title="dkimpy">

<t>Organization: dkimpy developers</t>

<t>Description: Python DKIM package</t>

<t>Status of Operation: Production</t>

<t>Coverage: The internal test suite is incomplete, but the command line
   developmental version of validator was demonstrated to interoperate with
   the Google and AOL implementations during the interop on 2016-06-17 and the
   released version passes the tests in <xref target="ARC-TEST"/>
   https://github.com/ValiMail/arc_test_suite with both python and python3.</t>

<t>Licensing: Open/Other (same as dkimpy package)</t>

<t>Contact Info: https://launchpad.net/dkimpy</t>

</section>
<section anchor="openarc" title="OpenARC">

<t>Organization: TDP/Murray Kucherawy</t>

<t>Description: Implemention of milter functionality related to the OpenDKIM
    and OpenDMARC packages</t>

<t>Status of Operation: Beta</t>

<t>Coverage: Built to support <xref target="ARC-DRAFT-03"/></t>

<t>Licensing: Open/Other (same as OpenDKIM and OpenDMARC packages)</t>

<t>Implementation Notes: The build is FreeBSD oriented and takes some tweaks
    to build on RedHat-based Linux platforms.</t>

<figure><artwork><![CDATA[
Initial testing during the
interop event on 2016-06-17 showed that it can be operational, but the
documentation regarding configuration settings is unclear and the 
generated signature values do not validate when compared to the Google,
AOL or dkimpy implementations.

Testing during the 2017-02-24 interop event showed that some of the 
problems have been fixed, but there are still interoperability problems
when trying to use OpenARC in a "sandwich" configuration around a MLM.
]]></artwork></figure>

<t>Contact Info: <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref></t>

</section>
<section anchor="mailman-addition" title="Mailman addition">

<t>Organization: Mailman development team</t>

<t>Description: Integrated ARC capabilities within the Mailman package</t>

<t>Status of Operation: Patch submitted</t>

<t>Coverage: Unknown</t>

<t>Licensing: Same as mailman package - GPL</t>

<t>Implementation Notes: Incomplete at this time</t>

<t>Contact Info: https://www.gnu.org/software/mailman/contact.html</t>

</section>
<section anchor="copernicamailerq-web-based-validation" title="Copernica/MailerQ web-based validation">

<t>Organization: Copernica</t>

<t>Description: Web-based validation of ARC-signed messages</t>

<t>Status of Operation: Beta</t>

<t>Coverage: Built to support <xref target="ARC-DRAFT-03"/></t>

<t>Licensing: On-line usage only</t>

<t>Implementation Notes: Released 2016-10-24</t>

<t>Requires full message content to be pasted into a web form found at
   http://arc.mailerq.com/ (warning - https is not supported).</t>

<t>An additional instance of an ARC signature can be added if one is 
    willing to paste a private key into an unsecured web form.</t>

<t>Initial testing shows that results match the other implementations
    listed in this section.</t>

<t>Contact Info: [https://www.copernica.com/]</t>

</section>
<section anchor="rspamd" title="Rspamd">

<t>Organization: Rspamd community</t>

<t>Description: ARC signing and verification module</t>

<t>Status of Operation: Production, though deployment usage is unknown</t>

<t>Coverage: Built to support <xref target="ARC-DRAFT-03"/></t>

<t>Licensing: Open source</t>

<t>Implementation Notes: Released with version 1.6.0 on 2017-06-12</t>

<t>Contact Info: [https://rspamd.com/doc/modules/arc.html] and [https://github.com/vstakhov/rspamd]</t>

</section>
<section anchor="perl-mailmilterauthentication-module" title="PERL Mail::Milter::Authentication module">

<t>Organization: FastMail</t>

<t>Description: Email domain authentication milter, previously included SPF / DKIM / DMARC, now has ARC added</t>

<t>Status of Operation: Intial validation completed during IETF99 hackathon with some follow-on work during the week</t>

<t>Coverage: Built to support &SELF;</t>

<t>Licensing: Open Source</t>

<t>Implementation Notes:</t>

<t>Contact Info: https://github.com/fastmail/authentication_milter</t>

</section>
</section>
<section anchor="sec-con" title="Security Considerations">

<t>The Security Considerations of <xref target="RFC6376"/> and <xref target="RFC7601"/> apply directly to
this specification.</t>

<t>Inclusion of ARC sets in the header of emails may cause problems for some
older or more constrained MTAs if they are unable to accept the greater 
size of the header.</t>

<t>Operators who receive a message bearing N ARC sets has to complete N+1 
DNS queries to evaluate the chain (barring DNS redirection mechanisms which 
can increase the lookups for a given target value).  This has at least two effects:</t>

<t><list style="numbers">
  <t>An attacker can send a message to an ARC partipant with a concocted
sequence of ARC sets bearing the domains of intended victims, and all of them
will be queried by the participant until a failure is discovered.</t>
  <t>DKIM only does one DNS check per signature, while this one can do many.
Absent caching, slow DNS responses can cause SMTP timeouts; this could be
exploited as a DoS attack.</t>
</list></t>

<section anchor="message-content-suspicion" title="Message Content Suspicion">

<t>Recipients are cautioned to treat messages bearing ARC sets with the
same suspicion that they apply to all other email messages. This includes
appropriate content scanning and other checks for potentially malicious
content. The handlers which are identified within the ARC-Seal chain may be
used to provide input to local policy engines in cases where the sending
system’s DKIM-Signature does not validate.</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC1345;
&RFC5234;
&RFC5321;
&RFC5322;
&RFC3463;
&RFC7601;
&RFC7208;
&RFC6651;
&RFC5863;
&RFC6377;
&RFC5585;
&RFC6376;
&RFC4686;
&RFC5598;
&RFC5226;
&RFC2142;
&RFC2606;
&RFC2119;


    </references>

    <references title='Informative References'>

&RFC6982;
&RFC7489;
&RFC7960;
<reference anchor="ENHANCED-STATUS" target="http://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml">
  <front>
    <title>IANA SMTP Enhanced Status Codes</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="ARC-DRAFT-03" target="https://tools.ietf.org/html/draft-ietf-dmarc-arc-protocol-03">
  <front>
    <title>Authenticated Received Chain (ARC) Protocol (I-D-03)</title>
    <author initials="K." surname="Andersen" fullname="Kurt Andersen">
      <organization></organization>
    </author>
    <author initials="J." surname="Rae-Grant" fullname="John Rae-Grant">
      <organization></organization>
    </author>
    <author initials="B." surname="Long" fullname="Brandon Long">
      <organization></organization>
    </author>
    <author initials="T." surname="Adams" fullname="J. Trent Adams">
      <organization></organization>
    </author>
    <author initials="S." surname="Jones" fullname="Steven Jones">
      <organization></organization>
    </author>
    <date year="2017" month="April" day="28"/>
  </front>
</reference>
<reference anchor="ARC-USAGE" target="https://tools.ietf.org/html/draft-ietf-dmarc-arc-usage-01">
  <front>
    <title>Recommended Usage of the ARC Headers</title>
    <author initials="S." surname="Jones" fullname="Steven Jones">
      <organization></organization>
    </author>
    <author initials="T." surname="Adams" fullname="Trent Adams">
      <organization></organization>
    </author>
    <author initials="J." surname="Rae-Grant" fullname="John Rae-Grant">
      <organization></organization>
    </author>
    <author initials="K." surname="Andersen" fullname="Kurt Andersen">
      <organization></organization>
    </author>
    <date year="2017" month="December"/>
  </front>
</reference>
<reference anchor="ARC-TEST" target="https://github.com/ValiMail/arc_test_suite">
  <front>
    <title>ARC Test Suite</title>
    <author initials="S." surname="Blank" fullname="Seth Blank">
      <organization></organization>
    </author>
    <date year="2017" month="January"/>
  </front>
</reference>


    </references>


<section anchor="appendix-a-example-usage-obsolete-but-retained-for-illustrative-purposes" title="Appendix A - Example Usage (Obsolete but retained for illustrative purposes)">

<t>[[ Note: The following examples were mocked up early in the definition
process for the spec. They no longer reflect the current definition and
need various updates which will be included in draft -08. ]]</t>

<section anchor="example-1-simple-mailing-list" title="Example 1: Simple mailing list">

<section anchor="heres-the-message-as-it-exits-the-origin" title="Here’s the message as it exits the Origin:">

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example;
    s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type:
     Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrvQw
     bv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3TRJl
     gotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@dmarc.org
Subject: Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
<section anchor="message-is-then-received-at-exampleorg" title="Message is then received at example.org">

<section anchor="example-1-step-a-message-forwarded-to-list-members" title="Example 1, Step A: Message forwarded to list members">

<t>Processing at example.org:</t>

<t><list style="symbols">
  <t>example.org performs authentication checks</t>
  <t>No previous Auth-Results or ARC-Seal headers are present</t>
  <t>example.org adds ARC-Auth-Results header</t>
  <t>example.org adds Received: header</t>
  <t>example.org adds a ARC-Seal header</t>
</list></t>

<t>Here’s the message as it exits example.org:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF1F5
     vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3A+m4bw
     a6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=1; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example;
    s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type:
     Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijr
     vQwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4G
     d3TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
</section>
<section anchor="example-1-message-received-by-recipient" title="Example 1: Message received by Recipient">

<t>Let’s say that the Recipient is example.com</t>

<t>Processing at example.com:</t>

<t><list style="symbols">
  <t>example.com performs usual authentication checks</t>
  <t>example.com adds Auth-Results: header, Received header</t>
  <t>Determines that message fails DMARC</t>
  <t>Checks for ARC-Seal: header; finds one</t>
  <t>Validates the signature in the ARC-Seal: header, which covers the ARC-Authentication-Results: header</t>
  <t>example.com can use the ARC-Authentication-Results values or verify the DKIM-Signature from lists.example.org</t>
</list></t>

<t>Here’s what the message looks like at this point:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
Received: from example.org (example.org [208.69.40.157])
    by clothilde.example.com with ESMTP id 
    d200mr22663000ykb.93.1421363207
    for <fmartin@example.com>; Thu, 14 Jan 2015 15:02:40 -0800 (PST)
Authentication-Results: clothilde.example.com; spf=fail
    smtp.from=jqd@d1.example; dkim=pass (1024-bit key) 
    header.i=@example.org; dmarc=fail; arc=pass
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF
     1F5vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3
     A+m4bwa6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=1; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example;
    s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type:
     Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrvQw
     bv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3TRJl
     gotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
</section>
<section anchor="example-2-mailing-list-to-forwarded-mailbox" title="Example 2: Mailing list to forwarded mailbox">

<section anchor="heres-the-message-as-it-exits-the-origin-1" title="Here’s the message as it exits the Origin:">

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example;
    s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type:
     Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrvQw
     bv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3TRJl
     gotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
<section anchor="message-is-then-received-at-exampleorg-1" title="Message is then received at example.org">

<section anchor="example-2-step-a-message-forwarded-to-list-members" title="Example 2, Step A: Message forwarded to list members">

<t>Processing at example.org:</t>

<t><list style="symbols">
  <t>example.org performs authentication checks</t>
  <t>example.org applies standard DKIM signature</t>
  <t>No previous Auth-Results or ARC-Seal headers are present</t>
  <t>example.org adds ARC-Auth-Results header</t>
  <t>example.org adds usual Received: header</t>
  <t>example.org adds a ARC-Seal header</t>
</list></t>

<t>Here’s the message as it exits Step A:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz6
     1TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L
     69EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF
     1F5vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3
     A+m4bwa6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=1; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example;
    s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type:
     Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijr
     vQwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4G
     d3TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
<section anchor="example-2-step-b-message-from-list-forwarded" title="Example 2, Step B: Message from list forwarded">

<t>The message is delivered to a mailbox at gmail.com<vspace />
Processing at gmail.com:</t>

<t><list style="symbols">
  <t>gmail.com performs usual authentication checks</t>
  <t>gmail.com adds Auth-Results: and Received: header</t>
  <t>Determines that message fails DMARC</t>
  <t>Checks for ARC-Seal: header; finds one</t>
  <t>Validates the signature in the ARC-Seal: header, which covers the ARC-Authentication-Results: header</t>
  <t>Uses the ARC-Auth-Results: values, but:</t>
  <t>Instead of delivering message, prepares to forward message per user settings</t>
  <t>Applies usual DKIM signature</t>
  <t>gmail.com adds it’s own ARC-Seal: header, contents of which are
  <list style="symbols">
      <t>version</t>
      <t>sequence number (“i=2”)</t>
      <t>hash algorithm (SHA256 as example)</t>
      <t>timestamp (“t=”)</t>
      <t>selector for key (“s=notary01”)</t>
      <t>domain for key (“d=gmail.com”)</t>
      <t>headers included  in hash (“h=ARC-Authentication-Results:ARC-Seal”)</t>
      <t>Note: algorithm requires only ARC-Seals with lower sequence # be included, in ascending order</t>
      <t>signature of the header hash</t>
    </list></t>
</list></t>

<t>Here’s what the message looks like at this point:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
ARC-Seal: i=2; a=rsa-sha256; t=1421363253;
    s=notary01; d=gmail.com; cv=pass; 
    b=sjHDMriRZ0Mui5eVEOGscRHWbQHcy97lvrduHQ8h+f2CfIrxUiKOE44x3LQwDWR
     YbDjf5fcM9MdcIahC+cP59BQ9Y9DHwMDzwRTnM7NVb4kY+tSaVnLoIOaP9lF/sut
     txO+RRNr0fCFw==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed;
    d=gmail.com; s=20120806;
    h=mime-version:content-type:x-original-sender:
     x-original-authentication-results:precedence:mailing-list:
     list-id:list-post:list-help:list-archive:sender:reply-to:
     list-unsubscribe:DKIM-Signature;
    bh=2+gZwZhUK2V7JbpoO2MTrU19WvhcA4JnjiohFm9ZZ/g=;
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0Ab8Oi1ebYV/hIBmfhS
     LF1E80hMPcMijONfTQB6g5Hoh/kE6N2fgp6aSngL/WA3+g3Id8ElhXHvIGcJRFeM
     KdJqiW5cxdqPTRW+BnR5ee6Tzg06kr265NTDIAU8p8fQNuLfZj49MMA+QwDBJtXw
     bQoZyRtb6X6q0mYaszUB8kw==
Received: by mail-yk0-f179.google.com with SMTP id 19so2728865ykq.10
    for <mailbox@gmail.com>; Thu, 14 Jan 2015 15:02:45 -0800 (PST)
Authentication-Results: i=2; gmail.com; spf=fail
    smtp.from=jqd@d1.example; dkim=pass (1024-bit key) 
    header.i=@example.org; dmarc=fail; arc=pass
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=none:
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF
     1F5vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3
     A+m4bwa6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=1; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example;
    s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type:
     Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijr
     vQwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4G
     d3TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

<t> </t>

</section>
</section>
<section anchor="example-2-message-received-by-recipient" title="Example 2: Message received by Recipient">

<t>Let’s say that the Recipient is example.com<vspace />
Processing at example.com:</t>

<t><list style="symbols">
  <t>example.com performs usual authentication checks</t>
  <t>example.com adds Auth-Results: header, Received header</t>
  <t>Determines that message fails DMARC</t>
  <t>Checks for ARC-Seal: header; finds two</t>
  <t>Validates the signature in the highest numbered (“i=2”) ARC-Seal: header, which covers all previous ARC-Seal: and ARC-Authentication-Results: headers</t>
  <t>Validates the other ARC-Seal header (“i=1”), which covers the ARC-Authentication-Results: header</t>
  <t>example.com uses the ARC-Authentication-Results: values</t>
</list></t>

<t>Here’s what the message looks like at this point:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
Received: from mail-ob0-f188.google.com (mail-ob0-f188.google.com
    [208.69.40.157]) by clothilde.example.com with ESMTP id
    d200mr22663000ykb.93.1421363268
    for <fmartin@example.com>; Thu, 14 Jan 2015 15:03:15 -0800 (PST)
Authentication-Results: clothilde.example.com; spf=fail
    smtp.from=jqd@d1.example; dkim=pass (1024-bit key) 
    header.i=@gmail.com; dmarc=fail; arc=pass
ARC-Seal: i=2; a=rsa-sha256; t=1421363253;
    s=notary01; d=gmail.com; cv=pass; 
    b=sjHDMriRZ0Mui5eVEOGscRHWbQHcy97lvrduHQ8h+f2CfIrxUiKOE44x3LQwDWR
     YbDjf5fcM9MdcIahC+cP59BQ9Y9DHwMDzwRTnM7NVb4kY+tSaVnLoIOaP9lF/sut
     txO+RRNr0fCFw==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed;
    d=gmail.com; s=20120806;
    h=mime-version:content-type:x-original-sender:
     x-original-authentication-results:precedence:mailing-list:
     list-id:list-post:list-help:list-archive:sender:reply-to:
     :list-unsubscribe:DKIM-Signature;
    bh=2+gZwZhUK2V7JbpoO2MTrU19WvhcA4JnjiohFm9ZZ/g=;
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0Ab8Oi1ebYV/hIBmfhS
     LF1E80hMPcMijONfTQB6g5Hoh/kE6N2fgp6aSngL/WA3+g3Id8ElhXHvIGcJRFeM
     KdJqiW5cxdqPTRW+BnR5ee6Tzg06kr265NTDIAU8p8fQNuLfZj49MMA+QwDBJtXw
     bQoZyRtb6X6q0mYaszUB8kw==
Received: by mail-yk0-f179.google.com with SMTP id 19so2728865ykq.10
    for <mailbox@gmail.com>; Thu, 14 Jan 2015 15:02:45 -0800 (PST)
Authentication-Results: i=2; gmail.com; spf=fail
    smtp.from=jqd@d1.example; dkim=pass (1024-bit key) 
    header.i=@example.org; dmarc=fail; arc=pass
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF
     1F5vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3
     A+m4bwa6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=1; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example;
    s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type:
     Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijr
     vQwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4G
     d3TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
</section>
<section anchor="example-3-mailing-list-to-forwarded-mailbox-with-source" title="Example 3: Mailing list to forwarded mailbox with source">

<section anchor="heres-the-message-as-it-exits-the-origin-2" title="Here’s the message as it exits the Origin:">
<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=origin2015; d=d1.example; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61T
     X6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69EU
     8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=d1.example; s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=MIME-Version:CC:Content-Type:Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrv
     Qwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3
     TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
<section anchor="message-is-then-received-at-exampleorg-2" title="Message is then received at example.org">

<t> </t>

<section anchor="example-3-step-a-message-forwarded-to-list-members-with-source" title="Example 3, Step A: Message forwarded to list members with source">

<t>Processing at example.org:</t>

<t><list style="symbols">
  <t>example.org performs authentication checks</t>
  <t>example.org applies standard DKIM signature</t>
  <t>Checks for ARC-Seal: header; finds one (i=1)</t>
  <t>Validates the signature in the ARC-Seal (i=1): header, which covers the d1.example ARC-Message-Signature: header</t>
  <t>example.org adds ARC-Auth-Results header</t>
  <t>example.org adds usual Received: header</t>
  <t>example.org adds a DKIM-Signature</t>
  <t>example.org adds a ARC-Seal header, contents of which are
  <list style="symbols">
      <t>sequence number (“i=2”)</t>
      <t>hash algorithm (SHA256 as example)</t>
      <t>timestamp (“t=”)</t>
      <t>chain validity (“cv=”)</t>
      <t>selector for key (“s=seal2015”)</t>
      <t>domain for key (“d=example.org”)</t>
      <t>signature (“b=”)</t>
    </list></t>
</list></t>

<t>Here’s the message as it exits Step A:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
ARC-Seal: i=2; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=pass; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz6
     1TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L
     69EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:From:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF
     1F5vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3
     A+m4bwa6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=2; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=origin2015; d=d1.example; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=d1.example; s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=MIME-Version:CC:Content-Type:Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijr
     vQwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4G
     d3TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
<section anchor="example-3-step-b-message-from-list-forwarded-with-source" title="Example 3, Step B: Message from list forwarded with source">

<t>The message is delivered to a mailbox at gmail.com<vspace />
Processing at gmail.com:</t>

<t><list style="symbols">
  <t>gmail.com performs usual authentication checks</t>
  <t>gmail.com adds Auth-Results: and Received: header</t>
  <t>Determines that message fails DMARC</t>
  <t>Checks for ARC-Seal: header; finds two</t>
  <t>Validates the signature in the ARC-Seal (i=2): header, which covers the ARC-Authentication-Results: header</t>
  <t>Validates the signature in the ARC-Seal (i=1): header, which covers the d1.example ARC-Message-Signature: header</t>
  <t>Uses the ARC-Auth-Results: values, but:</t>
  <t>Instead of delivering message, prepares to forward message per user settings</t>
  <t>Applies usual DKIM signature</t>
  <t>gmail.com adds it’s own ARC-Seal: header, contents of which are
  <list style="symbols">
      <t>version</t>
      <t>sequence number (“i=2”)</t>
      <t>hash algorithm (SHA256 as example)</t>
      <t>timestamp (“t=”)</t>
      <t>selector for key (“s=notary01”)</t>
      <t>domain for key (“d=gmail.com”)</t>
      <t>Note: algorithm requires only ARC-Seals with lower sequence # be included, in ascending order</t>
      <t>signature of the chain</t>
    </list></t>
</list></t>

<t>Here’s what the message looks like at this point:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
ARC-Seal: i=3; a=rsa-sha256; t=1421363253;
    s=notary01; d=gmail.com; cv=pass; 
    b=sjHDMriRZ0Mui5eVEOGscRHWbQHcy97lvrduHQ8h+f2CfIrxUiKOE44x3LQwD
     WRYbDjf5fcM9MdcIahC+cP59BQ9Y9DHwMDzwRTnM7NVb4kY+tSaVnLoIOaP9lF
     /suttxO+RRNr0fCFw==
ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed;
    d=gmail.com; s=20120806;
    h=mime-version:content-type:x-original-sender
     :x-original-authentication-results:precedence:mailing-list
     :list-id:list-post:list-help:list-archive:sender
     :list-unsubscribe:reply-to;
    bh=2+gZwZhUK2V7JbpoO2MTrU19WvhcA4JnjiohFm9ZZ/g=;
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz6
     1TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L
     69EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0Ab8Oi1ebYV/hIBm
     fhSLF1E80hMPcMijONfTQB6g5Hoh/kE6N2fgp6aSngL/WA3+g3Id8ElhXHvIGcJ
     RFeMKdJqiW5cxdqPTRW+BnR5ee6Tzg06kr265NTDIAU8p8fQNuLfZj49MMA+QwD
     BJtXwbQoZyRtb6X6q0mYaszUB8kw==
Received: by mail-yk0-f179.google.com with SMTP id 19so2728865ykq.10
    for <mailbox@gmail.com>; Thu, 14 Jan 2015 15:02:45 -0800 (PST)
Authentication-Results: i=3; gmail.com; spf=fail
    smtp.from=jqd@d1.example; dkim=pass (1024-bit key) 
    header.i=@example.org; dmarc=fail; arc=pass
ARC-Seal: i=2; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=pass; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF1
     F5vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3A+
     m4bwa6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=2; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=origin2015; d=d1.example; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=d1.example; s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=MIME-Version:CC:Content-Type:Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYij
     rvQwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD
     4Gd3TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
</section>
<section anchor="example-3-message-received-by-recipient" title="Example 3: Message received by Recipient">

<t>Let’s say that the Recipient is example.com<vspace />
Processing at example.com:</t>

<t><list style="symbols">
  <t>example.com performs usual authentication checks</t>
  <t>example.com adds Auth-Results: header, Received header</t>
  <t>Determines that message fails DMARC</t>
  <t>Checks for ARC-Seal: header; finds three</t>
  <t>Validates the signature in the highest numbered (“i=2”) ARC-Seal: header, which covers all previous ARC-Seal: and ARC-Authentication-Results: headers</t>
  <t>Validates the other ARC-Seal header (“i=2”), which covers the ARC-Authentication-Results: header</t>
  <t>Validates the other ARC-Seal header (“i=1”), which covers the d1.example ARC-Message-Signature: header</t>
  <t>example.com uses the ARC-Authentication-Results: values</t>
</list></t>

<t>Here’s what the message looks like at this point:</t>

<figure><artwork><![CDATA[
Return-Path: <jqd@d1.example>
Received: from mail-ob0-f188.google.com (mail-ob0-f188.google.com
    [208.69.40.157]) by clothilde.example.com with ESMTP id
    d200mr22663000ykb.93.1421363268
    for <fmartin@example.com>; Thu, 14 Jan 2015 15:03:15 -0800 (PST)
Authentication-Results: clothilde.example.com; spf=fail
    smtp.from=jqd@d1.example; dkim=pass (1024-bit key) 
    header.i=@gmail.com; dmarc=fail; arc=pass
ARC-Seal: i=3; a=rsa-sha256; t=1421363253;
    s=notary01; d=gmail.com; cv=pass; 
    b=sjHDMriRZ0Mui5eVEOGscRHWbQHcy97lvrduHQ8h+f2CfIrxUiKOE44x3LQwDW
     RYbDjf5fcM9MdcIahC+cP59BQ9Y9DHwMDzwRTnM7NVb4kY+tSaVnLoIOaP9lF/s
     uttxO+RRNr0fCFw==
ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed;
    d=gmail.com; s=20120806;
    h=mime-version:content-type:x-original-sender
     :x-original-authentication-results:precedence
     :mailing-list:list-id:list-post:list-help:list-archive:sender
     :list-unsubscribe:reply-to;
    bh=2+gZwZhUK2V7JbpoO2MTrU19WvhcA4JnjiohFm9ZZ/g=;
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz6
     1TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L
     69EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0Ab8Oi1ebYV/hIBm
     fhSLF1E80hMPcMijONfTQB6g5Hoh/kE6N2fgp6aSngL/WA3+g3Id8ElhXHvIGcJ
     RFeMKdJqiW5cxdqPTRW+BnR5ee6Tzg06kr265NTDIAU8p8fQNuLfZj49MMA+QwD
     BJtXwbQoZyRtb6X6q0mYaszUB8kw==
Received: by mail-yk0-f179.google.com with SMTP id 19so2728865ykq.10
    for <mailbox@gmail.com>; Thu, 14 Jan 2015 15:02:45 -0800 (PST)
Authentication-Results: i=3; gmail.com; spf=fail
    smtp.from=jqd@d1.example; dkim=pass (1024-bit key) 
    header.i=@example.org; dmarc=fail; arc=pass
ARC-Seal: i=2; a=rsa-sha256; t=1421363107;
    s=seal2015; d=example.org; cv=pass; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz6
     1TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L
     69EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed;
    d=example.org; s=clochette; t=1421363105;
    bh=FjQYm3HhXStuzauzV4Uc02o55EzATNfL4uBvEoy7k3s=;
    h=List-Id:List-Unsubscribe:List-Archive:List-Post:
     List-Help:List-Subscribe:Reply-To:DKIM-Signature;
    b=Wb4EiVANwAX8obWwrRWpmlhxmdIvj0dv0psIkiaGOOug32iTAcc74/iWvlPXpF1
     F5vYVF0mw5cmKOa824tKkUOOE3yinTAekqnly7GJuFCDeSA1fQHhStVV7BzAr3A+
     m4bwa6RIDgr3rOPJil678dZTHfztFWyjwIUxB5Ajxj/M=
Received: from segv.d1.example (segv.d1.example [72.52.75.15])
    by lists.example.org (8.14.5/8.14.5) with ESMTP id t0EKaNU9010123
    for <arc@example.org>; Thu, 14 Jan 2015 15:01:30 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Authentication-Results: i=2; lists.example.org;
    spf=pass smtp.mfrom=jqd@d1.example;
    dkim=pass (1024-bit key) header.i=@d1.example; 
    dmarc=pass
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z])
    (authenticated bits=0)
    by segv.d1.example with ESMTP id t0FN4a8O084569;
    Thu, 14 Jan 2015 15:00:01 -0800 (PST)
    (envelope-from jqd@d1.example)
ARC-Seal: i=1; a=rsa-sha256; t=1421363107;
    s=origin2015; d=d1.example; cv=none; 
    b=pCw3Qxgfs9E1qnyNZ+cTTF3KHgAjWwZz++Rju0BceSiuwIg0Pkk+3RZH/kaiz61
     TX6RVT6E4gs49Sstp41K7muj1OR5R6Q6llahLlQJZ/YfDZ3NImCU52gFWLUD7L69
     EU8TzypfkUhscqXjOJgDwjIceBNNOfh3Jy+V8hQZrVFCw0A=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;
    d=d1.example; s=20130426; t=1421363082;
    bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=;
    h=MIME-Version:To:CC:Subject:Content-Type:Content-Transfer-Encoding;
    b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijr
     vQwbv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4G
     d3TRJlgotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ=
Message-ID: <54B84785.1060301@d1.example>
Date: Thu, 14 Jan 2015 15:00:01 -0800
From: John Q Doe <jqd@d1.example>
To: arc@example.org
Subject: [Lists] Example 1
 
Hey gang,
This is a test message.
--J.
]]></artwork></figure>

</section>
</section>
</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>This draft is the work of OAR-Dev Group.</t>

<t>The authors thank all of the OAR-Dev group for the ongoing help and though-provoking
discussions from all the participants, especially: Alex Brotman, Brandon Long, Dave Crocker, 
Elizabeth Zwicky, Franck Martin, Greg Colburn, J. Trent Adams, John Rae-Grant, Mike Hammer,
Mike Jones, Steve Jones, Terry Zink, Tim Draegen.</t>

<t>Grateful appreciation is extended to the people who provided feedback through the discuss
mailing list.</t>

</section>
<section anchor="comments-and-feedback" title="Comments and Feedback">

<t>Please address all comments, discussions, and questions to <eref target="mailto:dmarc@ietf.org">dmarc@ietf.org</eref>. 
Earlier discussions can be found at <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref>.</t>

</section>


  </back>
</rfc>

