<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- $Id: draft-ietf-appsawg-rfc5451bis.xml,v 1.58 2013/07/11 13:52:37 msk Exp $ -->
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc strict="no" ?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>

<rfc ipr="trust200902" category="std" obsoletes="5451, 6577"
        docName="draft-ietf-appsawg-rfc5451bis-10">

<front>
	<title abbrev="Authentication-Results Header Field">
		Message Header Field for Indicating Message Authentication
		Status
	</title>

	<author initials="M. S." surname="Kucherawy"
		fullname="Murray S. Kucherawy">
		<address>
			<postal>
				<street>270 Upland Drive</street>
				<city>San Francisco</city>
				<region>CA</region>
				<code>94127</code>
				<country>US</country>
			</postal>

			<email>superuser@gmail.com</email>
		</address>
	</author>

	<date year="2013"/>

	<area>Applications</area>
	<workgroup>Individual submission</workgroup>
	<keyword>DKIM</keyword>
	<keyword>DomainKeys</keyword>
	<keyword>SenderID</keyword>
	<keyword>SPF</keyword>
	<keyword>ADSP</keyword>
	<keyword>ATPS</keyword>
	<keyword>VBR</keyword>
	<keyword>Authentication</keyword>
	<keyword>Reputation</keyword>

	<abstract>
		<t> This document specifies a message header field called
		    Authentication-Results for use with
		    electronic mail messages to indicate the results of
		    message authentication efforts.  Any receiver-side
		    software, such as mail filters or Mail User Agents
		    (MUAs), can use this header field to relay that
		    information in a convenient and meaningful way to users,
		    or make sorting and filtering decisions. </t>
	</abstract>

</front>

<middle>
	<section anchor="intro" title="Introduction">
		<t> This document describes a header field called
		    Authentication-Results for electronic mail messages that
		    presents the results of a message authentication effort
		    in a machine-readable format.  The intent of the header
		    field is to create a place to collect such data when
		    message authentication mechanisms are in use so that a
		    Mail User Agent (MUA) and downstream filters can make
		    filtering decisions and/or provide a recommendation to the
		    user as to the validity of the message's origin and possibly
		    the safety and integrity of its content. </t>

		<t> This document revises the original definition found in
		    <xref target="RFC5451"/> based upon various authentication
		    protocols in current use and incorporates errata logged
		    since the publication of the original specification. </t>

		<t> End users are not expected to be direct consumers of this
		    header field.  This header field is intended for
		    consumption by programs that will then use such data or
		    render it in a human-usable form. </t>

		<t> This document specifies the format of this header
		    field and discusses the implications of its presence or
		    absence.  However, it does not discuss how the data
		    contained in the header field ought to be used, such as what
		    filtering decisions are appropriate, or how an MUA might
		    render those results) as these are local policy and/or
		    user interface design questions that are not appropriate
		    for this document. </t>

		<t> At the time of publication of this document, the following
		    are published, domain-level email authentication methods in
		    common use:

		    <list style="symbols">
			<t> Author Domain Signing Practices
			    (<xref target="ADSP"/>) </t>
		    	<t> SMTP Service Extension for Authentication
		            (<xref target="AUTH"/>) </t>
		        <t> DomainKeys Identified Mail Signatures
		            (<xref target="DKIM"/>) </t>
		        <t> Sender Policy Framework (<xref target="SPF"/>) </t>
		        <t> Vouch-By-Reference (<xref target="VBR"/>) </t>
		        <t> reverse IP address name validation
			    ("iprev", defined in <xref target="iprev"/>) </t>
		    </list> </t>

		<t> In addition, the following are non-standard methods
		    recognized by this specification that are no longer common:

		    <list style="symbols">
			<t> DomainKeys (<xref target="DOMAINKEYS"/>)
		 	    (Historic) </t>
			<t> Sender ID (<xref target="SENDERID"/>)
			    (Experimental) </t>
		    </list> </t>

		<t> This specification is not intended to be restricted to
		    domain-based authentication schemes, but the existing
		    schemes in that family have proven to be a good starting
		    point for implementations.  The goal is to give current
		    and future authentication schemes a common framework within
		    which to deliver their results to downstream agents and
		    discourage the creation of unique header fields for
		    each. </t>

		<t> Although SPF defined a header field called "Received-SPF"
		    and the historic DomainKeys defined one called
		    "DomainKey-Status" for this purpose, those header fields are
		    specific to the conveyance of their respective results only
		    and thus are insufficient to satisfy the requirements
		    enumerated below.  In addition, many SPF implementations
		    have adopted the header field specified here at least as
		    an option, and DomainKeys has been obsoleted by DKIM. </t>

		<section anchor="purpose" title="Purpose">
			<t> The header field defined in this document is
			    expected to serve several purposes:

			<list style="numbers">
				<t> Convey the results of various message
				    authentication checks, which are applied by
				    upstream filters and Mail Transfer
				    Agents (MTAs) and then passed to MUAs and
				    downstream filters within the same "trust
				    domain".  Such agents might wish to render
				    those results to end users or to use those
				    data to apply more or less stringent content
				    checks based on authentication
				    results; </t>

				<t> Provide a common location within a message
				    for this data; </t>

				<t> Create an extensible framework for
				    reporting new authentication methods as
				    they emerge. </t>
			</list> </t>

			<t> In particular, the mere presence of this header
			    field does not mean its contents are valid.
			    Rather, the header field is reporting assertions
			    made by one or more authentication schemes 
			    (supposedly) applied somewhere upstream.
			    For an MUA or downstream filter to treat the
			    assertions as actually valid, there must be an
			    assessment of the trust relationship among such
			    agents, the validating MTA, and the mechanism for
			    conveying the information. </t>
		</section>

		<section anchor="trust" title="Trust Boundary">
			<t> This document makes several references to the
			    "trust boundary" of an administrative management
			    domain (ADMD).  Given the diversity among existing
			    mail environments, a precise definition of this
			    term isn't possible. </t>

			<t> Simply put, a transfer from the producer of the
			    header field to the consumer must occur within a
			    context that permits the consumer to treat
			    assertions by the producer as being reliable and
			    accurate (trustworthy).  How this trust is obtained
			    is outside the scope of this document.  It is
			    entirely a local matter. </t>

			<t> Thus, this document defines a "trust boundary" as
			    the delineation between "external" and "internal"
			    entities.  Services that are internal -- within the
			    trust boundary -- are provided by the ADMD's
			    infrastructure for its users.  Those that are
			    external are outside of the authority of the
			    ADMD.  By this definition, hosts that are within
			    a trust boundary are subject to the ADMD's authority
			    and policies, independent of their physical
			    placement or their physical operation.  For example,
			    a host within a trust boundary might actually be
			    operated by a remote service provider and reside
			    physically within its data center. </t>

			<t> It is possible for a message to be evaluated inside
			    a trust boundary, but then depart and re-enter the
			    trust boundary.  An example might be a forwarded
			    message such as a message/rfc822 attachment
			    (see Multipurpose Internet Mail Extensions
			    <xref target="MIME"/>), or one that is part of a
			    multipart/digest.  The details reported by this field
			    cannot be trusted in that case.  Thus, this field
			    found within one of those media types is typically
			    ignored. </t>
		</section>

		<section anchor="scope" title="Processing Scope">
			<t> The content of this header field is meant to convey
			    to message consumers that authentication work on
			    the message was already done within its trust
			    boundary, and those results are being presented.
			    It is not intended to provide message parameters
			    to consumers so that they can perform authentication
			    protocols on their own. </t>
		</section>

		<section anchor="requirements" title="Requirements">
			<t> This document establishes no new requirements on
			    existing protocols or servers. </t>

			<t> In particular, this document establishes no
			    requirement on MTAs to reject or filter arriving
			    messages that do not pass authentication checks.
			    The data conveyed by the specified header field's
			    contents are for the information of MUAs and
			    filters and are to be used at their
			    discretion. </t>
		</section>

		<section anchor="definitions" title="Definitions">
			<t> This section defines various terms used throughout
			    this document. </t>

			<section anchor="defs_keywords" title="Key Words">
	   			<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="KEYWORDS"/>. </t>
			</section>

			<section anchor="defs_security" title="Security">
				<t> Guidelines for Writing RFC Text on
				    Security Considerations
				    (<xref target="SECURITY"/>) discusses
				    authentication and authorization and the
				    conflation of the two concepts.  The use
				    of those terms within the context of
				    recent message security work has given rise
				    to slightly different definitions, and
				    this document reflects those current
				    usages, as follows:

				    <list style="symbols">
					<t> "Authorization" is the
					    establishment of permission to use
					    a resource or represent an
					    identity.  In this context,
					    authorization indicates that a
					    message from a particular ADMD
					    arrived via a route the ADMD
					    has explicitly approved. </t>

					<t> "Authentication" is the assertion
					    of validity of a piece of data
					    about a message (such as the
					    sender's identity) or the message
					    in its entirety. </t>
				    </list> </t>

				<t> As examples: SPF and Sender-ID
				    are authorization mechanisms in that they
				    express a result
				    that shows whether or not the ADMD that
				    apparently sent the message has explicitly
				    authorized the connecting Simple Mail
				    Transfer Protocol (<xref target="SMTP"/>)
				    client to relay messages on its behalf,
				    but they do not actually validate any other
				    property
				    of the message itself.  By contrast, DKIM
				    is agnostic as to the routing of a message
				    but uses cryptographic signatures to
				    authenticate agents, assign (some)
				    responsibility
				    for the message (which implies
				    authorization), and ensure that the listed
				    portions of the message were not
				    modified in transit.  Since the signatures
				    are not tied to SMTP connections, they can
				    be added by either the ADMD of origin,
				    intermediate ADMDs (such as a mailing list
				    server), other handling agents, or any
				    combination. </t>

				<t> Rather than create a separate header field
				    for each class of solution, this proposal
				    groups them both into a single header
				    field. </t>
			</section>

			<section anchor="defs_email" title="Email Architecture">
				<t> <list style="symbols">
					<t> A "border MTA" is an MTA that
					    acts as a gateway between the
					    general Internet and the users
					    within an organizational
					    boundary.  (See also
					    <xref target="trust"/>.) </t>

					<t> A "delivery MTA" (or Mail Delivery
					    Agent or MDA) is an MTA that
					    actually enacts delivery of a
					    message to a user's inbox or other
					    final delivery. </t>

					<t> An "intermediate MTA" is any MTA
					    that is not a delivery MTA and is
					    also not the first MTA to handle
					    the message. </t>
				</list> </t>

				<t> The following diagram illustrates the flow
				    of mail among these defined components.  See
				    Internet Mail Architecture
				    <xref target="EMAIL-ARCH"/>
				    for further discussion on general email
				    system architecture, which includes detailed
				    descriptions of these components, and
				    <xref target="op_considerations"/> of this
				    document for discussion about the common
				    aspects of email authentication in current
				    environments. 

	<figure><artwork>
                       +-----+   +-----+   +------------+
                       | MUA |--&gt;| MSA |--&gt;| Border MTA |
                       +-----+   +-----+   +------------+
                                                 |
                                                 |
                                                 V
                                            +----------+
                                            | Internet |
                                            +----------+
                                                 |
                                                 |
                                                 V
+-----+   +-----+   +------------------+   +------------+
| MUA |&lt;--| MDA |&lt;--| Intermediate MTA |&lt;--| Border MTA |
+-----+   +-----+   +------------------+   +------------+
	</artwork></figure>
			    </t>

				<t> Generally, it is assumed that the work of
				    applying message authentication schemes
				    takes place at a border MTA or a delivery
				    MTA.  This specification is written with
				    that assumption in mind.  However, there
				    are some sites at which the entire mail
				    infrastructure consists of a single host.
				    In such cases, such terms as "border MTA"
				    and "delivery MTA" might well apply to the
				    same machine or even the very same agent.
				    It is also possible that some message
				    authentication tests could take place on
				    an intermediate MTA.  Although this
				    document doesn't specifically describe
				    such cases, they are not meant to be
				    excluded. </t>
			</section>

			<section anchor="defs_other" title="Other Terms">
				<t> In this document, the term "producer" refers
				    to any component that adds this header field
				    to messages it is handling, and "consumer"
				    refers to any component that identifies,
				    extracts, and parses the header field
				    to use as part of a handling decision. </t>
			</section>
		</section>

		<section anchor="environment" title="Trust Environment">
			<t> This header field permits one or more message
			    validation mechanisms to communicate output to
			    one or more separate assessment mechanisms.  These
			    mechanisms operate within a unified trust boundary
			    that defines an Administrative Management Domain
			    (ADMD).  An ADMD contains one or more entities
			    that perform validation and generate the header
			    field, and one or more that consume it for some
			    type of assessment.  The field often contains no
			    integrity or validation mechanism of its own, so
			    its presence must be trusted implicitly.  Hence,
			    valid use of the header field requires removing
			    any occurrences of it that are present when the
			    message enters the ADMD.  This ensures that later
			    occurrences have been added within the trust
			    boundary of the ADMD. </t>

			<t> The "authserv-id" token defined in
			    <xref target="format_formal"/> can be used to
			    reference an entire ADMD or a specific validation
			    engine within an ADMD.  Although the labeling
			    scheme is left as an operational choice, some
			    guidance for selecting a token is provided
			    in later sections of this document. </t>
		</section>
	</section>

	<section anchor="format" title="Definition and Format of the Header Field">
		<t> This section gives a general overview of the format
		    of the header field being defined, and then provides more
		    formal specification. </t>

		<section anchor="format_general" title="General Description">
			<t> The header field specified here is called
			    "Authentication-Results".  It is a Structured
			    Header Field as defined in Internet Message
			    Format (<xref target="MAIL"/>)
			    and thus all of the related definitions in that
			    document apply. </t>

			<t> This header field is added at the top of
			    the message as it transits MTAs that do
			    authentication checks, so some idea of how far away
			    the checks were done can be inferred.  It is
			    therefore considered to be a Trace Field as
			    defined in <xref target="MAIL"/>, and thus all of
			    the related definitions in that document
			    apply.  </t>

			<t> The value of the header field (after removing
			    comments) consists of an authentication
			    identifier, an optional version, and then
			    a series of statements and supporting data.
			    The statements are of the form "method=result", and
			    indicate which authentication method(s) were applied
			    and their respective results.  For each such
			    statement, the supporting data can include a
			    "reason" string, and one or more
			    "property=value" statements indicating which
			    message properties were evaluated to reach that
			    conclusion. </t>

			<t> The header field can appear more than once in a
			    single message, or more than one result can be
			    represented in a single header field, or a
			    combination of these can be applied. </t>
		</section>

		<section anchor="format_formal" title="Formal Definition">
			<t> Formally, the header field is specified as
			    follows using Augmented Backus-Naur Form
			    (<xref target="ABNF"/>): </t>

			<figure><artwork>
  authres-header = "Authentication-Results:" [CFWS] authserv-id
           [ CFWS authres-version ]
           ( no-result / 1*resinfo ) [CFWS] CRLF

  authserv-id = value
              ; see below for a description of this element

  authres-version = 1*DIGIT [CFWS]
          ; indicates which version of this specification is in use;
          ; this specification is version "1", and the absence of a
          ; version implies this version of the specification

  no-result = [CFWS] ";" [CFWS] "none"
            ; the special case of "none" is used to indicate that no
            ; message authentication was performed

  resinfo = [CFWS] ";" methodspec [ CFWS reasonspec ]
            *( CFWS propspec )

  methodspec = [CFWS] method [CFWS] "=" [CFWS] result
             ; indicates which authentication method was evaluated
             ; and what its output was

  reasonspec = "reason" [CFWS] "=" [CFWS] value
             ; a free-form comment on the reason the given result
             ; was returned

  propspec = ptype [CFWS] "." [CFWS] property [CFWS] "=" pvalue
           ; an indication of which properties of the message
           ; were evaluated by the authentication scheme being
           ; applied to yield the reported result

  method = Keyword [ [CFWS] "/" [CFWS] method-version ]
         ; a method indicates which method's result is
         ; represented by "result", and is one of the methods
         ; explicitly defined as valid in this document
         ; or is an extension method as defined below

  method-version = 1*DIGIT [CFWS]
         ; indicates which version of the method specification is
         ; in use, corresponding to the matching entry in the IANA
         ; Email Authentication Methods registry; a value of "1"
         ; is assumed if this version string is absent

  result = Keyword
         ; indicates the results of the attempt to authenticate
         ; the message; see below for details

  ptype = "smtp" / "header" / "body" / "policy"
        ; indicates whether the property being evaluated was
        ; a parameter to an [SMTP] command, or was a value taken
        ; from a message header field, or was some property of
        ; the message body, or some other property evaluated by
        ; the receiving MTA

  property = special-smtp-verb / Keyword
          ; if "ptype" is "smtp", this indicates which [SMTP]
          ; command provided the value that was evaluated by the
          ; authentication scheme being applied; if "ptype" is
          ; "header", this indicates from which header field the
          ; value being evaluated was extracted; if "ptype" is
          ; "body", this indicates where in the message body
          ; a value being evaluated can be found (e.g., a specific
          ; offset into the message or a reference to a MIME part);
          ; if "ptype" is "policy" then this indicates the name
          ; of the policy that caused this header field to be
          ; added (see below)

  special-smtp-verb = "mailfrom" / "rcptto"
          ; special cases of [SMTP] commands that are made up
          ; of multiple words

  pvalue = [CFWS] ( value / [ [ local-part ] "@" ] domain-name )
           [CFWS]
         ; the value extracted from the message property defined
         ; by the "ptype.property" construction
			</artwork></figure>

			<t> "local-part" is defined in Section 3.4.1, and
			    "CFWS" is defined in Section 3.2.2, of
			    <xref target="MAIL"/>. </t>

			<t> "Keyword" is defined in Section 4.1.2 of
			    <xref target="SMTP"/>. </t>

			<t> The "value" is as defined in Section 5.1 of
			    <xref target="MIME"/>. </t>

			<t> The "domain-name" is as defined in Section 3.5 of
			    <xref target="DKIM"/>. </t>

			<t> The "Keyword" used in "result" above is further
			    constrained by the necessity of being enumerated
			    in <xref target="m_and_r"/>. </t>

			<t> See <xref target="identifier"/> for a description
			    of the "authserv-id" element. </t>

			<t> If the value portion of a "pvalue" construction
			    identifies something intended to be an e-mail
			    identity, then it MUST use the right hand portion of
			    that ABNF definition. </t>

			<t> The list of commands eligible for use with the
			    "smtp" ptype can be found in Section 4.1 of
			    <xref target="SMTP"/>. </t>

			<t> The "propspec" may be omitted if, for example,
			    the method was unable to extract any properties
			    to do its evaluation yet has a result to
			    report. </t>

			<t> Where an SMTP command name is being reported as a
			    "property", the agent generating the header field
			    represents that command by converting it to lowercase
			    and dropping any spaces (e.g., "MAIL FROM" becomes
			    "mailfrom", "RCPT TO" becomes "rcptto", etc.). </t>

			<t> A "ptype" value of "policy" indicates a policy
			    decision about the message not specific to a
			    property of the message that could be extracted.
			    For example, if a method would normally report a
			    "ptype.property" of "header.From" and no From:
			    header field was present, the method can use
			    "policy" to indicate that no conclusion
			    about the authenticity of the message could be
			    reached. </t>

			<t> Examples of complete messages using this
			    header field can be found in
			    <xref target="examples"/>. </t>
		</section>

		<section anchor="identifier"
			title="Authentication Identifier Field">
			<t> Every Authentication-Results header field 
			    has an authentication service identifier field
			    ("authserv-id" above).  Specifically, this is any
			    string intended to identify the authentication
			    service within the ADMD that conducted
			    authentication checks on the message.  This
			    identifier is intended to be machine-readable and not
			    necessarily meaningful to users. </t>

			<t> Since agents consuming this field will use this
			    identifier to determine whether its contents
			    are of interest (and are safe to use), the
			    uniqueness of the identifier MUST be guaranteed by
			    the ADMD that generates it and MUST pertain to
			    that ADMD.  MUAs or
			    downstream filters SHOULD use this identifier to
			    determine whether or not the data contained in an
			    Authentication-Results header field ought to be
			    used or ignored. </t>

			<t> For simplicity and scalability, the authentication
			    service identifier SHOULD be a common token used
			    throughout the ADMD.  Common practice is to use
			    the DNS domain name used by or within that ADMD,
			    sometimes called the "organizational domain",
			    but this is not strictly necessary. </t>

			<t> For tracing and debugging purposes, the
			    authentication identifier can instead be the specific
			    hostname of the MTA performing the authentication
			    check whose result is being reported.  Moreover,
			    some implementations define a sub-structure to
			    the identifier; these are outside of the scope of
			    this specification. </t>

			<t> Note, however, that using a local,
			    relative identifier like a flat hostname, rather
			    than a hierarchical and globally unique ADMD
			    identifier like a DNS domain name, makes
			    configuration more difficult for large sites.  The
			    hierarchical identifier permits aggregating
			    related, trusted systems together under a single,
			    parent identifier, which in turn permits assessing
			    the trust relationship with a single reference.
			    The alternative is a flat namespace requiring
			    individually listing each trusted system.  Since
			    consumers will use the identifier to determine
			    whether to use the contents of the header field:

			    <list style="symbols">
				<t> Changes to the identifier impose a large,
				    centralized administrative burden. </t>

				<t> Ongoing administrative changes require
				    constantly updating this centralized
				    table, making it difficult to ensure
				    that an MUA or downstream filter will have
				    access to accurate information for
				    assessing the usability of the header
				    field's content.  In particular, consumers
				    of the header field will need to know not
				    only the current identifier(s) in use,
				    but previous ones as well to account
				    for delivery latency or later
				    re-assessment of the header field's
				    contents. </t>
			    </list> </t>

			<t> Examples of valid authentication identifiers are
			    "example.com", "mail.example.org", 
			    "ms1.newyork.example.com", and "example-auth". </t>
		</section>

		<section anchor="versions" title="Version Tokens">
			<t> The grammar above provides for the optional
			    inclusion of versions on both the header field
			    itself (attached to the authserv-id token)
			    and on each of the methods being reported.
			    The method version refers to the method itself,
			    which is specified in the documents describing
			    those methods, while the authserv-id version
			    refers to this document and thus the syntax of
			    this header field. </t>

			<t> The purpose of including these is to avoid
			    misinterpretation of the results.  That is,
			    if a parser finds a version after an
			    authserv-id that it does not explicitly
			    know, it can immediately discontinue trying to
			    parse since what follows might not be in an
			    expected format.  For a method version, the
			    parser SHOULD ignore a method result if the
			    version is not supported in case the semantics
			    of the result have a different meaning than what
			    is expected.  For example, if a hypothetical
			    DKIM version 2 yielded a "pass" result for
			    different reasons than version 1 does, a consumer
			    of this field might not want to use the altered
			    semantics.  Allowing versions in the syntax
			    is a way to indicate this and let the consumer
			    of the header field decide. </t>
		</section>

		<section anchor="m_and_r"
		         title="Defined Methods and Result Values">
			<t> Each individual authentication method returns
			    one of a set of specific result values.  The
			    subsections below provide references to the
			    documents defining the authentication methods
			    specifically supported by this document, and
			    their corresponding result values. Verifiers
			    SHOULD use these values as described below.  New
			    methods not specified in this document, but intended
			    to be supported by the header field defined here,
			    MUST include a similar result table either in
			    its defining document or in a supplementary
			    one. </t>

			<section anchor="dkim_dk_results"
			         title="DKIM and DomainKeys">
				<t> DKIM is represented by the "dkim"
				    method and is defined in
				    <xref target="DKIM"/>.  DomainKeys is
				    defined in <xref target="DOMAINKEYS"/>
				    and is represented by the "domainkeys"
				    method. </t>

				<t> A signature is "acceptable to the
				    ADMD" if it passes local policy
				    checks (or there are no specific local
				    policy checks).  For example, an ADMD policy
				    might require that the signature(s) on the
				    message be added using the DNS domain
				    present in the From: header field of the
				    message, thus making third-party signatures
				    unacceptable even if they verify. </t>

 				<t> Both DKIM and DomainKeys use the same result
				    set, as follows:

				<list style="hanging">
					<t hangText="none:"> The message was
					    not signed. </t>

					<t hangText="pass:"> The message was
					    signed, the signature or signatures
					    were acceptable to the ADMD,
					    and the signature(s) passed
					    verification tests. </t>

					<t hangText="fail:"> The message
					    was signed and the signature or
					    signatures were acceptable to the
					    ADMD, but they failed the
					    verification test(s). </t>

					<t hangText="policy:"> The message
					    was signed but some aspect of the
					    signature or signatures were not
					    acceptable to the ADMD. </t>

					<t hangText="neutral:"> The message
					    was signed but the signature or
					    signatures contained syntax errors
					    or were not otherwise able to be
					    processed.  This result is
					    also used for other failures
					    not covered elsewhere in this
					    list. </t>

					<t hangText="temperror:"> The message
					    could not be verified due to some
					    error that is likely transient
					    in nature, such as a temporary
					    inability to retrieve a public
					    key.  A later attempt may produce
					    a final result. </t>

					<t hangText="permerror:"> The message
					    could not be verified due to some
					    error that is unrecoverable, such
					    as a required header field being
					    absent.  A later attempt is
					    unlikely to produce a final
					    result. </t>
				</list> </t>

				<t> <xref target="DKIM"/> advises that if a
				    message fails verification, it is to be
				    treated as an unsigned message.  A report
				    of "fail" here permits the receiver of the
				    report to decide how to handle the failure.
 				    A report of "neutral" or "none" preempts
				    that choice, ensuring the message will
				    be treated as if it had not been
				    signed. </t>
			</section>

			<section anchor="spf_sid_results"
			         title="SPF and Sender-ID">
				<t> SPF and Sender ID use the "spf" and
				    "sender-id" method names, respectively.
				    The result values for SPF are defined in
				    Section 2.5 of
				    <xref target="SPF"/>, and those definitions
				    are included here by reference: 

				<figure><artwork>
  +-----------+-------------------------------+
  |    Code   | Meaning                       |
  +-----------+-------------------------------+
  | none      | [RFC4408] Section 2.5.1       |
  +-----------+-------------------------------+
  | pass      | [RFC4408] Section 2.5.3       |
  +-----------+-------------------------------+
  | fail      | [RFC4408] Section 2.5.4       |
  +-----------+-------------------------------+
  | softfail  | [RFC4408] Section 2.5.5       |
  +-----------+-------------------------------+
  | policy    | [this document] Section 2.5.2 |
  +-----------+-------------------------------+
  | neutral   | [RFC4408] Section 2.5.2       |
  +-----------+-------------------------------+
  | temperror | [RFC4408] Section 2.5.6       |
  +-----------+-------------------------------+
  | permerror | [RFC4408] Section 2.5.7       |
  +-----------+-------------------------------+
				</artwork> </figure> </t>

				<t> These result codes are used in the context
				    of this specification to reflect the result
				    returned by the component conducting SPF
				    evaluation. </t>

				<t> Similarly, the results for Sender-ID
				    are listed and described in Section 4.2 of
				    <xref target="SENDERID"/>, which in turn
				    uses the SPF definitions. </t>

				<t> Note that both of those documents specify
				    result codes that use mixed case, but they
				    are typically used all-lowercase in this
				    context. </t>

				<t> In both cases, an additional result of
				    "policy" is defined, which means the
				    client was authorized to inject or relay
				    mail on behalf of the sender's
				    DNS domain according to the
				    authentication method's algorithm,
				    but local policy dictates that the
				    result is unacceptable.  For example,
				    "policy" might be used if SPF returns a
				    "pass" result, but a local policy check
				    matches the sending DNS domain to one found
				    in an explicit list of unacceptable
				    DNS domains (e.g., spammers). </t>

				<t> If the retrieved sender policies used to
				    evaluate SPF and Sender ID do not contain
				    explicit provisions for authenticating the
				    local-part (see Section 3.4.1 of
				    <xref target="MAIL"/>) of an address,
				    the "pvalue" reported along with results
				    for these mechanisms SHOULD NOT
				    include the local-part. </t>
			</section>

			<section anchor="iprev_results"
			         title="&quot;iprev&quot;">
				<t> The result values are used by the
				    "iprev" method, defined in
				    <xref target="iprev"/>, are as follows:

				<list style="hanging">
					<t hangText="pass:"> The DNS
					    evaluation succeeded, i.e., the
					    "reverse" and "forward" lookup
					    results were returned and were
					    in agreement. </t>

					<t hangText="fail:"> The 
					    DNS evaluation failed.  In
					    particular, the "reverse" and
					    "forward" lookups each produced
					    results but they were not in
					    agreement, or the "forward" query
					    completed but produced no result,
					    e.g., a DNS RCODE of 3, commonly
					    known as NXDOMAIN, or an RCODE of
					    0 (NOERROR) in a reply containing
					    no answers, was returned. </t>

					<t hangText="temperror:"> The 
					    DNS evaluation could not be
					    completed due to some error that
					    is likely transient in nature,
					    such as a temporary DNS error, e.g.,
					    a DNS RCODE of 2, commonly known as
					    SERVFAIL, or other error condition
					    resulted.  A later attempt may
					    produce a final result. </t>

					<t hangText="permerror:"> The
					    DNS evaluation could not be
					    completed because no PTR data are
					    published for the connecting IP
					    address, e.g., a DNS RCODE
					    of 3, commonly known as NXDOMAIN,
					    or an RCODE of 0 (NOERROR) 
					    in a reply containing no answers,
					    was returned.  This prevented
					    completion of the evaluation.  A
					    later attempt is unlikely to
					    produce a final result. </t>
				</list> </t>

				<t> There is no "none" for this method since
				    any TCP connection delivering email
				    has an IP address associated with it,
				    so some kind of evaluation will always
				    be possible. </t>

				<t> For discussion of the format of DNS
				    replies, see Domain Names - Implementation
				    And Specification
				    (<xref target="DNS"/>). </t>
			</section>

			<section anchor="auth_results" title="SMTP AUTH">
				<t> SMTP AUTH (defined in
				    <xref target="AUTH"/>) is represented by
				    the "auth" method, and its result values
				    are as follows:

				<list style="hanging">
					<t hangText="none:"> SMTP
					    authentication was not
					    attempted. </t>

					<t hangText="pass:"> The SMTP client
					    authenticated to the server
					    reporting the result using
					    the protocol described in
					    <xref target="AUTH"/>. </t>

					<t hangText="fail:"> The SMTP
					    client attempted to
					    authenticate to the server using
					    the protocol described in
					    <xref target="AUTH"/> but was
					    not successful, yet continued to
					    send the message about which a
					    result is being reported. </t>

					<t hangText="temperror:"> The SMTP
					    client attempted to authenticate
					    using the protocol described in
					    <xref target="AUTH"/> but was
					    not able to complete the attempt
					    due to some error which is likely
					    transient in nature, such as a
					    temporary directory service lookup
					    error.  A later attempt may
					    produce a final result. </t>

					<t hangText="permerror:"> The SMTP
					    client attempted to authenticate
					    using the protocol described in
					    <xref target="AUTH"/> but was
					    not able to complete the attempt
					    due to some error that is likely
					    not transient in nature, such as a
					    permanent directory service lookup
					    error.  A later attempt is not
					    likely produce a final result. </t>
				</list> </t>

				<t> An agent making use of the data
				    provided by this header field SHOULD
				    consider "fail" and "temperror"
				    to be synonymous in terms of message
				    authentication, i.e., the client did not
				    authenticate in either case. </t>
			</section>

			<section anchor="other_results"
				title="Other Registered Codes">
				<t> Result codes were also registered in other
				    RFCs for Vouch By Reference (in
				    <xref target="AR-VBR"/>, represented by
				    "vbr"), Authorized
				    Third-Party Signatures (in
				    <xref target="ATPS"/>, represented by
				    "dkim-atps"), and the DKIM-related
				    Author Domain Signing Practices (in
				    <xref target="ADSP"/>, represented by
				    "dkim-adsp"). </t>
			</section>

			<section anchor="x_methods" title="Extension Methods">
				<t> Additional authentication method
				    identifiers (extension methods) may be
				    defined in the future by later revisions
				    or extensions to this specification.
				    These method identifiers are registered
				    with the Internet Assigned Numbers
				    Authority (IANA) and, preferably,
				    published in an RFC.  See
				    <xref target="iana"/> for further
				    details. </t>

				<t> Extension methods can be defined for the
				    following reasons:

				<list style="numbers">
					<t> To allow additional information
					    from new authentication systems to
					    be communicated to MUAs or
					    downstream filters.  The
					    names of such identifiers ought to
					    reflect the name of the method
					    being defined, but ought not be
					    needlessly long. </t>

					<t> To allow the creation of
					    "sub-identifiers" that indicate
					    different levels of authentication
					    and differentiate between
					    their relative strengths, e.g.,
					    "auth1-weak" and
					    "auth1-strong". </t>
				</list> </t>

				<t> Authentication method implementers are
				    encouraged to provide adequate information,
				    via message header field comments if
				    necessary, to allow an MUA developer to
				    understand or relay ancillary details of
				    authentication results.  For example, if
				    it might be of interest to relay what
				    data was used to perform an evaluation,
				    such information could be relayed as a
				    comment in the header field, such as: </t>

				<figure><artwork>
     Authentication-Results: example.com;
               foo=pass bar.baz=blob (2 of 3 tests OK)
				</artwork></figure>

				<t> Experimental method identifiers MUST only
				    be used within ADMDs that have explicitly
				    consented to use them.  These method
				    identifiers and the parameters associated
				    with them are not documented in RFCs.
				    Therefore, they are subject to change at
				    any time and not suitable for production
				    use.  Any MTA, MUA, or downstream filter
				    intended for production use SHOULD ignore
				    or delete any Authentication-Results
				    header field that includes an experimental
				    (unknown) method identifier. </t>
			</section>

			<section anchor="x_results"
				title="Extension Result Codes">
				<t> Additional result codes (extension results)
				    might be defined in the future by later
				    revisions or extensions to this
				    specification.  Result codes MUST be
				    registered with the Internet Assigned
				    Numbers Authority (IANA) and preferably
				    published in an RFC.  See
				    <xref target="iana"/> for further
				    details. </t>

				<t> Extension results MUST only be used within
				    ADMDs that have explicitly consented to
				    use them.  These results and the
				    parameters associated with them are
				    not formally documented.  Therefore, they
				    are subject to change at any time and not
				    suitable for production use.  Any MTA, MUA
				    or downstream filter intended for
				    production use SHOULD ignore or delete any
				    Authentication-Results header field that
				    includes an extension result. </t>
			</section>
		</section>
	</section>

	<section anchor="iprev"
		title="The &quot;iprev&quot; Authentication Method">
		<t> This section defines an additional authentication method
		    called "iprev". </t>

		<t> "iprev" is an attempt to verify that a client
		    appears to be valid based on some DNS queries, which is to
		    say that the IP address is explicitly associated with
		    a domain name.
		    Upon receiving a session initiation of some kind from
		    a client, the IP address of the client peer is queried
		    for matching names (i.e., a number-to-name translation,
		    also known as a "reverse lookup" or a "PTR" record
		    query).  Once that result is acquired, a lookup of each
		    of the names (i.e., a name-to-number translation, or an "A"
		    or "AAAA" record query) thus retrieved is done.  The
		    response to this second check will typically result in at
		    least one mapping back to the client's IP address. </t>

		<t> Expressed as an algorithm: If the client peer's IP
		    address is I, the list of names to which I maps (after a
		    "PTR" query) is the set N, and the union of IP addresses
		    to which each member of N maps (after corresponding "A"
		    and "AAAA" queries) is L, then this test is successful if
		    I is an element of L. </t>

		<t> The response to a PTR query could contain multiple names.
		    To prevent heavy DNS loads, agents performing these queries
		    MUST be implemented such that the number of names evaluated
		    by generation of corresponding A or AAAA queries is limited
		    so as not unduly taxing to the DNS infrastructure, though it
		    MAY be configurable by an administrator.
		    As an example, Section 5.5 of <xref target="SPF"/> chose a
		    limit of 10 for its implementation of this algorithm. </t>

		<t> DNS Extensions to Support IP Version 6
		    (<xref target="DNS-IP6"/>) discusses the query formats for
		    the IPv6 case. </t>

		<t> There is some contention regarding the wisdom and
		    reliability of this test.  For example, in some regions
		    it can be difficult for this test ever to pass because
		    the practice of arranging to match the forward and
		    reverse DNS is infrequently observed.  Therefore,
		    the precise implementation details of how a verifier
		    performs an "iprev" test are not specified here.  The
		    verifier MAY report a successful or failed "iprev" test
		    at its discretion having done some kind of check of
		    the validity of the connection's identity using DNS.  It is
		    incumbent upon an agent making use of the reported "iprev"
		    result to understand what exactly that particular verifier
		    is attempting to report. </t>

		<t> Extensive discussion of reverse DNS mapping and its
		    implications can be found in Considerations for the use
		    of DNS Reverse Mapping (<xref target="DNSOP-REVERSE"/>).
		    In particular, it recommends that applications avoid using
		    this test as a means of authentication or security.  Its
		    presence in this document is not an endorsement, but is
		    merely acknowledgement that the method remains common and
		    provides the means to relay the results of that test.  </t>
	</section>

	<section anchor="adding" title="Adding the Header Field to a Message">
		<t> This specification makes no attempt to evaluate the
		    relative strengths of various message authentication
		    methods that may become available.  The methods listed are
		    an order-independent set; their sequence does not indicate
		    relative strength or importance of one method over another.
		    Instead, the MUA or downstream filter consuming this header
		    field is to interpret the result of each method based on its
		    own knowledge of what that method evaluates. </t>

		<t> Each "method" MUST refer to an authentication method
		    declared in the IANA registry, or an extension method
		    as described in <xref target="x_methods"/>, and each
		    "result" MUST refer to a result code declared in the
		    IANA registry, or an extension result code as defined
		    in <xref target="x_results"/>.  See
		    <xref target="iana"/> for further information about
		    the registered methods and result codes. </t>

		<t> An MTA compliant with this specification adds this
		    header field (after performing one or more message
		    authentication tests) to indicate which MTA or ADMD
		    performed the test, which test got applied, and what the
		    result was.  If an MTA applies more than one such test,
		    it adds this header field either once per test, or
		    once indicating all of the results.  An MTA MUST NOT add
		    a result to an existing header field. </t>

		<t> An MTA MAY add this header field containing only the
		    authentication identifier portion and the "none" token
		    (see <xref target="format_formal"/>) to indicate explicitly
		    that no message authentication schemes were applied prior
		    to delivery of this message. </t>

		<t> An MTA adding this header field has to take steps to identify
		    it as legitimate to the MUAs or downstream filters that
		    will ultimately consume its content.  One process
		    to do so is described in <xref target="removing"/>.
		    Further measures may be necessary in some environments.
		    Some possible solutions are enumerated in
		    <xref target="forged_headers"/>.  This document does not
		    mandate any specific solution to this issue as each
		    environment has its own facilities and limitations. </t>

		<t> Most known message authentication methods focus on a
		    particular identifier to evaluate.  SPF and Sender ID
		    differ in that they can yield a result based on more
		    than one identifier; specifically, SPF can evaluate
		    the RFC5321.Helo parameter or the RFC5321.MailFrom
		    parameter, and Sender ID can evaluate the
		    RFC5321.MailFrom parameter or the PRA identity.  When
		    generating this field to report those results, only the
		    parameter that yielded the result is included. </t>

		<t> For MTAs that add this header field, adding header
		    fields in order (at the top), per Section 3.6 of
		    <xref target="MAIL"/>, is particularly important.
		    Moreover, this header field SHOULD be inserted above any
		    other trace header fields such MTAs might prepend.  This
		    placement allows easy detection of header fields that can be
		    trusted. </t>

		<t> End users making direct use of this header field might
		    inadvertently trust information that has not been properly
		    vetted.  If, for example, a basic SPF
		    result were to be relayed that claims an authenticated
		    addr-spec, the local-part of that addr-spec has actually
		    not been authenticated.  Thus, an MTA adding this
		    header field SHOULD NOT include any data that has not
		    been authenticated by the method(s) being applied. 
		    Moreover, MUAs SHOULD NOT render to users such information
		    if it is presented by a method known not to authenticate
		    it. </t>

		<section anchor="position"
		         title="Header Field Position and Interpretation">
			<t> In order to ensure non-ambiguous results and avoid
			    the impact of false header fields, MUAs and
			    downstream filters SHOULD NOT interpret this header
			    field unless specifically configured to do so by
			    the user or administrator.  That is, this
			    interpretation should not be "on by default".
			    Naturally then, users or administrators ought not
			    activate such a feature unless they are certain
			    the header field will be validly added by an agent
			    within the ADMD that accepts the mail that is
			    ultimately read by
			    the MUA, and instances of the header field
			    appearing to originate within the ADMD but are
			    actually added by foreign MTAs will be removed
			    before delivery. </t>

			<t> Furthermore, MUAs and downstream filters SHOULD
			    NOT interpret this header field unless the
			    authentication service identifier it bears appears
			    to be one used within its own ADMD as configured
			    by the user or administrator. </t>

			<t> MUAs and downstream filters MUST ignore any
			    result reported using a "result" not specified in
			    the result code registry, or a "ptype" not listed
			    in the corresponding registry for such values as
			    defined in <xref target="iana"/>.  Moreover, such
			    agents MUST ignore a result indicated for any
			    "method" they do not specifically support. </t>

			<t> An MUA SHOULD NOT reveal these results to 
			    end users, absent careful human factors design
			    considerations and testing, for the presentation
			    of trust related materials.
			    For example, an attacker could register
			    examp1e.com (note the digit "one") and send
			    signed mail to intended victims; a verifier
			    would detect that the signature was valid and
			    report a "pass" even though it's clear the
			    DNS domain name was intended to mislead.  See
			    <xref target="misleading"/> for further
			    discussion. </t>

			<t> As stated in <xref target="format_general"/>,
			    this header field MUST be treated as though
			    it were a trace header field as defined in Section
			    3.6.7 of <xref target="MAIL"/>, and
			    hence MUST NOT be reordered and MUST be
			    prepended to the message, so that there is
			    generally some indication upon delivery of where
			    in the chain of handling MTAs the message
			    authentication was done. </t>

			<t> Note that there are a few message handlers that are
			    only capable of appending new header fields to a
			    message.  Strictly speaking, these handlers are not
			    compliant with this specification.  They can
			    still add the header field to carry authentication
			    details, but any signal about where in the handling
			    chain the work was done may be lost.  Consumers
			    SHOULD be designed such that this can be tolerated,
			    especially from a producer known to have this
			    limitation. </t>

			<t> MUAs SHOULD ignore instances of this header field
			    discovered within message/rfc822 MIME
			    attachments. </t>

			<t> Further discussion of these topics can be found in
			    <xref target="security"/> below. </t>
		</section>

		<section anchor="policy" title="Local Policy Enforcement">
			<t> Some sites have a local policy that considers any
			    particular authentication policy's non-recoverable
			    failure results (typically "fail" or similar) as
			    justification for rejecting the message.  In such
			    cases, the border MTA SHOULD issue an SMTP rejection
			    response to the message, rather than adding this
			    header field and allowing the message to proceed
			    toward delivery.  This is more desirable
			    than allowing the message to reach an internal
			    host's MTA or spam filter, thus possibly
			    generating a local rejection such as a
			    <xref target="DSN"/> to a forged originator.
			    Such generated rejections are colloquially known
			    as "backscatter". </t>

			<t> The same MAY also be done for local policy
			    decisions overriding the results of the
			    authentication methods (e.g., the "policy" result
			    codes described in <xref target="m_and_r"/>). </t>

			<t> Such rejections at the SMTP protocol level are not
			    possible if local policy is enforced at the MUA
			    and not the MTA. </t>
		</section>
	</section>

	<section anchor="removing" title="Removing Existing Header Fields">
		<t> For security reasons, any MTA conforming to this
		    specification MUST delete any discovered instance of
		    this header field that claims, by virtue of its
		    authentication service identifier, to have been added
		    within its trust boundary but that did not come directly
		    from another trusted MTA.  For example, an MTA for
		    example.com receiving a message MUST delete or otherwise
		    obscure any instance of this header field bearing an
		    authentication service identifier indicating the header
		    field was added within example.com prior to adding its own
		    header fields.  This could mean each MTA will have to be
		    equipped with a list of internal MTAs known to be
		    compliant (and hence trustworthy). </t>

		<t> For simplicity and maximum security, a border MTA could
		    remove all instances of this header field on mail crossing
		    into its trust boundary.  However, this may conflict with
		    the desire to access authentication results performed by
		    trusted external service providers.  It may also invalidate
		    signed messages whose signatures cover external instances
		    of this header field.  A more robust border MTA could
		    allow a specific list of authenticating MTAs whose
		    information is to be admitted, removing the header field
		    originating from all others. </t>

		<t> As stated in <xref target="trust"/>, a formal definition
		    of "trust boundary" is deliberately not made here.  It is
		    entirely possible that a border MTA for example.com will
		    explicitly trust authentication results asserted by
		    upstream host example.net even though they exist in
		    completely disjoint administrative boundaries.  In that
		    case, the border MTA MAY elect not to delete those results;
		    moreover, the upstream host doing some authentication work
		    could apply a signing technology such as
		    <xref target="DKIM"/> on its own results to assure
		    downstream hosts of their authenticity.  An example of
		    this is provided in <xref target="examples"/>. </t>

		<t> Similarly, in the case of messages signed using
		    <xref target="DKIM"/> or other message signing methods
		    that sign header fields, this removal action could
		    invalidate one or more signatures on the message if they
		    covered the header field to be removed.  This behavior can
		    be desirable since there's little value in validating the
		    signature on a message with forged header fields.
		    However, signing agents MAY therefore elect to omit these
		    header fields from signing to avoid this situation. </t>

		<t> An MTA SHOULD remove any instance of this header field
		    bearing a version (express or implied) that it does not
		    support.  However, an MTA MUST remove such a header
		    field if the <xref target="SMTP"/> connection relaying the
		    message is not from a trusted internal MTA.  This means
		    the MTA needs to be able to understand versions of this
		    header field at last as late as the ones understood by the
		    MUAs or other consumers within its ADMD. </t>
	</section>

	<section anchor="iana" title="IANA Considerations">
		<t> IANA has registered the defined header field
		    and created two tables as described below.  These
		    registry actions were originally defined by
		    <xref target="RFC5451"/> and are repeated here
		    to provide a single, current reference. </t>

		<section anchor="new_header" title="The Authentication-Results Header Field">

			<t> <xref target="RFC5451"/> added the
			    "Authentication-Results" header field
			    to the IANA Permanent Message Header Field
			    Registry, per the procedure found in
			    <xref target="IANA-HEADERS"/>.  That entry is
			    to be updated to reference
			    this document.  The following is the
			    registration template:
				<figure><artwork>
  Header field name: Authentication-Results
  Applicable protocol: mail ([MAIL])
  Status: Standard
  Author/Change controller: IETF
  Specification document(s): [this memo]
  Related information:
    Requesting review of any proposed changes and additions to
    this field is recommended.
				</artwork></figure>
			</t>
		</section>

		<section anchor="name_registry"
			title="Email Authentication Method Name Registry">
			<t> Names of message authentication methods supported
			    by this specification are to be registered with
			    IANA, with the exception of experimental names as
			    described in <xref target="x_methods"/>.  A
			    registry was created by <xref target="RFC5451"/>
			    for this purpose.  This document changes the
			    rules governing that registry. </t>

			<t> New entries are assigned only for values
			    that have received Expert Review, per
			    <xref target="IANA-CONSIDERATIONS"/>.  The
			    Designated Expert shall be appointed by the
			    IESG.  The Designated Expert has discretion to
			    request that a publication be referenced if a
			    clear, concise definition of the authentication
			    method cannot be provided such that
			    interoperability is assured.  Registrations should
			    otherwise be permitted.  The Designated Expert
			    can also handle requests to mark any current
			    registration as "deprecated". </t>

			<t> Each method must register a name, the specification
			    that defines it, a version number associated with
			    the method being registered (preferably starting
			    at "1"), and zero or more "ptype" values
			    appropriate for use with that method, which
			    "property" value(s) should be reported by that
			    method, and a description of the "value" to be
			    used with each. </t>

			<t> All existing registry entries that reference
			    <xref target="RFC5451"/> are to be updated to 
			    reference this document.  [RFC Editor note:
			    Section numbers may have to change as well since
			    they appear in the registry, but numbering may
			    change between now and publication.  We can deal
			    with this during the IANA phase and/or
			    AUTH48.]. </t>

			<t> IANA is also requested to add a "version" field
			    to all existing registry entries.  All current
			    methods are to be recorded as version "1". </t>
		</section>

		<section anchor="result_registry"
			title="Email Authentication Result Names Registry">
			<t> Names of message authentication result codes
			    supported by this specification must be registered
			    with IANA, with the exception of experimental
			    codes as described in <xref target="x_results"/>.
			    A registry was created by <xref target="RFC5451"/>
			    for this purpose.  This document changes the
			    rules governing that registry. </t>

			<t> New entries are assigned only for values
			    that have received Expert Review, per
			    <xref target="IANA-CONSIDERATIONS"/>.  The
			    Designated Expert shall be appointed by the
			    IESG.  The Designated Expert has discretion to
			    request that a publication be referenced if a
			    clear, concise definition of the authentication
			    result cannot be provided such that
			    interoperability is assured.  Registrations should
			    otherwise be permitted.  The Designated Expert
			    can also handle requests to mark any current
			    registration as "deprecated". </t>

			<t> All existing registry entries that reference
			    <xref target="RFC5451"/> are to be updated to
			    reference this document. </t>

			<t> The definitions for the SPF and Sender ID
			    authentication methods are updated using the
			    references found in
			    <xref target="spf_sid_results"/>. </t>
		</section>
	</section>

	<section anchor="impl" title="Implementation Status">
		<t> [RFC Editor: Please delete this section prior to
		    publication.] </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 draft-sheffer-running-code.  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 draft-sheffer-running-code, "this will allow
		    reviewers and working groups to assign due consideration to
		    documents that have the benefit of running code, by
		    considering the running code as evidence of valuable
		    experimentation and feedback that has made the implemented
		    protocols more mature.  It is up to the individual working
		    groups to use this information as they see fit". </t>

		<section anchor="impl_gmail" title="Google Mail">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:"> Google </t>
			<t hangText="Implementation:"> Gmail;
				http://mail.google.com </t>
			<t hangText="Brief Description:"> Gmail is a popular,
				free, web-based mailbox service provider </t>
			<t hangText="Maturity level:"> widely used </t>
			<t hangText="Coverage:"> all syntax required to report
				SPF and DKIM results </t>
			<t hangText="Licensing:"> proprietary </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				http://mail.google.com </t>
		  </list> </t>
		</section>

		<section anchor="impl_yahoo" title="Yahoo! Mail">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:"> Yahoo!, Inc. </t>
			<t hangText="Implementation:"> Yahoo! Mail;
				http://mail.yahoo.com </t>
			<t hangText="Brief Description:"> Yahoo! Mail is a
				popular, free, web-based mailbox service
				provider </t>
			<t hangText="Maturity level:"> widely used </t>
			<t hangText="Coverage:"> all syntax required to report
				SPF and DKIM results </t>
			<t hangText="Licensing:"> proprietary </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				http://mail.yahoo.com </t>
		  </list> </t>
		</section>

		<section anchor="impl_hotmail" title="Hotmail">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:">
				Microsoft Corp. </t>
			<t hangText="Implementation:"> Hotmail;
				http://www.hotmail.com </t>
			<t hangText="Brief Description:"> Hotmail is a
				popular, free, web-based mailbox service
				provider </t>
			<t hangText="Maturity level:"> widely used </t>
			<t hangText="Coverage:"> all syntax required to report
				SPF and DKIM results </t>
			<t hangText="Licensing:"> proprietary </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				http://www.hotmail.com </t>
		  </list> </t>
		</section>

		<section anchor="impl_courier" title="Courier MTA">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:">
				Double Precision, Inc. </t>
			<t hangText="Implementation:"> Courier MTA;
				http://www.courier-mta.org </t>
			<t hangText="Brief Description:"> Courier MTA is an
				open source mail server </t>
			<t hangText="Maturity level:"> production </t>
			<t hangText="Coverage:"> all syntax required to report
				SPF and DKIM results </t>
			<t hangText="Licensing:"> GPL </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				http://www.courier-mta.org </t>
		  </list>  </t>
		</section>

		<section anchor="impl_sidmilter" title="sid-milter">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:">
				Sendmail, Inc. </t>
			<t hangText="Implementation:"> sid-milter;
				http://sourceforge.net/projects/sid-milter </t>
			<t hangText="Brief Description:"> sid-milter is an
				open source MTA plugin that implements both
				Sender ID and SPF </t>
			<t hangText="Maturity level:"> production
				(no longer maintained) </t>
			<t hangText="Coverage:"> all syntax required to report
				SPF and Sender ID results </t>
			<t hangText="Licensing:"> Sendmail Open Source
				License </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				http://www.sendmail.com </t>
		  </list> </t>
		</section>

		<section anchor="impl_opendkim" title="opendkim">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:">
				The Trusted Domain Project </t>
			<t hangText="Implementation:"> opendkim;
				http://www.opendkim.org </t>
			<t hangText="Brief Description:"> opendkim includes
				a library that implements DKIM and an MTA
				plugin that uses this library to provide DKIM
				and related services </t>
			<t hangText="Maturity level:"> widely used (Facebook,
				AOL, etc.)  </t>
			<t hangText="Coverage:"> all syntax required to report
				DKIM, VBR, and some extension results </t>
			<t hangText="Licensing:"> BSD two-clause license </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				http://www.trusteddomain.org </t>
		  </list> </t>
		</section>

		<section anchor="impl_opendmarc" title="opendmarc">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:">
				The Trusted Domain Project </t>
			<t hangText="Implementation:"> opendmarc;
				http://www.trusteddomain.org/opendmarc </t>
			<t hangText="Brief Description:"> opendmarc includes
				a library that implements DMARC and an MTA
				plugin that uses this library to provide DMARC
				and related services </t>
			<t hangText="Maturity level:"> production </t>
			<t hangText="Coverage:"> all syntax required to report
				DMARC results </t>
			<t hangText="Licensing:"> BSD two-clause license </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				http://www.trusteddomain.org </t>
		  </list> </t>
		</section>

		<section anchor="impl_authres" title="authres">
		  <t> <list style="hanging">
			<t hangText="Responsible Organization:">
				 Julian Mehnle, Scott Kitterman </t>
			<t hangText="Implementation:"> authres;
				https://pypi.python.org/pypi/authres/ </t>
			<t hangText="Brief Description:"> authres is a python
				module for parsing and generating the
				Authentication-Results header field.  It is
				used by "pyspf", a python module that implements
				the SPF validation service.  </t>
			<t hangText="Maturity level:"> production </t>
			<t hangText="Coverage:"> supports all aspects of the
				protocol, including one new method that is
				pending publication </t>
			<t hangText="Licensing:"> Apache 2.0 License </t>
			<t hangText="Implementation Experience:"> n/a </t>
			<t hangText="Contact Information:">
				https://launchpad.net/authentication-results-python </t>
		  </list> </t>
		</section>
	</section>

	<section anchor="security" title="Security Considerations">
		<t> The following security considerations apply when
		    adding or processing the "Authentication-Results"
		    header field: </t>

		<section anchor="forged_headers" title="Forged Header Fields">
			<t> An MUA or filter that accesses a mailbox whose
			    messages are handled by a non-conformant MTA, and
			    understands Authentication-Results header fields,
			    could potentially make false conclusions based on
			    forged header fields.  A malicious user or agent
			    could forge a header field using the DNS domain
			    of a receiving ADMD as the authserv-id token
			    in the value of the header field, and with the
			    rest of the value claim that the message was
			    properly authenticated.  The non-conformant MTA
			    would fail to strip the forged header field, and
			    the MUA could inappropriately trust it. </t>

			<t> For this reason, it is best not to have
			    processing of the "Authentication-Results" header
			    field enabled by default; instead it should be
			    ignored, at least for the purposes of enacting
			    filtering decisions, unless specifically enabled
			    by the user or administrator after verifying that
			    the border MTA is compliant.  It is acceptable to
			    have an MUA aware of this specification, but have
			    an explicit list of hostnames whose
			    "Authentication-Results" header
			    fields are trustworthy; however, this list should
			    initially be empty. </t>

			<t> Proposed alternative solutions to this problem were
			    made some time ago, and are listed below.  To date,
			    they have not been developed due to lack of demand,
			    but are documented here should the information be
			    useful at some point in the future:

			    <list style="numbers">
				<t> Possibly the simplest is a digital
				    signature protecting the header field,
				    such as using <xref target="DKIM"/>, that
				    can be verified by an MUA by using a
				    posted public key.  Although one of the
				    main purposes of this document is to
				    relieve the burden of doing message
				    authentication work at the MUA, this only
				    requires that the MUA learn a single
				    authentication scheme even if a number
				    of them are in use at the border MTA.
				    Note that <xref target="DKIM"/> requires
				    that the From header field be signed,
				    although in this application, the signing
				    agent (a trusted MTA) likely cannot
				    authenticate that value, so the fact that
				    it is signed should be ignored.  Where
				    the authserv-id is the ADMD's domain name,
				    the authserv-id matching this valid internal
				    signature's "d=" DKIM value is 
				    sufficient. </t>

				<t> Another would be a means to interrogate
				    the MTA that added the header field to
				    see if it is actually providing any
				    message authentication services and saw
				    the message in question, but this isn't
				    especially palatable given the work
				    required to craft and implement such a
				    scheme. </t>

				<t> Yet another might be a method to
				    interrogate the internal MTAs that
				    apparently handled the message
				    (based on Received: header fields) to
				    determine whether any of them conform to
				    <xref target="removing"/> of this
				    memo.  This, too, has potentially high
				    barriers to entry. </t>

				<t> Extensions to <xref target="IMAP"/>,
				    <xref target="SMTP"/>, and
				    <xref target="POP3"/> could be defined
				    to allow an MUA or filtering agent
				    to acquire the "authserv-id" in use
				    within an ADMD, thus allowing it to
				    identify which Authentication-Results
				    header fields it can trust. </t>

				<t> On the presumption that internal MTAs
				    are fully compliant with Section 3.6 of
				    <xref target="MAIL"/>, and the compliant
				    internal MTAs are using their own host
				    names or the ADMD's DNS domain name as the
				    "authserv-id" token, the header field
				    proposed here should always appear above
				    a Received: header added by a trusted
				    MTA.  This can be used as a test for
				    header field validity. </t>
			    </list> </t>

			<t> Support for some of these is being considered for
			    future work. </t>

			<t> In any case, a mechanism needs to exist for an
			    MUA or filter to verify that the host that appears
			    to have added the header field (a) actually did
			    so, and (b) is legitimately adding that header
			    field for this delivery.  Given the variety
			    of messaging environments deployed today,
			    consensus appears to be that specifying a
			    particular mechanism for doing so is not
			    appropriate for this document. </t>
		
			<t> Mitigation of the forged header field attack can
			    also be accomplished by moving the authentication
			    results data into meta-data associated with
			    the message.  In particular, an
			    <xref target="SMTP"/> extension could be
			    established that is used to communicate
			    authentication results from the border MTA to
			    intermediate and delivery MTAs; the latter of
			    these could arrange to store the authentication
			    results as meta-data retrieved and rendered
			    along with the message by an <xref target="IMAP"/>
			    client aware of a similar extension in that
			    protocol.  The delivery MTA would be told to
			    trust data via this extension only from
			    MTAs it trusts, and border MTAs would not accept
			    data via this extension from any source.  There is
			    no vector in such an arrangement for forgery of
			    authentication data by an outside agent. </t>
		</section>

		<section anchor="misleading" title="Misleading Results">
			<t> Until some form of service for querying
			    the reputation of a sending agent is widely
			    deployed, the existence of this header field
			    indicating a "pass" does not render the message
			    trustworthy.  It is possible for an arriving
			    piece of spam or other undesirable mail to pass
			    checks by several of the methods enumerated above
			    (e.g., a piece of spam signed using
			    <xref target="DKIM"/> by the originator of the
			    spam, which might be a spammer or a compromised
			    system).  In particular, this issue is not resolved
			    by forged header field removal discussed
			    above. </t>

			<t> Hence, MUAs and downstream filters must take some
			    care with use of this header even after possibly
			    malicious headers are scrubbed.  </t>
		</section>

		<section anchor="position2" title="Header Field Position">
			<t> Despite the requirements of
			    <xref target="MAIL"/>, header fields can
			    sometimes be reordered enroute by
			    intermediate MTAs.  The goal of requiring header
			    field addition only at the top of a message is an
			    acknowledgement that some MTAs do reorder
			    header fields, but most do not.  Thus, in the
			    general case, there will be some indication of
			    which MTAs (if any) handled the message after the
			    addition of the header field defined here. </t>
		</section>

		<section anchor="iprev-dos"
			title="Reverse IP Query Denial-of-Service Attacks">
			<t> Section 5.5 of <xref target="SPF"/> describes
			    a DNS-based denial-of-service attack for verifiers
			    that attempt DNS-based identity verification
			    of arriving client connections.  A verifier
			    wishing to do this check and report this
			    information needs to take care not to go to unbounded
			    lengths to resolve "A" and "PTR" queries.
			    MUAs or other filters making use of an "iprev"
			    result specified by this document need to be aware
			    of the algorithm used by the verifier reporting
			    the result and, especially, its limitations. </t>
		</section>

		<section anchor="backscatter" title="Mitigation of Backscatter">
			<t> Failing to follow the instructions of
			    <xref target="policy"/> can result in a
			    denial-of-service attack caused by the
			    generation of <xref target="DSN"/> messages
			    (or equivalent) to addresses that did not
			    send the messages being rejected. </t>
		</section>

		<section anchor="internal" title="Internal MTA Lists">
			<t> <xref target="removing"/> describes a procedure
			    for scrubbing header fields that may contain forged
			    authentication results about a message.  A
			    compliant installation will have to include, at
			    each MTA, a list of other MTAs known to be
			    compliant and trustworthy.  Failing to keep this
			    list current as internal infrastructure changes
			    may expose an ADMD to attack. </t>
		</section>

		<section anchor="method-attacks"
			title="Attacks against Authentication Methods">
			<t> If an attack becomes known against an
			    authentication method, clearly then the agent
			    verifying that method can be fooled into thinking
			    an inauthentic message is authentic, and thus
			    the value of this header field can be misleading.
			    It follows that any attack against the
			    authentication methods supported by this document
			    is also a security consideration here. </t>
		</section>

		<section anchor="bugs"
			title="Intentionally Malformed Header Fields">
			<t> It is possible for an attacker to add an
			    Authentication-Results header field that
			    is extraordinarily large or otherwise malformed
			    in an attempt to discover or exploit weaknesses
			    in header field parsing code.  Implementers must
			    thoroughly verify all such header fields received
			    from MTAs and be robust against intentionally as
			    well as unintentionally malformed header
			    fields. </t>
		</section>

		<section anchor="compromised"
			title="Compromised Internal Hosts">
			<t> An internal MUA or MTA that has been compromised
			    could generate mail with a forged From header
			    field and a forged Authentication-Results header
			    field that endorses it.  Although it is clearly a
			    larger concern to have compromised internal
			    machines than it is to prove the value of this
			    header field, this risk can be mitigated by
			    arranging that internal MTAs will remove this
			    header field if it claims to have been added by a
			    trusted border MTA (as described above), yet the 
			    <xref target="SMTP"/> connection is not coming from
			    an internal machine known to be running an
			    authorized MTA.  However, in such a configuration,
			    legitimate MTAs will have to add this header
			    field when legitimate internal-only messages
			    are generated.  This is also covered in
			    <xref target="removing"/>. </t>
		</section>

		<section anchor="encapsulated" title="Encapsulated Instances">
			<t> MIME messages can contain
			    attachments of type "message/rfc822", which
			    contain other messages.
			    Such an encapsulated message can also contain an
			    Authentication-Results header field.  Although
			    the processing of these is outside of the intended
			    scope of this document (see
			    <xref target="scope"/>), some early guidance to
			    MUA developers is appropriate here. </t>

			<t> Since MTAs are unlikely to strip
			    Authentication-Results header fields after
			    mailbox delivery, MUAs are advised in
			    <xref target="position"/> to ignore such instances
			    within MIME attachments.
			    Moreover, when extracting a message digest to
			    separate mail store messages or other media, such
			    header fields should be removed so that they will
			    never be interpreted improperly by MUAs that might
			    later consume them. </t>
		</section>

		<section anchor="iprev_weak" title="Reverse Mapping">
			<t> Although <xref target="iprev"/> of this memo
			    includes explicit support for the "iprev" method,
			    its value as an authentication mechanism is
			    limited.  Implementers of both this proposal
			    and agents that use the data it relays are
			    encouraged to become familiar with the issues
			    raised by <xref target="DNSOP-REVERSE"/> when
			    deciding whether or not to include support for
			    "iprev". </t>
		</section>
	</section>
</middle>

<back>
	<references title="Normative References">
		<reference anchor="ABNF">
			<front>
<title>Augmented BNF for Syntax Specifications: ABNF</title>
<author initials="D." surname="Crocker" fullname="D. Crocker">
<organization/></author>
<author initials="P." surname="Overell" fullname="P. Overell">
<organization/></author>
<date year="2008" month="January"/>
<abstract>
<t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF.  It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="STD" value="68"/>
<seriesInfo name="RFC" value="5234"/>
<format type="TXT" octets="26359" target="ftp://ftp.isi.edu/in-notes/rfc5234.txt"/>
</reference>
		<reference anchor="IANA-HEADERS">
			<front>
			<title>Registration Procedures for Message Header Fields</title>
<author initials="G." surname="Klyne" fullname="G. Klyne">
<organization/></author>
<author initials="M." surname="Nottingham" fullname="M. Nottingham">
<organization/></author>
<author initials="J." surname="Mogul" fullname="J. Mogul">
<organization/></author>
<date year="2004" month="September"/>
<abstract>
<t>This specification defines registration procedures for the message header fields used by Internet mail, HTTP, Netnews and other applications.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name="BCP" value="90"/>
<seriesInfo name="RFC" value="3864"/>
<format type="TXT" octets="36231" target="ftp://ftp.isi.edu/in-notes/rfc3864.txt"/>
</reference>

		<reference anchor="KEYWORDS">
			<front>
<title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials="S." surname="Bradner" fullname="Scott Bradner">
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street></postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year="1997" month="March"/>
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>
   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:

<list>
<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
      RFC 2119.
</t></list></t>
<t>
   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t></abstract></front>

<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="2119"/>
<format type="TXT" octets="4723" target="ftp://ftp.isi.edu/in-notes/rfc2119.txt"/>
<format type="HTML" octets="17491" target="http://xml.resource.org/public/rfc/html/rfc2119.html"/>
<format type="XML" octets="5777" target="http://xml.resource.org/public/rfc/xml/rfc2119.xml"/>
</reference>

		<reference anchor="MAIL">
			<front>
<title>Internet Message Format</title>
<author initials="P." surname="Resnick" fullname="Peter W.  Resnick" role="editor">
<organization>Qualcomm Incorporated</organization>
<address>
<postal>
<street>5775 Morehouse Drive</street>
<city>San Diego</city>
<region>CA</region>
<code>92121-1714</code>
<country>US</country></postal>
<phone>+1 858 651 4478</phone>
<email>presnick@qualcomm.com</email>
<uri>http://www.qualcomm.com/~presnick/</uri></address></author>
<date year="2008" month="October"/>
<abstract>
<t>This document specifies the Internet 
Message Format (IMF), a syntax for text messages
			that are sent between computer users, within 
the framework of "electronic mail"
			messages. This specification is a revision of 
Request For Comments (RFC) 2822, which
			itself superseded Request For Comments (RFC) 
822, "Standard for the Format of ARPA
			Internet Text Messages", updating it to 
reflect current practice and incorporating
			incremental changes that were specified in 
other RFCs.</t></abstract></front>

<seriesInfo name="RFC" value="5322"/>
<format type="TXT" octets="122322" target="ftp://ftp.isi.edu/in-notes/rfc5322.txt"/>
<format type="HTML" octets="213342" target="http://xml.resource.org/public/rfc/html/rfc5322.html"/>
<format type="XML" octets="174183" target="http://xml.resource.org/public/rfc/xml/rfc5322.xml"/>
</reference>

		<reference anchor="MIME">
			<front>
			<title abbrev="Internet Message Bodies">Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
<author initials="N." surname="Freed" fullname="Ned Freed">
<organization>Innosoft International, Inc.</organization>
<address>
<postal>
<street>1050 East Garvey Avenue South</street>
<city>West Covina</city>
<region>CA</region>
<code>91790</code>
<country>US</country></postal>
<phone>+1 818 919 3600</phone>
<facsimile>+1 818 919 3614</facsimile>
<email>ned@innosoft.com</email></address></author>
<author initials="N.S." surname="Borenstein" fullname="Nathaniel S. Borenstein">
<organization>First Virtual Holdings</organization>
<address>
<postal>
<street>25 Washington Avenue</street>
<city>Morristown</city>
<region>NJ</region>
<code>07960</code>
<country>US</country></postal>
<phone>+1 201 540 8967</phone>
<facsimile>+1 201 993 3032</facsimile>
<email>nsb@nsb.fv.com</email></address></author>
<date year="1996" month="November"/>
<abstract>
<t>STD 11, RFC 822, defines a message representation protocol specifying considerable detail about US-ASCII message headers, and leaves the message content, or message body, as flat US-ASCII text.  This set of documents, collectively called the Multipurpose Internet Mail Extensions, or MIME, redefines the format of messages to allow for</t>
<t>(1)   textual message bodies in character sets other than US-ASCII,</t>
<t>(2)   an extensible set of different formats for non-textual message bodies,</t>
<t>(3)   multi-part message bodies, and</t>
<t>(4)   textual header information in character sets other than US-ASCII.</t>
<t>These documents are based on earlier work documented in RFC 934, STD 11, and RFC 1049, but extends and revises them.  Because RFC 822 said so little about message bodies, these documents are largely orthogonal to (rather than a revision of) RFC 822.</t>
<t>This initial document specifies the various headers used to describe the structure of MIME messages. The second document, RFC 2046, defines the general structure of the MIME media typing system and defines an initial set of media types. The third document, RFC 2047, describes extensions to RFC 822 to allow non-US-ASCII text data in Internet mail header fields. The fourth document, RFC 2048, specifies various IANA registration procedures for MIME-related facilities. The fifth and final document, RFC 2049, describes MIME conformance
  criteria as well as providing some illustrative examples of MIME message formats, acknowledgements, and the bibliography.</t>
<t>These documents are revisions of RFCs 1521, 1522, and 1590, which themselves were revisions of RFCs 1341 and 1342.  An appendix in RFC 2049 describes differences and changes from previous versions.</t></abstract></front>

<seriesInfo name="RFC" value="2045"/>
<format type="TXT" octets="72932" target="ftp://ftp.isi.edu/in-notes/rfc2045.txt"/>
</reference>

		<reference anchor="SMTP">
			<front>
<title>Simple Mail Transfer Protocol</title>
<author initials="J." surname="Klensin" fullname="J. Klensin">
<organization/></author>
<date year="2008" month="October"/>
<abstract>
<t>This document is a specification of the basic protocol for Internet electronic mail transport.  It consolidates, updates, and clarifies several previous documents, making all or parts of most of them obsolete.  It covers the SMTP extension mechanisms and best practices for the contemporary Internet, but does not provide details about particular extensions.  Although SMTP was designed as a mail transport and delivery protocol, this specification also contains information that is important to its use as a "mail submission" protocol for "split-UA" (User Agent) mail reading systems and mobile environments. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="RFC" value="5321"/>
<format type="TXT" octets="225929" target="ftp://ftp.isi.edu/in-notes/rfc5321.txt"/>
</reference>
	</references>

	<references title="Informative References">
		<reference anchor="ADSP">
			<front>
				<title>DomainKeys Identified Mail (DKIM)
				       Author Domain Signing Practices (ADSP)
				</title>

				<author initials="E." surname="Allman"
				        fullname="E. Allman">
				</author>

				<author initials="J." surname="Fenton"
				        fullname="J. Fenton">
				</author>

				<author initials="M." surname="Delany"
				        fullname="M. Delany">
				</author>

				<author initials="J." surname="Levine"
				        fullname="J. Levine">
				</author>

				<date year="2009" month="August"/>
			</front>
			<seriesInfo name="RFC" value="5617"/>
		</reference>

		<reference anchor="RFC5451">
			<front>
				<title>Message Header Field for Indicating
				       Message Authentication Status</title>

				<author initials="M." surname="Kucherawy"
				        fullname="M. Kucherawy">
				</author>

				<date year="2009" month="April"/>
			</front>
			<seriesInfo name="RFC" value="5451"/>
		</reference>

		<reference anchor="AR-VBR">
			<front>
				<title> Authentication-Results Registration
				        for Vouch by Reference Results
				</title>

				<author initials="M." surname="Kucherawy"
				        fullname="M. Kucherawy">
				</author>

				<date year="2011" month="April"/>
			</front>
			<seriesInfo name="RFC" value="6212"/>
		</reference>

		<reference anchor="ATPS">
			<front>
				<title>DomainKeys Identified Mail (DKIM)
				       Authorized Third-Party Signatures
				</title>

				<author initials="M." surname="Kucherawy"
				        fullname="M. Kucherawy">
				</author>

				<date year="2012" month="February"/>
			</front>
			<seriesInfo name="RFC" value="6541"/>
		</reference>

		<reference anchor="AUTH">
			<front>
			<title>SMTP Service Extension for Authentication</title>
<author initials="R." surname="Siemborski" fullname="R. Siemborski">
<organization/></author>
<author initials="A." surname="Melnikov" fullname="A. Melnikov">
<organization/></author>
<date year="2007" month="July"/>
<abstract>
<t>This document defines a Simple Mail Transport Protocol (SMTP) extension whereby an SMTP client may indicate an authentication mechanism to the server, perform an authentication protocol exchange, and optionally negotiate a security layer for subsequent protocol interactions during this session. This extension includes a profile of the Simple Authentication and Security Layer (SASL) for SMTP.&lt;/t&gt;&lt;t&gt; This document obsoletes RFC 2554. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="RFC" value="4954"/>
<format type="TXT" octets="43493" target="ftp://ftp.isi.edu/in-notes/rfc4954.txt"/>
</reference>

		<reference anchor="DKIM">
			<front>
		<title>DomainKeys Identified Mail (DKIM) Signatures</title>
<author initials="D." surname="Crocker" fullname="D. Crocker">
<organization/></author>
<author initials="T." surname="Hansen" fullname="T. Hansen">
<organization/></author>
<author initials="M." surname="Kucherawy" fullname="M. Kucherawy">
<organization/></author>
<date year="2011" month="September"/>
</front>
<seriesInfo name="RFC" value="6376"/>
</reference>

		<reference anchor="DNS">
			<front>
<title abbrev="Domain Implementation and Specification">Domain names - implementation and specification</title>
<author initials="P." surname="Mockapetris" fullname="P. Mockapetris">
<organization>USC/ISI</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone></address></author>
<date year="1987" day="1" month="November"/></front>

<seriesInfo name="STD" value="13"/>
<seriesInfo name="RFC" value="1035"/>
<format type="TXT" octets="125626" target="ftp://ftp.isi.edu/in-notes/rfc1035.txt"/>
</reference>

		<reference anchor="DNS-IP6">
			<front>
<title>DNS Extensions to Support IP Version 6</title>
<author initials="S." surname="Thomson" fullname="S. Thomson">
<organization/></author>
<author initials="C." surname="Huitema" fullname="C. Huitema">
<organization/></author>
<author initials="V." surname="Ksinant" fullname="V. Ksinant">
<organization/></author>
<author initials="M." surname="Souissi" fullname="M. Souissi">
<organization/></author>
<date year="2003" month="October"/>
<abstract>
<t>This document defines the changes that need to be made to the Domain Name System (DNS) to support hosts running IP version 6 (IPv6).  The changes include a resource record type to store an IPv6 address, a domain to support lookups based on an IPv6 address, and updated definitions of existing query types that return Internet addresses as part of additional section processing.  The extensions are designed to be compatible with existing applications and, in particular, DNS implementations themselves. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="RFC" value="3596"/>
<format type="TXT" octets="14093" target="ftp://ftp.isi.edu/in-notes/rfc3596.txt"/>
</reference>

		<reference anchor="DOMAINKEYS">
			<front>
<title>Domain-Based Email Authentication Using Public Keys Advertised in the DNS (DomainKeys)</title>
<author initials="M." surname="Delany" fullname="M. Delany">
<organization/></author>
<date year="2007" month="May"/>
<abstract>
<t>"DomainKeys" creates a domain-level authentication framework for
   email by using public key technology and the DNS to prove the
   provenance and contents of an email.

   This document defines a framework for digitally signing email on a
   per-domain basis.  The ultimate goal of this framework is to
   unequivocally prove and protect identity while retaining the
   semantics of Internet email as it is known today.

   Proof and protection of email identity may assist in the global
   control of "spam" and "phishing". [HISTORIC]</t></abstract></front>

<seriesInfo name="RFC" value="4870"/>
<format type="TXT" octets="87378" target="ftp://ftp.isi.edu/in-notes/rfc4870.txt"/>
</reference>
		<reference anchor="DSN">
			<front>
<title>An Extensible Message Format for Delivery Status Notifications</title>
<author initials="K." surname="Moore" fullname="K. Moore">
<organization/></author>
<author initials="G." surname="Vaudreuil" fullname="G. Vaudreuil">
<organization/></author>
<date year="2003" month="January"/>
<abstract>
<t>This memo defines a Multipurpose Internet Mail Extensions (MIME) content-type that may be used by a message transfer agent (MTA) or electronic mail gateway to report the result of an attempt to deliver a message to one or more recipients.  This content-type is intended as a machine-processable replacement for the various types of delivery status notifications currently used in Internet electronic mail.  Because many messages are sent between the Internet and other messaging systems (such as X.400 or the so-called "Local Area Network (LAN)-based" systems), the Delivery Status Notification (DSN) protocol is designed to be useful in a multi-protocol messaging environment.  To this end, the protocol described in this memo provides for the carriage of "foreign" addresses and error codes, in addition to those normally used in Internet mail.  Additional attributes may also be defined to support "tunneling" of foreign notifications through Internet mail. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="RFC" value="3464"/>
<format type="TXT" octets="83060" target="ftp://ftp.isi.edu/in-notes/rfc3464.txt"/>
</reference>

		<reference anchor="EMAIL-ARCH">
			<front>
<title>Internet Mail Architecture</title>

<author initials="D" surname="Crocker" fullname="Dave Crocker">
    <organization/>
</author>

<date month="October" day="31" year="2008"/>

<abstract><t>Over its thirty-five year history, Internet Mail has changed significantly in scale and complexity, as it has become a global infrastructure service.  These changes have been evolutionary, rather than revolutionary, reflecting a strong desire to preserve both its installed base and its usefulness.  To collaborate productively on this large and complex system, all participants must work from a common view of it and use a common language to describe its components and the interactions among them.  But the many differences in perspective currently make it difficult to know exactly what another participant means.  To serve as the necessary common frame of reference, this document describes the enhanced Internet Mail architecture, reflecting the current service.</t></abstract>

</front>

<seriesInfo name="RFC" value="5598"/>


</reference>

		<reference anchor="DNSOP-REVERSE">
			<front>
<title>Considerations for the use of DNS Reverse Mapping</title>

<author initials="D" surname="Senie" fullname="Daniel Senie">
    <organization/>
</author>

<author initials="A" surname="Sullivan" fullname="Andrew  Sullivan">
    <organization/>
</author>

<date month="March" day="13" year="2008"/>

<abstract><t>Mapping of addresses to names is a feature of DNS.  Many sites implement it, many others do not.  Some applications attempt to use it as a part of a security strategy.  This document outlines what should be taken into account when deciding whether to implement reverse mappings of addresses to names, suggests that site administrators implement reverse mappings if there are no strong considerations against such mappings, and provides considerations to be taken into account when using reverse mappings.</t></abstract>

</front>

<seriesInfo name="Work in" value="Progress"/>

</reference>

		<reference anchor="IANA-CONSIDERATIONS">
			<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials="T." surname="Narten" fullname="T. Narten">
<organization/></author>
<author initials="H." surname="Alvestrand" fullname="H. Alvestrand">
<organization/></author>
<date year="2008" month="May"/>
<abstract>
<t>Many protocols make use of identifiers consisting of constants and other well-known values. Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec). To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority. For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).&lt;/t&gt;&lt;t&gt; In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made. If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role. This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.&lt;/t&gt;&lt;t&gt; This document obsoletes RFC 2434. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name="BCP" value="26"/>
<seriesInfo name="RFC" value="5226"/>
<format type="TXT" octets="66160" target="ftp://ftp.isi.edu/in-notes/rfc5226.txt"/>
</reference>
		<reference anchor="IMAP">
			<front>
<title>INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1</title>
<author initials="M." surname="Crispin" fullname="M. Crispin">
<organization/></author>
<date year="2003" month="March"/>
<abstract>
<t>The Internet Message Access Protocol, Version 4rev1 (IMAP4rev1) allows a client to access and manipulate electronic mail messages on a server.  IMAP4rev1 permits manipulation of mailboxes (remote message folders) in a way that is functionally equivalent to local folders.  IMAP4rev1 also provides the capability for an offline client to resynchronize with the server.  IMAP4rev1 includes operations for creating, deleting, and renaming mailboxes, checking for new messages, permanently removing messages, setting and clearing flags, RFC 2822 and RFC 2045 parsing, searching, and selective fetching of message attributes, texts, and portions thereof.  Messages in IMAP4rev1 are accessed by the use of numbers.  These numbers are either message sequence numbers or unique identifiers.  IMAP4rev1 supports a single server.  A mechanism for accessing configuration information to support multiple IMAP4rev1 servers is discussed in RFC 2244.  IMAP4rev1 does not specify a means of posting mail; this function is handled by a mail transfer protocol such as RFC 2821. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="RFC" value="3501"/>
<format type="TXT" octets="227640" target="ftp://ftp.isi.edu/in-notes/rfc3501.txt"/>
</reference>

		<reference anchor="POP3">
			<front>
<title abbrev="POP3">Post Office Protocol - Version 3</title>
<author initials="J.G." surname="Myers" fullname="John G. Myers">
<organization>Carnegie-Mellon University</organization>
<address>
<postal>
<street>5000 Forbes Ave</street>
<city>Pittsburgh</city>
<region>PA</region>
<code>15213</code>
<country>US</country></postal>
<email>jgm+@cmu.edu</email></address></author>
<author initials="M.T." surname="Rose" fullname="Marshall T. Rose">
<organization>Dover Beach Consulting, Inc.</organization>
<address>
<postal>
<street>420 Whisman Court</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043-2186</code>
<country>US</country></postal>
<email>mrose@dbc.mtview.ca.us</email></address></author>
<date year="1996" month="May"/></front>

<seriesInfo name="STD" value="53"/>
<seriesInfo name="RFC" value="1939"/>
<format type="TXT" octets="47018" target="ftp://ftp.isi.edu/in-notes/rfc1939.txt"/>
</reference>

		<reference anchor="SECURITY">
			<front>
<title>Guidelines for Writing RFC Text on Security Considerations</title>
<author initials="E." surname="Rescorla" fullname="E. Rescorla">
<organization/></author>
<author initials="B." surname="Korver" fullname="B. Korver">
<organization/></author>
<date year="2003" month="July"/>
<abstract>
<t>All RFCs are required to have a Security Considerations section.  Historically, such sections have been relatively weak.  This document provides guidelines to RFC authors on how to write a good Security Considerations section.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract></front>

<seriesInfo name="BCP" value="72"/>
<seriesInfo name="RFC" value="3552"/>
<format type="TXT" octets="110393" target="ftp://ftp.isi.edu/in-notes/rfc3552.txt"/>
</reference>

		<reference anchor="SENDERID">
			<front>
<title>Sender ID: Authenticating E-Mail</title>
<author initials="J." surname="Lyon" fullname="J. Lyon">
<organization/></author>
<author initials="M." surname="Wong" fullname="M. Wong">
<organization/></author>
<date year="2006" month="April"/>
<abstract>
<t>Internet mail suffers from the fact that much unwanted mail is sent using spoofed addresses -- "spoofed" in this case means that the address is used without the permission of the domain owner.  This document describes a family of tests by which SMTP servers can determine whether an e-mail address in a received message was used with the permission of the owner of the domain contained in that e-mail address.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name="RFC" value="4406"/>
<format type="TXT" octets="40428" target="ftp://ftp.isi.edu/in-notes/rfc4406.txt"/>
</reference>

		<reference anchor="SPF">
			<front>
<title>Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1</title>
<author initials="M." surname="Wong" fullname="M. Wong">
<organization/></author>
<author initials="W." surname="Schlitt" fullname="W. Schlitt">
<organization/></author>
<date year="2006" month="April"/>
<abstract>
<t>E-mail on the Internet can be forged in a number of ways.  In particular, existing protocols place no restriction on what a sending host can use as the reverse-path of a message or the domain given on the SMTP HELO/EHLO commands.  This document describes version 1 of the ender Policy Framework (SPF) protocol, whereby a domain may explicitly authorize the hosts that are allowed to use its domain name, and a receiving host may check such authorization.  This memo defines an Experimental Protocol for the Internet community.</t></abstract></front>

<seriesInfo name="RFC" value="4408"/>
<format type="TXT" octets="105009" target="ftp://ftp.isi.edu/in-notes/rfc4408.txt"/>
</reference>

		<reference anchor="VBR">
			<front>
				<title>Vouch By Reference</title>

				<author initials="P." surname="Hoffman"
				        fullname="P. Hoffman">
				</author>

				<author initials="J." surname="Levine"
				        fullname="J. Levine">
				</author>

				<author initials="A." surname="Hathcock"
				        fullname="A. Hathcock">
				</author>

				<date year="2009" month="April"/>
			</front>
			<seriesInfo name="RFC" value="5518"/>
		</reference>

	</references>

	<section anchor="thanks" title="Acknowledgements">
   		<t> The author wishes to acknowledge the following for their
		    review and constructive criticism of this update:
		    Dave Cridland, Dave Crocker, Bjoern Hoehrmann, Scott
		    Kitterman, John Levine, Alexey Melnikov, S. Moonesamy, and
		    Alessandro Vesely. </t>
	</section>

	<section anchor="legacy_muas" title="Legacy MUAs">
		<t> Implementers of this protocol should be aware
		    that many MUAs are unlikely to be retrofitted to
		    support the new header field and its semantics.  In
		    the interests of convenience and quicker
		    adoption, a delivery MTA might want to
		    consider adding things that are processed by
		    existing MUAs in addition to the Authentication-Results
		    header field.  One suggestion is to include a Priority
		    header field, on messages that don't already have such a
		    header field, containing a value that reflects the
		    strength of the authentication that was accomplished,
		    e.g., "low" for weak or no authentication, "normal" or
		    "high" for good or strong authentication. </t>

		<t> Some modern MUAs can already filter based on
		    the content of this header field.  However, there is
		    keen interest in having MUAs make some kind of
		    graphical representation of this header field's meaning
		    to end users.  Until this capability is added, other
		    interim means of conveying authentication results may
		    be necessary while this proposal and its successors
		    are adopted. </t>
	</section>

	<section anchor="examples" title="Authentication-Results Examples">
		<t> This section presents some examples of the use of this
		    header field to indicate authentication results. </t>

		<section anchor="example1" title="Trivial Case; Header Field Not Present">
			<figure>
				<preamble> The trivial case: </preamble>
				<artwork>
     Received: from mail-router.example.com
                   (mail-router.example.com [192.0.2.1])
               by server.example.org (8.11.6/8.11.6)
                   with ESMTP id g1G0r1kA003489;
               Fri, Feb 15 2002 17:19:07 -0800
     From: sender@example.com
     Date: Fri, Feb 15 2002 16:54:30 -0800
     To: receiver@example.org
     Message-Id: &lt;12345.abc@example.com&gt;
     Subject: here's a sample

     Hello!  Goodbye!
				</artwork>
				<postamble> Example 1: Trivial case </postamble>
			</figure>

			<t> The "Authentication-Results" header field is
			    completely absent.  The MUA may make no conclusion
			    about the validity of the message.  This could be
			    the case because the message authentication
			    services were not available at the time of
			    delivery, or no service is provided, or the MTA
			    is not in compliance with this specification. </t>
		</section>

		<section anchor="example2" title="Nearly Trivial Case; Service Provided, But No Authentication Done">
			<figure>
				<preamble> A message that was delivered by
				           an MTA that conforms to this
				           specification but provides no actual
				           message authentication service:
				           </preamble>
				<artwork>
     Authentication-Results: example.org 1; none
     Received: from mail-router.example.com
                   (mail-router.example.com [192.0.2.1])
               by server.example.org (8.11.6/8.11.6)
                   with ESMTP id g1G0r1kA003489;
               Fri, Feb 15 2002 17:19:07 -0800
     From: sender@example.com
     Date: Fri, Feb 15 2002 16:54:30 -0800
     To: receiver@example.org
     Message-Id: &lt;12345.abc@example.com&gt;
     Subject: here's a sample

     Hello!  Goodbye!
				</artwork>
				<postamble> Example 2: Header present but
				            no authentication done </postamble>
			</figure>

			<t> The "Authentication-Results" header field is
			    present, showing that the delivering MTA conforms
			    to this specification.  It used its DNS domain name
			    as the authserv-id.  The presence of "none" (and
			    the absence of any method and result tokens)
			    indicates that no message authentication was
			    done.  The version number of the specification to
			    which the field's content conforms is explicitly
			    provided. </t>
		</section>

		<section anchor="example3" title="Service Provided, Authentication Done">
			<figure>
				<preamble> A message that was delivered by
				           an MTA that conforms to this
				           specification and applied some
				           message authentication:
				</preamble>
				<artwork>
     Authentication-Results: example.com;
               spf=pass smtp.mailfrom=example.net
     Received: from dialup-1-2-3-4.example.net
                   (dialup-1-2-3-4.example.net [192.0.2.200])
               by mail-router.example.com (8.11.6/8.11.6)
                   with ESMTP id g1G0r1kA003489;
               Fri, Feb 15 2002 17:19:07 -0800
     From: sender@example.net
     Date: Fri, Feb 15 2002 16:54:30 -0800
     To: receiver@example.com
     Message-Id: &lt;12345.abc@example.net&gt;
     Subject: here's a sample

     Hello!  Goodbye!
				</artwork>
				<postamble> Example 3: Header reporting
				            results </postamble>
			</figure>

			<t> The "Authentication-Results" header field is
			    present, indicating that the border MTA
			    conforms to this specification.  The authserv-id
			    is once again the DNS domain name.  Furthermore,
			    the message was authenticated by that MTA via the
			    method specified in <xref target="SPF"/>.  Note
			    that since that method cannot authenticate the
			    local-part, it has been omitted from the result's
			    value.  The MUA could extract and relay this extra
			    information if desired. </t>
		</section>

		<section anchor="example4" title="Service Provided, Several Authentications Done, Single MTA">
			<figure>
				<preamble> A message that was relayed inbound
				           via a single MTA that conforms to
				           this specification and applied three
				           different message authentication
				           checks: </preamble>
				<artwork>
     Authentication-Results: example.com;
               auth=pass (cram-md5) smtp.auth=sender@example.net;
               spf=pass smtp.mailfrom=example.net
     Authentication-Results: example.com;
               sender-id=pass header.from=example.net
     Received: from dialup-1-2-3-4.example.net (8.11.6/8.11.6)
                   (dialup-1-2-3-4.example.net [192.0.2.200])
               by mail-router.example.com (8.11.6/8.11.6)
                   with ESMTP id g1G0r1kA003489;
               Fri, Feb 15 2002 17:19:07 -0800
     Date: Fri, Feb 15 2002 16:54:30 -0800
     To: receiver@example.com
     From: sender@example.net
     Message-Id: &lt;12345.abc@example.net&gt;
     Subject: here's a sample

     Hello!  Goodbye!
				</artwork>
				<postamble> Example 4: Headers reporting
				            results from one MTA </postamble>
			</figure>

			<t> The "Authentication-Results" header field is
			    present, indicating the delivering MTA
			    conforms to this specification.  Once again,
			    the receiving DNS domain name is used as the
			    authserv-id.  Furthermore, the sender
			    authenticated herself/himself to the MTA
			    via a method specified in <xref target="AUTH"/>,
			    and both SPF and Sender ID checks were done and
			    passed.  The MUA could extract and relay this
			    extra information if desired. </t>

			<t> Two "Authentication-Results" header fields are
			    not required since the same host did all of the
			    checking.  The authenticating agent could have
			    consolidated all the results into one header
			    field. </t>

			<t> This example illustrates a scenario in which
			    a remote user on a dialup connection (example.net)
			    sends mail to a border MTA (example.com)
			    using SMTP authentication to prove identity.
			    The dialup provider has been explicitly authorized
			    to relay mail as "example.com" resulting in
			    passes by the SPF and SenderID checks. </t>
		</section>

		<section anchor="example5" title="Service Provided, Several Authentications Done, Different MTAs">
			<figure>
				<preamble> A message that was relayed
				           inbound by two different MTAs
				           that conform to this specification
				           and applied multiple message
				           authentication checks: </preamble>
				<artwork>
     Authentication-Results: example.com;
               sender-id=fail header.from=example.com;
               dkim=pass (good signature) header.d=example.com
     Received: from mail-router.example.com
                   (mail-router.example.com [192.0.2.1])
               by auth-checker.example.com (8.11.6/8.11.6)
                   with ESMTP id i7PK0sH7021929;
               Fri, Feb 15 2002 17:19:22 -0800
     DKIM-Signature:  v=1; a=rsa-sha256; s=gatsby; d=example.com;
               t=1188964191; c=simple/simple; h=From:Date:To:Subject:
               Message-Id:Authentication-Results;
               bh=sEuZGD/pSr7ANysbY3jtdaQ3Xv9xPQtS0m70;
               b=EToRSuvUfQVP3Bkz ... rTB0t0gYnBVCM=
     Authentication-Results: example.com;
               auth=pass (cram-md5) smtp.auth=sender@example.com;
               spf=fail smtp.mailfrom=example.com
     Received: from dialup-1-2-3-4.example.net
                   (dialup-1-2-3-4.example.net [192.0.2.200])
               by mail-router.example.com (8.11.6/8.11.6)
                   with ESMTP id g1G0r1kA003489;
               Fri, Feb 15 2002 17:19:07 -0800
     From: sender@example.com
     Date: Fri, Feb 15 2002 16:54:30 -0800
     To: receiver@example.com
     Message-Id: &lt;12345.abc@example.com&gt;
     Subject: here's a sample

     Hello!  Goodbye!
				</artwork>
				<postamble> Example 5: Headers reporting
				            results from multiple
				            MTAs </postamble>
			</figure>

			<t> The "Authentication-Results" header field is
			    present, indicating conformance to this
			    specification.  Once again, the authserv-id used
			    is the recipient's DNS domain name.  The header
			    field is present twice because two different MTAs
			    in the chain of delivery did authentication tests.
			    The first, "mail-router.example.com" reports that
			    SMTP AUTH and SPF were both used, and the former
			    passed while the latter failed.  In the SMTP AUTH
			    case, additional information is
			    provided in the comment field, which the MUA can
			    choose to render if desired. </t>

			<t> The second MTA, "auth-checker.example.com",
			    reports that it did a Sender ID test (which
			    failed) and a DKIM
			    test (which passed).  Again, additional data about
			    one of the tests is provided as a comment, which
			    the MUA may choose to render.  Also noteworthy
			    here is the fact that there is a DKIM signature
			    added by example.com that assured the integrity
			    of the lower Authentication-Results field. </t>

			<t> Since different hosts did the two sets of
			    authentication checks, the header fields cannot be
			    consolidated in this example. </t>

			<t> This example illustrates more typical transmission
			    of mail into "example.com" from a user on a
			    dialup connection "example.net".  The user appears
			    to be legitimate as he/she had a valid password
			    allowing authentication at the border MTA using
			    SMTP AUTH.  The SPF and Sender ID tests failed
			    since "example.com" has not granted "example.net"
			    authority to relay mail on its behalf.  However,
		 	    the DKIM test passed because
			    the sending user had a private key matching one
			    of "example.com"'s published public keys and
			    used it to sign the message. </t>
		</section>

		<section anchor="example6" title="Service Provided, Multi-Tiered Authentication Done">
			<figure>
				<preamble> A message that had authentication
				           done at various stages, one of
				           which was outside the receiving
				           ADMD: </preamble>
				<artwork>
     Authentication-Results: example.com;
           dkim=pass reason="good signature"
             header.i=@mail-router.example.net;
           dkim=fail reason="bad signature"
             header.i=@newyork.example.com
     Received: from mail-router.example.net
               (mail-router.example.net [192.0.2.250])
           by chicago.example.com (8.11.6/8.11.6)
               for &lt;recipient@chicago.example.com&gt;
               with ESMTP id i7PK0sH7021929;
           Fri, Feb 15 2002 17:19:22 -0800
     DKIM-Signature: v=1; a=rsa-sha256; s=furble;
           d=mail-router.example.net; t=1188964198; c=relaxed/simple;
           h=From:Date:To:Message-Id:Subject:Authentication-Results;
           bh=ftA9J6GtX8OpwUECzHnCkRzKw1uk6FNiLfJl5Nmv49E=;
           b=oINEO8hgn/gnunsg ... 9n9ODSNFSDij3=
     Authentication-Results: example.net;
           dkim=pass (good signature) header.i=@newyork.example.com
     Received: from smtp.newyork.example.com
               (smtp.newyork.example.com [192.0.2.220])
           by mail-router.example.net (8.11.6/8.11.6)
               with ESMTP id g1G0r1kA003489;
           Fri, Feb 15 2002 17:19:07 -0800
     DKIM-Signature: v=1; a=rsa-sha256; s=gatsby;
           d=newyork.example.com;
           t=1188964191; c=simple/simple;
           h=From:Date:To:Message-Id:Subject;
           bh=sEu28nfs9fuZGD/pSr7ANysbY3jtdaQ3Xv9xPQtS0m7=;
           b=EToRSuvUfQVP3Bkz ... rTB0t0gYnBVCM=
     From: sender@newyork.example.com
     Date: Fri, Feb 15 2002 16:54:30 -0800
     To: meetings@example.net
     Message-Id: &lt;12345.abc@newyork.example.com&gt;
     Subject: here's a sample
				</artwork>
				<postamble> Example 6: Headers reporting
				            results from multiple
				            MTAs in different
				            ADMDs </postamble>
			</figure>

			<t> In this example we see multi-tiered authentication
			    with an extended trust boundary. </t>

			<t> The message was sent from someone at example.com's
			    New York office (newyork.example.com) to a
			    mailing list managed at an intermediary.
			    The message was signed at the origin using
			    DKIM. </t>

			<t> The message was sent to a mailing list service
			    provider called example.net, which is used by
			    example.com.  There, meetings@example.net
			    is expanded to a long list of recipients, one
			    of whom is at the Chicago office.  In this
			    example, we will assume that the trust boundary
			    for chicago.example.com includes the mailing list
			    server at example.net. </t>

			<t> The mailing list server there first authenticated
			    the message and affixed an
			    Authentication-Results header field indicating
			    such using its DNS domain name for the authserv-id.
			    It then altered the message by affixing some
			    footer text to the body, including some
			    administrivia such as unsubscription
			    instructions.  Finally, the mailing list server
			    affixes a second DKIM signature
			    and begins distribution of the message. </t>

			<t> The border MTA for chicago.example.com explicitly
			    trusts results from mail-router.example.net
			    so that header field is not removed.  It performs
			    evaluation of both signatures and determines
			    that the first (most recent) is a "pass" but,
			    because of the aforementioned modifications, the
			    second is a "fail".  However, the first
			    signature included the Authentication-Results
			    header added at mail-router.example.net
			    that validated the second signature.
			    Thus, indirectly, it can be determined that
			    the authentications claimed by both signatures are
			    indeed valid. </t>

			<t> Note that two styles of presenting meta-data about
			    the result are in use here.  In one case, the
			    "reason=" clause is present which is intended
			    for easy extraction by parsers; in the other
			    case, the CFWS production of the ABNF is used
			    to include such data as a header field
			    comment.  The latter can be harder for parsers
			    to extract given the varied supported syntaxes of
			    mail header fields. </t>
		</section>

		<section anchor="example7" title="Comment-Heavy Example">
			<figure>
				<preamble> The formal syntax permits
				           comments within the content in a
				           number of places.  For the sake
				           of illustration, this example is
				           also legal: </preamble>
				<artwork>
    Authentication-Results: foo.example.net (foobar) 1 (baz);
        dkim (Because I like it) / 1 (One yay) = (wait for it) fail 
          policy (A dot can go here) . (like that) expired
          (this surprised me) = (as I wasn't expecting it) 1362471462
				</artwork>
				<postamble> Example 7: A very comment-heavy
				            but perfectly legal example
				            </postamble>
			</figure>
		</section>
	</section>

	<section anchor="op_considerations"
		title="Operational Considerations about Message Authentication">
		<t> This protocol is predicated on the idea that authentication
		    (and presumably in the future, reputation) work is
		    typically done by border MTAs rather than MUAs or
		    intermediate MTAs; the latter merely make use of the
		    results determined by the former.  Certainly this is
		    not mandatory for participation in electronic mail or
		    message authentication, but this protocol
		    and its deployment to date are based on that model.  The
		    assumption satisfies several common ADMD requirements:

		    <list style="numbers">
			<t> Service operators prefer to resolve the handling
			    of problem messages as close to the border of the
			    ADMD as possible.  This enables, for example,
			    rejection of messages at the SMTP level rather
			    than generating a DSN internally.  Thus, doing any
			    of the authentication or reputation work
			    exclusively at the MUA or intermediate MTA renders
			    this desire unattainable. </t>

			<t> Border MTAs are more likely to have direct access
			    to external sources of authentication or reputation
			    information since modern MUAs are more likely to
			    be heavily firewalled.  Thus, some MUAs might not
			    even be able to complete the task of performing
			    authentication or reputation evaluations without
			    complex proxy configurations or similar
			    burdens. </t>

			<t> MUAs rely upon the upstream MTAs within their trust
			    boundaries to make correct (as much as that is
			    possible) evaluations about the message's envelope,
			    header, and content.  Thus, MUAs don't need to
			    know how to do the work that upstream MTAs do;
			    they only need the results of that work. </t>

			<t> Evaluations about the quality of a message,
			    from simple token matching (e.g., a list of
			    preferred DNS domains) to cryptanalysis (e.g.,
			    public/private key work), are at least a
			    little bit expensive and thus need to be minimized.
			    To that end, performing those tests at the border
			    MTA is far preferred to doing that work at each
			    MUA that handles a message.  If an ADMD's
			    environment adheres to common messaging protocols,
			    a reputation query or an authentication check
			    performed by a border MTA would return the same
			    result as the same query performed by an MUA.  By
			    contrast, in an environment where the MUA does the
			    work, a message arriving for multiple recipients
			    would thus cause authentication or reputation
			    evaluation to be done more than once for the same
			    message (i.e., at each MUA) causing needless
			    amplification of resource use and creating a
			    possible denial-of-service attack vector. </t>

			<t> Minimizing change is good.  As new authentication
			    and reputation methods emerge, the list of methods
			    supported by this header field would presumably be
			    extended.  If MUAs simply consume the contents of
			    this header field rather than actually attempting
			    to do authentication and/or reputation work, then
			    MUAs only need to learn to parse this header field
			    once; emergence of new methods requires only a
			    configuration change at the MUAs and software
			    changes at the MTAs (which are presumably fewer in
			    number).  When choosing to implement these
			    functions in MTAs vs. MUAs, the issues of
			    individual flexibility, infrastructure inertia, and
			    scale of effort must be considered.  It is
			    typically easier to change a single MUA than an
			    MTA because the modification affects fewer users
			    and can be pursued with less care.  However,
			    changing many MUAs is more effort than changing a
			    smaller number of MTAs.  </t>

			<t> For decisions affecting message delivery and
			    display, assessment based on authentication and
			    reputation is best performed close to the time of
			    message transit, as a message makes its journey
			    toward a user's inbox, not afterwards.  DKIM keys
			    and IP address reputations, etc., can change over
			    time or even become invalid, and users can take
			    a long time to read a message once delivered.
			    The value of this work thus degrades, perhaps
			    quickly, once the delivery process has completed.
			    This seriously diminishes the value of this work
			    when done other than at MTAs. </t>
		    </list> </t>

		<t> Many operational choices are possible within an ADMD,
		    including the venue for performing authentication and/or
		    reputation assessment.  The current specification does not
		    dictate any of those choices.  Rather, it facilitates those
		    cases in which information produced by one stage of
		    analysis needs to be transported with the message to the
		    next stage.  </t>
	</section>

	<section anchor="app_changes" title="Changes since RFC5451">
		<t> [Note to IESG: This can be dropped prior to publication
		    unless it's desirable to carry the changes visibly in
		    this way.] </t>

		<t> <list style="symbols">
			<t> Errata #2617 was addressed in RFC6577 and was
			    incorporated here </t>

			<t> Request Internet Standard status </t>

			<t> Change IANA rules to Designated Expert from
			    IETF Review </t>

			<t> Update existing IANA registries from the old
			    RFC to this one </t>

			<t> Add references to ADSP, ATPS, VBR </t>

			<t> Remove all the "X-" stuff, per BCP178 </t>

			<t> Adjust language to indicate that this header field
			    was already defined, and we're just refreshing
			    and revising </t>

			<t> In a few places, RFC2119 language had been used
			    in lowercase terms; fixed here </t>

			<t> Errata #2818 addressed </t>

			<t> Errata #3195 addressed </t>

			<t> Some minor wordsmithing and removal of odd
			    prose </t>

			<t> ABNF: change "dot-atom" to "Keyword" since
			    "dot-atom" allows "=", which leads to ambiguous
			    productions </t>

			<t> ABNF: the authserv-id can be a "value", not a
			    "dot-atom" </t>

			<t> ABNF: separate the spec version from the method
			    version; they're syntactically the same but
			    semantically different; add a section discussing
			    them </t>

			<t> Call out the SMTP verb exceptions ("mailfrom" and
			    "rcptto"); the previous RFC didn't do this,
			    leading to interoperability problems </t>

			<t> Rather than deleting suspect header fields, they
			    could also be renamed to something harmless; there
			    is at least one implementation of this </t>

			<t> Update IANA method registry to include version
			    numbers </t>

			<t> Rather than repeating what RFC4408[bis] says
			    the SPF results are, just refer to those
			    documents </t>

			<t> Constrain inclusion of unnecessary properties
			    to avoid confusing consumers </t>

			<t> Review "should" vs. SHOULD </t>

			<t> Update prose around authserv-id (Section 2.3) </t>

			<t> Merge Sections 2.5 and 2.6 (defined methods
			    and result codes) </t>
		    </list> </t>
	</section>
</back>

</rfc>
