MARF Working Group | H.F. Fontana |
Internet-Draft | 2011 |
Intended status: Standards Track |
Authentication Failure Reporting using the Abuse Report Format
draft-ietf-marf-authfailure-report-06
This memo registers an extension report type to ARF, affecting multiple registries, for use in generating receipt-time reports about messages that fail one or more email authentication checks.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http:/⁠/⁠datatracker.ietf.org/⁠drafts/⁠current/⁠.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http:/⁠/⁠trustee.ietf.org/⁠license-⁠info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
[ARF] defines a message format for sending reports of abuse in the messaging infrastructure, with an eye towards automating both the generation and consumption of those reports. There is now also a desire to extend the ARF format to include reporting of messages that fail to authenticate using known authentication methods, as these are sometimes evidence of abuse that can be detected and reported through automated means. The same mechanism can be used to convey forensic information about the specific reason the authentication method failed. Thus, this memo presents such extensions to the Abuse Reporting Format to allow for detailed reporting of message authentication method failures.
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].
base64 is defined in [MIME].
The values that are base64 encodings may contain FWS for formatting purposes as per the usual header field wrapping defined in [MAIL]. During decoding, any characters not in the base64 alphabet are ignored so that such line wrapping does not harm the value. The ABNF token "FWS" is defined in [DKIM].
There are technologies in email security that provide authentication services and some that do authorization. These are often conflated. A discussion of this that is useful for establishing context can be found in Section 1.5.2 in [AUTH-RESULTS].
The current report format defined in [ARF] lacks some specific features required to do effective email authentication failure reporting. This section defines extensions to ARF to accommodate this requirement.
A new feedback type of "auth-failure" is defined as an extension to Section 8.2 of [ARF]. See Section 3.3 for details.
A message that uses this feedback type has the following modified header field requirements for the second (machine-parseable) [MIME] part of the report:
The third MIME part of the message is either of type "message/rfc822" (as defined in [MIME-TYPES]) or "text/rfc822-headers" (as defined in [REPORT]) and contains a copy of the entire header block from the original message. This part MUST be included (contrary to [REPORT], which makes it optional).
For privacy reasons, report generators might need to redact portions of a reported message such as the end user whose complaint action resulted in the report. See [I-D.IETF-MARF-REDACTION] for a discussion of this.
The following new ARF field names are defined as extensions to Section 3.1 of [ARF].
If DKIM-Canonicalized-Header and DKIM-Canonicalized-Body encode redacted data, they MUST NOT be included. Otherwise, they SHOULD be included. The data presented there have to be exactly the canonicalized header and body as defined by [DKIM] and computed at the verifier. This is because these fields are intended to aid in identifying message alterations that invalidate DKIM signatures in transit. Including redacted data in them renders the data unusable. (See also Section 3.1 and Section 6.6 for further discussion.)
DKIM-ADSP-DNS: Includes the ADSP policy used to obtain the verifier's ADSP result.
SPF-DNS MUST appear once for every SPF record used to obtain the SPF result.
The list of defined email authentication failure types used in the "Auth-Failure:" header field (defined above), is as follows:
Supplementary data MAY be included in the form of [MAIL]-compliant comments. For example, "Auth-Failure: adsp" could be augmented by a comment to indicate that the failed message was rejected because it was not signed when it should have been. See Appendix Appendix B for an example.
The [ABNF] definitions for the new fields are as follows:
auth-failure = "Auth-Failure:" [CFWS] token [CFWS] CRLF ; "token" must be a registered email authentication ; failure type as specified elsewhere in this memo ; "token" is defined in [MIME] ; "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] dkim-domain [CFWS] CRLF ; "dkim-domain" 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] token [CFWS] CRLF 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:" : { "txt" / "spf" } [FWS] ":" [FWS] domain [FWS] ":" [FWS] quoted-string
As required by [IANA], this section contains registry information for the new tag, and the extension to [ARF].
The following feedback type is added to the Feedback Report Feedback Type Registry:
Feedback Type: auth-failure Description: email authentication failure report Registration: (this document)
The following headers are added to the Feedback Report Header Names Registry:
Field Name: Auth-Failure Description: Type of email authentication method failure Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: Delivery-Result Description: Final disposition of the subject message Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: DKIM-ADSP-DNS Description: Retrieved DKIM ADSP record Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: DKIM-Canonicalized-Body Description: Canonicalized body, per DKIM Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: DKIM-Canonicalized-Header Description: Canonicalized header, per DKIM Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: DKIM-Domain Description: DKIM signing domain from "d=" tag Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: DKIM-Identity Description: Identity from DKIM signature Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: DKIM-Selector Description: Selector from DKIM signature Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: DKIM-Selector-DNS Description: Retrieved DKIM key record Multiple Appearances: No Related "Feedback-Type": auth-failure
Field Name: SPF-DNS Description: Retrieved SPF record Multiple Appearances: No Related "Feedback-Type": auth-failure
Security issues with respect to these reports are similar to those found in [DSN].
Implementers are advised to consider the Security Considerations sections of [DKIM], [ADSP] [SPF] and [ARF].
These reports may be forged as easily as ordinary Internet electronic mail. User agents and automatic mail handling facilities (such as mail distribution list exploders) that wish to make automatic use of 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:
Perhaps the simplest means of mitigating 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 may produce reports that aren't trusted or even accepted by their intended recipients.
Automatic generation of these reports by verifying agents can cause a denial-of-service attack when a large volume of e-mail is sent that causes email authentication failures for whatever reason.
Limiting the rate of generation of these messages may be appropriate but threatens to inhibit 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 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.
In the case of transmitted reports in the form of a new message, it is necessary to consider the construction and transmission of the message so as to avoid amplification attacks, deliberate or otherwise. See Section 5 of [ARF] for further information.
If it is 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 be innundated 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 elect to send reports only periodically, with each report representing a number of identical or near-identical incidents. One might even do something 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, etc. until some period of relative quiet after which the limitation resets.
The use of this for "near-identical" incidents in particular causes a degradation in reporting quality, however. If for example a large number of pieces of spam arrive from one attacker, a reporting agent may decide only to send a report about a fraction of those messages. While this averts a flood of reports to a system administrator, the precise details of each incident are similarly not sent.
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 to ensure that the returned canonicalized forms are useful for debugging as they must 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, rendering the comparison results meaningless. However, unredacted data can leak information the reporting entity considers to be private. It is for this reason the return of the canonicalized forms is not required.
[DSN] | Moore, K. and G. Vaudreuil, "An Extensible Message Format for Delivery Status Notifications ", RFC 3464, January 2003. |
The authors wish to acknowledge the following for their review and constructive criticism of this proposal: Frank Ellerman, J.D. Falk, Scott Kitterman, John Levine, Mike Markley, Kelly Wanser, Murray Kucherawy and Alessandro Vesely.
This section contains an example of the use of the extension defined by this memo.
An ARF-formatted report using the proposed 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 [this memo]. --------------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: VGhpcyBpcyBhIG1lc3NhZ2UgYm9ke SB0aGF0IGdvdCBtb2RpZmllZCBpbiB0cmFuc2l0Lgo= 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
This example ARF message is making the following assertion: