| draft-ietf-dkim-ssp-03.txt | | draft-ietf-dkim-ssp-04.txt | |
| | | | |
| Network Working Group E. Allman | | Network Working Group E. Allman | |
| Internet-Draft Sendmail, Inc. | | Internet-Draft Sendmail, Inc. | |
| Intended status: Standards Track J. Fenton | | Intended status: Standards Track J. Fenton | |
|
| Expires: August 26, 2008 Cisco Systems, Inc. | | Expires: January 3, 2009 Cisco Systems, Inc. | |
| M. Delany | | M. Delany | |
| Yahoo! Inc. | | Yahoo! Inc. | |
| J. Levine | | J. Levine | |
| Taughannock Networks | | Taughannock Networks | |
|
| February 23, 2008 | | July 2, 2008 | |
| | | | |
|
| DKIM Author Signing Practices (ASP) | | DKIM Author Domain Signing Practices (ADSP) | |
| draft-ietf-dkim-ssp-03 | | draft-ietf-dkim-ssp-04 | |
| | | | |
| 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 39 | |
| 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 January 3, 2009. | |
| | | | |
| Copyright Notice | | | |
| | | | |
| Copyright (C) The IETF Trust (2008). | | | |
| | | | |
| Abstract | | Abstract | |
| | | | |
| DomainKeys Identified Mail (DKIM) defines a domain-level | | DomainKeys Identified Mail (DKIM) defines a domain-level | |
|
| authentication framework for email using public-key cryptography and | | authentication framework for email to permit verification of the | |
| key server technology to permit verification of the source and | | source and contents of messages. This document specifies an adjunct | |
| contents of messages by either Mail Transport Agents (MTAs) or Mail | | mechanism to aid in assessing messages that do not contain a DKIM | |
| User Agents (MUAs). The primary DKIM protocol is described in | | signature for the domain used in the author's address. It defines a | |
| [RFC4871]. This document describes the records that authors' domains | | record that can advertise whether they sign their outgoing mail, and | |
| can use to advertise their practices for signing their outgoing mail, | | how other hosts can access those records. | |
| and how other hosts can access those records. | | | |
| | | | |
| 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. Author Address . . . . . . . . . . . . . . . . . . . . . . 4 | |
| 2.4. Author Domain . . . . . . . . . . . . . . . . . . . . . . 5 | | 2.4. Author Domain . . . . . . . . . . . . . . . . . . . . . . 4 | |
| 2.5. Alleged Author . . . . . . . . . . . . . . . . . . . . . . 5 | | 2.5. Alleged Author . . . . . . . . . . . . . . . . . . . . . . 4 | |
| 2.6. Author Signing Practices . . . . . . . . . . . . . . . . . 5 | | 2.6. Author Domain Signing Practices . . . . . . . . . . . . . 4 | |
| 2.7. Author Signature . . . . . . . . . . . . . . . . . . . . . 5 | | 2.7. Author Signature . . . . . . . . . . . . . . . . . . . . . 4 | |
| 3. Operation Overview . . . . . . . . . . . . . . . . . . . . . . 6 | | 3. Operation Overview . . . . . . . . . . . . . . . . . . . . . . 5 | |
| 3.1. ASP Usage . . . . . . . . . . . . . . . . . . . . . . . . 6 | | 3.1. ADSP Applicability . . . . . . . . . . . . . . . . . . . . 5 | |
| 3.2. ASP Results . . . . . . . . . . . . . . . . . . . . . . . 6 | | 3.2. ADSP Usage . . . . . . . . . . . . . . . . . . . . . . . . 5 | |
| 4. Detailed Description . . . . . . . . . . . . . . . . . . . . . 7 | | 3.3. ADSP Results . . . . . . . . . . . . . . . . . . . . . . . 6 | |
| 4.1. DNS Representation . . . . . . . . . . . . . . . . . . . . 7 | | 4. Detailed Description . . . . . . . . . . . . . . . . . . . . . 6 | |
| 4.2. Publication of ASP Records . . . . . . . . . . . . . . . . 7 | | 4.1. DNS Representation . . . . . . . . . . . . . . . . . . . . 6 | |
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | | 4.2. Publication of ADSP Records . . . . . . . . . . . . . . . 6 | |
| 5.1. ASP Specification Tag Registry . . . . . . . . . . . . . . 10 | | 4.3. ADSP Lookup Procedure . . . . . . . . . . . . . . . . . . 7 | |
| 5.2. ASP Outbound Signing Practices Registry . . . . . . . . . 10 | | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |
| 5.3. ASP Flags Registry . . . . . . . . . . . . . . . . . . . . 11 | | 5.1. ADSP Specification Tag Registry . . . . . . . . . . . . . 8 | |
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | | 5.2. ADSP Outbound Signing Practices Registry . . . . . . . . . 9 | |
| 6.1. ASP Threat Model . . . . . . . . . . . . . . . . . . . . . 11 | | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |
| 6.2. DNS Attacks . . . . . . . . . . . . . . . . . . . . . . . 12 | | 6.1. ADSP Threat Model . . . . . . . . . . . . . . . . . . . . 9 | |
| 6.3. DNS Wildcards . . . . . . . . . . . . . . . . . . . . . . 12 | | 6.2. DNS Attacks . . . . . . . . . . . . . . . . . . . . . . . 10 | |
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | | 6.3. DNS Wildcards . . . . . . . . . . . . . . . . . . . . . . 10 | |
| 7.1. References - Normative . . . . . . . . . . . . . . . . . . 13 | | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |
| 7.2. References - Informative . . . . . . . . . . . . . . . . . 13 | | 7.1. References - Normative . . . . . . . . . . . . . . . . . . 11 | |
| Appendix A. Usage Examples . . . . . . . . . . . . . . . . . . . 13 | | 7.2. References - Informative . . . . . . . . . . . . . . . . . 11 | |
| A.1. Single Location Domains . . . . . . . . . . . . . . . . . 14 | | Appendix A. Usage Examples . . . . . . . . . . . . . . . . . . . 11 | |
| A.2. Bulk Mailing Domains . . . . . . . . . . . . . . . . . . . 14 | | A.1. Single Location Domains . . . . . . . . . . . . . . . . . 12 | |
| A.3. Bulk Mailing Domains with Discardable Mail . . . . . . . . 14 | | A.2. Bulk Mailing Domains . . . . . . . . . . . . . . . . . . . 12 | |
| A.4. Third Party Senders . . . . . . . . . . . . . . . . . . . 15 | | A.3. Bulk Mailing Domains with Discardable Mail . . . . . . . . 13 | |
| Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 15 | | A.4. Third Party Senders . . . . . . . . . . . . . . . . . . . 13 | |
| Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 15 | | A.5. Non-email Domains . . . . . . . . . . . . . . . . . . . . 13 | |
| C.1. Changes since -ietf-dkim-02 . . . . . . . . . . . . . . . 15 | | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 13 | |
| C.2. Changes since -ietf-dkim-ssp-01 . . . . . . . . . . . . . 16 | | Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 13 | |
| C.3. Changes since -ietf-dkim-ssp-00 . . . . . . . . . . . . . 17 | | C.1. Changes since -ietf-dkim-03 . . . . . . . . . . . . . . . 14 | |
| C.4. Changes since -allman-ssp-02 . . . . . . . . . . . . . . . 17 | | C.2. Changes since -ietf-dkim-02 . . . . . . . . . . . . . . . 14 | |
| C.5. Changes since -allman-ssp-01 . . . . . . . . . . . . . . . 18 | | C.3. Changes since -ietf-dkim-ssp-01 . . . . . . . . . . . . . 15 | |
| C.6. Changes since -allman-ssp-00 . . . . . . . . . . . . . . . 18 | | C.4. Changes since -ietf-dkim-ssp-00 . . . . . . . . . . . . . 16 | |
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18 | | C.5. Changes since -allman-ssp-02 . . . . . . . . . . . . . . . 16 | |
| Intellectual Property and Copyright Statements . . . . . . . . . . 20 | | C.6. Changes since -allman-ssp-01 . . . . . . . . . . . . . . . 17 | |
| | | C.7. Changes since -allman-ssp-00 . . . . . . . . . . . . . . . 17 | |
| | | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 | |
| | | Intellectual Property and Copyright Statements . . . . . . . . . . 19 | |
| | | | |
| 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 signing domain | |
| to claim responsibility for the introduction of a message into the | | to claim responsibility for the introduction of a message into the | |
| mail stream. Message recipients can verify the signature by querying | | mail stream. Message recipients can verify the signature by querying | |
| the signer's domain directly to retrieve the appropriate public key, | | the signer's domain directly to retrieve the appropriate public key, | |
| and thereby confirm that the message was attested to by a party in | | and thereby confirm that the message was attested to by a party in | |
| possession of the private key for the signing domain. | | possession of the private key for the signing 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 very 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 protect their brand names. It is desirable for | |
| such domains to be able to advertise that fact to other hosts. This | | such domains to be able to advertise that fact to other hosts. This | |
|
| is the topic of Author Signing Practices (ASP). | | is the topic of Author Domain Signing Practices (ADSP). | |
| | | | |
| Hosts implementing this specification can inquire what Author Signing | | Hosts implementing this specification can inquire what Author Signing | |
| Practices a domain advertises. This inquiry is called an Author | | Practices a domain advertises. This inquiry is called an Author | |
| Signing Practices check. | | Signing Practices check. | |
| | | | |
|
| The detailed requirements for Author Signing Practices are given in | | The basic requirements for ADSP are given in [RFC5016]. This | |
| [RFC5016]. This document refers extensively to [RFC4871] and assumes | | document refers extensively to [RFC4871] and assumes the reader is | |
| the reader is familiar with it. | | familiar with it. | |
| | | | |
|
| Requirements Notation: The key words "MUST", "MUST NOT", "REQUIRED", | | Requirements Notation: The key words "MUST", "MUST NOT", | |
| "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", | | "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", | |
| "MAY", and "OPTIONAL" in this document are to be interpreted as | | "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be | |
| described in [RFC2119] | | interpreted as 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 | | o A "Signer" is the agent that signs a message, as defined in | |
| section 2.1 of [RFC4871]. | | section 2.1 of [RFC4871]. | |
| | | | |
|
| o A "Selector" specifies which of the keys published by a signing | | o A "Local-part" is the part of an address preceding the @ | |
| domain is to be queried, as defined in section 3.1 of [RFC4871]. | | character, as defined in [RFC2822] and used in [RFC4871]. | |
| | | | |
| o A "Local-part" is the part of an address preceding the @ sign, as | | | |
| 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 signature on a message which correctly | |
| verifies using the procedure described in section 6.1 of [RFC4871]. | | verifies using the procedure described in section 6.1 of [RFC4871]. | |
| | | | |
| 2.3. Author Address | | 2.3. Author Address | |
| | | | |
| An "Author Address" is an email address in the From header field of a | | An "Author Address" is an email address in the From header field of a | |
| message [RFC2822]. If the From header field contains multiple | | message [RFC2822]. If the From header field contains multiple | |
| | | | |
| skipping to change at page 5, line 29 | | skipping to change at page 4, line 26 | |
| 2.4. Author Domain | | 2.4. Author Domain | |
| | | | |
| An "Author Domain" is everything to the right of the "@" in an Author | | An "Author Domain" is everything to the right of the "@" in an Author | |
| Address (excluding the "@" itself). | | Address (excluding the "@" itself). | |
| | | | |
| 2.5. Alleged Author | | 2.5. Alleged Author | |
| | | | |
| An "Alleged Author" is an Author Address of a message; it is | | An "Alleged Author" is an Author Address of a message; it is | |
| "alleged" because it has not yet been verified. | | "alleged" because it has not yet been verified. | |
| | | | |
|
| 2.6. Author Signing Practices | | 2.6. Author Domain Signing Practices | |
| | | | |
|
| "Author Signing Practices" (or just "practices") consist of a | | "Author Domain Signing Practices" (or just "practices") consist of a | |
| machine-readable record published by the domain of an Alleged Author | | machine-readable record published by the domain of an Alleged Author | |
| which includes statements about the domain's practices with respect | | which includes statements about the domain's practices with respect | |
| to mail it sends with its domain in the From: line. | | to mail it sends with its domain in the From: line. | |
| | | | |
| 2.7. Author Signature | | 2.7. Author Signature | |
| | | | |
| An "Author Signature" is any Valid Signature where the identity of | | An "Author Signature" is any Valid Signature where the identity of | |
| the user or agent on behalf of which the message is signed (listed in | | 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 | | 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 | | Author Address in the message. When the identity of the user or | |
| agent includes a Local-part, the identities match if the Local-parts | | agent includes a Local-part, the identities match if the Local-parts | |
|
| match and the domains match. Otherwise, the identities match if the | | are the same string, and the domains are the same string. Otherwise, | |
| domains match. | | the identities match if the domains are the same string. Following | |
| | | [RFC2821], Local-part comparisons are case sensitive, domain | |
| | | comparisons are case insensitive. | |
| | | | |
| For example, if a message has a Valid Signature, with the DKIM- | | For example, if a message has a Valid Signature, with the DKIM- | |
| Signature field containing "i=a@domain.example", then domain.example | | Signature field containing "i=a@domain.example", then domain.example | |
| is asserting that it takes responsibility for the message. If the | | is asserting that it takes responsibility for the message. If the | |
| message's From: field contains the address "b@domain.example" and an | | message's From: field contains the address "b@domain.example" and an | |
|
| ASP query produces a "dkim=all" or "dkim=discardable" result, that | | ADSP query produces a "dkim=all" or "dkim=discardable" result, that | |
| would mean that the message does not have a valid Author Signature. | | 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 | | Even though the message is signed by the same domain, it fails to | |
| satisfy ASP could be problematic. | | satisfy ADSP. | |
| | | | |
| 3. Operation Overview | | 3. Operation Overview | |
| | | | |
|
| Domain owners can publish Author Signing Practices via a query | | Domain owners can publish ADSP information via a query mechanism such | |
| mechanism such as the Domain Name System; specific details are given | | as the Domain Name System; specific details are given in Section 4.1. | |
| in Section 4.1. | | | |
| | | | |
|
| Hosts can look up the Author Signing Practices of the domain(s) | | Hosts can look up the ADSP information of the domain(s) specified by | |
| specified by the Author Address(es) as described in Section 4.2.2. | | the Author Address(es) as described in Section 4.3. If a message has | |
| If a message has multiple Author Addresses the ASP lookups SHOULD be | | multiple Author Addresses the ADSP lookups SHOULD be performed | |
| performed independently on each address. This standard does not | | independently on each address. This standard does not address the | |
| address the process a host might use to combine the lookup results. | | process a host might use to combine the lookup results. | |
| | | | |
|
| 3.1. ASP Usage | | 3.1. ADSP Applicability | |
| | | | |
| | | ADSP as defined in this document is bound to DNS. For this reason, | |
| | | ADSP is applicable only to Author Domains with appropriate DNS | |
| | | records (see Note below). The handling of other Author Domains is | |
| | | outside the scope of this document. However, attackers may use such | |
| | | domain names in a deliberate attempt to sidestep an organization's | |
| | | ADSP policy statements. It is up to the ADSP verifier implementation | |
| | | to return an appropriate error result for Author Domains outside the | |
| | | scope of ADSP. | |
| | | | |
| | | Note: The results from DNS queries that are intended to validate a | |
| | | domain name unavoidably approximate the set of Author Domains that | |
| | | can appear in legitimate email. For example, a DNS A record could | |
| | | belong to a device that does not even have an email | |
| | | implementation. It is up to the verifier to decide what degree of | |
| | | approximation is acceptable. | |
| | | | |
| | | 3.2. ADSP Usage | |
| | | | |
| Depending on the Author Domain(s) and the signatures in a message, a | | Depending on the Author Domain(s) and the signatures in a message, a | |
|
| recipient gets varying amounts of useful information from each ASP | | recipient gets varying amounts of useful information from each ADSP | |
| lookup. | | lookup. | |
| | | | |
|
| o If a message has no Valid Signature, the ASP result is directly | | o If a message has no Valid Signature, the ADSP result is directly | |
| relevant to the message. | | 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 Domain, ADSP | |
| provides no benefit relative to that domain since the message is | | provides no benefit relative to that domain since the message is | |
|
| already known to be compliant with any possible ASP for that | | already known to be compliant with any possible ADSP for that | |
| domain. | | domain. | |
| | | | |
| o If a message has a Valid Signature from a domain other than an | | o If a message has a Valid Signature from a domain other than an | |
|
| Author Domain, the receiver can use both the Signature and the ASP | | Author Domain, the receiver can use both the Signature and the | |
| result in its evaluation of the message. | | ADSP result in its evaluation of the message. | |
| | | | |
|
| 3.2. ASP Results | | 3.3. ADSP Results | |
| | | | |
|
| An Author Signing Practices lookup for an Author Address produces one | | An ADSP lookup for an Author Address produces one of four possible | |
| of four possible results: | | results: | |
| | | | |
| o Messages from this domain might or might not have an author | | o Messages from this domain might or might not have an author | |
| signature. This is the default if the domain exists in the DNS | | signature. This is the default if the domain exists in the DNS | |
| but no record is found. | | but no record is found. | |
| | | | |
| o All messages from this domain are signed. | | o All messages from this domain are signed. | |
| | | | |
| o All messages from this domain are signed and discardable. | | o All messages from this domain are signed and discardable. | |
| | | | |
|
| o The domain does not exist. | | o The domain is not a valid mail domain. | |
| | | | |
| 4. Detailed Description | | 4. Detailed Description | |
| | | | |
| 4.1. DNS Representation | | 4.1. DNS Representation | |
| | | | |
|
| Author Signing Practices records are published using the DNS TXT | | ADSP records are published using the DNS TXT resource record type. | |
| resource record type. | | | |
| | | | |
| NON-NORMATIVE DISCUSSION [to be removed before publication]: There | | | |
| has been considerable discussion on the DKIM WG mailing list | | | |
| regarding the relative advantages of TXT and a new resource record | | | |
| (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 | | ADSP. The "Tag=Value List" syntax described in section 3.2 of | |
| section 3.2 of [RFC4871] is used. Records not in compliance with | | [RFC4871] is used. Records not in compliance with that syntax or the | |
| that syntax or the syntax of individual tags described in Section 4.3 | | syntax of individual tags described in Section 4.3 MUST be ignored | |
| MUST be ignored (considered equivalent to a NODATA result) for | | (considered equivalent to a NODATA result) for purposes of ADSP, | |
| purposes of ASP, although they MAY cause the logging of warning | | although they MAY cause the logging of warning messages via an | |
| messages via an appropriate system logging mechanism. If the RDATA | | appropriate system logging mechanism. If the RDATA contains multiple | |
| contains multiple character strings, the strings are logically | | character strings, the strings are logically concatenated with no | |
| concatenated with no delimiters between the strings. | | delimiters between the strings. | |
| | | | |
|
| The ASP record for a domain is published at a location in the | | The ADSP record for a domain is published at a location in the | |
| domain's DNS hierarchy prefixed by _asp._domainkey.; e.g., the ASP | | domain's DNS hierarchy prefixed by _adsp._domainkey.; e.g., the ADSP | |
| record for example.com would be a TXT record that is published at | | record for example.com would be a TXT record that is published at | |
|
| "_asp._domainkey.example.com". A domain MUST NOT publish more than | | "_adsp._domainkey.example.com". A domain MUST NOT publish more than | |
| one ASP record; the semantics of an ASP lookup that returns multiple | | one ADSP record; the semantics of an ADSP lookup that returns | |
| ASP records for a single domain are undefined. (Note that | | multiple ADSP records for a single domain are undefined. (Note that | |
| example.com and mail.example.com are different domains.) | | example.com and mail.example.com are different domains.) | |
| | | | |
|
| 4.2. Publication of ASP Records | | 4.2. Publication of ADSP Records | |
| | | | |
| Author Signing Practices are intended to apply to all mail sent from | | | |
| 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 | | ADSP is intended to apply to all mail sent using the domain name | |
| do so for both itself and all of its "descendants" (child domains at | | string of an Alleged Author. | |
| all lower levels). Domains wishing to do so MUST publish ASP records | | | |
| for the domain itself and any subdomains. | | | |
| | | | |
|
| Wildcards within a domain publishing ASP records pose a particular | | Wildcards within a domain publishing ADSP records pose a particular | |
| 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 FWS token is imported from | |
| [RFC2822]. The ALPHA and DIGIT tokens are imported from [RFC5234]. | | [RFC4871]. The ALPHA and DIGIT tokens are imported from [RFC5234]. | |
| | | | |
| dkim= Outbound signing practices for the domain (plain-text; | | dkim= Outbound signing practices for the domain (plain-text; | |
| REQUIRED). Possible values are as follows: | | REQUIRED). Possible values are as follows: | |
| | | | |
| unknown The domain might sign some or all email. | | unknown The domain might sign some or all email. | |
| | | | |
|
| all All mail from the domain is signed with an Author Signature. | | all All mail from the domain is signed with an Author | |
| | | Signature. | |
| | | | |
| discardable All mail from the domain is signed with an Author | | discardable All mail from the domain is signed with an Author | |
| Signature. Furthermore, if a message arrives without a valid | | Signature. Furthermore, if a message arrives without a valid | |
| Author Signature due to modification in transit, submission via | | Author Signature due to modification in transit, submission via | |
| a path without access to a signing key, or other reason, the | | a path without access to a signing key, or other reason, the | |
| domain encourages the recipient(s) to discard it. | | domain encourages the recipient(s) to discard it. | |
| | | | |
| ABNF: | | ABNF: | |
|
| | | adsp-dkim-tag = %x64.6b.69.6d *FWS "=" *FWS | |
| | | ("unknown" / "all" / "discardable") | |
| | | | |
|
| asp-dkim-tag = %x64.6b.69.6d *WSP "=" | | 4.3. ADSP Lookup Procedure | |
| *WSP ("unknown" / "all" / "discardable") | | | |
| | | | |
| t= Flags, represented as a colon-separated list of names (plain-text; | | | |
| OPTIONAL, default is that no flags are set). Flag values are: | | | |
| | | | |
| s The signing practices apply only to the named domain, and not | | | |
| to subdomains. | | | |
| | | | |
| ABNF: | | | |
| | | | |
| asp-t-tag = %x74 *WSP "=" *WSP { asp-t-tag-flag | | | |
| 0*( *WSP ":" *WSP asp-t-tag-flag ) | | | |
| asp-t-tag-flag = "s" / hyphenated-word | | | |
| ; for future extension | | | |
| hyphenated-word = ALPHA [ *(ALPHA / DIGIT / "-") | | | |
| (ALPHA / DIGIT) ] | | | |
| | | | |
| Unrecognized flags MUST be ignored. | | | |
| | | | |
| 4.2.2. Author Signing Practices Lookup Procedure | | | |
| | | | |
|
| Hosts doing an ASP lookup MUST produce a result that is semantically | | Hosts doing an ADSP lookup MUST produce a result that is 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, these steps can be performed in parallel in order to | |
| order to improve performance. However, implementations SHOULD avoid | | improve performance. However, implementations SHOULD avoid doing | |
| doing unnecessary DNS lookups. For the purposes of this section a | | unnecessary DNS lookups. | |
| "valid ASP record" is one that is both syntactically and semantically | | | |
| correct; in particular, it matches the ABNF for a "tag-list" and | | | |
| includes a defined "dkim=" tag. | | | |
| | | | |
|
| 1. _Fetch Named ASP Record._ The host MUST query DNS for a TXT | | For the purposes of this section a "valid ADSP record" is one that is | |
| record corresponding to the Author Domain prefixed by | | both syntactically and semantically correct; in particular, it | |
| "_asp._domainkey." (note the trailing dot). If the result of | | matches the ABNF for a "tag-list" and includes a defined "dkim=" tag. | |
| this query is a "NOERROR" response with an answer which is a | | | |
| valid ASP record, use that record; otherwise, continue to the | | | |
| next step. | | | |
| | | | |
|
| 2. _Verify Domain Exists._ The host MUST perform a DNS query for a | | Verify Domain Scope: An ADSP verifier implementation MUST determine | |
| record corresponding to the Author Domain (with no prefix). The | | whether a given Author Domain is within scope for ADSP. Given the | |
| type of the query can be of any type, since this step is only to | | background in Section 3.1 the verifier MUST decide which degree of | |
| determine if the domain itself exists in DNS. This query MAY be | | over-approximation is acceptable. The verifier MUST return an | |
| done in parallel with the query made in step 2. If the result of | | appropriate error result for Author Domains that are outside the | |
| this query is an "NXDOMAIN" error, the algorithm MUST terminate | | scope of ADSP. | |
| with an appropriate error. | | | |
| | | The host MUST perform a DNS query for a record corresponding to | |
| | | the Author Domain (with no prefix). The type of the query can be | |
| | | of any type, since this step is only to determine if the domain | |
| | | itself exists in DNS. This query MAY be done in parallel with the | |
| | | query to fetch the Named ADSP Record. If the result of this query | |
| | | is that the Author domain does not exist in the DNS (often called | |
| | | an "NXDOMAIN" error), the algorithm MUST terminate with an error | |
| | | indicating that the domain is out of scope. | |
| | | | |
| NON-NORMATIVE DISCUSSION: Any resource record type could be | | NON-NORMATIVE DISCUSSION: Any resource record type could be | |
|
| used for this query since the existence of a resource record | | used for this query since the existence of a resource record of | |
| of any type will prevent an "NXDOMAIN" error. MX is a | | any type will prevent an "NXDOMAIN" error. MX is a reasonable | |
| reasonable choice for this purpose is because this record type | | choice for this purpose because this record type is thought to | |
| is thought to be the most common for likely domains, and will | | be the most common for domains used in e-mail, and will | |
| therefore result in a result which can be more readily cached | | therefore produce a result which can be more readily cached | |
| than a negative result. | | than a negative result. | |
| | | | |
|
| 3. _Try Parent Domain._ The host MUST query DNS for a TXT record for | | If the domain does exist, the verifier MAY make more extensive | |
| the immediate parent domain, prefixed with "_asp._domainkey." If | | checks to verify the existence of the domain, such as the ones | |
| the result of this query is anything other than a "NOERROR" | | described in Section 5 of [RFC2821]. If those checks indicate | |
| response with a valid ASP record, the algorithm terminates with a | | that the Author domain does not exist for mail, e.g., the domain | |
| result indicating that no ASP record was present. If the ASP "t" | | has no MX, A, or AAAA record, the verifier SHOULD terminate with | |
| tag exists in the response and any of the flags is "s" | | an error indicating that the domain is out of scope. | |
| (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 | | Fetch Named ADSP Record: The host MUST query DNS for a TXT record | |
| result in a "SERVFAIL" error response, the algorithm terminates | | corresponding to the Author Domain prefixed by "_adsp._domainkey." | |
| without returning a result; possible actions include queuing the | | (note the trailing dot). | |
| message or returning an SMTP error indicating a temporary failure. | | | |
| | | | |
|
| 5. IANA Considerations | | If the result of this query is a "NOERROR" response with an answer | |
| | | which is a valid ADSP record, use that record, and the algorithm | |
| | | terminates. | |
| | | | |
|
| ASP introduces some new namespaces that have been registered with | | If a query results in a "SERVFAIL" error response, the algorithm | |
| IANA. In all cases, new values are assigned only for values that | | terminates without returning a result; possible actions include | |
| have been documented in a published RFC that has IETF Consensus | | queuing the message or returning an SMTP error indicating a | |
| [RFC2434]. | | temporary failure. | |
| | | | |
|
| INFORMATIVE NOTE [ to be removed before publication ]: RFC 4871 | | 5. IANA Considerations | |
| defines a selector as a sub-domain, importing the term from RFC 2822. | | | |
| A sub-domain starts with a letter or digit, hence names such as _asp | | | |
| that start with an underscore cannot collide with valid selectors. | | | |
| | | | |
|
| 5.1. ASP Specification Tag Registry | | ADSP adds the following namespaces to the IANA registry. In all | |
| | | cases, new values are assigned only for values that have been | |
| | | documented in a published RFC that has IETF Consensus [RFC2434]. | |
| | | | |
|
| An ASP record provides for a list of specification tags. IANA has | | 5.1. ADSP Specification Tag Registry | |
| established the ASP Specification Tag Registry for specification tags | | | |
| that can be used in ASP fields. | | | |
| | | | |
|
| The initial entries in the registry comprise: | | An ADSP record provides for a list of specification tags. IANA has | |
| | | established the ADSP Specification Tag Registry for specification | |
| | | tags that can be used in ADSP fields. | |
| | | | |
|
| | | The initial entry in the registry is: | |
| +------+-----------------+ | | +------+-----------------+ | |
| | TYPE | REFERENCE | | | | TYPE | REFERENCE | | |
| +------+-----------------+ | | +------+-----------------+ | |
| | dkim | (this document) | | | | dkim | (this document) | | |
|
| | t | (this document) | | | | |
| +------+-----------------+ | | +------+-----------------+ | |
|
| | | ADSP Specification Tag Registry Initial Values | |
| | | | |
|
| ASP Specification Tag Registry Initial Values | | 5.2. ADSP Outbound Signing Practices Registry | |
| | | | |
| 5.2. ASP 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) | | | | unknown | (this document) | | |
| | all | (this document) | | | | all | (this document) | | |
| | discardable | (this document) | | | | discardable | (this document) | | |
| +-------------+-----------------+ | | +-------------+-----------------+ | |
|
| | | ADSP Outbound Signing Practices Registry Initial Values | |
| ASP Outbound Signing Practices Registry Initial Values | | | |
| | | | |
| 5.3. ASP Flags Registry | | | |
| | | | |
| The "t=" tag spec, defined in Section 4.2.1, provides for a value | | | |
| specifying Flags. IANA has established the ASP Flags Registry for | | | |
| ASP Flags. | | | |
| | | | |
| The initial entries in the registry comprise: | | | |
| | | | |
| +------+-----------------+ | | | |
| | TYPE | REFERENCE | | | | |
| +------+-----------------+ | | | |
| | s | (this document) | | | | |
| +------+-----------------+ | | | |
| | | | |
| ASP Flags Registry Initial Values | | | |
| | | | |
| 6. Security Considerations | | 6. Security Considerations | |
| | | | |
|
| Security considerations in the Author Signing Practices are mostly | | Security considerations in the ADSP are mostly related to attempts on | |
| related to attempts on the part of malicious senders to represent | | the part of malicious senders to represent themselves as authors for | |
| themselves as authors for whom they are not authorized to send mail, | | whom they are not authorized to send mail, often in an attempt to | |
| often in an attempt to defraud either the recipient or an Alleged | | defraud either the recipient or an Alleged Author. | |
| Author. | | | |
| | | | |
|
| Additional security considerations regarding Author Signing Practices | | Additional security considerations regarding Author Domain Signing | |
| are found in the DKIM threat analysis [RFC4686]. | | Practices are found in the DKIM threat analysis [RFC4686]. | |
| | | | |
|
| 6.1. ASP Threat Model | | 6.1. ADSP Threat Model | |
| | | | |
|