<?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 SELF "[I-D.ARC]">
]>

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

<rfc ipr="trust200902" docName="draft-ietf-dmarc-arc-protocol-00" category="std" obsoletes="draft-andersen-arc-17">

  <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>2029 Stierlin Ct.</street>
          <city>Mountain View</city>
          <region>California</region>
          <code>94043</code>
          <country>USA</country>
        </postal>
        <email>kurta@linkedin.com</email>
      </address>
    </author>
    <author initials="J." surname="Rae-Grant" fullname="John Rae-Grant" role="editor">
      <organization>Google</organization>
      <address>
        <email>johnrg@google.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="T." surname="Adams" fullname="J. Trent Adams" role="editor">
      <organization>Paypal</organization>
      <address>
        <email>trent.adams@paypal.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>

    <date year="2016" month="June" day="25"/>

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

    <abstract>


<t>Authenticated Received Chain (ARC) permits an organization which is creating or
handling email to indicate its involvement with the handling process.  It defines
a set of cryptographically signed header fields in a manner analagous to
that of DKIM.  Assertion of responsibility is
validated through a cryptographic signature and by querying the Signer’s domain
directly to retrieve the appropriate public key. Changes in the message that
might break DKIM can be identified through the ARC set of header fields.</t>



    </abstract>


  </front>

  <middle>


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

<t>The development of strong domain authentication through Sender Policy Framework
(SPF) <xref target="RFC7208"/> and DomainKeys Identified Mail (DKIM) <xref target="RFC6376"/> has led to
the implementation of the DMARC framework <xref target="RFC7489"/> which extends the
authentication to the author’s “From:” (RFC5322.From) field and permits
publishing policies for non-compliant messages.  Implicit within the DMARC
framework is a requirement that any intermediaries between the source system
and ultimate receiver system need to preserve the validity of the DKIM
signature; however, there are common legitimate email practices which break the DKIM
validation (<xref target="DMARC-INTEROP"/>). This specification defines an Authenticated
Received Chain (ARC). ARC addresses the problems with the untrustworthiness of the
standard Received header field sequence. Through the information tracked in the ARC
series of headers, receivers can develop a more
nuanced interpretation to guide any local policies related to messages that
arrive with broken domain authentication (DMARC).</t>

<t>Forgery of the Received header fields is a common tactic used by bad actors. One of
the goals of this specification defines a comparable set of trace header fields
which can be relied upon by receivers, assuming all ADministrative
Management Domain (ADMD) intermediary handlers of a message participate in ARC.</t>

<t>The Authentication-Results (A-R) mechanism <xref target="RFC7601"/> permits the output of an email
authentication evaluation process to be transmitted from the evaluating
agent to a consuming agent that uses the information.  On its own, A-R
is believable only within a trust domain.  ARC provides a protection mechanism for
the data, permiting the communication to cross trust domain boundaries.</t>

</section>
<section anchor="requirements" title="Requirements">

<t>The specification of the ARC framework is driven by the following high-level
goals, security considerations, and practical operational requirements.</t>

<section anchor="primary-design-criteria" title="Primary Design Criteria">

<t><list style="symbols">
  <t>Provide a verifiable “chain of custody” for email messages;</t>
  <t>Not require changes for originators of email;</t>
  <t>Support the verification of the ARC header field set by each hop in the 
handling chain;</t>
  <t>Work at Internet scale; and</t>
  <t>Provide a trustable mechanism for the communication of Authentication-Results
across trust boundaries.</t>
</list></t>

</section>
<section anchor="out-of-scope" title="Out of Scope">

<t>ARC is not a trust framework. Users of the ARC header fields are cautioned against 
making unsubstantiated conclusions when encountering a “broken” ARC sequence.</t>

</section>
<section anchor="utility" title="Utility">

<t>The ARC-related set of header fields can be used (when validated) to determine the
path that an email message has taken between the originating system and receiver.
Subject to the cautions mentioned in <xref target="sec-con"/>, this
information can assist in determining any local policy overrides to for
violations of origination domain authentication policies.</t>

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

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

<t>When an email message is received without a properly validated originating domain, the
inability to believe the accuracy of a series of Received header fields prevents
receiving systems from having a way to infer anything about the handling of the
message by looking at the ADMDs through which the message has traveled.</t>

<t>With ARC, participating ADMDs are able to 
securely register their handling of an email message. If all mediators (<xref target="RFC5598"/>)
participate in the ARC process, receivers will be able to rely upon the chain 
and make local policy decisions informed by that information.</t>

<t>The ARC set of header fields provides a method by which participating intermediaries
can indicate the hand-offs for email messages.</t>

</section>
<section anchor="definition" title="Definition">

<t>This specification defines three new header fields:</t>

<t><list style="symbols">
  <t>Header field name:  ARC-Seal (abbreviated below as AS)</t>
  <t>Header field name:  ARC-Message-Signature (abbreviated below as AMS)</t>
  <t>Header field name:  ARC-Authentication-Results (abbreviated below as AAR)</t>
</list></t>

<t>Collectively, these header fields form a connected set of attribution
information by which receivers can identify the handling path for a message. 
As described below, a distinct set of these fields share a common sequence number,
identified in an “i=” tag. Such a correlated group of header fields is referred
to as an “ARC set”.</t>

<t>Specific references to individual header fields use the header field names to distinguish
such references.</t>

<t>The ARC sets SHOULD be added at the top of a message header as it transits MTAs that
do authentication checks, so some idea of how far away the checks were done can
be inferred. They are therefore considered to be a trace field as defined in
<xref target="RFC5321"/>, and all of the related definitions in that document apply.</t>

<t>Relative ordering of different trace header fields (the ARC sets, DKIM, Received, 
etc.) is unimportant for this specification. In general, trace header fields, 
such as ARC,
SHOULD be added at the top of the email header fields, but receivers MUST be able to 
process the header fields from wherever they are found in the message header.
Ordering amongst the individual ARC header fields and sets is specified 
below and MUST be followed for proper canonicalized signing and evaluation.</t>

<section anchor="description-of-the-new-header-fields" title="Description of the New Header Fields">

<section anchor="arc-seal" title="ARC-Seal">

<t>ARC-Seal is a Structured Header Field as defined in Internet Message Format
(<xref target="RFC5322"/>). All of the related definitions in that document apply.</t>

<t>The ARC-Seal makes use of Tag=Value Lists as defined in <xref target="RFC6376"/>, Section 3.2.</t>

<t>The value of the header field consists of an authentication sequence
identifier, and a series of statements and supporting data. The statements
indicate relevant data about the signing of the ARC set.  The header field can
appear more than once in a single message, but each instance MUST have a unique
“i=” value.</t>

<t>The ARC-Seal header field includes a digital signature of all preceding ARC
message header fields on the message.</t>

<section anchor="seal-hdr" title="Tags in the ARC-Seal Header Field Value">

<t>The following tags are the only supported tags for an ARC-Seal field. All
of them MUST be present. Unknown tags MUST be ignored and do not affect
the validity of the header.</t>

<t><list style="symbols">
  <t>a = hash algorithm; syntax is the same as the “a=” tag defined in 
Section 3.5 of <xref target="RFC6376"/>;</t>
  <t>b = digital signature; syntax is the same as the “b=” tag defined in
Section 3.5 of <xref target="RFC6376"/>;</t>
  <t>cv = chain validation status: valid values:  <list style="symbols">
      <t>‘none’ = no pre-existing chain;</t>
      <t>‘fail’ = the chain as received does not validate; or</t>
      <t>‘pass’ = valid chain received.</t>
    </list></t>
  <t>d = domain for key; syntax is the same as the “d=” tag defined
in Section 3.5 of <xref target="RFC6376"/>;</t>
  <t>i = “instance” or sequence number; monotonically increasing at 
each “sealing” entity, beginning with ‘1’, may not exceed ‘1024’</t>
  <t>s = selector for key; syntax is the same as the “s=” tag defined
in Section 3.5 of <xref target="RFC6376"/>;</t>
  <t>t = timestamp; syntax is the same as the “t=” tag defined
in Section 3.5 of <xref target="RFC6376"/>.</t>
</list></t>

</section>
<section anchor="differences-between-dkim-signature-and-arc-seal" title="Differences between DKIM-Signature and ARC-Seal">

<t>No ‘bh’ value is defined for ARC-Seal, since only message header fields
are ever signed by the ARC-Seal.</t>

<t>ARC-Seal does not use the ‘h’ tag (the list of signed header fields) that is
defined for DKIM-Signatures because the list of applicable header fields is
fully determined by the construction rules (see <xref target="implicit-as-h"/>).</t>

<t>ARC-Seal does not use the ‘c’ (canonicalization) tag because only ‘relaxed’
canonicalization <xref target="RFC6376"/> is allowed for ARC-Seal header field canonicalization.</t>

</section>
<section anchor="implicit-as-h" title="Deterministic ‘h’ Value for ARC-Seal">

<t>In this section, the term “scope” is used to indicate those header fields
signed by an ARC-Seal header field.  A number in parentheses indicates the
instance of that field, starting at 1.  The suffix “-no-b” is used with an
ARC-Seal field to indicate that its “b” field is empty at the time the
signature is computed, as described in Section 3.5 of <xref target="RFC6376"/>.  “AAR”
refers to ARC-Authentication-Results, “AMS” to ARC- Message-Signature, “AS” to
ARC-Seal, and “ASB” to an ARC-Seal with an empty “b” tag.</t>

<t>Generally, the scope of an ARC set for a message containing “n” ARC sets is the
concatenation of the following, for x (instance number) from 1 to n:</t>

<t><list style="symbols">
  <t>AAR(x);</t>
  <t>AMS(x);</t>
  <t>ASB(x) if x = n, else AS(x)</t>
</list></t>

<t>Thus for a message with no seals (i.e., upon injection), the scope of the first
ARC set is AAR(1):AMS(1):ASB(1).  The ARC set thus generated would produce a
first ARC-Seal with a “b” value.  The next ARC set would include in its signed
content the prior scope, so it would have a scope of
AAR(1):AMS(1):AS(1):AAR(2):AMS(2):ASB(2).</t>

<t>Note: Typically header field sets appear within the header in descending instance
order.</t>

</section>
<section anchor="computing-the-b-tag-value-for-arc-seal" title="Computing the ‘b’ Tag Value for ARC-Seal">

<t>The ARC-Seal generation process mirrors the procedure used for DKIM-Signature
fields described in Section 5 of <xref target="RFC6376"/> in that it is at first generated
with empty “b” field for the purpose of signature generation, and then the “b”
value is added just prior to adding the ARC-Seal field to the message.</t>

<t>In particular, signing calculation MUST be done in bottom-up order as specified
in Section 5.4.2 of <xref target="RFC6376"/> and as illustrated above <xref target="implicit-as-h"/>.</t>

</section>
<section anchor="cv-calc" title="Determining the ‘cv’ Tag Value for ARC-Seal">

<t>In order for a series of ARC sets to be considered valid, the following statements
MUST be satisfied:</t>

<t><list style="numbers">
  <t>All ARC-Seal header fields MUST validate;</t>
  <t>All ARC-Seal header fields MUST have a chain value (cv=) status of “pass” 
  (except the first which MUST be “none”); and</t>
  <t>The newest (highest instance number (i=)) AMS header field MUST validate.</t>
</list></t>

<section anchor="pseudocode-to-determine-chain-value-status" title="Pseudocode to Determine Chain Value Status:">

<t>In the algorith below, a “hop” is represented by the ARC set bearing a 
particular instance number. The number of hops is the same as the highest
instance number found in the ARC sets, or 0 (zero) if there are no ARC
sets found within the header.</t>

<t>“Success” means that the signature found in the referenced header validates
when against the content which was signed.</t>

<figure><artwork><![CDATA[
if num_hops == 0:
  return "none"
else:
  if validate(latest_hop.AMS) != success:
    return "fail"

  for each hop (from highest instance to lowest):
    if (hop_num > 1 and hop.ARC-Seal.cv == "pass") or
       (hop_num == 1 and hop.ARC-Seal.cv == "none"):
      if validate(hop.ARC-Seal) == success:
        next
      else:
        return "fail"

  return "pass"
]]></artwork></figure>

</section>
</section>
</section>
<section anchor="arc-message-signature" title="ARC-Message-Signature">

<t>The ARC-Message-Signature header field is a special variant of a DKIM-Signature
<xref target="RFC6376"/>, using only the relaxed header canonicalization rules specified in
<xref target="RFC6376"/>.</t>

<t>The ARC-Message-Signature header field can appear multiple times in a single
message but each instance MUST have a unique “i=” value.</t>

<section anchor="differences-between-dkim-signature-and-arc-message-signature" title="Differences between DKIM-Signature and ARC-Message-Signature">

<section anchor="h-ams-val" title="Header Fields Eligible For ARC-Message-Signature Inclusion">

<t>Participants may include any other header fields within the scope of the
ARC-Message-Signature signature except that they MUST NOT include ARC-Seal
headers fields. In particular, including all DKIM-Signature header fields and 
all ARC-Authentication-Results header fields is RECOMMENDED. 
The advice regarding headers to include or avoid for ARC-Message-Signature is otherwise
identical to that specified in section 5.4
of <xref target="RFC6376"/>.</t>

</section>
<section anchor="c-ams-val" title="“Canonicalization” ‘c’ Tag Value">

<t>The ARC-Message-Signature header field MUST be created using the header
and body canonicalization rules mechanisms in Section 3.4 of <xref target="RFC6376"/>. The 
corresponding “c=” tag value MUST be specified in the AMS header field value.</t>

</section>
<section anchor="i-ams-val" title="“Instance” ‘i’ Tag Value">

<t>Contrary to DKIM, the ‘i’ tag for ARC-Message-Signature identifies the 
sequential instance of the field, thus indicating that it is part of a particular
ARC set. That is, an ARC-Message-Signature, ARC-Seal, and ARC-Authentication-Results
all bearing an “i=” tag with the same value are part of the same ARC set 
(see <xref target="seal-hdr"/>).</t>

</section>
<section anchor="v-ams-val" title="‘v’ Tag Value">

<t>There is no “v” tag for ARC-Message-Signature.</t>

</section>
</section>
<section anchor="computing-the-b-tag-value-for-arc-message-signature" title="Computing the ‘b’ Tag Value for ARC-Message-Signature">

<t>As with DKIM-Signature and ARC-Seal header fields, the “b” tag of the
ARC-Message-Signature is empty until the signature is actually computed, and
only then is it added to the header field, before affixing the ARC-Message-Signature to the message.</t>

<t>As with ARC-Seal and DKIM-Signature header fields, the order of header fields signed
MUST be done in bottom-up order.</t>

</section>
</section>
<section anchor="aar-defn" title="ARC-Authentication-Results">

<t>ARC-Authentication-Results is a direct copy of the Authentication-Results
header field <xref target="RFC7601"/> created for archival purposes by the each MTA outside of
the trust boundary of the originating system which is contributing to the
chain of ARC header fields. The corresponding
instance (“i=”) tag value MUST be prefixed to the Authentication-Results.</t>

<t>The value of the header field (after removing comments) consists of an instance
identifier, an authentication identifier, and then a series of statements and
supporting data, as described in <xref target="RFC7601"/>.  The header field can appear
multiple times in a single message but each instance MUST have a unique “i=”
value.</t>

<section anchor="i-aar-val" title="‘i’ Tag Value">

<t>ARC-Authentication-Results requires inclusion of an “i=” tag before the
“authserv-id” which indicates the ARC set to which it belongs as described in
the previous section (see <xref target="seal-hdr"/>).</t>

</section>
</section>
</section>
<section anchor="build-hdrs" title="Constructing the ARC-Seal Set">

<t>The ARC-Seal is built in the same fashion as the analogous DKIM-Signature
<xref target="RFC6376"/>, using the relaxed header canonicalization rules specified in
that document but with a strict ordering component for the header fields 
covered by the cryptographic signature:</t>

<t><list style="numbers">
  <t>The ARC sets MUST be ordered in descending instance (i=) order.</t>
  <t>The referenced ARC-Message-Signatures (matching i= value)
MUST immediately follow the ARC-Seal instance which included the reference.</t>
  <t>The associated ARC-Authentication-Results header field (matching i= value) MUST be the 
last item in the list for each set of ARC header fields.</t>
</list></t>

<t>Thus, when prefixing ARC header fields to the existing header,</t>

<t><list style="numbers">
  <t>the AAR header would be prefixed first; then</t>
  <t>the AMS would be calculated and prefixed;</t>
  <t>lastly the AS would be calculated and prefixed.</t>
</list></t>

<t>The ARC-Message-Signature field(s) MUST not include any of the ARC-Seal
header field(s) (from prior ARC sets) in their signing scope in order 
maintain a separation of responsibilities.  When adding an 
ARC-Authentication-Results header field, it
MUST be added before computing the ARC-Message-Signature. When “sealing” the
message, an operator MUST create and attach the ARC-Message-Signature before
the ARC-Seal in order to reference it and embed the ARC-Message-Signature
within the ARC-Seal signature scope.</t>

<t>Each ARC-Seal is connected to its respective ARC-Message-Signature and
ARC-Authentication-Results through the common value of the “i=” tag.</t>

<section anchor="handling-violations-in-the-arc-sets" title="Handling Violations in the ARC Sets">

<t>When ordering the ARC header field sets, if there are gross violations of this
protocol (e.g., such as duplicated instance numbers), such header field set(s) 
MUST be ordered as follows when analyzing for validity or subsequent signing:</t>

<t><list style="symbols">
  <t>Within each set, header fields are sorted as specified in <xref target="build-hdrs"/>; then</t>
  <t>Any ARC sets that are complete duplicates are removed - leaving only one instance
of each unique ARC set; then</t>
  <t>Any remaining order dependencies between sets are be ordered as follows:</t>
</list></t>

<t><list style="numbers">
  <t>(First) By descending order of i=; then</t>
  <t>(Second) By descending order of t= (from the ARC-Seal header field within the set); then</t>
  <t>(Finally) By ascending US-ASCII <xref target="RFC1345"/> sort order for the entire canonicalized header field set</t>
</list></t>

<t>The intent of specifying this ordering is to allow downstream message handlers to
add their own ARC sets in a deterministic manner and to provide some
resiliance against misbehaving downstream MTAs.</t>

</section>
</section>
<section anchor="key-management-and-binding" title="Key Management and Binding">

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

<section anchor="namespace" title="Namespace">

<t>All ARC-related keys are stored in the same namespace as DKIM keys <xref target="RFC6376"/>: 
“_domainkey” specifically by adding the “._domainkey” suffix to the name of the
key (the “selector”).  For example, given an ARC-Seal (or ARC-Message-Signature)
field of a “d=” tag value of “example.com” and an “s=” value of “foo.bar”, the
DNS query seeking the public key will a query at the name
“foo.bar._domainkey.example.com”.</t>

</section>
</section>
</section>
<section anchor="usage" title="Usage">

<t>For a more thorough treatment of the recommended usage of the ARC header fields for 
both intermediaries and end receivers, please consult <xref target="ARC-USAGE"/>.</t>

<section anchor="participation" title="Participation">

<t>The inclusion of additional ARC sets is to be done whenever a trust
boundary is crossed, and especially when prior DKIM-Signatures might not survive
the handling being performed such as some mailing lists that modify
the content of messages or some gateway transformations. Note that trust boundaries
might or might not exactly correspond with ADMD boundaries.</t>

<t>Each participating ADMD MUST validate the preceding ARC set as a
part of asserting their own seal. Even if the set is determined to be invalid,
a participating ADMD SHOULD apply their own seal because this can help in
analysis of breakage points in the chain.</t>

</section>
<section anchor="relationship-between-dkim-signatures-and-arc-headers" title="Relationship between DKIM Signatures and ARC Headers">

<t>ARC-aware DKIM signers do not DKIM-sign any ARC header fields.</t>

</section>
<section anchor="arc-validation" title="Validating the ARC Set of Header Fields">

<t>Determining the validity of a chain of ARC sets is defined above in <xref target="cv-calc"/>.
Validation failures MUST be indicated with a “cv=” tag value of ‘fail’ 
when attaching a subsequent ARC-Seal header field.</t>

</section>
<section anchor="arc-set-validity" title="ARC Set 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="responding-to-arc-validity-violations" title="Responding to ARC Validity Violations">

<t>If a receiver determines that the ARC set of header fields has is invalid, 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” or “arc=fail” method annotation into a locally-affixed
Authentication-Results <xref target="RFC7601"/> header field.</t>

</section>
<section anchor="output-data-points-from-arc-evaluation" title="Output Data Points from 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>

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

<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 as follows:</t>

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

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

<t>The ARC-Seal 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="seal-hdr"/>)  <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:  OAR-Dev Group  <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:  OAR-Dev Group  <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>According to <xref target="RFC6982"/>, “this will allow reviewers and working groups to
assign due consideration to documents that have the benefit of running code,
which may serve as evidence of valuable experimentation and feedback that have
made the implemented protocols more mature.  It is up to the individual working
groups to use this information as they see fit”.</t>

<t>This information is known to be correct as of the third interoperability 
test event which was held on 2016-06-17.</t>

<t><list style="symbols">
  <t>GMail test reflector  <vspace blankLines='1'/>
Organization: Google  <vspace blankLines='1'/>
Description: Internal prototype implementation with both debug
  analysis and validating + sealing pass-through function  <vspace blankLines='1'/>
Status of Operation: Beta  <vspace blankLines='1'/>
Coverage: Full spec implemented as of <xref target="ARC-DRAFT"/>  <vspace blankLines='1'/>
Licensing: Proprietary - Internal only  <vspace blankLines='1'/>
Implementation Notes: Full functionality was demonstrated during
 the interop testing on 2016-06-17  <vspace blankLines='1'/>
Contact Info: <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref></t>
  <t>AOL test reflector  <vspace blankLines='1'/>
Organization: AOL  <vspace blankLines='1'/>
Description: Internal prototype implementation with both debug
  analysis and validating + sealing pass-through function  <vspace blankLines='1'/>
Status of Operation: Alpha  <vspace blankLines='1'/>
Coverage: ARC chain validity status checking is not operational, but
  otherwise this system conforms to <xref target="ARC-DRAFT"/>  <vspace blankLines='1'/>
Licensing: Proprietary - Internal only  <vspace blankLines='1'/>
Implementation Notes: Full functionality with the exception of chain
 validity checking was demonstrated during the interop testing on 2016-06-17  <vspace blankLines='1'/>
Contact Info: <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref></t>
  <t>dkimpy patch  <vspace blankLines='1'/>
Organization: OAR-DEV  <vspace blankLines='1'/>
Description: Patches to the dkimpy (Python DKIM) package [https://launchpad.net/dkimpy]
  to add ARC functionality  <vspace blankLines='1'/>
Status of Operation: Beta  <vspace blankLines='1'/>
Coverage: The test suite is incomplete, but the command line validator
  was demonstrated to interoperate with the Google and AOL implementations
  during the interop on 2016-06-17  <vspace blankLines='1'/>
Licensing: Open/Other (same as dkimpy package)  <vspace blankLines='1'/>
Implementation Notes: The patch has been submitted to the dkimpy maintainer
  for inclusion into the official package.  <vspace blankLines='1'/>
Contact Info: <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref></t>
  <t>OpenARC  <vspace blankLines='1'/>
Organization: TDP/Murray Kucherawy  <vspace blankLines='1'/>
Description: Implemention of milter functionality related to the OpenDKIM
  and OpenDMARC packages  <vspace blankLines='1'/>
Status of Operation: Alpha  <vspace blankLines='1'/>
Coverage: Built to support <xref target="ARC-DRAFT"/>  <vspace blankLines='1'/>
Licensing: Open/Other (same as OpenDKIM and OpenDMARC packages)  <vspace blankLines='1'/>
Implementation Notes: The build is FreeBSD oriented and takes some tweaks
  to build on RedHat-based Linux platforms. 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.  <vspace blankLines='1'/>
Contact Info: <eref target="mailto:arc-discuss@dmarc.org">arc-discuss@dmarc.org</eref></t>
  <t>Mailman addition  <vspace blankLines='1'/>
Organization: Mailman development team  <vspace blankLines='1'/>
Description: Integrated ARC capabilities within the Mailman package  <vspace blankLines='1'/>
Status of Operation: Implementation in progress  <vspace blankLines='1'/>
Coverage: Unknown  <vspace blankLines='1'/>
Licensing: Same as mailman package - GPL  <vspace blankLines='1'/>
Implementation Notes: Incomplete at this time  <vspace blankLines='1'/>
Contact Info: [https://www.gnu.org/software/mailman/contact.html]</t>
</list></t>

</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;
<reference anchor="DMARC-INTEROP" target="https://tools.ietf.org/html/draft-ietf-dmarc-interoperability-17">
  <front>
    <title>Interoperability Issues Between DMARC and Indirect Email Flows</title>
    <author initials="F." surname="Martin" fullname="Franck Martin">
      <organization></organization>
    </author>
    <author initials="E." surname="Lear" fullname="Elliot Lear">
      <organization></organization>
    </author>
    <author initials="T." surname="Draegen" fullname="Tim Draegen">
      <organization></organization>
    </author>
    <author initials="E." surname="Zwicky" fullname="Elizabeth Zwicky">
      <organization></organization>
    </author>
    <author initials="K." surname="Andersen" fullname="Kurt Andersen">
      <organization></organization>
    </author>
    <date year="2016" month="June" day="22"/>
  </front>
</reference>
<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" target="https://tools.ietf.org/html/draft-andersen-arc-05">
  <front>
    <title>Authenticated Received Chain (ARC) Protocol (I-D-05)</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="2016" month="June" day="01"/>
  </front>
</reference>
<reference anchor="ARC-USAGE" target="https://tools.ietf.org/html/draft-ietf-dmarc-arc-usage-00">
  <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="2016" month="June" day="25"/>
  </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. ]]</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>

