draft-ietf-dmarc-interoperability-14.txt | draft-ietf-dmarc-interoperability-15.txt | |||
---|---|---|---|---|
DMARC F. Martin, Ed. | DMARC F. Martin, Ed. | |||
Internet-Draft LinkedIn | Internet-Draft LinkedIn | |||
Intended status: Informational E. Lear, Ed. | Intended status: Informational E. Lear, Ed. | |||
Expires: July 21, 2016 Cisco Systems GmbH | Expires: November 14, 2016 Cisco Systems GmbH | |||
T. Draegen, Ed. | T. Draegen, Ed. | |||
dmarcian, inc. | dmarcian, inc. | |||
E. Zwicky, Ed. | E. Zwicky, Ed. | |||
Yahoo | Yahoo | |||
K. Andersen, Ed. | K. Andersen, Ed. | |||
January 18, 2016 | May 13, 2016 | |||
Interoperability Issues Between DMARC and Indirect Email Flows | Interoperability Issues Between DMARC and Indirect Email Flows | |||
draft-ietf-dmarc-interoperability-14 | draft-ietf-dmarc-interoperability-15 | |||
Abstract | Abstract | |||
DMARC introduces a mechanism for expressing domain-level policies and | DMARC introduces a mechanism for expressing domain-level policies and | |||
preferences for email message validation, disposition, and reporting. | preferences for email message validation, disposition, and reporting. | |||
The DMARC mechanism can encounter interoperability issues when | The DMARC mechanism can encounter interoperability issues when | |||
messages do not flow directly from the author's administrative domain | messages do not flow directly from the author's administrative domain | |||
to the final recipients. Collectively these email flows are referred | to the final recipients. Collectively these email flows are referred | |||
to as indirect email flows. This document describes interoperability | to as indirect email flows. This document describes interoperability | |||
issues between DMARC and indirect email flows. Possible methods for | issues between DMARC and indirect email flows. Possible methods for | |||
skipping to change at page 1, line 44 ¶ | skipping to change at page 1, line 44 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on July 21, 2016. | This Internet-Draft will expire on November 14, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 28 ¶ | skipping to change at page 2, line 28 ¶ | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Document Conventions . . . . . . . . . . . . . . . . . . 4 | 1.1. Document Conventions . . . . . . . . . . . . . . . . . . 4 | |||
2. Causes of Interoperability Issues . . . . . . . . . . . . . . 4 | 2. Causes of Interoperability Issues . . . . . . . . . . . . . . 4 | |||
2.1. Identifier Alignment . . . . . . . . . . . . . . . . . . 4 | 2.1. Identifier Alignment . . . . . . . . . . . . . . . . . . 4 | |||
2.1.1. DKIM Identifier(s) . . . . . . . . . . . . . . . . . 5 | 2.1.1. DKIM Identifier(s) . . . . . . . . . . . . . . . . . 5 | |||
2.1.2. SPF Identifier(s) . . . . . . . . . . . . . . . . . . 5 | 2.1.2. SPF Identifier(s) . . . . . . . . . . . . . . . . . . 5 | |||
2.1.3. Multiple RFC5322.from Addresses . . . . . . . . . . . 6 | 2.1.3. Multiple RFC5322.From Addresses . . . . . . . . . . . 6 | |||
2.2. Message Forwarding . . . . . . . . . . . . . . . . . . . 6 | 2.2. Message Forwarding . . . . . . . . . . . . . . . . . . . 6 | |||
2.3. Message Modification . . . . . . . . . . . . . . . . . . 7 | 2.3. Message Modification . . . . . . . . . . . . . . . . . . 7 | |||
3. Internet Mail Architecture, DMARC, and Indirect Email Flows . 7 | 3. Internet Mail Architecture, DMARC, and Indirect Email Flows . 7 | |||
3.1. Message Handling System . . . . . . . . . . . . . . . . . 7 | 3.1. Message Handling System . . . . . . . . . . . . . . . . . 7 | |||
3.1.1. Message Submission Agents . . . . . . . . . . . . . . 8 | 3.1.1. Message Submission Agents . . . . . . . . . . . . . . 8 | |||
3.1.2. Message Transfer Agents . . . . . . . . . . . . . . . 9 | 3.1.2. Message Transfer Agents . . . . . . . . . . . . . . . 9 | |||
3.1.2.1. Message Encoding . . . . . . . . . . . . . . . . 9 | 3.1.2.1. Message Encoding . . . . . . . . . . . . . . . . 9 | |||
3.1.2.2. Header Standardization . . . . . . . . . . . . . 9 | 3.1.2.2. Header Standardization . . . . . . . . . . . . . 9 | |||
3.1.2.3. Content Validation . . . . . . . . . . . . . . . 9 | 3.1.2.3. Content Validation . . . . . . . . . . . . . . . 10 | |||
3.1.3. Message Delivery Agents . . . . . . . . . . . . . . . 10 | 3.1.3. Message Delivery Agents . . . . . . . . . . . . . . . 10 | |||
3.2. Mediators . . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.2. Mediators . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
3.2.1. Alias . . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.2.1. Alias . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.2.2. ReSenders . . . . . . . . . . . . . . . . . . . . . . 11 | 3.2.2. ReSenders . . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.2.3. Mailing Lists . . . . . . . . . . . . . . . . . . . . 11 | 3.2.3. Mailing Lists . . . . . . . . . . . . . . . . . . . . 12 | |||
3.2.3.1. Mailing List Operational Effects . . . . . . . . 12 | 3.2.3.1. Mailing List Operational Effects . . . . . . . . 12 | |||
3.2.4. Gateways . . . . . . . . . . . . . . . . . . . . . . 13 | 3.2.4. Gateways . . . . . . . . . . . . . . . . . . . . . . 13 | |||
3.2.5. Boundary Filters . . . . . . . . . . . . . . . . . . 13 | 3.2.5. Boundary Filters . . . . . . . . . . . . . . . . . . 13 | |||
3.3. Combinations . . . . . . . . . . . . . . . . . . . . . . 14 | 3.3. Combinations . . . . . . . . . . . . . . . . . . . . . . 14 | |||
4. Possible Mitigations of Interoperability Issues . . . . . . . 14 | 4. Possible Mitigations of Interoperability Issues . . . . . . . 14 | |||
4.1. Mitigations in Current Use . . . . . . . . . . . . . . . 15 | 4.1. Mitigations in Current Use . . . . . . . . . . . . . . . 15 | |||
4.1.1. Mitigations for Senders . . . . . . . . . . . . . . . 15 | 4.1.1. Mitigations for Senders . . . . . . . . . . . . . . . 16 | |||
4.1.1.1. Identifier Alignment . . . . . . . . . . . . . . 15 | 4.1.1.1. Identifier Alignment . . . . . . . . . . . . . . 16 | |||
4.1.1.2. Message Modification . . . . . . . . . . . . . . 16 | 4.1.1.2. Message Modification . . . . . . . . . . . . . . 16 | |||
4.1.2. Mitigations for Receivers . . . . . . . . . . . . . . 17 | 4.1.2. Mitigations for Receivers . . . . . . . . . . . . . . 17 | |||
4.1.2.1. Identifier Alignment . . . . . . . . . . . . . . 17 | 4.1.2.1. Identifier Alignment . . . . . . . . . . . . . . 17 | |||
4.1.2.2. Policy Override . . . . . . . . . . . . . . . . . 17 | 4.1.2.2. Policy Override . . . . . . . . . . . . . . . . . 17 | |||
4.1.3. Mitigations for ReSenders . . . . . . . . . . . . . . 17 | 4.1.3. Mitigations for ReSenders . . . . . . . . . . . . . . 17 | |||
4.1.3.1. Changes to the RFC5322.from . . . . . . . . . . . 17 | 4.1.3.1. Changes to the RFC5322.From . . . . . . . . . . . 17 | |||
4.1.3.2. Avoiding Message Modification . . . . . . . . . . 17 | 4.1.3.2. Avoiding Message Modification . . . . . . . . . . 18 | |||
4.1.3.3. Mailing Lists . . . . . . . . . . . . . . . . . . 18 | 4.1.3.3. Mailing Lists . . . . . . . . . . . . . . . . . . 18 | |||
4.2. Proposed and In-Progress Mitigations . . . . . . . . . . 19 | 4.2. Proposed and In-Progress Mitigations . . . . . . . . . . 19 | |||
4.2.1. Getting More Radical: Requiring New Communication | 4.2.1. Getting More Radical: Requiring New Communication | |||
Paths Between MUAs . . . . . . . . . . . . . . . . . 20 | Paths Between MUAs . . . . . . . . . . . . . . . . . 20 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 21 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 21 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 22 | 8.2. Informative References . . . . . . . . . . . . . . . . . 22 | |||
Appendix A. Appendix A - Example SPF Bounce . . . . . . . . . . 22 | Appendix A. Appendix A - Example SPF Bounce . . . . . . . . . . 22 | |||
A.1. Initial Message . . . . . . . . . . . . . . . . . . . . . 22 | A.1. Initial Message . . . . . . . . . . . . . . . . . . . . . 23 | |||
A.2. Bounce message . . . . . . . . . . . . . . . . . . . . . 23 | A.2. Notification message . . . . . . . . . . . . . . . . . . 23 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 24 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
1. Introduction | 1. Introduction | |||
DMARC [RFC7489] introduces a mechanism for expressing domain-level | DMARC [RFC7489] introduces a mechanism for expressing domain-level | |||
policies and preferences for message validation, disposition, and | policies and preferences for message validation, disposition, and | |||
reporting. The DMARC mechanism can encounter several different types | reporting. The DMARC mechanism can encounter several different types | |||
of interoperability issues due to third-party message sourcing, | of interoperability issues due to third-party message sourcing, | |||
message transformation or rerouting. | message transformation or rerouting. | |||
At the time of the writing of this document, the DMARC base | At the time of the writing of this document, the DMARC base | |||
skipping to change at page 4, line 4 ¶ | skipping to change at page 3, line 51 ¶ | |||
for a select subset of general email traffic. | for a select subset of general email traffic. | |||
Several known causes of interoperability issues are presented, | Several known causes of interoperability issues are presented, | |||
followed by a description of components within the Internet Mail | followed by a description of components within the Internet Mail | |||
Architecture [RFC5598] where interoperability issues can arise. | Architecture [RFC5598] where interoperability issues can arise. | |||
Finally, known and possible methods for addressing interoperability | Finally, known and possible methods for addressing interoperability | |||
issues are presented. There are often multiple ways to address any | issues are presented. There are often multiple ways to address any | |||
given interoperability issue. While this document strives to be | given interoperability issue. While this document strives to be | |||
comprehensive in its review, it should not be treated as complete. | comprehensive in its review, it should not be treated as complete. | |||
Note that some practices which are in use at the time of this | ||||
Also, some practices which are in use at the time of this document | document may or may not be "best practices", especially as future | |||
may or may not be "best practices" as future standards evolve. | standards evolve. | |||
1.1. Document Conventions | 1.1. Document Conventions | |||
Notation regarding structured fields is taken from [RFC5598]. | The notation used in this document for structured fields is taken | |||
from [RFC5598] section 1.3. | ||||
Organizational Domain and Authenticated Identifiers are specified in | The term "notification message" [RFC5321] secton 4.5.5 is used to | |||
DMARC [RFC7489]. | refer to a message with a null RFC5321.MailFrom. | |||
The terms "Organizational Domain" and "Authenticated Identifiers" are | ||||
specified in DMARC [RFC7489] section 3. | ||||
2. Causes of Interoperability Issues | 2. Causes of Interoperability Issues | |||
Interoperability issues between DMARC and indirect email flows arise | Interoperability issues between DMARC and indirect email flows arise | |||
when conformance to the DMARC specification leads a receiving | when conformance to the DMARC specification leads a receiving | |||
implementation to apply DMARC based policy restrictions to messages | implementation to apply DMARC based policy restrictions to messages | |||
that are both compliant with the architecture as specified in | that are both compliant with the architecture as specified in | |||
[RFC5598] and viewed as legitimate by the intended recipient. | [RFC5598] and viewed as legitimate by the intended recipient. | |||
Note that domains which assert a "p=none" policy and email which | Note that domains which assert a "p=none" policy and email which | |||
passes standard DMARC validation do not have any interoperability | passes standard DMARC validation do not have any interoperability | |||
issues. | issues. | |||
Email messages that do not conform to IETF email specifications but | Email messages that do not conform to IETF email specifications but | |||
are considered legitimate by the intended recipients are not | are considered legitimate by the intended recipients are not | |||
discussed in this document. The rest of this section describes | discussed in this document. | |||
several conceptual causes of interoperability issues. | ||||
The rest of this section describes several conceptual causes of | ||||
interoperability issues. | ||||
2.1. Identifier Alignment | 2.1. Identifier Alignment | |||
Note to operators and administrators: The identifiers which are used | Note to operators and administrators: The identifiers which are used | |||
by DKIM and SPF are technical components of the transport process for | by SPF are technical components of the transport process for SMTP. | |||
SMTP. They may or may not, as described below, bear a meaningful | They may or may not, as described below, bear a meaningful | |||
relationship to the content or source of the message itself. This | relationship to the content or source of the message itself. This | |||
"relationship by proximity" can be a point of confusion for non- | "relationship by proximity" can be a point of confusion for non- | |||
technical end users, either recipients or senders. | technical end users, either recipients or senders. | |||
DMARC relies on DKIM [RFC6376] and SPF [RFC7208] to perform message | DMARC relies on DKIM [RFC6376] and SPF [RFC7208] to perform message | |||
source validation. The DMARC [RFC7489] specification refers to | source validation. The DMARC [RFC7489] specification refers to | |||
source domains that are validated by DKIM or SPF as "Authenticated | source domains that are validated by DKIM or SPF as "Authenticated | |||
Identifiers". To be used by DMARC an "Authenticated Identifier" must | Identifiers". To be used by DMARC an "Authenticated Identifier" must | |||
also be related to the domain found in the message's RFC5322.from | also be related to the domain found in the message's RFC5322.From | |||
header field [RFC5322]. This relationship between an Authenticated | header field [RFC5322]. This relationship between an Authenticated | |||
Identifier's domain and the domain of the RFC5322.from is referred to | Identifier's domain and the domain of the RFC5322.From is referred to | |||
as "Identifier Alignment". | as "Identifier Alignment". | |||
DMARC allows for Identifier Alignment to be determined in two | DMARC allows for Identifier Alignment to be determined in two | |||
different modes: strict and relaxed. Strict mode requires an exact | different modes: strict and relaxed. Strict mode requires an exact | |||
match between the domain of any of the Authenticated Identifiers and | match between the domain of any of the Authenticated Identifiers and | |||
the message's RFC5322.from header field [RFC5322]. Relaxed mode | the message's RFC5322.From header field [RFC5322]. Relaxed mode | |||
allows for Identifier Alignment if Authenticated Identifiers and the | allows for Identifier Alignment if Authenticated Identifiers and the | |||
message's RFC5322.from header field [RFC5322] share the same | message's RFC5322.From header field [RFC5322] share the same | |||
Organizational Domain. In general, DMARC interoperability issues are | Organizational Domain. In general, DMARC interoperability issues are | |||
the same for both strict and relaxed alignment, but strict alignment | the same for both strict and relaxed alignment, but strict alignment | |||
constrains the possible solutions because of the more rigorous | constrains the possible solutions because of the more rigorous | |||
matching requirement. The mitigations described in this document | matching requirement. Some of mitigations described in this document | |||
generally require the relaxed mode of Identifier Alignment. | only work with the relaxed mode of Identifier Alignment. | |||
2.1.1. DKIM Identifier(s) | 2.1.1. DKIM Identifier(s) | |||
DKIM provides a cryptographic means for one or more domain identifier | DKIM provides a cryptographic means for one or more domain identifier | |||
to be associated with a particular message. As a standalone | to be associated with a particular message. As a standalone | |||
technology DKIM identifiers are not required to be related to the | technology DKIM identifiers are not required to be related to the | |||
source of the message's content. However, for a DKIM identifier to | source of the message's content. However, for a DKIM identifier to | |||
align in DMARC, the signing domain of a valid signature must be part | align in DMARC, the signing domain of a valid signature must be part | |||
of the same Organizational Domain as the domain in the RFC5322.from | of the same Organizational Domain as the domain in the RFC5322.From | |||
header field [RFC5322]. | header field [RFC5322]. | |||
In addition, DKIM allows for the possibility of multiple valid | In addition, DKIM allows for the possibility of multiple valid | |||
signatures. The DMARC mechanism will process Authenticated | signatures. These multiple signatures may be from the same or | |||
different domains, there are no restrictions within the DKIM | ||||
specification. The DMARC mechanism will process Authenticated | ||||
Identifiers that are based on DKIM signatures until an aligned | Identifiers that are based on DKIM signatures until an aligned | |||
Authenticated Identifier is found (if any). However, operational | Authenticated Identifier is found (if any). However, operational | |||
experience has shown that some implementations have difficulty | experience has shown that some implementations have difficulty | |||
processing multiple signatures. Implementations that cannot process | processing multiple signatures. Implementations that cannot process | |||
multiple DKIM signatures may incorrectly flag messages as "not | multiple DKIM signatures may incorrectly flag messages as "not | |||
passing" (DMARC alignment) and erroneously apply DMARC-based policy | passing" (DMARC alignment) and erroneously apply DMARC-based policy | |||
to otherwise conforming messages. | to otherwise conforming messages. | |||
2.1.2. SPF Identifier(s) | 2.1.2. SPF Identifier(s) | |||
The SPF specification [RFC7208] defines two Authenticated Identifiers | The SPF specification [RFC7208] defines two Authenticated Identifiers | |||
for each message. These identifiers derive from: | for each message. These identifiers derive from: | |||
a. the RFC5321.mailfrom [RFC5321] domain, and | a. the RFC5321.MailFrom [RFC5321] domain, and | |||
b. the RFC5321.HELO/EHLO SMTP domain. | b. the RFC5321.HELO/.EHLO SMTP domain. | |||
In the SPF specification, the RFC7208.MAILFROM [RFC7208] value is | In the SPF specification, the RFC7208.MAILFROM [RFC7208] value is | |||
defined to be based on RFC5321.mailfrom unless that value is absent | defined to be based on RFC5321.MailFrom unless that value is absent | |||
(as in the case of "bounce" messages) in which case, the second | (as in the case of notification messages) in which case, the second | |||
(RFC5321.HELO/EHLO) identifier value is used. This "fallback" | (RFC5321.HELO/.EHLO) identifier value is used. This "fallback" | |||
definition has occasionally been misunderstood by operators of MTA | definition has occasionally been misunderstood by operators of MTA | |||
systems since "bounce" messages are often an "automatic" feature of | systems since notification messages are often an "automatic" feature | |||
MTA software. Some MTA software does not provide the ability to | of MTA software. Some MTA software does not provide the ability to | |||
apply a DKIM signature to such bounce messages. | apply a DKIM signature to such notification messages. | |||
See Appendix A for an example treatment of this scenario. | See Appendix A for an example treatment of this scenario. | |||
For the purposes of DMARC validation/alignment, the hybrid | For the purposes of DMARC validation/alignment, the hybrid | |||
RFC7208.MAILFROM [RFC7208] identifier's domain is used if, and only | RFC7208.MAILFROM [RFC7208] identifier's domain is used if, and only | |||
if, it is aligned with the RFC5322.from [RFC5322] domain. The | if, it is aligned with the RFC5322.From [RFC5322] domain. The | |||
alignment of the validated domain is determined based on the DMARC | alignment of the validated domain is determined based on the DMARC | |||
record's "strict" or "relaxed" designation as described above for the | record's "strict" or "relaxed" designation as described above for the | |||
DKIM identifiers and in [RFC7489]. | DKIM identifiers and in [RFC7489]. | |||
2.1.3. Multiple RFC5322.from Addresses | 2.1.3. Multiple RFC5322.From Addresses | |||
[RFC5322] permits only one From header field, but it may contain | [RFC5322] permits only one From header field, but it may contain | |||
multiple mailboxes. Since this is an extremely rare usage, DMARC | multiple mailboxes. Since this is an extremely rare usage, DMARC | |||
specifies that the handling of this situation is implementation | specifies that the handling of this situation is implementation | |||
dependent. | dependent. | |||
Because the presence of multiple domains can be used by an attacker | Because the presence of multiple domains can be used by an attacker | |||
(an attacker could add their domain to the RFC5322.from field, | (an attacker could add their domain to the RFC5322.From field, | |||
provide arbitrary new content, and sign the message) the DMARC | provide arbitrary new content, and sign the message) the DMARC | |||
specification recommends that the strictest policy be applied to such | specification recommends that the strictest policy be applied to such | |||
messages (section 6.6.1 [RFC7489]). | messages (section 6.6.1 [RFC7489]). | |||
2.2. Message Forwarding | 2.2. Message Forwarding | |||
Section 3 describes forwarding behavior as it relates to the | Section 3 describes forwarding behavior as it relates to the | |||
components of the Internet Mail Architecture. | components of the Internet Mail Architecture. | |||
All forwarding behavior involves the retransmission of email. As | All forwarding operations involve the retransmission of email. As | |||
discussed above, in order for SPF to yield an Authenticated | discussed above, in order for SPF to yield an Authenticated | |||
Identifier that is pertinent to DMARC, the domain of the | Identifier that is pertinent to DMARC, the domain of the | |||
RFC7208.MAILFROM must be in alignment with the RFC5322.from header | RFC7208.MAILFROM must be in alignment with the RFC5322.From header | |||
field. Forwarding introduces specific issues to the availability of | field. Forwarding introduces specific issues to the availability of | |||
SPF-based Authenticated Identifiers: | SPF-based Authenticated Identifiers: | |||
o If the RFC5321.mailfrom is present and the forwarder maintains the | o If the RFC5321.MailFrom is present and the forwarder maintains the | |||
original RFC5321.mailfrom, SPF validation will fail unless the | original RFC5321.MailFrom, SPF validation will fail unless the | |||
forwarder is an authorized part of the originator's email sending | forwarder is an authorized part of the originator's email sending | |||
infrastructure. If the forwarder replaces the RFC5321.mailfrom | infrastructure. If the forwarder replaces the RFC5321.MailFrom | |||
with its own domain, SPF might pass but Identifier Alignment with | with its own domain, SPF might pass but Identifier Alignment with | |||
the RFC5322.from header field will fail. | the RFC5322.From header field will fail. | |||
o If the RFC5321.mailfrom is empty (as in the case of Delivery | o If the RFC5321.MailFrom is empty (as in the case of Delivery | |||
Status Notifications), the RFC5321.Helo domain of the forwarder | Status Notifications), the RFC5321.HELO/.EHLO domain of the | |||
will likely be in different organizational domain than the orignal | forwarder will likely be in different organizational domain than | |||
RFC5322.from header field's domain. SPF may pass but Identifier | the orignal RFC5322.From header field's domain. SPF may pass but | |||
Alignment with the RFC5322.from header field will fail. | Identifier Alignment with the RFC5322.From header field will fail. | |||
In both cases, SPF cannot yield relevant Authenticated Identifiers, | In both cases, SPF cannot yield relevant Authenticated Identifiers, | |||
and DKIM must be relied upon to produce results that are relevant to | and DKIM must be relied upon to produce results that are relevant to | |||
DMARC. | DMARC. | |||
2.3. Message Modification | 2.3. Message Modification | |||
Modification of email content invalidates most DKIM signatures, and | Modification of email content invalidates most DKIM signatures, and | |||
many message forwarding systems modify email content. Mailing list | many message forwarding systems modify email content. Mailing list | |||
processors are a common example of such systems, but other forwarding | processors are a common example of such systems, but other forwarding | |||
skipping to change at page 7, line 22 ¶ | skipping to change at page 7, line 32 ¶ | |||
Although DKIM provides a length flag so that content can be appended | Although DKIM provides a length flag so that content can be appended | |||
without invalidating the signature, in practice, particularly with | without invalidating the signature, in practice, particularly with | |||
MIME-encoded [RFC2045] messages, a mailing list processor will do | MIME-encoded [RFC2045] messages, a mailing list processor will do | |||
more than simply append content (see Section 5.3 of [RFC5598] for | more than simply append content (see Section 5.3 of [RFC5598] for | |||
details). Furthermore, the length flag is seldom used due to | details). Furthermore, the length flag is seldom used due to | |||
security issues (see Section 8.2 of [RFC6376] for additional security | security issues (see Section 8.2 of [RFC6376] for additional security | |||
considerations), therefore, this method is only here mentioned for | considerations), therefore, this method is only here mentioned for | |||
completeness. | completeness. | |||
DKIM describes two canonicalizations for use when preparing header | DKIM describes two canonicalizations for use when preparing header | |||
and body for DKIM processing: simple and relaxed. The latter allows | and body for DKIM processing: simple and relaxed. The latter is | |||
for trivial modifications (largely regarding whitespace and folding) | designed to accomodate trivial modifications to whitespace and | |||
that maintain the integrity of the content of the email. However, | folding which, at least in the header case, generally have no | |||
the relaxed canonicalization is more computationally intensive and | semantic significance. However, the relaxed canonicalization is more | |||
may not have been preferred in the early deployment of DKIM, leaving | computationally intensive and may not have been preferred in the | |||
some deployments using the less forgiving "simple" canonicalization. | early deployment of DKIM, leaving some deployments using the less | |||
While the prevalence is unknown, there are some DKIM verifiers which | forgiving "simple" canonicalization. While the prevalence is | |||
have problems evaluating relaxed canonicalization correctly. | unknown, there are some DKIM verifiers which have problems evaluating | |||
relaxed canonicalization correctly. | ||||
3. Internet Mail Architecture, DMARC, and Indirect Email Flows | 3. Internet Mail Architecture, DMARC, and Indirect Email Flows | |||
This section describes components within the Internet Mail | This section describes components within the Internet Mail | |||
Architecture [RFC5598] where interoperability issues between DMARC | Architecture [RFC5598] where interoperability issues between DMARC | |||
and indirect email flows can be found. | and indirect email flows can be found. | |||
3.1. Message Handling System | 3.1. Message Handling System | |||
Section 4 of [RFC5598] describes six basic components that make up | Section 4 of [RFC5598] describes six basic components that make up | |||
skipping to change at page 8, line 4 ¶ | skipping to change at page 8, line 16 ¶ | |||
o Message User Agent (MUA) | o Message User Agent (MUA) | |||
o Message Submission Agent (MSA) | o Message Submission Agent (MSA) | |||
o Message Transfer Agent (MTA) | o Message Transfer Agent (MTA) | |||
o Message Delivery Agent (MDA) | o Message Delivery Agent (MDA) | |||
o Message Store (MS) | o Message Store (MS) | |||
Of these components MSA, MTA, and MDA are discussed in relation to | Of these components MSA, MTA, and MDA are discussed in relation to | |||
interoperability with DMARC. | interoperability with DMARC. | |||
[RFC5598] Section 5 also defines a Mediator is a hybrid of several | [RFC5598] Section 5 also defines a Mediator as a hybrid of several | |||
component types. A Mediator is given special consideration in this | component types. A Mediator is given special consideration in this | |||
section due to the unique issues they face when attempting to | section due to the unique issues they face when attempting to | |||
interoperate with DMARC. | interoperate with DMARC. | |||
3.1.1. Message Submission Agents | 3.1.1. Message Submission Agents | |||
An MSA accepts messages submitted by a Message User Agent (MUA) and | An MSA accepts messages submitted by a Message User Agent (MUA) and | |||
enforces the policies of the hosting ADministrative Management Domain | enforces the policies of the hosting ADministrative Management Domain | |||
(ADMD) and the requirements of Internet standards. | (ADMD) and the requirements of Internet standards. | |||
MSAs are split into two sub-components: | MSAs are split into two sub-components: | |||
o Author-focused MSA functions (aMSA) | o Author-focused MSA functions (aMSA) | |||
o MHS-focused MSA functions (hMSA) | o MHS-focused MSA functions (hMSA) | |||
MSA interoperability issues with DMARC begin when an aMSA accepts a | MSA interoperability issues with DMARC begin when an aMSA accepts a | |||
message where the RFC5322.from header field contains a domain that is | message where the RFC5322.From header field contains a domain that is | |||
outside of the ADMD of the MSA. These issues manifest themselves in | outside of the ADMD of the MSA. This situation manifests in one of | |||
one of several ways, such as when someone uses a mail service with | several ways, such as when someone uses a mail service with their own | |||
their own domain but has failed to properly configure an SPF record; | domain but has failed to properly configure an SPF record; or when an | |||
or when an MUA attempts to transmit mail as someone else. Examples | MUA attempts to transmit mail as someone else. Examples of the | |||
of the latter issue include "forward-to-friend" functionality | latter situation include "forward-to-friend" functionality commonly | |||
commonly found on news/article websites or "send-as" functionality | found on news/article websites or "send-as" functionality present on | |||
present on some MUAs. | some MUAs. | |||
When an hMSA takes responsibility for transit of a message containing | When an hMSA takes responsibility for transit of a message containing | |||
a domain in the RFC5322.from header field that is outside of the | a domain in the RFC5322.From header field that is outside of the | |||
hMSA's ADMD, the hMSA faces DMARC interoperability issues if the | hMSA's ADMD, the hMSA faces DMARC interoperability issues if the | |||
domain publishes a DMARC policy of "quarantine" or "reject". These | domain publishes a DMARC policy of "quarantine" or "reject". These | |||
issues are marked by the inherent difficulty of establishing | issues are marked by the inherent difficulty of establishing | |||
alignment with the domain present in a message's RFC5322.from header | alignment with the domain present in a message's RFC5322.From header | |||
field. Examples of this issue include: | field. Examples of this issue include: | |||
o Pseudo-open relays - a residential ISP that allows its customers | o Partially-open relays - a residential ISP that allows its | |||
to relay non-local domains through its infrastructure. | customers to relay non-local domains through its infrastructure. | |||
o Embedded devices - cable/DSL modems, firewalls, wireless access | o Embedded devices - cable/DSL modems, firewalls, wireless access | |||
points, printers that send email using hardcoded domains. | points, printers that send email using hardcoded domains. | |||
o Devices that send mail on behalf of a user - scanners, security | o Devices that send mail on behalf of a user - scanners, security | |||
cameras, alarms that send mail as their owner or a device user. | cameras, alarms that send mail as their owner or a device user. | |||
o Email service providers - ESPs that service customers who are | o Email service providers - ESPs that service customers who are | |||
using domains that publish a DMARC "reject" policy. | using domains that publish a DMARC "reject" policy. | |||
skipping to change at page 9, line 26 ¶ | skipping to change at page 9, line 37 ¶ | |||
3.1.2.1. Message Encoding | 3.1.2.1. Message Encoding | |||
An MTA may modify the message encoding, for instance by converting | An MTA may modify the message encoding, for instance by converting | |||
8-bit MIME sections to quoted-printable 7-bit sections. This | 8-bit MIME sections to quoted-printable 7-bit sections. This | |||
modification is outside the scope of DKIM canonicalization and will | modification is outside the scope of DKIM canonicalization and will | |||
invalidate DKIM signatures that include message content. | invalidate DKIM signatures that include message content. | |||
An MTA could also re-encode the message without changing the encoding | An MTA could also re-encode the message without changing the encoding | |||
type, receiving a MIME-encoded message and producing a semantically | type, receiving a MIME-encoded message and producing a semantically | |||
and syntactically equivalent MIME body that is not identical to the | and semiotically equivalent MIME body that is not identical to the | |||
original. This is characteristic of systems that use some other | original. This is characteristic of systems that use some other | |||
message representation internally. | message representation internally. | |||
3.1.2.2. Header Standardization | 3.1.2.2. Header Standardization | |||
An MTA may rewrite headers to bring them into compliance with | An MTA may rewrite headers to bring them into compliance with | |||
existing RFCs. For example, some common MTAs will correct | existing RFCs. For example, some common MTAs will correct | |||
comprehensible but non-compliant date formats to compliant ones. | comprehensible but non-compliant date formats to compliant ones. | |||
Header rewriting is outside the scope of DKIM canonicalization and | Header rewriting is outside the scope of DKIM canonicalization and | |||
skipping to change at page 10, line 23 ¶ | skipping to change at page 10, line 32 ¶ | |||
Both the hMDA and the rMDA can redirect a message to an alternative | Both the hMDA and the rMDA can redirect a message to an alternative | |||
address. DMARC interoperability issues related to redirecting of | address. DMARC interoperability issues related to redirecting of | |||
messages are described in Section 3.2. | messages are described in Section 3.2. | |||
SIEVE [RFC5228] functionality often lives in the rMDA sub-component | SIEVE [RFC5228] functionality often lives in the rMDA sub-component | |||
and can cause DMARC interoperability issues. The SIEVE 'addheader' | and can cause DMARC interoperability issues. The SIEVE 'addheader' | |||
and 'deleteheader' filtering actions can modify messages and | and 'deleteheader' filtering actions can modify messages and | |||
invalidate DKIM signatures, removing DKIM-supplied Authenticated | invalidate DKIM signatures, removing DKIM-supplied Authenticated | |||
Identifiers as inputs to the DMARC mechanism. There are also SIEVE | Identifiers as inputs to the DMARC mechanism. There are also SIEVE | |||
extensions that modify the body. SIEVE alterations may only become | extensions [RFC5703] that modify the body. SIEVE alterations may | |||
an issue when the email is reintroduced into the transport | only become an issue when the email is reintroduced into the | |||
infrastructure. | transport infrastructure. | |||
3.2. Mediators | 3.2. Mediators | |||
Mediators [RFC5598] forward messages through a re-posting process. | Mediators [RFC5598] forward messages through a re-posting process. | |||
Mediators share some functionality with basic MTA relaying, but have | Mediators share some functionality with basic MTA relaying, but have | |||
greater flexibility in both addressing and content modifications. | greater flexibility in both addressing and content modifications. | |||
DMARC interoperability issues are common within the context of | DMARC interoperability issues are common within the context of | |||
Mediators, which are often used precisely for their ability to modify | Mediators, which are often used precisely for their ability to modify | |||
messages. | messages. | |||
The DMARC design does not cope with some Mediator functionality such | The DMARC design does not cope with some Mediator functionality such | |||
as content modifications that invalidate DKIM signatures and | as content modifications that invalidate DKIM signatures and | |||
RFC5321.mailfrom rewriting to support SPF authentication of resent | RFC5321.MailFrom rewriting to support SPF authentication of resent | |||
mail when the new Recipient receives the message from the Mediator | mail when the new Recipient receives the message from the Mediator | |||
rather than the initial organization. | rather than the initial organization. | |||
3.2.1. Alias | 3.2.1. Alias | |||
An Alias is a simple re-addressing facility that provides one or more | An Alias is a simple re-addressing facility that provides one or more | |||
new Internet Mail addresses, rather than a single, internal one. A | new Internet Mail addresses, rather than a single, internal one. A | |||
message continues through the transfer service for delivery to one or | message continues through the transfer service for delivery to one or | |||
more alternative addresses. | more alternative addresses. | |||
skipping to change at page 11, line 36 ¶ | skipping to change at page 11, line 47 ¶ | |||
not assume such a relationship. | not assume such a relationship. | |||
3.2.2. ReSenders | 3.2.2. ReSenders | |||
ReSenders "splice" a message's addressing information to connect the | ReSenders "splice" a message's addressing information to connect the | |||
Author of the original message with the Recipient(s) of the new | Author of the original message with the Recipient(s) of the new | |||
message. The new Recipient sees the message as being from the | message. The new Recipient sees the message as being from the | |||
original Author, even if the Mediator adds commentary. | original Author, even if the Mediator adds commentary. | |||
Without Authenticated Identifiers aligned with the Author's | Without Authenticated Identifiers aligned with the Author's | |||
RFC5322.from header field domain, the new Recipient has no way to | RFC5322.From header field domain, the new Recipient has no way to | |||
achieve a passing DMARC evaluation. | achieve a passing DMARC evaluation. | |||
Examples of ReSenders include MUA-level forwarding by resending a | Examples of ReSenders include MUA-level forwarding by resending a | |||
message to a new recipient or by forwarding a message "inline" to a | message to a new recipient or by forwarding a message "inline" to a | |||
new recipient (this does not include forwarding a message "as an | new recipient (this does not include forwarding a message "as an | |||
attachment"). An additional example comes in the form of calendaring | attachment"). An additional example comes in the form of calendaring | |||
software that allows a meeting attendee (not the meeting organizer) | software that allows a meeting attendee (not the meeting organizer) | |||
to modify the content of an invite generating new invitations that | to modify the content of an invite generating new invitations that | |||
claim to be reissued from the meeting organizer. | claim to be reissued from the meeting organizer. | |||
skipping to change at page 14, line 14 ¶ | skipping to change at page 14, line 21 ¶ | |||
o Spam filtering: To protect reputation and assist other MTAs, an | o Spam filtering: To protect reputation and assist other MTAs, an | |||
MTA may modify a message to indicate its decision that the message | MTA may modify a message to indicate its decision that the message | |||
is likely to be unwanted, and/or add text in the body to indicate | is likely to be unwanted, and/or add text in the body to indicate | |||
that such filtering has been done. | that such filtering has been done. | |||
o Other text additions: An MTA may add an organizational disclaimer | o Other text additions: An MTA may add an organizational disclaimer | |||
or advertisement, for instance. | or advertisement, for instance. | |||
o URL alteration: Some systems will rewrite or alter embedded URLs | o URL alteration: Some systems will rewrite or alter embedded URLs | |||
as a way to control the potential threat form malware. | as a way to control the potential threat from malware. | |||
o Secondary MX services: The secondary MX for an organization may be | o Secondary MX services: The secondary MX for an organization may be | |||
external to the normal mail processing for the organization, and | external to the normal mail processing for the organization, and | |||
queue and forward to the primary when it becomes available. This | queue and forward to the primary when it becomes available. This | |||
will not invalidate DKIM but will prevent the primary from | will not invalidate DKIM but will prevent the primary from | |||
validating SPF normally. In this case, however, it is | validating SPF normally. In this case, however, it is | |||
inappropriate for a primary MX server to perform an SPF check | inappropriate for a primary MX server to perform an SPF check | |||
against its own secondaries. Rather, the secondary MX should | against its own secondaries. Rather, the secondary MX should | |||
perform this function and employ some trusted mechanism to | perform this function and employ some trusted mechanism to | |||
communicate the results of the SPF, DKIM and DMARC evaluation(s) | communicate the results of the SPF, DKIM and DMARC evaluation(s) | |||
skipping to change at page 15, line 46 ¶ | skipping to change at page 16, line 10 ¶ | |||
Because DMARC is already widely deployed, many operators already have | Because DMARC is already widely deployed, many operators already have | |||
mitigations in use. These mitigations vary in their effectiveness | mitigations in use. These mitigations vary in their effectiveness | |||
and side effects, but have the advantage that they are currently | and side effects, but have the advantage that they are currently | |||
available. | available. | |||
4.1.1. Mitigations for Senders | 4.1.1. Mitigations for Senders | |||
4.1.1.1. Identifier Alignment | 4.1.1.1. Identifier Alignment | |||
o MTAs handling multiple domains may choose to change | o MTAs handling multiple domains may choose to change | |||
RFC5321.mailfrom to align with RFC5322.from to improve SPF | RFC5321.MailFrom to align with RFC5322.From to improve SPF | |||
usability for DMARC. | usability for DMARC. | |||
o MTAs handling multiple domains may also choose to align | o MTAs handling multiple domains may also choose to align | |||
RFC5321.HELO/EHLO to RFC5322.from, particularly when sending non- | RFC5321.HELO/.EHLO to RFC5322.From, particularly when sending | |||
delivery (also known as "bounce") messages (ref [RFC5321] section | notification messages. Dynamically adjusting the | |||
3.6.3). Dynamically adjusting the RFC5321.HELO based on the | RFC5321.HELO/.EHLO based on the RFC5322.From may not be possible | |||
RFC5322.from may not be possible for some MTA software. | for some MTA software. | |||
o MTAs may choose to DKIM sign bounces with an aligned domain to | o MTAs may choose to DKIM sign notification messages with an aligned | |||
allow DKIM-based DMARC pass. | domain to allow DKIM-based DMARC pass. | |||
o MTAs sending email on behalf of multiple domains may require | o MTAs sending email on behalf of multiple domains may require | |||
Domain Owners to provide DKIM keys to use DKIM to avoid SPF | Domain Owners to provide DKIM keys to use DKIM to avoid SPF | |||
validation issues, given the requirement for DMARC alignment with | validation issues, given the requirement for DMARC alignment with | |||
the RFC5322.from header field. Managing DKIM keys with a third | the RFC5322.From header field. Managing DKIM keys with a third | |||
party has security risks that should be carefully managed (see | party has security risks that should be carefully managed (see | |||
also [RFC6376] section 8). Methods involving CNAMEs and/or | also [RFC6376] section 8). Methods involving CNAMEs and/or | |||
subdomains may alleviate some risks. | subdomains may alleviate some risks. | |||
o Senders who are sending on behalf of users in other Administrative | o Senders who are sending on behalf of users in other Administrative | |||
Domains may choose to use an RFC5322.from under the sender's | Domains may choose to use an RFC5322.From under the sender's | |||
control. The new From can be either a forwarding address in a | control. The new From can be either a forwarding address in a | |||
domain controlled by the Sender, or a placeholder address, with | domain controlled by the Sender, or a placeholder address, with | |||
the original user's address in a RFC5322.Reply-to header field. | the original user's address in a RFC5322.Reply-to header field. | |||
However, performing this modification may cause the recipient's | However, performing this modification may cause the recipient's | |||
MUA to deviate from customary behavior. | MUA to deviate from customary behavior. | |||
o When implementing "forward-to-friend" functionality one approach | o When implementing "forward-to-friend" functionality one approach | |||
to avoid DMARC failures is to pass a well formed message to the | to avoid DMARC failures is to pass a well formed message to the | |||
user's MUA so that it may fill in an appropriate identity and | user's MUA so that it may fill in an appropriate identity and | |||
submit through its own MSA. | submit through its own MSA. | |||
skipping to change at page 17, line 24 ¶ | skipping to change at page 17, line 34 ¶ | |||
o Receivers can amalgamate data from their user base to create lists | o Receivers can amalgamate data from their user base to create lists | |||
of forwarders and use such lists to inform DMARC local policy | of forwarders and use such lists to inform DMARC local policy | |||
overrides. This process may be easier for large receivers where | overrides. This process may be easier for large receivers where | |||
data and resources to create such lists are more readily available | data and resources to create such lists are more readily available | |||
than at smaller sites where the recipient footprint and other | than at smaller sites where the recipient footprint and other | |||
resources may be scarce. | resources may be scarce. | |||
4.1.3. Mitigations for ReSenders | 4.1.3. Mitigations for ReSenders | |||
4.1.3.1. Changes to the RFC5322.from | 4.1.3.1. Changes to the RFC5322.From | |||
Many ReSender issues can be avoided by using an RFC5322.from header | Many ReSender issues can be avoided by using an RFC5322.From header | |||
field under the ReSender's control, instead of the initial | field under the ReSender's control, instead of the initial | |||
RFC5322.from. This will correct identifier alignment issues and | RFC5322.From. This will correct identifier alignment issues and | |||
allow arbitrary message modification as long as the ReSender signs | allow arbitrary message modification as long as the ReSender signs | |||
the message with an aligned domain signature. When ReSenders change | the message with an aligned domain signature. When ReSenders change | |||
the RFC5322.from, it is desirable to preserve the information about | the RFC5322.From, it is desirable to preserve the information about | |||
the original initiator of the message. | the original initiator of the message. | |||
A first option is to use the Original-From [RFC5703] (or X-Original- | A first option is to use the Original-From [RFC5703] (or X-Original- | |||
From) header field for this purpose in various contexts (X- header | From) header field for this purpose in various contexts (X- header | |||
fields name are discouraged by [RFC6648]). However, handling of | fields name are discouraged by [RFC6648]). However, handling of | |||
Original-From (or X-Original-From) is not defined anywhere. It is | Original-From (or X-Original-From) is not defined anywhere. It is | |||
not currently used consistently or displayed to the user, and in any | not currently used consistently or displayed to the user, and in any | |||
situation where it is used, it is a new unauthenticated identifier | situation where it is used, it is a new unauthenticated identifier | |||
available for exploitation unless included within the scope of the | available for exploitation unless included within the scope of the | |||
new DKIM signature(s). | new DKIM signature(s). | |||
Another option for ReSenders is to rewrite the RFC5322.from header | Another option for ReSenders is to rewrite the RFC5322.From header | |||
field address to a locally controlled address which will be forwarded | field address to a locally controlled address which will be forwarded | |||
back to the original sender (subject to its own ReSender forwarding | back to the original sender (subject to its own ReSender forwarding | |||
mitigations!). | mitigations!). | |||
4.1.3.2. Avoiding Message Modification | 4.1.3.2. Avoiding Message Modification | |||
o Forwarders can choose to add email header fields instead of | o Forwarders can choose to add email header fields instead of | |||
modifying existing headers or bodies, for instance to indicate a | modifying existing headers or bodies, for instance to indicate a | |||
message may be spam. | message may be spam. | |||
skipping to change at page 18, line 19 ¶ | skipping to change at page 18, line 30 ¶ | |||
o Forwarders can choose to reject messages with suspect or harmful | o Forwarders can choose to reject messages with suspect or harmful | |||
content instead of modifying them. | content instead of modifying them. | |||
4.1.3.3. Mailing Lists | 4.1.3.3. Mailing Lists | |||
[RFC6377] provides some guidance on using DKIM with Mailing lists. | [RFC6377] provides some guidance on using DKIM with Mailing lists. | |||
The following mitigation techniques can be used to ease | The following mitigation techniques can be used to ease | |||
interoperability issues with DMARC and Mailing lists: | interoperability issues with DMARC and Mailing lists: | |||
o Configuring the Mailing List Manager (MLM) to alter the | o Configuring the Mailing List Manager (MLM) to alter the | |||
RFC5322.from header field to use the domain of the MLM is a | RFC5322.From header field to use the domain of the MLM is a | |||
mitigation policy that is now present in several different Mailing | mitigation policy that is now present in several different Mailing | |||
List software distributions. Since most list subscribers prefer | List software distributions. Since most list subscribers prefer | |||
to know the identity of the author of the original message, | to know the identity of the author of the original message, | |||
typically this information may be provided in the display name | typically this information may be provided in the display name | |||
part of the RFC5322.from header field. This display name needs to | part of the RFC5322.From header field. This display name needs to | |||
be carefully crafted as to not collide with the original display | be carefully crafted so as to not collide with the original | |||
name of the author, nor contain something that looks like an email | display name of the author, nor contain something that looks like | |||
address or domain name. These modifications may to some extent | an email address or domain name. These modifications may to some | |||
defeat the purpose of DMARC itself. It may make it difficult to | extent defeat the purpose of DMARC itself. It may make it | |||
ensure that users of all email clients can easily reply to the | difficult to ensure that users of all email clients can easily | |||
author, the list, or all using the email client features provided | reply to the author, the list, or all using the email client | |||
for that purpose. Use of RFC5322.Reply-To header field can | features provided for that purpose. Use of RFC5322.Reply-To | |||
alleviate this problem depending on whether the mailing list is | header field can alleviate this problem depending on whether the | |||
configured to reply-to-list, reply-to-author or reply-to-fixed- | mailing list is configured to reply-to-list, reply-to-author or | |||
address, however it is important to note that this header field | reply-to-fixed-address, however it is important to note that this | |||
can take multiple email addresses. When altering the RFC5322.from | header field can take multiple email addresses. When altering the | |||
there are three possibilities: | RFC5322.From there are three possibilities: | |||
1. change it to put the mailing list email address, | 1. change it to put the mailing list email address, | |||
2. change it to a locally-defined address which will be forwarded | 2. change it to a locally-defined address which will be forwarded | |||
back to the original sender, or | back to the original sender, or | |||
3. "break" the address by modifying the domain to a non-existent | 3. "break" the address by modifying the domain to a non-existent | |||
domain (such as by adding a suffix like ".invalid".) | domain (such as by adding a suffix like ".invalid".) | |||
The latter modification may create issues because it is an invalid | The latter modification may create issues because it is an invalid | |||
domain name, and some MTAs may pay particular attention to the | domain name, and some MTAs may pay particular attention to the | |||
validity of email addresses in RFC5322.from and the reputation of | validity of email addresses in RFC5322.From and the reputation of | |||
the domains present there. | the domains present there. | |||
o Configuring the MLM to "wrap" the message in a MIME message/rfc822 | o Configuring the MLM to "wrap" the message in a MIME message/rfc822 | |||
part and to send as the Mailing List email address. Many email | part and to send as the Mailing List email address. Many email | |||
clients (as of August 2015), especially mobile clients, have | clients (as of the publication of this document), especially | |||
difficulty reading such messages and this is not expected to | mobile clients, have difficulty reading such messages and this is | |||
change soon. | not expected to change soon. | |||
o Configuring the MLM to not modify the message so that the DKIM | o Configuring the MLM to not modify the message so that the DKIM | |||
signature remains valid. Some Mailing Lists are set up this way | signature remains valid. Some Mailing Lists are set up this way | |||
and require few additional changes to ensure the DKIM signature is | and require few additional changes to ensure the DKIM signature is | |||
preserved. Moving lists that currently modify mail to a policy | preserved. Moving lists that currently modify mail to a policy | |||
like this, may be too much of a change for the members of such | like this, may be too much of a change for the members of such | |||
lists. | lists. | |||
o Rejecting posts or membership requests from domains with a DMARC | o Rejecting posts or membership requests from domains with a DMARC | |||
policy other than "p=none". However members or potential members | policy other than "p=none". However members or potential members | |||
of such Mailing Lists may complain of unfair exclusion. | of such Mailing Lists may complain of unfair exclusion. | |||
o To alleviate unsubscribes to the Mailing List due to the messages | o To alleviate unsubscribes to the Mailing List due to the messages | |||
bouncing because of DMARC, the MLM needs to not act on bounces due | bouncing because of DMARC, the MLM needs to not act on | |||
to Message Authentication issues. [RFC3463] specifies Enhanced | notification messages due to Message Authentication issues. | |||
Mail System Status Codes which help differentiate between various | [RFC3463] specifies Enhanced Mail System Status Codes which help | |||
bounces. Correctly interpreting Extended SMTP error messages is | differentiate between various failure conditions. Correctly | |||
useful in this case. In particular, extended status codes are | interpreting Extended SMTP error messages is useful in this case. | |||
defined in [RFC7372] and in DMARC [RFC7489]. | In particular, extended status codes for SPF and DKIM causes are | |||
defined in [RFC7372] and DMARC-related failure indications are | ||||
discussed in DMARC [RFC7489] section 10.3. | ||||
All these techniques may provide some specific challenges to MUAs and | All these techniques may provide some specific challenges to MUAs and | |||
different operational usages for end users (like rewriting filters to | different operational usages for end users (like rewriting filters to | |||
sort emails in folders). There will be some time before all | sort emails in folders). There will be some time before all | |||
implications are understood and accommodated. | implications are understood and accommodated. | |||
4.2. Proposed and In-Progress Mitigations | 4.2. Proposed and In-Progress Mitigations | |||
The following mitigations are based on Internet Drafts (I-Ds) which | The following mitigations are based on Internet Drafts (I-Ds) which | |||
have not yet received broad consensus. They are described here to | are still in process. They are described here to offer exploratory | |||
offer exploratory path for solutions. These solutions should not be | path for solutions. These solutions should not be used in a | |||
used in a production environment. Because of the transient nature of | production environment. Because of the transient nature of I-Ds, | |||
I-Ds, specific citations are not included because a number of them | specific citations are not included because a number of them will | |||
will inevitably become obsolete and those which gain concensus in the | inevitably become obsolete and those which gain consensus in the | |||
community will become RFCs and should be discovered as such. | community will become RFCs and should be discovered as such. | |||
o Third party authorization schemes provide ways to extend | o Third party authorization schemes provide ways to extend | |||
identifier alignment under control of the domain owner. | identifier alignment under control of the domain owner. | |||
o Ways to canonicalize messages that transit mailing lists so that | o Ways to canonicalize messages that transit mailing lists so that | |||
their alterations can be isolated from the original signed | their alterations can be isolated from the original signed | |||
content. | content. | |||
o Mechanisms to record message transformations applied at each hop | o Mechanisms to record message transformations applied at each hop | |||
skipping to change at page 20, line 25 ¶ | skipping to change at page 20, line 37 ¶ | |||
In practice a number of operators are using strict alignment mode in | In practice a number of operators are using strict alignment mode in | |||
DMARC in order to avoid receiving new and innovative forms of | DMARC in order to avoid receiving new and innovative forms of | |||
unwanted and unauthentic email through systems purporting to be | unwanted and unauthentic email through systems purporting to be | |||
mailing list handlers. The receiving ADMD has no knowledge of which | mailing list handlers. The receiving ADMD has no knowledge of which | |||
lists the user has subscribed to and which they have not. One avenue | lists the user has subscribed to and which they have not. One avenue | |||
of exploration would be for the user to authorize mailing lists as | of exploration would be for the user to authorize mailing lists as | |||
proxies for authentication, at which point the receiving ADMD would | proxies for authentication, at which point the receiving ADMD would | |||
be vesting some trust in the mailing list service. The creators of | be vesting some trust in the mailing list service. The creators of | |||
DKIM foresaw precisely this possibility at the time by not tightly | DKIM foresaw precisely this possibility at the time by not tightly | |||
binding any semantics to the RFC5322.from header field. Some | binding any semantics to the RFC5322.From header field. Some | |||
experimental work has taken place in this area, as mentioned above. | experimental work has taken place in this area, as mentioned above. | |||
Additional work might examine a new communication path to the user to | Additional work might examine a new communication path to the user to | |||
authorize some form of transitive trust. | authorize some form of transitive trust. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document contains no actions for IANA. [RFC Editor: Please | This document contains no actions for IANA. [RFC Editor: Please | |||
delete this section prior to publication.] | delete this section prior to publication.] | |||
6. Security Considerations | 6. Security Considerations | |||
This document is an analysis of DMARC's impact on indirect email | This document is an analysis of DMARC's impact on indirect email | |||
flows. It describes the possibility of accidental denial-of-service | flows. It describes the possibility of accidental denial-of-service | |||
that can be created by rejections of messages by DMARC-aware Mail | that can be created by rejections of messages by DMARC-aware Mail | |||
Receivers. | Receivers. | |||
In Section 4.1.1.1, discusses the importance of appropriate DKIM key | Section 4.1.1.1 discusses the importance of appropriate DKIM key | |||
management vis a vis third party email senders. | management vis a vis third party email senders. | |||
In Section 4.1.3.3, warns that rewriting the RFC5322.from header | Section 4.1.3.3 warns that rewriting the RFC5322.From header field | |||
field and changing the domain name should not be done with any | and changing the domain name should not be done with any domain. | |||
domain. | ||||
7. Acknowledgments | 7. Acknowledgments | |||
Miles Fidelman, John Levine, David Crocker, Stephen J. Turnbull, | Miles Fidelman, John Levine, David Crocker, Stephen J. Turnbull, | |||
Rolf E. Sonneveld, Tim Draegen and Franck Martin contributed to the | Rolf E. Sonneveld, Tim Draegen and Franck Martin contributed to the | |||
IETF DMARC Working Group's wiki page listing all known | IETF DMARC Working Group's wiki page listing all known | |||
interoperability issues with DMARC and indirect email flows. | interoperability issues with DMARC and indirect email flows. | |||
Tim Draegen created the first draft of this document from these | Tim Draegen created the first draft of this document from these | |||
contributions and by hamfistedly mapping contributions into the | contributions and by hamfistedly mapping contributions into the | |||
skipping to change at page 22, line 43 ¶ | skipping to change at page 22, line 48 ¶ | |||
(DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015, | (DMARC)", RFC 7489, DOI 10.17487/RFC7489, March 2015, | |||
<http://www.rfc-editor.org/info/rfc7489>. | <http://www.rfc-editor.org/info/rfc7489>. | |||
[RFC7601] Kucherawy, M., "Message Header Field for Indicating | [RFC7601] Kucherawy, M., "Message Header Field for Indicating | |||
Message Authentication Status", RFC 7601, | Message Authentication Status", RFC 7601, | |||
DOI 10.17487/RFC7601, August 2015, | DOI 10.17487/RFC7601, August 2015, | |||
<http://www.rfc-editor.org/info/rfc7601>. | <http://www.rfc-editor.org/info/rfc7601>. | |||
Appendix A. Appendix A - Example SPF Bounce | Appendix A. Appendix A - Example SPF Bounce | |||
This example illustrates a notification message "bounce". | ||||
A.1. Initial Message | A.1. Initial Message | |||
Here is the message as it exits the Origin MTA (segv.d1.example): | Here is the message as it exits the Origin MTA (segv.d1.example): | |||
Return-Path: <jqd@d1.example> | Return-Path: <jqd@d1.example> | |||
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z]) | Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z]) | |||
(authenticated bits=0) | (authenticated bits=0) | |||
by segv.d1.example with ESMTP id t0FN4a8O084569; | by segv.d1.example with ESMTP id t0FN4a8O084569; | |||
Thu, 14 Jan 2015 15:00:01 -0800 (PST) | Thu, 14 Jan 2015 15:00:01 -0800 (PST) | |||
(envelope-from jqd@d1.example) | ||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example; | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example; | |||
s=20130426; t=1421363082; | s=20130426; t=1421363082; | |||
bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=; | bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=; | |||
h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type: | h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type: | |||
Content-Transfer-Encoding; | Content-Transfer-Encoding; | |||
b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrvQw | b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrvQw | |||
bv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3TRJl | bv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3TRJl | |||
gotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ= | gotsX4RkbNcUhlfnoQ0p+CywWjieI8aR6eof6WDQ= | |||
Message-ID: <54B84785.1060301@d1.example> | Message-ID: <54B84785.1060301@d1.example> | |||
Date: Thu, 14 Jan 2015 15:00:01 -0800 | Date: Thu, 14 Jan 2015 15:00:01 -0800 | |||
From: John Q Doe <jqd@d1.example> | From: John Q Doe <jqd@d1.example> | |||
To: no-recipient@dmarc.org | To: no-recipient@dmarc.org | |||
Subject: Example 1 | Subject: Example 1 | |||
Hey gang, | Hey gang, | |||
This is a test message. | This is a test message. | |||
--J. | --J. | |||
A.2. Bounce message | A.2. Notification message | |||
When dmarc.org bounces the message without a DKIM signature, it | When dmarc.org rejects the message without a DKIM signature, it | |||
specifies the HELO/EHLO domain as dmarc.org.local which has no SPF | specifies the RFC5321.HELO/.EHLO domain as dmarc.org.local which has | |||
record. dmarc.org has a reject policy in place for such non-passing | no SPF record. dmarc.org has a reject policy in place for such non- | |||
cases. Since there is no DKIM signature on the bounce message, the | passing cases. Since there is no DKIM signature on the notification | |||
failed SPF lookup results in a dmarc=fail and d1.example could be | message, the failed SPF lookup results in a dmarc=fail and d1.example | |||
expected to discard the bounce message itself: | could be expected to discard the notification message itself: | |||
Return-Path: <> | Return-Path: <> | |||
Received: from dmarc.org.local (mail.dmarc.org. [10.255.0.1]) | Received: from dmarc.org.local (mail.dmarc.org. [10.255.0.1]) | |||
by mx.d1.example with ESMTPS id Lkm25302jJR;5 | by mx.d1.example with ESMTPS id Lkm25302jJR5 | |||
for <jqd@d1.example> | for <jqd@d1.example> | |||
(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); | (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); | |||
Thu, 14 Jan 2015 15:00:24 -0800 (PST) | Thu, 14 Jan 2015 15:00:24 -0800 (PST) | |||
Authentication-Results: mx.d1.example; | Authentication-Results: mx.d1.example; | |||
spf=none (d1.example: dmarc.org.local does not designate | spf=none (d1.example: dmarc.org.local does not designate | |||
permitted sender hosts) smtp.mail=; | permitted sender hosts) smtp.mail=; | |||
dmarc=fail (p=REJECT dis=NONE) header.from=dmarc.org | dmarc=fail (p=REJECT dis=NONE) header.from=dmarc.org | |||
MIME-Version: 1.0 | MIME-Version: 1.0 | |||
Return-Path: <> | Received: from segv.d1.example (segv.d1.example [10.15.20.25]) | |||
Received: by 10.10.10.131 with SMTP id u67mr102828634qge.33; Thu, | by 10.10.10.131 with SMTP id u67mr102828634qge33; Thu, | |||
14 Jan 2015 15:00:24 -0800 (PST) | 14 Jan 2015 15:00:24 -0800 (PST) | |||
From: Mail Delivery Subsystem <mailer-daemon@dmarc.org> | From: Mail Delivery Subsystem <mailer-daemon@dmarc.org> | |||
To: jqd@d1.example | To: jqd@d1.example | |||
Subject: Delivery Status Notification (Failure) | Subject: Delivery Status Notification (Failure) | |||
Message-ID: <001a11c16e6a9ead220528df294a@dmarc.org> | Message-ID: <001a11c16e6a9ead220528df294a@dmarc.org> | |||
Date: Thu, 14 Jan 2016 23:00:24 +0000 | Date: Thu, 14 Jan 2016 23:00:24 +0000 | |||
Content-Type: text/plain; charset=UTF-8 | Content-Type: text/plain; charset=UTF-8 | |||
This is an automatically generated Delivery Status Notification | This is an automatically generated Delivery Status Notification | |||
Delivery to the following recipient failed permanently: | Delivery to the following recipient failed permanently: | |||
no-recipient@dmarc.org | no-recipient@dmarc.org | |||
Technical details of permanent failure: | Technical details of permanent failure: | |||
Your message was rejected by the server for the recipient domain | Your message was rejected by the server for the recipient domain | |||
dmarc.org by mail.dmarc.org. [10.255.0.1]. | dmarc.org by mail.dmarc.org [10.255.0.1]. | |||
The error that the other server returned was: | The error that the other server returned was: | |||
550 5.1.1 <no-recipient@dmarc.org>... User unknown | 550 5.1.1 <no-recipient@dmarc.org>... User unknown | |||
----- Original message ----- | ----- Original message ----- | |||
Received: from [10.10.10.131] (w-x-y-z.dsl.static.isp.com [w.x.y.z]) | Return-Path: <jqd@d1.example> | |||
(authenticated bits=0) | Received: from [10.10.10.131] (131-10-10-10.dsl.static.example.com | |||
[10.10.10.131]) (authenticated bits=0) | ||||
by segv.d1.example with ESMTP id t0FN4a8O084569; | by segv.d1.example with ESMTP id t0FN4a8O084569; | |||
Thu, 14 Jan 2015 15:00:01 -0800 (PST) | Thu, 14 Jan 2015 15:00:01 -0800 (PST) | |||
(envelope-from jqd@d1.example) | (envelope-from jqd@d1.example) | |||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example; | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=d1.example; | |||
s=20130426; t=1421363082; | s=20130426; t=1421363082; | |||
bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=; | bh=EoJqaaRvhrngQxmQ3VnRIIMRBgecuKf1pdkxtfGyWaU=; | |||
h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type: | h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type: | |||
Content-Transfer-Encoding; | Content-Transfer-Encoding; | |||
b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrvQw | b=HxsvPubDE+R96v9dM9Y7V3dJUXvajd6rvF5ec5BPe/vpVBRJnD4I2weEIyYijrvQw | |||
bv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3TRJl | bv9uUA1t94kMN0Q+haFo6hiQPnkuDxku5+oxyZWOqtNH7CTMgcBWWTp4QD4Gd3TRJl | |||
End of changes. 75 change blocks. | ||||
145 lines changed or deleted | 158 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |