--- 1/draft-ietf-dmarc-arc-usage-05.txt 2018-10-22 23:13:21.652486795 -0700 +++ 2/draft-ietf-dmarc-arc-usage-06.txt 2018-10-22 23:13:21.692487759 -0700 @@ -1,237 +1,263 @@ -DMARC Working Group S. Jones +DMARC Working Group S. Jones, Ed. Internet-Draft DMARC.org Intended status: Informational K. Andersen -Expires: October 25, 2018 LinkedIn +Expires: April 25, 2019 LinkedIn J. Rae-Grant Google - T. Adams, Ed. + T. Adams Paypal - April 23, 2018 + October 22, 2018 Recommended Usage of the Authenticated Received Chain (ARC) - draft-ietf-dmarc-arc-usage-05 + draft-ietf-dmarc-arc-usage-06 Abstract - The Authentication Received Chain (ARC) provides a means to preserve - email authentication results and verify the identity of email message - handlers, each of which participates by inserting certain header - fields before passing the message on. But the specification does not - indicate how intermediaries and receivers should interpret or utilize - ARC. This document will provide guidance in these areas. + The Authentication Received Chain (ARC) provides an authenticated + "chain of custody" for a message, allowing each entity that handles + the message to see what entities handled it before, and to see what + the message's authentication assessment was at each step in the + handling. But the specification does not indicate how the entities + handling these messages should interpret or utilize ARC results in + making decisions about message disposition. This document will + provide guidance in these areas. Status of This Memo 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 https://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." - This Internet-Draft will expire on October 25, 2018. + This Internet-Draft will expire on April 25, 2019. Copyright Notice Copyright (c) 2018 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 (https://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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. How does ARC work? . . . . . . . . . . . . . . . . . . . . . 3 - 3. Guidance for Receivers/Validators . . . . . . . . . . . . . . 4 - 3.1. What is the significance of an intact ARC chain? . . . . 4 - 3.2. What exactly is an "intact" ARC chain? . . . . . . . . . 4 + 3. Guidance for Receivers/Validators . . . . . . . . . . . . . . 5 + 3.1. What is the significance of an intact ARC chain? . . . . 5 + 3.2. What exactly is an "intact" ARC chain? . . . . . . . . . 5 3.3. What is the significance of an invalid ("broken") ARC - chain? . . . . . . . . . . . . . . . . . . . . . . . . . 5 - 3.4. What does the absence of an ARC chain in a message mean? 5 + chain? . . . . . . . . . . . . . . . . . . . . . . . . . 6 + 3.4. What does the absence of an ARC chain in a message mean? 6 3.5. What reasonable conclusions can you draw based upon seeing lots of mail with ARC chains? . . . . . . . . . . 6 3.6. What if none of the intermediaries have been seen - previously? . . . . . . . . . . . . . . . . . . . . . . . 6 + previously? . . . . . . . . . . . . . . . . . . . . . . . 7 3.7. What about ARC chains where some intermediaries are known - and others are not? . . . . . . . . . . . . . . . . . . . 6 + and others are not? . . . . . . . . . . . . . . . . . . . 7 3.8. What should message handlers do when they detect malicious content in messages where ARC is present? . . . 7 3.9. What feedback does a sender or domain owner get about ARC - when it is applied to their messages? . . . . . . . . . . 7 + when it is applied to their messages? . . . . . . . . . . 8 3.10. What prevents a malicious actor from removing the ARC header fields, altering the content, and creating a new - ARC chain? . . . . . . . . . . . . . . . . . . . . . . . 7 + ARC chain? . . . . . . . . . . . . . . . . . . . . . . . 8 4. Guidance for Intermediaries . . . . . . . . . . . . . . . . . 8 4.1. What is an Intermediary under ARC? . . . . . . . . . . . 8 4.2. What are the minimum requirements for an ARC - Intermediary? . . . . . . . . . . . . . . . . . . . . . . 8 + Intermediary? . . . . . . . . . . . . . . . . . . . . . . 9 4.2.1. More specifically a participating ARC intermediary - must do the following: . . . . . . . . . . . . . . . 8 + must do the following: . . . . . . . . . . . . . . . 9 4.3. Should every MTA be an ARC participant? . . . . . . . . . 9 4.4. What should an intermediary do in the case of an invalid or "broken" ARC chain? . . . . . . . . . . . . . . . . . 9 4.5. What should I do in the case where there is no ARC chain - present in a message? . . . . . . . . . . . . . . . . . . 9 - 4.6. How could ARC affect my reputation as an intermediary? . 9 + present in a message? . . . . . . . . . . . . . . . . . . 10 + 4.6. How could ARC affect my reputation as an intermediary? . 10 4.7. What can I do to influence my reputation as an intermediary? . . . . . . . . . . . . . . . . . . . . . . 10 5. Guidance for Originators . . . . . . . . . . . . . . . . . . 10 5.1. Where can I find out more information? . . . . . . . . . 10 5.2. How/where can I test interoperabililty for my - implementation? . . . . . . . . . . . . . . . . . . . . . 10 - - 5.3. How can ARC impact my email? . . . . . . . . . . . . . . 10 + implementation? . . . . . . . . . . . . . . . . . . . . . 11 + 5.3. How can ARC impact my email? . . . . . . . . . . . . . . 11 5.4. How can ARC impact my reputation as a message sender? . . 11 5.5. Can I tell intermediaries not to use ARC? . . . . . . . . 11 - 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 - 6.1. Normative References . . . . . . . . . . . . . . . . . . 11 - 6.2. Informative References . . . . . . . . . . . . . . . . . 12 - 6.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 12 - Appendix A. GLOSSARY . . . . . . . . . . . . . . . . . . . . . . 12 - Appendix B. References . . . . . . . . . . . . . . . . . . . . . 15 - Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 15 - Appendix D. Comments and Feedback . . . . . . . . . . . . . . . 15 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 + 6. Considerations . . . . . . . . . . . . . . . . . . . . . . . 12 + 6.1. IANA Considerations . . . . . . . . . . . . . . . . . . . 12 + 6.2. Security Considerations . . . . . . . . . . . . . . . . . 12 + 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 + 7.1. Normative References . . . . . . . . . . . . . . . . . . 12 + 7.2. Informative References . . . . . . . . . . . . . . . . . 12 + Appendix A. GLOSSARY . . . . . . . . . . . . . . . . . . . . . . 13 + Appendix B. References . . . . . . . . . . . . . . . . . . . . . 16 + Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 16 + Appendix D. Comments and Feedback . . . . . . . . . . . . . . . 16 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 1. Introduction - [ARC] is intended to be used primarily by intermediaries, or message - handlers - those parties who may forward or resend messages, with or - without alterations, such that they will no longer pass the SPF, - DKIM, and/or [RFC7489] authentication mechanisms. In such cases ARC - may provide the final message recipient with useful information about - the original sender. + [ARC] is intended to be used by Internet Mail Handlers who forward or + resend messages, with or without alterations, such that they will no + longer pass the SPF [RFC7208], DKIM [RFC6376], and/or DMARC [RFC7489] + mechanisms when evaluated by subsequent message handlers or the final + recipient. In such cases ARC may provide useful information about + the message before the forwarding and/or alterations took place, and + recipients may choose to use this information to influence delivery + decisions. 2. How does ARC work? - Consider a mailing list as an example, where the message submitter's - domain publishes a DMARC policy other than "p=none". The message is - received, a prefix is added to the RFC5322.Subject header field, some - text is appended to the message body, and the message is sent to list - members with the original RFC5322.From address intact. In this case - SPF may pass because the mailing list operator uses their own domain - in the RFC5321.MailFrom header field, but this domain will not match - the RFC5322.From address, thus the DMARC SPF result cannot be a - "pass." Any DKIM signature from the message submitter's domain will - be broken as the message body has been altered (and if included in - the signature, the RFC5322.Subject header field). Again, the DMARC - DKIM result cannot be a "pass." And if the mailing list operator - inserted an Authentication-Results header field it was most likely - stripped and/or replaced by the next message receiver. + Consider a message sent to a mailing list. Assume that the message + author's domain publishes an SPF record, signs messages with a DKIM + signature that includes the RFC5322.Subject header and the message + body, and publishes a DMARC policy of "p=reject". Finally, assume + that the final recipient(s) of the message implement SPF, DKIM and + DMARC authentication checks on incoming messages. - If the mailing list implemented ARC, it would record the contents of - the Authentication-Results header field in the ARC-Authentication- - Results header field. It would then create an an ARC-Message- - Signature header field, which includes a cryptographic signature of - the message itself, and then an ARC-Seal header field, which includes - a cryptographic signature of a few key message header fields - - including the other ARC header fields. + This message is received by the ADMD hosting the Mailing List Manager + (MLM) software. Upon receipt from the message author's ADMD, the + results from any DKIM, DMARC, and SPF checks would be recorded in an + Authentication-Results header. Then as part of normal list operation + the following changes are made to the message: - Any subsequent system participating in ARC that was not performing - final delivery of the message within its ADMD boundaries would also - generate and insert ARC header fields whose signatures cover all ARC - header fields inserted into the message by previous message handlers. - Thus the information from any previous ARC participants, including - the ARC-Authentication-Results header field from the mailing list - operator, would be signed at each ADMD that handled the message. + o An address controlled by the MLM is substituted in the + RFC5321.MailFrom address field, allowing it to receive + undeliverable messages - When the message reaches the final receiving system, the SPF and DKIM - results will not satisfy the DMARC policy for the message author's - domain. However if the receiving system implements ARC then it can - check for and validate an ARC chain and verify that the contents of - the ARC-Authentication-Results header field were conveyed intact from - the mailing list operator. At that point the receiving system might - choose to use those authentication results in the decision of whether - or not to deliver the message, even though it failed to pass the - usual authentication checks. + o A prefix is added to the message's RFC5322.Subject header + + o Some text is appended to the message body + + After these alterations have been made, the message is sent to list + members. + + A list member's ADMD receiving the message will typically strip out + any existing Authentication-Results headers. It will then perform an + SPF check using the domain in the RFC5321.MailFrom address field, and + would find that the sending host is in the list of authorized senders + for the MLM's domain. However under DMARC, since this domain does + not match the domain in the RFC5322.From address field, the DMARC SPF + result is "fail." + + The DKIM signature from the domain in the RFC5322.From address field + - the message author's domain - will fail to verify, because the + RFC5322.Subject header and the message body were altered by the MLM. + Therefore the DMARC DKIM result is also "fail," even if there is a + valid DKIM signature attached by the MLM's ADMD using its domain. + + Since neither SPF or DKIM yield a "pass" under DMARC's alignment + rules, the DMARC result for this message is "fail." Therefore under + the DMARC policy published by the message author's domain, the list + member's ADMD should reject the message. + + If the MLM implemented ARC, it would record the results of its email + authentication checks when receiving the message from the author's + ADMD in the Authentication-Results header, then perform the + alterations described above. It would then "seal" the message under + ARC, which includes the following steps. + + It would record the contents of the Authentication-Results header(s) + in a newly created ARC-Authentication-Results header. It would + create an ARC-Message-Signature header, which includes a + cryptographic signature of the message itself very similar to a DKIM + signature, but excluding any ARC headers. Then it would create an + ARC-Seal header, which includes a cryptographic signature of all ARC + headers present in the message. The MLM's ADMD would then send the + ARC "sealed" message to the list members. + + When the message reaches a list member's ADMD, the SPF and DKIM + results will still not pass the DMARC check. However if the + receiving ADMD implements ARC, it can check for and validate the ARC + chain in the message, and verify that the contents of the ARC- + Authentication-Results header were conveyed intact from the MLM's + ADMD. At that point the final recipient's ADMD might choose to use + those authentication results in the decision whether or not to + deliver the message, even though it failed to pass conventional SPF, + DKIM, and DMARC checks. 3. Guidance for Receivers/Validators 3.1. What is the significance of an intact ARC chain? An intact ARC chain conveys authentication results like SPF and DKIM as observed by the first ARC participant. In cases where the message no longer produces passing results for DKIM, SPF, or DMARC but an intact ARC chain is present, the message receiver may choose to use - the contents of the ARC-Authentication-Results header field in + the contents of the first ARC-Authentication-Results header field in determining how to handle the message. 3.2. What exactly is an "intact" ARC chain? Note that not all ADMDs will implement ARC, and receivers will see messages where one or more non-participating ADMDs handled a message before, after, or in between participating ADMDs. - An intact ARC chain is one where the ARC header fields that are - present can be validated, and in particular the ARC-Message-Signature - header field from the last ARC participant can still be validated. - This shows that, whether another ADMD handled the message after the - last ARC participant or not, the portions of the message covered by - that signature were not altered. If any non-participating ADMDs - handled the message between ARC intermediaries but did not alter the - message in a way that invalidated the most recent ARC-Message- - Signature present at that time, the chain would still be considered - intact by the next ARC participant, and recorded as such in the ARC- - Seal header field they insert. + An intact ARC chain is one where the ARC headers that are present can + be validated, and in particular the ARC-Message-Signature header from + the last ARC participant can still be validated. This shows that the + portions of the message covered by that signature were not altered. + If any non-participating ADMDs handled the message since the last ARC + intermediary but did not alter the message in a way that invalidated + the most recent ARC-Message-Signature present, the chain would still + be considered intact by the next ARC-enabled ADMD. Message receivers may make local policy decisions about whether to use the contents of the ARC-Authentication-Results header field in cases where a message no longer passes DKIM, DMARC, and/or SPF checks. Whether an ARC chain is intact can be used to inform that local policy decision. So for example one message receiver may decide that, for messages with an intact ARC chain where a DMARC evaluation does not pass, but - the ARC-Authentication-Results header field indicates a DKIM pass was - reported by the first ARC intermediary that matches the domain in the - RFC5322.From header field, it will override a DMARC "p=reject" - policy. Another message receiver may decide to do so for intact ARC - chains where the ARC-Authentication-Results header field indicates an - SPF pass. A third message receiver may use very different criteria, - according to their requirements, while a fourth may choose not to - take ARC information into account at all. + the ARC-Authentication-Results header field from the first ARC + participant indicates a DKIM pass was reported that matches the + domain in the RFC5322.From header field, it may override a DMARC + "p=reject" policy. Another message receiver may decide to do so only + for a limited number of ARC-enabled ADMDs. A third message receiver + may choose not to take ARC information into account at all. 3.3. What is the significance of an invalid ("broken") ARC chain? An ARC chain is broken if the signatures in the ARC-Seal header - fields cannot be verified or if the most recent AMS can not be - verified. For example the remote server delivering the message to - the local ADMD is not reflected in any ARC header fields, perhaps - because they have not implemented ARC, but they modified the message - such that ARC and DKIM signatures already in the message were + fields cannot be verified, or if the most recent AMS can not be + verified. For example if a non-ARC-enabled ADMD delivers a message + with ARC header sets to the validating ADMD, but modified the message + such that those ARC and DKIM signatures already in the message were invalidated. In case of a broken ARC chain, the message should be treated the same as if there was no ARC chain at all. For example, a message that fails under DMARC and has an invalid ARC chain would be subject to that DMARC policy, which may cause it to be quarantined or rejected. Email transit can produce broken signatures for a wide variety of benign reasons. This includes possibly breaking one or more ARC signatures. Therefore, receivers need to be wary of ascribing motive - to such breakage although patterns of common behaviour may provide + to such breakage, although patterns of common behaviour may provide some basis for adjusting local policy decisions. 3.4. What does the absence of an ARC chain in a message mean? The absence of an ARC chain means nothing. ARC is intended to allow a participating message handler to preserve certain authentication results when a message is being forwarded and/or modified such that the final recipient can evaluate this information. If they are absent, there is nothing extra that ARC requires the final recipient to do. @@ -355,34 +381,27 @@ A participating ARC intermediary must validate the ARC chain on a message it receives, if one is present. It then attaches its own ARC seal and signature, including an indication if the chain failed to validate upon receipt. 4.2.1. More specifically a participating ARC intermediary must do the following: 1. Validate that the ARC chain, if one is already present in the - message, is intact and well-formed. - - 2. Validate that the most recent sender matches the last entry in - the ARC chain (if present). - - 3. Validate that the most recent sender's DKIM signature is - attached, and matches the reference to it in the ARC chain (if - present). + message, is intact and well-formed. ([ARC] Section 5.2) - 4. Generate a new ARC Signature and add it to the message according - to the ARC specification. + 2. Record the ARC status in an Authentication-Results header + ([RFC7601]) - 5. Generate a new ARC Seal and add it to the message according to - the ARC specification. + 3. Generate a new ARC set and add it to the message. ([ARC] + Section 5.1) 4.3. Should every MTA be an ARC participant? Generally speaking, ARC is designed to operate at the ADMD level. When a message is first received by an ADMD, the traditional authentication results should be captured and preserved - this could be the common case of creating an Authentication-Results header field. But when it is determined that the message is being sent on outside of that ADMD, that is when the ADMD should add itself to the ARC chain - before sending the message outside of the ADMD. @@ -438,22 +457,21 @@ As mentioned previously reputation systems are very complex and usually specific to a given message receiver, and a meaningful discussion of such a broad topic is beyond the scope of this document. 5. Guidance for Originators 5.1. Where can I find out more information? - Please join the arc-discuss list at arc-discuss@dmarc.org - [1][mailto:arc-discuss@dmarc.org]. + Please join the arc-discuss list at arc-discuss@dmarc.org. To discuss the IETF spec itself, please join the dmarc working group at [https://datatracker.ietf.org/wg/dmarc]. 5.2. How/where can I test interoperabililty for my implementation? The arc-discuss list is the best place to stay in touch with work in progress. 5.3. How can ARC impact my email? @@ -491,23 +509,34 @@ Reputation systems are complex and usually specific to a given message receiver, and a meaningful discussion of such a broad topic is beyond the scope of this document. 5.5. Can I tell intermediaries not to use ARC? At present there is no way for a message sender to request that intermediaries not employ ARC. -6. References +6. Considerations -6.1. Normative References +6.1. IANA Considerations + + This document has no actions for IANA. + +6.2. Security Considerations + + This document does not have security considerations aside from those + raised in the main content. + +7. References + +7.1. Normative References [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, DOI 10.17487/RFC5321, October 2008, . [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, DOI 10.17487/RFC5322, October 2008, . [RFC5598] Crocker, D., "Internet Mail Architecture", RFC 5598, @@ -516,53 +545,59 @@ [RFC6377] Kucherawy, M., "DomainKeys Identified Mail (DKIM) and Mailing Lists", BCP 167, RFC 6377, DOI 10.17487/RFC6377, September 2011, . [RFC7601] Kucherawy, M., "Message Header Field for Indicating Message Authentication Status", RFC 7601, DOI 10.17487/RFC7601, August 2015, . -6.2. Informative References +7.2. Informative References - [ARC] Andersen, K., Rae-Grant, J., Long, B., and S. Jones, - "Authenticated Received Chain (ARC) Protocol", December - 2017, . + [ARC] Andersen, K., Long, B., Blank, S., Kucherawy, M., and T. + Draegen, "Authenticated Received Chain (ARC) Protocol", + October 2018, . [ENHANCED-STATUS] "IANA SMTP Enhanced Status Codes", n.d., . [OAR] Chew, M. and M. Kucherawy, "Original-Authentication- Results Header Field", February 2012, . + [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., + "DomainKeys Identified Mail (DKIM) Signatures", STD 76, + RFC 6376, DOI 10.17487/RFC6376, September 2011, + . + + [RFC7208] Kitterman, S., "Sender Policy Framework (SPF) for + Authorizing Use of Domains in Email, Version 1", RFC 7208, + DOI 10.17487/RFC7208, April 2014, + . + [RFC7489] Kucherawy, M., Ed. and E. Zwicky, Ed., "Domain-based Message Authentication, Reporting, and Conformance (DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015, . [RFC7960] Martin, F., Ed., Lear, E., Ed., Draegen. Ed., T., Zwicky, E., Ed., and K. Andersen, Ed., "Interoperability Issues between Domain-based Message Authentication, Reporting, and Conformance (DMARC) and Indirect Email Flows", RFC 7960, DOI 10.17487/RFC7960, September 2016, . -6.3. URIs - - [1] mailto:arc-discuss@dmarc.org - Appendix A. GLOSSARY ADMD Administrative Management Domain as used in [RFC5598] and similar references refers to a single entity operating one or more computers within one or more domain names under said entity's control. One example might be a small company with a single server, handling email for that company's domain. Another example might be a large university, operating many servers that fulfill different roles, all handling email for several different domains representing parts of the university. @@ -683,46 +717,46 @@ within the message and various types of content within the message body. Link: [RFC5322] Validator A Message Receiver that attempts to validate the ARC chain in a message. Appendix B. References Appendix C. Acknowledgements - This draft is the work of OAR-Dev Group. + This draft is based on the work of OAR-Dev Group. - The authors thanks the entire OAR-Dev group for the ongoing help, + The authors thank the entire OAR-Dev group for the ongoing help, innumerable diagrams and discussions from all the participants, especially: Alex Brotman, Brandon Long, Dave Crocker, Elizabeth Zwicky, Franck Martin, Greg Colburn, J. Trent Adams, John Rae-Grant, Mike Hammer, Mike Jones, Steve Jones, Terry Zink, Tim Draegen. Appendix D. Comments and Feedback Please address all comments, discussions, and questions to the dmarc working group at [https://datatracker.ietf.org/wg/dmarc]. Authors' Addresses - Steven Jones + Steven Jones (editor) DMARC.org Email: smj@crash.com + Kurt Andersen LinkedIn 2029 Stierlin Ct. Mountain View, California 94043 USA Email: kurta@linkedin.com - John Rae-Grant Google Email: johnrg@google.com - J. Trent Adams (editor) + J. Trent Adams Paypal Email: trent.adams@paypal.com