RFC 6591

Authentication Failure Reporting Using the Abuse Reporting Format

๐Ÿ“… published April 2012, from ietf

RFC 6591: Authentication Failure Reporting Using the Abuse Reporting Format ๐Ÿฆ‹

Okay bestie, this is part 1 of 3 ๐ŸŽ€ The whole RFC is long, so we're going in chunks. Here's the title block tea โ˜•

  • RFC number: 6591 ๐Ÿ’…
  • Title: Authentication Failure Reporting Using the Abuse Reporting Format
  • Author: H. Fontana
  • Category: Standards Track (an Internet Standards Track document โœจ)
  • Date: April 2012
  • Published by: the Internet Engineering Task Force (IETF), ISSN 2070-1721
  • Obsoletes / Updates: the title block doesn't list anything it obsoletes or updates ๐Ÿ™ˆ

Abstract

This memo adds a new extension report type to the Abuse Reporting Format (ARF) ๐Ÿ”ฅ It affects several registries, and it's for making receipt-time reports about messages that fail one or more email message authentication checks. Main character energy ๐Ÿ‘‘

Status of This Memo

This is an Internet Standards Track document ๐ŸŒธ

It's a product of the Internet Engineering Task Force (IETF), so it reflects what the IETF community agreed on. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). For more on Internet Standards, check Section 2 of RFC 5741 ๐Ÿ“š

Info about the current status of this doc, any errata, and how to send feedback lives at http://www.rfc-editor.org/info/rfc6591 ๐Ÿงš

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved ๐Ÿ’œ

This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents, which you can find at http://trustee.ietf.org/license-info, as they stood on the publication date. Please actually read those, bestie, because they spell out your rights and restrictions for this document ๐Ÿ™ Any Code Components pulled out of this document have to include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, same as the Simplified BSD License says ๐Ÿซถ

Table of Contents

   1. Introduction ....................................................2
   2. Definitions .....................................................3
      2.1. Key Words ..................................................3
      2.2. Email Architecture .........................................3
      2.3. Base64 .....................................................3
      2.4. Technologies ...............................................3
   3. ARF Extension for Authentication Failure Reporting ..............3
      3.1. New ARF Feedback Type ......................................4
      3.2. New ARF Header Field Names .................................5
           3.2.1. Required for All Reports ............................5
           3.2.2. Optional for All Reports ............................5
           3.2.3. Required for DKIM Reports ...........................5
           3.2.4. Optional for DKIM Reports ...........................6
           3.2.5. Required for ADSP Reports ...........................6
           3.2.6. Required for SPF Reports ............................6
      3.3. Authentication Failure Types ...............................6
   4. Syntax for Added ARF Header Fields ..............................7
   5. IANA Considerations .............................................8
      5.1. Updates to ARF Feedback Types ..............................8
      5.2. Updates to ARF Header Field Names ..........................8
   6. Security Considerations ........................................10
      6.1. Inherited Considerations ..................................10
      6.2. Forgeries .................................................10
      6.3. Automatic Generation ......................................11
      6.4. Envelope Sender Selection .................................11
      6.5. Reporting Multiple Incidents ..............................11
      6.6. Redaction of Data in DKIM Reports .........................12
   7. References .....................................................12
      7.1. Normative References ......................................12
      7.2. Informative References ....................................13
   Appendix A. Acknowledgements ......................................14
   Appendix B. Example ...............................................14
     B.1. Example Use of ARF Extension Headers .......................14

1. Introduction โœจ

The Abuse Reporting Format [ARF] defines a message format for sending reports of abuse through the messaging infrastructure. The big goal is automating both making and reading those reports ๐Ÿค–

Here's the thing: there's now a desire to extend ARF so it can report messages that fail to authenticate with known message authentication methods, like DomainKeys Identified Mail [DKIM] and Sender Policy Framework [SPF]. Those failures are sometimes evidence of abuse, and automated tools can catch and report them ๐Ÿ•ต๏ธโ€โ™€๏ธ The same mechanism can also carry forensic info about why the authentication method failed, which is so useful ๐Ÿ˜ญ So this memo lays out extensions to ARF that allow detailed reporting of message authentication method failures ๐Ÿ’–

2. Definitions ๐ŸŽ€

2.1. Key Words ๐Ÿ”‘

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 [KEYWORDS] ๐Ÿ’…

2.2. Email Architecture ๐Ÿ“ฌ

This memo uses some terms whose definitions and descriptions can be found in [EMAIL-ARCH] ๐Ÿงš

2.3. Base64 ๐Ÿฉต

Base64 is defined in Section 4 of [BASE64] ๐ŸŒˆ

Values that are base64 encodings MAY contain folding whitespace (FWS) for formatting, the usual way header fields get wrapped, as defined in [MAIL] ๐ŸŽ€ When decoding, any characters that aren't in the base64 alphabet get ignored, so line wrapping can't mess up the value ๐Ÿซถ The ABNF token "FWS" is defined in [DKIM]. No other extensions to the valid base64 character set are permitted ๐Ÿ™…โ€โ™€๏ธ

2.4. Technologies ๐Ÿฆ‹

Email security has technologies that provide authentication services and some that do authorization. People mix these up all the time, and honestly it's so confusing ๐Ÿ™ƒ If you want context, Section 1.5.2 of [AUTH-RESULTS] has a useful discussion ๐Ÿ“š

3. ARF Extension for Authentication Failure Reporting ๐Ÿ’œ

The current report format in [ARF] is missing some specific features needed for effective email authentication failure reporting. This section defines the ARF extensions that fix that ๐Ÿ”ฅ

A single report describes a single email authentication failure. Multiple reports MAY be used to report multiple failures for a single message ๐Ÿ“

3.1. New ARF Feedback Type ๐ŸŒธ

A new feedback type, auth-failure, is defined in this document as an extension, per Section 7.3 of [ARF] โœจ

A message using this feedback type has modified header field requirements for the second (machine-parseable) [MIME] part of the report. Here's the tea:

  • Authentication-Results: Syntax is as specified in [AUTH-RESULTS]. [ARF] says this field is OPTIONAL and appears at most once. For this extension, this field MUST be present, but it MUST reflect only a single authentication method's result ๐Ÿซ 
  • Original-Envelope-Id: Syntax is as specified in [ARF]. [ARF] says this field is OPTIONAL and appears at most once. For this extension, including this field is RECOMMENDED, where that value is available, to help diagnose the authentication failure ๐Ÿ”
  • Original-Mail-From: Syntax is as specified in [ARF]. [ARF] says this field is OPTIONAL and appears at most once. For this extension, including this field is RECOMMENDED, where that value is available, to help diagnose the authentication failure ๐Ÿ“ฎ
  • Source-IP: Syntax is as specified in [ARF]. [ARF] says this field is OPTIONAL and appears at most once. For this extension, including this field is RECOMMENDED, where that value is available, to help diagnose the authentication failure ๐ŸŒ
  • Reported-Domain: Syntax is as specified in [ARF]. [ARF] says this field is OPTIONAL and appears at most once. For this extension, this field MUST be present if such a value is available ๐ŸŽฏ
  • Delivery-Result: As specified in Section 3.2.2. This field is OPTIONAL, but it MUST NOT appear more than once. If it's present, it SHOULD say what happened to the message in some meaningful way, though it MAY be set to "other" for local policy reasons ๐Ÿ“ฆ

The third MIME part of the message is either type "message/rfc822" (as defined in [MIME-TYPES]) or type "text/rfc822-headers" (as defined in [REPORT]). It holds a copy of the entire header block from the original message. This part MUST be included, which is different from [REPORT], where it's optional ๐Ÿ™ˆ

Privacy matters here ๐Ÿ” Report generators might need to redact parts of a reported message, like an identifier or address tied to the end user whose complaint action made the report. You'll find a discussion of the issues and a suggested way to do it in [RFC6590] ๐Ÿซถ

3.2. New ARF Header Field Names ๐ŸŽ€

These new ARF field names are defined as extensions to Section 3.1 of [ARF] ๐Ÿงš

