Sync usage with man page.
[netbsd-mini2440.git] / external / bsd / bind / dist / doc / rfc / rfc3755.txt
bloba9a7cf269298ae88cb9176bcc0b1f07ae4a3190d
7 Network Working Group                                          S. Weiler
8 Request for Comments: 3755                                  SPARTA, Inc.
9 Updates: 3658, 2535                                             May 2004
10 Category: Standards Track
13         Legacy Resolver Compatibility for Delegation Signer (DS)
15 Status of this Memo
17    This document specifies an Internet standards track protocol for the
18    Internet community, and requests discussion and suggestions for
19    improvements.  Please refer to the current edition of the "Internet
20    Official Protocol Standards" (STD 1) for the standardization state
21    and status of this protocol.  Distribution of this memo is unlimited.
23 Copyright Notice
25    Copyright (C) The Internet Society (2004).  All Rights Reserved.
27 Abstract
29    As the DNS Security (DNSSEC) specifications have evolved, the syntax
30    and semantics of the DNSSEC resource records (RRs) have changed.
31    Many deployed nameservers understand variants of these semantics.
32    Dangerous interactions can occur when a resolver that understands an
33    earlier version of these semantics queries an authoritative server
34    that understands the new delegation signer semantics, including at
35    least one failure scenario that will cause an unsecured zone to be
36    unresolvable.  This document changes the type codes and mnemonics of
37    the DNSSEC RRs (SIG, KEY, and NXT) to avoid those interactions.
39 1.  Introduction
41    The DNSSEC protocol has been through many iterations whose syntax and
42    semantics are not completely compatible.  This has occurred as part
43    of the ordinary process of proposing a protocol, implementing it,
44    testing it in the increasingly complex and diverse environment of the
45    Internet, and refining the definitions of the initial Proposed
46    Standard.  In the case of DNSSEC, the process has been complicated by
47    DNS's criticality and wide deployment and the need to add security
48    while minimizing daily operational complexity.
50    A weak area for previous DNS specifications has been lack of detail
51    in specifying resolver behavior, leaving implementors largely on
52    their own to determine many details of resolver function.  This,
53    combined with the number of iterations the DNSSEC specifications have
54    been through, has resulted in fielded code with a wide variety of
58 Weiler                      Standards Track                     [Page 1]
60 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
63    behaviors.  This variety makes it difficult to predict how a protocol
64    change will be handled by all deployed resolvers.  The risk that a
65    change will cause unacceptable or even catastrophic failures makes it
66    difficult to design and deploy a protocol change.  One strategy for
67    managing that risk is to structure protocol changes so that existing
68    resolvers can completely ignore input that might confuse them or
69    trigger undesirable failure modes.
71    This document addresses a specific problem caused by Delegation
72    Signer's (DS) [RFC3658] introduction of new semantics for the NXT RR
73    that are incompatible with the semantics in [RFC2535].  Answers
74    provided by DS-aware servers can trigger an unacceptable failure mode
75    in some resolvers that implement RFC 2535, which provides a great
76    disincentive to sign zones with DS.  The changes defined in this
77    document allow for the incremental deployment of DS.
79 1.1.  Terminology
81    In this document, the term "unsecure delegation" means any delegation
82    for which no DS record appears at the parent.  An "unsecure referral"
83    is an answer from the parent containing an NS RRset and a proof that
84    no DS record exists for that name.
86    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
87    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
88    document are to be interpreted as described in [RFC2119].
90 1.2.  The Problem
92    Delegation Signer (DS) introduces new semantics for the NXT RR that
93    are incompatible with the semantics in RFC 2535.  In RFC 2535, NXT
94    records were only required to be returned as part of a non-existence
95    proof.  With DS, an unsecure referral returns, in addition to the NS,
96    a proof of non-existence of a DS RR in the form of an NXT and
97    SIG(NXT).  RFC 2535 didn't specify how a resolver was to interpret a
98    response with RCODE=0, AA=0, and both an NS and an NXT in the
99    authority section.  Some widely deployed 2535-aware resolvers
100    interpret any answer with an NXT as a proof of non-existence of the
101    requested record.  This results in unsecure delegations being
102    invisible to 2535-aware resolvers and violates the basic
103    architectural principle that DNSSEC must do no harm -- the signing of
104    zones must not prevent the resolution of unsecured delegations.
106 2.  Possible Solutions
108    This section presents several solutions that were considered.
109    Section 3 describes the one selected.
114 Weiler                      Standards Track                     [Page 2]
116 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
119 2.1.  Change SIG, KEY, and NXT type codes
121    To avoid the problem described above, legacy (RFC2535-aware)
122    resolvers need to be kept from seeing unsecure referrals that include
123    NXT records in the authority section.  The simplest way to do that is
124    to change the type codes for SIG, KEY, and NXT.
126    The obvious drawback to this is that new resolvers will not be able
127    to validate zones signed with the old RRs.  This problem already
128    exists, however, because of the changes made by DS, and resolvers
129    that understand the old RRs (and have compatibility issues with DS)
130    are far more prevalent than 2535-signed zones.
132 2.2.  Change a subset of type codes
134    The observed problem with unsecure referrals could be addressed by
135    changing only the NXT type code or another subset of the type codes
136    that includes NXT.  This has the virtue of apparent simplicity, but
137    it risks introducing new problems or not going far enough.  It's
138    quite possible that more incompatibilities exist between DS and
139    earlier semantics.  Legacy resolvers may also be confused by seeing
140    records they recognize (SIG and KEY) while being unable to find NXTs.
141    Although it may seem unnecessary to fix that which is not obviously
142    broken, it's far cleaner to change all of the type codes at once.
143    This will leave legacy resolvers and tools completely blinded to
144    DNSSEC -- they will see only unknown RRs.
146 2.3.  Replace the DO bit
148    Another way to keep legacy resolvers from ever seeing DNSSEC records
149    with DS semantics is to have authoritative servers only send that
150    data to DS-aware resolvers.  It's been proposed that assigning a new
151    EDNS0 flag bit to signal DS-awareness (tentatively called "DA"), and
152    having authoritative servers send DNSSEC data only in response to
153    queries with the DA bit set, would accomplish this.  This bit would
154    presumably supplant the DO bit described in [RFC3225].
156    This solution is sufficient only if all 2535-aware resolvers zero out
157    EDNS0 flags that they don't understand.  If one passed through the DA
158    bit unchanged, it would still see the new semantics, and it would
159    probably fail to see unsecure delegations.  Since it's impractical to
160    know how every DNS implementation handles unknown EDNS0 flags, this
161    is not a universal solution.  It could, though, be considered in
162    addition to changing the RR type codes.
170 Weiler                      Standards Track                     [Page 3]
172 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
175 2.4.  Increment the EDNS version
177    Another possible solution is to increment the EDNS version number as
178    defined in [RFC2671], on the assumption that all existing
179    implementations will reject higher versions than they support, and
180    retain the DO bit as the signal for DNSSEC awareness.  This approach
181    has not been tested.
183 2.5.  Do nothing
185    There is a large deployed base of DNS resolvers that understand
186    DNSSEC as defined by the standards track RFC 2535 and [RFC2065] and,
187    due to under specification in those documents, interpret any answer
188    with an NXT as a non-existence proof.  So long as that is the case,
189    zone owners will have a strong incentive to not sign any zones that
190    contain unsecure delegations, lest those delegations be invisible to
191    such a large installed base.  This will dramatically slow DNSSEC
192    adoption.
194    Unfortunately, without signed zones there's no clear incentive for
195    operators of resolvers to upgrade their software to support the new
196    version of DNSSEC, as defined in RFC 3658.  Historical data suggests
197    that resolvers are rarely upgraded, and that old nameserver code
198    never dies.
200    Rather than wait years for resolvers to be upgraded through natural
201    processes before signing zones with unsecure delegations, addressing
202    this problem with a protocol change will immediately remove the
203    disincentive for signing zones and allow widespread deployment of
204    DNSSEC.
206 3.  Protocol changes
208    This document changes the type codes of SIG, KEY, and NXT.  This
209    approach is the cleanest and safest of those discussed above, largely
210    because the behavior of resolvers that receive unknown type codes is
211    well understood.  This approach has also received the most testing.
213    To avoid operational confusion, it's also necessary to change the
214    mnemonics for these RRs.  DNSKEY will be the replacement for KEY,
215    with the mnemonic indicating that these keys are not for application
216    use, per [RFC3445].  RRSIG (Resource Record SIGnature) will replace
217    SIG, and NSEC (Next SECure) will replace NXT.  These new types
218    completely replace the old types, except that SIG(0) [RFC2931] and
219    TKEY [RFC2930] will continue to use SIG and KEY.
226 Weiler                      Standards Track                     [Page 4]
228 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
231    The new types will have exactly the same syntax and semantics as
232    specified for SIG, KEY, and NXT in RFC 2535 and RFC 3658 except for
233    the following:
235    1) Consistent with [RFC3597], domain names embedded in RRSIG and NSEC
236       RRs MUST NOT be compressed,
238    2) Embedded domain names in RRSIG and NSEC RRs are not downcased for
239       purposes of DNSSEC canonical form and ordering nor for equality
240       comparison, and
242    3) An RRSIG with a type-covered field of zero has undefined
243       semantics.  The meaning of such a resource record may only be
244       defined by IETF Standards Action.
246    If a resolver receives the old types, it SHOULD treat them as unknown
247    RRs and SHOULD NOT assign any special meaning to them or give them
248    any special treatment.  It MUST NOT use them for DNSSEC validations
249    or other DNS operational decision making.  For example, a resolver
250    MUST NOT use DNSKEYs to validate SIGs or use KEYs to validate RRSIGs.
251    If SIG, KEY, or NXT RRs are included in a zone, they MUST NOT receive
252    special treatment.  As an example, if a SIG is included in a signed
253    zone, there MUST be an RRSIG for it.  Authoritative servers may wish
254    to give error messages when loading zones containing SIG or NXT
255    records (KEY records may be included for SIG(0) or TKEY).
257    As a clarification to previous documents, some positive responses,
258    particularly wildcard proofs and unsecure referrals, will contain
259    NSEC RRs.  Resolvers MUST NOT treat answers with NSEC RRs as negative
260    answers merely because they contain an NSEC.
262 4.  IANA Considerations
264 4.1.  DNS Resource Record Types
266    This document updates the IANA registry for DNS Resource Record Types
267    by assigning types 46, 47, and 48 to the RRSIG, NSEC, and DNSKEY RRs,
268    respectively.
270    Types 24 and 25 (SIG and KEY) are retained for SIG(0) [RFC2931] and
271    TKEY [RFC2930] use only.
273    Type 30 (NXT) should be marked as Obsolete.
282 Weiler                      Standards Track                     [Page 5]
284 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
287 4.2.  DNS Security Algorithm Numbers
289    To allow zone signing (DNSSEC) and transaction security mechanisms
290    (SIG(0) and TKEY) to use different sets of algorithms, the existing
291    "DNS Security Algorithm Numbers" registry is modified to include the
292    applicability of each algorithm.  Specifically, two new columns are
293    added to the registry, showing whether each algorithm may be used for
294    zone signing, transaction security mechanisms, or both.  Only
295    algorithms usable for zone signing may be used in DNSKEY, RRSIG, and
296    DS RRs.  Only algorithms usable for SIG(0) and/or TSIG may be used in
297    SIG and KEY RRs.
299    All currently defined algorithms except for Indirect (algorithm 252)
300    remain usable for transaction security mechanisms.  Only RSA/SHA-1
301    [RFC3110], DSA/SHA-1 [RFC2536], and private algorithms (types 253 and
302    254) may be used for zone signing.  Note that the registry does not
303    contain the requirement level of each algorithm, only whether or not
304    an algorithm may be used for the given purposes.  For example,
305    RSA/MD5, while allowed for transaction security mechanisms, is NOT
306    RECOMMENDED, per [RFC3110].
308    Additionally, the presentation format algorithm mnemonics from
309    [RFC2535] Section 7 are added to the registry.  This document assigns
310    RSA/SHA-1 the mnemonic RSASHA1.
312    As before, assignment of new algorithms in this registry requires
313    IETF Standards Action.  Additionally, modification of algorithm
314    mnemonics or applicability requires IETF Standards Action.  Documents
315    defining a new algorithm must address the applicability of the
316    algorithm and should assign a presentation mnemonic to the algorithm.
318 4.3.  DNSKEY Flags
320    Like the KEY resource record, DNSKEY contains a 16-bit flags field.
321    This document creates a new registry for the DNSKEY flags field.
323    Initially, this registry only contains an assignment for bit 7 (the
324    ZONE bit).  Bits 0-6 and 8-15 are available for assignment by IETF
325    Standards Action.
327 4.4.  DNSKEY Protocol Octet
329    Like the KEY resource record, DNSKEY contains an eight bit protocol
330    field.  The only defined value for this field is 3 (DNSSEC).  No
331    other values are allowed, hence no IANA registry is needed for this
332    field.
338 Weiler                      Standards Track                     [Page 6]
340 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
343 5.  Security Considerations
345    The changes introduced here do not materially affect security.  The
346    implications of trying to use both new and legacy types together are
347    not well understood, and attempts to do so would probably lead to
348    unintended and dangerous results.
350    Changing type codes will leave code paths in legacy resolvers that
351    are never exercised.  Unexercised code paths are a frequent source of
352    security holes, largely because those code paths do not get frequent
353    scrutiny.
355    Doing nothing, as described in section 2.5, will slow DNSSEC
356    deployment.  While this does not decrease security, it also fails to
357    increase it.
359 6.  References
361 6.1.  Normative References
363    [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
364              Requirement Levels", BCP 14, RFC 2119, March 1997.
366    [RFC2535] Eastlake, D., "Domain Name System Security Extensions", RFC
367              2535, March 1999.
369    [RFC2536] Eastlake, D., "DSA KEYs and SIGs in the Domain Name System
370              (DNS)", RFC 2536, March 1999.
372    [RFC2930] Eastlake, D., "Secret Key Establishment for DNS (TKEY RR)",
373              RFC 2930, September 2000.
375    [RFC2931] Eastlake, D., "DNS Request and Transaction Signatures
376              (SIG(0)s)", RFC 2931, September 2000.
378    [RFC3110] Eastlake, D., "RSA/SHA-1 SIGs and RSA KEYs in the Domain
379              Name System (DNS)", RFC 3110, May 2001.
381    [RFC3658] Gudmundsson, O., "Delegation Signer (DS) Resource Record
382              (RR)", RFC 3658, December 2003.
394 Weiler                      Standards Track                     [Page 7]
396 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
399 6.2.  Informative References
401    [RFC2065] Eastlake, 3rd, D. and C. Kaufman, "Domain Name System
402              Security Extensions", RFC 2065, January 1997.
404    [RFC2671] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC
405              2671, August 1999.
407    [RFC3225] Conrad, D., "Indicating Resolver Support of DNSSEC", RFC
408              3225, December 2001.
410    [RFC3445] Massey, D., and S. Rose, "Limiting the Scope of the KEY
411              Resource Record (RR)", RFC 3445, December 2002.
413    [RFC3597] Gustafsson, A., "Handling of Unknown DNS Resource Record
414              (RR) Types", RFC 3597, September 2003.
416 7.  Acknowledgments
418    The changes introduced here and the analysis of alternatives had many
419    contributors.  With apologies to anyone overlooked, those include:
420    Michael Graff, Johan Ihren, Olaf Kolkman, Mark Kosters, Ed Lewis,
421    Bill Manning, Paul Vixie, and Suzanne Woolf.
423    Thanks to Jakob Schlyter and Mark Andrews for identifying the
424    incompatibility described in section 1.2.
426    In addition to the above, the author would like to thank Scott Rose,
427    Olafur Gudmundsson, and Sandra Murphy for their substantive comments.
429 8.  Author's Address
431    Samuel Weiler
432    SPARTA, Inc.
433    7075 Samuel Morse Drive
434    Columbia, MD 21046
435    USA
437    EMail: weiler@tislabs.com
450 Weiler                      Standards Track                     [Page 8]
452 RFC 3755          Legacy Resolver Compatibility for DS          May 2004
455 9.  Full Copyright Statement
457    Copyright (C) The Internet Society (2004).  This document is subject
458    to the rights, licenses and restrictions contained in BCP 78, and
459    except as set forth therein, the authors retain all their rights.
461    This document and the information contained herein are provided on an
462    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
463    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
464    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
465    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
466    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
467    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
469 Intellectual Property
471    The IETF takes no position regarding the validity or scope of any
472    Intellectual Property Rights or other rights that might be claimed to
473    pertain to the implementation or use of the technology described in
474    this document or the extent to which any license under such rights
475    might or might not be available; nor does it represent that it has
476    made any independent effort to identify any such rights.  Information
477    on the procedures with respect to rights in RFC documents can be
478    found in BCP 78 and BCP 79.
480    Copies of IPR disclosures made to the IETF Secretariat and any
481    assurances of licenses to be made available, or the result of an
482    attempt made to obtain a general license or permission for the use of
483    such proprietary rights by implementers or users of this
484    specification can be obtained from the IETF on-line IPR repository at
485    http://www.ietf.org/ipr.
487    The IETF invites any interested party to bring to its attention any
488    copyrights, patents or patent applications, or other proprietary
489    rights that may cover technology that may be required to implement
490    this standard.  Please address the information to the IETF at ietf-
491    ipr@ietf.org.
493 Acknowledgement
495    Funding for the RFC Editor function is currently provided by the
496    Internet Society.
506 Weiler                      Standards Track                     [Page 9]