| < draft-ietf-dnsext-dnssec-algo-signal-09.txt | draft-ietf-dnsext-dnssec-algo-signal-10.txt > | |||
|---|---|---|---|---|
| DNS Extensions Working Group S. Crocker | DNS Extensions Working Group S. Crocker | |||
| Internet-Draft Shinkuro Inc. | Internet-Draft Shinkuro Inc. | |||
| Intended status: Standards Track S. Rose | Intended status: Standards Track S. Rose | |||
| Expires: March 28, 2013 NIST | Expires: October 10, 2013 NIST | |||
| September 24, 2012 | April 08, 2013 | |||
| Signaling Cryptographic Algorithm Understanding in DNSSEC | Signaling Cryptographic Algorithm Understanding in DNSSEC | |||
| draft-ietf-dnsext-dnssec-algo-signal-09 | draft-ietf-dnsext-dnssec-algo-signal-10 | |||
| 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 digital | validating end-system resolvers to signal to a server which digital | |||
| signature and hash algorithms they support. | signature and hash algorithms they support. The proposed extensions | |||
| allow the signaling of new algorithm uptake in client code to allow | ||||
| zone administrators to know when it is possible to complete an | ||||
| algorithm rollover in a DNSSEC signed zone. | ||||
| 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", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in RFC | "OPTIONAL" in this document are to be interpreted as described in RFC | |||
| 2119 [RFC2119]. | 2119 [RFC2119]. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 43 ¶ | skipping to change at page 1, line 46 ¶ | |||
| 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). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| 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 March 28, 2013. | This Internet-Draft will expire on October 10, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | ||||
| Copyright (c) 2012 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 Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Signaling DNSSEC Algorithm Understood (DAU), DS Hash | 2. Signaling DNSSEC Algorithm Understood (DAU), DS Hash | |||
| Understood (DHU) and NSEC3 Hash Understood (N3U) Using EDNS . . 3 | Understood (DHU) and NSEC3 Hash Understood (N3U) Using EDNS . 3 | |||
| 3. Client Considerations . . . . . . . . . . . . . . . . . . . . 4 | ||||
| 3. Client Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Stub Resolvers . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. Stub Resolvers . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1.1. Validating Stub Resolvers . . . . . . . . . . . . . . 5 | |||
| 3.1.1. Validating Stub Resolvers . . . . . . . . . . . . . . . 5 | 3.1.2. Non-Validating Stub Resolvers . . . . . . . . . . . . 5 | |||
| 3.1.2. Non-Validating Stub Resolvers . . . . . . . . . . . . . 5 | 3.2. Recursive Resolvers . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. Recursive Resolvers . . . . . . . . . . . . . . . . . . . . 5 | 3.2.1. Validating Recursive Resolvers . . . . . . . . . . . 5 | |||
| 3.2.1. Validating Recursive Resolvers . . . . . . . . . . . . 5 | 3.2.2. Non-validating Recursive Resolvers . . . . . . . . . 6 | |||
| 3.2.2. Non-validating Recursive Resolvers . . . . . . . . . . 6 | 4. Intermediate System Considerations . . . . . . . . . . . . . 6 | |||
| 5. Server Considerations . . . . . . . . . . . . . . . . . . . . 6 | ||||
| 4. Intermediate System Considerations . . . . . . . . . . . . . . 6 | 6. Traffic Analysis Considerations . . . . . . . . . . . . . . . 6 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | ||||
| 5. Server Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 | ||||
| 6. Traffic Analysis Considerations . . . . . . . . . . . . . . . . 6 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 | ||||
| 9. Normative References . . . . . . . . . . . . . . . . . . . . . 7 | ||||
| 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 tell validators which cryptographic algorithm | These algorithm codes tell validators which cryptographic algorithm | |||
| was used to generate the digital signature. | was used to generate the digital signature. | |||
| Likewise, Delegation Signer (DS) RRs and NSEC3 RRs use a hashed value | Likewise, Delegation Signer (DS) RRs and NSEC3 RRs use a hashed value | |||
| as part of their RDATA and, like digital signature algorithms, these | as part of their RDATA and, like digital signature algorithms, these | |||
| hash algorithms have code numbers. All three algorithm codes (RRSIG/ | hash algorithms have code numbers. All three algorithm codes (RRSIG/ | |||
| DNSKEY, DS and NSEC3) are maintained in unique IANA registries. | DNSKEY, DS and NSEC3) are maintained in unique IANA registries. | |||
| 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 tell a server in a DNS query which digital signature | resolvers to tell a server in a DNS query which digital signature and | |||
| and/or hash algorithms they support. This is done using the new EDNS | /or hash algorithms they support. This is done using the new EDNS | |||
| options specified below in Section 2 for use in the OPT meta-RR | options specified below in Section 2 for use in the OPT meta-RR | |||
| [I-D.ietf-dnsext-rfc2671bis-edns0]. These three new EDNS option | [I-D.ietf-dnsext-rfc2671bis-edns0]. These three new EDNS option | |||
| codes are all OPTIONAL to implement and use. | codes are all OPTIONAL to implement and use. | |||
| These proposed EDNS options serve to measure the acceptance and use | These proposed EDNS options serve to measure the acceptance and use | |||
| of new digital signing algorithms. These signaling options can be | of new digital signing algorithms. These signaling options can be | |||
| used by zone administrators as a gauge to measure the successful | used by zone administrators as a gauge to measure the successful | |||
| deployment of code that implements newly deployed digital signature | deployment of code that implements newly deployed digital signature | |||
| algorithm, DS hash and NSEC3 hash algorithm used with DNSSEC. A zone | algorithm, DS hash and NSEC3 hash algorithm used with DNSSEC. A zone | |||
| administrator is able to determine when to stop signing with a | administrator is able to determine when to stop signing with a | |||
| skipping to change at page 4, line 46 ¶ | skipping to change at page 4, line 40 ¶ | |||
| algorithms, DS hash algorithms, or NSEC3 hash algorithms (depending | algorithms, DS hash algorithms, or NSEC3 hash algorithms (depending | |||
| on the OPTION-CODE in use) that the client declares to be supported. | on the OPTION-CODE in use) that the client declares to be supported. | |||
| The order of the code values can be arbitrary and MUST NOT be used to | The order of the code values can be arbitrary and MUST NOT be used to | |||
| infer preference. | infer preference. | |||
| If all three options are included in the OPT RR, there is a potential | If all three options are included in the OPT RR, there is a potential | |||
| for the OPT RR to take up considerable size in the DNS message. | for the OPT RR to take up considerable size in the DNS message. | |||
| However, in practical terms, including all three options is likely to | However, in practical terms, including all three options is likely to | |||
| take up 22-32 octets (average of 6-10 digital signature algorithms, | take up 22-32 octets (average of 6-10 digital signature algorithms, | |||
| 3-5 DS hash algorithms and 1-5 NSEC3 hash algorithms) including the | 3-5 DS hash algorithms and 1-5 NSEC3 hash algorithms) including the | |||
| EDNS option codes and option lengths in a potential future example. | EDNS option codes and option lengths in potential future examples. | |||
| 3. Client Considerations | 3. Client Considerations | |||
| A validating end-system resolver sets the DAU, DHU and/or N3U option, | A validating end-system resolver sets the DAU, DHU and/or N3U option, | |||
| or combination thereof in the OPT meta-RR when sending a query. The | or combination thereof in the OPT meta-RR when sending a query. The | |||
| validating end-system resolver MUST also set the DNSSEC-OK bit | validating end-system resolver MUST also set the DNSSEC-OK bit | |||
| [RFC4035] to indicate that it wishes to receive DNSSEC RRs in the | [RFC4035] to indicate that it wishes to receive DNSSEC RRs in the | |||
| response. | response. | |||
| Note that the PRIVATEDNS (253) and/or the PRIVATEOID (254) digital | Note that the PRIVATEDNS (253) and/or the PRIVATEOID (254) digital | |||
| signature codes both cover a potentially wide range of algorithms and | signature codes both cover a potentially wide range of algorithms and | |||
| are likely not useful to a server. There is no compelling reason for | are likely not useful to a server. There is no compelling reason for | |||
| a client to include these codes in its list of the DAU. Likewise, | a client to include these codes in its list of the DAU. Likewise, | |||
| clients MUST NOT include RESERVED codes in any of the options. | clients MUST NOT include RESERVED codes in any of the options. | |||
| Likewise, a client is under no obligation to list every algorithm it | ||||
| implements and MAY choose to only list algorithms the client wishes | ||||
| to signal as understood. | ||||
| Since the DAU, DHU and/or N3U options are only set in the query, if a | ||||
| client sees these options in the response, no action needs to be | ||||
| taken and the client MUST ignore the option values. | ||||
| 3.1. Stub Resolvers | 3.1. Stub Resolvers | |||
| 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. So optimal setting of the DAU, DSU and | cache) to provide a response. So optimal setting of the DAU, DSU and | |||
| N3U options depends on whether the stub resolver elects to perform | N3U options depends on whether the stub resolver elects to perform | |||
| its own validation. | its own validation. | |||
| 3.1.1. Validating Stub Resolvers | 3.1.1. Validating Stub Resolvers | |||
| skipping to change at page 5, line 47 ¶ | skipping to change at page 5, line 46 ¶ | |||
| validating stub resolvers. | validating stub resolvers. | |||
| 3.2. Recursive Resolvers | 3.2. Recursive Resolvers | |||
| 3.2.1. Validating Recursive Resolvers | 3.2.1. Validating Recursive Resolvers | |||
| A validating recursive resolver sets the DAU, DHU and/or N3U | A validating recursive resolver sets the DAU, DHU and/or N3U | |||
| option(s) when performing recursion based on its list of algorithms | option(s) when performing recursion based on its list of algorithms | |||
| and any DAU, DHU and/or N3U option lists in the stub client query. | and any DAU, DHU and/or N3U option lists in the stub client query. | |||
| When the recursive server receives a query with one or more of the | When the recursive server receives a query with one or more of the | |||
| options set, the recursive server MUST set the algorithm list to a | options set, the recursive server MUST set the algorithm list for any | |||
| union of the stub client's list and the validating recursive | outgoing iterative queries for that resolution chain to a union of | |||
| resolver's list. For example, if the recursive resolver's algorithm | the stub client's list and the validating recursive resolver's list. | |||
| list for the DAU option is (3, 5, 7) and the stub's algorithm list is | For example, if the recursive resolver's algorithm list for the DAU | |||
| (7, 8), the final DAU algorithm list would be (3, 5, 7, 8). | option is (3, 5, 7) and the stub's algorithm list is (7, 8), the | |||
| final DAU algorithm list would be (3, 5, 7, 8). | ||||
| If the client did include the DO and CD bits, but did not include the | If the client did include the DO and CD bits, but did not include the | |||
| DAU, DHU and/or N3U option(s) in the query, the validating recursive | DAU, DHU and/or N3U option(s) in the query, the validating recursive | |||
| resolver MAY include the option(s) with its own list in full. If one | resolver MAY include the option(s) with its own list in full. If one | |||
| or more of the options are missing, the validating recursive resolver | or more of the options are missing, the validating recursive resolver | |||
| MAY include the missing options with its own list in full. | MAY include the missing options with its own list in full. | |||
| Validating recursive resolvers MUST NOT set the DAU, DHU and/or N3U | ||||
| option(s) in the final response to the stub client. | ||||
| 3.2.2. Non-validating Recursive Resolvers | 3.2.2. Non-validating Recursive Resolvers | |||
| Recursive resolvers that do not do validation MUST copy the DAU, DHU | Recursive resolvers that do not do validation MUST copy the DAU, DHU | |||
| and/or N3U option(s) seen in received queries as they represent the | and/or N3U option(s) seen in received queries as they represent the | |||
| wishes of the validating downstream resolver that issued the original | wishes of the validating downstream resolver that issued the original | |||
| query. | query. | |||
| 4. Intermediate System Considerations | 4. Intermediate System Considerations | |||
| Intermediate proxies [RFC5625] that understand DNS are RECOMMENDED to | Intermediate proxies [RFC5625] (Section 4.4.2) that understand DNS | |||
| behave like a comparable recursive resolver when dealing with the | are RECOMMENDED to behave like a comparable recursive resolver when | |||
| DAU, DHU and N3U options. | dealing with the DAU, DHU and N3U options. | |||
| 5. Server Considerations | 5. Server Considerations | |||
| When an authoritative server sees the DAU, DHU and/or N3U option(s) | When an authoritative server sees the DAU, DHU and/or N3U option(s) | |||
| in the OPT meta-RR in a request the normal algorithm for servicing | in the OPT meta-RR in a request the normal algorithm for servicing | |||
| requests is followed. The options MUST NOT trigger any special | requests is followed. The options MUST NOT trigger any special | |||
| processing (e.g. RRSIG filtering in responses) on the server side. | processing (e.g. RRSIG filtering in responses) on the server side. | |||
| If the options are present but the DNSSEC-OK (OK) bit is not set, the | If the options are present but the DNSSEC-OK (OK) bit is not set, the | |||
| server does not do any DNSSEC processing, including any recording of | server does not do any DNSSEC processing, including any recording of | |||
| the option(s). | the option(s). | |||
| 6. Traffic Analysis Considerations | If the server sees one (or more) of the options set with RESERVED | |||
| values, the server MAY ignore recoding of those values. | ||||
| Authoritative servers MUST NOT set the DAU, DHU and/or N3U option(s) | ||||
| on any responses. These values are only set in queries. | ||||
| 6. Traffic Analysis Considerations | ||||
| Zone administrators that are planning or are in the process of a | Zone administrators that are planning or are in the process of a | |||
| cryptographic algorithm rollover operation should monitor DNS query | cryptographic algorithm rollover operation should monitor DNS query | |||
| traffic and record the number of queries, the presence of the OPT RR | traffic and record the number of queries, the presence of the OPT RR | |||
| in queries and the values of the DAU/DHU/N3U option(s) (if present). | in queries and the values of the DAU/DHU/N3U option(s) (if present). | |||
| This monitoring can be used to measure the deployment of client code | This monitoring can be used to measure the deployment of client code | |||
| that implements (and signals) specific algorithms. Description of | that implements (and signals) specific algorithms. Description of | |||
| the techniques used to capture DNS traffic and measure new algorithm | the techniques used to capture DNS traffic and measure new algorithm | |||
| adoption is beyond the scope of this document. | adoption is beyond the scope of this document. | |||
| Zone administrators that need to comply with changes to their | Zone administrators that need to comply with changes to their | |||
| skipping to change at page 7, line 42 ¶ | skipping to change at page 8, line 10 ¶ | |||
| There is a possibility that an eavesdropper or server could infer the | There is a possibility that an eavesdropper or server could infer the | |||
| validator in use by a client by the presence of the AU options and/or | validator in use by a client by the presence of the AU options and/or | |||
| algorithm code list. This information leakage in itself is not very | algorithm code list. This information leakage in itself is not very | |||
| useful to a potential attacker but it could be used to identify the | useful to a potential attacker but it could be used to identify the | |||
| validator or narrow down the possible validator implementations in | validator or narrow down the possible validator implementations in | |||
| use by a client, which could have a known vulnerability that could be | use by a client, which could have a known vulnerability that could be | |||
| exploited by the attacker. | exploited by the attacker. | |||
| 9. Normative References | 9. Normative References | |||
| [I-D.ietf-dnsext-rfc2671bis-edns0] Damas, J., Graff, M., and P. | [I-D.ietf-dnsext-rfc2671bis-edns0] | |||
| Vixie, "Extension Mechanisms for | Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms | |||
| DNS (EDNS0)", draft-ietf-dnsext- | for DNS (EDNS(0))", draft-ietf-dnsext-rfc2671bis-edns0-10 | |||
| rfc2671bis-edns0-09 (work in | (work in progress), December 2012. | |||
| progress), August 2012. | ||||
| [RFC2119] Bradner, S., "Key words for use | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| in RFCs to Indicate Requirement | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| Levels", BCP 14, RFC 2119, | ||||
| March 1997. | ||||
| [RFC4033] Arends, R., Austein, R., Larson, | [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| M., Massey, D., and S. Rose, "DNS | Rose, "DNS Security Introduction and Requirements", RFC | |||
| Security Introduction and | 4033, March 2005. | |||
| Requirements", RFC 4033, | ||||
| March 2005. | ||||
| [RFC4034] Arends, R., Austein, R., Larson, | [RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| M., Massey, D., and S. Rose, | Rose, "Resource Records for the DNS Security Extensions", | |||
| "Resource Records for the DNS | RFC 4034, March 2005. | |||
| Security Extensions", RFC 4034, | ||||
| March 2005. | ||||
| [RFC4035] Arends, R., Austein, R., Larson, | [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| M., Massey, D., and S. Rose, | Rose, "Protocol Modifications for the DNS Security | |||
| "Protocol Modifications for the | Extensions", RFC 4035, March 2005. | |||
| DNS Security Extensions", | ||||
| RFC 4035, March 2005. | ||||
| [RFC5625] Bellis, R., "DNS Proxy | [RFC5625] Bellis, R., "DNS Proxy Implementation Guidelines", BCP | |||
| Implementation Guidelines", | 152, RFC 5625, August 2009. | |||
| BCP 152, RFC 5625, August 2009. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Steve Crocker | Steve Crocker | |||
| Shinkuro Inc. | Shinkuro Inc. | |||
| 5110 Edgemoor Lane | 5110 Edgemoor Lane | |||
| Bethesda, MD 20814 | Bethesda, MD 20814 | |||
| USA | USA | |||
| EMail: steve@shinkuro.com | EMail: steve@shinkuro.com | |||
| End of changes. 21 change blocks. | ||||
| 69 lines changed or deleted | 70 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/ | ||||