| < draft-crocker-dnssec-algo-signal-06.txt | draft-crocker-dnssec-algo-signal-07.txt > | |||
|---|---|---|---|---|
| DNS Extensions Working Group S. Crocker | DNS Extensions Working Group S. Crocker | |||
| Internet-Draft Shinkuro Inc. | Internet-Draft Shinkuro Inc. | |||
| Updates: 4035 (if approved) S. Rose | Intended status: Standards Track S. Rose | |||
| Intended status: Standards Track NIST | Expires: April 11, 2011 NIST | |||
| Expires: October 15, 2010 April 13, 2010 | October 8, 2010 | |||
| Signaling Cryptographic Algorithm Understanding in DNSSEC | Signaling Cryptographic Algorithm Understanding in DNSSEC | |||
| draft-crocker-dnssec-algo-signal-06 | draft-crocker-dnssec-algo-signal-07 | |||
| Abstract | Abstract | |||
| The DNS Security Extensions (DNSSEC) were developed to provide origin | The DNS Security Extensions (DNSSEC) were developed to provide origin | |||
| authentication and integrity protection for DNS data by using digital | authentication and integrity protection for DNS data by using digital | |||
| signatures. These digital signatures can be generated using | signatures. These digital signatures can be generated using | |||
| different algorithms. This draft sets out to specify a way for | different algorithms. This draft sets out to specify a way for | |||
| validating end-system resolvers to signal to a server which | validating end-system resolvers to signal to a server which | |||
| cryptographic algorithms they support. | cryptographic algorithms they support. | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF), its areas, and its working groups. Note that | |||
| working documents as Internet-Drafts. The list of current Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on October 15, 2010. | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | ||||
| The list of Internet-Draft Shadow Directories can be accessed at | ||||
| http://www.ietf.org/shadow.html. | ||||
| This Internet-Draft will expire on April 11, 2011. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the BSD License. | |||
| This document may contain material from IETF Documents or IETF | ||||
| Contributions published or made publicly available before November | ||||
| 10, 2008. The person(s) controlling the copyright in some of this | ||||
| material may not have granted the IETF Trust the right to allow | ||||
| modifications of such material outside the IETF Standards Process. | ||||
| Without obtaining an adequate license from the person(s) controlling | ||||
| the copyright in such materials, this document may not be modified | ||||
| outside the IETF Standards Process, and derivative works of it may | ||||
| not be created outside the IETF Standards Process, except to format | ||||
| it for publication as an RFC or to translate it into languages other | ||||
| than English. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Signaling Algorithm Understood (AU) Using EDNS . . . . . . . . 3 | 2. Signaling Algorithm Understood (AU) Using EDNS . . . . . . . . 3 | |||
| 3. Client Considerations . . . . . . . . . . . . . . . . . . . . . 4 | 3. Client Considerations . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. Recommendations for Stub Clients . . . . . . . . . . . . . 4 | 3.1. Recommendations for Stub Clients . . . . . . . . . . . . . 5 | |||
| 3.2. Recursive Cache Considerations . . . . . . . . . . . . . . 5 | 3.2. Recursive Cache Considerations . . . . . . . . . . . . . . 5 | |||
| 4. Intermediate Middlebox Considerations . . . . . . . . . . . . . 5 | 4. Intermediate Middlebox Considerations . . . . . . . . . . . . . 5 | |||
| 5. Server Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 5. Server Considerations . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 6. Traffic Analysis Considerations . . . . . . . . . . . . . . . . 5 | 6. Traffic Analysis Considerations . . . . . . . . . . . . . . . . 6 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . . 6 | 9. Normative References . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 1. Introduction | 1. Introduction | |||
| The DNS Security Extensions (DNSSEC) [RFC4033], [RFC4034] and | The DNS Security Extensions (DNSSEC) [RFC4033], [RFC4034] and | |||
| [RFC4035] were developed to provide origin authentication and | [RFC4035] were developed to provide origin authentication and | |||
| integrity protection for DNS data by using digital signatures . Each | integrity protection for DNS data by using digital signatures. Each | |||
| digital signature RR (RRSIG) contains an algorithm code number. | digital signature RR (RRSIG) contains an algorithm code number. | |||
| These algorithm codes help validators identify which cryptographic | These algorithm codes tells validators which cryptographic algorithm | |||
| algorithm was used to generate the digital signature. | was used to generate the digital signature. Authentication across | |||
| delegation boundries is maintained by storing a hash of a subzone's | ||||
| key in the parent zone stored in a Delegation Signer (DS) RR. These | ||||
| DS RR's contain a second code number to identify the hash algorithm | ||||
| used to contruct the DS RR. | ||||
| This draft sets out to specify a way for validating end-system | This draft sets out to specify a way for validating end-system | |||
| resolvers to signal to a server which cryptographic algorithms they | resolvers to tell a server which cryptographic and/or hash algorithms | |||
| support in a DNSSEC response. This is done using the EDNS attribute | they support in a DNS query. This is done using the EDNS attribute | |||
| values in the OPT meta-RR [RFC2671]. | values in the OPT meta-RR [RFC2671]. | |||
| This proposed EDNS option serves to measure the acceptance and use of | This proposed EDNS option serves to measure the acceptance and use of | |||
| new digital signing algorithms. This algorithm signaling option can | new digital signing and hash algorithms. This algorithm signaling | |||
| be used by zone administrators as a gauge to measure the successful | option can be used by zone administrators as a gauge to measure the | |||
| deployment of code that implements a newly deployed digital signature | successful deployment of code that implements a newly deployed | |||
| algorithm used with DNSSEC. A zone administrator may be able to | digital signature or hash algorithm used with DNSSEC. A zone | |||
| determine when to stop serving the old algorithm when the server sees | administrator may be able to determine when to stop serving the old | |||
| that all or almost all of its clients signal that they are able to | algorithm when the server sees that all or almost all of its clients | |||
| accept the new algorithm. | signal that they are able to accept the new algorithm. | |||
| This draft does not seek to include a formal process for including | This draft does not seek to include another process for including new | |||
| new algorithms for use with DNSSEC. It also does not address the | algorithms for use with DNSSEC (see . It also does not address the | |||
| question of which algorithms are to be included in any official list | question of which algorithms are to be included in any official list | |||
| of mandatory or recommended cryptographic algorithms for use with | of mandatory or recommended cryptographic algorithms for use with | |||
| DNSSEC. Rather, this document specifies a means by which a client | DNSSEC. Rather, this document specifies a means by which a client | |||
| query can signal a set of algorithms it implements. | query can signal a set of algorithms it implements. | |||
| 2. Signaling Algorithm Understood (AU) Using EDNS | 2. Signaling Algorithm Understood (AU) Using EDNS | |||
| The ENDS0 specification outlined in [RFC2671] defines a way to | The ENDS0 specification outlined in [RFC2671] defines a way to | |||
| include new options using a standardized mechanism. These options | include new options using a standardized mechanism. These options | |||
| are contained in the RDATA of the OPT meta-RR. This document seeks | are contained in the RDATA of the OPT meta-RR. This document defines | |||
| to define a new EDNS0 option for a client to signal which algorithms | a new EDNS0 option for a client to signal which algorithms the client | |||
| the client supports. | supports. | |||
| The figure below shows how the signally attribute is defined in the | The figure below shows how the signally attribute is defined in the | |||
| RDATA of the OPT RR specified in [RFC2671]: | RDATA of the OPT RR specified in [RFC2671]: | |||
| 0 8 16 | 0 8 16 | |||
| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
| | OPTION-CODE (TBD) | | | OPTION-CODE (TBD) | | |||
| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
| | OPTION-LENGTH | | | DIGITAL-SIG-LIST-LENGTH | | |||
| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
| | ALG-CODE | ... \ | | ALG-CODE | ... \ | |||
| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
| | DS-HASH-LIST-LENGTH | | ||||
| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ||||
| | HASH-CODE | ... \ | ||||
| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ||||
| OPTION-CODE is the code for the Algorithm Understood (AU) option. | OPTION-CODE is the code for the Algorithm Understood (AU) option. | |||
| Its value is fixed at TBD. | Its value is fixed at TBD. | |||
| OPTION-LENGTH is the length of the data of the attribute in octets. | DIGITAL-SIG-LIST-LENGTH is the length of the list of digital | |||
| DNSSEC algorithm codes are 1 octet long so this value is the number | signature algorithms in octets. DNSSEC algorithm codes are 1 octet | |||
| of octets. | long so this value is the number of octets. | |||
| ALG-CODE is the list of assigned values of DNSSEC zone signing | ALG-CODE is the list of assigned values of DNSSEC zone signing | |||
| algorithms that the client indicates as understood. The values MUST | algorithms that the client indicates as understood. The values | |||
| be in descending order of preference, with the most preferred | SHOULD be in descending order of preference, with the most preferred | |||
| algorithm first. For example, if a validating client implements RSA/ | algorithm first. For example, if a validating client implements RSA/ | |||
| SHA-1, RSA/SHA-256 and prefers the latter, the value of ALG-CODE | SHA-1, RSA/SHA-256 and prefers the latter, the value of ALG-CODE | |||
| would be: 8 (RSA/SHA-256), 5 (RSA/SHA-1). | would be: 8 (RSA/SHA-256), 5 (RSA/SHA-1). | |||
| DS-HASH-LIST-LENGTH is the length of the list of hash algorithms in | ||||
| octets. DNSSEC DS hash codes are 1 octet long so this value is the | ||||
| number of octets. | ||||
| HASH-CODE is the list of assigned values of DNSSEC DS hash algorithms | ||||
| that the client indicates as understood. Like the ALG-CODE above, | ||||
| the values SHOULD be in descending order of preference, with the most | ||||
| preferred algorithm first. | ||||
| 3. Client Considerations | 3. Client Considerations | |||
| A validating end-system resolver sets the AU option in the OPT | A validating end-system resolver sets the AU option in the OPT | |||
| meta-RR when sending a query. The validating end-system resolver | meta-RR when sending a query. The validating end-system resolver | |||
| sets the value(s) in the order of preference, with the most preferred | sets the value(s) in the order of preference, with the most preferred | |||
| algorithm first as described in section 2. The end-system resolver | algorithm(s) first as described in section 2. The end-system | |||
| MUST also set the DNSSEC-OK bit [RFC4035] to indicate that it wishes | resolver MUST also set the DNSSEC-OK bit [RFC4035] to indicate that | |||
| to receive DNSSEC RRs in the response. | it wishes to receive DNSSEC RRs in the response. | |||
| Note that when including the PRIVATEDNS (253) and/or the PRIVATEOID | Note that when including the PRIVATEDNS (253) and/or the PRIVATEOID | |||
| (254) codes, the client only indicates that it understands one or | (254) codes, the client only indicates that it understands one or | |||
| more private algorithms but does not indicate which algorithms. | more private algorithms but does not indicate which algorithms. | |||
| 3.1. Recommendations for Stub Clients | 3.1. Recommendations for Stub Clients | |||
| Typically, stub resolvers rely on an upstream recursive server (or | Typically, stub resolvers rely on an upstream recursive server (or | |||
| cache) to provide a response; any algorithm supportence on the stub | cache) to provide a response; any algorithm support on the stub | |||
| resolver's side could be overruled by the upstream recursive server. | resolver's side could be overruled by the upstream recursive server. | |||
| The AU EDNS option is NOT RECOMMENDED for non-validating stub | The AU EDNS option is NOT RECOMMENDED for non-validating stub | |||
| clients. | clients. | |||
| The exception to the above is that validating stub resolvers which | The exception to the above is that validating stub resolvers which | |||
| set the CD bit in queries MAY set the AU option. In the most common | set the CD bit in queries MAY set the AU option. In the most common | |||
| scenario, the validating stub indicates that it wishes to perform its | scenario, the validating stub indicates that it wishes to perform its | |||
| own validation (via the CD bit) and may therefore wish to indicate | own validation (via the CD bit) and may therefore wish to indicate | |||
| which cryptographic algorithm(s) it supports. | which cryptographic algorithm(s) it supports. | |||
| End of changes. 21 change blocks. | ||||
| 51 lines changed or deleted | 62 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||