3.2.1. Required for All Reports ๐Ÿ’–

  • Auth-Failure: Shows the failure from an email authentication method that's being reported. The list of valid values is in Section 3.3 ๐Ÿ‘‘

3.2.2. Optional for All Reports ๐Ÿฆ‹

  • Delivery-Result: The final message disposition that the ADministrative Management Domain (ADMD) generating the report actually enacted. It MUST NOT appear more than once. Possible values are:
    • delivered: The message was delivered (not specific about where) ๐Ÿ“ฅ
    • spam: The message was delivered to the recipient's spam folder (or equivalent) ๐Ÿ—‘๏ธ
    • policy: The message wasn't delivered to the intended inbox because of a failure from an email authentication method. The specific action taken isn't specified ๐Ÿšซ
    • reject: The message was rejected โŒ
    • other: The message had a final disposition that isn't covered by any of the values above ๐Ÿคทโ€โ™€๏ธ

3.2.3. Required for DKIM Reports ๐Ÿ”ฅ

  • DKIM-Domain: The domain that signed the message, taken from the d= tag of the signature ๐Ÿ–‹๏ธ
  • DKIM-Identity: The identity of the signature that failed verification, taken from the i= tag of the signature ๐Ÿชช
  • DKIM-Selector: The selector of the signature that failed verification, taken from the s= tag of the signature ๐Ÿ”‘

3.2.4. Optional for DKIM Reports ๐ŸŒธ

  • DKIM-Canonicalized-Header: A base64 encoding of the canonicalized header of the message, as generated by the verifier ๐Ÿ“œ
  • DKIM-Canonicalized-Body: A base64 encoding of the canonicalized body of the message, as generated by the verifier. The encoded content MUST be limited to the octets that contribute to the DKIM body hash (that is, the value of the l= tag; see Section 3.7 of [DKIM]) ๐Ÿงพ

If DKIM-Canonicalized-Header and DKIM-Canonicalized-Body encode redacted data, they MUST NOT be included. Otherwise, they SHOULD be included. The data there has to be exactly the canonicalized header and body as defined by [DKIM] and computed at the verifier. That's because these fields exist to help identify message alterations that break DKIM signatures in transit. Including redacted data in them makes the data unusable ๐Ÿ’€ (See also Sections 3.1 and 6.6 for more discussion ๐ŸŽ€)

3.2.5. Required for ADSP Reports ๐Ÿงš

  • DKIM-ADSP-DNS: Includes the Author Domain Signing Practices (ADSP) policy used to get the verifier's ADSP result. This MUST be formatted per Section 4.2.1 of [ADSP] ๐Ÿ’…

3.2.6. Required for SPF Reports โœจ

Okay bestie, SPF reports have their own must-have field too ๐Ÿงš SPF-DNS: MUST appear once for every SPF record [SPF] used to get the SPF result. It MUST also include the DNS RRTYPE that was used, the DNS domain the record came from, and the content of that record. The syntax lives in Section 4, so go check it out ๐Ÿ’…

3.3. Authentication Failure Types ๐Ÿฆ‹

Here's the list of email authentication failure types you can use in the Auth-Failure: header field (the one we just covered) ๐Ÿ’œ

  • adsp: The message didn't match the author domain's published [ADSP] signing practices ๐Ÿ˜ญ The DKIM-ADSP-DNS field MUST be included in the report.
  • bodyhash: The body hash in the signature and the body hash the verifier computed didn't match ๐Ÿ’€ The DKIM-Canonicalized-Body field SHOULD be included in the report (see Section 3.2.4).
  • revoked: The DKIM key that the signature on the message points to has been revoked ๐Ÿšซ The DKIM-Domain and DKIM-Selector fields MUST be included in the report.
  • signature: The DKIM signature on the message didn't successfully verify against the header hash and public key ๐Ÿ™ˆ The DKIM-Domain and DKIM-Selector fields MUST be included in the report, and the DKIM-Canonicalized-Header field SHOULD be included in the report (see Section 3.2.4).
  • spf: The evaluation of the author domain's SPF record gave a "none", "fail", "softfail", "temperror", or "permerror" result ๐ŸŒธ ("none" isn't strictly a failure per [SPF], but a service that demands successful SPF evaluations of clients could treat it like a failure, ngl.)

Supplementary data MAY be included in the form of comments compliant with [MAIL] ๐ŸŽ€ For example, Auth-Failure: adsp could be augmented by a comment to show that the failed message got rejected because it wasn't signed when it should have been. See Appendix B for an example โœจ

4. Syntax for Added ARF Header Fields ๐Ÿ“

Here are the [ABNF] definitions for the new fields. Literally the blueprint, so copy it exactly ๐Ÿ’…

  auth-failure = "Auth-Failure:" [CFWS]
                 ( "adsp" / "bodyhash" / "revoked" /
                   "signature" / "spf" ) [CFWS] CRLF
               ; "CFWS" is defined in [MAIL]

  delivery-result = "Delivery-Result:" [CFWS]
                    ( "delivered" / "spam" / "policy" /
                      "reject" / "other" ) [CFWS] CRLF

  dkim-header = "DKIM-Canonicalized-Header:" [CFWS]
                base64string CRLF
              ; "base64string" is defined in [DKIM]

  dkim-sig-domain = "DKIM-Domain:" [CFWS] domain-name [CFWS]
                    CRLF
                  ; "domain-name" is defined in [DKIM]

  dkim-identity = "DKIM-Identity:" [CFWS] [ local-part ] "@"
                  domain-name [CFWS] CRLF
                ; "local-part" is defined in [MAIL]

  dkim-selector = "DKIM-Selector:" [CFWS] selector [CFWS] CRLF
                ; "selector" is defined in [DKIM]

  dkim-adsp-dns = "DKIM-ADSP-DNS:" [CFWS]
                  quoted-string [CFWS] CRLF
                ; "quoted-string" is defined in [MAIL]

  dkim-body = "DKIM-Canonicalized-Body:" [CFWS]
              base64string CRLF

  dkim-selector-dns = "DKIM-Selector-DNS:" [CFWS]
                      quoted-string [CFWS] CRLF

  spf-dns = "SPF-DNS:" [CFWS] ( "txt" / "spf" ) [CFWS] ":" [CFWS]
            domain [CFWS] ":" [CFWS] quoted-string [CFWS] CRLF

5. IANA Considerations ๐ŸŒˆ

As required by [IANA], this section contains registry information for the extension to [ARF] ๐Ÿ“‹

5.1. Updates to ARF Feedback Types ๐Ÿ”ฅ

The following feedback type has been added to the Feedback Report Type Values registry:

    Feedback Type: auth-failure
    Description: email authentication failure report
    Published in: [RFC6591]
    Status: current

5.2. Updates to ARF Header Field Names ๐Ÿ’œ

The following headers are added to the Feedback Report Header Fields registry:

    Field Name: Auth-Failure
    Description: Type of email authentication method failure
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: Delivery-Result
    Description: Final disposition of the subject message
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: DKIM-ADSP-DNS
    Description: Retrieved DKIM ADSP record
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: DKIM-Canonicalized-Body
    Description: Canonicalized body, per DKIM
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: DKIM-Canonicalized-Header
    Description: Canonicalized header, per DKIM
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: DKIM-Domain
    Description: DKIM signing domain from "d=" tag
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: DKIM-Identity
    Description: Identity from DKIM signature
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: DKIM-Selector
    Description: Selector from DKIM signature
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: DKIM-Selector-DNS
    Description: Retrieved DKIM key record
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

    Field Name: SPF-DNS
    Description: Retrieved SPF record
    Multiple Appearances: No
    Related "Feedback-Type": auth-failure
    Published in: [RFC6591]
    Status: current

6. Security Considerations ๐Ÿ’€

Okay, this part is seriously important, so pay attention ๐Ÿซถ Security issues with respect to these reports are similar to the ones found in [DSN].

6.1. Inherited Considerations ๐Ÿ”

Implementers are advised to consider the Security Considerations sections of [DKIM], [ADSP], [SPF], and [ARF].

6.2. Forgeries ๐ŸŽญ

These reports can be forged as easily as ordinary Internet electronic mail ๐Ÿ˜ญ User agents and automatic mail-handling facilities (like mail distribution list exploders) that want to make automatic use of Delivery Status Notifications (DSNs) of any kind should take appropriate precautions to minimize the potential damage from denial-of-service attacks.

Security threats related to forged DSNs include the sending of:

  • a. A falsified email authentication method failure notification when the message was in fact delivered to the indicated recipient;
  • b. Falsified signature information, such as selector, domain, etc.

Perhaps the simplest way to mitigate this threat is to assert that these reports should themselves be signed with something like DKIM ๐Ÿง  On the other hand, if there's a problem with the DKIM infrastructure at the verifier, signing DKIM failure reports might produce reports that aren't trusted or even accepted by their intended recipients ๐Ÿ’…

6.3. Automatic Generation ๐Ÿค–

Automatic generation of these reports by verifying agents can cause a denial-of-service attack when a large volume of email is sent that causes email authentication failures for whatever reason ๐Ÿ˜ฑ

Limiting the rate of generation of these messages might be appropriate, but it threatens to hold back the distribution of important and possibly time-sensitive information โฐ

In general ARF feedback loop terms, it is suggested that report generators only create these (or any) ARF reports after an out-of-band arrangement has been made between two parties ๐Ÿค This mechanism then becomes a way to adjust the parameters of an authorized abuse report feedback loop that is configured and activated by private agreement, rather than starting to send them automatically based solely on discovered data in the DNS ๐ŸŒธ

6.4. Envelope Sender Selection ๐Ÿ“ฎ

In the case of transmitted reports in the form of a new message, it is necessary to consider how the message is constructed and transmitted, so as to avoid amplification attacks, deliberate or otherwise. See Section 5 of [ARF] for further information โœจ

6.5. Reporting Multiple Incidents ๐Ÿ“ฃ

If it's known that a particular host generates abuse reports upon certain incidents, an attacker could forge a high volume of messages that will trigger such a report ๐Ÿ˜ฌ The recipient of the report could then get inundated with reports. This could easily be extended to a distributed denial-of-service attack by finding a number of report-generating servers ๐Ÿ’€

The incident count referenced in [ARF] provides a limited form of mitigation ๐Ÿฆ‹ The host generating reports may choose to send reports only periodically, with each report representing a number of identical or near-identical incidents. One might even go inverse-exponentially, sending reports for each of the first ten incidents, then every tenth incident up to 100, then every 100th incident up to 1000, and so on, until some period of relative quiet, after which the limitation resets ๐Ÿ“‰

The use of this technique for "near-identical" incidents in particular causes a degradation in reporting quality, though ๐Ÿ˜” If, for example, a large number of pieces of spam arrive from one attacker, a reporting agent might decide to send a report about only a fraction of those messages. While this averts a flood of reports to a system administrator, the precise details of each incident aren't sent either.

6.6. Redaction of Data in DKIM Reports ๐Ÿ”

This memo requires that the canonicalized header and body be returned without being subject to redaction when a DKIM failure is being reported ๐Ÿซถ This is necessary so the returned canonicalized forms are useful for debugging, since they have to be compared to the equivalent form at the signer. If a message is altered in transit, and the returned data are also redacted, the redacted portion and the altered portion may overlap, making the comparison results meaningless. However, unredacted data can leak information the reporting entity considers to be private ๐Ÿ™ˆ That's exactly why the return of the canonicalized forms is not required.

7. References ๐Ÿ“š

7.1. Normative References

Okay, these are the must-read docs ๐Ÿ’… You can't really get through this spec without them, so here they are in full:

  • [ABNF] Crocker, D., Ed., and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008. ๐Ÿ“
  • [ADSP] Allman, E., Fenton, J., Delany, M., and J. Levine, "DomainKeys Identified Mail (DKIM) Author Domain Signing Practices (ADSP)", RFC 5617, August 2009. ๐Ÿ”
  • [ARF] Shafranovich, Y., Levine, J., and M. Kucherawy, "An Extensible Format for Email Feedback Reports", RFC 5965, August 2010. ๐Ÿ“จ
  • [AUTH-RESULTS] Kucherawy, M., "Message Header Field for Indicating Message Authentication Status", RFC 5451, April 2009. โœ…
  • [BASE64] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, October 2006. ๐Ÿง
  • [DKIM] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., "DomainKeys Identified Mail (DKIM) Signatures", RFC 6376, September 2011. โœ๏ธ
  • [IANA] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008. ๐Ÿ—‚๏ธ
  • [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. ๐Ÿ”‘
  • [MAIL] Resnick, P., Ed., "Internet Message Format", RFC 5322, October 2008. ๐Ÿ’Œ
  • [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996. ๐ŸŽ€
  • [MIME-TYPES] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996. ๐ŸŒธ
  • [REPORT] Kucherawy, M., Ed., "The Multipart/Report Media Type for the Reporting of Mail System Administrative Messages", STD 73, RFC 6522, January 2012. ๐Ÿ“Š
  • [RFC6590] Falk, J., Ed., and M. Kucherawy, Ed., "Redaction of Potentially Sensitive Data from Mail Abuse Reports", RFC 6590, April 2012. ๐Ÿซฃ
  • [SPF] Wong, M. and W. Schlitt, "Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1", RFC 4408, April 2006. ๐ŸŒˆ

7.2. Informative References

These ones are good to know, but you don't need them to follow along ๐Ÿงš

  • [DSN] Moore, K. and G. Vaudreuil, "An Extensible Message Format for Delivery Status Notifications", RFC 3464, January 2003. ๐Ÿ“ฌ
  • [EMAIL-ARCH] Crocker, D., "Internet Mail Architecture", RFC 5598, July 2009. ๐Ÿ›๏ธ

Appendix A. Acknowledgements ๐Ÿซถ

The author wanted to shout out these amazing people for reviewing the proposal and giving honest, constructive feedback: Frank Ellermann, J.D. Falk, Scott Kitterman, John Levine, Mike Markley, Kelly Wanser, Murray Kucherawy, and Alessandro Vesely. Iconic squad, no notes ๐Ÿ‘‘


Appendix B. Example ๐Ÿ“

Here's a real example of the extension from this memo in action, so you can see what it looks like ๐Ÿ‘€

B.1. Example Use of ARF Extension Headers

Okay, so this is an ARF-formatted report that uses the new ARF extension fields โœจ

Message-ID: <433689.81121.example@mta.mail.receiver.example>
From: "SomeISP Antispam Feedback" <feedback@mail.receiver.example>
To: arf-failure@sender.example
Subject: FW: You have a new bill from your bank
Date: Sat, 8 Oct 2011 15:15:59 -0500 (CDT)
MIME-Version: 1.0
Content-Type: multipart/report;
  boundary="------------Boundary-00=_3BCR4Y7kX93yP9uUPRhg";
  report-type=feedback-report
Content-Transfer-Encoding: 7bit

--------------Boundary-00=_3BCR4Y7kX93yP9uUPRhg
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

This is an authentication failure report for an email message
received from a.sender.example on 8 Oct 2011 20:15:58 +0000 (GMT).
For more information about this format, please see [RFC6591].

--------------Boundary-00=_3BCR4Y7kX93yP9uUPRhg
Content-Type: message/feedback-report
Content-Transfer-Encoding: 7bit

Feedback-Type: auth-failure
User-Agent: Someisp!Mail-Feedback/1.0
Version: 1
Original-Mail-From: anexample.reply@a.sender.example
Original-Envelope-Id: o3F52gxO029144
Authentication-Results: mta1011.mail.tp2.receiver.example;
 dkim=fail (bodyhash) header.d=sender.example
Auth-Failure: bodyhash
DKIM-Canonicalized-Body: VGhpcyBpcyBhIG1lc3NhZ2UgYm9keSB0
  aGF0IGdvdCBtb2RpZmllZCBpbiB0cmFuc2l0LgoKQXQgdGhlIHNhbWU
  gdGltZSB0aGF0IHRoZSBib2R5aGFzaCBmYWlscyB0byB2ZXJpZnksIH
  RoZQptZXNzYWdlIGNvbnRlbnQgaXMgY2xlYXJseSBhYnVzaXZlIG9yI
  HBoaXNoeSwgYXMgdGhlClN1YmplY3QgYWxyZWFkeSBoaW50cy4gIElu
  ZGVlZCwgdGhpcyBib2R5IGFsc28gY29udGFpbnMKdGhlIGZvbGxvd2l
  uZyB0ZXh0OgoKICAgUGxlYXNlIGVudGVyIHlvdXIgZnVsbCBiYW5rIG
  NyZWRlbnRpYWxzIGF0CiAgIGh0dHA6Ly93d3cuc2VuZGVyLmV4YW1wb
  GUvCgpXZSBhcmUgaW1wbHlpbmcgdGhhdCwgYWx0aG91Z2ggbXVsdGlw
  bGUgZmFpbHVyZXMKcmVxdWlyZSBtdWx0aXBsZSByZXBvcnRzLCBhIHN
  pbmdsZSBmYWlsdXJlIGNhbiBiZQpyZXBvcnRlZCBhbG9uZyB3aXRoIH
  BoaXNoaW5nIGluIGEgc2luZ2xlIHJlcG9ydC4K
DKIM-Domain: sender.example
DKIM-Identity: @sender.example
DKIM-Selector: testkey
Arrival-Date: 8 Oct 2011 20:15:58 +0000 (GMT)
Source-IP: 192.0.2.1
Reported-Domain: a.sender.example
Reported-URI: http://www.sender.example/

--------------Boundary-00=_3BCR4Y7kX93yP9uUPRhg
Content-Type: text/rfc822-headers
Content-Transfer-Encoding: 7bit

Authentication-Results: mta1011.mail.tp2.receiver.example;
 dkim=fail (bodyhash) header.d=sender.example;
 spf=pass smtp.mailfrom=anexample.reply@a.sender.example
Received: from smtp-out.sender.example
 by mta1011.mail.tp2.receiver.example
 with SMTP id oB85W8xV000169;
 Sat, 08 Oct 2011 13:15:58 -0700 (PDT)
DKIM-Signature: v=1; c=relaxed/simple; a=rsa-sha256;
 s=testkey; d=sender.example; h=From:To:Subject:Date;
 bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
 b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk4yAUoqOB
 4nujc7YopdG5dWLSdNg6xNAZpOPr+kHxt1IrE+NahM6L/LbvaHut
 KVdkLLkpVaVVQPzeRDI009SO2Il5Lu7rDNH6mZckBdrIx0orEtZV
 4bmp/YzhwvcubU4=
Received: from mail.sender.example
 by smtp-out.sender.example
 with SMTP id o3F52gxO029144;
 Sat, 08 Oct 2011 13:15:31 -0700 (PDT)
Received: from internal-client-001.sender.example
 by mail.sender.example
 with SMTP id o3F3BwdY028431;
 Sat, 08 Oct 2011 13:15:24 -0700 (PDT)
Date: Sat, 8 Oct 2011 16:15:24 -0400 (EDT)
Reply-To: anexample.reply@a.sender.example
From: anexample@a.sender.example
To: someuser@receiver.example
Subject: You have a new bill from your bank
Message-ID: <87913910.1318094604546@out.sender.example>

--------------Boundary-00=_3BCR4Y7kX93yP9uUPRhg--

Example 1: Example ARF Report Using These Extensions ๐ŸŽฏ

So this example ARF message is basically making these two claims:

  • DKIM verification of the signature added within "sender.example" failed. ๐Ÿ’€
  • The cause of the verification failure was a mismatch between the body contents observed at the verifier and the body hash contained in the signature. ๐Ÿ™ˆ

Author's Address ๐Ÿ’–

Hilda L. Fontana
3579 E. Foothill Blvd., Suite 282
Pasadena, CA  91107
US

Phone: +1 626 676 8852
EMail: hilda@hfontana.com

And that's the whole doc, bestie! ๐Ÿฆ‹โœจ

๐Ÿ“ฆ where this page comes from