draft-ietf-dkim-ssp-02.txt | draft-ietf-dkim-ssp-03.txt | |||
---|---|---|---|---|
DKIM Working Group E. Allman | Network Working Group E. Allman | |||
Internet-Draft Sendmail, Inc. | Internet-Draft Sendmail, Inc. | |||
Intended status: Standards Track M. Delany | Intended status: Standards Track J. Fenton | |||
Expires: August 4, 2008 Yahoo! Inc. | Expires: August 26, 2008 Cisco Systems, Inc. | |||
J. Fenton | M. Delany | |||
Cisco Systems, Inc. | Yahoo! Inc. | |||
February 1, 2008 | J. Levine | |||
Taughannock Networks | ||||
February 23, 2008 | ||||
DKIM Sender Signing Practices | DKIM Author Signing Practices (ASP) | |||
draft-ietf-dkim-ssp-02 | draft-ietf-dkim-ssp-03 | |||
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 37 | 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 4, 2008. | This Internet-Draft will expire on August 26, 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 | DomainKeys Identified Mail (DKIM) defines a domain-level | |||
authentication framework for email using public-key cryptography and | authentication framework for email using public-key cryptography and | |||
key server technology to permit verification of the source and | key server technology to permit verification of the source and | |||
contents of messages by either Mail Transport Agents (MTAs) or Mail | contents of messages by either Mail Transport Agents (MTAs) or Mail | |||
User Agents (MUAs). The primary DKIM protocol is described in | User Agents (MUAs). The primary DKIM protocol is described in | |||
[RFC4871]. | [RFC4871]. This document describes the records that authors' domains | |||
can use to advertise their practices for signing their outgoing mail, | ||||
This document describes the records that authors' domains can use to | and how other hosts can access those records. | |||
advertise their practices regarding signing their outgoing mail, and | ||||
how other hosts can access, parse and interpret those records. | ||||
Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
document are to be interpreted as described in [RFC2119]. | ||||
(Unresolved Issues/To Be Done) | ||||
o Need to consider handling of multiple responses to a DNS query for | ||||
the SSP record. | ||||
o Security Considerations needs a detailed examination. | ||||
o IANA Considerations should be formalized (e.g., as in 4871). | ||||
o Check over the references. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Language and Terminology . . . . . . . . . . . . . . . . . . . 4 | 2. Language and Terminology . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Terms Imported from DKIM Signatures Specification . . . . 5 | 2.1. Terms Imported from DKIM Signatures Specification . . . . 4 | |||
2.2. Evaluator . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Valid Signature . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.3. SSP Checker . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.3. Author Address . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.4. Valid Signature . . . . . . . . . . . . . . . . . . . . . 5 | 2.4. Author Domain . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.5. Alleged Author . . . . . . . . . . . . . . . . . . . . . . 5 | 2.5. Alleged Author . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.6. Author Address . . . . . . . . . . . . . . . . . . . . . . 6 | 2.6. Author Signing Practices . . . . . . . . . . . . . . . . . 5 | |||
2.7. Author Domain . . . . . . . . . . . . . . . . . . . . . . 6 | 2.7. Author Signature . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.8. Author Signature . . . . . . . . . . . . . . . . . . . . . 6 | 3. Operation Overview . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.9. Sender Signing Practices Record . . . . . . . . . . . . . 6 | 3.1. ASP Usage . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3. Operational Description . . . . . . . . . . . . . . . . . . . 6 | 3.2. ASP Results . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.1. Publication of SSP Records . . . . . . . . . . . . . . . . 6 | 4. Detailed Description . . . . . . . . . . . . . . . . . . . . . 7 | |||
3.2. Lookup of SSP Records . . . . . . . . . . . . . . . . . . 8 | 4.1. DNS Representation . . . . . . . . . . . . . . . . . . . . 7 | |||
3.3. SSP Record Syntax . . . . . . . . . . . . . . . . . . . . 9 | 4.2. Publication of ASP Records . . . . . . . . . . . . . . . . 7 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 5.1. ASP Specification Tag Registry . . . . . . . . . . . . . . 10 | |||
5.1. DNS Attacks . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.2. ASP Outbound Signing Practices Registry . . . . . . . . . 10 | |||
5.2. DNS Wildcards . . . . . . . . . . . . . . . . . . . . . . 11 | 5.3. ASP Flags Registry . . . . . . . . . . . . . . . . . . . . 11 | |||
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
6.1. Normative References . . . . . . . . . . . . . . . . . . . 12 | 6.1. ASP Threat Model . . . . . . . . . . . . . . . . . . . . . 11 | |||
6.2. Informative References . . . . . . . . . . . . . . . . . . 12 | 6.2. DNS Attacks . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
Appendix A. Usage Examples (INFORMATIVE) . . . . . . . . . . . . 13 | 6.3. DNS Wildcards . . . . . . . . . . . . . . . . . . . . . . 12 | |||
A.1. Single Location Domains . . . . . . . . . . . . . . . . . 13 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
A.2. Bulk Mailing Domains . . . . . . . . . . . . . . . . . . . 13 | 7.1. References - Normative . . . . . . . . . . . . . . . . . . 13 | |||
7.2. References - Informative . . . . . . . . . . . . . . . . . 13 | ||||
Appendix A. Usage Examples . . . . . . . . . . . . . . . . . . . 13 | ||||
A.1. Single Location Domains . . . . . . . . . . . . . . . . . 14 | ||||
A.2. Bulk Mailing Domains . . . . . . . . . . . . . . . . . . . 14 | ||||
A.3. Bulk Mailing Domains with Discardable Mail . . . . . . . . 14 | A.3. Bulk Mailing Domains with Discardable Mail . . . . . . . . 14 | |||
A.4. Third Party Senders . . . . . . . . . . . . . . . . . . . 14 | A.4. Third Party Senders . . . . . . . . . . . . . . . . . . . 15 | |||
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 14 | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 15 | |||
Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 14 | Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 15 | |||
C.1. Changes since -ietf-dkim-ssp-01 . . . . . . . . . . . . . 15 | C.1. Changes since -ietf-dkim-02 . . . . . . . . . . . . . . . 15 | |||
C.2. Changes since -ietf-dkim-ssp-00 . . . . . . . . . . . . . 16 | C.2. Changes since -ietf-dkim-ssp-01 . . . . . . . . . . . . . 16 | |||
C.3. Changes since -allman-ssp-02 . . . . . . . . . . . . . . . 16 | C.3. Changes since -ietf-dkim-ssp-00 . . . . . . . . . . . . . 17 | |||
C.4. Changes since -allman-ssp-01 . . . . . . . . . . . . . . . 16 | C.4. Changes since -allman-ssp-02 . . . . . . . . . . . . . . . 17 | |||
C.5. Changes since -allman-ssp-00 . . . . . . . . . . . . . . . 17 | C.5. Changes since -allman-ssp-01 . . . . . . . . . . . . . . . 18 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 | C.6. Changes since -allman-ssp-00 . . . . . . . . . . . . . . . 18 | |||
Intellectual Property and Copyright Statements . . . . . . . . . . 19 | 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 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. Therefore, the absence of a signature is not an a | will be signed, and the absence of a signature on a message is not an | |||
priori indication of forgery. In fact, during early phases of DKIM | a priori indication of forgery. In fact, during early phases of | |||
deployment it must be expected that most messages will remain | deployment it is very likely that most messages will remain unsigned. | |||
unsigned. Nevertheless, some domains may find it highly desirable to | However, some domains might decide to sign all of their outgoing | |||
advertise that they sign all of their outgoing mail making the | mail, for example, to protect their brand name. It is desirable for | |||
absence of a valid signature a potential indication of forgery. | such domains to be able to advertise that fact to other hosts. This | |||
Without a mechanism to do so, the benefits of DKIM are limited to | is the topic of Author Signing Practices (ASP). | |||
cases in which a valid signature exists and cannot be extended to | ||||
cases in which signatures are missing or are invalid. Defining such | ||||
a mechanism is the purpose of Sender Signing Practices (SSP). | ||||
This specification focuses on information which is relevant in the | Hosts implementing this specification can inquire what Author Signing | |||
absence of an acceptable signature. Expressions of signing practice | Practices a domain advertises. This inquiry is called an Author | |||
which require outside auditing are out of scope for this | Signing Practices check. | |||
specification because they fall under the purview of reputation and | ||||
accreditation. Sender Signing Practices can be extended in the | ||||
future to include additional information that a receiver might use as | ||||
input to a processing decision. | ||||
More specifically, this specification defines the SSP Checker, a | The detailed requirements for Author Signing Practices are given in | |||
module that retrieves the SSP information for a given domain, and the | [RFC5016]. This document refers extensively to [RFC4871] and assumes | |||
format of the data returned. An module called the Evaluator combines | the reader is familiar with it. | |||
information from DKIM signatures, SSP Checker results, and any other | ||||
data sources it cares to use in order to make a decision regarding | ||||
how the message should be processed. The Evaluator is explicitly out | ||||
of scope of this document, and is described herein in order to make | ||||
the limits of this specification clear. | ||||
The detailed requirements for Sender Signing Practices are given in | Requirements Notation: The key words "MUST", "MUST NOT", "REQUIRED", | |||
[RFC5016], which the protocol described in this document attempts to | "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", | |||
satisfy. This document refers extensively to [RFC4871], which should | "MAY", and "OPTIONAL" in this document are to be interpreted as | |||
be read as a prerequisite to this document. | 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]. | Some terminology used herein is derived directly from [RFC4871]. In | |||
several cases, references in that document to Sender have been | ||||
changed to Author here, to emphasize the relationship to the Author | ||||
address(es) in the From: header field described in [RFC2822]. | ||||
Briefly, | Briefly, | |||
o A "Signer" is the agent that signs a message. In many cases it | o A "Signer" is the agent that signs a message, as defined in | |||
will correspond closely with the original author of the message or | section 2.1 of [RFC4871]. | |||
an agent working on the author's behalf. | ||||
o "Selectors" describe the keys published by a signing domain. | o A "Selector" specifies which of the keys published by a signing | |||
Signing domains may have multiple Selectors. Selectors subdivide | domain is to be queried, as defined in section 3.1 of [RFC4871]. | |||
the address space to allow a single sending domain to publish | ||||
multiple keys. | ||||
o A "Verifier" is the agent that verifies a message by checking | o A "Local-part" is the part of an address preceding the @ sign, as | |||
actual signature(s) in the message header against the message | defined in [RFC2822] and used in [RFC4871]. | |||
itself using the public key published in the Selector referenced | ||||
by a given signature. | ||||
2.2. Evaluator | 2.2. Valid Signature | |||
The "Evaluator" is the module that makes the ultimate decision on how | A "Valid Signature" is any signature on a message which correctly | |||
an incoming message should be processed at a given site. In some | verifies using the procedure described in section 6.1 of [RFC4871]. | |||
cases it may be colocated with the Verifier. The Evaluator combines | ||||
information from the DKIM signature(s) (if any), the output of the | ||||
SSP Checker, and any other information it cares to consult in order | ||||
to make a processing decision about the message. The specification | ||||
of the Evaluator is out of scope of this document. | ||||
2.3. SSP Checker | 2.3. Author Address | |||
The "SSP Checker" module performs the SSP queries on behalf of the | An "Author Address" is an email address in the From header field of a | |||
Evaluator. It is the primary module defined by this document. The | message [RFC2822]. If the From header field contains multiple | |||
input to the SSP Checker is an address extracted from the From header | addresses, the message has multiple Author Addresses. | |||
field of the message being evaluated; the output is either the Sender | ||||
Signing Practices associated with that domain, or an error code. | ||||
2.4. Valid Signature | 2.4. Author Domain | |||
A "Valid Signature" is any signature on a message which correctly | An "Author Domain" is everything to the right of the "@" in an Author | |||
verifies using the procedure described in section 6.1 of [RFC4871]. | Address (excluding the "@" itself). | |||
2.5. Alleged Author | 2.5. Alleged Author | |||
An "Alleged Author" is the Author Address of a message received by an | An "Alleged Author" is an Author Address of a message; it is | |||
Evaluator; it is "alleged" because it has not yet been verified. | "alleged" because it has not yet been verified. | |||
2.6. Author Address | ||||
The "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, which may | ||||
potentially cause the Evaluator to perform multiple SSP Checks for a | ||||
given message. | ||||
2.7. Author Domain | 2.6. Author Signing Practices | |||
The "Author Domain" is everything to the right of the "@" in the | "Author Signing Practices" (or just "practices") consist of a | |||
Author Address (excluding the "@" itself). | 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.8. 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. | Author Address in the message. When the identity of the user or | |||
agent includes a Local-part, the identities match if the Local-parts | ||||
2.9. Sender Signing Practices Record | match and the domains match. Otherwise, the identities match if the | |||
domains match. | ||||
A "Sender Signing Practices Record" consists of a machine-readable | ||||
record published by the domain of an Alleged Author which includes | ||||
information on whether that domain signs all of their email, and | ||||
related information. That record is defined in detail in section | ||||
Section 3.3. | ||||
3. Operational Description | ||||
The use of Sender Signing Practices consists of two parts: | ||||
Publication of SSP records by author domains wishing to do so | ||||
Lookup of SSP records by an SSP Checker under the direction of an | ||||
Evaluator. | ||||
3.1. Publication of SSP Records | For example, if a message has a Valid Signature, with the DKIM- | |||
Signature field containing "i=a@domain.example", then domain.example | ||||
is asserting that it takes responsibility for the message. If the | ||||
message's From: field contains the address "b@domain.example" and an | ||||
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.1.1. DNS Representation | 3. Operation Overview | |||
Sender Signing Practices Records are published using the DNS "TXT" | Domain owners can publish Author Signing Practices via a query | |||
resource record type. | mechanism such as the Domain Name System; specific details are given | |||
in Section 4.1. | ||||
*[[DRAFT DISCUSSION, TO BE DELETED BEFORE PUBLICATION*: There has | Hosts can look up the Author Signing Practices of the domain(s) | |||
been considerable discussion on the DKIM WG mailing list regarding | specified by the Author Address(es) as described in Section 4.2.2. | |||
the relative advantages of TXT and a new resource record (RR) | If a message has multiple Author Addresses the ASP lookups SHOULD be | |||
type. Many DNS server and resolver implementations are incapable | performed independently on each address. This standard does not | |||
of quickly and easily supporting new resource record types. For | address the process a host might use to combine the lookup results. | |||
this reason, support of TXT records is required whether a new RR | ||||
type is defined or not. However, without a "flag day" on which | ||||
SSP TXT record support is to be withdrawn, such support is likely | ||||
to continue indefinitely. As a result, this specification defines | ||||
no new RR type for SSP. | ||||
Another alternative proposed by P. Hallam-Baker is the publication | 3.1. ASP Usage | |||
of both a TXT record and, when implementations permit, a new RR, | ||||
referred to as XPTR, which gives the location from which SSP and | ||||
other policy information relating to a give domain can be | ||||
retrieved. This has the advantage of supporting a variety of | ||||
policies in a scalable manner, with better handling of wildcards | ||||
and centralized publication of policy records, with caching | ||||
advantages. However, the above implementation issues also apply | ||||
to XPTR, and an additional lookup is required to retrieve SSP via | ||||
the XPTR method. At the time of publication of this draft, | ||||
consensus on this proposal was unclear.*]]* | ||||
The RDATA for SSP resource records is textual in format, with | Depending on the Author Domain(s) and the signatures in a message, a | |||
specific syntax and semantics relating to their role in describing | recipient gets varying amounts of useful information from each ASP | |||
sender signing practices. SSP records follow the tag-list syntax | lookup. | |||
described in section 3.2 of [RFC4871], including the restriction on | ||||
duplicate tags, the use of white space, and case sensitivity. | ||||
Records not in overall compliance with that syntax MUST be ignored | ||||
(considered equivalent to a "NODATA" result), although they MAY cause | ||||
the logging of warning messages via an appropriate system logging | ||||
mechanism. All syntactically valid tags MUST be made available to | ||||
the Evaluator. | ||||
3.1.2. Location of SSP Records | o If a message has no Valid Signature, the ASP result is directly | |||
relevant to the message. | ||||
SSP records for a domain are published at a location in the domain's | o If a message has a Valid Signature from an Author Domain, ASP | |||
DNS hierarchy prefixed by "_ssp._domainkey"; e.g., the SSP record for | provides no benefit relative to that domain since the message is | |||
"example.com" would be a "TXT" record that is published at | already known to be compliant with any possible ASP for that | |||
"_ssp._domainkey.example.com". | domain. | |||
Sender Signing Practices are intended to apply to all mail sent from | o If a message has a Valid Signature from a domain other than an | |||
the domain of an Alleged Author. In order to ensure that SSP applies | Author Domain, the receiver can use both the Signature and the ASP | |||
to any hosts within that domain (e.g., www.example.com, | result in its evaluation of the message. | |||
ftp.example.com, etc.) the SSP lookup algorithm looks up one level in | ||||
the domain tree. For example, mail signed by www.example.com may | ||||
optionally be covered by the SSP record for example.com. This | ||||
prevents administrators from having to include an SSP record for | ||||
every name within a given domain. | ||||
Normally, a domain expressing Sender Signing Practices will want to | 3.2. ASP Results | |||
do so for both itself and all of its "descendents" (child domains at | ||||
all lower levels). Domains wishing to do so MUST publish SSP records | ||||
for the domain itself and any subdomains. | ||||
Wildcards within a domain publishing SSP records pose a particular | An Author Signing Practices lookup for an Author Address produces one | |||
problem. This is discussed in more detail in Section 5.2. | of four possible results: | |||
3.2. Lookup of SSP Records | o Messages from this domain might or might not have an author | |||
signature. This is the default if the domain exists in the DNS | ||||
but no record is found. | ||||
NON-NORMATIVE NOTE: While the operation of the Evaluator is outside | o All messages from this domain are signed. | |||
the scope of this specification, it is generally not worthwhile for | ||||
an Evaluator to request an SSP check when the results of that check | ||||
will not affect the disposition of the message. Since the | ||||
information provided by SSP is only relevant in the absence of valid | ||||
Author Signature(s), there is little to be gained by performing an | ||||
SSP check on domains corresponding to valid Author Signatures. SSP | ||||
checks may also be unnecessary when the Evaluator has some other | ||||
basis for deciding to process the message "normally", including, but | ||||
not limited to, the presence of a DKIM signature that the Evaluator | ||||
has some basis to trust sufficiently for this purpose. | ||||
3.2.1. SSP Checker Results | o All messages from this domain are signed and discardable. | |||
A Sender Signing Practices check produces one of four possible | o The domain does not exist. | |||
results for use by the Evaluator: | ||||
1. The domain does not exist in DNS. | 4. Detailed Description | |||
2. The domain does exist, but no SSP Record is present. | 4.1. DNS Representation | |||
3. The SSP Record exists, and that value is also returned. | Author Signing Practices records are published using the DNS TXT | |||
resource record type. | ||||
4. The DNS information could not be determined due to a transient | NON-NORMATIVE DISCUSSION [to be removed before publication]: There | |||
error such as "SERVFAIL". | 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. | ||||
3.2.2. SSP Lookup Algorithm | The RDATA for ASP resource records is textual in format, with | |||
specific syntax and semantics relating to their role in describing | ||||
Author Signing Practices. The "Tag=Value List" syntax described in | ||||
section 3.2 of [RFC4871] is used. Records not in compliance with | ||||
that syntax or the syntax of individual tags described in Section 4.3 | ||||
MUST be ignored (considered equivalent to a NODATA result) for | ||||
purposes of ASP, although they MAY cause the logging of warning | ||||
messages via an appropriate system logging mechanism. If the RDATA | ||||
contains multiple character strings, the strings are logically | ||||
concatenated with no delimiters between the strings. | ||||
SSP Checkers doing an SSP lookup MUST produce a result that is | The ASP record for a domain is published at a location in the | |||
semantically equivalent to applying the following steps in the order | domain's DNS hierarchy prefixed by _asp._domainkey.; e.g., the ASP | |||
listed below. In practice, several of these steps can be performed | record for example.com would be a TXT record that is published at | |||
in parallel in order to improve performance. However, | "_asp._domainkey.example.com". A domain MUST NOT publish more than | |||
implementations SHOULD avoid doing unnecessary DNS lookups. For the | one ASP record; the semantics of an ASP lookup that returns multiple | |||
purposes of this section a "valid SSP record" is one that is both | ASP records for a single domain are undefined. (Note that | |||
syntactically and semantically correct; in particular, it must match | example.com and mail.example.com are different domains.) | |||
the ABNF for a "tag-list" and must include a defined "dkim=" tag. | ||||
1. _Fetch Named SSP Record._ The SSP Checker MUST query DNS for a | 4.2. Publication of ASP Records | |||
TXT record corresponding to the Author Domain prefixed by | ||||
""_ssp._domainkey."" (note the trailing dot). If the result of | ||||
this query is a "NOERROR" response with one or more answers which | ||||
are valid SSP records, return that record for interpretation by | ||||
the Evaluator; otherwise, continue to the next step. | ||||
2. _Verify Domain Exists._ The SSP Checker MUST perform a DNS query | Author Signing Practices are intended to apply to all mail sent from | |||
for a record corresponding to the Author Domain (with no prefix). | the domain of an Alleged Author. In order to ensure that ASP applies | |||
The type of the query can be of any type, since this step is only | to any hosts within that domain (e.g., www.example.com, | |||
to determine if the domain itself exists in DNS. This query MAY | ftp.example.com.) the ASP lookup algorithm looks up one level in the | |||
be done in parallel with the query made in step 2. If the result | domain tree. For example, mail signed by www.example.com could be | |||
of this query is an "NXDOMAIN" error, the SSP Checker MUST return | covered by the ASP record for example.com. This avoids the need to | |||
an appropriate error to the Evaluator and terminate the | include an ASP record for every name within a given domain. | |||
algorithm. | ||||
NON-NORMATIVE DISCUSSION: Any resource record type could be | Normally, a domain expressing Author Signing Practices will want to | |||
used for this query since the existence of a resource record | do so for both itself and all of its "descendants" (child domains at | |||
of any type will prevent an "NXDOMAIN" error. "MX" is a | all lower levels). Domains wishing to do so MUST publish ASP records | |||
reasonable choice for this purpose is because this record type | for the domain itself and any subdomains. | |||
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 SSP Checker MUST query DNS for a TXT | Wildcards within a domain publishing ASP records pose a particular | |||
record for the immediate parent domain, prefixed with | problem. This is discussed in more detail in Section 6.3. | |||
""_ssp._domainkey."" If the result of this query is anything | ||||
other than a "NOERROR" response with a valid SSP record, the | ||||
algorithm terminates returning a result indicating that no SSP | ||||
record was present. If the SSP "t" tag exists in the response | ||||
and any of the flags is "s" (indicating it should not apply to a | ||||
subdomain), the SSP Checker MUST also return a "No SSP Record" | ||||
result. Otherwise, return that record for interpretation by the | ||||
Evaluator. | ||||
If any of the queries involved in the Sender Signing Practices Check | 4.2.1. Record Syntax | |||
result in a "SERVFAIL" error response, the SSP Checker MUST return | ||||
that information to the Evaluator; possible actions include queuing | ||||
the message or returning an SMTP error indicating a temporary | ||||
failure. | ||||
3.3. SSP Record Syntax | ASP records use the "tag=value" syntax described in section 3.2 of | |||
[RFC4871]. | ||||
SSP Records MUST match the "tag-list" syntax defined in [RFC4871]. | Tags used in ASP records are described below. Unrecognized tags MUST | |||
The specific tags used in SSP records are described below. | be ignored. In the ABNF below, the WSP token is imported from | |||
Unrecognized tags MUST be ignored. | [RFC2822]. 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 may sign none, 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. | |||
NON-NORMATIVE DISCUSSION: Sender signing practices of | ||||
"discardable" would be usually inappropriate for domains of end | ||||
users, because of the potential for mailing lists and similar | ||||
agents to modify messages in such a way as to render the | ||||
signature invalid. Domains sending mail that is expected to | ||||
pass with no significant modification to the recipient, such as | ||||
domains sending only transactional messages, are appropriate | ||||
places to consider the publication of a "discardable" practice. | ||||
See [RFC5016] section 5.3 and Appendix A for further | ||||
discussion. | ||||
ABNF: | ABNF: | |||
ssp-dkim-tag = "dkim" *WSP "=" *WSP ("unknown" / | asp-dkim-tag = %x64.6b.69.6d *WSP "=" | |||
"all" / "discardable") | *WSP ("unknown" / "all" / "discardable") | |||
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 signing practices apply only to the named domain, and not | |||
to subdomains. | to subdomains. | |||
ABNF: | ABNF: | |||
ssp-t-tag = %x75 *WSP "=" *WSP ssp-t-tag-flag | asp-t-tag = %x74 *WSP "=" *WSP { asp-t-tag-flag | |||
0*( *WSP ":" *WSP ssp-t-tag-flag ) | 0*( *WSP ":" *WSP asp-t-tag-flag ) | |||
ssp-t-tag-flag = "s" / hyphenated-word | asp-t-tag-flag = "s" / hyphenated-word | |||
; for future extension | ; for future extension | |||
hyphenated-word = ALPHA [ *(ALPHA / DIGIT / "-") | hyphenated-word = ALPHA [ *(ALPHA / DIGIT / "-") | |||
(ALPHA / DIGIT) ] | (ALPHA / DIGIT) ] | |||
Unrecognized flags MUST be included in the result that is provided | ||||
to the Evaluator. | ||||
4. IANA Considerations | Unrecognized flags MUST be ignored. | |||
IANA is requested to create a "DKIM selector name" registry and to | 4.2.2. Author Signing Practices Lookup Procedure | |||
reserve the selector name ""_ssp"" to avoid confusion between DKIM | ||||
key records and SSP records. | ||||
*<<< Needs to be updated to be more complete; see 4871 for examples | Hosts doing an ASP lookup MUST produce a result that is semantically | |||
>>>* | equivalent to applying the following steps in the order listed below. | |||
In practice, several of these steps can be performed in parallel in | ||||
order to improve performance. However, implementations SHOULD avoid | ||||
doing unnecessary DNS lookups. For the purposes of this section a | ||||
"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. | ||||
5. Security Considerations | 1. _Fetch Named ASP Record._ The host MUST query DNS for a TXT | |||
record corresponding to the Author Domain prefixed by | ||||
"_asp._domainkey." (note the trailing dot). If the result of | ||||
this query is a "NOERROR" response with an answer which is a | ||||
valid ASP record, use that record; otherwise, continue to the | ||||
next step. | ||||
Security considerations in the Sender Signing Practices are mostly | 2. _Verify Domain Exists._ 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 made in step 2. If the result of | ||||
this query is an "NXDOMAIN" error, the algorithm MUST terminate | ||||
with an appropriate error. | ||||
NON-NORMATIVE DISCUSSION: Any resource record type could be | ||||
used for this query since the existence of a resource record | ||||
of any type will prevent an "NXDOMAIN" error. MX is a | ||||
reasonable choice for this purpose is because this record type | ||||
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 | ||||
the immediate parent domain, prefixed with "_asp._domainkey." If | ||||
the result of this query is anything other than a "NOERROR" | ||||
response with a valid ASP record, the algorithm terminates with a | ||||
result indicating that no ASP record was present. If the ASP "t" | ||||
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 | ||||
result in a "SERVFAIL" error response, the algorithm terminates | ||||
without returning a result; possible actions include queuing the | ||||
message or returning an SMTP error indicating a temporary failure. | ||||
5. IANA Considerations | ||||
ASP introduces some new namespaces that have been registered with | ||||
IANA. In all cases, new values are assigned only for values that | ||||
have been documented in a published RFC that has IETF Consensus | ||||
[RFC2434]. | ||||
INFORMATIVE NOTE [ to be removed before publication ]: RFC 4871 | ||||
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 | ||||
An ASP record provides for a list of specification tags. IANA has | ||||
established the ASP Specification Tag Registry for specification tags | ||||
that can be used in ASP fields. | ||||
The initial entries in the registry comprise: | ||||
+------+-----------------+ | ||||
| TYPE | REFERENCE | | ||||
+------+-----------------+ | ||||
| dkim | (this document) | | ||||
| t | (this document) | | ||||
+------+-----------------+ | ||||
ASP Specification Tag Registry Initial Values | ||||
5.2. ASP Outbound Signing Practices Registry | ||||
The "dkim=" tag spec, defined in Section 4.2.1, provides for a value | ||||
specifying Outbound Signing Practices. IANA has established the ASP | ||||
Outbound Signing Practices Registry for Outbound Signing Practices. | ||||
The initial entries in the registry comprise: | ||||
+-------------+-----------------+ | ||||
| TYPE | REFERENCE | | ||||
+-------------+-----------------+ | ||||
| unknown | (this document) | | ||||
| all | (this document) | | ||||
| discardable | (this document) | | ||||
+-------------+-----------------+ | ||||
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 | ||||
Security considerations in the Author Signing Practices are mostly | ||||
related to attempts on the part of malicious senders to represent | related to attempts on the part of malicious senders to represent | |||
themselves as other authors, often in an attempt to defraud either | themselves as authors for whom they are not authorized to send mail, | |||
the recipient or an Alleged Author. | often in an attempt to defraud either the recipient or an Alleged | |||
Author. | ||||
Additional security considerations regarding Sender Signing Practices | Additional security considerations regarding Author Signing Practices | |||
may be found in the DKIM threat analysis [RFC4686]. | are found in the DKIM threat analysis [RFC4686]. | |||
*<<<THIS SECTION IS NOT COMPLETE.>>>* | 6.1. ASP Threat Model | |||
5.1. DNS Attacks | Email recipients often have a core set of content authors that they | |||
already trust. Common examples include financial institutions with | ||||
which they have an existing relationship and Internet web transaction | ||||
sites with which they conduct business. | ||||
Email abuse often seeks to exploit the name-recognition that | ||||
recipients will have, for a legitimate email author, by using its | ||||
domain name in the From: header field. Especially since many popular | ||||
MUAs do not display the author's email address, there is no empirical | ||||
evidence of the extent that this particular unauthorized use of a | ||||
domain name contributes to recipient deception or that eliminating it | ||||
will have significant effect. | ||||
However, closing this exploit could facilitate some types of | ||||
optimized processing by receive-side message filtering engines, since | ||||
it could permit them to maintain higher-confidence assertions about | ||||
From: header field uses of a domain, when the occurrence is | ||||
authorized. | ||||
Unauthorized uses of domain names occur elsewhere in messages, as do | ||||
unauthorized uses of organizations' names. These attacks are outside | ||||
the scope of this specification. | ||||
ASP does not provide any benefit--nor, indeed, have any effect at | ||||
all--unless an external system acts upon the verdict, either by | ||||
treating the message differently during the delivery process or by | ||||
showing some indicator to the end recipient. Such a system is out of | ||||
scope for this specification. | ||||
ASP Checkers perform up to three DNS lookups per Alleged Author | ||||
Domain. Since these lookups are driven by domain names in email | ||||
message headers of possibly fraudulent email, legitimate ASP Checkers | ||||
can become participants in traffic multiplication attacks. | ||||
6.2. DNS Attacks | ||||
An attacker might attack the DNS infrastructure in an attempt to | An attacker might attack the DNS infrastructure in an attempt to | |||
impersonate SSP records. However, such an attacker is more likely to | impersonate ASP records, in an attempt to influence a receiver's | |||
attack at a higher level, e.g., redirecting "A" or "MX" record | decision on how it will handle mail. However, such an attacker is | |||
lookups in order to capture traffic that was legitimately intended | more likely to attack at a higher level, e.g., redirecting A or MX | |||
for the target domain. Domains concerned about this should use | record lookups in order to capture traffic that was legitimately | |||
DNSSEC [RFC4033]. | intended for the target domain. These DNS security issues are | |||
addressed by DNSSEC [RFC4033]. | ||||
Because SSP operates within the framework of the legacy e-mail | Because ASP operates within the framework of the legacy e-mail | |||
system, the default result in the absence of an SSP record is that | system, the default result in the absence of an ASP record is that | |||
the domain does not sign all of its messages. It is therefore | the domain does not sign all of its messages. It is therefore | |||
important that the SSP Checker distinguish a DNS failure such as | important that the ASP 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. | |||
5.2. DNS Wildcards | 6.3. DNS Wildcards | |||
Wildcards within a domain publishing SSP records, including but not | Wildcards within a domain publishing ASP records, including but not | |||
limited to wildcard "MX" records, pose a particular problem. While | limited to wildcard MX records, pose a particular problem. While | |||
referencing the immediate parent domain allows the discovery of an | referencing the immediate parent domain allows the discovery of an | |||
SSP record corresponding to an unintended immediate-child subdomain, | ASP record corresponding to an unintended immediate-child subdomain, | |||
wildcard records apply at multiple levels. For example, if there is | wildcard records apply at multiple levels. For example, if there is | |||
a wildcard "MX" record for "example.com", the domain | a wildcard MX record for "example.com", the domain | |||
"foo.bar.example.com" can receive mail through the named mail | "foo.bar.example.com" can receive mail through the named mail | |||
exchanger. Conversely, the existence of the record makes it | exchanger. Conversely, the existence of the record makes it | |||
impossible to tell whether "foo.bar.example.com" is a legitimate name | 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 | since a query for that name will not return an "NXDOMAIN" error. For | |||
that reason, SSP coverage for subdomains of domains containing a | that reason, ASP coverage for subdomains of domains containing a | |||
wildcard record is incomplete. | wildcard record is incomplete. | |||
NON-NORMATIVE NOTE: Complete SSP coverage of domains containing | NON-NORMATIVE NOTE: Complete ASP coverage of domains containing (or | |||
(or where any parent contains) wildcards generally cannot be | where any parent contains) wildcards generally cannot be provided by | |||
guaranteed. | standard DNS servers. | |||
6. References | ||||
6.1. Normative References | 7. References | |||
[RFC1035] Mockapetris, P., "Domain names - implementation and | 7.1. References - Normative | |||
specification", STD 13, RFC 1035, 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. | |||
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an | ||||
IANA Considerations Section in RFCs", BCP 26, RFC 2434, | ||||
October 1998. | ||||
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822, | [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, | |||
April 2001. | April 2001. | |||
[RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | ||||
Specifications: ABNF", RFC 4234, October 2005. | ||||
[RFC4871] Allman, E., Callas, J., Delany, M., Libbey, M., Fenton, | ||||
J., and M. Thomas, "DomainKeys Identified Mail (DKIM) | ||||
Signatures", RFC 4871, May 2007. | ||||
6.2. Informative References | ||||
[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. | |||
[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, | ||||
J., and M. Thomas, "DomainKeys Identified Mail (DKIM) | ||||
Signatures", RFC 4871, May 2007. | ||||
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | ||||
Specifications: ABNF", STD 68, RFC 5234, January 2008. | ||||
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 (INFORMATIVE) | Appendix A. Usage Examples | |||
These examples are intended to illustrate typical uses of SSP. They | These examples are intended to illustrate typical uses of ASP. They | |||
are not intended to be exhaustive, nor to apply to every domain 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. | |||
A.1. Single Location Domains | ||||
A common mail system configuration handles all of a domain's users' | ||||
incoming and outgoing mail through a single MTA or cluster of MTAs. | ||||
In that case, the MTA(s) can be configured to sign outgoing mail with | ||||
an Author Signature. | ||||
In this situation it might be appropriate to publish an SSP record | ||||
for the domain containing "all", depending on whether the users also | ||||
send mail through other MTAs that do not apply an Author Signature. | ||||
Such MTAs could include MTAs at hotels or hotspot networks used by | ||||
travelling users, or web sites that provide "mail an article" | ||||
features. | ||||
Domain managers are advised to consider the ways that mail processing | Domain managers are advised to consider the ways that mail processing | |||
can modify messages in ways that will invalidate an existing DKIM | can modify messages in ways that will invalidate an existing DKIM | |||
signature, such as mailing lists, courtesy forwarders, and other | signature, 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 the modifications invalidate the DKIM signature, | |||
recipient MTAs will consider the mail not to have an Author | recipient hosts will consider the mail not to have an Author | |||
Signature, even though the signature was present when the mail was | Signature, even though the signature was present when the mail was | |||
originally sent. | originally sent. | |||
A.1. Single Location Domains | ||||
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 | ||||
that case, the MTA(s) can be configured to sign outgoing mail with an | ||||
Author Signature. | ||||
In this situation it might be appropriate to publish an ASP record | ||||
for the domain containing "all", depending on whether the users also | ||||
send mail through other paths that do not apply an Author Signature. | ||||
Such paths could include MTAs at hotels or hotspot networks used by | ||||
travelling users, or web sites that provide "mail an 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 cluster 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 Signature. In this case, the domain's management can | |||
be confident that all of its outgoing mail will be sent through the | be confident that all of its outgoing mail will be sent through the | |||
signing MTA. Lacking individual users, the domain is unlikely to | signing MTA. 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 often use specialist mailing providers to send their | |||
bulk mail. In that case, the mailing provider needs access to a | bulk mail. In that case, the mailing provider needs access to a | |||
suitable signing key in order to apply an Author Signature. One | suitable signing key in order to apply an Author Signature. One | |||
possible route would be for the domain owner to generate the key and | possible route would be for the domain owner to generate the key and | |||
give it to the mailing provider. Another would be for the domain to | give it to the mailing provider. Another would be for the domain to | |||
delegate a subdomain to the mailing provider, for example, | delegate a subdomain to the mailing provider, for example, | |||
bigbank.example might delegate email.bigbank.example to such a | bigbank.example might delegate email.bigbank.example to such a | |||
provider. In that case, the provider can generate the keys and DKIM | provider. In that case, the provider can generate the keys and DKIM | |||
DNS records itself and use the subdomain in the Author Address in the | DNS records itself and use the subdomain in the Author address in the | |||
mail. | mail. | |||
A.3. Bulk Mailing Domains with Discardable Mail | A.3. Bulk Mailing Domains with Discardable Mail | |||
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 prefers that recipient systems discard mail | Author Signature, but prefer that recipient systems discard mail | |||
without a valid Author Signature to avoid confusion from mail sent | without a valid Author Signature to avoid confusion from mail sent | |||
from sources that do not apply an Author Signature. (This latter | from sources that do not apply an Author Signature. (This latter | |||
kind of mail is sometimes loosely called "forgeries".) In that case, | kind of mail is sometimes loosely called "forgeries".) In that case, | |||
it may be appropriate to publish an SSP record containing | it might be appropriate to publish an ASP record containing | |||
"discardable". Note that a domain SHOULD NOT publish a "discardable" | "discardable". Note that a domain SHOULD NOT publish a "discardable" | |||
record if it wishes to maximize the likelihood that mail from the | record if it wishes to maximize the likelihood that mail from the | |||
domain is delivered, since it could cause some fraction of the mail | domain is delivered, since it could cause some fraction of the mail | |||
the domain sends to be discarded. | the domain sends 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" SSP record, since any mail with an author | publish a "discardable" ASP record, since any mail with an author | |||
address in the domain is a forgery. | address in the 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. The authors anticipate that as mail systems | in this specification. | |||
gain experience with DKIM, it will become possible to codify best | ||||
practices of this and other usages of DKIM. | ||||
Appendix B. Acknowledgements | Appendix B. Acknowledgements | |||
The authors wish to thank many members of the ietf-dkim mailing list | This document greatly benefited from comments by Steve Atkins, Jon | |||
for valuable suggestions and constructive criticism of earlier | Callas, Dave Crocker, JD Falk, Arvel Hathcock, Ellen Siegel, Michael | |||
versions of this draft. | Thomas, and Wietse Venema. | |||
This draft incorporates content from a parallel "DKIM Author Signing | ||||
Policies" document edited by John Levine. The authors appreciate | ||||
this contribution. | ||||
Appendix C. Change Log | Appendix C. Change Log | |||
*NOTE TO RFC EDITOR: This section may be removed upon publication of | *NOTE TO RFC EDITOR: This section may be removed upon publication of | |||
this document as an RFC.* | this document as an RFC.* | |||
C.1. Changes since -ietf-dkim-ssp-01 | 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 Reworded introduction for clarity. | |||
o Various definition clarifications. | o Various definition clarifications. | |||
o Changed names of practices to unknown, all, and discardable. | o Changed names of practices to unknown, all, and discardable. | |||
o Removed normative language mandating use of SSP in particular | o Removed normative language mandating use of SSP in particular | |||
situations (issue 1538). | situations (issue 1538). | |||
skipping to change at page 16, line 5 | skipping to change at page 17, line 10 | |||
o Introduced the concepts of "SSP Checker" and "Evaluator". | o Introduced the concepts of "SSP Checker" and "Evaluator". | |||
o Multiple author case now handled my separate invocations of SSP | o Multiple author case now handled my separate invocations of SSP | |||
checker by Evaluator (issue 1525). | checker by Evaluator (issue 1525). | |||
o Removed check to avoid querying top-level domains. | o Removed check to avoid querying top-level domains. | |||
o Changed ABNF use of whitespace from [FWS] to *WSP (partially | o Changed ABNF use of whitespace from [FWS] to *WSP (partially | |||
addresses issue 1543). | addresses issue 1543). | |||
C.2. Changes since -ietf-dkim-ssp-00 | C.3. Changes since -ietf-dkim-ssp-00 | |||
o Clarified Operation Overview and eliminated use of Legitimate as | o Clarified Operation Overview and eliminated use of Legitimate as | |||
the counterpart of Suspicious since the words have different | the counterpart of Suspicious since the words have different | |||
meanings. | meanings. | |||
o Improved discussion (courtesy of Arvel Hathcock) of the use of TXT | o Improved discussion (courtesy of Arvel Hathcock) of the use of TXT | |||
records in DNS vs. a new RR type. | records in DNS vs. a new RR type. | |||
o Clarified publication rules for multilevel names. | o Clarified publication rules for multilevel names. | |||
skipping to change at page 16, line 34 | skipping to change at page 17, line 39 | |||
o Added "handling" tag to express alleged sending domain's | o Added "handling" tag to express alleged sending domain's | |||
preference about handling of Suspicious messages. | preference about handling of Suspicious messages. | |||
o Clarified handling of SERVFAIL error in SSP check. | o Clarified handling of SERVFAIL error in SSP check. | |||
o Replaced "entity" with "domain", since with the removal of user- | o Replaced "entity" with "domain", since with the removal of user- | |||
granularity SSP, the only entities having sender signing policies | granularity SSP, the only entities having sender signing policies | |||
are domains. | are domains. | |||
C.3. Changes since -allman-ssp-02 | C.4. Changes since -allman-ssp-02 | |||
o Removed user-granularity SSP and u= tag. | o Removed user-granularity SSP and u= tag. | |||
o Replaced DKIMP resource record with a TXT record. | o Replaced DKIMP resource record with a TXT record. | |||
o Changed name of the primary tag from "p" to "dkim". | o Changed name of the primary tag from "p" to "dkim". | |||
o Replaced lookup algorithm with one which traverses upward at most | o Replaced lookup algorithm with one which traverses upward at most | |||
one level. | one level. | |||
o Added description of records which must be published, and effect | o Added description of records to be published, and effect of | |||
of wildcard records within the domain, on SSP. | wildcard records within the domain, on SSP. | |||
C.4. Changes since -allman-ssp-01 | C.5. Changes since -allman-ssp-01 | |||
o Changed term "Sender Signing Policy" to "Sender Signing | o Changed term "Sender Signing Policy" to "Sender Signing | |||
Practices". | Practices". | |||
o Changed query methodology to use a separate DNS resource record | o Changed query methodology to use a separate DNS resource record | |||
type, DKIMP. | type, DKIMP. | |||
o Changed tag values from SPF-like symbols to words. | o Changed tag values from SPF-like symbols to words. | |||
o User level policies now default to that of the domain if not | o User level policies now default to that of the domain if not | |||
specified. | specified. | |||
o Removed the "Compliance" section since we're still not clear on | o Removed the "Compliance" section since we're still not clear on | |||
what goes here. | what goes here. | |||
o Changed the "parent domain" policy to only search up one level | o Changed the "parent domain" policy to only search up one level | |||
(assumes that subdomains will publish SSP records if appropriate). | (assumes that subdomains will publish SSP records if appropriate). | |||
o Added detailed description of SSP check procedure. | o Added detailed description of SSP check procedure. | |||
C.5. Changes since -allman-ssp-00 | C.6. Changes since -allman-ssp-00 | |||
From a "diff" perspective, the changes are extensive. Semantically, | From a "diff" perspective, the changes are extensive. Semantically, | |||
the changes are: | the changes are: | |||
o Added section on "Third-Party Signatures and Mailing Lists" | o Added section on "Third-Party Signatures and Mailing Lists" | |||
o Added "Compliance" (transferred from -base document). I'm not | o Added "Compliance" (transferred from -base document). I'm not | |||
clear on what needs to be done here. | clear on what needs to be done here. | |||
o Extensive restructuring. | o Extensive restructuring. | |||
Authors' Addresses | Authors' Addresses | |||
Eric Allman | Eric Allman | |||
Sendmail, Inc. | Sendmail, Inc. | |||
6475 Christie Ave, Suite 350 | 6475 Christie Ave, Suite 350 | |||
Emeryville, CA 94608 | Emeryville, CA 94608 | |||
USA | ||||
Phone: +1 510 594 5501 | Phone: +1 510 594 5501 | |||
Email: eric+dkim@sendmail.org | Email: eric+dkim@sendmail.org | |||
URI: | Jim Fenton | |||
Cisco Systems, Inc. | ||||
MS SJ-9/2 | ||||
170 W. Tasman Drive | ||||
San Jose, CA 95134-1706 | ||||
Phone: +1 408 526 5914 | ||||
Email: fenton@cisco.com | ||||
Mark Delany | Mark Delany | |||
Yahoo! Inc. | Yahoo! Inc. | |||
701 First Avenue | 701 First Avenue | |||
Sunnyvale, CA 94089 | Sunnyvale, CA 94089 | |||
USA | ||||
Phone: +1 408 349 6831 | Phone: +1 408 349 6831 | |||
Email: markd+dkim@yahoo-inc.com | Email: markd+dkim@yahoo-inc.com | |||
URI: | ||||
Jim Fenton | John Levine | |||
Cisco Systems, Inc. | Taughannock Networks | |||
MS SJ-9/2 | PO Box 727 | |||
170 W. Tasman Drive | Trumansburg, NY 14886 | |||
San Jose, CA 95134-1706 | ||||
USA | ||||
Phone: +1 408 526 5914 | Phone: +1 831 480 2300 | |||
Email: fenton@cisco.com | Email: standards@taugh.com | |||
URI: | 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. 107 change blocks. | ||||
395 lines changed or deleted | 449 lines changed or added | |||
This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |