| draft-ietf-dkim-ssp-03.txt | draft-otis-dkim-adsp-02.txt | |||
|---|---|---|---|---|
| Network Working Group E. Allman | DKIM Working Group D. Otis | |||
| Internet-Draft Sendmail, Inc. | Internet-Draft Trend Micro, NSSG | |||
| Intended status: Standards Track J. Fenton | Intended status: Standards Track May 24, 2008 | |||
| Expires: August 26, 2008 Cisco Systems, Inc. | Expires: November 25, 2008 | |||
| M. Delany | ||||
| Yahoo! Inc. | ||||
| J. Levine | ||||
| Taughannock Networks | ||||
| February 23, 2008 | ||||
| DKIM Author Signing Practices (ASP) | DKIM Author Domain Signing Practices (ADSP) | |||
| draft-ietf-dkim-ssp-03 | draft-otis-dkim-adsp-02 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 39 | skipping to change at page 1, line 34 | |||
| 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." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on August 26, 2008. | This Internet-Draft will expire on November 25, 2008. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The IETF Trust (2008). | Copyright (C) The IETF Trust (2008). | |||
| Abstract | Abstract | |||
| DomainKeys Identified Mail (DKIM) defines a domain-level | Author Domain Signing Practices (ADSP) advertises the adoption level | |||
| authentication framework for email using public-key cryptography and | of DomainKeys Identified Mail (DKIM), as described in [RFC4871], for | |||
| key server technology to permit verification of the source and | outbound messages publicly exchanged using SMTP, as described in | |||
| contents of messages by either Mail Transport Agents (MTAs) or Mail | [RFC2821]. Application of ADSP by Mail User Agents (MUAs) might need | |||
| User Agents (MUAs). The primary DKIM protocol is described in | to be offered as an option, to accommodate messages exchanged over | |||
| [RFC4871]. This document describes the records that authors' domains | different public protocols. This document describes records that | |||
| can use to advertise their practices for signing their outgoing mail, | authors' domains can publish to advertise their DKIM practices for | |||
| and how other hosts can access those records. | outgoing messages containing the Author Domain. ADSP will not | |||
| dictate any specific use of DKIM identity parameters. Such identity | ||||
| restrictions go beyond the charter and unnecessarily limit ADSP | ||||
| applicability. Confirmation of an individual author's identity is | ||||
| orthogonal to and fully independent of ADSP. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Language and Terminology . . . . . . . . . . . . . . . . . . . 4 | 2. Language and Terminology . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Terms Imported from DKIM Signatures Specification . . . . 4 | 2.1. Terms Imported from DKIM Signatures Specification . . . . 3 | |||
| 2.2. Valid Signature . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Valid Signature . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.3. Author Address . . . . . . . . . . . . . . . . . . . . . . 5 | 2.3. Key Domain . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.4. Author Domain . . . . . . . . . . . . . . . . . . . . . . 5 | 2.4. Author Key Domain . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.5. Alleged Author . . . . . . . . . . . . . . . . . . . . . . 5 | 2.5. Author Address . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.6. Author Signing Practices . . . . . . . . . . . . . . . . . 5 | 2.6. Author Domain . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.7. Author Signature . . . . . . . . . . . . . . . . . . . . . 5 | 2.7. Author Domain Signing Practices . . . . . . . . . . . . . 4 | |||
| 3. Operation Overview . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Operation Overview . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. ASP Usage . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. ADSP Usage . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. ASP Results . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. ADSP Results . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Detailed Description . . . . . . . . . . . . . . . . . . . . . 7 | 4. Detailed Description . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. DNS Representation . . . . . . . . . . . . . . . . . . . . 7 | 4.1. DNS Representation . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. Publication of ASP Records . . . . . . . . . . . . . . . . 7 | 4.2. Publication of ADSP Records . . . . . . . . . . . . . . . 6 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. ASP Specification Tag Registry . . . . . . . . . . . . . . 10 | 5.1. ADSP Specification Tag Registry . . . . . . . . . . . . . 9 | |||
| 5.2. ASP Outbound Signing Practices Registry . . . . . . . . . 10 | 5.2. ADSP Outbound Signing Practices Registry . . . . . . . . . 9 | |||
| 5.3. ASP Flags Registry . . . . . . . . . . . . . . . . . . . . 11 | 5.3. ADSP Flags Registry . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
| 6.1. ASP Threat Model . . . . . . . . . . . . . . . . . . . . . 11 | 6.1. ADSP Threat Model . . . . . . . . . . . . . . . . . . . . 10 | |||
| 6.2. DNS Attacks . . . . . . . . . . . . . . . . . . . . . . . 12 | 6.2. DNS Attacks . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6.3. DNS Wildcards . . . . . . . . . . . . . . . . . . . . . . 12 | 6.3. DNS Wildcards . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 7.1. References - Normative . . . . . . . . . . . . . . . . . . 13 | 7.1. References - Normative . . . . . . . . . . . . . . . . . . 12 | |||
| 7.2. References - Informative . . . . . . . . . . . . . . . . . 13 | 7.2. References - Informative . . . . . . . . . . . . . . . . . 13 | |||
| Appendix A. Usage Examples . . . . . . . . . . . . . . . . . . . 13 | Appendix A. Usage Examples . . . . . . . . . . . . . . . . . . . 13 | |||
| A.1. Single Location Domains . . . . . . . . . . . . . . . . . 14 | A.1. Single Location Domains . . . . . . . . . . . . . . . . . 13 | |||
| A.2. Bulk Mailing Domains . . . . . . . . . . . . . . . . . . . 14 | A.2. Bulk Mailing Domains . . . . . . . . . . . . . . . . . . . 13 | |||
| A.3. Bulk Mailing Domains with Discardable Mail . . . . . . . . 14 | A.3. Commonly Forged Transactional Messages . . . . . . . . . . 14 | |||
| A.4. Third Party Senders . . . . . . . . . . . . . . . . . . . 15 | A.4. Third Party Senders . . . . . . . . . . . . . . . . . . . 14 | |||
| Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 15 | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 14 | |||
| Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 15 | Appendix C. Changes in draft-otis-dkim-adsp-00 . . . . . . . . . 14 | |||
| C.1. Changes since -ietf-dkim-02 . . . . . . . . . . . . . . . 15 | Appendix D. Changes in draft-otis-dkim-adsp-01 . . . . . . . . . 15 | |||
| C.2. Changes since -ietf-dkim-ssp-01 . . . . . . . . . . . . . 16 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| C.3. Changes since -ietf-dkim-ssp-00 . . . . . . . . . . . . . 17 | Intellectual Property and Copyright Statements . . . . . . . . . . 16 | |||
| C.4. Changes since -allman-ssp-02 . . . . . . . . . . . . . . . 17 | ||||
| C.5. Changes since -allman-ssp-01 . . . . . . . . . . . . . . . 18 | ||||
| C.6. Changes since -allman-ssp-00 . . . . . . . . . . . . . . . 18 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
| Intellectual Property and Copyright Statements . . . . . . . . . . 20 | ||||
| 1. Introduction | 1. Introduction | |||
| DomainKeys Identified Mail (DKIM) defines a mechanism by which email | DomainKeys Identified Mail (DKIM) defines a mechanism by which email | |||
| messages can be cryptographically signed, permitting a signing domain | messages can be cryptographically signed, permitting a Key Domain to | |||
| to claim responsibility for the introduction of a message into the | claim responsibility for the introduction of a message into the mail | |||
| mail stream. Message recipients can verify the signature by querying | stream. Receiving hosts can verify the signature by querying the Key | |||
| the signer's domain directly to retrieve the appropriate public key, | Domain to retrieve the appropriate public key, and thereby confirm | |||
| and thereby confirm that the message was attested to by a party in | that the message was attested to by a party in possession of the | |||
| possession of the private key for the signing domain. | private key and in control of a portion of the Key Domain. | |||
| However, the legacy of the Internet is such that not all messages | However, the legacy of the Internet is such that not all messages | |||
| will be signed, and the absence of a signature on a message is not an | will be signed, and the absence of a signature on a message is not an | |||
| a priori indication of forgery. In fact, during early phases of | a priori indication of forgery. In fact, during early phases of | |||
| deployment it is very likely that most messages will remain unsigned. | deployment it is likely that most messages will remain unsigned. | |||
| However, some domains might decide to sign all of their outgoing | However, some domains might decide to sign all of their outgoing | |||
| mail, for example, to protect their brand name. It is desirable for | mail, for example, to better protect their brand name. It is | |||
| such domains to be able to advertise that fact to other hosts. This | desirable such domains be able to advertise that fact to other hosts. | |||
| is the topic of Author Signing Practices (ASP). | This is the premise of Author Domain Signing Practices (ADSP). | |||
| Hosts implementing this specification can inquire what Author Signing | Hosts implementing this specification can inquire what Author Domain | |||
| Practices a domain advertises. This inquiry is called an Author | Signing Practices an Author Domain advertises. This inquiry is | |||
| Signing Practices check. | called an Author Domain Signing Practices discovery. | |||
| The detailed requirements for Author Signing Practices are given in | The detailed requirements for Author Domain Signing Practices are | |||
| [RFC5016]. This document refers extensively to [RFC4871] and assumes | given in [RFC5016]. This document refers extensively to [RFC4871] | |||
| the reader is familiar with it. | and assumes the reader is familiar with it. | |||
| Requirements Notation: The key words "MUST", "MUST NOT", "REQUIRED", | Requirements Notation: The key words "MUST", "MUST NOT", "REQUIRED", | |||
| "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", | "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | "MAY", and "OPTIONAL" in this document are to be interpreted as | |||
| described in [RFC2119] | described in [RFC2119] | |||
| 2. Language and Terminology | 2. Language and Terminology | |||
| 2.1. Terms Imported from DKIM Signatures Specification | 2.1. Terms Imported from DKIM Signatures Specification | |||
| Some terminology used herein is derived directly from [RFC4871]. In | Some terminology used herein is derived directly from [RFC4871]. In | |||
| several cases, references in that document to Sender have been | several cases, references in that document to Sender have been | |||
| changed to Author here, to emphasize the relationship to the Author | changed to Author here, to emphasize the relationship to the Author | |||
| address(es) in the From: header field described in [RFC2822]. | address(es) in the From: header field described in [RFC2822]. | |||
| Briefly, | Briefly, | |||
| o A "Signer" is the agent that signs a message, as defined in | ||||
| section 2.1 of [RFC4871]. | ||||
| o A "Selector" specifies which of the keys published by a signing | ||||
| domain is to be queried, as defined in section 3.1 of [RFC4871]. | ||||
| o A "Local-part" is the part of an address preceding the @ sign, as | o A "Local-part" is the part of an address preceding the @ sign, as | |||
| defined in [RFC2822] and used in [RFC4871]. | defined in [RFC2822] and used in [RFC4871]. | |||
| 2.2. Valid Signature | 2.2. Valid Signature | |||
| A "Valid Signature" is any signature on a message which correctly | A "Valid Signature" is any message signature which correctly verifies | |||
| verifies using the procedure described in section 6.1 of [RFC4871]. | using procedures described in section 6.1 of [RFC4871]. | |||
| 2.3. Author Address | ||||
| An "Author Address" is an email address in the From header field of a | 2.3. Key Domain | |||
| message [RFC2822]. If the From header field contains multiple | ||||
| addresses, the message has multiple Author Addresses. | ||||
| 2.4. Author Domain | The "Key Domain" is the domain listed in the "d=" tag of a Valid | |||
| Signature. | ||||
| An "Author Domain" is everything to the right of the "@" in an Author | 2.4. Author Key Domain | |||
| Address (excluding the "@" itself). | ||||
| 2.5. Alleged Author | The "Author Key Domain" is the domain listed in the "d=" tag of a | |||
| Valid Signature that is at or above the Author Domain. The Author | ||||
| Key Domain must match all of its domain components with that of the | ||||
| Author Domain. When a referenced Key contains a "t=s" tag and value, | ||||
| the Author Key Domain will match with the entire Author Domain. ADSP | ||||
| does not require the "i=" tag to match with any local-parts, and can | ||||
| include subdomains of the Author Domain. | ||||
| An "Alleged Author" is an Author Address of a message; it is | 2.5. Author Address | |||
| "alleged" because it has not yet been verified. | ||||
| 2.6. Author Signing Practices | An "Author Address" is an email address in the From header field of a | |||
| message [RFC2822]. If the From header field contains multiple | ||||
| addresses, the message has multiple Author Addresses. | ||||
| "Author Signing Practices" (or just "practices") consist of a | 2.6. Author Domain | |||
| machine-readable record published by the domain of an Alleged Author | ||||
| which includes statements about the domain's practices with respect | ||||
| to mail it sends with its domain in the From: line. | ||||
| 2.7. Author Signature | An "Author Domain" is determined by the entire right-hand-side of the | |||
| Author Address (the portion that is to the right of the "@", | ||||
| excluding the "@" itself). | ||||
| An "Author Signature" is any Valid Signature where the identity of | 2.7. Author Domain Signing Practices | |||
| the user or agent on behalf of which the message is signed (listed in | ||||
| the ""i="" tag or its default value from the ""d="" tag) matches an | ||||
| Author Address in the message. When the identity of the user or | ||||
| agent includes a Local-part, the identities match if the Local-parts | ||||
| match and the domains match. Otherwise, the identities match if the | ||||
| domains match. | ||||
| For example, if a message has a Valid Signature, with the DKIM- | "Author Domain Signing Practices" (or just "practices") consist of a | |||
| Signature field containing "i=a@domain.example", then domain.example | machine-readable record published at the "_adsp." subdomain of the | |||
| is asserting that it takes responsibility for the message. If the | Author Domain. The ADSP record includes statements about the | |||
| message's From: field contains the address "b@domain.example" and an | outgoing mail practices for messages containing the Author Domain. | |||
| ASP query produces a "dkim=all" or "dkim=discardable" result, that | ||||
| would mean that the message does not have a valid Author Signature. | ||||
| Even though the message is signed by the same domain, its failure to | ||||
| satisfy ASP could be problematic. | ||||
| 3. Operation Overview | 3. Operation Overview | |||
| Domain owners can publish Author Signing Practices via a query | Domain owners can publish Author Domain Signing Practices via a | |||
| mechanism such as the Domain Name System; specific details are given | distribution service, such as the Domain Name System; specific | |||
| in Section 4.1. | details are given in Section 4.1. | |||
| Hosts can look up the Author Signing Practices of the domain(s) | Hosts can obtain Author Domain Signing Practices of the domain(s) | |||
| specified by the Author Address(es) as described in Section 4.2.2. | specified by the Author Domain as described in Section 4.2.2. If a | |||
| If a message has multiple Author Addresses the ASP lookups SHOULD be | message has multiple Author Addresses, ADSP discoveries SHOULD be | |||
| performed independently on each address. This standard does not | performed independently. This standard will not cover the | |||
| address the process a host might use to combine the lookup results. | consolidation of combined ADSP results. | |||
| 3.1. ASP Usage | 3.1. ADSP Usage | |||
| Depending on the Author Domain(s) and the signatures in a message, a | A receiving host might obtain varying amounts of useful information | |||
| recipient gets varying amounts of useful information from each ASP | through ADSP transactions. | |||
| lookup. | ||||
| o If a message has no Valid Signature, the ASP result is directly | o If a message has no Valid Signature, ADSP results at the Author | |||
| relevant to the message. | Domain are directly relevant to the message. | |||
| o If a message has a Valid Signature from an Author Domain, ASP | o If a message has a Valid Signature from an Author Key Domain, ADSP | |||
| provides no benefit relative to that domain since the message is | provides no benefit since the message is compliant with any | |||
| already known to be compliant with any possible ASP for that | possible ADSP assertion. | |||
| domain. | ||||
| o If a message has a Valid Signature from a domain other than an | o If a message has a Valid Signature not at an Author Key Domain, | |||
| Author Domain, the receiver can use both the Signature and the ASP | the receiver can use both the Key Domain and ADSP results in its | |||
| result in its evaluation of the message. | evaluation of the message. | |||
| 3.2. ASP Results | 3.2. ADSP Results | |||
| An Author Signing Practices lookup for an Author Address produces one | Author Domain Signing Practices discovery at an Author Domain | |||
| of four possible results: | provides four possible results: | |||
| o Messages from this domain might or might not have an author | o Messages containing the Author Domain may not have an Author Key | |||
| signature. This is the default if the domain exists in the DNS | Domain signature. | |||
| but no record is found. | ||||
| o All messages from this domain are signed. | o All messages containing the Author Domain are initially signed by | |||
| an Author Key Domain. | ||||
| o All messages from this domain are signed and discardable. | o All messages containing the Author Domain not signed by an Author | |||
| Key Domain are to be dismissed. | ||||
| o The domain does not exist. | o The Author Domain can not support SMTP. | |||
| 4. Detailed Description | 4. Detailed Description | |||
| 4.1. DNS Representation | 4.1. DNS Representation | |||
| Author Signing Practices records are published using the DNS TXT | Author Signing Practices records are published using the DNS TXT | |||
| resource record type. | resource record type. | |||
| NON-NORMATIVE DISCUSSION [to be removed before publication]: There | NON-NORMATIVE DISCUSSION [to be removed before publication]: There | |||
| has been considerable discussion on the DKIM WG mailing list | has been considerable discussion on the DKIM WG mailing list | |||
| regarding the relative advantages of TXT and a new resource record | regarding the relative advantages of TXT and a new resource record | |||
| (RR) type. Read the archive for details. | (RR) type. Read the archive for details. | |||
| The RDATA for ASP resource records is textual in format, with | The RDATA for ADSP resource records is textual in format, with | |||
| specific syntax and semantics relating to their role in describing | specific syntax and semantics relating to their role in describing | |||
| Author Signing Practices. The "Tag=Value List" syntax described in | Author Domain Signing Practices. The "Tag=Value List" syntax | |||
| section 3.2 of [RFC4871] is used. Records not in compliance with | described in section 3.2 of [RFC4871] is used. Records not in | |||
| that syntax or the syntax of individual tags described in Section 4.3 | compliance with that syntax or the syntax of individual tags | |||
| MUST be ignored (considered equivalent to a NODATA result) for | described in Section 4.3 MUST be ignored, although they MAY cause the | |||
| purposes of ASP, although they MAY cause the logging of warning | logging of warning messages via an appropriate system logging | |||
| messages via an appropriate system logging mechanism. If the RDATA | mechanism. If the RDATA contains multiple character strings, the | |||
| contains multiple character strings, the strings are logically | strings are to be logically concatenated with no delimiters placed | |||
| concatenated with no delimiters between the strings. | between the strings. | |||
| The ASP record for a domain is published at a location in the | ||||
| domain's DNS hierarchy prefixed by _asp._domainkey.; e.g., the ASP | ||||
| record for example.com would be a TXT record that is published at | ||||
| "_asp._domainkey.example.com". A domain MUST NOT publish more than | ||||
| one ASP record; the semantics of an ASP lookup that returns multiple | ||||
| ASP records for a single domain are undefined. (Note that | ||||
| example.com and mail.example.com are different domains.) | ||||
| 4.2. Publication of ASP Records | The ADSP record for an Author Domain is published at a "_adsp." | |||
| subdomain directly below the Author Domain; e.g., the ADSP record for | ||||
| "example.com" would be a TXT record that is published at | ||||
| "_adsp.example.com". A domain MUST NOT publish more than one ADSP | ||||
| record; the semantics of an ADSP transaction returning multiple ADSP | ||||
| records for a single domain are undefined. (Note that "example.com" | ||||
| and "mail.example.com" are different domains.) | ||||
| Author Signing Practices are intended to apply to all mail sent from | 4.2. Publication of ADSP Records | |||
| the domain of an Alleged Author. In order to ensure that ASP applies | ||||
| to any hosts within that domain (e.g., www.example.com, | ||||
| ftp.example.com.) the ASP lookup algorithm looks up one level in the | ||||
| domain tree. For example, mail signed by www.example.com could be | ||||
| covered by the ASP record for example.com. This avoids the need to | ||||
| include an ASP record for every name within a given domain. | ||||
| Normally, a domain expressing Author Signing Practices will want to | Author Domain Signing Practices are intended to apply to all mail | |||
| do so for both itself and all of its "descendants" (child domains at | containing the Author Domain. As an optional defensive strategy | |||
| all lower levels). Domains wishing to do so MUST publish ASP records | against subdomain spoofing, ADSP records could also be placed at | |||
| for the domain itself and any subdomains. | domains that might appear to support SMTP. | |||
| Wildcards within a domain publishing ASP records pose a particular | Wildcards within a domain publishing ADSP records will not pose a | |||
| problem. This is discussed in more detail in Section 6.3. | problem. This is discussed in more detail in Section 6.3. | |||
| 4.2.1. Record Syntax | 4.2.1. Record Syntax | |||
| ASP records use the "tag=value" syntax described in section 3.2 of | ADSP records use the "tag=value" syntax described in section 3.2 of | |||
| [RFC4871]. | [RFC4871]. | |||
| Tags used in ASP records are described below. Unrecognized tags MUST | Tags used in ADSP records are described below. Unrecognized tags | |||
| be ignored. In the ABNF below, the WSP token is imported from | MUST be ignored. In the ABNF below, the WSP token is imported from | |||
| [RFC2822]. The ALPHA and DIGIT tokens are imported from [RFC5234]. | [RFC2822]. The ALPHA and DIGIT tokens are imported from [RFC5234]. | |||
| dkim= Outbound signing practices for the domain (plain-text; | dkim= practices (plain-text; REQUIRED). Possible values are as | |||
| REQUIRED). Possible values are as follows: | follows: | |||
| unknown The domain might sign some or all email. | OPEN (Default) The Author Domain permits unsigned outbound mail. | |||
| all All mail from the domain is signed with an Author Signature. | CLOSED All mail containing the Author Domain is initially signed | |||
| by an Author Key Domain. | ||||
| discardable All mail from the domain is signed with an Author | LOCKED All mail containing the Author Domain is signed by an | |||
| Signature. Furthermore, if a message arrives without a valid | Author Key Domain. Furthermore, if a message arrives without a | |||
| Author Signature due to modification in transit, submission via | valid Author Key Domain signature, receiving hosts are | |||
| a path without access to a signing key, or other reason, the | encouraged to dismiss the message. | |||
| domain encourages the recipient(s) to discard it. | ||||
| ABNF: | ABNF: | |||
| asp-dkim-tag = %x64.6b.69.6d *WSP "=" | adsp-dkim-tag = %x64.6b.69.6d *WSP "=" | |||
| *WSP ("unknown" / "all" / "discardable") | *WSP ("OPEN" / "CLOSED" / "LOCKED") | |||
| t= Flags, represented as a colon-separated list of names (plain-text; | t= Flags, represented as a colon-separated list of names (plain-text; | |||
| OPTIONAL, default is that no flags are set). Flag values are: | OPTIONAL, default is that no flags are set). Flag values are: | |||
| s The signing practices apply only to the named domain, and not | s The practices are not to be applied to subdomains of the Author | |||
| to subdomains. | Domain. This information might assist receiving hosts to | |||
| better classify subdomains lacking MX or ADSP, but that have A | ||||
| records during an MX mandate transitional phase. | ||||
| ABNF: | ABNF: | |||
| asp-t-tag = %x74 *WSP "=" *WSP { asp-t-tag-flag | adsp-t-tag = %x74 *WSP "=" | |||
| 0*( *WSP ":" *WSP asp-t-tag-flag ) | *WSP adsp-t-tag-flag 0*( *WSP ":" *WSP adsp-t-tag-flag ) | |||
| asp-t-tag-flag = "s" / hyphenated-word | ||||
| ; for future extension | adsp-t-tag-flag = "s" / hyphenated-word ; for future extension | |||
| hyphenated-word = ALPHA [ *(ALPHA / DIGIT / "-") | ||||
| (ALPHA / DIGIT) ] | hyphenated-word = ALPHA [ *(ALPHA / DIGIT / "-") (ALPHA / DIGIT) ] | |||
| Unrecognized flags MUST be ignored. | Unrecognized flags MUST be ignored. | |||
| 4.2.2. Author Signing Practices Lookup Procedure | 4.2.2. Author Signing Practices Discovery Procedure | |||
| Hosts doing an ASP lookup MUST produce a result that is semantically | Hosts discovering an ADSP record SHOULD produce a result semantically | |||
| equivalent to applying the following steps in the order listed below. | equivalent to applying the following steps in the order listed below. | |||
| In practice, several of these steps can be performed in parallel in | In practice, several of these steps can be performed in parallel to | |||
| order to improve performance. However, implementations SHOULD avoid | improve performance. However, implementations SHOULD avoid | |||
| doing unnecessary DNS lookups. For the purposes of this section a | unnecessary DNS transactions. For the purposes of this section a | |||
| "valid ASP record" is one that is both syntactically and semantically | "valid ADSP record" is one that is both syntactically and | |||
| correct; in particular, it matches the ABNF for a "tag-list" and | semantically correct; in particular, it matches the ABNF for a | |||
| includes a defined "dkim=" tag. | "tag-list" and includes a defined "dkim=" tag. | |||
| 1. _Fetch Named ASP Record._ The host MUST query DNS for a TXT | 1. _Verify Domain Exists._ The host SHOULD perform a DNS query for | |||
| record corresponding to the Author Domain prefixed by | an MX record at the Author Domain (with no prefix). If a non- | |||
| "_asp._domainkey." (note the trailing dot). If the result of | existent domain error is returned, the discovery algorithm MUST | |||
| this query is a "NOERROR" response with an answer which is a | terminate with an error indicating SMTP is not supported by the | |||
| valid ASP record, use that record; otherwise, continue to the | Author Domain. | |||
| next step. | ||||
| 2. _Verify Domain Exists._ The host MUST perform a DNS query for a | NON-NORMATIVE DISCUSSION: To better protect domains not | |||
| record corresponding to the Author Domain (with no prefix). The | supporting SMTP, an initial query for an MX record is a | |||
| type of the query can be of any type, since this step is only to | reasonable choice since this record is predominately published | |||
| determine if the domain itself exists in DNS. This query MAY be | by domains supporting SMTP and is more readily cached than a | |||
| done in parallel with the query made in step 2. If the result of | negative result. Whenever SMTP mandates MX records to support | |||
| this query is an "NXDOMAIN" error, the algorithm MUST terminate | public exchanges, then not obtaining an MX record will | |||
| with an appropriate error. | terminate the discovery algorithm with an appropriate error. | |||
| NON-NORMATIVE DISCUSSION: Any resource record type could be | 2. _Fetch ADSP Record._ The host SHOULD query DNS for a TXT record | |||
| used for this query since the existence of a resource record | corresponding to the Author Domain prefixed by "_adsp." (note the | |||
| of any type will prevent an "NXDOMAIN" error. MX is a | trailing dot). If a valid ADSP record is obtained, use that | |||
| reasonable choice for this purpose is because this record type | record; otherwise, continue to the next step. | |||
| is thought to be the most common for likely domains, and will | ||||
| therefore result in a result which can be more readily cached | ||||
| than a negative result. | ||||
| 3. _Try Parent Domain._ The host MUST query DNS for a TXT record for | 3. _Verify Support of SMTP._ When an MX record has not been found at | |||
| the immediate parent domain, prefixed with "_asp._domainkey." If | the Author Domain, the host SHOULD query DNS for an A record at | |||
| the result of this query is anything other than a "NOERROR" | the Author Domain. When no A records exist at this location, the | |||
| response with a valid ASP record, the algorithm terminates with a | discovery algorithm terminates with a result indicating SMTP is | |||
| result indicating that no ASP record was present. If the ASP "t" | not supported by the Author Domain. | |||
| tag exists in the response and any of the flags is "s" | ||||
| (indicating it does not apply to a subdomain), the algorithm also | ||||
| terminates without finding an ASP record. Otherwise, use that | ||||
| record. | ||||
| If any of the queries involved in the Author Signing Practices Check | NON-NORMATIVE DISCUSSION: Whenever SMTP mandates MX records to | |||
| result in a "SERVFAIL" error response, the algorithm terminates | support public exchanges, subsequent checks for A records | |||
| without returning a result; possible actions include queuing the | should not be made, since the discovery process would conclude | |||
| message or returning an SMTP error indicating a temporary failure. | at the first step. | |||
| If any of the DNS transactions involved in Author Signing Practices | ||||
| discovery result in a temporary error condition, the algorithm | ||||
| terminates without returning a result; possible actions include | ||||
| queuing the message or returning an SMTP error indicating a temporary | ||||
| failure. | ||||
| NOTE: Within a DNS transaction, as defined by [RFC1034] section | ||||
| 5.2.2 and [RFC4034] section 3, when a CNAME is returned, the alias | ||||
| name is to be processed as if it were the initial name. [RFC2181] | ||||
| section 10.3 makes an exception for Exchange host names returned | ||||
| by MX records. An Exchange host name must not return a CNAME. | ||||
| 5. IANA Considerations | 5. IANA Considerations | |||
| ASP introduces some new namespaces that have been registered with | ADSP introduces some new namespaces that have been registered with | |||
| IANA. In all cases, new values are assigned only for values that | IANA. In all cases, new values are assigned only for values that | |||
| have been documented in a published RFC that has IETF Consensus | have been documented in a published RFC that has IETF Consensus | |||
| [RFC2434]. | [RFC2434]. | |||
| INFORMATIVE NOTE [ to be removed before publication ]: RFC 4871 | INFORMATIVE NOTE [to be removed before publication]: Per the | |||
| defines a selector as a sub-domain, importing the term from RFC 2822. | [RFC2822] definition, a domain must start with a letter or digit. | |||
| A sub-domain starts with a letter or digit, hence names such as _asp | Hence names such as "_adsp." that start with an underscore cannot | |||
| that start with an underscore cannot collide with valid selectors. | collide with host names and domains used by [RFC2821] and [RFC2822]. | |||
| 5.1. ASP Specification Tag Registry | 5.1. ADSP Specification Tag Registry | |||
| An ASP record provides for a list of specification tags. IANA has | An ADSP record provides for a list of specification tags. IANA has | |||
| established the ASP Specification Tag Registry for specification tags | established the ADSP Specification Tag Registry for specification | |||
| that can be used in ASP fields. | tags that can be used in ADSP fields. | |||
| The initial entries in the registry comprise: | The initial entries in the registry comprise: | |||
| +------+-----------------+ | +------+-----------------+ | |||
| | TYPE | REFERENCE | | | TYPE | REFERENCE | | |||
| +------+-----------------+ | +------+-----------------+ | |||
| | dkim | (this document) | | | dkim | (this document) | | |||
| | t | (this document) | | | t | (this document) | | |||
| +------+-----------------+ | +------+-----------------+ | |||
| ASP Specification Tag Registry Initial Values | ADSP Specification Tag Registry Initial Values | |||
| 5.2. ASP Outbound Signing Practices Registry | 5.2. ADSP Outbound Signing Practices Registry | |||
| The "dkim=" tag spec, defined in Section 4.2.1, provides for a value | The "dkim=" tag spec, defined in Section 4.2.1, provides for a value | |||
| specifying Outbound Signing Practices. IANA has established the ASP | specifying Outbound Signing Practices. IANA has established the ADSP | |||
| Outbound Signing Practices Registry for Outbound Signing Practices. | Outbound Signing Practices Registry for Outbound Signing Practices. | |||
| The initial entries in the registry comprise: | The initial entries in the registry comprise: | |||
| +-------------+-----------------+ | +-----------+-----------------+ | |||
| | TYPE | REFERENCE | | | TYPE | REFERENCE | | |||
| +-------------+-----------------+ | +-----------+-----------------+ | |||
| | unknown | (this document) | | | OPEN | (this document) | | |||
| | all | (this document) | | | CLOSED | (this document) | | |||
| | discardable | (this document) | | | LOCKED | (this document) | | |||
| +-------------+-----------------+ | +-----------+-----------------+ | |||
| ASP Outbound Signing Practices Registry Initial Values | ADSP Outbound Signing Practices Registry Initial Values | |||
| 5.3. ASP Flags Registry | 5.3. ADSP Flags Registry | |||
| The "t=" tag spec, defined in Section 4.2.1, provides for a value | The "t=" tag spec, defined in Section 4.2.1, provides for a value | |||
| specifying Flags. IANA has established the ASP Flags Registry for | specifying Flags. IANA has established the ADSP Flags Registry for | |||
| ASP Flags. | ADSP Flags. | |||
| The initial entries in the registry comprise: | The initial entries in the registry comprise: | |||
| +------+-----------------+ | +------+-----------------+ | |||
| | TYPE | REFERENCE | | | TYPE | REFERENCE | | |||
| +------+-----------------+ | +------+-----------------+ | |||
| | s | (this document) | | | s | (this document) | | |||
| +------+-----------------+ | +------+-----------------+ | |||
| ASP Flags Registry Initial Values | ADSP Flags Registry Initial Values | |||
| 6. Security Considerations | 6. Security Considerations | |||
| Security considerations in the Author Signing Practices are mostly | Security considerations in the Author Domain Signing Practices are | |||
| related to attempts on the part of malicious senders to represent | mostly related to attempts on the part of malicious senders to | |||
| themselves as authors for whom they are not authorized to send mail, | represent themselves as authors for whom they are not authorized to | |||
| often in an attempt to defraud either the recipient or an Alleged | send mail, often in an attempt to defraud recipients of the message. | |||
| Author. | ||||
| Additional security considerations regarding Author Signing Practices | Messages signed by keys having a "g=" tag restricting the range of | |||
| are found in the DKIM threat analysis [RFC4686]. | valid local-parts are likely applied by systems that are beyond the | |||
| direct control of the Author Key Domain. As a result, additional | ||||
| care should be taken when the restricted local-part is not within an | ||||
| Author Address. Acceptance of "g=" keys signing messages on behalf | ||||
| of non-Author Addresses is discouraged. | ||||
| 6.1. ASP Threat Model | Additional security considerations regarding Author Domain Signing | |||
| Practices are found in the DKIM threat analysis [RFC4686]. | ||||
| 6.1. ADSP Threat Model | ||||
| Email recipients often have a core set of content authors that they | Email recipients often have a core set of content authors that they | |||
| already trust. Common examples include financial institutions with | already trust. Common examples include financial institutions with | |||
| which they have an existing relationship and Internet web transaction | which they have an existing relationship and Internet web transaction | |||
| sites with which they conduct business. | sites with which they conduct business. | |||
| Email abuse often seeks to exploit the name-recognition that | Email abuse often seeks to exploit the name-recognition that | |||
| recipients will have, for a legitimate email author, by using its | recipients will have, for a legitimate email author, by using its | |||
| domain name in the From: header field. Especially since many popular | domain name in the From: header field. Especially since many popular | |||
| MUAs do not display the author's email address, there is no empirical | MUAs do not display the author's email address, there is no empirical | |||
| evidence of the extent that this particular unauthorized use of a | evidence of the extent that this particular unauthorized use of a | |||
| domain name contributes to recipient deception or that eliminating it | domain name contributes to recipient deception or that eliminating it | |||
| will have significant effect. | will have significant effect. | |||
| However, closing this exploit could facilitate some types of | However, closing this exploit could facilitate some types of | |||
| optimized processing by receive-side message filtering engines, since | optimized processing by receive-side message filtering engines, since | |||
| it could permit them to maintain higher-confidence assertions about | it could permit them to maintain higher-confidence assertions based | |||
| From: header field uses of a domain, when the occurrence is | upon trusted Author Key Domains. | |||
| authorized. | ||||
| Unauthorized uses of domain names occur elsewhere in messages, as do | Unauthorized uses of domain names occur elsewhere in messages, as do | |||
| unauthorized uses of organizations' names. These attacks are outside | unauthorized uses of organizations' names. These attacks are outside | |||
| the scope of this specification. | the scope of this specification. | |||
| ASP does not provide any benefit--nor, indeed, have any effect at | ADSP does not provide any benefit unless receiving host systems act | |||
| all--unless an external system acts upon the verdict, either by | upon ADSP results, either by treating the message differently during | |||
| treating the message differently during the delivery process or by | the delivery process or by showing some indicator to the end | |||
| showing some indicator to the end recipient. Such a system is out of | recipient. Such a system is out of scope for this specification. | |||
| scope for this specification. | ||||
| ASP Checkers perform up to three DNS lookups per Alleged Author | The ADSP discovery algorithm performs up to three DNS transactions | |||
| Domain. Since these lookups are driven by domain names in email | per Author Domain. Since these transactions are driven by domain | |||
| message headers of possibly fraudulent email, legitimate ASP Checkers | names in email message headers of possibly fraudulent email, | |||
| can become participants in traffic multiplication attacks. | receiving hosts attempting to discover ADSP records can become | |||
| participants in traffic multiplication attacks. | ||||
| 6.2. DNS Attacks | 6.2. DNS Attacks | |||
| An attacker might attack the DNS infrastructure in an attempt to | An attack might be waged against DNS infrastructure in an attempt to | |||
| impersonate ASP records, in an attempt to influence a receiver's | disable services dependent upon DNS. Such attacks could be made | |||
| decision on how it will handle mail. However, such an attacker is | worse by receiving hosts employing ADSP discovery. For this reason, | |||
| more likely to attack at a higher level, e.g., redirecting A or MX | SMTP should consider making MX records mandatory for public | |||
| record lookups in order to capture traffic that was legitimately | exchanges. The ADSP discovery process is not expected to impact the | |||
| intended for the target domain. These DNS security issues are | likelihood of an attacker being successful at poisoning local DNS | |||
| addressed by DNSSEC [RFC4033]. | resolvers. In addition, such DNS security issues are addressed by | |||
| DNSSEC [RFC4033]. | ||||
| Because ASP operates within the framework of the legacy e-mail | Because ADSP operates within the framework of the legacy e-mail | |||
| system, the default result in the absence of an ASP record is that | system, the default result in the absence of an ADSP record is for | |||
| the domain does not sign all of its messages. It is therefore | the Author Domain to be considered "OPEN" where not all messages are | |||
| important that the ASP clients distinguish a DNS failure such as | expected to be signed by a Author Key Domain. It is therefore | |||
| important that the ADSP clients distinguish a DNS failure such as | ||||
| "SERVFAIL" from other DNS errors so that appropriate actions can be | "SERVFAIL" from other DNS errors so that appropriate actions can be | |||
| taken. | taken. | |||
| To ensure message reception remains viable for crucial systems when | ||||
| DNS fails, IP addresses of crucial SMTP clients should be white | ||||
| listed to allow ADSP and DKIM to be selectively bypassed during such | ||||
| events. | ||||
| 6.3. DNS Wildcards | 6.3. DNS Wildcards | |||
| Wildcards within a domain publishing ASP records, including but not | Wildcards within a domain, excluding wildcard MX records, that also | |||
| limited to wildcard MX records, pose a particular problem. While | publish ADSP records, do not pose a significant problem. While | |||
| referencing the immediate parent domain allows the discovery of an | referencing SMTP related records will not provide "NXDOMAIN" results, | |||
| ASP record corresponding to an unintended immediate-child subdomain, | either an MX or A record is still obtained as evidence of SMTP | |||
| wildcard records apply at multiple levels. For example, if there is | support. | |||
| a wildcard MX record for "example.com", the domain | ||||
| "foo.bar.example.com" can receive mail through the named mail | ||||
| exchanger. Conversely, the existence of the record makes it | ||||
| impossible to tell whether "foo.bar.example.com" is a legitimate name | ||||
| since a query for that name will not return an "NXDOMAIN" error. For | ||||
| that reason, ASP coverage for subdomains of domains containing a | ||||
| wildcard record is incomplete. | ||||
| NON-NORMATIVE NOTE: Complete ASP coverage of domains containing (or | NON-NORMATIVE NOTE: Complete ADSP coverage for all subdomains of a | |||
| where any parent contains) wildcards generally cannot be provided by | domain remains possible. However, ADSP records must be published at | |||
| standard DNS servers. | every subdomain containing A records, in addition to subdomains | |||
| containing MX records. When SMTP adopts an MX record mandate for | ||||
| public exchanges, ADSP records would be required only at subdomains | ||||
| containing MX records. | ||||
| 7. References | 7. References | |||
| 7.1. References - Normative | 7.1. References - Normative | |||
| [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | ||||
| STD 13, RFC 1034, November 1987. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS | ||||
| Specification", RFC 2181, July 1997. | ||||
| [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", BCP 26, RFC 2434, | IANA Considerations Section in RFCs", BCP 26, RFC 2434, | |||
| October 1998. | October 1998. | |||
| [RFC2821] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, | ||||
| April 2001. | ||||
| [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, | [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, | |||
| April 2001. | April 2001. | |||
| [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| Rose, "DNS Security Introduction and Requirements", | Rose, "DNS Security Introduction and Requirements", | |||
| RFC 4033, March 2005. | RFC 4033, March 2005. | |||
| [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | ||||
| Rose, "Resource Records for the DNS Security Extensions", | ||||
| RFC 4034, March 2005. | ||||
| [RFC4686] Fenton, J., "Analysis of Threats Motivating DomainKeys | [RFC4686] Fenton, J., "Analysis of Threats Motivating DomainKeys | |||
| Identified Mail (DKIM)", RFC 4686, September 2006. | Identified Mail (DKIM)", RFC 4686, September 2006. | |||
| [RFC4871] Allman, E., Callas, J., Delany, M., Libbey, M., Fenton, | [RFC4871] Allman, E., Callas, J., Delany, M., Libbey, M., Fenton, | |||
| J., and M. Thomas, "DomainKeys Identified Mail (DKIM) | J., and M. Thomas, "DomainKeys Identified Mail (DKIM) | |||
| Signatures", RFC 4871, May 2007. | Signatures", RFC 4871, May 2007. | |||
| [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
| 7.2. References - Informative | 7.2. References - Informative | |||
| [RFC5016] Thomas, M., "Requirements for a DomainKeys Identified Mail | [RFC5016] Thomas, M., "Requirements for a DomainKeys Identified Mail | |||
| (DKIM) Signing Practices Protocol", RFC 5016, | (DKIM) Signing Practices Protocol", RFC 5016, | |||
| October 2007. | October 2007. | |||
| Appendix A. Usage Examples | Appendix A. Usage Examples | |||
| These examples are intended to illustrate typical uses of ASP. They | These examples are intended to illustrate typical uses of ADSP. They | |||
| are not intended to be exhaustive, nor to apply to every domain's or | are not intended to be exhaustive, nor to apply to every domain's or | |||
| mail system's individual situation. | mail system's individual situation. | |||
| Domain managers are advised to consider the ways that mail processing | Administrators are advised to consider the ways that mail processing | |||
| can modify messages in ways that will invalidate an existing DKIM | can modify messages in a manner that will invalidate existing DKIM | |||
| signature, such as mailing lists, courtesy forwarders, and other | signatures, such as mailing lists, courtesy forwarders, and other | |||
| paths that could add or modify headers, or modify the message body. | paths that could add or modify headers, or modify the message body. | |||
| In that case, if the modifications invalidate the DKIM signature, | In that case, if these modifications invalidate DKIM signatures, | |||
| recipient hosts will consider the mail not to have an Author | receiving hosts will consider the mail not to have an Author Key | |||
| Signature, even though the signature was present when the mail was | Domain signature, even though a Valid Signature was present when the | |||
| originally sent. | mail was originally sent. | |||
| A.1. Single Location Domains | A.1. Single Location Domains | |||
| A common mail system configuration handles all of a domain's users' | A common mail system configuration handles all of a domain's users' | |||
| incoming and outgoing mail through a single MTA or group of MTAs. In | incoming and outgoing mail through a single MTA or group of MTAs. In | |||
| that case, the MTA(s) can be configured to sign outgoing mail with an | that case, the MTA(s) can be configured to sign outgoing mail with an | |||
| Author Signature. | Author Key Domain signature. | |||
| In this situation it might be appropriate to publish an ASP record | In this situation it might be appropriate to publish a "CLOSED" ADSP | |||
| for the domain containing "all", depending on whether the users also | record for the Author Domain, depending on whether users also send | |||
| send mail through other paths that do not apply an Author Signature. | mail through other paths that do not apply an Author Key Domain | |||
| Such paths could include MTAs at hotels or hotspot networks used by | signature. Such paths could include MTAs at hotels or hotspot | |||
| travelling users, or web sites that provide "mail an article" | networks used by travelling users, or web sites that provide "mail an | |||
| features. | article" features. | |||
| A.2. Bulk Mailing Domains | A.2. Bulk Mailing Domains | |||
| Another common configuration uses a domain solely for bulk or | Another common configuration uses a domain solely for bulk or | |||
| broadcast mail, with no individual human users, again typically | broadcast mail, with no individual human users, again typically | |||
| sending all the mail through a single MTA or group of MTAs that can | sending all the mail through a single MTA or group of MTAs that can | |||
| apply an Author Signature. In this case, the domain's management can | apply an Author Key Domain signature. In this case, before | |||
| be confident that all of its outgoing mail will be sent through the | publishing a "CLOSED" ADSP record, the domain's management should be | |||
| signing MTA. Lacking individual users, the domain is unlikely to | confident that all of its outgoing mail will be sent through signing | |||
| MTAs. Lacking individual users, the domain is unlikely to | ||||
| participate in mailing lists, but could still send mail through other | participate in mailing lists, but could still send mail through other | |||
| paths that might invalidate signatures. | paths that might invalidate signatures. | |||
| Domain owners often use specialist mailing providers to send their | Domain owners also often use specialist mailing providers to send | |||
| bulk mail. In that case, the mailing provider needs access to a | their bulk mail. In that case, the mailing provider needs access to | |||
| suitable signing key in order to apply an Author Signature. One | a suitable signing key in order to apply an Author Key Domain | |||
| possible route would be for the domain owner to generate the key and | signature. One possible route would be for the Author Key Domain | |||
| give it to the mailing provider. Another would be for the domain to | owner to generate the key and give it to the mailing provider. | |||
| delegate a subdomain to the mailing provider, for example, | Another would be for the Author Key Domain to delegate a subdomain | |||
| bigbank.example might delegate email.bigbank.example to such a | below the "_domainkey." label to the mailing provider. For example, | |||
| provider. In that case, the provider can generate the keys and DKIM | "bigbank.example" might delegate "esp-00._domainkey.bigbank.example" | |||
| DNS records itself and use the subdomain in the Author address in the | to such a provider. In that case, the provider could generate keys | |||
| mail. | and DKIM DNS records itself and provide Author Key Domain signatures. | |||
| A.3. Bulk Mailing Domains with Discardable Mail | A.3. Commonly Forged Transactional Messages | |||
| In some cases, a domain might sign all its outgoing mail with an | In some cases, a domain might sign all its outgoing mail with an | |||
| Author Signature, but prefer that recipient systems discard mail | Author Key Domain signature, but prefers that receiving host systems | |||
| without a valid Author Signature to avoid confusion from mail sent | dismiss mail without a valid Author Key Domain signature to avoid | |||
| from sources that do not apply an Author Signature. (This latter | confusion with mail sent from fraudulent sources unable to apply an | |||
| kind of mail is sometimes loosely called "forgeries".) In that case, | Author Key Domain signature. (This latter kind of mail is sometimes | |||
| it might be appropriate to publish an ASP record containing | loosely called "forgeries".) In that case, it might be appropriate | |||
| "discardable". Note that a domain SHOULD NOT publish a "discardable" | to publish a "LOCKED" ADSP record. Note that a domain SHOULD NOT | |||
| record if it wishes to maximize the likelihood that mail from the | publish a "LOCKED" ADSP record when it wishes to maximize the | |||
| domain is delivered, since it could cause some fraction of the mail | likelihood that its mail is delivered, since it could cause some | |||
| the domain sends to be discarded. | fraction of the mail to be discarded. | |||
| As a special case, if a domain sends no mail at all, it can safely | As a special case, if a domain sends no mail at all, it can safely | |||
| publish a "discardable" ASP record, since any mail with an author | publish a "LOCKED" ADSP record, since any mail with an Author Address | |||
| address in the domain is a forgery. | for this domain is a forgery. | |||
| A.4. Third Party Senders | A.4. Third Party Senders | |||
| Another common use case is for a third party to enter into an | Another common use case is for a third party to enter into an | |||
| agreement whereby that third party will send bulk or other mail on | agreement whereby that third party will send bulk or other mail on | |||
| behalf of a designated author domain, using that domain in the | behalf of a designated Author Domain, using that domain in the | |||
| RFC2822 From: or other headers. Due to the many and varied | RFC2822 From: or other headers. Due to the many and varied | |||
| complexities of such agreements, third party signing is not addressed | complexities of such agreements, third party signing is not addressed | |||
| in this specification. | in this specification. | |||
| Appendix B. Acknowledgements | Appendix B. Acknowledgements | |||
| This document greatly benefited from comments by Steve Atkins, Jon | This document was based upon the draft-ietf-dkim-ssp-003. | |||
| Callas, Dave Crocker, JD Falk, Arvel Hathcock, Ellen Siegel, Michael | ||||
| Thomas, and Wietse Venema. | ||||
| Appendix C. Change Log | ||||
| *NOTE TO RFC EDITOR: This section may be removed upon publication of | ||||
| this document as an RFC.* | ||||
| C.1. Changes since -ietf-dkim-02 | ||||
| o Merge in more text from ASP draft. | ||||
| o Phrase actions as host's rather than checker. | ||||
| o Explanatory description of i= matching. | ||||
| o Lookup procedure consistently refers to one ASP record per lookup. | ||||
| o Update security section w/ language from W. Venema | ||||
| o Simplify imports of terms from other RFCs, add Local-part, 4234 -> | ||||
| 5234. | ||||
| o Add usage example appendix. | ||||
| o Add IANA considerations. | ||||
| o Update authors list | ||||
| C.2. Changes since -ietf-dkim-ssp-01 | ||||
| o Reworded introduction for clarity. | ||||
| o Various definition clarifications. | ||||
| o Changed names of practices to unknown, all, and discardable. | ||||
| o Removed normative language mandating use of SSP in particular | ||||
| situations (issue 1538). | ||||
| o Clarified possible confusion over handling of syntax errors. | ||||
| o Removed normative language from Introduction (issue 1538). | ||||
| o Changed "Originator" to "Author" throughout (issue 1529). | ||||
| o Removed all references to Third-Party Signatures (issues 1512, | ||||
| 1521). | ||||
| o Removed all mention of "Suspicious" (issues 1528, 1530). | ||||
| o Removed "t=y" (testing) flag (issue 1540). | ||||
| o Removed "handling" tag (issue 1513). | ||||
| o Broke up the "Sender Signing Practices Check Procedure" into two | ||||
| algorithms: fetching the SSP record and interpretation thereof | ||||
| (issues 1531, 1535; partially addresses issue 1520). | ||||
| Interpretation is now the responsibility of the Evaluator. | ||||
| o Document restructuring for better flow and remove redundancies | ||||
| (some may address issue 1523, but I'm not sure I understand that | ||||
| issue completely; also issues 1532, 1537). | ||||
| o Removed all mention of how this interacts with users, even though | ||||
| it makes parts of the document harder to understand (issue 1526). | ||||
| o Introduced the concepts of "SSP Checker" and "Evaluator". | ||||
| o Multiple author case now handled my separate invocations of SSP | ||||
| checker by Evaluator (issue 1525). | ||||
| o Removed check to avoid querying top-level domains. | ||||
| o Changed ABNF use of whitespace from [FWS] to *WSP (partially | ||||
| addresses issue 1543). | ||||
| C.3. Changes since -ietf-dkim-ssp-00 | ||||
| o Clarified Operation Overview and eliminated use of Legitimate as | ||||
| the counterpart of Suspicious since the words have different | ||||
| meanings. | ||||
| o Improved discussion (courtesy of Arvel Hathcock) of the use of TXT | ||||
| records in DNS vs. a new RR type. | ||||
| o Clarified publication rules for multilevel names. | ||||
| o Better description of overall record syntax, in particular that | ||||
| records with unknown tags are considered syntactically correct. | ||||
| o Clarified Sender Signing Practices Check Procedure, primarily by | ||||
| use of new term Author Domain. | ||||
| o Eliminated section "Third-Party Signatures and Mailing Lists" that | ||||
| is better included in the DKIM overview document. | ||||
| o Added "handling" tag to express alleged sending domain's | ||||
| preference about handling of Suspicious messages. | ||||
| o Clarified handling of SERVFAIL error in SSP check. | ||||
| o Replaced "entity" with "domain", since with the removal of user- | ||||
| granularity SSP, the only entities having sender signing policies | ||||
| are domains. | ||||
| C.4. Changes since -allman-ssp-02 | ||||
| o Removed user-granularity SSP and u= tag. | ||||
| o Replaced DKIMP resource record with a TXT record. | ||||
| o Changed name of the primary tag from "p" to "dkim". | ||||
| o Replaced lookup algorithm with one which traverses upward at most | ||||
| one level. | ||||
| o Added description of records to be published, and effect of | ||||
| wildcard records within the domain, on SSP. | ||||
| C.5. Changes since -allman-ssp-01 | ||||
| o Changed term "Sender Signing Policy" to "Sender Signing | ||||
| Practices". | ||||
| o Changed query methodology to use a separate DNS resource record | ||||
| type, DKIMP. | ||||
| o Changed tag values from SPF-like symbols to words. | ||||
| o User level policies now default to that of the domain if not | ||||
| specified. | ||||
| o Removed the "Compliance" section since we're still not clear on | ||||
| what goes here. | ||||
| o Changed the "parent domain" policy to only search up one level | ||||
| (assumes that subdomains will publish SSP records if appropriate). | ||||
| o Added detailed description of SSP check procedure. | ||||
| C.6. Changes since -allman-ssp-00 | ||||
| From a "diff" perspective, the changes are extensive. Semantically, | ||||
| the changes are: | ||||
| o Added section on "Third-Party Signatures and Mailing Lists" | ||||
| o Added "Compliance" (transferred from -base document). I'm not | ||||
| clear on what needs to be done here. | ||||
| o Extensive restructuring. | ||||
| Authors' Addresses | ||||
| Eric Allman | Appendix C. Changes in draft-otis-dkim-adsp-00 | |||
| Sendmail, Inc. | ||||
| 6475 Christie Ave, Suite 350 | ||||
| Emeryville, CA 94608 | ||||
| Phone: +1 510 594 5501 | o Conditioned Author Signing Practices Discovery Procedure SMTP | |||
| Email: eric+dkim@sendmail.org | verification step to be made only when an MX record had not been | |||
| Jim Fenton | found. | |||
| Cisco Systems, Inc. | ||||
| MS SJ-9/2 | ||||
| 170 W. Tasman Drive | ||||
| San Jose, CA 95134-1706 | ||||
| Phone: +1 408 526 5914 | Appendix D. Changes in draft-otis-dkim-adsp-01 | |||
| Email: fenton@cisco.com | ||||
| Mark Delany | o Modified the Author Signing Practices Discovery Procedure to | |||
| Yahoo! Inc. | better conform with terms in RFC2821. In addition, a note now | |||
| 701 First Avenue | covers the issue of CNAMEs. | |||
| Sunnyvale, CA 94089 | ||||
| Phone: +1 408 349 6831 | Author's Address | |||
| Email: markd+dkim@yahoo-inc.com | ||||
| John Levine | Douglas Otis | |||
| Taughannock Networks | Trend Micro, NSSG | |||
| PO Box 727 | 10101 N. De Anza Blvd | |||
| Trumansburg, NY 14886 | Cupertino, CA 95014 | |||
| USA | ||||
| Phone: +1 831 480 2300 | Phone: +1.408.257-1500 | |||
| Email: standards@taugh.com | Email: doug_otis@trendmicro.com | |||
| URI: http://www.taugh.com | ||||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The IETF Trust (2008). | Copyright (C) The IETF Trust (2008). | |||
| This document is subject to the rights, licenses and restrictions | This document is subject to the rights, licenses and restrictions | |||
| contained in BCP 78, and except as set forth therein, the authors | contained in BCP 78, and except as set forth therein, the authors | |||
| retain all their rights. | retain all their rights. | |||
| This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
| End of changes. 106 change blocks. | ||||
| 529 lines changed or deleted | 364 lines changed or added | |||
This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||