📄 draft-ietf-dnsext-dnssec-2535typecode-change-06.txt
字号:
INTERNET-DRAFT Samuel WeilerExpires: June 2004 December 15, 2003Updates: RFC 2535, [DS] Legacy Resolver Compatibility for Delegation Signer draft-ietf-dnsext-dnssec-2535typecode-change-06.txtStatus of this Memo This document is an Internet-Draft and is subject to all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Comments should be sent to the author or to the DNSEXT WG mailing list: namedroppers@ops.ietf.orgAbstract As the DNS Security (DNSSEC) specifications have evolved, the syntax and semantics of the DNSSEC resource records (RRs) have changed. Many deployed nameservers understand variants of these semantics. Dangerous interactions can occur when a resolver that understands an earlier version of these semantics queries an authoritative server that understands the new delegation signer semantics, including at least one failure scenario that will cause an unsecured zone to be unresolvable. This document changes the type codes and mnemonics of the DNSSEC RRs (SIG, KEY, and NXT) to avoid those interactions.Changes between 05 and 06: Signifigantly reworked the IANA section -- went back to one algorithm registry. Removed Diffie-Hellman from the list of zone-signing algorithms (leaving only DSA, RSA/SHA-1, and private algorithms). Added a DNSKEY flags field registry.Changes between 04 and 05: IESG approved publication. Cleaned up an internal reference in the acknowledgements section. Retained KEY and SIG for TKEY, too. Added TKEY (2930) reference. Changed the names of both new registries. Added algorithm mnemonics to the new zone signing algorithm registry. Minor rewording in the IANA section for clarity. Cleaned up formatting of references. Replaced unknown-rr draft references with RFC3597. Bumped DS version number.Changes between 03 and 04: Clarified that RRSIG(0) may be defined by standards action. Created a new algorithm registry and renamed the old algorithm registry for SIG(0) only. Added references to the appropriate crypto algorithm and format specifications. Several minor rephrasings.Changes between 02 and 03: KEY (as well as SIG) retained for SIG(0) use only.Changes between 01 and 02: SIG(0) still uses SIG, not RRSIG. Added 2931 reference. Domain names embedded in NSECs and RRSIGs are not compressible and are not downcased. Added unknown-rrs reference (as informative). Simplified the last paragraph of section 3 (NSEC doesn't always signal a negative answer). Changed the suggested type code assignments. Added 2119 reference. Added definitions of "unsecure delegation" and "unsecure referral", since they're not clearly defined elsewhere. Moved 2065 to informative references, not normative.1. Introduction The DNSSEC protocol has been through many iterations whose syntax and semantics are not completely compatible. This has occurred as part of the ordinary process of proposing a protocol, implementing it, testing it in the increasingly complex and diverse environment of the Internet, and refining the definitions of the initial Proposed Standard. In the case of DNSSEC, the process has been complicated by DNS's criticality and wide deployment and the need to add security while minimizing daily operational complexity. A weak area for previous DNS specifications has been lack of detail in specifying resolver behavior, leaving implementors largely on their own to determine many details of resolver function. This, combined with the number of iterations the DNSSEC spec has been through, has resulted in fielded code with a wide variety of behaviors. This variety makes it difficult to predict how a protocol change will be handled by all deployed resolvers. The risk that a change will cause unacceptable or even catastrophic failures makes it difficult to design and deploy a protocol change. One strategy for managing that risk is to structure protocol changes so that existing resolvers can completely ignore input that might confuse them or trigger undesirable failure modes. This document addresses a specific problem caused by Delegation Signer's [DS] introduction of new semantics for the NXT RR that are incompatible with the semantics in RFC 2535 [RFC2535]. Answers provided by DS-aware servers can trigger an unacceptable failure mode in some resolvers that implement RFC 2535, which provides a great disincentive to sign zones with DS. The changes defined in this document allow for the incremental deployment of DS.1.1 Terminology In this document, the term "unsecure delegation" means any delegation for which no DS record appears at the parent. An "unsecure referral" is an answer from the parent containing an NS RRset and a proof that no DS record exists for that name. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].1.2 The Problem Delegation Signer introduces new semantics for the NXT RR that are incompatible with the semantics in RFC 2535. In RFC 2535, NXT records were only required to be returned as part of a non-existence proof. With DS, an unsecure referral returns, in addition to the NS, a proof of non-existence of a DS RR in the form of an NXT and SIG(NXT). RFC 2535 didn't specify how a resolver was to interpret a response with both an NS and an NXT in the authority section, RCODE=0, and AA=0. Some widely deployed 2535-aware resolvers interpret any answer with an NXT as a proof of non-existence of the requested record. This results in unsecure delegations being invisible to 2535-aware resolvers and violates the basic architectural principle that DNSSEC must do no harm -- the signing of zones must not prevent the resolution of unsecured delegations.2. Possible Solutions This section presents several solutions that were considered. Section 3 describes the one selected.2.1. Change SIG, KEY, and NXT type codes To avoid the problem described above, legacy (RFC2535-aware) resolvers need to be kept from seeing unsecure referrals that include NXT records in the authority section. The simplest way to do that is to change the type codes for SIG, KEY, and NXT. The obvious drawback to this is that new resolvers will not be able to validate zones signed with the old RRs. This problem already exists, however, because of the changes made by DS, and resolvers that understand the old RRs (and have compatibility issues with DS) are far more prevalent than 2535-signed zones.2.2. Change a subset of type codes The observed problem with unsecure referrals could be addressed by changing only the NXT type code or another subset of the type codes that includes NXT. This has the virtue of apparent simplicity, but it risks introducing new problems or not going far enough. It's quite possible that more incompatibilities exist between DS and earlier semantics. Legacy resolvers may also be confused by seeing records they recognize (SIG and KEY) while being unable to find NXTs. Although it may seem unnecessary to fix that which is not obviously broken, it's far cleaner to change all of the type codes at once. This will leave legacy resolvers and tools completely blinded to DNSSEC -- they will see only unknown RRs.2.3. Replace the DO bit Another way to keep legacy resolvers from ever seeing DNSSEC records with DS semantics is to have authoritative servers only send that data to DS-aware resolvers. It's been proposed that assigning a new EDNS0 flag bit to signal DS-awareness (tentatively called "DA"), and having authoritative servers send DNSSEC data only in response to queries with the DA bit set, would accomplish this. This bit would presumably supplant the DO bit described in RFC 3225. This solution is sufficient only if all 2535-aware resolvers zero out EDNS0 flags that they don't understand. If one passed through the DA bit unchanged, it would still see the new semantics, and it would probably fail to see unsecure delegations. Since it's impractical to know how every DNS implementation handles unknown EDNS0 flags, this is not a universal solution. It could, though, be considered in addition to changing the RR type codes.2.4. Increment the EDNS version Another possible solution is to increment the EDNS version number as defined in RFC 2671 [RFC2671], on the assumption that all existing implementations will reject higher versions than they support, and retain the DO bit as the signal for DNSSEC awareness.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -