draft-ietf-dkim-base-09.txt | draft-ietf-dkim-base-10.txt | |||
---|---|---|---|---|
DKIM E. Allman | DKIM E. Allman | |||
Internet-Draft Sendmail, Inc. | Internet-Draft Sendmail, Inc. | |||
Intended status: Standards Track J. Callas | Intended status: Standards Track J. Callas | |||
Expires: August 15, 2007 PGP Corporation | Expires: August 19, 2007 PGP Corporation | |||
M. Delany | M. Delany | |||
M. Libbey | M. Libbey | |||
Yahoo! Inc | Yahoo! Inc | |||
J. Fenton | J. Fenton | |||
M. Thomas | M. Thomas | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
February 11, 2007 | February 15, 2007 | |||
DomainKeys Identified Mail (DKIM) Signatures | DomainKeys Identified Mail (DKIM) Signatures | |||
draft-ietf-dkim-base-09 | draft-ietf-dkim-base-10 | |||
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 41 | skipping to change at page 1, line 41 | |||
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 15, 2007. | This Internet-Draft will expire on August 19, 2007. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The IETF Trust (2007). | Copyright (C) The IETF Trust (2007). | |||
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 | |||
skipping to change at page 2, line 31 | skipping to change at page 2, line 31 | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
1.1. Signing Identity . . . . . . . . . . . . . . . . . . . . . 6 | 1.1. Signing Identity . . . . . . . . . . . . . . . . . . . . . 6 | |||
1.2. Scalability . . . . . . . . . . . . . . . . . . . . . . . 6 | 1.2. Scalability . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
1.3. Simple Key Management . . . . . . . . . . . . . . . . . . 6 | 1.3. Simple Key Management . . . . . . . . . . . . . . . . . . 6 | |||
2. Terminology and Definitions . . . . . . . . . . . . . . . . . 6 | 2. Terminology and Definitions . . . . . . . . . . . . . . . . . 6 | |||
2.1. Signers . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2.1. Signers . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2.2. Verifiers . . . . . . . . . . . . . . . . . . . . . . . . 7 | 2.2. Verifiers . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
2.3. White Space . . . . . . . . . . . . . . . . . . . . . . . 7 | 2.3. White Space . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
2.4. Common ABNF Tokens . . . . . . . . . . . . . . . . . . . . 7 | 2.4. Common ABNF Tokens . . . . . . . . . . . . . . . . . . . . 7 | |||
2.5. Imported ABNF Tokens . . . . . . . . . . . . . . . . . . . 8 | 2.5. Imported ABNF Tokens . . . . . . . . . . . . . . . . . . . 7 | |||
2.6. DKIM-Quoted-Printable . . . . . . . . . . . . . . . . . . 8 | 2.6. DKIM-Quoted-Printable . . . . . . . . . . . . . . . . . . 8 | |||
3. Protocol Elements . . . . . . . . . . . . . . . . . . . . . . 9 | 3. Protocol Elements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
3.1. Selectors . . . . . . . . . . . . . . . . . . . . . . . . 9 | 3.1. Selectors . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
3.2. Tag=Value Lists . . . . . . . . . . . . . . . . . . . . . 11 | 3.2. Tag=Value Lists . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.3. Signing and Verification Algorithms . . . . . . . . . . . 12 | 3.3. Signing and Verification Algorithms . . . . . . . . . . . 12 | |||
3.4. Canonicalization . . . . . . . . . . . . . . . . . . . . . 14 | 3.4. Canonicalization . . . . . . . . . . . . . . . . . . . . . 14 | |||
3.5. The DKIM-Signature header field . . . . . . . . . . . . . 18 | 3.5. The DKIM-Signature header field . . . . . . . . . . . . . 18 | |||
3.6. Key Management and Representation . . . . . . . . . . . . 26 | 3.6. Key Management and Representation . . . . . . . . . . . . 26 | |||
3.7. Computing the Message Hashes . . . . . . . . . . . . . . . 30 | 3.7. Computing the Message Hashes . . . . . . . . . . . . . . . 30 | |||
3.8. Signing by Parent Domains . . . . . . . . . . . . . . . . 32 | 3.8. Signing by Parent Domains . . . . . . . . . . . . . . . . 32 | |||
4. Semantics of Multiple Signatures . . . . . . . . . . . . . . . 33 | 4. Semantics of Multiple Signatures . . . . . . . . . . . . . . . 33 | |||
4.1. Example Scenarios . . . . . . . . . . . . . . . . . . . . 33 | 4.1. Example Scenarios . . . . . . . . . . . . . . . . . . . . 33 | |||
4.2. Interpretation . . . . . . . . . . . . . . . . . . . . . . 34 | 4.2. Interpretation . . . . . . . . . . . . . . . . . . . . . . 34 | |||
5. Signer Actions . . . . . . . . . . . . . . . . . . . . . . . . 35 | 5. Signer Actions . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
5.1. Determine if the Email Should be Signed and by Whom . . . 35 | 5.1. Determine if the Email Should be Signed and by Whom . . . 35 | |||
5.2. Select a Private Key and Corresponding Selector | 5.2. Select a Private Key and Corresponding Selector | |||
Information . . . . . . . . . . . . . . . . . . . . . . . 35 | Information . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
5.3. Normalize the Message to Prevent Transport Conversions . . 36 | 5.3. Normalize the Message to Prevent Transport Conversions . . 36 | |||
5.4. Determine the Header Fields to Sign . . . . . . . . . . . 36 | 5.4. Determine the Header Fields to Sign . . . . . . . . . . . 37 | |||
5.5. Recommended Signature Content . . . . . . . . . . . . . . 39 | 5.5. Recommended Signature Content . . . . . . . . . . . . . . 39 | |||
5.6. Compute the Message Hash and Signature . . . . . . . . . . 40 | 5.6. Compute the Message Hash and Signature . . . . . . . . . . 40 | |||
5.7. Insert the DKIM-Signature Header Field . . . . . . . . . . 41 | 5.7. Insert the DKIM-Signature Header Field . . . . . . . . . . 41 | |||
6. Verifier Actions . . . . . . . . . . . . . . . . . . . . . . . 41 | 6. Verifier Actions . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
6.1. Extract Signatures from the Message . . . . . . . . . . . 42 | 6.1. Extract Signatures from the Message . . . . . . . . . . . 42 | |||
6.2. Communicate Verification Results . . . . . . . . . . . . . 47 | 6.2. Communicate Verification Results . . . . . . . . . . . . . 47 | |||
6.3. Interpret Results/Apply Local Policy . . . . . . . . . . . 48 | 6.3. Interpret Results/Apply Local Policy . . . . . . . . . . . 48 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 | |||
7.1. DKIM-Signature Tag Specifications . . . . . . . . . . . . 49 | 7.1. DKIM-Signature Tag Specifications . . . . . . . . . . . . 49 | |||
7.2. DKIM-Signature Query Method Registry . . . . . . . . . . . 50 | 7.2. DKIM-Signature Query Method Registry . . . . . . . . . . . 50 | |||
7.3. DKIM-Signature Canonicalization Registry . . . . . . . . . 50 | 7.3. DKIM-Signature Canonicalization Registry . . . . . . . . . 50 | |||
7.4. _domainkey DNS TXT Record Tag Specifications . . . . . . . 51 | 7.4. _domainkey DNS TXT Record Tag Specifications . . . . . . . 51 | |||
7.5. DKIM Key Type Registry . . . . . . . . . . . . . . . . . . 51 | 7.5. DKIM Key Type Registry . . . . . . . . . . . . . . . . . . 52 | |||
7.6. DKIM Hash Algorithms Registry . . . . . . . . . . . . . . 52 | 7.6. DKIM Hash Algorithms Registry . . . . . . . . . . . . . . 52 | |||
7.7. DKIM Service Types Registry . . . . . . . . . . . . . . . 52 | 7.7. DKIM Service Types Registry . . . . . . . . . . . . . . . 53 | |||
7.8. DKIM Selector Flags Registry . . . . . . . . . . . . . . . 53 | 7.8. DKIM Selector Flags Registry . . . . . . . . . . . . . . . 53 | |||
7.9. DKIM-Signature Header Field . . . . . . . . . . . . . . . 53 | 7.9. DKIM-Signature Header Field . . . . . . . . . . . . . . . 54 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 53 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 54 | |||
8.1. Misuse of Body Length Limits ("l=" Tag) . . . . . . . . . 53 | 8.1. Misuse of Body Length Limits ("l=" Tag) . . . . . . . . . 54 | |||
8.2. Misappropriated Private Key . . . . . . . . . . . . . . . 54 | 8.2. Misappropriated Private Key . . . . . . . . . . . . . . . 55 | |||
8.3. Key Server Denial-of-Service Attacks . . . . . . . . . . . 55 | 8.3. Key Server Denial-of-Service Attacks . . . . . . . . . . . 56 | |||
8.4. Attacks Against DNS . . . . . . . . . . . . . . . . . . . 55 | 8.4. Attacks Against DNS . . . . . . . . . . . . . . . . . . . 56 | |||
8.5. Replay Attacks . . . . . . . . . . . . . . . . . . . . . . 56 | 8.5. Replay Attacks . . . . . . . . . . . . . . . . . . . . . . 57 | |||
8.6. Limits on Revoking Keys . . . . . . . . . . . . . . . . . 56 | 8.6. Limits on Revoking Keys . . . . . . . . . . . . . . . . . 57 | |||
8.7. Intentionally malformed Key Records . . . . . . . . . . . 57 | 8.7. Intentionally malformed Key Records . . . . . . . . . . . 57 | |||
8.8. Intentionally Malformed DKIM-Signature header fields . . . 57 | 8.8. Intentionally Malformed DKIM-Signature header fields . . . 58 | |||
8.9. Information Leakage . . . . . . . . . . . . . . . . . . . 57 | 8.9. Information Leakage . . . . . . . . . . . . . . . . . . . 58 | |||
8.10. Remote Timing Attacks . . . . . . . . . . . . . . . . . . 57 | 8.10. Remote Timing Attacks . . . . . . . . . . . . . . . . . . 58 | |||
8.11. Reordered Header Fields . . . . . . . . . . . . . . . . . 57 | 8.11. Reordered Header Fields . . . . . . . . . . . . . . . . . 58 | |||
8.12. RSA Attacks . . . . . . . . . . . . . . . . . . . . . . . 57 | 8.12. RSA Attacks . . . . . . . . . . . . . . . . . . . . . . . 58 | |||
8.13. Inappropriate Signing by Parent Domains . . . . . . . . . 58 | 8.13. Inappropriate Signing by Parent Domains . . . . . . . . . 58 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 58 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 59 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . . 58 | 9.1. Normative References . . . . . . . . . . . . . . . . . . . 59 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . . 59 | 9.2. Informative References . . . . . . . . . . . . . . . . . . 60 | |||
Appendix A. Example of Use (INFORMATIVE) . . . . . . . . . . . . 60 | Appendix A. Example of Use (INFORMATIVE) . . . . . . . . . . . . 61 | |||
A.1. The user composes an email . . . . . . . . . . . . . . . . 60 | A.1. The user composes an email . . . . . . . . . . . . . . . . 61 | |||
A.2. The email is signed . . . . . . . . . . . . . . . . . . . 60 | A.2. The email is signed . . . . . . . . . . . . . . . . . . . 61 | |||
A.3. The email signature is verified . . . . . . . . . . . . . 61 | A.3. The email signature is verified . . . . . . . . . . . . . 62 | |||
Appendix B. Usage Examples (INFORMATIVE) . . . . . . . . . . . . 62 | Appendix B. Usage Examples (INFORMATIVE) . . . . . . . . . . . . 63 | |||
B.1. Alternate Submission Scenarios . . . . . . . . . . . . . . 63 | B.1. Alternate Submission Scenarios . . . . . . . . . . . . . . 64 | |||
B.2. Alternate Delivery Scenarios . . . . . . . . . . . . . . . 65 | B.2. Alternate Delivery Scenarios . . . . . . . . . . . . . . . 66 | |||
Appendix C. Creating a public key (INFORMATIVE) . . . . . . . . . 67 | Appendix C. Creating a public key (INFORMATIVE) . . . . . . . . . 68 | |||
Appendix D. MUA Considerations . . . . . . . . . . . . . . . . . 69 | Appendix D. MUA Considerations . . . . . . . . . . . . . . . . . 70 | |||
Appendix E. Acknowledgements . . . . . . . . . . . . . . . . . . 69 | Appendix E. Acknowledgements . . . . . . . . . . . . . . . . . . 70 | |||
Appendix F. Edit History . . . . . . . . . . . . . . . . . . . . 70 | Appendix F. Edit History . . . . . . . . . . . . . . . . . . . . 71 | |||
F.1. Changes since -ietf-08 version . . . . . . . . . . . . . . 70 | F.1. Changes since -ietf-09 version . . . . . . . . . . . . . . 71 | |||
F.2. Changes since -ietf-07 version . . . . . . . . . . . . . . 70 | F.2. Changes since -ietf-08 version . . . . . . . . . . . . . . 71 | |||
F.3. Changes since -ietf-06 version . . . . . . . . . . . . . . 72 | F.3. Changes since -ietf-07 version . . . . . . . . . . . . . . 72 | |||
F.4. Changes since -ietf-05 version . . . . . . . . . . . . . . 72 | F.4. Changes since -ietf-06 version . . . . . . . . . . . . . . 73 | |||
F.5. Changes since -ietf-04 version . . . . . . . . . . . . . . 73 | F.5. Changes since -ietf-05 version . . . . . . . . . . . . . . 74 | |||
F.6. Changes since -ietf-03 version . . . . . . . . . . . . . . 73 | F.6. Changes since -ietf-04 version . . . . . . . . . . . . . . 74 | |||
F.7. Changes since -ietf-02 version . . . . . . . . . . . . . . 74 | F.7. Changes since -ietf-03 version . . . . . . . . . . . . . . 75 | |||
F.8. Changes since -ietf-01 version . . . . . . . . . . . . . . 75 | F.8. Changes since -ietf-02 version . . . . . . . . . . . . . . 76 | |||
F.9. Changes since -ietf-00 version . . . . . . . . . . . . . . 76 | F.9. Changes since -ietf-01 version . . . . . . . . . . . . . . 77 | |||
F.10. Changes since -allman-01 version . . . . . . . . . . . . . 77 | F.10. Changes since -ietf-00 version . . . . . . . . . . . . . . 77 | |||
F.11. Changes since -allman-00 version . . . . . . . . . . . . . 77 | F.11. Changes since -allman-01 version . . . . . . . . . . . . . 78 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 77 | F.12. Changes since -allman-00 version . . . . . . . . . . . . . 78 | |||
Intellectual Property and Copyright Statements . . . . . . . . . . 80 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 79 | |||
Intellectual Property and Copyright Statements . . . . . . . . . . 81 | ||||
1. Introduction | 1. Introduction | |||
[[Note: text in double square brackets (such as this text) will be | [[Note: text in double square brackets (such as this text) will be | |||
deleted before publication.]] | deleted before publication.]] | |||
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 | |||
skipping to change at page 13, line 9 | skipping to change at page 13, line 9 | |||
INFORMATIVE NOTE: Although sha256 is strongly encouraged, some | INFORMATIVE NOTE: Although sha256 is strongly encouraged, some | |||
senders of low-security messages (such as routine newsletters) may | senders of low-security messages (such as routine newsletters) may | |||
prefer to use sha1 because of reduced CPU requirements to compute | prefer to use sha1 because of reduced CPU requirements to compute | |||
a sha1 hash. In general, sha256 should always be used whenever | a sha1 hash. In general, sha256 should always be used whenever | |||
possible. | possible. | |||
3.3.1. The rsa-sha1 Signing Algorithm | 3.3.1. The rsa-sha1 Signing Algorithm | |||
The rsa-sha1 Signing Algorithm computes a message hash as described | The rsa-sha1 Signing Algorithm computes a message hash as described | |||
in Section 3.7 below using SHA-1 [SHA] as the hash-alg. That hash is | in Section 3.7 below using SHA-1 [FIPS.180-2.2002] as the hash-alg. | |||
then signed by the signer using the RSA algorithm (defined in PKCS#1 | That hash is then signed by the signer using the RSA algorithm | |||
version 1.5 [RFC3447]) as the crypt-alg and the signer's private key. | (defined in PKCS#1 version 1.5 [RFC3447]) as the crypt-alg and the | |||
The hash MUST NOT be truncated or converted into any form other than | signer's private key. The hash MUST NOT be truncated or converted | |||
the native binary form before being signed. The signing algorithm | into any form other than the native binary form before being signed. | |||
SHOULD use an exponent of 65537. | The signing algorithm SHOULD use an exponent of 65537. | |||
3.3.2. The rsa-sha256 Signing Algorithm | 3.3.2. The rsa-sha256 Signing Algorithm | |||
The rsa-sha256 Signing Algorithm computes a message hash as described | The rsa-sha256 Signing Algorithm computes a message hash as described | |||
in Section 3.7 below using SHA-256 [SHA] as the hash-alg. That hash | in Section 3.7 below using SHA-256 [FIPS.180-2.2002] as the hash-alg. | |||
is then signed by the signer using the RSA algorithm (defined in | That hash is then signed by the signer using the RSA algorithm | |||
PKCS#1 version 1.5 [RFC3447]) as the crypt-alg and the signer's | (defined in PKCS#1 version 1.5 [RFC3447]) as the crypt-alg and the | |||
private key. The hash MUST NOT be truncated or converted into any | signer's private key. The hash MUST NOT be truncated or converted | |||
form other than the native binary form before being signed. | into any form other than the native binary form before being signed. | |||
3.3.3. Key sizes | 3.3.3. Key sizes | |||
Selecting appropriate key sizes is a trade-off between cost, | Selecting appropriate key sizes is a trade-off between cost, | |||
performance and risk. Since short RSA keys more easily succumb to | performance and risk. Since short RSA keys more easily succumb to | |||
off-line attacks, signers MUST use RSA keys of at least 1024 bits for | off-line attacks, signers MUST use RSA keys of at least 1024 bits for | |||
long-lived keys. Verifiers MUST be able to validate signatures with | long-lived keys. Verifiers MUST be able to validate signatures with | |||
keys ranging from 512 bits to 2048 bits, and they MAY be able to | keys ranging from 512 bits to 2048 bits, and they MAY be able to | |||
validate signatures with larger keys. Verifier policies may use the | validate signatures with larger keys. Verifier policies may use the | |||
length of the signing key as one metric for determining whether a | length of the signing key as one metric for determining whether a | |||
skipping to change at page 28, line 12 | skipping to change at page 28, line 12 | |||
ABNF: | ABNF: | |||
key-h-tag = %x68 [FWS] "=" [FWS] key-h-tag-alg | key-h-tag = %x68 [FWS] "=" [FWS] key-h-tag-alg | |||
0*( [FWS] ":" [FWS] key-h-tag-alg ) | 0*( [FWS] ":" [FWS] key-h-tag-alg ) | |||
key-h-tag-alg = "sha1" / "sha256" / x-key-h-tag-alg | key-h-tag-alg = "sha1" / "sha256" / x-key-h-tag-alg | |||
x-key-h-tag-alg = hyphenated-word ; for future extension | x-key-h-tag-alg = hyphenated-word ; for future extension | |||
k= Key type (plain-text; OPTIONAL, default is "rsa"). Signers and | k= Key type (plain-text; OPTIONAL, default is "rsa"). Signers and | |||
verifiers MUST support the "rsa" key type. The "rsa" key type | verifiers MUST support the "rsa" key type. The "rsa" key type | |||
indicates that an ASN.1 DER-encoded [X.660] RSAPublicKey | indicates that an ASN.1 DER-encoded [ITU.X660.1997] RSAPublicKey | |||
[RFC3447] (see sections 3.1 and A.1.1) is being used in the p= | [RFC3447] (see sections 3.1 and A.1.1) is being used in the p= | |||
tag. (Note: the p= tag further encodes the value using the | tag. (Note: the p= tag further encodes the value using the | |||
base64 algorithm.) | base64 algorithm.) | |||
ABNF: | ABNF: | |||
key-k-tag = %x76 [FWS] "=" [FWS] key-k-tag-type | key-k-tag = %x76 [FWS] "=" [FWS] key-k-tag-type | |||
key-k-tag-type = "rsa" / x-key-k-tag-type | key-k-tag-type = "rsa" / x-key-k-tag-type | |||
x-key-k-tag-type = hyphenated-word ; for future extension | x-key-k-tag-type = hyphenated-word ; for future extension | |||
skipping to change at page 35, line 9 | skipping to change at page 35, line 9 | |||
When evaluating a message with multiple signatures, a verifier SHOULD | When evaluating a message with multiple signatures, a verifier SHOULD | |||
evaluate signatures independently and on their own merits. For | evaluate signatures independently and on their own merits. For | |||
example, a verifier that by policy chooses not to accept signatures | example, a verifier that by policy chooses not to accept signatures | |||
with deprecated cryptographic algorithms would consider such | with deprecated cryptographic algorithms would consider such | |||
signatures invalid. Verifiers MAY process signatures in any order of | signatures invalid. Verifiers MAY process signatures in any order of | |||
their choice; for example, some verifiers might choose to process | their choice; for example, some verifiers might choose to process | |||
signatures corresponding to the From field in the message header | signatures corresponding to the From field in the message header | |||
before other signatures. See Section 6.1 for more information about | before other signatures. See Section 6.1 for more information about | |||
signature choices. | signature choices. | |||
INFORMATIVE IMPLEMENTATION NOTE: Verifier attempts to correlate | ||||
valid signatures with invalid signatures in an attempt to guess | ||||
why a signature failed are ill-advised. In particular, there is | ||||
no general way that a verifier can determine that an invalid | ||||
signature was ever valid. | ||||
Verifiers SHOULD ignore failed signatures as though they were not | Verifiers SHOULD ignore failed signatures as though they were not | |||
present in the message. Verifiers SHOULD continue to check | present in the message. Verifiers SHOULD continue to check | |||
signatures until a signature successfully verifies to the | signatures until a signature successfully verifies to the | |||
satisfaction of the verifier. To limit potential denial-of-service | satisfaction of the verifier. To limit potential denial-of-service | |||
attacks, verifiers MAY limit the total number of signatures they will | attacks, verifiers MAY limit the total number of signatures they will | |||
attempt to verify. | attempt to verify. | |||
5. Signer Actions | 5. Signer Actions | |||
The following steps are performed in order by signers. | The following steps are performed in order by signers. | |||
skipping to change at page 44, line 33 | skipping to change at page 44, line 39 | |||
MUST ignore the DKIM-Signature header field and return PERMFAIL (From | MUST ignore the DKIM-Signature header field and return PERMFAIL (From | |||
field not signed). | field not signed). | |||
Verifiers MAY ignore the DKIM-Signature header field and return | Verifiers MAY ignore the DKIM-Signature header field and return | |||
PERMFAIL (signature expired) if it contains an "x=" tag and the | PERMFAIL (signature expired) if it contains an "x=" tag and the | |||
signature has expired. | signature has expired. | |||
Verifiers MAY ignore the DKIM-Signature header field if the domain | Verifiers MAY ignore the DKIM-Signature header field if the domain | |||
used by the signer in the d= tag is not associated with a valid | used by the signer in the d= tag is not associated with a valid | |||
signing entity. For example, signatures with d= values such as "com" | signing entity. For example, signatures with d= values such as "com" | |||
and "co.uk" may be ignored. | and "co.uk" may be ignored. The list of unacceptable domains SHOULD | |||
be configurable. | ||||
Verifiers MAY ignore the DKIM-Signature header field and return | Verifiers MAY ignore the DKIM-Signature header field and return | |||
PERMFAIL (unacceptable signature header) for any other reason, for | PERMFAIL (unacceptable signature header) for any other reason, for | |||
example, if the signature does not sign header fields that the | example, if the signature does not sign header fields that the | |||
verifier views to be essential. As a case in point, if MIME header | verifier views to be essential. As a case in point, if MIME header | |||
fields are not signed, certain attacks may be possible that the | fields are not signed, certain attacks may be possible that the | |||
verifier would prefer to avoid. | verifier would prefer to avoid. | |||
6.1.2. Get the Public Key | 6.1.2. Get the Public Key | |||
skipping to change at page 52, line 26 | skipping to change at page 53, line 7 | |||
The "h=" <key-h-tag> list (specified in Section 3.6.1) and the "a=" | The "h=" <key-h-tag> list (specified in Section 3.6.1) and the "a=" | |||
<sig-a-tag-h> (Section 3.5) provide for a list of mechanisms that can | <sig-a-tag-h> (Section 3.5) provide for a list of mechanisms that can | |||
be used to produce a digest of message data. | be used to produce a digest of message data. | |||
IANA is requested to establish the DKIM Hash Algorithms Registry, for | IANA is requested to establish the DKIM Hash Algorithms Registry, for | |||
such mechanisms that have been specified in any published RFC. | such mechanisms that have been specified in any published RFC. | |||
The initial entries in the registry comprise: | The initial entries in the registry comprise: | |||
+--------+-----------+ | +--------+-------------------+ | |||
| TYPE | REFERENCE | | | TYPE | REFERENCE | | |||
+--------+-----------+ | +--------+-------------------+ | |||
| sha1 | [SHA] | | | sha1 | [FIPS.180-2.2002] | | |||
| sha256 | [SHA] | | | sha256 | [FIPS.180-2.2002] | | |||
+--------+-----------+ | +--------+-------------------+ | |||
DKIM Hash Algorithms Initial Values | DKIM Hash Algorithms Initial Values | |||
7.7. DKIM Service Types Registry | 7.7. DKIM Service Types Registry | |||
The "s=" <key-s-tag> list (specified in Section 3.6.1) provides for a | The "s=" <key-s-tag> list (specified in Section 3.6.1) provides for a | |||
list of service types to which this selector may apply. | list of service types to which this selector may apply. | |||
IANA is requested to establish the DKIM Service Types Registry, for | IANA is requested to establish the DKIM Service Types Registry, for | |||
service types that have been specified in any published RFC. | service types that have been specified in any published RFC. | |||
skipping to change at page 58, line 35 | skipping to change at page 59, line 23 | |||
example, in the example above any of the domains could potentially | example, in the example above any of the domains could potentially | |||
simply delegate "example.podunk.ca.us" to a server of their choice | simply delegate "example.podunk.ca.us" to a server of their choice | |||
and completely replace all DNS-served information. Note that a | and completely replace all DNS-served information. Note that a | |||
verifier MAY ignore signatures that come from an unlikely domain | verifier MAY ignore signatures that come from an unlikely domain | |||
such as ".com", as discussed in Section 6.1.1. | such as ".com", as discussed in Section 6.1.1. | |||
9. References | 9. References | |||
9.1. Normative References | 9.1. Normative References | |||
[FIPS.180-2.2002] | ||||
U.S. Department of Commerce, "Secure Hash Standard", FIPS | ||||
PUB 180-2, August 2002. | ||||
[ITU.X660.1997] | ||||
"Information Technology - ASN.1 encoding rules: | ||||
Specification of Basic Encoding Rules (BER), Canonical | ||||
Encoding Rules (CER) and Distinguished Encoding Rules | ||||
(DER)", ITU-T Recommendation X.660, 1997. | ||||
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
Extensions (MIME) Part One: Format of Internet Message | Extensions (MIME) Part One: Format of Internet Message | |||
Bodies", RFC 2045, November 1996. | Bodies", RFC 2045, November 1996. | |||
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) | [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) | |||
Part Three: Message header field Extensions for Non-ASCII | Part Three: Message header field Extensions for Non-ASCII | |||
Text", RFC 2047, November 1996. | Text", RFC 2047, November 1996. | |||
[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. | |||
skipping to change at page 59, line 11 | skipping to change at page 60, line 9 | |||
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822, | [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, | |||
April 2001. | April 2001. | |||
[RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography | [RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography | |||
Standards (PKCS) #1: RSA Cryptography Specifications | Standards (PKCS) #1: RSA Cryptography Specifications | |||
Version 2.1", RFC 3447, February 2003. | Version 2.1", RFC 3447, February 2003. | |||
[RFC3490] Faltstrom, P., Hoffman, P., and A. Costello, | [RFC3490] Faltstrom, P., Hoffman, P., and A. Costello, | |||
"Internationalizing Domain Names in Applications (IDNA)", | "Internationalizing Domain Names in Applications (IDNA)", | |||
March 2003. | RFC 3490, March 2003. | |||
[RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
Specifications: ABNF", RFC 4234, October 2005. | Specifications: ABNF", RFC 4234, October 2005. | |||
[SHA] U.S. Department of Commerce, "Secure Hash Standard", FIPS | ||||
PUB 180-2, August 2002. | ||||
[X.660] "ITU-T Recommendation X.660 Information Technology - ASN.1 | ||||
encoding rules: Specification of Basic Encoding Rules | ||||
(BER), Canonical Encoding Rules (CER) and Distinguished | ||||
Encoding Rules (DER)", 1997. | ||||
9.2. Informative References | 9.2. Informative References | |||
[BONEH03] Proc. 12th USENIX Security Symposium, "Remote Timing | [BONEH03] Proc. 12th USENIX Security Symposium, "Remote Timing | |||
Attacks are Practical", 2003, <http://www.usenix.org/ | Attacks are Practical", 2003. | |||
publications/library/proceedings/sec03/tech/brumley.html>. | ||||
[RFC-DK] "DomainKeys specification (to be published with this | [RFC-DK] "DomainKeys specification (to be published with this | |||
RFC)", 2005. | RFC)", 2005. | |||
[RFC1847] Galvin, J., Murphy, S., Crocker, S., and N. Freed, | [RFC1847] Galvin, J., Murphy, S., Crocker, S., and N. Freed, | |||
"Security Multiparts for MIME: Multipart/Signed and | "Security Multiparts for MIME: Multipart/Signed and | |||
Multipart/Encrypted", RFC 1847, October 1995. | Multipart/Encrypted", RFC 1847, October 1995. | |||
[RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
IANA Considers Section in RFCs", BCP 26, October 1998. | IANA Considers Section in RFCs", BCP 26, October 1998. | |||
skipping to change at page 70, line 19 | skipping to change at page 71, line 19 | |||
constructive criticism. | constructive criticism. | |||
The DomainKeys specification was a primary source from which this | The DomainKeys specification was a primary source from which this | |||
specification has been derived. Further information about DomainKeys | specification has been derived. Further information about DomainKeys | |||
is at [RFC-DK]. | is at [RFC-DK]. | |||
Appendix F. Edit History | Appendix F. Edit History | |||
[[This section to be removed before publication.]] | [[This section to be removed before publication.]] | |||
F.1. Changes since -ietf-08 version | F.1. Changes since -ietf-09 version | |||
The following changes were made between draft-ietf-dkim-base-09 and | ||||
draft-ietf-dkim-base-10: | ||||
o Section 6.1.1, clarify that the list of unlikely domains should be | ||||
configurable in some fashion. | ||||
o Section 4.2, add informative note about the dangers of trying to | ||||
correlate valid and invalid signatures. | ||||
o Reference details added in XML (may not show up in .txt versions). | ||||
o Some XML adjustments for formatting. | ||||
F.2. Changes since -ietf-08 version | ||||
The following changes were made between draft-ietf-dkim-base-08 and | The following changes were made between draft-ietf-dkim-base-08 and | |||
draft-ietf-dkim-base-09: | draft-ietf-dkim-base-09: | |||
o Section 3.3.1, recommend use of an RSA exponent of 65537. | o Section 3.3.1, recommend use of an RSA exponent of 65537. | |||
o Section 3.4.4, mention theoretical "ASCII Art" attack for relaxed | o Section 3.4.4, mention theoretical "ASCII Art" attack for relaxed | |||
body canonicalization. | body canonicalization. | |||
o Section 5.4.1 moved to 5.5 (with old 5.5 et seq. pushed down) to | o Section 5.4.1 moved to 5.5 (with old 5.5 et seq. pushed down) to | |||
skipping to change at page 70, line 44 | skipping to change at page 72, line 13 | |||
signatures from unlikely domains such as "com" and "co.uk". | signatures from unlikely domains such as "com" and "co.uk". | |||
o Section 6.3, try to clarify the wording about SMTP rejections. | o Section 6.3, try to clarify the wording about SMTP rejections. | |||
o Section 7, change IANA registration requirement to be any RFC | o Section 7, change IANA registration requirement to be any RFC | |||
having "IETF Consensus" (as defined in RFC2434), not necessarily | having "IETF Consensus" (as defined in RFC2434), not necessarily | |||
standards-track, as a result of overwhelming WG consensus. | standards-track, as a result of overwhelming WG consensus. | |||
o Informative References, add RFC 2434. | o Informative References, add RFC 2434. | |||
F.2. Changes since -ietf-07 version | F.3. Changes since -ietf-07 version | |||
The following changes were made between draft-ietf-dkim-base-07 and | The following changes were made between draft-ietf-dkim-base-07 and | |||
draft-ietf-dkim-base-08: | draft-ietf-dkim-base-08: | |||
o Drop reference to "trusted third party" in section 1; it was | o Drop reference to "trusted third party" in section 1; it was | |||
redundant with existing bullet points and created confusion. | redundant with existing bullet points and created confusion. | |||
o Drop the wording on re-using keys from normative to an operational | o Drop the wording on re-using keys from normative to an operational | |||
note. | note. | |||
skipping to change at page 72, line 10 | skipping to change at page 73, line 25 | |||
o Add sentence in section 8.11 to emphasize that signing existing | o Add sentence in section 8.11 to emphasize that signing existing | |||
DKIM-Signature header fields may result in incorrect validation | DKIM-Signature header fields may result in incorrect validation | |||
failures, as requested by Security Area review. | failures, as requested by Security Area review. | |||
o Added section 8.14 (RSA Attacks) based on DNS-dir review from | o Added section 8.14 (RSA Attacks) based on DNS-dir review from | |||
Olafur Gu[eth]mundsson. | Olafur Gu[eth]mundsson. | |||
o Added section 8.15 (Inappropriate Signing by Parent Domains). | o Added section 8.15 (Inappropriate Signing by Parent Domains). | |||
F.3. Changes since -ietf-06 version | F.4. Changes since -ietf-06 version | |||
The following changes were made between draft-ietf-dkim-base-06 and | The following changes were made between draft-ietf-dkim-base-06 and | |||
draft-ietf-dkim-base-07: | draft-ietf-dkim-base-07: | |||
o Added section 8.11 regarding header reordering. | o Added section 8.11 regarding header reordering. | |||
o Added informative note to section 3.3 regarding use of sha256. | o Added informative note to section 3.3 regarding use of sha256. | |||
o Added informative rationale to section 3.6.1, "p=", regarding key | o Added informative rationale to section 3.6.1, "p=", regarding key | |||
revocation. | revocation. | |||
skipping to change at page 72, line 34 | skipping to change at page 74, line 5 | |||
o Minor modification of the second informative note in section 6.1 | o Minor modification of the second informative note in section 6.1 | |||
regarding DoS attacks. | regarding DoS attacks. | |||
o Added explicit mention of v= to section 6.1.2, step 5. | o Added explicit mention of v= to section 6.1.2, step 5. | |||
o Updated paragraph 3 of section 8.4 regarding DNS attacks. | o Updated paragraph 3 of section 8.4 regarding DNS attacks. | |||
o Added section 7.9 (DKIM-Signature IANA Registry) per IANA request. | o Added section 7.9 (DKIM-Signature IANA Registry) per IANA request. | |||
F.4. Changes since -ietf-05 version | F.5. Changes since -ietf-05 version | |||
The following changes were made between draft-ietf-dkim-base-05 and | The following changes were made between draft-ietf-dkim-base-05 and | |||
draft-ietf-dkim-base-06: | draft-ietf-dkim-base-06: | |||
o Fix an error in an example in Appendix C. | o Fix an error in an example in Appendix C. | |||
o Substantial updates to Appendixes B and D. | o Substantial updates to Appendixes B and D. | |||
o Clarify ABNF for tag-value. | o Clarify ABNF for tag-value. | |||
skipping to change at page 73, line 10 | skipping to change at page 74, line 29 | |||
o Add normative reference to SHA1/SHA256 FIPS publication 180-2. | o Add normative reference to SHA1/SHA256 FIPS publication 180-2. | |||
o Several minor edits based on AD Review. | o Several minor edits based on AD Review. | |||
o Move discussion of not re-using a selector (i.e., changing the | o Move discussion of not re-using a selector (i.e., changing the | |||
public key for a single selector) from informational to normative. | public key for a single selector) from informational to normative. | |||
o Assorted wordsmithing based on external review. | o Assorted wordsmithing based on external review. | |||
F.5. Changes since -ietf-04 version | F.6. Changes since -ietf-04 version | |||
The following changes were made between draft-ietf-dkim-base-04 and | The following changes were made between draft-ietf-dkim-base-04 and | |||
draft-ietf-dkim-base-05: | draft-ietf-dkim-base-05: | |||
o Clarified definition of "plain text" in section 3.2 (issue 1316). | o Clarified definition of "plain text" in section 3.2 (issue 1316). | |||
o Added some clarification about multiple listings of non-existent | o Added some clarification about multiple listings of non-existent | |||
header field names in h= in section 5.4 (issue 1316). | header field names in h= in section 5.4 (issue 1316). | |||
o Finished filling out IANA registries in section 7 (issue 1320). | o Finished filling out IANA registries in section 7 (issue 1320). | |||
skipping to change at page 73, line 32 | skipping to change at page 75, line 5 | |||
o Clarified handling of bare CR and LF in section 5.3 (issue 1326). | o Clarified handling of bare CR and LF in section 5.3 (issue 1326). | |||
o Listed the required tags in section 6.1.1 as an informational note | o Listed the required tags in section 6.1.1 as an informational note | |||
(issue 1330). | (issue 1330). | |||
o Changed IDNA reference from 3492 to 3490 (issue 1331). | o Changed IDNA reference from 3492 to 3490 (issue 1331). | |||
o Changed the reference for WSP to 4234; changed the definition of | o Changed the reference for WSP to 4234; changed the definition of | |||
SWSP to exclude bare CR and LF (issue 1332). | SWSP to exclude bare CR and LF (issue 1332). | |||
F.6. Changes since -ietf-03 version | F.7. Changes since -ietf-03 version | |||
The following changes were made between draft-ietf-dkim-base-03 and | The following changes were made between draft-ietf-dkim-base-03 and | |||
draft-ietf-dkim-base-04: | draft-ietf-dkim-base-04: | |||
o Re-worded Abstract to avoid use of "prove" and "non-repudiation". | o Re-worded Abstract to avoid use of "prove" and "non-repudiation". | |||
o Use dot-atom-text instead of dot-atom to avoid inclusion of CFWS. | o Use dot-atom-text instead of dot-atom to avoid inclusion of CFWS. | |||
o Capitalize Selector throughout. | o Capitalize Selector throughout. | |||
skipping to change at page 74, line 32 | skipping to change at page 76, line 4 | |||
o Add several examples; update some others. | o Add several examples; update some others. | |||
o Considerable minor editorial updating to clarify language, delete | o Considerable minor editorial updating to clarify language, delete | |||
redundant text, fix spelling errors, etc. | redundant text, fix spelling errors, etc. | |||
Still to be resolved: | Still to be resolved: | |||
o How does "simple" body canonicalization interact with BINARYMIME | o How does "simple" body canonicalization interact with BINARYMIME | |||
data? | data? | |||
o Deal with "relaxed" body canonicalizations, especially in regard | o Deal with "relaxed" body canonicalizations, especially in regard | |||
to bare CRs and NLs. | to bare CRs and NLs. | |||
o How to handle "*" in g= dot-atom-text (which allows "*" as a | o How to handle "*" in g= dot-atom-text (which allows "*" as a | |||
literal character). | literal character). | |||
o The IANA Considerations need to be completed and cleaned up. | o The IANA Considerations need to be completed and cleaned up. | |||
F.7. Changes since -ietf-02 version | F.8. Changes since -ietf-02 version | |||
The following changes were made between draft-ietf-dkim-base-02 and | The following changes were made between draft-ietf-dkim-base-02 and | |||
draft-ietf-dkim-base-03: | draft-ietf-dkim-base-03: | |||
o Section 5.2: changed key expiration text to be informational; | o Section 5.2: changed key expiration text to be informational; | |||
drop "seven day" wording in favor of something vaguer. | drop "seven day" wording in favor of something vaguer. | |||
o Don't indicate that the "i=" tag value should be passed to the key | o Don't indicate that the "i=" tag value should be passed to the key | |||
lookup service; this can be added as an extension if required. | lookup service; this can be added as an extension if required. | |||
skipping to change at page 75, line 42 | skipping to change at page 77, line 13 | |||
may contain the content. | may contain the content. | |||
o Use dkim-quoted-printable as the encoding used in z= rather than | o Use dkim-quoted-printable as the encoding used in z= rather than | |||
referring to RFC2045, since they are different. | referring to RFC2045, since they are different. | |||
o Rewrite description of g= tag in the key record. | o Rewrite description of g= tag in the key record. | |||
o Deleted use of Domain in ABNF, which permits address-literals; | o Deleted use of Domain in ABNF, which permits address-literals; | |||
define domain-name to act in stead. | define domain-name to act in stead. | |||
F.8. Changes since -ietf-01 version | F.9. Changes since -ietf-01 version | |||
The following changes were made between draft-ietf-dkim-base-01 and | The following changes were made between draft-ietf-dkim-base-01 and | |||
draft-ietf-dkim-base-02: | draft-ietf-dkim-base-02: | |||
o Change wording on "x=" tag in DKIM-Signature header field | o Change wording on "x=" tag in DKIM-Signature header field | |||
regarding verifier handling of expired signatures from MUST to MAY | regarding verifier handling of expired signatures from MUST to MAY | |||
(per 20 April Jabber session). Also, make it clear that received | (per 20 April Jabber session). Also, make it clear that received | |||
time is to be preferred over current time if reliably available. | time is to be preferred over current time if reliably available. | |||
o Several changes to limit wording that would intrude into verifier | o Several changes to limit wording that would intrude into verifier | |||
skipping to change at page 76, line 26 | skipping to change at page 77, line 44 | |||
o Change "q=dns" query access method to "q=dnstxt" to emphasize the | o Change "q=dns" query access method to "q=dnstxt" to emphasize the | |||
use of the TXT record. The expectation is that a later extension | use of the TXT record. The expectation is that a later extension | |||
will define "q=dnsdkk" to indicate use of a DKK record. (Per 18 | will define "q=dnsdkk" to indicate use of a DKK record. (Per 18 | |||
May Jabber session.) | May Jabber session.) | |||
o Several typos fixed, including removing a paragraph that implied | o Several typos fixed, including removing a paragraph that implied | |||
that the DKIM-Signature header field should be hashed with the | that the DKIM-Signature header field should be hashed with the | |||
body (it should not). | body (it should not). | |||
F.9. Changes since -ietf-00 version | F.10. Changes since -ietf-00 version | |||
The following changes were made between draft-ietf-dkim-base-00 and | The following changes were made between draft-ietf-dkim-base-00 and | |||
draft-ietf-dkim-base-01: | draft-ietf-dkim-base-01: | |||
o Added section 8.9 (Information Leakage). | o Added section 8.9 (Information Leakage). | |||
o Replace section 4 (Multiple Signatures) with much less vague text. | o Replace section 4 (Multiple Signatures) with much less vague text. | |||
o Fixed ABNF for base64string. | o Fixed ABNF for base64string. | |||
skipping to change at page 77, line 5 | skipping to change at page 78, line 20 | |||
o Changed signing algorithm to use separate hash of the body of the | o Changed signing algorithm to use separate hash of the body of the | |||
message; this is represented as the "bh=" tag in the DKIM- | message; this is represented as the "bh=" tag in the DKIM- | |||
Signature header field. | Signature header field. | |||
o Changed "z=" tag so that it need not have the same header field | o Changed "z=" tag so that it need not have the same header field | |||
names as the "h=" tag. | names as the "h=" tag. | |||
o Significant wordsmithing. | o Significant wordsmithing. | |||
F.10. Changes since -allman-01 version | F.11. Changes since -allman-01 version | |||
The following changes were made between draft-allman-dkim-base-01 and | The following changes were made between draft-allman-dkim-base-01 and | |||
draft-ietf-dkim-base-00: | draft-ietf-dkim-base-00: | |||
o Remove references to Sender Signing Policy document. Such | o Remove references to Sender Signing Policy document. Such | |||
consideration is implicitly included in Section 6.3. | consideration is implicitly included in Section 6.3. | |||
o Added ABNF for all tags. | o Added ABNF for all tags. | |||
o Updated references (still includes some references to expired | o Updated references (still includes some references to expired | |||
drafts, notably ID-AUTH-RES. | drafts, notably ID-AUTH-RES. | |||
o Significant wordsmithing. | o Significant wordsmithing. | |||
F.11. Changes since -allman-00 version | F.12. Changes since -allman-00 version | |||
The following changes were made between draft-allman-dkim-base-00 and | The following changes were made between draft-allman-dkim-base-00 and | |||
draft-allman-dkim-base-01: | draft-allman-dkim-base-01: | |||
o Changed "c=" tag to separate out header from body | o Changed "c=" tag to separate out header from body | |||
canonicalization. | canonicalization. | |||
o Eliminated "nowsp" canonicalization in favor of "relaxed", which | o Eliminated "nowsp" canonicalization in favor of "relaxed", which | |||
is somewhat less relaxed (but more secure) than "nowsp". | is somewhat less relaxed (but more secure) than "nowsp". | |||
End of changes. 35 change blocks. | ||||
90 lines changed or deleted | 113 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |