Individual submission M. Kucherawy Internet-Draft Sendmail, Inc. Intended status: Standards Track March 12, 2008 Expires: September 12, 2008 Reporting of DKIM Verification Failures draft-kucherawy-dkim-reporting-02 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. This document may not be modified, and derivative works of it may not be created. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 28, 2008. Copyright Notice Copyright (C) The IETF Trust (2008). Kucherawy Expires August 28, 2008 [Page 1] Internet-Draft DKIM Reporting February 2008 Abstract This memo presents an extension to the DomainKeys Identified Mail (DKIM) specifications to allow public keys for verification to include a reporting address to be used to report message verification issues, and extends an Internet Message reporting format to be followed when generating such reports. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 2. Optional Key Reporting Address for DKIM . . . . . . . . . . . 4 3. Optional Key Reporting Address for DKIM-SSP . . . . . . . . . 5 4. Requested Reports . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Requested Reports for DKIM Failures . . . . . . . . . . . 6 4.2. Requested Reports for DKIM SSP Failures . . . . . . . . . 6 5. Reporting Formats . . . . . . . . . . . . . . . . . . . . . . 7 6. Extension ARF Fields for DKIM Reporting . . . . . . . . . . . 8 6.1. New ARF Feedback Type . . . . . . . . . . . . . . . . . . 8 6.2. New ARF Header Names . . . . . . . . . . . . . . . . . . . 8 6.3. DKIM Failure Types . . . . . . . . . . . . . . . . . . . . 9 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 7.1. DKIM Key Tag Registration . . . . . . . . . . . . . . . . 10 7.2. DKIM SSP Tag Registration . . . . . . . . . . . . . . . . 10 7.3. Updates to ARF Feedback Types . . . . . . . . . . . . . . 10 7.4. Updates to ARF Header Names . . . . . . . . . . . . . . . 10 8. Security Considerations . . . . . . . . . . . . . . . . . . . 12 8.1. Forgeries . . . . . . . . . . . . . . . . . . . . . . . . 12 8.2. Automatic Generation . . . . . . . . . . . . . . . . . . . 12 8.3. Envelope Sender Selection . . . . . . . . . . . . . . . . 12 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.1. Normative References . . . . . . . . . . . . . . . . . . . 13 9.2. Informative References . . . . . . . . . . . . . . . . . . 13 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 14 Appendix B. Examples . . . . . . . . . . . . . . . . . . . . . . 15 B.1. Example Use of DKIM Key Extension Tags . . . . . . . . . . 15 B.2. Example Use of DKIM SSP Extension Tags . . . . . . . . . . 15 B.3. Example Use of ARF Extension Headers . . . . . . . . . . . 16 Appendix C. To-Do List . . . . . . . . . . . . . . . . . . . . . 17 Appendix D. Public Discussion . . . . . . . . . . . . . . . . . . 18 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 19 Intellectual Property and Copyright Statements . . . . . . . . . . 20 Kucherawy Expires August 28, 2008 [Page 2] Internet-Draft DKIM Reporting February 2008 1. Introduction [DKIM] introduced a standard for digital signing of messages for the purposes of sender authentication. There exist cases in which a domain name owner might want to receive reports from verifiers that determine DKIM-signed mail apparently from its domain is failing to verify according to [DKIM] or is "Suspicious" according to [I-D.DRAFT-IETF-DKIM-SSP]. This document extends [DKIM] and [I-D.DRAFT-IETF-DKIM-SSP] to add an optional reporting address to selector records, an optional means of specifying a desired report format, and furthermore extends [I-D.DRAFT-SHAFRANOVICH-FEEDBACK-REPORT] to add features required for DKIM reporting. This memo presumes those specifications thus modified will issue as RFCs without these modifications. If the modifications are adopted prior to their publicatons, clearly those sections of this memo can be removed. 1.1. Definitions 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]. Kucherawy Expires August 28, 2008 [Page 3] Internet-Draft DKIM Reporting February 2008 2. Optional Key Reporting Address for DKIM There exist cases in which a domain name owner employing [DKIM] for e-mail signing and authentication may want to know when signatures in use by specific keys are not successfully verifying. Currently there is no such mechanism defined. This document adds the following two optional "tags" (as defined in [DKIM]) to the DKIM key records, using the form defined in that specification: r= Reporting Address (plain-text; OPTIONAL; no default). The value MUST be a dkim-quoted-printable string containing the local-part of an e-mail address to which a report SHOULD be sent when mail signed with this key fails verification because either (a) the signature verification itself failed, or (b) the body hash test failed. The format of this reply is selected by the value of the "rf=" tag, defined below. To generate a complete address to which the report is sent, the verifier simply appends to this value an "@" followed by the domain found in the "d=" tag of the signature whose validation failed. rf= Reporting Format (plain-text; OPTIONAL; default is "arf"). The value MUST be a colon-separated list of tokens representing desired reporting formats in order of preference. Each element of the list MUST be a token which is taken from the registered list of DKIM report formats. See Section 7 for a description of the registry and Section 5 for a description of recognized formats. The verifier generating reports MUST generate a report using the first token in the list which represents a report format it is capable of generating. ro= Requested Reports (plain-text; OPTIONAL; default is "all"). The value MUST be a colon-separated list of tokens representing those conditions under which a report is desired. See Section 4.1 for a list of valid tags. rs= Requested SMTP Error String (plain-text; OPTIONAL; no default). The value is a string the signing domain requests be included in SMTP error strings when messages are rejected. Kucherawy Expires August 28, 2008 [Page 4] Internet-Draft DKIM Reporting February 2008 3. Optional Key Reporting Address for DKIM-SSP There also exist cases in which a domain name owner employing [I-D.DRAFT-IETF-DKIM-SSP] for announcing signing practises with DKIM may want to know when messages are received unsigned or signed with third-party signatures contrary to the sender's published policy. Currently there is no such mechanism defined. This document adds the following two optional "tags" (as defined in [I-D.DRAFT-IETF-DKIM-SSP]) to the DKIM SSP records, using the form defined in that specification: r= Reporting Address (plain-text; OPTIONAL; no default). The value MUST be a dkim-quoted-printable string containing the local-part of an e-mail address to which a report SHOULD be sent when mail claiming to be from this domain failed the verification algorithm described in [I-D.DRAFT-IETF-DKIM-SSP], in particular because a message arrived unsigned or signed by a third-party signature in violation of the sender's published policy. The format of this reply MUST be in the format specified by the "rf=" tag defined below. To generate a complete address to which the report is sent, the verifier simply appends to this value an "@" followed by the domain whose policy was queried in order to evaluate the sender's SSP. rf= Reporting Format (plain-text; OPTIONAL; default is "arf"). The value MUST be a colon-separated list of tokens representing desired reporting formats in decreasing order of preference. Each element of the list MUST be a token which is taken from the registered list of DKIM report formats. See Section 7 for a description of the registry and Section 5 for a description of recognized formats. The verifier generating reports MUST generate a report using the first token in the list which represents a report format it is capable of generating. ro= Requested Reports (plain-text; OPTIONAL; default is "all"). The value MUST be a colon-separated list of tokens representing those conditions under which a report is desired. See Section 4.2 for a list of valid tags. rs= Requested SMTP Error String (plain-text; OPTIONAL; no default). The value is a string the signing domain requests be included in SMTP error strings when messages are rejected. Kucherawy Expires August 28, 2008 [Page 5] Internet-Draft DKIM Reporting February 2008 4. Requested Reports This memo also includes, as the "ro" tags defined above, the means by which the sender can request reports for specific circumstances of interest. Verifiers MUST NOT generate reports for incidents which do not match a requested report. 4.1. Requested Reports for DKIM Failures The following report requests are defined for DKIM keys: all All reports are requested. s Reports are requested for signature or key syntax errors. v Reports are requested for signature verification failures or body hash mismatches. x Reports are requested for signatures rejected by the verifier because the expiration time has passed. 4.2. Requested Reports for DKIM SSP Failures The following report requests are defined for DKIM keys: all All reports are requested. s Reports are requested for messages for which the SSP algorithm determines the message is both signed and Suspicious. u Reports are requested for messages for which the SSP algorithm determines the message is both unsigned and Suspicious. Kucherawy Expires August 28, 2008 [Page 6] Internet-Draft DKIM Reporting February 2008 5. Reporting Formats This section lists reporting formats supported by this DKIM reporting mechanism. Currently only two formats are supported: arf: Abuse Reporting Format, as defined in [I-D.DRAFT-SHAFRANOVICH-FEEDBACK-REPORT], and as extended in Section 6. smtp: An SMTP error with a string descriptive of the problem which caused the DKIM verification to fail. This explicitly requests evaluation of DKIM concurrent with the SMTP session, and rejection (if appropriate) whenever possible rather than acceptance of the message and later generation of a feedback report of some kind (e.g. "arf" above) when verification fails. The presence of an "rs" tag (see Section 2 and Section 3) further requests a specific substring be included in the reply to ease automatic handling of such errors by sending or relaying MTAs. Kucherawy Expires August 28, 2008 [Page 7] Internet-Draft DKIM Reporting February 2008 6. Extension ARF Fields for DKIM Reporting The current ARF format defined in [I-D.DRAFT-SHAFRANOVICH-FEEDBACK-REPORT] lacks some specific features required to do effective DKIM reporting. This section describes the extensions required to do so and thus required to conform to this specification. 6.1. New ARF Feedback Type A new feedback type of "dkim" is defined as an extension to Section 8.2 of [I-D.DRAFT-SHAFRANOVICH-FEEDBACK-REPORT]. See Section 7.3 for details. The header names listed in that draft which may appear for this new feedback type include all shown in the draft except "Relevant-URI" and "Removal-Recipient" as they have no semantics relating to DKIM. 6.2. New ARF Header Names The following new ARF header names are defined as extensions to Section 8.1 of [I-D.DRAFT-SHAFRANOVICH-FEEDBACK-REPORT]: DKIM-Canonicalized-Body: A base64 encoding of the canonicalized body of the message as generated by the verifier. This header and value MUST be present for reports using feedback type "dkim" when reporting a "bodyhash" failure. DKIM-Canonicalized-Headers: A base64 encoding of the canonicalized header of the message as generated by the verifier. This header and value MUST be present for reports using feedback type "dkim". DKIM-Failure: Indicates the type of DKIM failure that is being reported. The list of valid values is enumerated below. This header and value MUST be present for reports using feedback type "dkim". DKIM-Identity: The identity of the signature which failed verification, taken from the "i=" tag of the signature. This header and value MUST be present for reports using feedback type "dkim" when reporting anything other than an "ssp" failure. DKIM-Selector: The selector of the signature which failed verification, taken from the "s=" tag of the signature. This header and value MUST be present for reports using feedback type "dkim" when reporting anything other than an "ssp" failure. The values which are base64 encodings may contain FWS for formatting Kucherawy Expires August 28, 2008 [Page 8] Internet-Draft DKIM Reporting February 2008 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. base64 is defined in [MIME]. 6.3. DKIM Failure Types The list of defined DKIM failure types, used in the "DKIM-Failure:" header (defined above), is as follows: bodyhash: The body hash in the signature and the body hash computed by the verifier did not match. granularity: The key referenced by the signature on the message was not authorized for use by the sender. revoked: The key referenced by the signature on the message has been revoked. signature: The signature on the message did not successfully verify against the header hash and public key. ssp: The sender's published signing practises determined the message is suspicious. Supplementary data may be included in the form of [MAIL]-compliant comments. For example, "Failure: ssp" 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 B for examples. Kucherawy Expires August 28, 2008 [Page 9] Internet-Draft DKIM Reporting February 2008 7. IANA Considerations As required by [IANA-CONSIDERATIONS], this section contains registry information for the new [DKIM] key tag, the new [I-D.DRAFT-IETF-DKIM-SSP] tag, and the extensions to [I-D.DRAFT-SHAFRANOVICH-FEEDBACK-REPORT]. 7.1. DKIM Key Tag Registration IANA is requested to update the DKIM Key Tag Specification Registry to include the following new items: +------+-----------------+ | TYPE | REFERENCE | +------+-----------------+ | r | (this document) | | rf | (this document) | | ro | (this document) | +------+-----------------+ 7.2. DKIM SSP Tag Registration IANA is requested to update the DKIM SSP Tag Specification Registry to include the following new items: +------+-----------------+ | TYPE | REFERENCE | +------+-----------------+ | r | (this document) | | rf | (this document) | | ro | (this document) | +------+-----------------+ 7.3. Updates to ARF Feedback Types The following feedback type is added to the Feedback Report Feedback Type Registry: Feedback Type: dkim Description: DKIM failure report Registration: (this document) 7.4. Updates to ARF Header Names The following headers are added to the Feedback Report Header Names Registry: Kucherawy Expires August 28, 2008 [Page 10] Internet-Draft DKIM Reporting February 2008 Field Name: DKIM-Canonicalized-Body Description: Canonicalized body, per DKIM Multiple Appearances: No Related "Feedback-Type": dkim Field Name: DKIM-Canonicalized-Headers Description: Canonicalized headers, per DKIM Multiple Appearances: No Related "Feedback-Type": dkim Field Name: DKIM-Failure Description: Type of DKIM failure Multiple Appearances: No Related "Feedback-Type": dkim Field Name: DKIM-Identity Description: Identity from DKIM signature Multiple Appearances: No Related "Feedback-Type": dkim Field Name: DKIM-Selector Description: Selector from DKIM signature Multiple Appearances: No Related "Feedback-Type": dkim Kucherawy Expires August 28, 2008 [Page 11] Internet-Draft DKIM Reporting February 2008 8. Security Considerations Security issues with respect to these DKIM reports are similar to those found in [DSN]. 8.1. Forgeries 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: a. A falsified DKIM 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 means of mitigating this threat is to assert that DKIM reports should themselves be signed. 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. 8.2. Automatic Generation 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 DKIM verification failures for whatever reason. It is unclear what a good solution for this issue is. Limiting the rate of generation of these messages may be apropos but threatens to inhibit the distribution of important and possibly time-sensitive information. 8.3. Envelope Sender Selection In the case of transmitted DKIM reports in the form of a new message, it is necessary to construct the message so as to avoid amplification attacks, deliberate or otherwise. Thus, per Section 2 of [DSN], the envelope sender address of the DKIM report SHOULD be chosen to ensure that no delivery status reports will be issued in response to the DKIM report itself, and MUST be chosen so that these reports will not generate mail loops. Whenever an SMTP transaction is used to send a DKIM report, the MAIL FROM command MUST use a NULL return address, i.e. "MAIL FROM:<>". Kucherawy Expires August 28, 2008 [Page 12] Internet-Draft DKIM Reporting February 2008 9. References 9.1. Normative References [DKIM] Allman, E., Callas, J., Delany, M., Libbey, M., Fenton, J., and M. Thomas, "DomainKeys Identified Mail (DKIM) Signatures", RFC 4817, May 2007. [I-D.DRAFT-IETF-DKIM-SSP] Allman, E., Delany, M., and J. Fenton, "DKIM Sender Signing Practises", I-D DRAFT-IETF-DKIM-SSP-03. [I-D.DRAFT-SHAFRANOVICH-FEEDBACK-REPORT] Shafranovich, Y., Levine, J., Hoffman, P., and M. Kucherawy, "An Extensible Format for Email Feedback Reports", I-D DRAFT-SHAFRANOVICH-FEEDBACK-REPORT-04, February 2008. [IANA-CONSIDERATIONS] Alvestrand, H. and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 2434, October 1998. [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. [MAIL] Resnick, P., "Internet Message Format", RFC 2822, April 2001. [MIME] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996. 9.2. Informative References [DSN] Moore, K. and G. Vaudreuil, "An Extensible Message Format for Delivery Status Notifications", RFC 1894, January 1996. Kucherawy Expires August 28, 2008 [Page 13] Internet-Draft DKIM Reporting February 2008 Appendix A. Acknowledgements The author wishes to acknowledge the following for their review and constructive criticism of this proposal: (add names here) Kucherawy Expires August 28, 2008 [Page 14] Internet-Draft DKIM Reporting February 2008 Appendix B. Examples This section contains examples of the use of each of the extensions defined by this memo. B.1. Example Use of DKIM Key Extension Tags A DKIM key record including use of the extensions defined by this memo: v=DKIM1; k=rsa; t=y; r=dkim-errors; rf=arf; ro=v:x; p=MIGfMA0GCS qGSIb3DQEBAQUAA4GNADCBiQKBgQDh2vbhJTijCs2qbyJcwRCa8WqDTxI+PisFJo faPtoDJy0Qn41uNayCajfKADVcLqc87sXQS6GxfchPfzx7Vh9crYdxRbN/o/URCu ZsKmym1i1IPTwRLcXSnuKS0XDs1eRW2WQHGYlXksUDqSHWOS3ZO1W5t/FLcZHpIl l/80xs4QIDAQAB Example 1: DKIM key record using these extensions This example DKIM key record contains the following data in addition to the basic DKIM key data: o Reports about signature evaluation failures should be send to the address "dkim-errors" at the sender's domain; o The sender's domain requests reports in the "arf" format; o Only reports about signature verification failures and expired signatures should be generated. B.2. Example Use of DKIM SSP Extension Tags A DKIM SSP record including use of the extensions defined by this memo: dkim=all; r=dkim-ssp-errors; rf=arf; ro=u Example 2: DKIM SSP record using these extensions This example SSP record makes the following assertions: o The sending domain (i.e. the one that is advertising this policy) signs all mail it sends; o Reports about SSP evaluation failures should be send to the address "dkim-ssp-errors" at the sender's domain; o The sender's domain requests reports in the "arf" format; Kucherawy Expires August 28, 2008 [Page 15] Internet-Draft DKIM Reporting February 2008 o Only reports about unsigned messages should be generated. B.3. Example Use of ARF Extension Headers Kucherawy Expires August 28, 2008 [Page 16] Internet-Draft DKIM Reporting February 2008 Appendix C. To-Do List Things still to be done: o ABNF o Examples Kucherawy Expires August 28, 2008 [Page 17] Internet-Draft DKIM Reporting February 2008 Appendix D. Public Discussion [REMOVE BEFORE PUBLICATION] Public discussion of this proposed specification is handled via the mail-vet-discuss@mipassoc.org mailing list. The list is open. Access to subscription forms and to list archives can be found at http://mipassoc.org/mailman/listinfo/mail-vet-discuss. Kucherawy Expires August 28, 2008 [Page 18] Internet-Draft DKIM Reporting February 2008 Author's Address Murray S. Kucherawy Sendmail, Inc. 6475 Christie Ave., Suite 350 Emeryville, CA 94608 US Phone: +1 510 594 5400 Email: msk+ietf@sendmail.com Kucherawy Expires August 28, 2008 [Page 19] Internet-Draft DKIM Reporting February 2008 Full Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Kucherawy Expires August 28, 2008 [Page 20]