]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
new draft
authorMark Andrews <marka@isc.org>
Wed, 19 May 2004 05:36:35 +0000 (05:36 +0000)
committerMark Andrews <marka@isc.org>
Wed, 19 May 2004 05:36:35 +0000 (05:36 +0000)
doc/draft/draft-ietf-dnsext-dnssec-intro-10.txt [moved from doc/draft/draft-ietf-dnsext-dnssec-intro-09.txt with 60% similarity]
doc/draft/draft-ietf-dnsext-dnssec-protocol-06.txt [moved from doc/draft/draft-ietf-dnsext-dnssec-protocol-05.txt with 54% similarity]
doc/draft/draft-ietf-dnsext-dnssec-records-08.txt [moved from doc/draft/draft-ietf-dnsext-dnssec-records-07.txt with 73% similarity]

similarity index 60%
rename from doc/draft/draft-ietf-dnsext-dnssec-intro-09.txt
rename to doc/draft/draft-ietf-dnsext-dnssec-intro-10.txt
index 8097d634558f05ceff59ffce11e9e4fd073d0156..5ac9cba56e7ffd50d0362194826a55ecc6b2f1a1 100644 (file)
-
-
-DNS Extensions                                                 R. Arends
-Internet-Draft                                      Telematica Instituut
-Expires: August 16, 2004                                      R. Austein
-                                                                     ISC
-                                                               M. Larson
-                                                                VeriSign
-                                                               D. Massey
-                                                                 USC/ISI
-                                                                 S. Rose
-                                                                    NIST
-                                                       February 16, 2004
-
-
-               DNS Security Introduction and Requirements
-                   draft-ietf-dnsext-dnssec-intro-09
-
-Status of this Memo
-
-   This document is an Internet-Draft and is in full conformance with
-   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/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 August 16, 2004.
-
-Copyright Notice
-
-   Copyright (C) The Internet Society (2004). All Rights Reserved.
-
-Abstract
-
-   The Domain Name System Security Extensions (DNSSEC) add data origin
-   authentication and data integrity to the Domain Name System.  This
-   document introduces these extensions, and describes their
-   capabilities and limitations.  This document also discusses the
-   services that the DNS security extensions do and do not provide.
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 1]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-   Last, this document describes the interrelationships between the
-   group of documents that collectively describe DNSSEC.
-
-Table of Contents
-
-   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
-   2.  Definitions of Important DNSSEC Terms  . . . . . . . . . . . .  4
-   3.  Services Provided by DNS Security  . . . . . . . . . . . . . .  7
-   3.1 Data Origin Authentication and Data Integrity  . . . . . . . .  7
-   3.2 Authenticating Name and Type Non-Existence . . . . . . . . . .  8
-   4.  Services Not Provided by DNS Security  . . . . . . . . . . . . 10
-   5.  Resolver Considerations  . . . . . . . . . . . . . . . . . . . 11
-   6.  Stub Resolver Considerations . . . . . . . . . . . . . . . . . 12
-   7.  Zone Considerations  . . . . . . . . . . . . . . . . . . . . . 13
-   7.1 TTL values vs. RRSIG validity period . . . . . . . . . . . . . 13
-   7.2 New Temporal Dependency Issues for Zones . . . . . . . . . . . 13
-   8.  Name Server Considerations . . . . . . . . . . . . . . . . . . 14
-   9.  DNS Security Document Family . . . . . . . . . . . . . . . . . 15
-   10. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 16
-   11. Security Considerations  . . . . . . . . . . . . . . . . . . . 17
-   12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 19
-       Normative References . . . . . . . . . . . . . . . . . . . . . 20
-       Informative References . . . . . . . . . . . . . . . . . . . . 21
-       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 22
-       Intellectual Property and Copyright Statements . . . . . . . . 24
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 2]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-1. Introduction
-
-   This document introduces the Domain Name System Security Extensions
-   (DNSSEC).  This document and its two companion documents
-   ([I-D.ietf-dnsext-dnssec-records] and
-   [I-D.ietf-dnsext-dnssec-protocol]) update, clarify, and refine the
-   security extensions defined in RFC 2535 [RFC2535] and its
-   predecessors. These security extensions consist of a set of new
-   resource record types and modifications to the existing DNS protocol
-   [RFC1035].  The new records and protocol modifications are not fully
-   described in this document, but are described in a family of
-   documents outlined in Section 9. Section 3 and Section 4 describe the
-   capabilities and limitations of the security extensions in greater
-   detail. Section 5, Section 6, Section 7, and Section 8 discuss the
-   effect that these security extensions will have on resolvers, stub
-   resolvers, zones and name servers.
-
-   This document and its two companions update and obsolete RFCs 2535
-   [RFC2535], 3008 [RFC3008], 3090 [RFC3090], 3226 [RFC3226], and 3445
-   [RFC3445], as well as several works in progress: "Redefinition of the
-   AD bit" [RFC3655], "Legacy Resolver Compatibility for Delegation
-   Signer" [I-D.ietf-dnsext-dnssec-2535typecode-change], and "Delegation
-   Signer Resource Record" [RFC3658].  This document set also updates,
-   but does not obsolete, RFCs 1034 [RFC1034], 1035 [RFC1035], 2136
-   [RFC2136], 2181 [RFC2181], 2308 [RFC2308] and 3597 [RFC3597].
-
-   The DNS security extensions provide origin authentication and
-   integrity protection for DNS data, as well as a means of public key
-   distribution.  These extensions do not provide confidentiality.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 3]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-2. Definitions of Important DNSSEC Terms
-
-   This section defines a number of terms used in this document set.
-   Since this is intended to be useful as a reference while reading the
-   rest of the document set, first-time readers may wish to skim this
-   section quickly, read the rest of this document, then come back to
-   this section.
-
-   authentication chain: an alternating sequence of DNSKEY RRsets and DS
-      RRsets forms a chain of signed data, with each link in the chain
-      vouching for the next.  A DNSKEY RR is used to verify the
-      signature covering a DS RR and allows the DS RR to be
-      authenticated.  The DS RR contains a hash of another DNSKEY RR and
-      this new DNSKEY RR is authenticated by matching the hash in the DS
-      RR.  This new DNSKEY RR in turn authenticates another DNSKEY RRset
-      and, in turn, some DNSKEY RR in this set may be used to
-      authenticate another DS RR and so forth until the chain finally
-      ends with a DNSKEY RR which signs the desired DNS data.  For
-      example, the root DNSKEY RRset can be used to authenticate the DS
-      RRset for "example."  The "example." DS RRset contains a hash that
-      matches some "example." DNSKEY and this DNSKEY signs the
-      "example." DNSKEY RRset.  Private key counterparts of the
-      "example." DNSKEY RRset sign data records such as "www.example."
-      as well as DS RRs for delegations such as "subzone.example."
-
-   authentication key: A public key which a security-aware resolver has
-      verified and can therefore use to authenticate data.  A
-      security-aware resolver can obtain authentication keys in three
-      ways.  First, the resolver is generally preconfigured to know
-      about at least one public key.  This preconfigured data is usually
-      either the public key itself or a hash of the key as found in the
-      DS RR.  Second, the resolver may use an authenticated public key
-      to verify a DS RR and its associated DNSKEY RR.  Third, the
-      resolver may be able to determine that a new key has been signed
-      by another key which the resolver has verified.  Note that the
-      resolver must always be guided by local policy when deciding
-      whether to authenticate a new key, even if the local policy is
-      simply to authenticate any new key for which the resolver is able
-      verify the signature.
-
-   delegation point: Term used to describe the name at the parental side
-      of a zone cut.  That is, the delegation point for "foo.example"
-      would be the foo.example node in the "example" zone (as opposed to
-      the zone apex of the "foo.example" zone).
-
-   island of security: Term used to describe a signed, delegated zone
-      that does not have an authentication chain from its delegating
-      parent.  That is, there is no DS RR with the island's public key
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 4]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-      in its delegating parent zone (see
-      [I-D.ietf-dnsext-dnssec-records]). An island of security is served
-      by a security-aware nameserver and may provide authentication
-      chains to any delegated child zones.  Responses from an island of
-      security or its descendents can only be authenticated if its zone
-      key can be authenticated by some trusted means out of band from
-      the DNS protocol.
-
-   key signing key: An authentication key which is used to sign one or
-      more other authentication keys for a given zone.  Typically, a key
-      signing key will sign a zone signing key, which in turn will sign
-      other zone data.  Local policy may require the zone signing key to
-      be changed frequently, while the key signing key may have a longer
-      validity period in order to provide a more stable secure entry
-      point into the zone.  Designating an authentication key as a key
-      signing key is purely an operational issue: DNSSEC validation does
-      not distinguish between key signing keys and other DNSSEC
-      authentication keys.  Key signing keys are discussed in more
-      detail in [I-D.ietf-dnsext-keyrr-key-signing-flag]. See also: zone
-      signing key.
-
-   non-validating security-aware stub resolver: A security-aware stub
-      resolver which trusts one or more security-aware recursive name
-      servers to perform most of the tasks discussed in this document
-      set on its behalf. In particular, a non-validating security-aware
-      stub resolver is an entity which sends DNS queries, receives DNS
-      responses, and is capable of establishing an appropriately secured
-      channel to a security-aware recursive name server which will
-      provide these services on behalf of the security-aware stub
-      resolver.  See also: security-aware stub resolver, validating
-      security-aware stub resolver.
-
-   non-validating stub resolver: A less tedious term for a
-      non-validating security-aware stub resolver.
-
-   security-aware name server: An entity acting in the role of a name
-      server (defined in section 2.4 of [RFC1034]) which understands the
-      DNS security extensions defined in this document set.  In
-      particular, a security-aware name server is an entity which
-      receives DNS queries, sends DNS responses, supports the EDNS0
-      [RFC2671] message size extension and the DO bit [RFC3225], and
-      supports the RR types and message header bits defined in this
-      document set.
-
-   security-aware recursive name server: An entity which acts in both
-      the security-aware name server and security-aware resolver roles.
-      A more cumbersome equivalent phrase would be "a security-aware
-      name server which offers recursive service".
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 5]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-   security-aware resolver: An entity acting in the role of a resolver
-      (defined in section 2.4 of [RFC1034]) which understands the DNS
-      security extensions defined in this document set.  In particular,
-      a security-aware resolver is an entity which sends DNS queries,
-      receives DNS responses, supports the EDNS0 [RFC2671] message size
-      extension and the DO bit [RFC3225], and is capable of using the RR
-      types and message header bits defined in this document set to
-      provide DNSSEC services.
-
-   security-aware stub resolver: An entity acting in the role of a stub
-      resolver (defined in section 5.3.1 of [RFC1034]) which has enough
-      of an understanding the DNS security extensions defined in this
-      document set to provide additional services not available from a
-      security-oblivious stub resolver.   Security-aware stub resolvers
-      may be either "validating" or "non-validating" depending on
-      whether the stub resolver attempts to verify DNSSEC signatures on
-      its own or trusts a friendly security-aware name server to do so.
-      See also: validating stub resolver, non-validating stub resolver.
-
-   security-oblivious <anything>: An <anything> which is not
-      "security-aware".
-
-   signed zone: A zone whose RRsets are signed and which contains
-      properly constructed DNSKEY, RRSIG, NSEC and (optionally) DS
-      records.
-
-   unsigned zone: A zone which is not signed.
-
-   validating security-aware stub resolver: A security-aware resolver
-      which operates sends queries in recursive mode but which performs
-      signature validation on its own rather than just blindly trusting
-      a friendly security-aware recursive name server.  See also:
-      security-aware stub resolver, non-validating security-aware stub
-      resolver.
-
-   validating stub resolver: A less tedious term for a validating
-      security-aware stub resolver.
-
-   zone signing key: An authentication key which is used to sign a zone.
-      See key signing key, above.  Typically a zone signing key will be
-      part of the same DNSKEY RRset as the key signing key which signs
-      it, but is used for a slightly different purpose and may differ
-      from the key signing key in other ways, such as validity lifetime.
-      Designating an authentication key as a zone signing key is purely
-      an operational issue: DNSSEC validation does not distinguish
-      between zone signing keys and other DNSSEC authentication keys.
-      See also: key signing key.
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 6]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-3. Services Provided by DNS Security
-
-   The Domain Name System (DNS) security extensions provide origin
-   authentication and integrity assurance services for DNS data,
-   including mechanisms for authenticated denial of existence of DNS
-   data.  These mechanisms are described below.
-
-   These mechanisms require changes to the DNS protocol.  DNSSEC adds
-   four new resource record types (RRSIG, DNSKEY, DS and NSEC) and two
-   new message header bits (CD and AD).  In order to support the larger
-   DNS message sizes that result from adding the DNSSEC RRs, DNSSEC also
-   requires EDNS0 support [RFC2671].  Finally, DNSSEC requires support
-   for the DO bit [RFC3225], so that a security-aware resolver can
-   indicate in its queries that it wishes to receive DNSSEC RRs in
-   response messages.
-
-   These services protect against most of the threats to the Domain Name
-   System described in [I-D.ietf-dnsext-dns-threats].
-
-3.1 Data Origin Authentication and Data Integrity
-
-   DNSSEC provides authentication by associating cryptographically
-   generated digital signatures with DNS RRsets. These digital
-   signatures are stored in a new resource record, the RRSIG record.
-   Typically, there will be a single private key that signs a zone's
-   data, but multiple keys are possible: for example, there may be keys
-   for each of several different digital signature algorithms. If a
-   security-aware resolver reliably learns a zone's public key, it can
-   authenticate that zone's signed data.  An important DNSSEC concept is
-   that the key that signs a zone's data is associated with the zone
-   itself and not with the zone's authoritative name servers (public
-   keys for DNS transaction authentication mechanisms may also appear in
-   zones, as described in [RFC2931], but DNSSEC itself is concerned with
-   object security of DNS data, not channel security of DNS
-   transactions).
-
-   A security-aware resolver can learn a zone's public key either by
-   having the key preconfigured into the resolver or by normal DNS
-   resolution.  To allow the latter, public keys are stored in a new
-   type of resource record, the DNSKEY RR.  Note that the private keys
-   used to sign zone data must be kept secure, and should be stored
-   offline when practical to do so.  To discover a public key reliably
-   via DNS resolution, the target key itself needs to be signed by
-   either a preconfigured authentication key or another key that has
-   been authenticated previously. Security-aware resolvers authenticate
-   zone information by forming an authentication chain from a newly
-   learned public key back to a previously known authentication public
-   key, which in turn either must have been preconfigured into the
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 7]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-   resolver or must have been learned and verified previously.
-   Therefore, the resolver must be configured with at least one public
-   key or hash of a public key: if the preconfigured key is a zone
-   signing key, then it will authenticate the associated zone; if the
-   preconfigured key is a key signing key, it will authenticate a zone
-   signing key.  If the resolver has been preconfigured with the hash of
-   a key rather than the key itself, the resolver may need to obtain the
-   key via a DNS query.  To help security-aware resolvers establish this
-   authentication chain, security-aware name servers attempt to send the
-   signature(s) needed to authenticate a zone's public key in the DNS
-   reply message along with the public key itself, provided there is
-   space available in the message.
-
-   The Delegation Signer (DS) RR type simplifies some of the
-   administrative tasks involved in signing delegations across
-   organizational boundaries.  The DS RRset resides at a delegation
-   point in a parent zone and indicates the key or keys used by the
-   delegated child zone to self-sign the DNSKEY RRset at the child
-   zone's apex.  The child zone, in turn, uses one or more of the keys
-   in this DNSKEY RRset to sign its zone data.  The typical
-   authentication chain is therefore DNSKEY->[DS->DNSKEY]*->RRset, where
-   "*" denotes zero or more DS->DNSKEY subchains.  DNSSEC permits more
-   complex authentication chains, such as additional layers of DNSKEY
-   RRs signing other DNSKEY RRs within a zone.
-
-   A security-aware resolver normally constructs this authentication
-   chain from the root of the DNS hierarchy down to the leaf zones based
-   on preconfigured knowledge of the public key for the root.  Local
-   policy, however, may also allow a security-aware resolver to use one
-   or more preconfigured keys (or key hashes) other than the root key,
-   or may not provide preconfigured knowledge of the root key, or may
-   prevent the resolver from using particular keys for arbitrary reasons
-   even if those keys are properly signed with verifiable signatures.
-   DNSSEC provides mechanisms by which a security-aware resolver can
-   determine whether an RRset's signature is "valid" within the meaning
-   of DNSSEC.  In the final analysis however, authenticating both DNS
-   keys and data is a matter of local policy, which may extend or even
-   override the protocol extensions defined in this document set.
-
-3.2 Authenticating Name and Type Non-Existence
-
-   The security mechanism described in Section 3.1 only provides a way
-   to sign existing RRsets in a zone.  The problem of providing negative
-   responses with the same level of authentication and integrity
-   requires the use of another new resource record type, the NSEC
-   record.  The NSEC record allows a security-aware resolver to
-   authenticate a negative reply for either name or type non-existence
-   via the same mechanisms used to authenticate other DNS replies.  Use
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 8]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-   of NSEC records requires a canonical representation and ordering for
-   domain names in zones.  Chains of NSEC records explicitly describe
-   the gaps, or "empty space", between domain names in a zone, as well
-   as listing the types of RRsets present at existing names.  Each NSEC
-   record is signed and authenticated using the mechanisms described in
-   Section 3.1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 9]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-4. Services Not Provided by DNS Security
-
-   DNS was originally designed with the assumptions that the DNS will
-   return the same answer to any given query regardless of who may have
-   issued the query, and that all data in the DNS is thus visible.
-   Accordingly, DNSSEC is not designed to provide confidentiality,
-   access control lists, or other means of differentiating between
-   inquirers.
-
-   DNSSEC provides no protection against denial of service attacks.
-   Security-aware resolvers and security-aware name servers are
-   vulnerable to an additional class of denial of service attacks based
-   on cryptographic operations.  Please see Section 11 for details.
-
-   The DNS security extensions provide data and origin authentication
-   for DNS data.  The mechanisms outlined above are not designed to
-   protect operations such as zone transfers and dynamic update
-   [RFC3007].  Message authentication schemes described in [RFC2845] and
-   [RFC2931] address security operations that pertain to these
-   transactions.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 10]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-5. Resolver Considerations
-
-   A security-aware resolver needs to be able to perform cryptographic
-   functions necessary to verify digital signatures using at least the
-   mandatory-to-implement algorithm(s).  Security-aware resolvers must
-   also be capable of forming an authentication chain from a newly
-   learned zone back to an authentication key, as described above.  This
-   process might require additional queries to intermediate DNS zones to
-   obtain necessary DNSKEY, DS and RRSIG records.  A security-aware
-   resolver should be configured with at least one authentication key or
-   a key's DS RR hash as the starting point from which it will attempt
-   to establish authentication chains.
-
-   If a security-aware resolver is separated from the relevant
-   authoritative name servers by a recursive name server or by any sort
-   of device which acts as a proxy for DNS, and if the recursive name
-   server or proxy is not security-aware, the security-aware resolver
-   may not be capable of operating in a secure mode.  For example, if a
-   security-aware resolver's packets are routed through a network
-   address translation device that includes a DNS proxy which is not
-   security-aware, the security-aware resolver may find it difficult or
-   impossible to obtain or validate signed DNS data.
-
-   If a security-aware resolver must rely on an unsigned zone or a name
-   server that is not security aware, the resolver may not be able to
-   validate DNS responses, and will need a local policy on whether to
-   accept unverified responses.
-
-   A security-aware resolver should take a signature's validation period
-   into consideration when determining the TTL of data in its cache, to
-   avoid caching signed data beyond the validity period of the
-   signature, but should also allow for the possibility that the
-   security-aware resolver's own clock is wrong.  Thus, a security-aware
-   resolver which is part of a security-aware recursive name server will
-   need to pay careful attention to the DNSSEC "checking disabled" (CD)
-   bit [I-D.ietf-dnsext-dnssec-records].  This is in order to avoid
-   blocking valid signatures from getting through to other
-   security-aware resolvers which are clients of this recursive name
-   server.  See [I-D.ietf-dnsext-dnssec-protocol] for how a secure
-   recursive server handles queries with the CD bit set.
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 11]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-6. Stub Resolver Considerations
-
-   Although not strictly required to do so by the protocol, most DNS
-   queries originate from stub resolvers.  Stub resolvers, by
-   definition, are minimal DNS resolvers which use recursive query mode
-   to offload most of the work of DNS resolution to a recursive name
-   server.  Given the widespread use of stub resolvers, the DNSSEC
-   architecture has to take stub resolvers into account, but the
-   security features needed in a stub resolver differ in some respects
-   from those needed in a full security-aware resolver.
-
-   Even an unaugmented stub resolver may get some benefit from DNSSEC if
-   the recursive name servers it uses are security-aware, but for the
-   stub resolver to place any real reliance on DNSSEC services, the stub
-   resolver must trust both the recursive name servers in question and
-   the communication channels between itself and those name servers.
-   The first of these issues is a local policy issue: in essence, a
-   security-oblivious stub resolver has no real choice but to place
-   itself at the mercy of the recursive name servers that it uses, since
-   it does not perform DNSSEC validity checks on its own.  The second
-   issue requires some kind of channel security mechanism; proper use of
-   DNS transaction authentication mechanisms such as SIG(0) or TSIG
-   would suffice, as would appropriate use of IPsec, and particular
-   implementations may have other choices available, such as operating
-   system specific interprocess communication mechanisms.
-   Confidentiality is not needed for this channel, but data integrity
-   and message authentication are.
-
-   A security-aware stub resolver which does trust both its recursive
-   name servers and its communication channel to them may choose to
-   examine the setting of the AD bit in the message header of the
-   response messages it receives.  The stub resolver can use this flag
-   bit as a hint to find out whether the recursive name server was able
-   to validate signatures for all of the data in the Answer and
-   Authority sections of the response.
-
-   There is one more step which a security-aware stub resolver can take
-   if, for whatever reason, it is not able to establish a useful trust
-   relationship with the recursive name servers which it uses: it can
-   perform its own signature validation, by setting the Checking
-   Disabled (CD) bit in its query messages.  A validating stub resolver
-   is thus able to treat the DNSSEC signatures as a trust relationship
-   between the zone administrator and the stub resolver itself.
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 12]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-7. Zone Considerations
-
-   There are several differences between signed and unsigned zones.  A
-   signed zone will contain additional security-related records (RRSIG,
-   DNSKEY, DS and NSEC records).  RRSIG and NSEC records may be
-   generated by a signing process prior to serving the zone.  The RRSIG
-   records that accompany zone data have defined inception and
-   expiration times, which establish a validity period for the
-   signatures and the zone data the signatures cover.
-
-7.1 TTL values vs. RRSIG validity period
-
-   It is important to note the distinction between a RRset's TTL value
-   and the signature validity period specified by the RRSIG RR covering
-   that RRset.  DNSSEC does not change the definition or function of the
-   TTL value, which is intended to maintain database coherency in
-   caches. A caching resolver purges RRsets from its cache no later than
-   the end of the time period specified by the TTL fields of those
-   RRsets, regardless of whether or not the resolver is security-aware.
-
-   The inception and expiration fields in the RRSIG RR
-   [I-D.ietf-dnsext-dnssec-records], on the other hand, specify the time
-   period during which the signature can be used to validate the RRset
-   that it covers.  The signatures associated with signed zone data are
-   only valid for the time period specified by these fields in the RRSIG
-   RRs in question.  TTL values cannot extend the validity period of
-   signed RRsets in a resolver's cache, but the resolver may use the
-   time remaining before expiration of the signature validity period of
-   a signed RRset as an upper bound for the TTL of the signed RRset and
-   its associated RRSIG RR in the resolver's cache.
-
-7.2 New Temporal Dependency Issues for Zones
-
-   Information in a signed zone has a temporal dependency which did not
-   exist in the original DNS protocol.  A signed zone requires regular
-   maintenance to ensure that each RRset in the zone has a current valid
-   RRSIG RR.  The signature validity period of an RRSIG RR is an
-   interval during which the signature for one particular signed RRset
-   can be considered valid, and the signatures of different RRsets in a
-   zone may expire at different times.  Re-signing one or more RRsets in
-   a zone will change one or more RRSIG RRs, which in turn will require
-   incrementing the zone's SOA serial number to indicate that a zone
-   change has occurred and re-signing the SOA RRset itself.  Thus,
-   re-signing any RRset in a zone may also trigger DNS NOTIFY messages
-   and zone transfers operations.
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 13]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-8. Name Server Considerations
-
-   A security-aware name server should include the appropriate DNSSEC
-   records (RRSIG, DNSKEY, DS and NSEC) in all responses to queries from
-   resolvers which have signaled their willingness to receive such
-   records via use of the DO bit in the EDNS header, subject to message
-   size limitations.  Since inclusion of these DNSSEC RRs could easily
-   cause UDP message truncation and fallback to TCP, a security-aware
-   name server must also support the EDNS "sender's UDP payload"
-   mechanism.
-
-   If possible, the private half of each DNSSEC key pair should be kept
-   offline, but this will not be possible for a zone for which DNS
-   dynamic update has been enabled.  In the dynamic update case, the
-   primary master server for the zone will have to re-sign the zone when
-   updated, so the private half of the zone signing key will have to be
-   kept online.  This is an example of a situation where the ability to
-   separate the zone's DNSKEY RRset into zone signing key(s) and key
-   signing key(s) may be useful, since the key signing key(s) in such a
-   case can still be kept offline.
-
-   DNSSEC, by itself, is not enough to protect the integrity of an
-   entire zone during zone transfer operations, since even a signed zone
-   contains some unsigned, nonauthoritative data if the zone has any
-   children, so zone maintenance operations will require some additional
-   mechanisms (most likely some form of channel security, such as TSIG,
-   SIG(0), or IPsec).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 14]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-9. DNS Security Document Family
-
-   The DNSSEC document set can be partitioned into several main groups,
-   under the larger umbrella of the DNS base protocol documents.
-
-   The "DNSSEC protocol document set" refers to the three documents
-   which form the core of the DNS security extensions:
-
-   1.  DNS Security Introduction and Requirements (this document)
-
-   2.  Resource Records for DNS Security Extensions
-       [I-D.ietf-dnsext-dnssec-records]
-
-   3.  Protocol Modifications for the DNS Security Extensions
-       [I-D.ietf-dnsext-dnssec-protocol]
-
-   The "Digital Signature Algorithm Specification" document set refers
-   to the group of documents that describe how specific digital
-   signature algorithms should be implemented to fit the DNSSEC resource
-   record format.  Each of these documents deals with a specific digital
-   signature algorithm.
-
-   The "Transaction Authentication Protocol" document set refers to the
-   group of documents that deal with DNS message authentication,
-   including secret key establishment and verification.  While not
-   strictly part of the DNSSEC specification as defined in this set of
-   documents, this group is noted to show its relationship to DNSSEC.
-
-   The final document set, "New Security Uses", refers to documents that
-   seek to use proposed DNS Security extensions for other security
-   related purposes.  DNSSEC does not provide any direct security for
-   these new uses, but may be used to support them.  Documents that fall
-   in this category include the use of DNS in the storage and
-   distribution of certificates [RFC2538].
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 15]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-10. IANA Considerations
-
-   This overview document introduces no new IANA considerations. Please
-   see [I-D.ietf-dnsext-dnssec-records] for a complete review of the
-   IANA considerations introduced by DNSSEC.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 16]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-11. Security Considerations
-
-   This document introduces the DNS security extensions and describes
-   the document set that contains the new security records and DNS
-   protocol modifications.  This document discusses the capabilities and
-   limitations of these extensions.  The extensions provide data origin
-   authentication and data integrity using digital signatures over
-   resource record sets.
-
-   In order for a security-aware resolver to validate a DNS response,
-   all zones along the path from the trusted starting point to the zone
-   containing the response zones must be signed, and all name servers
-   and resolvers involved in the resolution process must be
-   security-aware, as defined in this document set.  A security-aware
-   resolver cannot verify responses originating from an unsigned zone,
-   from a zone not served by a security-aware name server, or for any
-   DNS data which the resolver is only able to obtain through a
-   recursive name server which is not security-aware.  If there is a
-   break in the authentication chain such that a security-aware resolver
-   cannot obtain and validate the authentication keys it needs, then the
-   security-aware resolver cannot validate the affected DNS data.
-
-   This document briefly discusses other methods of adding security to a
-   DNS query, such as using a channel secured by IPsec or using a DNS
-   transaction authentication mechanism, but transaction security is not
-   part of DNSSEC per se.
-
-   A non-validating security-aware stub resolver, by definition, does
-   not perform DNSSEC signature validation on its own, and thus is
-   vulnerable both to attacks on (and by) the security-aware recursive
-   name servers which perform these checks on its behalf and also to
-   attacks on its communication with those security-aware recursive name
-   servers. Non-validating security-aware stub resolvers should use some
-   form of channel security to defend against the latter threat. The
-   only known defense against the former threat would be for the
-   security-aware stub resolver to perform its own signature validation,
-   at which point, again by definition, it would no longer be a
-   non-validating security-aware stub resolver.
-
-   DNSSEC does not protect against denial of service attacks.  DNSSEC
-   makes DNS vulnerable to a new class of denial of service attacks
-   based on cryptographic operations against security-aware resolvers
-   and security-aware name servers, since an attacker can attempt to use
-   DNSSEC mechanisms to consume a victim's resources.  This class of
-   attacks takes at least two forms.  An attacker may be able to consume
-   resources in a security-aware resolver's signature validation code by
-   tampering with RRSIG RRs in response messages or by constructing
-   needlessly complex signature chains.  An attacker may also be able to
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 17]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-   consume resources in a security-aware name server which supports DNS
-   dynamic update, by sending a stream of update messages that force the
-   security-aware name server to re-sign some RRsets in the zone more
-   frequently than would otherwise be necessary.
-
-   DNSSEC introduces the ability for a hostile party to enumerate all
-   the names in a zone by following the NSEC chain. NSEC RRs assert
-   which names do not exist in a zone by linking from existing name to
-   existing name along a canonical ordering of all the names within a
-   zone. Thus, an attacker can query these NSEC RRs in sequence to
-   obtain all the names in a zone. While not an attack on the DNS
-   itself, this could allow an attacker to map network hosts or other
-   resources by enumerating the contents of a zone. There are non-DNS
-   protocol means of detecting and limiting this attack beyond the scope
-   of this document set.
-
-   DNSSEC introduces significant additional complexity to the DNS, and
-   thus introduces many new opportunities for implementation bugs and
-   misconfigured zones.  In particular, enabling DNSSEC signature
-   validation in a resolver may cause entire legitimate zones to become
-   effectively unreachable due to DNSSEC configuration errors or bugs.
-
-   DNSSEC does not provide confidentiality, due to a deliberate design
-   choice.
-
-   DNSSEC does not protect against tampering with unsigned zone data.
-   Non-authoritative data at zone cuts (glue and NS RRs in the parent
-   zone) are not signed.  This does not pose a problem when validating
-   the authentication chain, but does mean that the non-authoritative
-   data itself is vulnerable to tampering during zone transfer
-   operations.  Thus, while DNSSEC can provide data origin
-   authentication and data integrity for RRsets, it cannot do so for
-   zones, and other mechanisms must be used to protect zone transfer
-   operations.
-
-   Please see [I-D.ietf-dnsext-dnssec-records] and
-   [I-D.ietf-dnsext-dnssec-protocol] for additional security
-   considerations.
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 18]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-12. Acknowledgements
-
-   This document was created from the input and ideas of the members of
-   the DNS Extensions Working Group.  While explicitly listing everyone
-   who has contributed during the decade during which DNSSEC has been
-   under development would be an impossible task, the editors would
-   particularly like to thank the following people for their
-   contributions to and comments on this document set: Mark Andrews,
-   Derek Atkins, Alan Barrett, Dan Bernstein, David Blacka, Len Budney,
-   Randy Bush, Francis Dupont, Donald Eastlake, Miek Gieben, Michael
-   Graff, Olafur Gudmundsson, Gilles Guette, Andreas Gustafsson, Phillip
-   Hallam-Baker, Walter Howard, Stephen Jacob, Simon Josefsson, Olaf
-   Kolkman, Mark Kosters, David Lawrence, Ted Lemon, Ed Lewis, Ted
-   Lindgreen, Josh Littlefield, Rip Loomis, Bill Manning, Mans Nilsson,
-   Masataka Ohta, Rob Payne, Jim Reid, Michael Richardson, Erik
-   Rozendaal, Jakob Schlyter, Mike StJohns, Sam Weiler, and Brian
-   Wellington.
-
-   No doubt the above is an incomplete list.  We apologize to anyone we
-   left out.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 19]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-Normative References
-
-   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
-              STD 13, RFC 1034, November 1987.
-
-   [RFC1035]  Mockapetris, P., "Domain names - implementation and
-              specification", STD 13, RFC 1035, November 1987.
-
-   [RFC2535]  Eastlake, D., "Domain Name System Security Extensions",
-              RFC 2535, March 1999.
-
-   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC
-              2671, August 1999.
-
-   [RFC3225]  Conrad, D., "Indicating Resolver Support of DNSSEC", RFC
-              3225, December 2001.
-
-   [RFC3226]  Gudmundsson, O., "DNSSEC and IPv6 A6 aware server/resolver
-              message size requirements", RFC 3226, December 2001.
-
-   [RFC3445]  Massey, D. and S. Rose, "Limiting the Scope of the KEY
-              Resource Record (RR)", RFC 3445, December 2002.
-
-   [I-D.ietf-dnsext-dnssec-records]
-              Arends, R., Austein, R., Larson, M., Massey, D. and S.
-              Rose, "Resource Records for DNS Security Extensions",
-              draft-ietf-dnsext-dnssec-records-07 (work in progress),
-              February 2004.
-
-   [I-D.ietf-dnsext-dnssec-protocol]
-              Arends, R., Austein, R., Larson, M., Massey, D. and S.
-              Rose, "Protocol Modifications for the DNS Security
-              Extensions", draft-ietf-dnsext-dnssec-protocol-05 (work in
-              progress), February 2004.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 20]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-Informative References
-
-   [RFC2136]  Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic
-              Updates in the Domain Name System (DNS UPDATE)", RFC 2136,
-              April 1997.
-
-   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS
-              Specification", RFC 2181, July 1997.
-
-   [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS
-              NCACHE)", RFC 2308, March 1998.
-
-   [RFC2538]  Eastlake, D. and O. Gudmundsson, "Storing Certificates in
-              the Domain Name System (DNS)", RFC 2538, March 1999.
-
-   [RFC2845]  Vixie, P., Gudmundsson, O., Eastlake, D. and B.
-              Wellington, "Secret Key Transaction Authentication for DNS
-              (TSIG)", RFC 2845, May 2000.
-
-   [RFC2931]  Eastlake, D., "DNS Request and Transaction Signatures (
-              SIG(0)s)", RFC 2931, September 2000.
-
-   [RFC3007]  Wellington, B., "Secure Domain Name System (DNS) Dynamic
-              Update", RFC 3007, November 2000.
-
-   [RFC3008]  Wellington, B., "Domain Name System Security (DNSSEC)
-              Signing Authority", RFC 3008, November 2000.
-
-   [RFC3090]  Lewis, E., "DNS Security Extension Clarification on Zone
-              Status", RFC 3090, March 2001.
-
-   [RFC3597]  Gustafsson, A., "Handling of Unknown DNS Resource Record
-              (RR) Types", RFC 3597, September 2003.
-
-   [RFC3655]  Wellington, B. and O. Gudmundsson, "Redefinition of DNS
-              Authenticated Data (AD) bit", RFC 3655, November 2003.
-
-   [RFC3658]  Gudmundsson, O., "Delegation Signer (DS) Resource Record
-              (RR)", RFC 3658, December 2003.
-
-   [I-D.ietf-dnsext-dns-threats]
-              Atkins, D. and R. Austein, "Threat Analysis Of The Domain
-              Name System", draft-ietf-dnsext-dns-threats-05 (work in
-              progress), November 2003.
-
-   [I-D.ietf-dnsext-dnssec-2535typecode-change]
-              Weiler, S., "Legacy Resolver Compatibility for Delegation
-              Signer", draft-ietf-dnsext-dnssec-2535typecode-change-06
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 21]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-              (work in progress), December 2003.
-
-   [I-D.ietf-dnsext-keyrr-key-signing-flag]
-              Kolkman, O., Schlyter, J. and E. Lewis, "KEY RR Secure
-              Entry Point Flag",
-              draft-ietf-dnsext-keyrr-key-signing-flag-12 (work in
-              progress), December 2003.
-
-
-Authors' Addresses
-
-   Roy Arends
-   Telematica Instituut
-   Drienerlolaan 5
-   7522 NB  Enschede
-   NL
-
-   EMail: roy.arends@telin.nl
-
-
-   Rob Austein
-   Internet Systems Consortium
-   950 Charter Street
-   Redwood City, CA  94063
-   USA
-
-   EMail: sra@isc.org
-
-
-   Matt Larson
-   VeriSign, Inc.
-   21345 Ridgetop Circle
-   Dulles, VA  20166-6503
-   USA
-
-   EMail: mlarson@verisign.com
-
-
-   Dan Massey
-   USC Information Sciences Institute
-   3811 N. Fairfax Drive
-   Arlington, VA  22203
-   USA
-
-   EMail: masseyd@isi.edu
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 22]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-   Scott Rose
-   National Institute for Standards and Technology
-   100 Bureau Drive
-   Gaithersburg, MD  20899-8920
-   USA
-
-   EMail: scott.rose@nist.gov
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 23]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-Intellectual Property Statement
-
-   The IETF takes no position regarding the validity or scope of any
-   intellectual property or other rights that might be claimed to
-   pertain to the implementation or use of the technology described in
-   this document or the extent to which any license under such rights
-   might or might not be available; neither does it represent that it
-   has made any effort to identify any such rights. Information on the
-   IETF's procedures with respect to rights in standards-track and
-   standards-related documentation can be found in BCP-11. Copies of
-   claims of rights made available for publication and any assurances of
-   licenses to be made available, or the result of an attempt made to
-   obtain a general license or permission for the use of such
-   proprietary rights by implementors or users of this specification can
-   be obtained from the IETF Secretariat.
-
-   The IETF invites any interested party to bring to its attention any
-   copyrights, patents or patent applications, or other proprietary
-   rights which may cover technology that may be required to practice
-   this standard. Please address the information to the IETF Executive
-   Director.
-
-
-Full Copyright Statement
-
-   Copyright (C) The Internet Society (2004). All Rights Reserved.
-
-   This document and translations of it may be copied and furnished to
-   others, and derivative works that comment on or otherwise explain it
-   or assist in its implementation may be prepared, copied, published
-   and distributed, in whole or in part, without restriction of any
-   kind, provided that the above copyright notice and this paragraph are
-   included on all such copies and derivative works. However, this
-   document itself may not be modified in any way, such as by removing
-   the copyright notice or references to the Internet Society or other
-   Internet organizations, except as needed for the purpose of
-   developing Internet standards in which case the procedures for
-   copyrights defined in the Internet Standards process must be
-   followed, or as required to translate it into languages other than
-   English.
-
-   The limited permissions granted above are perpetual and will not be
-   revoked by the Internet Society or its successors or assignees.
-
-   This document and the information contained herein is provided on an
-   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
-   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 24]
-\f
-Internet-Draft    DNSSEC Introduction and Requirements     February 2004
-
-
-   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
-   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-Acknowledgement
-
-   Funding for the RFC Editor function is currently provided by the
-   Internet Society.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 25]
-\f
-
+\r
+\r
+DNS Extensions                                                 R. Arends\r
+Internet-Draft                                      Telematica Instituut\r
+Expires: November 15, 2004                                    R. Austein\r
+                                                                     ISC\r
+                                                               M. Larson\r
+                                                                VeriSign\r
+                                                               D. Massey\r
+                                                                 USC/ISI\r
+                                                                 S. Rose\r
+                                                                    NIST\r
+                                                            May 17, 2004\r
+\r
+\r
+               DNS Security Introduction and Requirements\r
+                   draft-ietf-dnsext-dnssec-intro-10\r
+\r
+Status of this Memo\r
+\r
+   This document is an Internet-Draft and is in full conformance with\r
+   all provisions of Section 10 of RFC2026.\r
+\r
+   Internet-Drafts are working documents of the Internet Engineering\r
+   Task Force (IETF), its areas, and its working groups. Note that other\r
+   groups may also distribute working documents as Internet-Drafts.\r
+\r
+   Internet-Drafts are draft documents valid for a maximum of six months\r
+   and may be updated, replaced, or obsoleted by other documents at any\r
+   time. It is inappropriate to use Internet-Drafts as reference\r
+   material or to cite them other than as "work in progress."\r
+\r
+   The list of current Internet-Drafts can be accessed at http://\r
+   www.ietf.org/ietf/1id-abstracts.txt.\r
+\r
+   The list of Internet-Draft Shadow Directories can be accessed at\r
+   http://www.ietf.org/shadow.html.\r
+\r
+   This Internet-Draft will expire on November 15, 2004.\r
+\r
+Copyright Notice\r
+\r
+   Copyright (C) The Internet Society (2004). All Rights Reserved.\r
+\r
+Abstract\r
+\r
+   The Domain Name System Security Extensions (DNSSEC) add data origin\r
+   authentication and data integrity to the Domain Name System.  This\r
+   document introduces these extensions, and describes their\r
+   capabilities and limitations.  This document also discusses the\r
+   services that the DNS security extensions do and do not provide.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 1]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   Last, this document describes the interrelationships between the\r
+   group of documents that collectively describe DNSSEC.\r
+\r
+Table of Contents\r
+\r
+   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3\r
+   2.  Definitions of Important DNSSEC Terms  . . . . . . . . . . . .  4\r
+   3.  Services Provided by DNS Security  . . . . . . . . . . . . . .  8\r
+     3.1   Data Origin Authentication and Data Integrity  . . . . . .  8\r
+     3.2   Authenticating Name and Type Non-Existence . . . . . . . .  9\r
+   4.  Services Not Provided by DNS Security  . . . . . . . . . . . . 11\r
+   5.  Scope of the DNSSEC Document Set and Last Hop Issues . . . . . 12\r
+   6.  Resolver Considerations  . . . . . . . . . . . . . . . . . . . 14\r
+   7.  Stub Resolver Considerations . . . . . . . . . . . . . . . . . 15\r
+   8.  Zone Considerations  . . . . . . . . . . . . . . . . . . . . . 16\r
+     8.1   TTL values vs. RRSIG validity period . . . . . . . . . . . 16\r
+     8.2   New Temporal Dependency Issues for Zones . . . . . . . . . 16\r
+   9.  Name Server Considerations . . . . . . . . . . . . . . . . . . 17\r
+   10.   DNS Security Document Family . . . . . . . . . . . . . . . . 18\r
+   11.   IANA Considerations  . . . . . . . . . . . . . . . . . . . . 19\r
+   12.   Security Considerations  . . . . . . . . . . . . . . . . . . 20\r
+   13.   Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22\r
+   14.   References . . . . . . . . . . . . . . . . . . . . . . . . . 23\r
+   14.1  Normative References . . . . . . . . . . . . . . . . . . . . 23\r
+   14.2  Informative References . . . . . . . . . . . . . . . . . . . 23\r
+       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 25\r
+       Intellectual Property and Copyright Statements . . . . . . . . 26\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 2]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+1.  Introduction\r
+\r
+   This document introduces the Domain Name System Security Extensions\r
+   (DNSSEC).  This document and its two companion documents\r
+   ([I-D.ietf-dnsext-dnssec-records] and\r
+   [I-D.ietf-dnsext-dnssec-protocol]) update, clarify, and refine the\r
+   security extensions defined in RFC 2535 [RFC2535] and its\r
+   predecessors. These security extensions consist of a set of new\r
+   resource record types and modifications to the existing DNS protocol\r
+   [RFC1035].  The new records and protocol modifications are not fully\r
+   described in this document, but are described in a family of\r
+   documents outlined in Section 10. Section 3 and Section 4 describe\r
+   the capabilities and limitations of the security extensions in\r
+   greater detail.  Section 5 discusses the scope of the document set.\r
+   Section 6, Section 7, Section 8, and Section 9 discuss the effect\r
+   that these security extensions will have on resolvers, stub\r
+   resolvers, zones and name servers.\r
+\r
+   This document and its two companions update and obsolete RFCs 2535\r
+   [RFC2535], 3008 [RFC3008], 3090 [RFC3090], 3445 [RFC3445], 3655\r
+   [RFC3655], 3658 [RFC3658], 3755 [RFC3755], and the Work in Progress\r
+   [I-D.ietf-dnsext-nsec-rdata]. This document set also updates, but\r
+   does not obsolete, RFCs 1034 [RFC1034], 1035 [RFC1035], 2136\r
+   [RFC2136], 2181 [RFC2181], 2308 [RFC2308], 3597 [RFC3597], and parts\r
+   of 3226 [RFC3226] (dealing with DNSSEC).\r
+\r
+   The DNS security extensions provide origin authentication and\r
+   integrity protection for DNS data, as well as a means of public key\r
+   distribution.  These extensions do not provide confidentiality.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 3]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+2.  Definitions of Important DNSSEC Terms\r
+\r
+   This section defines a number of terms used in this document set.\r
+   Since this is intended to be useful as a reference while reading the\r
+   rest of the document set, first-time readers may wish to skim this\r
+   section quickly, read the rest of this document, then come back to\r
+   this section.\r
+\r
+   Authentication Chain: An alternating sequence of DNSKEY RRsets and DS\r
+      RRsets forms a chain of signed data, with each link in the chain\r
+      vouching for the next.  A DNSKEY RR is used to verify the\r
+      signature covering a DS RR and allows the DS RR to be\r
+      authenticated.  The DS RR contains a hash of another DNSKEY RR and\r
+      this new DNSKEY RR is authenticated by matching the hash in the DS\r
+      RR.  This new DNSKEY RR in turn authenticates another DNSKEY RRset\r
+      and, in turn, some DNSKEY RR in this set may be used to\r
+      authenticate another DS RR and so forth until the chain finally\r
+      ends with a DNSKEY RR whose corresponding private key signs the\r
+      desired DNS data.  For example, the root DNSKEY RRset can be used\r
+      to authenticate the DS RRset for "example."  The "example." DS\r
+      RRset contains a hash that matches some "example." DNSKEY, and\r
+      this DNSKEY's corresponding private key signs the "example."\r
+      DNSKEY RRset.  Private key counterparts of the "example." DNSKEY\r
+      RRset sign data records such as "www.example." as well as DS RRs\r
+      for delegations such as "subzone.example."\r
+\r
+   Authentication Key: A public key that a security-aware resolver has\r
+      verified and can therefore use to authenticate data.  A\r
+      security-aware resolver can obtain authentication keys in three\r
+      ways.  First, the resolver is generally configured to know about\r
+      at least one public key; this configured data is usually either\r
+      the public key itself or a hash of the public key as found in the\r
+      DS RR (see "trust anchor").  Second, the resolver may use an\r
+      authenticated public key to verify a DS RR and its associated\r
+      DNSKEY RR.  Third, the resolver may be able to determine that a\r
+      new public key has been signed by the private key corresponding to\r
+      another public key which the resolver has verified.  Note that the\r
+      resolver must always be guided by local policy when deciding\r
+      whether to authenticate a new public key, even if the local policy\r
+      is simply to authenticate any new public key for which the\r
+      resolver is able verify the signature.\r
+\r
+   Delegation Point: Term used to describe the name at the parental side\r
+      of a zone cut.  That is, the delegation point for "foo.example"\r
+      would be the foo.example node in the "example" zone (as opposed to\r
+      the zone apex of the "foo.example" zone).\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 4]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   Island of Security: Term used to describe a signed, delegated zone\r
+      that does not have an authentication chain from its delegating\r
+      parent.  That is, there is no DS RR containing a hash of a DNSKEY\r
+      RR for the island in its delegating parent zone (see\r
+      [I-D.ietf-dnsext-dnssec-records]). An island of security is served\r
+      by security-aware name servers and may provide authentication\r
+      chains to any delegated child zones.  Responses from an island of\r
+      security or its descendents can only be authenticated if its\r
+      authentication keys can be authenticated by some trusted means out\r
+      of band from the DNS protocol.\r
+\r
+   Key Signing Key: An authentication key that corresponds to a private\r
+      key used to sign one or more other authentication keys for a given\r
+      zone.  Typically, the private key corresponding to a key signing\r
+      key will sign a zone signing key, which in turn has a\r
+      corresponding private key which will sign other zone data.  Local\r
+      policy may require the zone signing key to be changed frequently,\r
+      while the key signing key may have a longer validity period in\r
+      order to provide a more stable secure entry point into the zone.\r
+      Designating an authentication key as a key signing key is purely\r
+      an operational issue: DNSSEC validation does not distinguish\r
+      between key signing keys and other DNSSEC authentication keys, and\r
+      it is possible to use a single key as both a key signing key and a\r
+      zone signing key.  Key signing keys are discussed in more detail\r
+      in [RFC3757]. Also see: zone signing key.\r
+\r
+   Non-Validating Security-Aware Stub Resolver: A security-aware stub\r
+      resolver which trusts one or more security-aware recursive name\r
+      servers to perform most of the tasks discussed in this document\r
+      set on its behalf. In particular, a non-validating security-aware\r
+      stub resolver is an entity which sends DNS queries, receives DNS\r
+      responses, and is capable of establishing an appropriately secured\r
+      channel to a security-aware recursive name server which will\r
+      provide these services on behalf of the security-aware stub\r
+      resolver.  See also: security-aware stub resolver, validating\r
+      security-aware stub resolver.\r
+\r
+   Non-Validating Stub Resolver: A less tedious term for a\r
+      non-validating security-aware stub resolver.\r
+\r
+   Security-Aware Name Server: An entity acting in the role of a name\r
+      server (defined in section 2.4 of [RFC1034]) that understands the\r
+      DNS security extensions defined in this document set.  In\r
+      particular, a security-aware name server is an entity which\r
+      receives DNS queries, sends DNS responses, supports the EDNS0\r
+      [RFC2671] message size extension and the DO bit [RFC3225], and\r
+      supports the RR types and message header bits defined in this\r
+      document set.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 5]\r
+\f\r
+\r
+   Security-Aware Recursive Name Server: An entity which acts in both\r
+      the security-aware name server and security-aware resolver roles.\r
+      A more cumbersome equivalent phrase would be "a security-aware\r
+      name server which offers recursive service".\r
+\r
+   Security-Aware Resolver: An entity acting in the role of a resolver\r
+      (defined in section 2.4 of [RFC1034]) which understands the DNS\r
+      security extensions defined in this document set.  In particular,\r
+      a security-aware resolver is an entity which sends DNS queries,\r
+      receives DNS responses, supports the EDNS0 [RFC2671] message size\r
+      extension and the DO bit [RFC3225], and is capable of using the RR\r
+      types and message header bits defined in this document set to\r
+      provide DNSSEC services.\r
+\r
+   Security-Aware Stub Resolver: An entity acting in the role of a stub\r
+      resolver (defined in section 5.3.1 of [RFC1034]) which has enough\r
+      of an understanding the DNS security extensions defined in this\r
+      document set to provide additional services not available from a\r
+      security-oblivious stub resolver.   Security-aware stub resolvers\r
+      may be either "validating" or "non-validating" depending on\r
+      whether the stub resolver attempts to verify DNSSEC signatures on\r
+      its own or trusts a friendly security-aware name server to do so.\r
+      See also: validating stub resolver, non-validating stub resolver.\r
+\r
+   Security-Oblivious <anything>: An <anything> that is not\r
+      "security-aware".\r
+\r
+   Signed Zone: A zone whose RRsets are signed and which contains\r
+      properly constructed DNSKEY, RRSIG, NSEC and (optionally) DS\r
+      records.\r
+\r
+   Trust Anchor: A configured DNSKEY RR or DS RR hash of a DNSKEY RR.  A\r
+      validating security-aware resolver uses this public key or hash as\r
+      a starting point for building the authentication chain to a signed\r
+      DNS response.  In general, a validating resolver will need to\r
+      obtain the initial values of its trust anchors via some secure or\r
+      trusted means outside the DNS protocol.  Presence of a trust\r
+      anchor also implies that the resolver should expect the zone to\r
+      which the trust anchor points to be signed\r
+\r
+   Unsigned Zone: A zone that is not signed.\r
+\r
+   Validating Security-Aware Stub Resolver: A security-aware resolver\r
+      that sends queries in recursive mode but which performs signature\r
+      validation on its own rather than just blindly trusting an\r
+      upstream security-aware recursive name server.  See also:\r
+      security-aware stub resolver, non-validating security-aware stub\r
+      resolver.\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 6]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   Validating Stub Resolver: A less tedious term for a validating\r
+      security-aware stub resolver.\r
+\r
+   Zone Signing Key: An authentication key that corresponds to a private\r
+      key used to sign a zone.  Typically a zone signing key will be\r
+      part of the same DNSKEY RRset as the key signing key whose\r
+      corresponding private key signs this DNSKEY RRset, but the zone\r
+      signing key is used for a slightly different purpose, and may\r
+      differ from the key signing key in other ways, such as validity\r
+      lifetime.  Designating an authentication key as a zone signing key\r
+      is purely an operational issue: DNSSEC validation does not\r
+      distinguish between zone signing keys and other DNSSEC\r
+      authentication keys, and it is possible to use a single key as\r
+      both a key signing key and a zone signing key.  See also: key\r
+      signing key.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 7]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+3.  Services Provided by DNS Security\r
+\r
+   The Domain Name System (DNS) security extensions provide origin\r
+   authentication and integrity assurance services for DNS data,\r
+   including mechanisms for authenticated denial of existence of DNS\r
+   data.  These mechanisms are described below.\r
+\r
+   These mechanisms require changes to the DNS protocol.  DNSSEC adds\r
+   four new resource record types (RRSIG, DNSKEY, DS and NSEC) and two\r
+   new message header bits (CD and AD).  In order to support the larger\r
+   DNS message sizes that result from adding the DNSSEC RRs, DNSSEC also\r
+   requires EDNS0 support [RFC2671].  Finally, DNSSEC requires support\r
+   for the DO bit [RFC3225], so that a security-aware resolver can\r
+   indicate in its queries that it wishes to receive DNSSEC RRs in\r
+   response messages.\r
+\r
+   These services protect against most of the threats to the Domain Name\r
+   System described in [I-D.ietf-dnsext-dns-threats].\r
+\r
+3.1  Data Origin Authentication and Data Integrity\r
+\r
+   DNSSEC provides authentication by associating cryptographically\r
+   generated digital signatures with DNS RRsets. These digital\r
+   signatures are stored in a new resource record, the RRSIG record.\r
+   Typically, there will be a single private key that signs a zone's\r
+   data, but multiple keys are possible: for example, there may be keys\r
+   for each of several different digital signature algorithms. If a\r
+   security-aware resolver reliably learns a zone's public key, it can\r
+   authenticate that zone's signed data.  An important DNSSEC concept is\r
+   that the key that signs a zone's data is associated with the zone\r
+   itself and not with the zone's authoritative name servers (public\r
+   keys for DNS transaction authentication mechanisms may also appear in\r
+   zones, as described in [RFC2931], but DNSSEC itself is concerned with\r
+   object security of DNS data, not channel security of DNS\r
+   transactions).\r
+\r
+   A security-aware resolver can learn a zone's public key either by\r
+   having a trust anchor configured into the resolver or by normal DNS\r
+   resolution.  To allow the latter, public keys are stored in a new\r
+   type of resource record, the DNSKEY RR.  Note that the private keys\r
+   used to sign zone data must be kept secure, and should be stored\r
+   offline when practical to do so.  To discover a public key reliably\r
+   via DNS resolution, the target key itself needs to be signed by\r
+   either a configured authentication key or another key that has been\r
+   authenticated previously. Security-aware resolvers authenticate zone\r
+   information by forming an authentication chain from a newly learned\r
+   public key back to a previously known authentication public key,\r
+   which in turn either has been configured into the resolver or must\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 8]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   have been learned and verified previously.  Therefore, the resolver\r
+   must be configured with at least one trust anchor.  If the configured\r
+   key is a zone signing key, then it will authenticate the associated\r
+   zone; if the configured key is a key signing key, it will\r
+   authenticate a zone signing key.  If the resolver has been configured\r
+   with the hash of a key rather than the key itself, the resolver may\r
+   need to obtain the key via a DNS query.  To help security-aware\r
+   resolvers establish this authentication chain, security-aware name\r
+   servers attempt to send the signature(s) needed to authenticate a\r
+   zone's public key(s) in the DNS reply message along with the public\r
+   key itself, provided there is space available in the message.\r
+\r
+   The Delegation Signer (DS) RR type simplifies some of the\r
+   administrative tasks involved in signing delegations across\r
+   organizational boundaries.  The DS RRset resides at a delegation\r
+   point in a parent zone and indicates the public key(s) corresponding\r
+   to the private key(s) used to self-sign the DNSKEY RRset at the\r
+   delegated child zone's apex.  The administrator of the child zone, in\r
+   turn, uses the private key(s) corresponding to one or more of the\r
+   public keys in this DNSKEY RRset to sign the child zone's data.  The\r
+   typical authentication chain is therefore\r
+   DNSKEY->[DS->DNSKEY]*->RRset, where "*" denotes zero or more\r
+   DS->DNSKEY subchains.  DNSSEC permits more complex authentication\r
+   chains, such as additional layers of DNSKEY RRs signing other DNSKEY\r
+   RRs within a zone.\r
+\r
+   A security-aware resolver normally constructs this authentication\r
+   chain from the root of the DNS hierarchy down to the leaf zones based\r
+   on configured knowledge of the public key for the root.  Local\r
+   policy, however, may also allow a security-aware resolver to use one\r
+   or more configured public keys (or hashes of public keys) other than\r
+   the root public key, or may not provide configured knowledge of the\r
+   root public key, or may prevent the resolver from using particular\r
+   public keys for arbitrary reasons even if those public keys are\r
+   properly signed with verifiable signatures.  DNSSEC provides\r
+   mechanisms by which a security-aware resolver can determine whether\r
+   an RRset's signature is "valid" within the meaning of DNSSEC. In the\r
+   final analysis however, authenticating both DNS keys and data is a\r
+   matter of local policy, which may extend or even override the\r
+   protocol extensions defined in this document set.  See  for further\r
+   discussion.\r
+\r
+3.2  Authenticating Name and Type Non-Existence\r
+\r
+   The security mechanism described in Section 3.1 only provides a way\r
+   to sign existing RRsets in a zone.  The problem of providing negative\r
+   responses with the same level of authentication and integrity\r
+   requires the use of another new resource record type, the NSEC\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 9]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   record.  The NSEC record allows a security-aware resolver to\r
+   authenticate a negative reply for either name or type non-existence\r
+   via the same mechanisms used to authenticate other DNS replies.  Use\r
+   of NSEC records requires a canonical representation and ordering for\r
+   domain names in zones.  Chains of NSEC records explicitly describe\r
+   the gaps, or "empty space", between domain names in a zone, as well\r
+   as listing the types of RRsets present at existing names.  Each NSEC\r
+   record is signed and authenticated using the mechanisms described in\r
+   Section 3.1.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 10]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+4.  Services Not Provided by DNS Security\r
+\r
+   DNS was originally designed with the assumptions that the DNS will\r
+   return the same answer to any given query regardless of who may have\r
+   issued the query, and that all data in the DNS is thus visible.\r
+   Accordingly, DNSSEC is not designed to provide confidentiality,\r
+   access control lists, or other means of differentiating between\r
+   inquirers.\r
+\r
+   DNSSEC provides no protection against denial of service attacks.\r
+   Security-aware resolvers and security-aware name servers are\r
+   vulnerable to an additional class of denial of service attacks based\r
+   on cryptographic operations.  Please see Section 12 for details.\r
+\r
+   The DNS security extensions provide data and origin authentication\r
+   for DNS data.  The mechanisms outlined above are not designed to\r
+   protect operations such as zone transfers and dynamic update\r
+   [RFC3007].  Message authentication schemes described in [RFC2845] and\r
+   [RFC2931] address security operations that pertain to these\r
+   transactions.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 11]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+5.  Scope of the DNSSEC Document Set and Last Hop Issues\r
+\r
+   The specification in this document set defines the behavior for zone\r
+   signers and security-aware name servers and resolvers in such a way\r
+   that the validating entities can unambiguously determine the state of\r
+   the data.\r
+\r
+   A validating resolver can determine these 4 states:\r
+\r
+   Secure: The validating resolver has a trust anchor, a chain of trust\r
+      and is able to verify all the signatures in the response.\r
+\r
+   Insecure: The validating resolver has a trust anchor, a chain of\r
+      trust, and, at some delegation point, signed proof of the\r
+      non-existence of a DS record.  That indicates that subsequent\r
+      branches in the tree are provably insecure. A validating resolver\r
+      may have local policy to mark parts of the domain space as\r
+      insecure.\r
+\r
+   Bogus: The validating resolver has a trust anchor and there is a\r
+      secure delegation which is indicating that subsidiary data will be\r
+      signed, but the response fails to validate due to one or more\r
+      reasons: missing signatures, expired signatures, signatures with\r
+      unsupported algorithms, data missing which the relevant NSEC RR\r
+      says should be present, and so forth.\r
+\r
+   Indeterminate: There is no trust anchor which would indicate that a\r
+      specific portion of the tree is secure.  This is the default\r
+      operation mode.\r
+\r
+   This specification only defines how security aware name servers can\r
+   signal non-validating stub resolvers that data was found to be bogus\r
+   (using RCODE=2, "Server Failure" -- see\r
+   [I-D.ietf-dnsext-dnssec-protocol]).\r
+\r
+   There is a mechanism for security aware name servers to signal\r
+   security-aware stub resolvers that data was found to be secure (using\r
+   the AD bit, see [I-D.ietf-dnsext-dnssec-protocol]).\r
+\r
+   This specification does not define a format for communicating why\r
+   responses were found to be bogus or marked as insecure. The current\r
+   signaling mechanism does not distinguish between indeterminate and\r
+   insecure.\r
+\r
+   A method for signaling advanced error codes and policy between a\r
+   security aware stub resolver and security aware recursive nameservers\r
+   is a topic for future work, as is the interface between a security\r
+   aware resolver and the applications that use it.  Note, however, that\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 12]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   the lack of the specification of such communication does not prohibit\r
+   deployment of signed zones or the deployment of security aware\r
+   recursive name servers that prohibit propagation of bogus data to the\r
+   applications.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 13]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+6.  Resolver Considerations\r
+\r
+   A security-aware resolver needs to be able to perform cryptographic\r
+   functions necessary to verify digital signatures using at least the\r
+   mandatory-to-implement algorithm(s).  Security-aware resolvers must\r
+   also be capable of forming an authentication chain from a newly\r
+   learned zone back to an authentication key, as described above.  This\r
+   process might require additional queries to intermediate DNS zones to\r
+   obtain necessary DNSKEY, DS and RRSIG records.  A security-aware\r
+   resolver should be configured with at least one trust anchor as the\r
+   starting point from which it will attempt to establish authentication\r
+   chains.\r
+\r
+   If a security-aware resolver is separated from the relevant\r
+   authoritative name servers by a recursive name server or by any sort\r
+   of device which acts as a proxy for DNS, and if the recursive name\r
+   server or proxy is not security-aware, the security-aware resolver\r
+   may not be capable of operating in a secure mode.  For example, if a\r
+   security-aware resolver's packets are routed through a network\r
+   address translation device that includes a DNS proxy which is not\r
+   security-aware, the security-aware resolver may find it difficult or\r
+   impossible to obtain or validate signed DNS data.\r
+\r
+   If a security-aware resolver must rely on an unsigned zone or a name\r
+   server that is not security aware, the resolver may not be able to\r
+   validate DNS responses, and will need a local policy on whether to\r
+   accept unverified responses.\r
+\r
+   A security-aware resolver should take a signature's validation period\r
+   into consideration when determining the TTL of data in its cache, to\r
+   avoid caching signed data beyond the validity period of the\r
+   signature, but should also allow for the possibility that the\r
+   security-aware resolver's own clock is wrong.  Thus, a security-aware\r
+   resolver which is part of a security-aware recursive name server will\r
+   need to pay careful attention to the DNSSEC "checking disabled" (CD)\r
+   bit [I-D.ietf-dnsext-dnssec-records].  This is in order to avoid\r
+   blocking valid signatures from getting through to other\r
+   security-aware resolvers which are clients of this recursive name\r
+   server.  See [I-D.ietf-dnsext-dnssec-protocol] for how a secure\r
+   recursive server handles queries with the CD bit set.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 14]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+7.  Stub Resolver Considerations\r
+\r
+   Although not strictly required to do so by the protocol, most DNS\r
+   queries originate from stub resolvers.  Stub resolvers, by\r
+   definition, are minimal DNS resolvers which use recursive query mode\r
+   to offload most of the work of DNS resolution to a recursive name\r
+   server.  Given the widespread use of stub resolvers, the DNSSEC\r
+   architecture has to take stub resolvers into account, but the\r
+   security features needed in a stub resolver differ in some respects\r
+   from those needed in a full security-aware resolver.\r
+\r
+   Even a security-oblivious stub resolver may get some benefit from\r
+   DNSSEC if the recursive name servers it uses are security-aware, but\r
+   for the stub resolver to place any real reliance on DNSSEC services,\r
+   the stub resolver must trust both the recursive name servers in\r
+   question and the communication channels between itself and those name\r
+   servers.  The first of these issues is a local policy issue: in\r
+   essence, a security-oblivious stub resolver has no real choice but to\r
+   place itself at the mercy of the recursive name servers that it uses,\r
+   since it does not perform DNSSEC validity checks on its own.  The\r
+   second issue requires some kind of channel security mechanism; proper\r
+   use of DNS transaction authentication mechanisms such as SIG(0) or\r
+   TSIG would suffice, as would appropriate use of IPsec, and particular\r
+   implementations may have other choices available, such as operating\r
+   system specific interprocess communication mechanisms.\r
+   Confidentiality is not needed for this channel, but data integrity\r
+   and message authentication are.\r
+\r
+   A security-aware stub resolver that does trust both its recursive\r
+   name servers and its communication channel to them may choose to\r
+   examine the setting of the AD bit in the message header of the\r
+   response messages it receives.  The stub resolver can use this flag\r
+   bit as a hint to find out whether the recursive name server was able\r
+   to validate signatures for all of the data in the Answer and\r
+   Authority sections of the response.\r
+\r
+   There is one more step that a security-aware stub resolver can take\r
+   if, for whatever reason, it is not able to establish a useful trust\r
+   relationship with the recursive name servers which it uses: it can\r
+   perform its own signature validation, by setting the Checking\r
+   Disabled (CD) bit in its query messages.  A validating stub resolver\r
+   is thus able to treat the DNSSEC signatures as a trust relationship\r
+   between the zone administrator and the stub resolver itself.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 15]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+8.  Zone Considerations\r
+\r
+   There are several differences between signed and unsigned zones.  A\r
+   signed zone will contain additional security-related records (RRSIG,\r
+   DNSKEY, DS and NSEC records).  RRSIG and NSEC records may be\r
+   generated by a signing process prior to serving the zone.  The RRSIG\r
+   records that accompany zone data have defined inception and\r
+   expiration times, which establish a validity period for the\r
+   signatures and the zone data the signatures cover.\r
+\r
+8.1  TTL values vs. RRSIG validity period\r
+\r
+   It is important to note the distinction between a RRset's TTL value\r
+   and the signature validity period specified by the RRSIG RR covering\r
+   that RRset.  DNSSEC does not change the definition or function of the\r
+   TTL value, which is intended to maintain database coherency in\r
+   caches. A caching resolver purges RRsets from its cache no later than\r
+   the end of the time period specified by the TTL fields of those\r
+   RRsets, regardless of whether or not the resolver is security-aware.\r
+\r
+   The inception and expiration fields in the RRSIG RR\r
+   [I-D.ietf-dnsext-dnssec-records], on the other hand, specify the time\r
+   period during which the signature can be used to validate the covered\r
+   RRset.  The signatures associated with signed zone data are only\r
+   valid for the time period specified by these fields in the RRSIG RRs\r
+   in question.  TTL values cannot extend the validity period of signed\r
+   RRsets in a resolver's cache, but the resolver may use the time\r
+   remaining before expiration of the signature validity period of a\r
+   signed RRset as an upper bound for the TTL of the signed RRset and\r
+   its associated RRSIG RR in the resolver's cache.\r
+\r
+8.2  New Temporal Dependency Issues for Zones\r
+\r
+   Information in a signed zone has a temporal dependency which did not\r
+   exist in the original DNS protocol.  A signed zone requires regular\r
+   maintenance to ensure that each RRset in the zone has a current valid\r
+   RRSIG RR.  The signature validity period of an RRSIG RR is an\r
+   interval during which the signature for one particular signed RRset\r
+   can be considered valid, and the signatures of different RRsets in a\r
+   zone may expire at different times.  Re-signing one or more RRsets in\r
+   a zone will change one or more RRSIG RRs, which in turn will require\r
+   incrementing the zone's SOA serial number to indicate that a zone\r
+   change has occurred and re-signing the SOA RRset itself.  Thus,\r
+   re-signing any RRset in a zone may also trigger DNS NOTIFY messages\r
+   and zone transfers operations.\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 16]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+9.  Name Server Considerations\r
+\r
+   A security-aware name server should include the appropriate DNSSEC\r
+   records (RRSIG, DNSKEY, DS and NSEC) in all responses to queries from\r
+   resolvers which have signaled their willingness to receive such\r
+   records via use of the DO bit in the EDNS header, subject to message\r
+   size limitations.  Since inclusion of these DNSSEC RRs could easily\r
+   cause UDP message truncation and fallback to TCP, a security-aware\r
+   name server must also support the EDNS "sender's UDP payload"\r
+   mechanism.\r
+\r
+   If possible, the private half of each DNSSEC key pair should be kept\r
+   offline, but this will not be possible for a zone for which DNS\r
+   dynamic update has been enabled.  In the dynamic update case, the\r
+   primary master server for the zone will have to re-sign the zone when\r
+   updated, so the private key corresponding to the zone signing key\r
+   will have to be kept online.  This is an example of a situation where\r
+   the ability to separate the zone's DNSKEY RRset into zone signing\r
+   key(s) and key signing key(s) may be useful, since the key signing\r
+   key(s) in such a case can still be kept offline and may have a longer\r
+   useful lifetime than the zone signing key(s).\r
+\r
+   DNSSEC, by itself, is not enough to protect the integrity of an\r
+   entire zone during zone transfer operations, since even a signed zone\r
+   contains some unsigned, nonauthoritative data if the zone has any\r
+   children.  Therefore, zone maintenance operations will require some\r
+   additional mechanisms (most likely some form of channel security,\r
+   such as TSIG, SIG(0), or IPsec).\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 17]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+10.  DNS Security Document Family\r
+\r
+   The DNSSEC document set can be partitioned into several main groups,\r
+   under the larger umbrella of the DNS base protocol documents.\r
+\r
+   The "DNSSEC protocol document set" refers to the three documents\r
+   which form the core of the DNS security extensions:\r
+   1.  DNS Security Introduction and Requirements (this document)\r
+   2.  Resource Records for DNS Security Extensions\r
+       [I-D.ietf-dnsext-dnssec-records]\r
+   3.  Protocol Modifications for the DNS Security Extensions\r
+       [I-D.ietf-dnsext-dnssec-protocol]\r
+\r
+   Additionally, any document that would add to, or change the core DNS\r
+   Security extensions would fall into this category.  This includes any\r
+   future work on the communication between security-aware stub\r
+   resolvers and upstream security-aware recursive name servers.\r
+\r
+   The "Digital Signature Algorithm Specification" document set refers\r
+   to the group of documents that describe how specific digital\r
+   signature algorithms should be implemented to fit the DNSSEC resource\r
+   record format.  Each document in this set deals with a specific\r
+   digital signature algorithm.\r
+\r
+   The "Transaction Authentication Protocol" document set refers to the\r
+   group of documents that deal with DNS message authentication,\r
+   including secret key establishment and verification.  While not\r
+   strictly part of the DNSSEC specification as defined in this set of\r
+   documents, this group is noted because of its relationship to DNSSEC.\r
+\r
+   The final document set, "New Security Uses", refers to documents that\r
+   seek to use proposed DNS Security extensions for other security\r
+   related purposes.  DNSSEC does not provide any direct security for\r
+   these new uses, but may be used to support them.  Documents that fall\r
+   in this category include the use of DNS in the storage and\r
+   distribution of certificates [RFC2538].\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 18]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+11.  IANA Considerations\r
+\r
+   This overview document introduces no new IANA considerations. Please\r
+   see [I-D.ietf-dnsext-dnssec-records] for a complete review of the\r
+   IANA considerations introduced by DNSSEC.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 19]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+12.  Security Considerations\r
+\r
+   This document introduces the DNS security extensions and describes\r
+   the document set that contains the new security records and DNS\r
+   protocol modifications.  The extensions provide data origin\r
+   authentication and data integrity using digital signatures over\r
+   resource record sets.This document discusses the capabilities and\r
+   limitations of these extensions.\r
+\r
+   In order for a security-aware resolver to validate a DNS response,\r
+   all zones along the path from the trusted starting point to the zone\r
+   containing the response zones must be signed, and all name servers\r
+   and resolvers involved in the resolution process must be\r
+   security-aware, as defined in this document set.  A security-aware\r
+   resolver cannot verify responses originating from an unsigned zone,\r
+   from a zone not served by a security-aware name server, or for any\r
+   DNS data which the resolver is only able to obtain through a\r
+   recursive name server which is not security-aware.  If there is a\r
+   break in the authentication chain such that a security-aware resolver\r
+   cannot obtain and validate the authentication keys it needs, then the\r
+   security-aware resolver cannot validate the affected DNS data.\r
+\r
+   This document briefly discusses other methods of adding security to a\r
+   DNS query, such as using a channel secured by IPsec or using a DNS\r
+   transaction authentication mechanism, but transaction security is not\r
+   part of DNSSEC per se.\r
+\r
+   A non-validating security-aware stub resolver, by definition, does\r
+   not perform DNSSEC signature validation on its own, and thus is\r
+   vulnerable both to attacks on (and by) the security-aware recursive\r
+   name servers which perform these checks on its behalf and also to\r
+   attacks on its communication with those security-aware recursive name\r
+   servers. Non-validating security-aware stub resolvers should use some\r
+   form of channel security to defend against the latter threat. The\r
+   only known defense against the former threat would be for the\r
+   security-aware stub resolver to perform its own signature validation,\r
+   at which point, again by definition, it would no longer be a\r
+   non-validating security-aware stub resolver.\r
+\r
+   DNSSEC does not protect against denial of service attacks.  DNSSEC\r
+   makes DNS vulnerable to a new class of denial of service attacks\r
+   based on cryptographic operations against security-aware resolvers\r
+   and security-aware name servers, since an attacker can attempt to use\r
+   DNSSEC mechanisms to consume a victim's resources.  This class of\r
+   attacks takes at least two forms.  An attacker may be able to consume\r
+   resources in a security-aware resolver's signature validation code by\r
+   tampering with RRSIG RRs in response messages or by constructing\r
+   needlessly complex signature chains.  An attacker may also be able to\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 20]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   consume resources in a security-aware name server which supports DNS\r
+   dynamic update, by sending a stream of update messages that force the\r
+   security-aware name server to re-sign some RRsets in the zone more\r
+   frequently than would otherwise be necessary.\r
+\r
+   DNSSEC introduces the ability for a hostile party to enumerate all\r
+   the names in a zone by following the NSEC chain. NSEC RRs assert\r
+   which names do not exist in a zone by linking from existing name to\r
+   existing name along a canonical ordering of all the names within a\r
+   zone. Thus, an attacker can query these NSEC RRs in sequence to\r
+   obtain all the names in a zone. While not an attack on the DNS\r
+   itself, this could allow an attacker to map network hosts or other\r
+   resources by enumerating the contents of a zone. There are non-DNS\r
+   protocol means of detecting and limiting this attack beyond the scope\r
+   of this document set.\r
+\r
+   DNSSEC introduces significant additional complexity to the DNS, and\r
+   thus introduces many new opportunities for implementation bugs and\r
+   misconfigured zones.  In particular, enabling DNSSEC signature\r
+   validation in a resolver may cause entire legitimate zones to become\r
+   effectively unreachable due to DNSSEC configuration errors or bugs.\r
+\r
+   DNSSEC does not provide confidentiality, due to a deliberate design\r
+   choice.\r
+\r
+   DNSSEC does not protect against tampering with unsigned zone data.\r
+   Non-authoritative data at zone cuts (glue and NS RRs in the parent\r
+   zone) are not signed.  This does not pose a problem when validating\r
+   the authentication chain, but does mean that the non-authoritative\r
+   data itself is vulnerable to tampering during zone transfer\r
+   operations.  Thus, while DNSSEC can provide data origin\r
+   authentication and data integrity for RRsets, it cannot do so for\r
+   zones, and other mechanisms must be used to protect zone transfer\r
+   operations.\r
+\r
+   Please see [I-D.ietf-dnsext-dnssec-records] and\r
+   [I-D.ietf-dnsext-dnssec-protocol] for additional security\r
+   considerations.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 21]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+13.  Acknowledgements\r
+\r
+   This document was created from the input and ideas of the members of\r
+   the DNS Extensions Working Group.  While explicitly listing everyone\r
+   who has contributed during the decade during which DNSSEC has been\r
+   under development would be an impossible task, the editors would\r
+   particularly like to thank the following people for their\r
+   contributions to and comments on this document set: Mark Andrews,\r
+   Derek Atkins, Alan Barrett, Dan Bernstein, David Blacka, Len Budney,\r
+   Randy Bush, Francis Dupont, Donald Eastlake, Miek Gieben, Michael\r
+   Graff, Olafur Gudmundsson, Gilles Guette, Andreas Gustafsson, Phillip\r
+   Hallam-Baker, Walter Howard, Stephen Jacob, Simon Josefsson, Olaf\r
+   Kolkman, Mark Kosters, David Lawrence, Ted Lemon, Ed Lewis, Ted\r
+   Lindgreen, Josh Littlefield, Rip Loomis, Bill Manning, Mans Nilsson,\r
+   Masataka Ohta, Rob Payne, Jim Reid, Michael Richardson, Erik\r
+   Rozendaal, Jakob Schlyter, Mike StJohns, Paul Vixie, Sam Weiler, and\r
+   Brian Wellington.\r
+\r
+   No doubt the above list is incomplete.  We apologize to anyone we\r
+   left out.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 22]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+14.  References\r
+\r
+14.1  Normative References\r
+\r
+   [I-D.ietf-dnsext-dnssec-protocol]\r
+              Arends, R., Austein, R., Larson, M., Massey, D. and S.\r
+              Rose, "Protocol Modifications for the DNS Security\r
+              Extensions", draft-ietf-dnsext-dnssec-protocol-06 (work in\r
+              progress), May 2004.\r
+\r
+   [I-D.ietf-dnsext-dnssec-records]\r
+              Arends, R., Austein, R., Larson, M., Massey, D. and S.\r
+              Rose, "Resource Records for DNS Security Extensions",\r
+              draft-ietf-dnsext-dnssec-records-08 (work in progress),\r
+              May 2004.\r
+\r
+   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",\r
+              STD 13, RFC 1034, November 1987.\r
+\r
+   [RFC1035]  Mockapetris, P., "Domain names - implementation and\r
+              specification", STD 13, RFC 1035, November 1987.\r
+\r
+   [RFC2535]  Eastlake, D., "Domain Name System Security Extensions",\r
+              RFC 2535, March 1999.\r
+\r
+   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC\r
+              2671, August 1999.\r
+\r
+   [RFC3225]  Conrad, D., "Indicating Resolver Support of DNSSEC", RFC\r
+              3225, December 2001.\r
+\r
+   [RFC3226]  Gudmundsson, O., "DNSSEC and IPv6 A6 aware server/resolver\r
+              message size requirements", RFC 3226, December 2001.\r
+\r
+   [RFC3445]  Massey, D. and S. Rose, "Limiting the Scope of the KEY\r
+              Resource Record (RR)", RFC 3445, December 2002.\r
+\r
+14.2  Informative References\r
+\r
+   [I-D.ietf-dnsext-dns-threats]\r
+              Atkins, D. and R. Austein, "Threat Analysis Of The Domain\r
+              Name System", draft-ietf-dnsext-dns-threats-07 (work in\r
+              progress), April 2004.\r
+\r
+   [I-D.ietf-dnsext-nsec-rdata]\r
+              Schlyter, J., "KEY RR Secure Entry Point Flag",\r
+              draft-ietf-dnsext-nsec-rdata-05 (work in progress), March\r
+              2004.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 23]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   [RFC2136]  Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic\r
+              Updates in the Domain Name System (DNS UPDATE)", RFC 2136,\r
+              April 1997.\r
+\r
+   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS\r
+              Specification", RFC 2181, July 1997.\r
+\r
+   [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS\r
+              NCACHE)", RFC 2308, March 1998.\r
+\r
+   [RFC2538]  Eastlake, D. and O. Gudmundsson, "Storing Certificates in\r
+              the Domain Name System (DNS)", RFC 2538, March 1999.\r
+\r
+   [RFC2845]  Vixie, P., Gudmundsson, O., Eastlake, D. and B.\r
+              Wellington, "Secret Key Transaction Authentication for DNS\r
+              (TSIG)", RFC 2845, May 2000.\r
+\r
+   [RFC2931]  Eastlake, D., "DNS Request and Transaction Signatures (\r
+              SIG(0)s)", RFC 2931, September 2000.\r
+\r
+   [RFC3007]  Wellington, B., "Secure Domain Name System (DNS) Dynamic\r
+              Update", RFC 3007, November 2000.\r
+\r
+   [RFC3008]  Wellington, B., "Domain Name System Security (DNSSEC)\r
+              Signing Authority", RFC 3008, November 2000.\r
+\r
+   [RFC3090]  Lewis, E., "DNS Security Extension Clarification on Zone\r
+              Status", RFC 3090, March 2001.\r
+\r
+   [RFC3597]  Gustafsson, A., "Handling of Unknown DNS Resource Record\r
+              (RR) Types", RFC 3597, September 2003.\r
+\r
+   [RFC3655]  Wellington, B. and O. Gudmundsson, "Redefinition of DNS\r
+              Authenticated Data (AD) bit", RFC 3655, November 2003.\r
+\r
+   [RFC3658]  Gudmundsson, O., "Delegation Signer (DS) Resource Record\r
+              (RR)", RFC 3658, December 2003.\r
+\r
+   [RFC3755]  Weiler, S., "Legacy Resolver Compatibility for Delegation\r
+              Signer", RFC 3755, April 2004.\r
+\r
+   [RFC3757]  Kolkman, O., Schlyter, J. and E. Lewis, "KEY RR Secure\r
+              Entry Point Flag", RFC 3757, April 2004.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 24]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+Authors' Addresses\r
+\r
+   Roy Arends\r
+   Telematica Instituut\r
+   Drienerlolaan 5\r
+   7522 NB  Enschede\r
+   NL\r
+\r
+   EMail: roy.arends@telin.nl\r
+\r
+\r
+   Rob Austein\r
+   Internet Systems Consortium\r
+   950 Charter Street\r
+   Redwood City, CA  94063\r
+   USA\r
+\r
+   EMail: sra@isc.org\r
+\r
+\r
+   Matt Larson\r
+   VeriSign, Inc.\r
+   21345 Ridgetop Circle\r
+   Dulles, VA  20166-6503\r
+   USA\r
+\r
+   EMail: mlarson@verisign.com\r
+\r
+\r
+   Dan Massey\r
+   USC Information Sciences Institute\r
+   3811 N. Fairfax Drive\r
+   Arlington, VA  22203\r
+   USA\r
+\r
+   EMail: masseyd@isi.edu\r
+\r
+\r
+   Scott Rose\r
+   National Institute for Standards and Technology\r
+   100 Bureau Drive\r
+   Gaithersburg, MD  20899-8920\r
+   USA\r
+\r
+   EMail: scott.rose@nist.gov\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 25]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+Intellectual Property Statement\r
+\r
+   The IETF takes no position regarding the validity or scope of any\r
+   intellectual property or other rights that might be claimed to\r
+   pertain to the implementation or use of the technology described in\r
+   this document or the extent to which any license under such rights\r
+   might or might not be available; neither does it represent that it\r
+   has made any effort to identify any such rights. Information on the\r
+   IETF's procedures with respect to rights in standards-track and\r
+   standards-related documentation can be found in BCP-11. Copies of\r
+   claims of rights made available for publication and any assurances of\r
+   licenses to be made available, or the result of an attempt made to\r
+   obtain a general license or permission for the use of such\r
+   proprietary rights by implementors or users of this specification can\r
+   be obtained from the IETF Secretariat.\r
+\r
+   The IETF invites any interested party to bring to its attention any\r
+   copyrights, patents or patent applications, or other proprietary\r
+   rights which may cover technology that may be required to practice\r
+   this standard. Please address the information to the IETF Executive\r
+   Director.\r
+\r
+\r
+Full Copyright Statement\r
+\r
+   Copyright (C) The Internet Society (2004). All Rights Reserved.\r
+\r
+   This document and translations of it may be copied and furnished to\r
+   others, and derivative works that comment on or otherwise explain it\r
+   or assist in its implementation may be prepared, copied, published\r
+   and distributed, in whole or in part, without restriction of any\r
+   kind, provided that the above copyright notice and this paragraph are\r
+   included on all such copies and derivative works. However, this\r
+   document itself may not be modified in any way, such as by removing\r
+   the copyright notice or references to the Internet Society or other\r
+   Internet organizations, except as needed for the purpose of\r
+   developing Internet standards in which case the procedures for\r
+   copyrights defined in the Internet Standards process must be\r
+   followed, or as required to translate it into languages other than\r
+   English.\r
+\r
+   The limited permissions granted above are perpetual and will not be\r
+   revoked by the Internet Society or its successors or assignees.\r
+\r
+   This document and the information contained herein is provided on an\r
+   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING\r
+   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING\r
+   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 26]\r
+\f\r
+Internet-Draft    DNSSEC Introduction and Requirements          May 2004\r
+\r
+\r
+   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF\r
+   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\r
+\r
+\r
+Acknowledgment\r
+\r
+   Funding for the RFC Editor function is currently provided by the\r
+   Internet Society.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 27]\r
+\f\r
+\r
similarity index 54%
rename from doc/draft/draft-ietf-dnsext-dnssec-protocol-05.txt
rename to doc/draft/draft-ietf-dnsext-dnssec-protocol-06.txt
index 1a9f8aaf7a06dc01e71f364fdcd1c27e2e052ab8..a6f628e3c7d012f2584d7b16ee80ac390588f632 100644 (file)
-
-
-DNS Extensions                                                 R. Arends
-Internet-Draft                                      Telematica Instituut
-Expires: August 16, 2004                                       M. Larson
-                                                                VeriSign
-                                                              R. Austein
-                                                                     ISC
-                                                               D. Massey
-                                                                 USC/ISI
-                                                                 S. Rose
-                                                                    NIST
-                                                       February 16, 2004
-
-
-         Protocol Modifications for the DNS Security Extensions
-                  draft-ietf-dnsext-dnssec-protocol-05
-
-Status of this Memo
-
-   This document is an Internet-Draft and is in full conformance with
-   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/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 August 16, 2004.
-
-Copyright Notice
-
-   Copyright (C) The Internet Society (2004). All Rights Reserved.
-
-Abstract
-
-   This document is part of a family of documents which describe the DNS
-   Security Extensions (DNSSEC).  The DNS Security Extensions are a
-   collection of new resource records and protocol modifications which
-   add data origin authentication and data integrity to the DNS.  This
-   document describes the DNSSEC protocol modifications.  This document
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 1]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   defines the concept of a signed zone, along with the requirements for
-   serving and resolving using DNSSEC.  These techniques allow a
-   security-aware resolver to authenticate both DNS resource records and
-   authoritative DNS error indications.
-
-   This document obsoletes RFC 2535 and incorporates changes from all
-   updates to RFC 2535.
-
-Table of Contents
-
-   1.    Introduction . . . . . . . . . . . . . . . . . . . . . . . .  4
-   1.1   Background and Related Documents . . . . . . . . . . . . . .  4
-   1.2   Reserved Words . . . . . . . . . . . . . . . . . . . . . . .  4
-   1.3   Editors' Notes . . . . . . . . . . . . . . . . . . . . . . .  4
-   1.3.1 Open Technical Issues  . . . . . . . . . . . . . . . . . . .  4
-   1.3.2 Technical Changes or Corrections . . . . . . . . . . . . . .  4
-   1.3.3 Typos and Minor Corrections  . . . . . . . . . . . . . . . .  5
-   2.    Zone Signing . . . . . . . . . . . . . . . . . . . . . . . .  6
-   2.1   Including DNSKEY RRs in a Zone . . . . . . . . . . . . . . .  6
-   2.2   Including RRSIG RRs in a Zone  . . . . . . . . . . . . . . .  6
-   2.3   Including NSEC RRs in a Zone . . . . . . . . . . . . . . . .  7
-   2.4   Including DS RRs in a Zone . . . . . . . . . . . . . . . . .  8
-   2.5   Changes to the CNAME Resource Record.  . . . . . . . . . . .  8
-   2.6   Example of a Secure Zone . . . . . . . . . . . . . . . . . .  9
-   3.    Serving  . . . . . . . . . . . . . . . . . . . . . . . . . . 10
-   3.1   Authoritative Name Servers . . . . . . . . . . . . . . . . . 10
-   3.1.1 Including RRSIG RRs in a Response  . . . . . . . . . . . . . 11
-   3.1.2 Including DNSKEY RRs In a Response . . . . . . . . . . . . . 11
-   3.1.3 Including NSEC RRs In a Response . . . . . . . . . . . . . . 12
-   3.1.4 Including DS RRs In a Response . . . . . . . . . . . . . . . 14
-   3.1.5 Responding to Queries for Type AXFR or IXFR  . . . . . . . . 16
-   3.1.6 The AD and CD Bits in an Authoritative Response  . . . . . . 17
-   3.2   Recursive Name Servers . . . . . . . . . . . . . . . . . . . 17
-   3.2.1 The DO bit . . . . . . . . . . . . . . . . . . . . . . . . . 18
-   3.2.2 The CD bit . . . . . . . . . . . . . . . . . . . . . . . . . 18
-   3.2.3 The AD bit . . . . . . . . . . . . . . . . . . . . . . . . . 18
-   3.3   Example DNSSEC Responses . . . . . . . . . . . . . . . . . . 19
-   4.    Resolving  . . . . . . . . . . . . . . . . . . . . . . . . . 20
-   4.1   EDNS Support . . . . . . . . . . . . . . . . . . . . . . . . 20
-   4.2   Signature Verification Support . . . . . . . . . . . . . . . 20
-   4.3   Determining Security Status of Data  . . . . . . . . . . . . 21
-   4.4   Preconfigured Public Keys  . . . . . . . . . . . . . . . . . 22
-   4.5   Response Caching . . . . . . . . . . . . . . . . . . . . . . 22
-   4.6   Handling of the CD and AD bits . . . . . . . . . . . . . . . 22
-   4.7   Rate Limiting  . . . . . . . . . . . . . . . . . . . . . . . 23
-   4.8   Stub resolvers . . . . . . . . . . . . . . . . . . . . . . . 24
-   4.8.1 Handling of the DO Bit . . . . . . . . . . . . . . . . . . . 24
-   4.8.2 Handling of the CD Bit . . . . . . . . . . . . . . . . . . . 24
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 2]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   4.8.3 Handling of the AD Bit . . . . . . . . . . . . . . . . . . . 24
-   5.    Authenticating DNS Responses . . . . . . . . . . . . . . . . 26
-   5.1   Special Considerations for Islands of Security . . . . . . . 27
-   5.2   Authenticating Referrals . . . . . . . . . . . . . . . . . . 27
-   5.3   Authenticating an RRset Using an RRSIG RR  . . . . . . . . . 28
-   5.3.1 Checking the RRSIG RR Validity . . . . . . . . . . . . . . . 29
-   5.3.2 Reconstructing the Signed Data . . . . . . . . . . . . . . . 30
-   5.3.3 Checking the Signature . . . . . . . . . . . . . . . . . . . 31
-   5.3.4 Authenticating A Wildcard Expanded RRset Positive
-         Response . . . . . . . . . . . . . . . . . . . . . . . . . . 32
-   5.4   Authenticated Denial of Existence  . . . . . . . . . . . . . 32
-   5.5   Authentication Example . . . . . . . . . . . . . . . . . . . 33
-   6.    IANA Considerations  . . . . . . . . . . . . . . . . . . . . 34
-   7.    Security Considerations  . . . . . . . . . . . . . . . . . . 35
-   8.    Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36
-         Normative References . . . . . . . . . . . . . . . . . . . . 37
-         Informative References . . . . . . . . . . . . . . . . . . . 38
-         Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 38
-   A.    Signed Zone Example  . . . . . . . . . . . . . . . . . . . . 40
-   B.    Example Responses  . . . . . . . . . . . . . . . . . . . . . 46
-   B.1   Answer . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
-   B.2   Name Error . . . . . . . . . . . . . . . . . . . . . . . . . 47
-   B.3   No Data Error  . . . . . . . . . . . . . . . . . . . . . . . 48
-   B.4   Referral to Signed Zone  . . . . . . . . . . . . . . . . . . 49
-   B.5   Referral to Unsigned Zone  . . . . . . . . . . . . . . . . . 50
-   B.6   Wildcard Expansion . . . . . . . . . . . . . . . . . . . . . 50
-   B.7   Wildcard No Data Error . . . . . . . . . . . . . . . . . . . 51
-   B.8   DS Child Zone No Data Error  . . . . . . . . . . . . . . . . 52
-   C.    Authentication Examples  . . . . . . . . . . . . . . . . . . 54
-   C.1   Authenticating An Answer . . . . . . . . . . . . . . . . . . 54
-   C.1.1 Authenticating the example DNSKEY RR . . . . . . . . . . . . 54
-   C.2   Name Error . . . . . . . . . . . . . . . . . . . . . . . . . 55
-   C.3   No Data Error  . . . . . . . . . . . . . . . . . . . . . . . 55
-   C.4   Referral to Signed Zone  . . . . . . . . . . . . . . . . . . 55
-   C.5   Referral to Unsigned Zone  . . . . . . . . . . . . . . . . . 55
-   C.6   Wildcard Expansion . . . . . . . . . . . . . . . . . . . . . 56
-   C.7   Wildcard No Data Error . . . . . . . . . . . . . . . . . . . 56
-   C.8   DS Child Zone No Data Error  . . . . . . . . . . . . . . . . 56
-         Intellectual Property and Copyright Statements . . . . . . . 57
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 3]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-1. Introduction
-
-   The DNS Security Extensions (DNSSEC) are a collection of new resource
-   records and protocol modifications which add data origin
-   authentication and data integrity to the DNS. This document defines
-   the DNSSEC protocol modifications. Section 2 of this document defines
-   the concept of a signed zone and lists the requirements for zone
-   signing. Section 3 describes the modifications to authoritative name
-   server behavior necessary to handle signed zones. Section 4 describes
-   the behavior of entities which include security-aware resolver
-   functions. Finally, Section 5 defines how to use DNSSEC RRs to
-   authenticate a response.
-
-1.1 Background and Related Documents
-
-   The reader is assumed to be familiar with the basic DNS concepts
-   described in RFC1034 [RFC1034] and RFC1035 [RFC1035].
-
-   This document is part of a family of documents which define DNSSEC.
-   An introduction to DNSSEC and definition of common terms can be found
-   in [I-D.ietf-dnsext-dnssec-intro].  A definition of the DNSSEC
-   resource records can be found in [I-D.ietf-dnsext-dnssec-records].
-
-1.2 Reserved Words
-
-   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 RFC 2119. [RFC2119].
-
-1.3 Editors' Notes
-
-1.3.1 Open Technical Issues
-
-1.3.2 Technical Changes or Corrections
-
-   Please report technical corrections to dnssec-editors@east.isi.edu.
-   To assist the editors, please indicate the text in error and point
-   out the RFC that defines the correct behavior.  For a technical
-   change where no RFC that defines the correct behavior, or if there's
-   more than one applicable RFC and the definitions conflict, please
-   post the issue to namedroppers.
-
-   An example correction to dnssec-editors might be: Page X says
-   "DNSSEC RRs SHOULD be automatically returned in responses."  This was
-   true in RFC 2535, but RFC 3225 (Section 3, 3rd paragraph) says the
-   DNSSEC RR types MUST NOT be included in responses unless the resolver
-   indicated support for DNSSEC.
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 4]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-1.3.3 Typos and Minor Corrections
-
-   Please report any typos corrections to dnssec-editors@east.isi.edu.
-   To assist the editors, please provide enough context for us to find
-   the incorrect text quickly.
-
-   An example message to dnssec-editors might be: page X says "the
-   DNSSEC standard has been in development for over 1 years".   It
-   should read "over 10 years".
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 5]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-2. Zone Signing
-
-   DNSSEC introduces the concept of signed zones.  A signed zone
-   includes DNSKEY, RRSIG, NSEC and (optionally) DS records according to
-   the rules specified in Section 2.1, Section 2.2, Section 2.3 and
-   Section 2.4, respectively.  A zone that does not include these
-   records according to the rules in this section is an unsigned zone.
-
-   DNSSEC requires a change to the definition of the CNAME resource
-   record [RFC1035].  Section 2.5 changes the CNAME RR to allow RRSIG
-   and NSEC RRs to appear at the same owner name as a CNAME RR.
-
-2.1 Including DNSKEY RRs in a Zone
-
-   To sign a zone, the zone's administrator generates one or more
-   public/private key pairs and uses the private key(s) to sign
-   authoritative RRsets in the zone.  For each private key used to
-   create RRSIG RRs, there SHOULD be a corresponding zone DNSKEY RR with
-   the public component stored in the zone. A zone key DNSKEY RR MUST
-   have the Zone Key bit of the flags RDATA field set to one -- see
-   Section 2.1.1 of [I-D.ietf-dnsext-dnssec-records].  Public keys
-   associated with other DNS operations MAY be stored in DNSKEY RRs that
-   are not marked as zone keys but MUST NOT be used to verify RRSIGs.
-
-   If the zone is delegated and does not wish to act as an island of
-   security, the zone MUST have at least one DNSKEY RR at the apex to
-   act as a secure entry point into the zone.  This DNSKEY would then be
-   used to generate a DS RR at the delegating parent (see
-   [I-D.ietf-dnsext-dnssec-records]).
-
-   DNSKEY RRs MUST NOT appear at delegation points.
-
-2.2 Including RRSIG RRs in a Zone
-
-   For each authoritative RRset in a signed zone, there MUST be at least
-   one RRSIG record that meets all of the following requirements:
-
-   o  The RRSIG owner name is equal to the RRset owner name;
-
-   o  The RRSIG class is equal to the RRset class;
-
-   o  The RRSIG Type Covered field is equal to the RRset type;
-
-   o  The RRSIG Original TTL field is equal to the TTL of the RRset;
-
-   o  The RRSIG RR's TTL is equal to the TTL of the RRset;
-
-   o  The RRSIG Labels field is equal to the number of labels in the
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 6]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-      RRset owner name, not counting the null root label and not
-      counting the leftmost label if it is a wildcard;
-
-   o  The RRSIG Signer's Name field is equal to the name of the zone
-      containing the RRset; and
-
-   o  The RRSIG Algorithm, Signer's Name, and Key Tag fields identify a
-      zone key DNSKEY record at the zone apex.
-
-   The process for constructing the RRSIG RR for a given RRset is
-   described in [I-D.ietf-dnsext-dnssec-records]. An RRset MAY have
-   multiple RRSIG RRs associated with it.
-
-   An RRSIG RR itself MUST NOT be signed, since signing an RRSIG RR
-   would add no value and would create an infinite loop in the signing
-   process.
-
-   The NS RRset that appears at the zone apex name MUST be signed, but
-   the NS RRsets that appear at delegation points (that is, the NS
-   RRsets in the parent zone that delegate the name to the child zone's
-   name servers) MUST NOT be signed. Glue address RRsets associated with
-   delegations MUST NOT be signed.
-
-   There MUST be an RRSIG for each RRset using at least one DNSKEY of
-   each algorithm in the parent zone's DS RRset and each additional
-   algorithm, if any, in the apex DNSKEY RRset. The apex DNSKEY RRset
-   itself MUST be signed by each algorithm appearing in the DS RRset.
-
-2.3 Including NSEC RRs in a Zone
-
-   Each owner name in the zone which has authoritative data or a
-   delegation point NS RRset MUST have an NSEC resource record. The
-   process for constructing the NSEC RR for a given name is described in
-   [I-D.ietf-dnsext-dnssec-records].
-
-   The TTL value for any NSEC RR SHOULD be the same as the minimum TTL
-   value field in the zone SOA RR.
-
-   An NSEC record (and its associated RRSIG RRset) MUST NOT be the only
-   RRset at any particular owner name.  That is, the signing process
-   MUST NOT create NSEC or RRSIG RRs for owner names nodes which were
-   not the owner name of any RRset before the zone was signed.
-
-   The type bitmap of every NSEC resource record in a signed zone MUST
-   indicate the presence of both the NSEC record itself and its
-   corresponding RRSIG record.
-
-   The difference between the set of owner names that require RRSIG
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 7]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   records and the set of owner names that require NSEC records is
-   subtle and worth highlighting.  RRSIG records are present at the
-   owner names of all authoritative RRsets.  NSEC records are present at
-   the owner names of all names for which the signed zone is
-   authoritative and also at the owner names of delegations from the
-   signed zone to its children.  Neither NSEC nor RRSIG records are
-   present (in the parent zone) at the owner names of glue address
-   RRsets.  Note, however, that this distinction is for the most part is
-   only visible during the zone signing process, because NSEC RRsets are
-   authoritative data, and are therefore signed, thus any owner name
-   which has an NSEC RRset will have RRSIG RRs as well in the signed
-   zone.
-
-2.4 Including DS RRs in a Zone
-
-   The DS resource record establishes authentication chains between DNS
-   zones.  A DS RRset SHOULD be present at a delegation point when the
-   child zone is signed.  The DS RRset MAY contain multiple records,
-   each referencing a public key in the child zone used to verify the
-   RRSIGs in that zone. All DS RRsets in a zone MUST be signed and DS
-   RRsets MUST NOT appear at a zone's apex.
-
-   A DS RR SHOULD point to a DNSKEY RR which is present in the child's
-   apex DNSKEY RRset, and the child's apex DNSKEY RRset SHOULD be signed
-   by the corresponding private key.
-
-   The TTL of a DS RRset SHOULD match the TTL of the delegating NS RRset
-   (i.e., the NS RRset from the same zone containing the DS RRset).
-
-   Construction of a DS RR requires knowledge of the corresponding
-   DNSKEY RR in the child zone, which implies communication between the
-   child and parent zones.  This communication is an operational matter
-   not covered by this document.
-
-2.5 Changes to the CNAME Resource Record.
-
-   If a CNAME RRset is present at a name in a signed zone, appropriate
-   RRSIG and NSEC RRsets are REQUIRED at that name. A KEY RRset at that
-   name for secure dynamic update purposes is also allowed.  Other types
-   MUST NOT be present at that name.
-
-   This is a modification to the original CNAME definition given in
-   [RFC1034].  The original definition of the CNAME RR did not allow any
-   other types to coexist with a CNAME record, but a signed zone
-   requires NSEC and RRSIG RRs for every authoritative name.  To resolve
-   this conflict, this specification modifies the definition of the
-   CNAME resource record to allow it to coexist with NSEC and RRSIG RRs.
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 8]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-2.6 Example of a Secure Zone
-
-   Appendix A shows a complete example of a small signed zone.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 9]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-3. Serving
-
-   This section describes the behavior of entities that include
-   security-aware name server functions.  In many cases such functions
-   will be part of a security-aware recursive name server, but a
-   security-aware authoritative name server has some of the same
-   requirements as a security-aware recursive name server does.
-   Functions specific to security-aware recursive name servers are
-   described in Section 3.2; functions specific to authoritative servers
-   are described in Section 3.1.
-
-   The terms "SNAME", "SCLASS", and "STYPE" in the following discussion
-   are as used in [RFC1034].
-
-   A security-aware name server MUST support the EDNS0 [RFC2671] message
-   size extension, MUST support a message size of at least 1220 octets,
-   and SHOULD support a message size of 4000 octets [RFC3226].
-
-   A security-aware name server that receives a DNS query that does not
-   include the EDNS OPT pseudo-RR or that has the DO bit set to zero
-   MUST treat the RRSIG, DNSKEY, and NSEC RRs as it would any other
-   RRset, and MUST NOT perform any of the additional processing
-   described below.  Since the DS RR type has the peculiar property of
-   only existing in the parent zone at delegation points, DS RRs always
-   require some special processing, as described in Section 3.1.4.1.
-
-   DNSSEC allocates two new bits in the DNS message header: the CD
-   (Checking Disabled) bit and the AD (Authentic Data) bit.  The CD bit
-   is controlled by resolvers; a security-aware name server MUST copy
-   the CD bit from a query into the corresponding response.  The AD bit
-   is controlled by name servers; a security-aware name server MUST
-   ignore the setting of the AD bit in queries.  See Section 3.1.6,
-   Section 3.2.2, Section 3.2.3, Section 4, and Section 4.8 for details
-   on the behavior of these bits.
-
-3.1 Authoritative Name Servers
-
-   Upon receiving a relevant query that has the EDNS [RFC2671] OPT
-   pseudo-RR DO bit [RFC3225] set to one, a security-aware authoritative
-   name server for a signed zone MUST include additional RRSIG, NSEC,
-   and DS RRs according to the following rules:
-
-   o  RRSIG RRs that can be used to authenticate a response MUST be
-      included in the response according to the rules in Section 3.1.1;
-
-   o  NSEC RRs that can be used to provide authenticated denial of
-      existence MUST be included in the response automatically according
-      to the rules in Section 3.1.3;
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 10]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   o  Either a DS RRset or an NSEC RR proving that no DS RRs exist MUST
-      be included in referrals automatically according to the rules in
-      Section 3.1.4.
-
-   DNSSEC does not change the DNS zone transfer protocol.  Section 3.1.5
-   discusses zone transfer requirements.
-
-3.1.1 Including RRSIG RRs in a Response
-
-   When responding to a query that has the DO bit set to one, a
-   security-aware authoritative name server SHOULD attempt to send RRSIG
-   RRs that a security-aware resolver can use to authenticate the RRsets
-   in the response.  Inclusion of RRSIG RRs in a response is subject to
-   the following rules:
-
-   o  When placing a signed RRset in the Answer section, the name server
-      MUST also place its RRSIG RRs in the Answer section.  The RRSIG
-      RRs have a higher priority for inclusion than any other RRsets
-      that may need to be included.  If space does not permit inclusion
-      of these RRSIG RRs, the name server MUST set the TC bit.
-
-   o  When placing a signed RRset in the Authority section, the name
-      server MUST also place its RRSIG RRs in the Authority section.
-      The RRSIG RRs have a higher priority for inclusion than any other
-      RRsets that may need to be included.  If space does not permit
-      inclusion of these RRSIG RRs, the name server MUST set the TC bit.
-
-   o  When placing a signed RRset in the Additional section, the name
-      server MUST also place its RRSIG RRs in the Additional section.
-      If space does not permit inclusion of both the RRset and its
-      associated RRSIG RRs, the name server MUST NOT set the TC bit
-      solely because these RRSIG RRs didn't fit.
-
-
-3.1.2 Including DNSKEY RRs In a Response
-
-   When responding to a query that has the DO bit set to one and that
-   requests the SOA or NS RRs at the apex of a signed zone, a
-   security-aware authoritative name server for that zone MAY return the
-   zone apex DNSKEY RRset in the Additional section.  In this situation,
-   the DNSKEY RRset and associated RRSIG RRs have lower priority than
-   any other information that would be placed in the additional section.
-   The name server SHOULD NOT include the DNSKEY RRset unless there is
-   enough space in the response message for both the DNSKEY RRset and
-   its associated RRSIG RR(s). If there is not enough space to include
-   these DNSKEY and RRSIG RRs, the name server MUST omit them and MUST
-   NOT set the TC bit solely because these RRs didn't fit (see Section
-   3.1.1).
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 11]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-3.1.3 Including NSEC RRs In a Response
-
-   When responding to a query that has the DO bit set to one, a
-   security-aware authoritative name server for a signed zone MUST
-   include NSEC RRs in each of the following cases:
-
-   No Data: The zone contains RRsets that exactly match <SNAME, SCLASS>,
-      but does not contain any RRsets that exactly match <SNAME, SCLASS,
-      STYPE>.
-
-   Name Error: The zone does not contain any RRsets that match <SNAME,
-      SCLASS> either exactly or via wildcard name expansion.
-
-   Wildcard Answer: The zone does not contain any RRsets that exactly
-      match <SNAME, SCLASS> but does contain an RRset that matches
-      <SNAME, SCLASS, STYPE> via wildcard name expansion.
-
-   Wildcard No Data: The zone does not contain any RRsets that exactly
-      match <SNAME, SCLASS>, does contain one or more RRsets that match
-      <SNAME, SCLASS> via wildcard name expansion, but does not contain
-      any RRsets that match <SNAME, SCLASS, STYPE> via wildcard name
-      expansion.
-
-   In each of these cases, the name server includes NSEC RRs in the
-   response to prove that an exact match for <SNAME, SCLASS, STYPE> was
-   not present in the zone and that the response that the name server is
-   returning is correct given the data that are in the zone.
-
-3.1.3.1 Including NSEC RRs: No Data Response
-
-   If the zone contains RRsets matching <SNAME, SCLASS> but contains no
-   RRset matching <SNAME, SCLASS, STYPE>, then the name server MUST
-   include the NSEC RR for <SNAME, SCLASS> along with its associated
-   RRSIG RR(s) in the Authority section of the response (see Section
-   3.1.1).  If space does not permit inclusion of the NSEC RR or its
-   associated RRSIG RR(s), the name server MUST set the TC bit (see
-   Section 3.1.1).
-
-   Since the search name exists, wildcard name expansion does not apply
-   to this query, and a single signed NSEC RR suffices to prove the
-   requested RR type does not exist.
-
-3.1.3.2 Including NSEC RRs: Name Error Response
-
-   If the zone does not contain any RRsets matching <SNAME, SCLASS>
-   either exactly or via wildcard name expansion, then the name server
-   MUST include the following NSEC RRs in the Authority section, along
-   with their associated RRSIG RRs:
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 12]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   o  An NSEC RR proving that there is no exact match for <SNAME,
-      SCLASS>; and
-
-   o  An NSEC RR proving that the zone contains no RRsets that would
-      match <SNAME, SCLASS> via wildcard name expansion.
-
-   In some cases a single NSEC RR may prove both of these points, in
-   that case the name server SHOULD only include the NSEC RR and its
-   RRSIG RR(s) once in the Authority section.
-
-   If space does not permit inclusion of these NSEC and RRSIG RRs, the
-   name server MUST set the TC bit (see Section 3.1.1).
-
-   The owner names of these NSEC and RRSIG RRs are not subject to
-   wildcard name expansion when these RRs are included in the Authority
-   section of the response.
-
-   Note that this form of response includes cases in which SNAME
-   corresponds to an empty non-terminal name within the zone (a name
-   which is not the owner name for any RRset but which is the parent
-   name of one or more RRsets).
-
-3.1.3.3 Including NSEC RRs: Wildcard Answer Response
-
-   If the zone does not contain any RRsets which exactly match <SNAME,
-   SCLASS> but does contain an RRset which matches <SNAME, SCLASS,
-   STYPE> via wildcard name expansion, the name server MUST include the
-   wildcard-expanded answer and the corresponding wildcard-expanded
-   RRSIG RRs in the Answer section, and MUST include in the Authority
-   section an NSEC RR and associated RRSIG RR(s) proving that the zone
-   does not contain a closer match for <SNAME, SCLASS>.  If space does
-   not permit inclusion of the answer, NSEC and RRSIG RRs, the name
-   server MUST set the TC bit (see Section 3.1.1).
-
-3.1.3.4 Including NSEC RRs: Wildcard No Data Response
-
-   This case is a combination of the previous cases.  The zone does not
-   contain an exact match for <SNAME, SCLASS>, and while the zone does
-   contain RRsets which match <SNAME, SCLASS> via wildcard expansion,
-   none of those RRsets match STYPE.  The name server MUST include the
-   following NSEC RRs in the Authority section, along with their
-   associated RRSIG RRs:
-
-   o  An NSEC RR proving that there are no RRsets matching STYPE at the
-      wildcard owner name which matched <SNAME, SCLASS> via wildcard
-      expansion; and
-
-   o  An NSEC RR proving that there are no RRsets in the zone which
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 13]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-      would have been a closer match for <SNAME, SCLASS>.
-
-   In some cases a single NSEC RR may prove both of these points, in
-   which case the name server SHOULD only include the NSEC RR and its
-   RRSIG RR(s) once in the Authority section.
-
-   The owner names of these NSEC and RRSIG RRs are not subject to
-   wildcard name expansion when these RRs are included in the Authority
-   section of the response.
-
-   If space does not permit inclusion of these NSEC and RRSIG RRs, the
-   name server MUST set the TC bit (see Section 3.1.1).
-
-3.1.3.5 Finding The Right NSEC RRs
-
-   As explained above, there are several situations in which a
-   security-aware authoritative name server needs to locate an NSEC RR
-   which proves that a particular SNAME does not exist.  Locating such
-   an NSEC RR within an authoritative zone is relatively simple, at
-   least in concept.  The following discussion assumes that the name
-   server is authoritative for the zone which would have held the
-   nonexistent SNAME.  The algorithm below is written for clarity, not
-   efficiency.
-
-   To find the NSEC which proves that name N does not exist in the zone
-   Z which would have held it, construct sequence S consisting of every
-   name in Z, sorted into canonical order
-   [I-D.ietf-dnsext-dnssec-records].  Find the name M which would have
-   immediately preceded N in S if N had existed.  M is the owner name of
-   the NSEC RR which proves that N does not exist.
-
-   The algorithm for finding the NSEC RR which proves that a given name
-   is not covered by any applicable wildcard is similar, but requires an
-   extra step.  More precisely, the algorithm for finding the NSEC
-   proving that the applicable wildcard name does not exist is precisely
-   the same as the algorithm for finding the NSEC RR which proves that
-   any other name does not exist: the part that's missing is how to
-   determine the name of the nonexistent applicable wildcard.  In
-   practice, this is easy, because the authoritative name server has
-   already checked for the presence of precisely this wildcard name as
-   part of step (1)(c) of the normal lookup algorithm described in
-   Section 4.3.2 of [RFC1034].
-
-3.1.4 Including DS RRs In a Response
-
-   When responding to a query which has the DO bit set to one, a
-   security-aware authoritative name server returning a referral
-   includes DNSSEC data along with the NS RRset.
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 14]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   If a DS RRset is present at the delegation point, the name server
-   MUST return both the DS RRset and its associated RRSIG RR(s) in the
-   Authority section along with the NS RRset.  The name server MUST
-   place the NS RRset before the DS RRset and its associated RRSIG
-   RR(s).
-
-   If no DS RRset is present at the delegation point, the name server
-   MUST return both the NSEC RR which proves that the DS RRset is not
-   present and the NSEC RR's associated RRSIG RR(s) along with the NS
-   RRset.  The name server MUST place the NS RRset before the NSEC RRset
-   and its associated RRSIG RR(s).
-
-   Including these DS, NSEC, and RRSIG RRs increases the size of
-   referral messages, and may cause some or all glue RRs to be omitted.
-   If space does not permit inclusion of the DS or NSEC RRset and
-   associated RRSIG RRs, the name server MUST set the TC bit (see
-   Section 3.1.1).
-
-3.1.4.1 Responding to Queries for DS RRs
-
-   The DS resource record type is unusual in that it appears only on the
-   parent zone's side of a zone cut.  For example, the DS RRset for the
-   delegation of "foo.example" is stored in the "example" zone rather
-   than in the "foo.example" zone.  This requires special processing
-   rules for both name servers and resolvers, since the name server for
-   the child zone is authoritative for the name at the zone cut by the
-   normal DNS rules but the child zone does not contain the DS RRset.
-
-   A security-aware resolver sends queries to the parent zone when
-   looking for a needed DS RR at a delegation point (see Section 4.2).
-   However, special rules are necessary to avoid confusing
-   security-oblivious resolvers which might become involved in
-   processing such a query (for example, in a network configuration that
-   forces a security-aware resolver to channel its queries through a
-   security-oblivious recursive name server).  The rest of this section
-   describes how a security-aware name server processes DS queries in
-   order to avoid this problem.
-
-   The need for special processing by a security-aware name server only
-   arises when all the following conditions are met:
-
-   o  the name server has received a query for the DS RRset at a zone
-      cut; and
-
-   o  the name server is authoritative for the child zone; and
-
-   o  the name server is not authoritative for the parent zone; and
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 15]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   o  the name server does not offer recursion.
-
-   In all other cases, the name server either has some way of obtaining
-   the DS RRset or could not have been expected to have the DS RRset
-   even by the pre-DNSSEC processing rules, so the name server can
-   return either the DS RRset or an error response according to the
-   normal processing rules.
-
-   If all of the above conditions are met, however, the name server is
-   authoritative for SNAME but cannot supply the requested RRset.  In
-   this case, the name server MUST return an authoritative "no data"
-   response showing that the DS RRset does not exist in the child zone's
-   apex.  See Appendix B.8 for an example of such a response.
-
-3.1.5 Responding to Queries for Type AXFR or IXFR
-
-   DNSSEC does not change the DNS zone transfer process.  A signed zone
-   will contain RRSIG, DNSKEY, NSEC, and DS resource records, but these
-   records have no special meaning with respect to a zone transfer
-   operation, and these RRs are treated as any other resource record
-   type.
-
-   An authoritative name server is not required to verify that a zone is
-   properly signed before sending or accepting a zone transfer.
-   However, an authoritative name server MAY choose to reject the entire
-   zone transfer if the zone fails meets any of the signing requirements
-   described in Section 2.  The primary objective of a zone transfer is
-   to ensure that all authoritative name servers have identical copies
-   of the zone.  An authoritative name server which chooses to perform
-   its own zone validation MUST NOT selectively reject some RRs and
-   accept others.
-
-   DS RRsets appear only on the parental side of a zone cut and are
-   authoritative data in the parent zone.  As with any other
-   authoritative RRset, the DS RRset MUST be included in zone transfers
-   of the zone in which the RRset is authoritative data: in the case of
-   the DS RRset, this is the parent zone.
-
-   NSEC RRs appear in both the parent and child zones at a zone cut, and
-   are authoritative data in both the parent and child zones.  The
-   parental and child NSEC RRs at a zone cut are never identical to each
-   other, since the NSEC RR in the child zone's apex will always
-   indicate the presence of the child zone's SOA RR while the parental
-   NSEC RR at the zone cut will never indicate the presence of an SOA
-   RR.  As with any other authoritative RRs, NSEC RRs MUST be included
-   in zone transfers of the zone in which they are authoritative data:
-   the parental NSEC RR at a zone cut MUST be included zone transfers of
-   the parent zone, while the NSEC at the zone apex of the child zone
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 16]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   MUST be included in zone transfers of the child zone.
-
-   RRSIG RRs appear in both the parent and child zones at a zone cut,
-   and are authoritative in whichever zone contains the authoritative
-   RRset for which the RRSIG RR provides the signature.  That is, the
-   RRSIG RR for a DS RRset or a parental NSEC RR at a zone cut will be
-   authoritative in the parent zone, while the RRSIG for any RRset in
-   the child zone's apex will be authoritative in the child zone. As
-   with any other authoritative RRs, RRSIG RRs MUST be included in zone
-   transfers of the zone in which they are authoritative data.
-
-3.1.6 The AD and CD Bits in an Authoritative Response
-
-   The CD and AD bits are designed to be used in communication between
-   security-aware resolvers and security-aware recursive name servers.
-   This bits are for the most part not relevant to query processing by
-   security-aware authoritative name servers.
-
-   Since a security-aware name server does not perform signature
-   validation for authoritative data during query processing even when
-   the CD bit is set to zero, a security-aware name server SHOULD ignore
-   the setting of the CD bit when composing an authoritative response.
-
-   A security-aware name server MUST NOT set the AD bit in a response
-   unless the name server considers all RRsets in the Answer and
-   Authority sections of the response to be authentic.  A security-aware
-   name server's local policy MAY consider data from an authoritative
-   zone to be authentic without further validation, but the name server
-   MUST NOT do so unless the name server obtained the authoritative zone
-   via secure means (such as a secure zone transfer mechanism), and MUST
-   NOT do so unless this behavior has been configured explicitly.
-
-   A security-aware name server which supports recursion MUST follow the
-   rules for the CD and AD bits given in Section 3.2 when generating a
-   response that involves data obtained via recursion.
-
-3.2 Recursive Name Servers
-
-   As explained in [I-D.ietf-dnsext-dnssec-intro], a security-aware
-   recursive name server is an entity which acts in both the
-   security-aware name server and security-aware resolver roles. This
-   section uses the terms "name server side" and "resolver side" to
-   refer to the code within a security-aware recursive name server which
-   implements the security-aware name server role and the code which
-   implements the security-aware resolver role, respectively.
-
-   The resolver side follows the usual rules for caching and negative
-   caching which would apply to any security-aware resolver.
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 17]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-3.2.1 The DO bit
-
-   The resolver side of a security-aware recursive name server MUST set
-   the DO bit when sending requests, regardless of the state of the DO
-   bit in the initiating request received by the name server side.  If
-   the DO bit in an initiating query is not set, the name server side
-   MUST strip any authenticating DNSSEC RRs from the response, but MUST
-   NOT strip any DNSSEC RRs that the initiating query explicitly
-   requested.
-
-3.2.2 The CD bit
-
-   The CD bit exists in order to allow a security-aware resolver to
-   disable signature validation in a security-aware name server's
-   processing of a particular query.
-
-   The name server side MUST copy the setting of the CD bit from a query
-   to the corresponding response.
-
-   The name server side of a security-aware recursive name server MUST
-   pass the sense of the CD bit to the resolver side along with the rest
-   of an initiating query, so that the resolver side will know whether
-   or not it is required to verify the response data it returns to the
-   name server side. If the CD bit is set to one, it indicates that the
-   originating resolver is willing to perform whatever authentication
-   its local policy requires, thus the resolver side of the recursive
-   name server need not perform authentication on the RRsets in the
-   response.  When the CD bit is set to one the recursive name server
-   SHOULD, if possible, return the requested data to the originating
-   resolver even if the recursive name server's local authentication
-   policy would reject the records in question. That is, by setting the
-   CD bit, the originating resolver has indicated that it takes
-   responsibility for performing its own authentication, and the
-   recursive name server should not interfere.
-
-   If the resolver side implements a BAD cache (see Section 4.7) and the
-   name server side receives a query which matches an entry in the
-   resolver side's BAD cache, the name server side's response depends on
-   the sense of the CD bit in the original query.  If the CD bit is set,
-   the name server side SHOULD return the data from the BAD cache; if
-   the CD bit is not set, the name server side MUST return RCODE 2
-   (server failure).
-
-3.2.3 The AD bit
-
-   The name server side of a security-aware recursive name server MUST
-   NOT set the AD bit in a response unless the name server considers all
-   RRsets in the Answer and Authority sections of the response to be
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 18]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   authentic, and SHOULD set the AD bit if and only if the resolver side
-   considers all RRsets in the Answer section and any relevant negative
-   response RRs in the Authority section to be authentic.  The resolver
-   side MUST follow the procedure described in Section 5 to determine
-   whether the RRs in question are authentic.
-
-3.3 Example DNSSEC Responses
-
-   See Appendix B for example response packets.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 19]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-4. Resolving
-
-   This section describes the behavior of entities which include
-   security-aware resolver functions.  In many cases such functions will
-   be part of a security-aware recursive name server, but a stand-alone
-   security-aware resolver has many of the same requirements.  Functions
-   specific to security-aware recursive name servers are described in
-   Section 3.2.
-
-4.1 EDNS Support
-
-   A security-aware resolver MUST include an EDNS [RFC2671] OPT
-   pseudo-RR with the DO [RFC3225] bit set to one when sending queries.
-
-   A security-aware resolver MUST support a message size of at least
-   1220 octets, SHOULD support a message size of 4000 octets, and MUST
-   advertise the supported message size using the "sender's UDP payload
-   size" field in the EDNS OPT pseudo-RR. A security-aware resolver MUST
-   handle fragmented UDP packets correctly regardless of whether any
-   such fragmented packets were received via IPv4 or IPv6.  Please see
-   [RFC3226] for discussion of these requirements.
-
-4.2 Signature Verification Support
-
-   A security-aware resolver MUST support the signature verification
-   mechanisms described in Section 5, and MUST apply them to every
-   received response except when:
-
-   o  The security-aware resolver is part of a security-aware recursive
-      name server, and the response is the result of recursion on behalf
-      of a query received with the CD bit set;
-
-   o  The response is the result of a query generated directly via some
-      form of application interface which instructed the security-aware
-      resolver not to perform validation for this query; or
-
-   o  Validation for this query has been disabled by local policy.
-
-   A security-aware resolver's support for signature verification MUST
-   include support for verification of wildcard owner names.
-
-      Editors' note: The rest of this section is expected to change once
-      the WG reaches closure on Q-23.
-
-   A security-aware resolver MUST attempt to retrieve missing DS,
-   DNSKEY, or RRSIG RRs via explicit queries if the resolver needs these
-   RRs in order to perform signature verification.
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 20]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   A security-aware resolver MUST attempt to retrieve a missing NSEC RR
-   which the resolver needs to authenticate a NODATA response.  In
-   general it is not possible for a resolver to retrieve missing NSEC
-   RRs, since the resolver will have no way of knowing the owner name of
-   the missing NSEC RR, but in the specific case of a NODATA response,
-   the resolver may know the name of the missing NSEC RR, and in such
-   cases must therefore attempt to retrieve it.
-
-   When attempting to retrieve missing NSEC RRs which reside on the
-   parental side at a zone cut, a security-aware iterative-mode resolver
-   MUST query the name servers for the parent zone, not the child zone.
-
-   When attempting to retrieve a missing DS, a security-aware
-   iterative-mode resolver MUST query the name servers for the parent
-   zone, not the child zone.  As explained in Section 3.1.4.1,
-   security-aware name servers need to apply special processing rules to
-   handle the DS RR, and in some situations the resolver may also need
-   to apply special rules to locate the name servers for the parent zone
-   if the resolver does not already have the parent's NS RRset.  To
-   locate the parent NS RRset, the resolver can start with the
-   delegation name, strip off the leftmost label, and query for an NS
-   RRset by that name; if no NS RRset is present at that name, the
-   resolver then strips of the leftmost remaining label and retries the
-   query for that name, repeating this process of walking up the tree
-   until it either finds the NS RRset or runs out of labels.
-
-      Editors' note: This algorithm could easily be read as an
-      invitation to careless implementors to hammer the root zone
-      servers.  Better wording would be welcome.
-
-
-4.3 Determining Security Status of Data
-
-      Editors' note: This section is waiting for resolution of Q-28.
-
-   A security-aware resolver MUST be able to determine whether or not it
-   should expect a particular RRset to be signed.  More precisely, a
-   security-aware resolver must be able to distinguish between three
-   cases:
-
-   1.  An RRset for which the resolver is able to build a chain of
-       signed DNSKEY and DS RRs from a trusted security anchor to the
-       RRset.  In this case, the RRset should be signed, and is subject
-       to signature validation as described above.
-
-   2.  An RRset for which the resolver knows that it has no chain of
-       signed DNSKEY and DS RRs from any trusted starting point to the
-       RRset.  This can occur when the target RRset lies in an unsigned
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 21]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-       zone or in a descendent of an unsigned zone.  In this case, the
-       RRset may or may not be signed, but the resolver will not be able
-       to verify the signature.
-
-   3.  An RRset for which the resolver is not able to determine whether
-       or not the RRset should be signed, because the resolver is not
-       able to obtain the necessary DNSSEC RRs. This can occur when the
-       security-aware resolver is not able to contact security-aware
-       name servers for the relevant zones.
-
-
-4.4 Preconfigured Public Keys
-
-   A security-aware resolver MUST be capable of being preconfigured with
-   at least one trusted public key or DS RR, and SHOULD be capable of
-   being preconfigured with multiple trusted public keys or DS RRs.
-   Since a security-aware resolver will not be able to validate
-   signatures without such a preconfigured trusted key, the resolver
-   SHOULD have some reasonably robust mechanism for obtaining such keys
-   when it boots; examples of such a mechanism would be some form of
-   non-volatile storage (such as a disk drive) or some form of trusted
-   local network configuration mechanism.
-
-4.5 Response Caching
-
-      Editors' note: RIPE "last call" workshop felt that the WG needs to
-      reexamine and discuss this section.
-
-   A security-aware resolver SHOULD cache each response as a single
-   atomic entry containing the entire answer, including the named RRset
-   and any associated DNSSEC RRs.  The resolver SHOULD discard the
-   entire atomic entry when any of the RRs contained in it expire.  In
-   most cases the appropriate cache index for the atomic entry will be
-   the triple <QNAME, QTYPE, QCLASS>, but in cases such as the response
-   form described in Section 3.1.3.2 the appropriate cache index will be
-   the double <QNAME,QCLASS>.
-
-4.6 Handling of the CD and AD bits
-
-   A security-aware resolver MAY set the CD bit in a query to one in
-   order to indicate that the resolver takes responsibility for
-   performing whatever authentication its local policy requires on the
-   RRsets in the response.  See Section 3.2 for the effect this bit has
-   on the behavior of security-aware recursive name servers.
-
-   A security-aware resolver MUST zero the AD bit when composing query
-   messages to protect against buggy name servers which blindly copy
-   header bits which they do not understand from the query message to
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 22]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   the response message.
-
-   A resolver MUST disregard the meaning of the CD and AD bits in a
-   response unless the response was obtained using a secure channel or
-   the resolver was specifically configured to regard the message header
-   bits without using a secure channel.
-
-4.7 Rate Limiting
-
-   A security-aware resolver SHOULD NOT cache data with invalid
-   signatures under normal circumstances.  However, a security-aware
-   resolver SHOULD take steps to rate limit the number of identical
-   queries that it generates if signature validation of the responses
-   fails repeatedly.
-
-   Conceptually, this is similar in some respects to negative caching
-   [RFC2308], but since the resolver has no way of obtaining an
-   appropriate caching TTL from received data in this case, the TTL will
-   have to be set by the implementation.  This document refers to the
-   data retained as part of such a rate limiting mechanism as the "BAD
-   cache".
-
-   A security-aware resolver MAY chose to retain RRsets for which
-   signature validation has failed in its BAD cache, but MUST NOT return
-   such RRsets from its BAD cache unless both of the following
-   conditions are met:
-
-   o  The resolver has recently generated enough queries identical to
-      this one that the resolver is suppressing queries for this <QNAME,
-      QTYPE, QCLASS>; and
-
-   o  The resolver is not required to validate the signatures of the
-      RRsets in question under the rules given in Section 4 of this
-      document.
-
-   The intent of the above rule is to provide the raw data to clients
-   which are capable of performing their own signature verification
-   checks while protecting clients which depend on this resolver to
-   perform such checks.  Several of the possible reasons why signature
-   validation might fail involve conditions which may not apply equally
-   to this resolver and the client which invoked it: for example, this
-   resolver's clock may be set incorrectly, or the client may have
-   knowledge of a relevant island of security which this resolver does
-   not share.  In such cases, "protecting" a client which is capable of
-   performing its own signature validation from ever seeing the "bad"
-   data does not help the client.
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 23]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-4.8 Stub resolvers
-
-   A security-aware stub resolver MUST support the DNSSEC RR types, at
-   least to the extent of not mishandling responses just because they
-   contain DNSSEC RRs.
-
-4.8.1 Handling of the DO Bit
-
-   A non-validating security-aware stub resolver MAY include the DNSSEC
-   RRs returned by a security-aware recursive name server as part of the
-   data that the stub resolver hands back to the application which
-   invoked it but is not required to do so.  A non-validating stub
-   resolver that wishes to do this will need to set the DO bit in
-   receive DNSSEC RRs from the recursive name server.
-
-   A validating security-aware stub resolver MUST set the DO bit, since
-   otherwise it will not receive the DNSSEC RRs it needs to perform
-   signature validation.
-
-4.8.2 Handling of the CD Bit
-
-   A non-validating security-aware stub resolver SHOULD NOT set the CD
-   bit when sending queries unless requested by the application layer,
-   since by definition, a non-validating stub resolver depends on the
-   security-aware recursive name server to perform validation on its
-   behalf.
-
-   A validating security-aware stub resolver SHOULD set the CD bit,
-   since otherwise the security-aware recursive name server will answer
-   the query using the name server's local policy, which may prevent the
-   stub resolver from receiving data which would be acceptable to the
-   stub resolver's local policy.
-
-4.8.3 Handling of the AD Bit
-
-   A non-validating security-aware stub resolver MAY chose to examine
-   the setting of the AD bit in response messages that it receives in
-   order to determine whether the security-aware recursive name server
-   which sent the response claims to have cryptographically verified the
-   data in the Answer and Authority sections of the response message.
-   Note, however, that the responses received by a security-aware stub
-   resolver are heavily dependent on the local policy of the
-   security-aware recursive name server, so as a practical matter there
-   may be little practical value to checking the status of the AD bit
-   except perhaps as a debugging aid.  In any case, a security-aware
-   stub resolver MUST NOT place any reliance on signature validation
-   allegedly performed on its behalf except when the security-aware stub
-   resolver obtained the data in question from a trusted security-aware
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 24]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   recursive name server via a secure channel.
-
-   A validating security-aware stub resolver SHOULD NOT examine the
-   setting of the AD bit in response messages, since, by definition, the
-   stub resolver performs its own signature validation regardless of the
-   setting of the AD bit.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 25]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-5. Authenticating DNS Responses
-
-   In order to use DNSSEC RRs for authentication, a security-aware
-   resolver requires preconfigured knowledge of at least one
-   authenticated DNSKEY or DS RR.  The process for obtaining and
-   authenticating this initial DNSKEY or DS RR is achieved via some
-   external mechanism.  For example, a resolver could use some off-line
-   authenticated exchange to obtain a zone's DNSKEY RR or obtain a DS RR
-   that identifies and authenticates a zone's DNSKEY RR.  The remainder
-   of this section assumes that the resolver has somehow obtained an
-   initial set of authenticated DNSKEY RRs.
-
-   An initial DNSKEY RR can be used to authenticate a zone's apex DNSKEY
-   RRset.  To authenticate an apex DNSKEY RRset using an initial key,
-   the resolver MUST:
-
-   1.  Verify that the initial DNSKEY RR appears in the apex DNSKEY
-       RRset, and verify that the DNSKEY RR MUST have the Zone Key Flag
-       (DNSKEY RDATA bit 7) set to one.
-
-   2.  Verify that there is some RRSIG RR that covers the apex DNSKEY
-       RRset, and that the combination of the RRSIG RR and the initial
-       DNSKEY RR authenticates the DNSKEY RRset.  The process for using
-       an RRSIG RR to authenticate an RRset is described in Section 5.3.
-
-   Once the resolver has authenticated the apex DNSKEY RRset using an
-   initial DNSKEY RR, delegations from that zone can be authenticated
-   using DS RRs.  This allows a resolver to start from an initial key,
-   and use DS RRsets to proceed recursively down the DNS tree obtaining
-   other apex DNSKEY RRsets.  If the resolver were preconfigured with a
-   root DNSKEY RR, and if every delegation had a DS RR associated with
-   it, then the resolver could obtain and validate any apex DNSKEY
-   RRset.  The process of using DS RRs to authenticate referrals is
-   described in Section 5.2.
-
-   Once the resolver has authenticated a zone's apex DNSKEY RRset,
-   Section 5.3 shows how the resolver can use DNSKEY RRs in the apex
-   DNSKEY RRset and RRSIG RRs from the zone to authenticate any other
-   RRsets in the zone.  Section 5.4 shows how the resolver can use
-   authenticated NSEC RRsets from the zone to prove that an RRset is not
-   present in the zone.
-
-   When a resolver indicates support for DNSSEC (by setting the DO bit),
-   a security-aware name server should attempt to provide the necessary
-   DNSKEY, RRSIG, NSEC, and DS RRsets in a response (see Section 3).
-   However, a security-aware resolver may still receive a response that
-   that lacks the appropriate DNSSEC RRs, whether due to configuration
-   issues such as a security-oblivious recursive name server that
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 26]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   accidentally interfere with DNSSEC RRs or due to a deliberate attack
-   in which an adversary forges a response, strips DNSSEC RRs from a
-   response, or modifies a query so that DNSSEC RRs appear not to be
-   requested.  The absence of DNSSEC data in a response MUST NOT by
-   itself be taken as an indication that no authentication information
-   exists.
-
-   A resolver SHOULD expect authentication information from signed
-   zones. A resolver SHOULD believe that a zone is signed if the
-   resolver has been configured with public key information for the
-   zone, or if the zone's parent is signed and the delegation from the
-   parent contains a DS RRset.
-
-5.1 Special Considerations for Islands of Security
-
-   Islands of security (see [I-D.ietf-dnsext-dnssec-intro]) are signed
-   zones for which it is not possible to construct an authentication
-   chain to the zone from its parent.  Validating signatures within an
-   island of security requires the validator to have some other means of
-   obtaining an initial authenticated zone key for the island.  If a
-   validator cannot obtain such a key, it will have to choose whether to
-   accept the unvalidated responses or not based on local policy.
-
-   All the normal processes for validating responses apply to islands of
-   security.  The only difference between normal validation and
-   validation within an island of security is in how the validator
-   obtains a starting point for the authentication chain.
-
-5.2 Authenticating Referrals
-
-   Once the apex DNSKEY RRset for a signed parent zone has been
-   authenticated, DS RRsets can be used to authenticate the delegation
-   to a signed child zone.  A DS RR identifies a DNSKEY RR in the child
-   zone's apex DNSKEY RRset, and contains a cryptographic digest of the
-   child zone's DNSKEY RR.  A strong cryptographic digest algorithm
-   ensures that an adversary can not easily generate a DNSKEY RR that
-   matches the digest.  Thus, authenticating the digest allows a
-   resolver to authenticate the matching DNSKEY RR.  The resolver can
-   then use this child DNSKEY RR to authenticate the entire child apex
-   DNSKEY RRset.
-
-   Given a DS RR for a delegation, the child zone's apex DNSKEY RRset
-   can be authenticated if all of the following hold:
-
-   o  The DS RR has been authenticated using some DNSKEY RR in the
-      parent's apex DNSKEY RRset (see Section 5.3);
-
-   o  The Algorithm and Key Tag in the DS RR match the Algorithm field
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 27]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-      and the key tag of a DNSKEY RR in the child zone's apex DNSKEY
-      RRset that, when hashed using the digest algorithm specified in
-      the DS RR's Digest Type field, results in a digest value that
-      matches the Digest field of the DS RR; and
-
-   o  The matching DNSKEY RR in the child zone has the Zone Flag bit set
-      to one, the corresponding private key has signed the child zone's
-      apex DNSKEY RRset, and the resulting RRSIG RR authenticates the
-      child zone's apex DNSKEY RRset.
-
-   If the referral from the parent zone did not contain a DS RRset, the
-   response should have included a signed NSEC RRset proving that no DS
-   RRset exists for the delegated name (see Section 3.1.4).  A
-   security-aware resolver MUST query the name servers for the parent
-   zone for the DS RRset if the referral includes neither a DS RRset nor
-   a NSEC RRset proving that the DS RRset does not exist (see Section
-   4).
-
-   If the resolver authenticates an NSEC RRset that proves that no DS
-   RRset is present for this zone, then there is no authentication path
-   leading from the parent to the child.  If the resolver has an initial
-   DNSKEY or DS RR that belongs to the child zone or to any delegation
-   below the child zone, this initial DNSKEY or DS RR MAY be used to
-   re-establish an authentication path.  If no such initial DNSKEY or DS
-   RR exists, the resolver can not authenticate RRsets in or below the
-   child zone.
-
-   Note that, for a signed delegation, there are two NSEC RRs associated
-   with the delegated name.  One NSEC RR resides in the parent zone, and
-   can be used to prove whether a DS RRset exists for the delegated
-   name.  The second NSEC RR resides in the child zone, and identifies
-   which RRsets are present at the apex of the child zone.  The parent
-   NSEC RR and child NSEC RR can always be distinguished, since the SOA
-   bit will be set in the child NSEC RR and clear in the parent NSEC RR.
-   A security-aware resolver MUST use the parent NSEC RR when attempting
-   to prove that a DS RRset does not exist.
-
-   If the resolver does not support any of the algorithms listed in an
-   authenticated DS RRset, then the resolver will not be able to verify
-   the authentication path to the child zone.  In this case, the
-   resolver SHOULD treat the child zone as if it were unsigned.
-
-5.3 Authenticating an RRset Using an RRSIG RR
-
-   A resolver can use an RRSIG RR and its corresponding DNSKEY RR to
-   attempt to authenticate RRsets.  The resolver first checks the RRSIG
-   RR to verify that it covers the RRset, has a valid time interval, and
-   identifies a valid DNSKEY RR.  The resolver then constructs the
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 28]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   canonical form of the signed data by appending the RRSIG RDATA
-   (excluding the Signature Field) with the canonical form of the
-   covered RRset.  Finally, resolver uses the public key and signature
-   to authenticate the signed data.  Section 5.3.1, Section 5.3.2, and
-   Section 5.3.3 describe each step in detail.
-
-5.3.1 Checking the RRSIG RR Validity
-
-   A security-aware resolver can use an RRSIG RR to authenticate an
-   RRset if all of the following conditions hold:
-
-   o  The RRSIG RR and the RRset MUST have the same owner name and the
-      same class;
-
-   o  The RRSIG RR's Signer's Name field MUST be the name of the zone
-      that contains the RRset;
-
-   o  The RRSIG RR's Type Covered field MUST equal the RRset's type;
-
-   o  The number of labels in the RRset owner name MUST be greater than
-      or equal to the value in the RRSIG RR's Labels field;
-
-   o  The resolver's notion of the current time MUST be less than or
-      equal to the time listed in the RRSIG RR's Expiration field;
-
-   o  The resolver's notion of the current time MUST be greater than or
-      equal to the time listed in the RRSIG RR's Inception field;
-
-   o  The RRSIG RR's Signer's Name, Algorithm, and Key Tag fields MUST
-      match the owner name, algorithm, and key tag for some DNSKEY RR in
-      the zone's apex DNSKEY RRset;
-
-   o  The matching DNSKEY RR MUST be present in the zone's apex DNSKEY
-      RRset, and MUST have the Zone Flag bit (DNSKEY RDATA Flag bit 7)
-      set to one.
-
-   It is possible for more than one DNSKEY RR to match the conditions
-   above.  In this case, the resolver can not predetermine which DNSKEY
-   RR to use to authenticate the signature, MUST try each matching
-   DNSKEY RR until the resolver has either validated the signature or
-   has run out of matching public keys to try.
-
-   Note that this authentication process is only meaningful if the
-   resolver authenticates the DNSKEY RR before using it to validate
-   signatures.  The matching DNSKEY RR is considered to be authentic if:
-
-   o  The apex DNSKEY RRset containing the DNSKEY RR is considered
-      authentic; or
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 29]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   o  The RRset covered by the RRSIG RR is the apex DNSKEY RRset itself,
-      and the DNSKEY RR either matches an authenticated DS RR from the
-      parent zone or matches a DS RR or DNSKEY RR that the resolver has
-      been preconfigured to believe to be authentic.
-
-
-5.3.2 Reconstructing the Signed Data
-
-   Once the RRSIG RR has met the validity requirements described in
-   Section 5.3.1, the resolver needs to reconstruct the original signed
-   data.  The original signed data includes RRSIG RDATA (excluding the
-   Signature field) and the canonical form of the RRset.  Aside from
-   being ordered, the canonical form of the RRset might also differ from
-   the received RRset due to DNS name compression, decremented TTLs, or
-   wildcard expansion.  The resolver should use the following to
-   reconstruct the original signed data:
-
-         signed_data = RRSIG_RDATA | RR(1) | RR(2)...  where
-
-            "|" denotes concatenation
-
-            RRSIG_RDATA is the wire format of the RRSIG RDATA fields
-               with the Signature field excluded and the Signer's Name
-               in canonical form.
-
-            RR(i) = name | class | type | OrigTTL | RDATA length | RDATA
-
-               name is calculated according to the function below
-
-               class is the RRset's class
-
-               type is the RRset type and all RRs in the class
-
-               OrigTTL is the value from the RRSIG Original TTL field
-
-               All names in the RDATA field are in canonical form
-
-               The set of all RR(i) is sorted into canonical order.
-
-            To calculate the name:
-               let rrsig_labels = the value of the RRSIG Labels field
-
-               let fqdn = RRset's fully qualified domain name in
-                               canonical form
-
-               let fqdn_labels = Label count of the fqdn above.
-
-               if rrsig_labels = fqdn_labels,
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 30]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                   name = fqdn
-
-               if rrsig_labels < fqdn_labels,
-                  name = "*." | the rightmost rrsig_label labels of the
-                                fqdn
-
-               if rrsig_labels > fqdn_labels
-                  the RRSIG RR did not pass the necessary validation
-                  checks and MUST NOT be used to authenticate this
-                  RRset.
-
-   The canonical forms for names and RRsets are defined in
-   [I-D.ietf-dnsext-dnssec-records].
-
-   NSEC RRsets at a delegation boundary require special processing.
-   There are two distinct NSEC RRsets associated with a signed delegated
-   name.  One NSEC RRset resides in the parent zone, and specifies which
-   RRset are present at the parent zone.  The second NSEC RRset resides
-   at the child zone, and identifies which RRsets are present at the
-   apex in the child zone.  The parent NSEC RRset and child NSEC RRset
-   can always be distinguished since only the child NSEC RRs will
-   specify an SOA RRset exists at the name. When reconstructing the
-   original NSEC RRset for the delegation from the parent zone, the NSEC
-   RRs MUST NOT be combined with NSEC RRs from the child zone, and when
-   reconstructing the original NSEC RRset for the apex of the child
-   zone, the NSEC RRs MUST NOT be combined with NSEC RRs from the parent
-   zone.
-
-   Note also that each of the two NSEC RRsets at a delegation point has
-   a corresponding RRSIG RR with an owner name matching the delegated
-   name, and each of these RRSIG RRs is authoritative data associated
-   with the same zone that contains the corresponding NSEC RRset.  If
-   necessary, a resolver can tell these RRSIG RRs apart by checking the
-   Signer's Name field.
-
-5.3.3 Checking the Signature
-
-   Once the resolver has validated the RRSIG RR as described in Section
-   5.3.1 and reconstructed the original signed data as described in
-   Section 5.3.2, the resolver can attempt to use the cryptographic
-   signature to authenticate the signed data, and thus (finally!)
-   authenticate the RRset.
-
-   The Algorithm field in the RRSIG RR identifies the cryptographic
-   algorithm used to generate the signature.  The signature itself is
-   contained in the Signature field of the RRSIG RDATA, and the public
-   key used to verify the signature is contained in the Public Key field
-   of the matching DNSKEY RR(s) (found in Section 5.3.1).
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 31]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   [I-D.ietf-dnsext-dnssec-records] provides a list of algorithm types,
-   and provides pointers to the documents that define each algorithm's
-   use.
-
-   Note that it is possible for more than one DNSKEY RR to match the
-   conditions in Section 5.3.1.  In this case, the resolver can only
-   determine which DNSKEY RR by trying each matching public key until
-   the resolver either succeeds in validating the signature or runs out
-   of keys to try.
-
-   If the Labels field of the RRSIG RR is not equal to the number of
-   labels in the RRset's fully qualified owner name, then the RRset is
-   either invalid or the result of wildcard expansion.  The resolver
-   MUST verify that wildcard expansion was applied properly before
-   considering the RRset to be authentic.  Section 5.3.4 describes how
-   to determine whether a wildcard was applied properly.
-
-   If other RRSIG RRs also cover this RRset, the local resolver security
-   policy determines whether the resolver also needs to test these RRSIG
-   RRs, and determines how to resolve conflicts if these RRSIG RRs lead
-   to differing results.
-
-   If the resolver accepts the RRset as authentic, the resolver MUST set
-   the TTL of the RRSIG RR and each RR in the authenticated RRset to a
-   value no greater than the minimum of:
-
-   o  The RRset's TTL as received in the response;
-
-   o  The RRSIG RR's TTL as received in the response; and
-
-   o  The value in the RRSIG RR's Original TTL field.
-
-
-5.3.4 Authenticating A Wildcard Expanded RRset Positive Response
-
-   If the number of labels in an RRset's owner name is greater than the
-   Labels field of the covering RRSIG RR, then the RRset and its
-   covering RRSIG RR were created as a result of wildcard expansion.
-   Once the resolver has verified the signature as described in Section
-   5.3, the resolver must take additional steps to verify the
-   non-existence of an exact match or closer wildcard match for the
-   query.  Section 5.4 discusses these steps.
-
-   Note that the response received by the resolver should include all
-   NSEC RRs needed to authenticate the response (see Section 3.1.3).
-
-5.4 Authenticated Denial of Existence
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 32]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   A resolver can use authenticated NSEC RRs to prove that an RRset is
-   not present in a signed zone.  Security-aware name servers should
-   automatically include any necessary NSEC RRs for signed zones in
-   their responses to security-aware resolvers.
-
-   Security-aware resolvers MUST first authenticate NSEC RRsets
-   according to the standard RRset authentication rules described in
-   Section 5.3, then apply the NSEC RRsets as follows:
-
-   o  If the requested RR name matches the owner name of an
-      authenticated NSEC RR, then the NSEC RR's type bit map field lists
-      all RR types present at that owner name, and a resolver can prove
-      that the requested RR type does not exist by checking for the RR
-      type in the bit map.  If the number of labels in an authenticated
-      NSEC RR's owner name equals the Labels field of the covering RRSIG
-      RR, then the existence of the NSEC RR proves that wildcard
-      expansion could not have been used to match the request.
-
-   o  If the requested RR name would appear after an authenticated NSEC
-      RR's owner name and before the name listed in that NSEC RR's Next
-      Domain Name field according to the canonical DNS name order
-      defined in [I-D.ietf-dnsext-dnssec-records], then no RRsets with
-      the requested name exist in the zone.  However, it is possible
-      that a wildcard could be used to match the requested RR owner name
-      and type, so proving that the requested RRset does not exist also
-      requires proving that no possible wildcard RRset exists that could
-      have been used to generate a positive response.
-
-   To prove non-existence of an RRset, the resolver must be able to
-   verify both that the queried RRset does not exist and that no
-   relevant wildcard RRset exists.  Proving this may require more than
-   one NSEC RRset from the zone.  If the complete set of necessary NSEC
-   RRsets is not present in a response (perhaps due to message
-   truncation), then a security-aware resolver MUST resend the query in
-   order to attempt to obtain the full collection of NSEC RRs necessary
-   to verify non-existence of the requested RRset.  As with all DNS
-   operations, however, the resolver MUST bound the work it puts into
-   answering any particular query.
-
-   Since a verified NSEC RR proves the existence of both itself and its
-   corresponding RRSIG RR, a verifier MUST ignore the settings of the
-   NSEC and RRSIG bits in an NSEC RR.
-
-5.5 Authentication Example
-
-   Appendix C shows an example the authentication process.
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 33]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-6. IANA Considerations
-
-   [I-D.ietf-dnsext-dnssec-records] contains a review of the IANA
-   considerations introduced by DNSSEC.  The additional IANA
-   considerations discussed in this document:
-
-   [RFC2535] reserved the CD and AD bits in the message header.  The
-   meaning of the AD bit was redefined in [RFC3655] and the meaning of
-   both the CD and AD bit are restated in this document.  No new bits in
-   the DNS message header are defined in this document.
-
-   [RFC2671] introduced EDNS and [RFC3225] reserved the DNSSEC OK bit
-   and defined its use.  The use is restated but not altered in this
-   document.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 34]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-7. Security Considerations
-
-   This document describes how the DNS security extensions use public
-   key cryptography to sign and authenticate DNS resource record sets.
-   Please see [I-D.ietf-dnsext-dnssec-intro] for terminology and general
-   security considerations related to DNSSEC; see
-   [I-D.ietf-dnsext-dnssec-intro] for considerations specific to the
-   DNSSEC resource record types.
-
-   An active attacker who can set the CD bit in a DNS query message or
-   the AD bit in a DNS response message can use these bits to defeat the
-   protection which DNSSEC attempts to provide to security-oblivious
-   recursive-mode resolvers.  For this reason, use of these control bits
-   by a security-aware recursive-mode resolver requires a secure
-   channel.  See Section 3.2.2 and Section 4.8 for further discussion.
-
-   The protocol described in this document attempts to extend the
-   benefits of DNSSEC to security-oblivious stub resolvers. However,
-   since recovery from validation failures is likely to be specific to
-   particular applications, the facilities that DNSSEC provides for stub
-   resolvers may prove inadequate.  Operators of security-aware
-   recursive name servers will need to pay close attention to the
-   behavior of the applications which use their services when choosing a
-   local validation policy; failure to do so could easily result in the
-   recursive name server accidently denying service to the clients it is
-   intended to support.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 35]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-8. Acknowledgements
-
-   This document was created from the input and ideas of the members of
-   the DNS Extensions Working Group and working group mailing list.  The
-   editors would like to express their thanks for the comments and
-   suggestions received during the revision of these security extension
-   specifications.  While explicitly listing everyone who has
-   contributed during the decade during which DNSSEC has been under
-   development would be an impossible task,
-   [I-D.ietf-dnsext-dnssec-intro] includes a list of some of the
-   participants who were kind enough to comment on these documents.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 36]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-Normative References
-
-   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
-              STD 13, RFC 1034, November 1987.
-
-   [RFC1035]  Mockapetris, P., "Domain names - implementation and
-              specification", STD 13, RFC 1035, November 1987.
-
-   [RFC1982]  Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982,
-              August 1996.
-
-   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
-              Requirement Levels", BCP 14, RFC 2119, March 1997.
-
-   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS
-              Specification", RFC 2181, July 1997.
-
-   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC
-              2671, August 1999.
-
-   [RFC3225]  Conrad, D., "Indicating Resolver Support of DNSSEC", RFC
-              3225, December 2001.
-
-   [RFC3226]  Gudmundsson, O., "DNSSEC and IPv6 A6 aware server/resolver
-              message size requirements", RFC 3226, December 2001.
-
-   [I-D.ietf-dnsext-dnssec-intro]
-              Arends, R., Austein, R., Larson, M., Massey, D. and S.
-              Rose, "DNS Security Introduction and Requirements",
-              draft-ietf-dnsext-dnssec-intro-09 (work in progress),
-              February 2004.
-
-   [I-D.ietf-dnsext-dnssec-records]
-              Arends, R., Austein, R., Larson, M., Massey, D. and S.
-              Rose, "Resource Records for DNS Security Extensions",
-              draft-ietf-dnsext-dnssec-records-07 (work in progress),
-              February 2004.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 37]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-Informative References
-
-   [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS
-              NCACHE)", RFC 2308, March 1998.
-
-   [RFC2535]  Eastlake, D., "Domain Name System Security Extensions",
-              RFC 2535, March 1999.
-
-   [RFC2930]  Eastlake, D., "Secret Key Establishment for DNS (TKEY
-              RR)", RFC 2930, September 2000.
-
-   [RFC2931]  Eastlake, D., "DNS Request and Transaction Signatures (
-              SIG(0)s)", RFC 2931, September 2000.
-
-   [RFC3655]  Wellington, B. and O. Gudmundsson, "Redefinition of DNS
-              Authenticated Data (AD) bit", RFC 3655, November 2003.
-
-   [RFC3658]  Gudmundsson, O., "Delegation Signer (DS) Resource Record
-              (RR)", RFC 3658, December 2003.
-
-   [I-D.ietf-dnsext-wcard-clarify]
-              Halley, B. and E. Lewis, "Clarifying the Role of Wild Card
-              Domains in the Domain Name System",
-              draft-ietf-dnsext-wcard-clarify-02 (work in progress),
-              September 2003.
-
-
-Authors' Addresses
-
-   Roy Arends
-   Telematica Instituut
-   Drienerlolaan 5
-   7522 NB  Enschede
-   NL
-
-   EMail: roy.arends@telin.nl
-
-
-   Matt Larson
-   VeriSign, Inc.
-   21345 Ridgetop Circle
-   Dulles, VA  20166-6503
-   USA
-
-   EMail: mlarson@verisign.com
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 38]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   Rob Austein
-   Internet Systems Consortium
-   950 Charter Street
-   Redwood City, CA  94063
-   USA
-
-   EMail: sra@isc.org
-
-
-   Dan Massey
-   USC Information Sciences Institute
-   3811 N. Fairfax Drive
-   Arlington, VA  22203
-   USA
-
-   EMail: masseyd@isi.edu
-
-
-   Scott Rose
-   National Institute for Standards and Technology
-   100 Bureau Drive
-   Gaithersburg, MD  20899-8920
-   USA
-
-   EMail: scott.rose@nist.gov
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 39]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-Appendix A. Signed Zone Example
-
-   The following example shows a (small) complete signed zone.
-
-   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
-                              1071609350
-                              3600
-                              300
-                              3600000
-                              3600
-                              )
-                  3600 RRSIG  SOA 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              F1KxMLu2zwDUFgUtdAqCq6F9zkaIPb3B7dzA
-                              hRLp8riOMQQgCCQ4x9KvSu2xLJa539jQIRW0
-                              VBU6+FZWzC2IJcc5liv2SXzyfiPu8diB9+Bj
-                              CSITjVX0IGrQgd+PKkaTxWQzG9TDZ2TtgnyM
-                              owLe/OV+Qqqic7ShV/S9l2YJF9I= )
-                  3600 NS     ns1.example.
-                  3600 NS     ns2.example.
-                  3600 RRSIG  NS 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              YgTFj4yXRzbOddwfOTQhLHGPWm7x55ZRoPVz
-                              +bxuPHTozw3I2gpno81Em1RuVekWJHivAvQj
-                              s1h72oh+ipBadjCGSRu46u1T9JYUSLxLecgY
-                              eEw9qDeQIoZHRny5bYrX1x87ItEo5+n1lwOH
-                              FTVyQbVkcaxQ6U2FbZtMbfo//go= )
-                  3600 MX     1 xx.example.
-                  3600 RRSIG  MX 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              JE9Kcx4NaXpaO2Jjyo5yi+DT6wgxwregHg18
-                              7xOOF0KjIYQpaoFY3Kp8MAKT7aupZpr5DmHe
-                              IpBNI6jC59A2uNVP+6UfqAyJMoNnq9d/paM+
-                              M+adwb+xrT+dZYpFZzyeXPmBqA/PVAtw1d5Q
-                              7wxkDWyzgasGiMNIKgYrm9vXz04= )
-                  3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY
-                  3600 RRSIG  NSEC 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              kE9ARiewdQSCsLXY9ldasZEW54kKhfEN2lsT
-                              vDD4biJsTPeaOXJ6bJ7s0CvybknENin3uqIX
-                              TAy6bsL919sEI3/SoHiRCwHalVmUPIWCsz4g
-                              Ee7gkQ+1uFzi7L8LGX9NjQI74s3M//OW2+T4
-                              7T/nOEOVZujD8IN/Utv+KUg+P6U= )
-                  3600 DNSKEY 256 3 5 (
-                              AQPmfvH5TF0S/vnd08C9EbVlG/+wbmFecyjH
-                              UtEh3d8h045BE36XSbr0XZU6kPLgA/Shf7TV
-                              fKduDMH7ASlP8MpUX4ci9ZiXffBjUKvsHORv
-                              BgtAcUYRofvzRZ/jl078bI/JJg9ee4ndY6FO
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 40]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              5LtAM3ElSpRIIhAm4b2c69IMdwrU2Q==
-                              )
-                  3600 DNSKEY 257 3 5 (
-                              AQOwHAYrbYVzzKHF0PDHSt4zY+Vz1+yLz1/U
-                              Pv2j2nukkWKLipnqg8X2vI754SRpqwpPCKpv
-                              klUr36CE0byYLOpRE5WlKZjXm3uzDFIVdHUE
-                              2lFwkMP9tSHUrXbjypiZWZP71qNuBeYCDAyT
-                              nLu7mxrT1Y7GdSV7I6vwt0mDSWQDXQ==
-                              )
-                  3600 RRSIG  DNSKEY 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              Pkxt/YJHVcnm3+56YGYziM69NDFJDEernUEU
-                              pU1yBY8H7TlvIWhJz/qHsWcPt79ri0lP0Ho5
-                              YDVp6GOFxBcR/7ejtV/izHO5tb88WM8xJLNc
-                              tJZeSSVG62kt1q5fiKKsxhhpqZFQgc+h6htG
-                              PjJstq6fvRq8kX7TPJcljUmDFKM= )
-                  3600 RRSIG  DNSKEY 5 1 3600 20040115201552 (
-                              20031216201552 60717 example.
-                              EVJnkWJSUTdaxIRX374Ki84OhYRYB+7TM/Z/
-                              C8ufeGjcZkAPpkA3XjPao+4kG/lR/qW8oyNK
-                              L0g5BI9fkcptXjf+0y3n5y/con6f+FOwHgdY
-                              J7/fjSW27L3Je0MSrR3T/RNaokZafWDCT/34
-                              Uu/YHFJKdBxs7sMeSBJ4UPm2uwc= )
-   a.example.     3600 IN NS  ns1.a.example.
-                  3600 IN NS  ns2.a.example.
-                  3600 DS     48327 5 1 (
-                              DFEB5E00E71A4DED5CABBBD7F15F24871983
-                              CAB7 )
-                  3600 RRSIG  DS 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              wj4ME4MuuZN77PGiE8xgBmCXpRpUocRJLbW/
-                              hBbMGk2qtA9ose1Jr2F9rOU6zvU9Z0HQgxnb
-                              rSBfaeCZFmk3yOlo9Uqref4ukk9hwIjzxo7c
-                              ZbJstCYWiLF57i1k5Cj6npMbUZSIgRGcB+dC
-                              0yfe2uolEkeegjesDZuF+fC61Eg= )
-                  3600 NSEC   ai.example. NS DS RRSIG NSEC
-                  3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              iq8exEVhvdx4s3w3VmK3Mzfngwpmpv3NwOpb
-                              RMtgba/u5kyD4Mf03jyLtJLUevry2rZcRjF1
-                              3kDuKmewJ0jWA4sMuljJpx10rhvwlcKaJE3O
-                              ViEb66GFqDxCXExikKWsPm8qckYZLQ7ABNjf
-                              YgfAHJEJJj7K88QbKEK4/Je1hyk= )
-   ns1.a.example. 3600 IN A   192.0.2.5
-   ns2.a.example. 3600 IN A   192.0.2.6
-   ai.example.    3600 IN A   192.0.2.9
-                  3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 41]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              hxNyPE9Wn675NDH/IpB2LZzhrUtV9eEndid8
-                              jiteGyki6CAEJKm1Dr2bjlrzdgfFBrpIac9c
-                              Up4zMlAkitX/7D9vFus8nLSvEHngpdc12Hlk
-                              OrvT0EsYA2XeQ0h3PPQk5FcK2ekxZvw5Zm7A
-                              sWifTxvcG5hv+A6TOd0O2xJYRik= )
-                  3600 HINFO  "KLH-10" "ITS"
-                  3600 RRSIG  HINFO 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              4aSnKLykRT7htnnS8HtlM0YLMwU1Z92pvf/C
-                              hxETE5B6W8x+uJs9KV9nlZ/B6TNk4nFRgKg2
-                              KpKvEq7xUybNKwbbeGZE9n2fDH0FeDgHjqW2
-                              Ke0lQuszRxjx+McTEqVJMyHrBKnqNdUh1G92
-                              xo9NLoltg0GuwggZM240pRoTwO8= )
-                  3600 AAAA   2001:db8::f00:baa9
-                  3600 RRSIG  AAAA 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              oq16/pU4MuvkgQyFqGrHqggz47i6iZL714u5
-                              9UsmGM1Y/qyQZsR4wi6hC2zIWXNJxIPIhitJ
-                              G6M5pjExUH/vOe0DIW73t/NHzcj0zOjxAPEI
-                              A+jBlOwn2EY5q87PMzBIeHWSx7DxtEIMC8XI
-                              zkK+1+Z5aqj1pmZ4yXUvd2znGnQ= )
-                  3600 NSEC   b.example. A HINFO AAAA RRSIG NSEC
-                  3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              Xr3qBss/U0yN12SL2stWs0AACeQjvRms9+xE
-                              ishTjb4B/XQ8yAfAmby5yF5DKR8900M0hT3Y
-                              ikp/wIF4TmtH5W7UFN13To/GWGJygaa7wyzU
-                              4AtgtRwmmevSAgzxhC7yRXUWyhpfQoW7zwpR
-                              ovChG5Ih3TOa8Qnch4IJQVfSFNU= )
-   b.example.     3600 IN NS  ns1.b.example.
-                  3600 IN NS  ns2.b.example.
-                  3600 NSEC   ns1.example. NS RRSIG NSEC
-                  3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              nFufQRM2UtSYTAwQaKEnIpua5ZHLqJrcLGAs
-                              VUpLoPOEsAXex1N3uIJQWmoXnr9Up00G7jbW
-                              VOVaLUvXR7b/4sQkyQLbOl9GpWiA1NYjPneN
-                              k3i+OWi3NmvRN71CuNky87DrVg0p2Mf2MjLX
-                              GRIZP9W1bgeDHZRcCNz2hQ67SgY= )
-   ns1.b.example. 3600 IN A   192.0.2.7
-   ns2.b.example. 3600 IN A   192.0.2.8
-   ns1.example.   3600 IN A   192.0.2.1
-                  3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              5FrF88yOT6iiBdkiQLqaXkma0gCQza5/kLK7
-                              CgoMNlCR2QYhsur2X7Fex2/OYEmOkzOqO7Gs
-                              RoIc4e3nt+kfpd/4Htp9T5v+NXmMVPmW3Jmf
-                              +ZGpEf86AI7Rw3x2bSmVOzsxa4xUxE+DuINa
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 42]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              WNJ/ulvIFa20d0xtlB7jazNCZ3Y= )
-                  3600 NSEC   ns2.example. A RRSIG NSEC
-                  3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              WaeyPcQtFjXj4cxDcqVseuhZPA4K/qSb7ylZ
-                              sj55rJ8OqEKDYt71e1MT3F5p76wKtLaPmoc0
-                              eLGnDD+Xouu/tWXtsjj5QpMhl13DUD0GLBiA
-                              s/wwxreW0SWkh4JJirodDE7vSIiI6gPJYhIj
-                              I2A5W86mMEbSgEF/pZHX/wi5FJI= )
-   ns2.example.   3600 IN A   192.0.2.2
-                  3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              sfFOjxKZz1LMhyDfmB43RhIUVOHlVbLtP0lL
-                              xBsxcHt48NKLth81pzSWRFQfUtMCjaGWMtuK
-                              HFEVaAQXcwllWXXLbVpc9a32govT+hsapcht
-                              sPyxkcEpYEFTtB93edKRVQ0IgZBPOI02R6vG
-                              wCbeY0Rl8MIRcAaiIkFos/8hd1g= )
-                  3600 NSEC   *.w.example. A RRSIG NSEC
-                  3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              Vxovi9gQjxqYBI5QF2ZcbZ/5my7C+22uXKVb
-                              IN5dmV82uu2TqJ4g2a2KKywlVi+4Kcnm4O3b
-                              f7pV4g7pcQopa9AFiY8byFrPftuNvraDyp6J
-                              aPllr/HnIPGP4Vw78LKW4n812K2VxV8p/IJl
-                              yCup5bk/Dr47eU2/6+lqrBTOV8Q= )
-   *.w.example.   3600 IN MX  1 ai.example.
-                  3600 RRSIG  MX 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              mzcZPkLFaFycrnJuHY8LHdmvmyD8prPbQXHg
-                              OXuGLRpO+qRU04v97KYNy8si1Ijmo85nI4Ns
-                              Hl2+WpbMguW9gyPpdHqIYkKJbOrX2b4bz6WA
-                              n7NlR05Rf2tE3e54a1LP0po55yqGtxdPKWOK
-                              91Ena87PA2MvoOE+A3ZpEk8MjEE= )
-                  3600 NSEC   x.w.example. MX RRSIG NSEC
-                  3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              OeBMvLlBam90xU/KxvyAYBNGWpvMf1TbaJFr
-                              f0Ip+tTkiqeEE8fx2ZAg1JcY9uhldms/9y45
-                              9HxO9Q3ZO6jfQzsx62YQaBte85d/Udhzf4AK
-                              /RHsZGSOabsu6DhacWC2Ew7vEgcMfiPHFzWW
-                              ANi1i3zhPOd3+Vjt4IQzaJXqVZE= )
-   x.w.example.   3600 IN MX  1 xx.example.
-                  3600 RRSIG  MX 5 3 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              g2H7+tChKsYRqxDkrLZgraaKBF2pah6YNCEW
-                              ORmXLzrB6RWtXbjVHXjagBhZYsMPzkPqwn4m
-                              8IYSaPD0X3z001aXsgsh9WF+AOgbqa0eoIIY
-                              MHIEJ9MHB5cS33XXv2fY6iFmjLuZUz+pNSfv
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 43]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              btznHMFDIbtuw/tAX7xXH2pDDHY= )
-                  3600 NSEC   x.y.w.example. MX RRSIG NSEC
-                  3600 RRSIG  NSEC 5 3 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              zwAU3bQHLeDawvqbvlmNosGMGDz9wdEe/iia
-                              CU8DbanqOzUiPfqEgBN3evFMpGBM9H3zMjGA
-                              EjnP4fMerk7dzD8jfyLzNdCGsJjPtnEgctGA
-                              aNd+NGtSmedzeNGvlj7mNxnAdqHFY1c902pT
-                              3lMXiX4KNWUhB87q/pT/5z+xrqY= )
-   x.y.w.example. 3600 IN MX  1 xx.example.
-                  3600 RRSIG  MX 5 4 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              slLY7KbPseET3XMJz/yGJBJpDczy1N2W4SAD
-                              v5Jx/osOWviEJBpUEwRndX+VmsmQJqKsQxtE
-                              unmxl4Sh9cuVyALJy1ByF9hZ0+E3i35qoxOK
-                              Oe+JZyiEiebZfZ8doH5J+keCkIQ8EHzw8Hnk
-                              Iykd5UmaTO5j4LlRnAvF8Z1m9/k= )
-                  3600 NSEC   xx.example. MX RRSIG NSEC
-                  3600 RRSIG  NSEC 5 4 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              sjHnEm4kiIK64bRskNc3vxEHe12l9Lg8Y7G8
-                              VsXMUEEDeBCB3qlrGQeqhdl+gsQGRBiOA8Jj
-                              Jr5F9RNZepVLGv+t5fALeoe0gLHsWoTlfTdq
-                              AJ8a2E5BZYYvy9hjh9Y4Kqd23HOv21o2OC0J
-                              viOQHZ6I4xoZQP5G7r98/PhlrLM= )
-   xx.example.    3600 IN A   192.0.2.10
-                  3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              fQfj8RhKKhC2vI0OJxgnZLeXFhpMmpjwV/ap
-                              tCkUP1YagLF9gB4NLRUrV1QO/e1f2zyxSngq
-                              iDW9yUJjKQcv9EWzbDd0kzXxPu11y/iS7oMS
-                              KOsVB4Mp7BM5q2kcBXBrM+Rr0eibvBXmHs8G
-                              0ToQVY81bPc3WXKZjRxQl3jiKtU= )
-                  3600 HINFO  "KLH-10" "TOPS-20"
-                  3600 RRSIG  HINFO 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              fZIotOyJqpRTZ0KH5lsZIksuyslAMckBclZw
-                              p3LJiaYAibf+rwNFpS3CPUFsyCrA8UL+iVfA
-                              gTxa6O8+yKYsDXZ2x6wPPDqmBEeHT1XiKEA/
-                              pC+O35tVS6oLMYWJyGAGBJitXZQGr+MiBvSp
-                              EDXT07qFXtGntvBSpF9uQbEub6Y= )
-                  3600 AAAA   2001:db8::f00:baaa
-                  3600 RRSIG  AAAA 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              kLh5dTA0XBIIjEV/guGo9pEOKNZ0Elvbuhm2
-                              dFbnHuZ1tLirjzCYr8CsmF9bSIKLbiMRc/SD
-                              mDhMUKFMhsVqCMwqfYjxXvTOG21BKyCki0Gg
-                              CgvRD47lC4NnCSaB6B6Ysj0Aupv75Nnqwi9Z
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 44]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              D4ZubIon0XGe9fIjLnmb3pX/FUk= )
-                  3600 NSEC   example. A HINFO AAAA RRSIG NSEC
-                  3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              sbF8bfC6zqyuio2iov0C9byDCejWvxMJYgjn
-                              uy3nXbvVXXzcA+d2zG6uPQ8VLRSolCE+OQqE
-                              NsABxmoBhBwdxCrCpnU8SvzAkrRLwuOqAu1a
-                              1yBIfd352PHkQg1sxVDHGoFo3cFKzvkuD187
-                              sSNF3PAC0HPadh7SdHmXlFQtQ44= )
-
-   The apex DNSKEY set includes two DNSKEY RRs, and the DNSKEY RDATA
-   Flags indicate that each of these DNSKEY RRs is a zone key.  One of
-   these DNSKEY RRs also has the SEP flag set and has been used to sign
-   the apex DNSKEY RRset; this is the key which should be hashed to
-   generate a DS record to be inserted into the parent zone.  The other
-   DNSKEY is used to sign all the other RRsets in the zone.
-
-   The zone includes a wildcard entry "*.w.example".  Note that the name
-   "*.w.example" is used in constructing NSEC chains, and that the RRSIG
-   covering the "*.w.example" MX RRset has a label count of 2.
-
-   The zone also includes two delegations.  The delegation to
-   "b.example" includes an NS RRset, glue address records, and an NSEC
-   RR; note that only the NSEC RRset is signed.  The delegation to
-   "a.example" provides a DS RR; note that only the NSEC and DS RRsets
-   are signed.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 45]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-Appendix B. Example Responses
-
-   The examples in this section show response messages using the signed
-   zone example in Appendix A.
-
-B.1 Answer
-
-   A successful query to an authoritative server.
-
-   ;; Header: QR AA DO RCODE=0
-   ;;
-   ;; Question
-   x.w.example.        IN MX
-
-   ;; Answer
-   x.w.example.   3600 IN MX  1 xx.example.
-   x.w.example.   3600 RRSIG  MX 5 3 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              g2H7+tChKsYRqxDkrLZgraaKBF2pah6YNCEW
-                              ORmXLzrB6RWtXbjVHXjagBhZYsMPzkPqwn4m
-                              8IYSaPD0X3z001aXsgsh9WF+AOgbqa0eoIIY
-                              MHIEJ9MHB5cS33XXv2fY6iFmjLuZUz+pNSfv
-                              btznHMFDIbtuw/tAX7xXH2pDDHY= )
-
-   ;; Authority
-   example.       3600 NS     ns1.example.
-   example.       3600 NS     ns2.example.
-   example.       3600 RRSIG  NS 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              YgTFj4yXRzbOddwfOTQhLHGPWm7x55ZRoPVz
-                              +bxuPHTozw3I2gpno81Em1RuVekWJHivAvQj
-                              s1h72oh+ipBadjCGSRu46u1T9JYUSLxLecgY
-                              eEw9qDeQIoZHRny5bYrX1x87ItEo5+n1lwOH
-                              FTVyQbVkcaxQ6U2FbZtMbfo//go= )
-
-   ;; Additional
-   xx.example.    3600 IN A   192.0.2.10
-   xx.example.    3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              fQfj8RhKKhC2vI0OJxgnZLeXFhpMmpjwV/ap
-                              tCkUP1YagLF9gB4NLRUrV1QO/e1f2zyxSngq
-                              iDW9yUJjKQcv9EWzbDd0kzXxPu11y/iS7oMS
-                              KOsVB4Mp7BM5q2kcBXBrM+Rr0eibvBXmHs8G
-                              0ToQVY81bPc3WXKZjRxQl3jiKtU= )
-   xx.example.    3600 AAAA   2001:db8::f00:baaa
-   xx.example.    3600 RRSIG  AAAA 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              kLh5dTA0XBIIjEV/guGo9pEOKNZ0Elvbuhm2
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 46]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              dFbnHuZ1tLirjzCYr8CsmF9bSIKLbiMRc/SD
-                              mDhMUKFMhsVqCMwqfYjxXvTOG21BKyCki0Gg
-                              CgvRD47lC4NnCSaB6B6Ysj0Aupv75Nnqwi9Z
-                              D4ZubIon0XGe9fIjLnmb3pX/FUk= )
-   ns1.example.   3600 IN A   192.0.2.1
-   ns1.example.   3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              5FrF88yOT6iiBdkiQLqaXkma0gCQza5/kLK7
-                              CgoMNlCR2QYhsur2X7Fex2/OYEmOkzOqO7Gs
-                              RoIc4e3nt+kfpd/4Htp9T5v+NXmMVPmW3Jmf
-                              +ZGpEf86AI7Rw3x2bSmVOzsxa4xUxE+DuINa
-                              WNJ/ulvIFa20d0xtlB7jazNCZ3Y= )
-   ns2.example.   3600 IN A   192.0.2.2
-   ns2.example.   3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              sfFOjxKZz1LMhyDfmB43RhIUVOHlVbLtP0lL
-                              xBsxcHt48NKLth81pzSWRFQfUtMCjaGWMtuK
-                              HFEVaAQXcwllWXXLbVpc9a32govT+hsapcht
-                              sPyxkcEpYEFTtB93edKRVQ0IgZBPOI02R6vG
-                              wCbeY0Rl8MIRcAaiIkFos/8hd1g= )
-
-
-B.2 Name Error
-
-   An authoritative name error.  The NSEC RRs prove that the name does
-   not exist and that no covering wildcard exists.
-
-   ;; Header: QR AA DO RCODE=3
-   ;;
-   ;; Question
-   ml.example.         IN A
-
-   ;; Answer
-   ;; (empty)
-
-   ;; Authority
-   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
-                              1071609350
-                              3600
-                              300
-                              3600000
-                              3600
-                              )
-   example.       3600 RRSIG  SOA 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              F1KxMLu2zwDUFgUtdAqCq6F9zkaIPb3B7dzA
-                              hRLp8riOMQQgCCQ4x9KvSu2xLJa539jQIRW0
-                              VBU6+FZWzC2IJcc5liv2SXzyfiPu8diB9+Bj
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 47]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              CSITjVX0IGrQgd+PKkaTxWQzG9TDZ2TtgnyM
-                              owLe/OV+Qqqic7ShV/S9l2YJF9I= )
-   b.example.     3600 NSEC   ns1.example. NS RRSIG NSEC
-   b.example.     3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              nFufQRM2UtSYTAwQaKEnIpua5ZHLqJrcLGAs
-                              VUpLoPOEsAXex1N3uIJQWmoXnr9Up00G7jbW
-                              VOVaLUvXR7b/4sQkyQLbOl9GpWiA1NYjPneN
-                              k3i+OWi3NmvRN71CuNky87DrVg0p2Mf2MjLX
-                              GRIZP9W1bgeDHZRcCNz2hQ67SgY= )
-   example.       3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY
-   example.       3600 RRSIG  NSEC 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              kE9ARiewdQSCsLXY9ldasZEW54kKhfEN2lsT
-                              vDD4biJsTPeaOXJ6bJ7s0CvybknENin3uqIX
-                              TAy6bsL919sEI3/SoHiRCwHalVmUPIWCsz4g
-                              Ee7gkQ+1uFzi7L8LGX9NjQI74s3M//OW2+T4
-                              7T/nOEOVZujD8IN/Utv+KUg+P6U= )
-
-   ;; Additional
-   ;; (empty)
-
-
-B.3 No Data Error
-
-   A "NODATA" response.  The NSEC RR proves that the name exists and
-   that the requested RR type does not.
-
-   ;; Header: QR AA DO RCODE=0
-   ;;
-   ;; Question
-   ns1.example.        IN MX
-
-   ;; Answer
-   ;; (empty)
-
-   ;; Authority
-   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
-                              1071609350
-                              3600
-                              300
-                              3600000
-                              3600
-                              )
-   example.       3600 RRSIG  SOA 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              F1KxMLu2zwDUFgUtdAqCq6F9zkaIPb3B7dzA
-                              hRLp8riOMQQgCCQ4x9KvSu2xLJa539jQIRW0
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 48]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              VBU6+FZWzC2IJcc5liv2SXzyfiPu8diB9+Bj
-                              CSITjVX0IGrQgd+PKkaTxWQzG9TDZ2TtgnyM
-                              owLe/OV+Qqqic7ShV/S9l2YJF9I= )
-   ns1.example.   3600 NSEC   ns2.example. A RRSIG NSEC
-   ns1.example.   3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              WaeyPcQtFjXj4cxDcqVseuhZPA4K/qSb7ylZ
-                              sj55rJ8OqEKDYt71e1MT3F5p76wKtLaPmoc0
-                              eLGnDD+Xouu/tWXtsjj5QpMhl13DUD0GLBiA
-                              s/wwxreW0SWkh4JJirodDE7vSIiI6gPJYhIj
-                              I2A5W86mMEbSgEF/pZHX/wi5FJI= )
-
-   ;; Additional
-   ;; (empty)
-
-
-B.4 Referral to Signed Zone
-
-   Referral to a signed zone.   The DS RR contains the data which the
-   resolver will need to validate the corresponding DNSKEY RR in the
-   child zone's apex.
-
-   ;; Header: QR DO RCODE=0
-   ;;
-   ;; Question
-   mc.a.example.       IN MX
-
-   ;; Answer
-   ;; (empty)
-
-   ;; Authority
-   a.example.     3600 IN NS  ns1.a.example.
-   a.example.     3600 IN NS  ns2.a.example.
-   a.example.     3600 DS     48327 5 1 (
-                              DFEB5E00E71A4DED5CABBBD7F15F24871983
-                              CAB7 )
-   a.example.     3600 RRSIG  DS 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              wj4ME4MuuZN77PGiE8xgBmCXpRpUocRJLbW/
-                              hBbMGk2qtA9ose1Jr2F9rOU6zvU9Z0HQgxnb
-                              rSBfaeCZFmk3yOlo9Uqref4ukk9hwIjzxo7c
-                              ZbJstCYWiLF57i1k5Cj6npMbUZSIgRGcB+dC
-                              0yfe2uolEkeegjesDZuF+fC61Eg= )
-
-   ;; Additional
-   ns1.a.example. 3600 IN A   192.0.2.5
-   ns2.a.example. 3600 IN A   192.0.2.6
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 49]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-B.5 Referral to Unsigned Zone
-
-   Referral to an unsigned zone.  The NSEC RR proves that no DS RR for
-   this delegation exists in the parent zone.
-
-   ;; Header: QR DO RCODE=0
-   ;;
-   ;; Question
-   mc.b.example.       IN MX
-
-   ;; Answer
-   ;; (empty)
-
-   ;; Authority
-   b.example.     3600 IN NS  ns1.b.example.
-   b.example.     3600 IN NS  ns2.b.example.
-   b.example.     3600 NSEC   ns1.example. NS RRSIG NSEC
-   b.example.     3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              nFufQRM2UtSYTAwQaKEnIpua5ZHLqJrcLGAs
-                              VUpLoPOEsAXex1N3uIJQWmoXnr9Up00G7jbW
-                              VOVaLUvXR7b/4sQkyQLbOl9GpWiA1NYjPneN
-                              k3i+OWi3NmvRN71CuNky87DrVg0p2Mf2MjLX
-                              GRIZP9W1bgeDHZRcCNz2hQ67SgY= )
-
-   ;; Additional
-   ns1.b.example. 3600 IN A   192.0.2.7
-   ns2.b.example. 3600 IN A   192.0.2.8
-
-
-B.6 Wildcard Expansion
-
-   A successful query which was answered via wildcard expansion. The
-   label count in the answer's RRSIG RR indicates that a wildcard RRset
-   was expanded to produce this response, and the NSEC RR proves that no
-   closer match exists in the zone.
-
-   ;; Header: QR AA DO RCODE=0
-   ;;
-   ;; Question
-   a.z.w.example.      IN MX
-
-   ;; Answer
-   a.z.w.example. 3600 IN MX  1 ai.example.
-   a.z.w.example. 3600 RRSIG  MX 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              mzcZPkLFaFycrnJuHY8LHdmvmyD8prPbQXHg
-                              OXuGLRpO+qRU04v97KYNy8si1Ijmo85nI4Ns
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 50]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-                              Hl2+WpbMguW9gyPpdHqIYkKJbOrX2b4bz6WA
-                              n7NlR05Rf2tE3e54a1LP0po55yqGtxdPKWOK
-                              91Ena87PA2MvoOE+A3ZpEk8MjEE= )
-
-   ;; Authority
-   example.       3600 NS     ns1.example.
-   example.       3600 NS     ns2.example.
-   example.       3600 RRSIG  NS 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              YgTFj4yXRzbOddwfOTQhLHGPWm7x55ZRoPVz
-                              +bxuPHTozw3I2gpno81Em1RuVekWJHivAvQj
-                              s1h72oh+ipBadjCGSRu46u1T9JYUSLxLecgY
-                              eEw9qDeQIoZHRny5bYrX1x87ItEo5+n1lwOH
-                              FTVyQbVkcaxQ6U2FbZtMbfo//go= )
-   x.y.w.example. 3600 NSEC   xx.example. MX RRSIG NSEC
-   x.y.w.example. 3600 RRSIG  NSEC 5 4 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              sjHnEm4kiIK64bRskNc3vxEHe12l9Lg8Y7G8
-                              VsXMUEEDeBCB3qlrGQeqhdl+gsQGRBiOA8Jj
-                              Jr5F9RNZepVLGv+t5fALeoe0gLHsWoTlfTdq
-                              AJ8a2E5BZYYvy9hjh9Y4Kqd23HOv21o2OC0J
-                              viOQHZ6I4xoZQP5G7r98/PhlrLM= )
-
-   ;; Additional
-   ai.example.    3600 IN A   192.0.2.9
-   ai.example.    3600 RRSIG  A 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              hxNyPE9Wn675NDH/IpB2LZzhrUtV9eEndid8
-                              jiteGyki6CAEJKm1Dr2bjlrzdgfFBrpIac9c
-                              Up4zMlAkitX/7D9vFus8nLSvEHngpdc12Hlk
-                              OrvT0EsYA2XeQ0h3PPQk5FcK2ekxZvw5Zm7A
-                              sWifTxvcG5hv+A6TOd0O2xJYRik= )
-   ai.example.    3600 AAAA   2001:db8::f00:baa9
-   ai.example.    3600 RRSIG  AAAA 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              oq16/pU4MuvkgQyFqGrHqggz47i6iZL714u5
-                              9UsmGM1Y/qyQZsR4wi6hC2zIWXNJxIPIhitJ
-                              G6M5pjExUH/vOe0DIW73t/NHzcj0zOjxAPEI
-                              A+jBlOwn2EY5q87PMzBIeHWSx7DxtEIMC8XI
-                              zkK+1+Z5aqj1pmZ4yXUvd2znGnQ= )
-
-
-B.7 Wildcard No Data Error
-
-   A "NODATA" response for a name covered by a wildcard.  The NSEC RRs
-   prove that the matching wildcard name does not have any RRs of the
-   requested type and that no closer match exists in the zone.
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 51]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   ;; Header: QR AA DO RCODE=0
-   ;;
-   ;; Question
-   a.z.w.example.      IN AAAA
-
-   ;; Answer
-   ;; (empty)
-
-   ;; Authority
-   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
-                              1071609350
-                              3600
-                              300
-                              3600000
-                              3600
-                              )
-   example.       3600 RRSIG  SOA 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              F1KxMLu2zwDUFgUtdAqCq6F9zkaIPb3B7dzA
-                              hRLp8riOMQQgCCQ4x9KvSu2xLJa539jQIRW0
-                              VBU6+FZWzC2IJcc5liv2SXzyfiPu8diB9+Bj
-                              CSITjVX0IGrQgd+PKkaTxWQzG9TDZ2TtgnyM
-                              owLe/OV+Qqqic7ShV/S9l2YJF9I= )
-   x.y.w.example. 3600 NSEC   xx.example. MX RRSIG NSEC
-   x.y.w.example. 3600 RRSIG  NSEC 5 4 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              sjHnEm4kiIK64bRskNc3vxEHe12l9Lg8Y7G8
-                              VsXMUEEDeBCB3qlrGQeqhdl+gsQGRBiOA8Jj
-                              Jr5F9RNZepVLGv+t5fALeoe0gLHsWoTlfTdq
-                              AJ8a2E5BZYYvy9hjh9Y4Kqd23HOv21o2OC0J
-                              viOQHZ6I4xoZQP5G7r98/PhlrLM= )
-   *.w.example.   3600 NSEC   x.w.example. MX RRSIG NSEC
-   *.w.example.   3600 RRSIG  NSEC 5 2 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              OeBMvLlBam90xU/KxvyAYBNGWpvMf1TbaJFr
-                              f0Ip+tTkiqeEE8fx2ZAg1JcY9uhldms/9y45
-                              9HxO9Q3ZO6jfQzsx62YQaBte85d/Udhzf4AK
-                              /RHsZGSOabsu6DhacWC2Ew7vEgcMfiPHFzWW
-                              ANi1i3zhPOd3+Vjt4IQzaJXqVZE= )
-
-   ;; Additional
-   ;; (empty)
-
-
-B.8 DS Child Zone No Data Error
-
-   A "NODATA" response for a QTYPE=DS query which was mistakenly sent to
-   a name server for the child zone.
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 52]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   ;; Header: QR AA DO RCODE=0
-   ;;
-   ;; Question
-   example.            IN DS
-
-   ;; Answer
-   ;; (empty)
-
-   ;; Authority
-   example.       3600 IN SOA ns1.example. bugs.x.w.example. (
-                              1071609350
-                              3600
-                              300
-                              3600000
-                              3600
-                              )
-   example.       3600 RRSIG  SOA 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              F1KxMLu2zwDUFgUtdAqCq6F9zkaIPb3B7dzA
-                              hRLp8riOMQQgCCQ4x9KvSu2xLJa539jQIRW0
-                              VBU6+FZWzC2IJcc5liv2SXzyfiPu8diB9+Bj
-                              CSITjVX0IGrQgd+PKkaTxWQzG9TDZ2TtgnyM
-                              owLe/OV+Qqqic7ShV/S9l2YJF9I= )
-   example.       3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY
-   example.       3600 RRSIG  NSEC 5 1 3600 20040115201552 (
-                              20031216201552 41681 example.
-                              kE9ARiewdQSCsLXY9ldasZEW54kKhfEN2lsT
-                              vDD4biJsTPeaOXJ6bJ7s0CvybknENin3uqIX
-                              TAy6bsL919sEI3/SoHiRCwHalVmUPIWCsz4g
-                              Ee7gkQ+1uFzi7L8LGX9NjQI74s3M//OW2+T4
-                              7T/nOEOVZujD8IN/Utv+KUg+P6U= )
-
-   ;; Additional
-   ;; (empty)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 53]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-Appendix C. Authentication Examples
-
-   The examples in this section show how the response messages in
-   Appendix B are authenticated.
-
-C.1 Authenticating An Answer
-
-   The query in section Appendix B.1 returned an MX RRset for
-   "x.w.example.com". The corresponding RRSIG indicates the MX RRset was
-   signed by an "example" DNSKEY with algorithm 5 and key tag 41681.
-   The resolver needs the corresponding DNSKEY RR in order to
-   authenticate this answer.   The discussion below describes how a
-   resolver might obtain this DNSKEY RR.
-
-   The RRSIG indicates the original TTL of the MX RRset was 3600 and,
-   for the purpose of authentication, the current TTL is replaced by
-   3600.   The RRSIG labels field value of 3 indicates the answer was
-   not the result of wildcard expansion.  The "x.w.example.com" MX RRset
-   is placed in canonical form and, assuming the current time falls
-   between the signature inception and expiration dates, the signature
-   is authenticated.
-
-C.1.1 Authenticating the example DNSKEY RR
-
-   This example shows the logical authentication process that starts
-   from the a preconfigured root DNSKEY (or DS RR) and moves down the
-   tree to authenticate the desired "example" DNSKEY RR.   Note the
-   logical order is presented for clarity and an implementation may
-   choose to construct the authentication as referrals are received or
-   may choose to construct the authentication chain only after all
-   RRsets have been obtained, or in any other combination it sees fit.
-   The example here demonstrates only the logical process and does not
-   dictate any implementation rules.
-
-   We assume the resolver starts with an preconfigured DNSKEY RR for the
-   root zone (or a preconfigured DS RR for the root zone).  The resolver
-   checks this preconfigured DNSKEY RR is present in the root DNSKEY
-   RRset (or the DS RR matches some DNSKEY in the root DNSKEY RRset),
-   this DNSKEY RR has signed the root DNSKEY RRset and the signature
-   lifetime is valid.  If all these conditions are met, all keys in the
-   DNSKEY RRset are considered authenticated.   The resolver then uses
-   one (or more) of the root DNSKEY RRs to authenticate the "example" DS
-   RRset.  Note the resolver may need to query the root zone to obtain
-   the root DNSKEY RRset and/or "example" DS RRset.
-
-   Once the DS RRset has been authenticated using the root DNSKEY, the
-   resolver checks the "example" DNSKEY RRset for some "example" DNSKEY
-   RR that matches one of the authenticated "example" DS RRs.  If such a
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 54]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   matching "example" DNSKEY is found, the resolver checks this DNSKEY
-   RR has signed the "example" DNSKEY RRset and the signature lifetime
-   is valid.  If all these conditions are met, all keys in the "example"
-   DNSKEY RRset are considered authenticated.
-
-   Finally the resolver checks that some DNSKEY RR in the "example"
-   DNSKEY RRset uses algorithm 5 and has a key tag of 41681.  This
-   DNSKEY is used to authenticated the RRSIG included in the response.
-   If multiple "example" DNSKEY RRs have algorithm 5 and key tag of
-   41681, then each DNSKEY RR is tried and the answer is authenticated
-   if either DNSKEY RR validates the signature as described above.
-
-C.2 Name Error
-
-   The query in section Appendix B.2 returned NSEC RRs that prove the
-   requested data does not exist and no wildcard applies.  The negative
-   reply is authenticated by verifying both NSEC RRs. The NSEC RRs are
-   authenticated in a manner identical to that of the MX RRset discussed
-   above.
-
-C.3 No Data Error
-
-   The query in section Appendix B.3 returned an NSEC RR that proves the
-   requested name exists, but the requested RR type does not exist. The
-   negative reply is authenticated by verifying the NSEC RR.  The NSEC
-   RR is authenticated in a manner identical to that of the MX RRset
-   discussed above.
-
-C.4 Referral to Signed Zone
-
-   The query in section Appendix B.4 returned a referral to the signed
-   "a.example." zone.  The DS RR is authenticated in a manner identical
-   to that of the MX RRset discussed above. This DS RR is used to
-   authenticate the "a.example" DNSKEY RRset.
-
-   Once the "a.example" DS RRset has been authenticated using the
-   "example" DNSKEY, the resolver checks the "a.example" DNSKEY RRset
-   for some "a.example" DNSKEY RR that matches the DS RR.  If such a
-   matching "a.example" DNSKEY is found, the resolver checks this DNSKEY
-   RR has signed the "a.example" DNSKEY RRset and the signature lifetime
-   is valid.  If all these conditions are met, all keys in the
-   "a.example" DNSKEY RRset are considered authenticated.
-
-C.5 Referral to Unsigned Zone
-
-   The query in section Appendix B.5 returned a referral to an unsigned
-   "b.example." zone.  The NSEC proves that no authentication leads from
-   "example" to "b.example" and the NSEC RR is authenticated in a manner
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 55]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   identical to that of the MX RRset discussed above.
-
-C.6 Wildcard Expansion
-
-   The query in section Appendix B.6 returned an answer that was
-   produced as a result of wildcard expansion.   The RRset expanded as
-   the similar to The corresponding RRSIG indicates the MX RRset was
-   signed by an "example" DNSKEY with algorithm 5 and key tag 41681.
-   The RRSIG indicates the original TTL of the MX RRset was 3600 and,
-   for the purpose of authentication, the current TTL is replaced by
-   3600.   The RRSIG labels field value of 2 indicates the answer the
-   result of wildcard expansion since the "a.z.w.example" name contains
-   4 labels.  The name "a.z.w.w.example" is replaced by "*.w.example",
-   the MX RRset is placed in canonical form and, assuming the current
-   time falls between the signature inception and expiration dates, the
-   signature is authenticated.
-
-   The NSEC proves that no closer match (exact or closer wildcard) could
-   have been used to answer this query and the NSEC RR must also be
-   authenticated before the answer is considered valid.
-
-C.7 Wildcard No Data Error
-
-   The query in section Appendix B.7 returned NSEC RRs that prove the
-   requested data does not exist and no wildcard applies.  The negative
-   reply is authenticated by verifying both NSEC RRs.
-
-C.8 DS Child Zone No Data Error
-
-   The query in section Appendix B.8 returned NSEC RRs that shows the
-   requested was answered by a child server ("example" server).   The
-   NSEC RR indicates the presence of an SOA RR, showing the answer is
-   from the child .  Queries for the "example" DS RRset should be sent
-   to the parent servers ("root" servers).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 56]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-Intellectual Property Statement
-
-   The IETF takes no position regarding the validity or scope of any
-   intellectual property or other rights that might be claimed to
-   pertain to the implementation or use of the technology described in
-   this document or the extent to which any license under such rights
-   might or might not be available; neither does it represent that it
-   has made any effort to identify any such rights. Information on the
-   IETF's procedures with respect to rights in standards-track and
-   standards-related documentation can be found in BCP-11. Copies of
-   claims of rights made available for publication and any assurances of
-   licenses to be made available, or the result of an attempt made to
-   obtain a general license or permission for the use of such
-   proprietary rights by implementors or users of this specification can
-   be obtained from the IETF Secretariat.
-
-   The IETF invites any interested party to bring to its attention any
-   copyrights, patents or patent applications, or other proprietary
-   rights which may cover technology that may be required to practice
-   this standard. Please address the information to the IETF Executive
-   Director.
-
-
-Full Copyright Statement
-
-   Copyright (C) The Internet Society (2004). All Rights Reserved.
-
-   This document and translations of it may be copied and furnished to
-   others, and derivative works that comment on or otherwise explain it
-   or assist in its implementation may be prepared, copied, published
-   and distributed, in whole or in part, without restriction of any
-   kind, provided that the above copyright notice and this paragraph are
-   included on all such copies and derivative works. However, this
-   document itself may not be modified in any way, such as by removing
-   the copyright notice or references to the Internet Society or other
-   Internet organizations, except as needed for the purpose of
-   developing Internet standards in which case the procedures for
-   copyrights defined in the Internet Standards process must be
-   followed, or as required to translate it into languages other than
-   English.
-
-   The limited permissions granted above are perpetual and will not be
-   revoked by the Internet Society or its successors or assignees.
-
-   This document and the information contained herein is provided on an
-   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
-   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 57]
-\f
-Internet-Draft       DNSSEC Protocol Modifications         February 2004
-
-
-   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
-   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-Acknowledgement
-
-   Funding for the RFC Editor function is currently provided by the
-   Internet Society.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 58]
-\f
-
+\r
+\r
+DNS Extensions                                                 R. Arends\r
+Internet-Draft                                      Telematica Instituut\r
+Expires: November 15, 2004                                     M. Larson\r
+                                                                VeriSign\r
+                                                              R. Austein\r
+                                                                     ISC\r
+                                                               D. Massey\r
+                                                                 USC/ISI\r
+                                                                 S. Rose\r
+                                                                    NIST\r
+                                                            May 17, 2004\r
+\r
+\r
+         Protocol Modifications for the DNS Security Extensions\r
+                  draft-ietf-dnsext-dnssec-protocol-06\r
+\r
+Status of this Memo\r
+\r
+   This document is an Internet-Draft and is in full conformance with\r
+   all provisions of Section 10 of RFC2026.\r
+\r
+   Internet-Drafts are working documents of the Internet Engineering\r
+   Task Force (IETF), its areas, and its working groups. Note that other\r
+   groups may also distribute working documents as Internet-Drafts.\r
+\r
+   Internet-Drafts are draft documents valid for a maximum of six months\r
+   and may be updated, replaced, or obsoleted by other documents at any\r
+   time. It is inappropriate to use Internet-Drafts as reference\r
+   material or to cite them other than as "work in progress."\r
+\r
+   The list of current Internet-Drafts can be accessed at http://\r
+   www.ietf.org/ietf/1id-abstracts.txt.\r
+\r
+   The list of Internet-Draft Shadow Directories can be accessed at\r
+   http://www.ietf.org/shadow.html.\r
+\r
+   This Internet-Draft will expire on November 15, 2004.\r
+\r
+Copyright Notice\r
+\r
+   Copyright (C) The Internet Society (2004). All Rights Reserved.\r
+\r
+Abstract\r
+\r
+   This document is part of a family of documents which describe the DNS\r
+   Security Extensions (DNSSEC).  The DNS Security Extensions are a\r
+   collection of new resource records and protocol modifications which\r
+   add data origin authentication and data integrity to the DNS.  This\r
+   document describes the DNSSEC protocol modifications.  This document\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 1]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   defines the concept of a signed zone, along with the requirements for\r
+   serving and resolving using DNSSEC.  These techniques allow a\r
+   security-aware resolver to authenticate both DNS resource records and\r
+   authoritative DNS error indications.\r
+\r
+   This document obsoletes RFC 2535 and incorporates changes from all\r
+   updates to RFC 2535.\r
+\r
+Table of Contents\r
+\r
+   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4\r
+     1.1   Background and Related Documents . . . . . . . . . . . . .  4\r
+     1.2   Reserved Words . . . . . . . . . . . . . . . . . . . . . .  4\r
+     1.3   Editors' Notes . . . . . . . . . . . . . . . . . . . . . .  4\r
+       1.3.1   Open Technical Issues  . . . . . . . . . . . . . . . .  4\r
+       1.3.2   Technical Changes or Corrections . . . . . . . . . . .  4\r
+       1.3.3   Typos and Minor Corrections  . . . . . . . . . . . . .  5\r
+   2.  Zone Signing . . . . . . . . . . . . . . . . . . . . . . . . .  6\r
+     2.1   Including DNSKEY RRs in a Zone . . . . . . . . . . . . . .  6\r
+     2.2   Including RRSIG RRs in a Zone  . . . . . . . . . . . . . .  6\r
+     2.3   Including NSEC RRs in a Zone . . . . . . . . . . . . . . .  7\r
+     2.4   Including DS RRs in a Zone . . . . . . . . . . . . . . . .  8\r
+     2.5   Changes to the CNAME Resource Record.  . . . . . . . . . .  8\r
+     2.6   Example of a Secure Zone . . . . . . . . . . . . . . . . .  9\r
+   3.  Serving  . . . . . . . . . . . . . . . . . . . . . . . . . . . 10\r
+     3.1   Authoritative Name Servers . . . . . . . . . . . . . . . . 11\r
+       3.1.1   Including RRSIG RRs in a Response  . . . . . . . . . . 11\r
+       3.1.2   Including DNSKEY RRs In a Response . . . . . . . . . . 12\r
+       3.1.3   Including NSEC RRs In a Response . . . . . . . . . . . 12\r
+       3.1.4   Including DS RRs In a Response . . . . . . . . . . . . 15\r
+       3.1.5   Responding to Queries for Type AXFR or IXFR  . . . . . 16\r
+       3.1.6   The AD and CD Bits in an Authoritative Response  . . . 17\r
+     3.2   Recursive Name Servers . . . . . . . . . . . . . . . . . . 17\r
+       3.2.1   The DO bit . . . . . . . . . . . . . . . . . . . . . . 18\r
+       3.2.2   The CD bit . . . . . . . . . . . . . . . . . . . . . . 18\r
+       3.2.3   The AD bit . . . . . . . . . . . . . . . . . . . . . . 19\r
+     3.3   Example DNSSEC Responses . . . . . . . . . . . . . . . . . 19\r
+   4.  Resolving  . . . . . . . . . . . . . . . . . . . . . . . . . . 20\r
+     4.1   EDNS Support . . . . . . . . . . . . . . . . . . . . . . . 20\r
+     4.2   Signature Verification Support . . . . . . . . . . . . . . 20\r
+     4.3   Determining Security Status of Data  . . . . . . . . . . . 21\r
+     4.4   Configured Trust Anchors . . . . . . . . . . . . . . . . . 21\r
+     4.5   Response Caching . . . . . . . . . . . . . . . . . . . . . 22\r
+     4.6   Handling of the CD and AD bits . . . . . . . . . . . . . . 22\r
+     4.7   Caching BAD Data . . . . . . . . . . . . . . . . . . . . . 22\r
+     4.8   Synthesized CNAMEs . . . . . . . . . . . . . . . . . . . . 23\r
+     4.9   Stub resolvers . . . . . . . . . . . . . . . . . . . . . . 23\r
+       4.9.1   Handling of the DO Bit . . . . . . . . . . . . . . . . 24\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 2]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+       4.9.2   Handling of the CD Bit . . . . . . . . . . . . . . . . 24\r
+       4.9.3   Handling of the AD Bit . . . . . . . . . . . . . . . . 24\r
+   5.  Authenticating DNS Responses . . . . . . . . . . . . . . . . . 25\r
+     5.1   Special Considerations for Islands of Security . . . . . . 26\r
+     5.2   Authenticating Referrals . . . . . . . . . . . . . . . . . 26\r
+     5.3   Authenticating an RRset Using an RRSIG RR  . . . . . . . . 27\r
+       5.3.1   Checking the RRSIG RR Validity . . . . . . . . . . . . 28\r
+       5.3.2   Reconstructing the Signed Data . . . . . . . . . . . . 28\r
+       5.3.3   Checking the Signature . . . . . . . . . . . . . . . . 30\r
+       5.3.4   Authenticating A Wildcard Expanded RRset Positive\r
+               Response . . . . . . . . . . . . . . . . . . . . . . . 31\r
+     5.4   Authenticated Denial of Existence  . . . . . . . . . . . . 31\r
+     5.5   Resolver Behavior When Signatures Do Not Validate  . . . . 32\r
+     5.6   Authentication Example . . . . . . . . . . . . . . . . . . 32\r
+   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 33\r
+   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 34\r
+   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 35\r
+   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 36\r
+   9.1   Normative References . . . . . . . . . . . . . . . . . . . . 36\r
+   9.2   Informative References . . . . . . . . . . . . . . . . . . . 36\r
+       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 37\r
+   A.  Signed Zone Example  . . . . . . . . . . . . . . . . . . . . . 39\r
+   B.  Example Responses  . . . . . . . . . . . . . . . . . . . . . . 45\r
+     B.1   Answer . . . . . . . . . . . . . . . . . . . . . . . . . . 45\r
+     B.2   Name Error . . . . . . . . . . . . . . . . . . . . . . . . 46\r
+     B.3   No Data Error  . . . . . . . . . . . . . . . . . . . . . . 47\r
+     B.4   Referral to Signed Zone  . . . . . . . . . . . . . . . . . 48\r
+     B.5   Referral to Unsigned Zone  . . . . . . . . . . . . . . . . 49\r
+     B.6   Wildcard Expansion . . . . . . . . . . . . . . . . . . . . 50\r
+     B.7   Wildcard No Data Error . . . . . . . . . . . . . . . . . . 51\r
+     B.8   DS Child Zone No Data Error  . . . . . . . . . . . . . . . 52\r
+   C.  Authentication Examples  . . . . . . . . . . . . . . . . . . . 54\r
+     C.1   Authenticating An Answer . . . . . . . . . . . . . . . . . 54\r
+       C.1.1   Authenticating the example DNSKEY RR . . . . . . . . . 54\r
+     C.2   Name Error . . . . . . . . . . . . . . . . . . . . . . . . 55\r
+     C.3   No Data Error  . . . . . . . . . . . . . . . . . . . . . . 55\r
+     C.4   Referral to Signed Zone  . . . . . . . . . . . . . . . . . 55\r
+     C.5   Referral to Unsigned Zone  . . . . . . . . . . . . . . . . 55\r
+     C.6   Wildcard Expansion . . . . . . . . . . . . . . . . . . . . 56\r
+     C.7   Wildcard No Data Error . . . . . . . . . . . . . . . . . . 56\r
+     C.8   DS Child Zone No Data Error  . . . . . . . . . . . . . . . 56\r
+       Intellectual Property and Copyright Statements . . . . . . . . 57\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 3]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+1.  Introduction\r
+\r
+   The DNS Security Extensions (DNSSEC) are a collection of new resource\r
+   records and protocol modifications which add data origin\r
+   authentication and data integrity to the DNS. This document defines\r
+   the DNSSEC protocol modifications. Section 2 of this document defines\r
+   the concept of a signed zone and lists the requirements for zone\r
+   signing. Section 3 describes the modifications to authoritative name\r
+   server behavior necessary to handle signed zones. Section 4 describes\r
+   the behavior of entities which include security-aware resolver\r
+   functions. Finally, Section 5 defines how to use DNSSEC RRs to\r
+   authenticate a response.\r
+\r
+1.1  Background and Related Documents\r
+\r
+   The reader is assumed to be familiar with the basic DNS concepts\r
+   described in [RFC1034] and [RFC1035].\r
+\r
+   This document is part of a family of documents that define DNSSEC.\r
+   An introduction to DNSSEC and definition of common terms can be found\r
+   in [I-D.ietf-dnsext-dnssec-intro].  A definition of the DNSSEC\r
+   resource records can be found in [I-D.ietf-dnsext-dnssec-records].\r
+\r
+1.2  Reserved Words\r
+\r
+   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",\r
+   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this\r
+   document are to be interpreted as described in RFC 2119. [RFC2119].\r
+\r
+1.3  Editors' Notes\r
+\r
+1.3.1  Open Technical Issues\r
+\r
+1.3.2  Technical Changes or Corrections\r
+\r
+   Please report technical corrections to dnssec-editors@east.isi.edu.\r
+   To assist the editors, please indicate the text in error and point\r
+   out the RFC that defines the correct behavior.  For a technical\r
+   change where no RFC that defines the correct behavior, or if there's\r
+   more than one applicable RFC and the definitions conflict, please\r
+   post the issue to namedroppers.\r
+\r
+   An example correction to dnssec-editors might be: Page X says\r
+   "DNSSEC RRs SHOULD be automatically returned in responses."  This was\r
+   true in RFC 2535, but RFC 3225 (Section 3, 3rd paragraph) says the\r
+   DNSSEC RR types MUST NOT be included in responses unless the resolver\r
+   indicated support for DNSSEC.\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 4]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+1.3.3  Typos and Minor Corrections\r
+\r
+   Please report any typos corrections to dnssec-editors@east.isi.edu.\r
+   To assist the editors, please provide enough context for us to find\r
+   the incorrect text quickly.\r
+\r
+   An example message to dnssec-editors might be: page X says "the\r
+   DNSSEC standard has been in development for over 1 years".   It\r
+   should read "over 10 years".\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 5]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+2.  Zone Signing\r
+\r
+   DNSSEC introduces the concept of signed zones.  A signed zone\r
+   includes DNSKEY, RRSIG, NSEC and (optionally) DS records according to\r
+   the rules specified in Section 2.1, Section 2.2, Section 2.3 and\r
+   Section 2.4, respectively.  A zone that does not include these\r
+   records according to the rules in this section is an unsigned zone.\r
+\r
+   DNSSEC requires a change to the definition of the CNAME resource\r
+   record [RFC1035].  Section 2.5 changes the CNAME RR to allow RRSIG\r
+   and NSEC RRs to appear at the same owner name as a CNAME RR.\r
+\r
+2.1  Including DNSKEY RRs in a Zone\r
+\r
+   To sign a zone, the zone's administrator generates one or more\r
+   public/private key pairs and uses the private key(s) to sign\r
+   authoritative RRsets in the zone.  For each private key used to\r
+   create RRSIG RRs, there SHOULD be a corresponding zone DNSKEY RR with\r
+   the public component stored in the zone. A zone key DNSKEY RR MUST\r
+   have the Zone Key bit of the flags RDATA field set to one -- see\r
+   Section 2.1.1 of [I-D.ietf-dnsext-dnssec-records].  Public keys\r
+   associated with other DNS operations MAY be stored in DNSKEY RRs that\r
+   are not marked as zone keys but MUST NOT be used to verify RRSIGs.\r
+\r
+   If the zone is delegated and does not wish to act as an island of\r
+   security, the zone MUST have at least one DNSKEY RR at the apex to\r
+   act as a secure entry point into the zone.  This DNSKEY would then be\r
+   used to generate a DS RR at the delegating parent (see\r
+   [I-D.ietf-dnsext-dnssec-records]).\r
+\r
+   DNSKEY RRs MUST NOT appear at delegation points.\r
+\r
+2.2  Including RRSIG RRs in a Zone\r
+\r
+   For each authoritative RRset in a signed zone, there MUST be at least\r
+   one RRSIG record that meets all of the following requirements:\r
+   o  The RRSIG owner name is equal to the RRset owner name;\r
+   o  The RRSIG class is equal to the RRset class;\r
+   o  The RRSIG Type Covered field is equal to the RRset type;\r
+   o  The RRSIG Original TTL field is equal to the TTL of the RRset;\r
+   o  The RRSIG RR's TTL is equal to the TTL of the RRset;\r
+   o  The RRSIG Labels field is equal to the number of labels in the\r
+      RRset owner name, not counting the null root label and not\r
+      counting the leftmost label if it is a wildcard;\r
+   o  The RRSIG Signer's Name field is equal to the name of the zone\r
+      containing the RRset; and\r
+   o  The RRSIG Algorithm, Signer's Name, and Key Tag fields identify a\r
+      zone key DNSKEY record at the zone apex.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 6]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   The process for constructing the RRSIG RR for a given RRset is\r
+   described in [I-D.ietf-dnsext-dnssec-records]. An RRset MAY have\r
+   multiple RRSIG RRs associated with it.\r
+\r
+   An RRSIG RR itself MUST NOT be signed, since signing an RRSIG RR\r
+   would add no value and would create an infinite loop in the signing\r
+   process.\r
+\r
+   The NS RRset that appears at the zone apex name MUST be signed, but\r
+   the NS RRsets that appear at delegation points (that is, the NS\r
+   RRsets in the parent zone that delegate the name to the child zone's\r
+   name servers) MUST NOT be signed. Glue address RRsets associated with\r
+   delegations MUST NOT be signed.\r
+\r
+   There MUST be an RRSIG for each RRset using at least one DNSKEY of\r
+   each algorithm in the zone apex DNSKEY RRset. The apex DNSKEY RRset\r
+   itself MUST be signed by each algorithm appearing in the DS RRset\r
+   located at the delegating parent (if any).\r
+\r
+2.3  Including NSEC RRs in a Zone\r
+\r
+   Each owner name in the zone which has authoritative data or a\r
+   delegation point NS RRset MUST have an NSEC resource record. The\r
+   process for constructing the NSEC RR for a given name is described in\r
+   [I-D.ietf-dnsext-dnssec-records].\r
+\r
+   The TTL value for any NSEC RR SHOULD be the same as the minimum TTL\r
+   value field in the zone SOA RR.\r
+\r
+   An NSEC record (and its associated RRSIG RRset) MUST NOT be the only\r
+   RRset at any particular owner name.  That is, the signing process\r
+   MUST NOT create NSEC or RRSIG RRs for owner names nodes which were\r
+   not the owner name of any RRset before the zone was signed.  The main\r
+   reasons for this are a desire for namespace consistency between\r
+   signed and unsigned versions of the same zone and a desire to reduce\r
+   the risk of response inconsistency in security oblivious recursive\r
+   name servers.\r
+\r
+   The type bitmap of every NSEC resource record in a signed zone MUST\r
+   indicate the presence of both the NSEC record itself and its\r
+   corresponding RRSIG record.\r
+\r
+   The difference between the set of owner names that require RRSIG\r
+   records and the set of owner names that require NSEC records is\r
+   subtle and worth highlighting.  RRSIG records are present at the\r
+   owner names of all authoritative RRsets.  NSEC records are present at\r
+   the owner names of all names for which the signed zone is\r
+   authoritative and also at the owner names of delegations from the\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 7]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   signed zone to its children.  Neither NSEC nor RRSIG records are\r
+   present (in the parent zone) at the owner names of glue address\r
+   RRsets.  Note, however, that this distinction is for the most part is\r
+   only visible during the zone signing process, because NSEC RRsets are\r
+   authoritative data, and are therefore signed, thus any owner name\r
+   which has an NSEC RRset will have RRSIG RRs as well in the signed\r
+   zone.\r
+\r
+   The bitmap for the NSEC RR at a delegation point requires special\r
+   attention.  Bits corresponding to the delegation NS RRset and the RR\r
+   types for which the parent zone has authoritative data MUST be set to\r
+   1; bits corresponding to any non-NS RRset for which the parent is not\r
+   authoritative MUST be set to 0.\r
+\r
+2.4  Including DS RRs in a Zone\r
+\r
+   The DS resource record establishes authentication chains between DNS\r
+   zones.  A DS RRset SHOULD be present at a delegation point when the\r
+   child zone is signed.  The DS RRset MAY contain multiple records,\r
+   each referencing a public key in the child zone used to verify the\r
+   RRSIGs in that zone. All DS RRsets in a zone MUST be signed and DS\r
+   RRsets MUST NOT appear at a zone's apex.\r
+\r
+   A DS RR SHOULD point to a DNSKEY RR which is present in the child's\r
+   apex DNSKEY RRset, and the child's apex DNSKEY RRset SHOULD be signed\r
+   by the corresponding private key.\r
+\r
+   The TTL of a DS RRset SHOULD match the TTL of the delegating NS RRset\r
+   (i.e., the NS RRset from the same zone containing the DS RRset).\r
+\r
+   Construction of a DS RR requires knowledge of the corresponding\r
+   DNSKEY RR in the child zone, which implies communication between the\r
+   child and parent zones.  This communication is an operational matter\r
+   not covered by this document.\r
+\r
+2.5  Changes to the CNAME Resource Record.\r
+\r
+   If a CNAME RRset is present at a name in a signed zone, appropriate\r
+   RRSIG and NSEC RRsets are REQUIRED at that name. A KEY RRset at that\r
+   name for secure dynamic update purposes is also allowed.  Other types\r
+   MUST NOT be present at that name.\r
+\r
+   This is a modification to the original CNAME definition given in\r
+   [RFC1034].  The original definition of the CNAME RR did not allow any\r
+   other types to coexist with a CNAME record, but a signed zone\r
+   requires NSEC and RRSIG RRs for every authoritative name.  To resolve\r
+   this conflict, this specification modifies the definition of the\r
+   CNAME resource record to allow it to coexist with NSEC and RRSIG RRs.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 8]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+2.6  Example of a Secure Zone\r
+\r
+   Appendix A shows a complete example of a small signed zone.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 9]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+3.  Serving\r
+\r
+   This section describes the behavior of entities that include\r
+   security-aware name server functions.  In many cases such functions\r
+   will be part of a security-aware recursive name server, but a\r
+   security-aware authoritative name server has some of the same\r
+   requirements.  Functions specific to security-aware recursive name\r
+   servers are described in Section 3.2; functions specific to\r
+   authoritative servers are described in Section 3.1.\r
+\r
+   The terms "SNAME", "SCLASS", and "STYPE" in the following discussion\r
+   are as used in [RFC1034].\r
+\r
+   A security-aware name server MUST support the EDNS0 [RFC2671] message\r
+   size extension, MUST support a message size of at least 1220 octets,\r
+   and SHOULD support a message size of 4000 octets [RFC3226].\r
+\r
+   A security-aware name server that receives a DNS query that does not\r
+   include the EDNS OPT pseudo-RR or that has the DO bit set to zero\r
+   MUST treat the RRSIG, DNSKEY, and NSEC RRs as it would any other\r
+   RRset, and MUST NOT perform any of the additional processing\r
+   described below.  Since the DS RR type has the peculiar property of\r
+   only existing in the parent zone at delegation points, DS RRs always\r
+   require some special processing, as described in Section 3.1.4.1.\r
+\r
+   Security aware name servers that receive queries for security RR\r
+   types which match the content of more than one zone that it serves\r
+   (e.g. NSEC and RRSIG RRs above and below a delegation point where the\r
+   server is authoritative for both zones) are encouraged to behave\r
+   self-consistently.  The name server MAY return one of the following:\r
+   o  The above-delegation RRsets\r
+   o  The below-delegation RRsets\r
+   o  Both above and below-delegation RRsets\r
+   o  Empty answer section (i.e. no records)\r
+   o  Some other response\r
+   o  An error\r
+   As long as the response is always consistent for each query to the\r
+   name server.\r
+\r
+   DNSSEC allocates two new bits in the DNS message header: the CD\r
+   (Checking Disabled) bit and the AD (Authentic Data) bit.  The CD bit\r
+   is controlled by resolvers; a security-aware name server MUST copy\r
+   the CD bit from a query into the corresponding response.  The AD bit\r
+   is controlled by name servers; a security-aware name server MUST\r
+   ignore the setting of the AD bit in queries.  See Section 3.1.6,\r
+   Section 3.2.2, Section 3.2.3, Section 4, and Section 4.9 for details\r
+   on the behavior of these bits.\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 10]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   A security aware name server which synthesizes CNAME RRs from DNAME\r
+   RRs as described in [RFC2672] SHOULD NOT generate signatures for the\r
+   synthesized CNAME RRs.\r
+\r
+3.1  Authoritative Name Servers\r
+\r
+   Upon receiving a relevant query that has the EDNS [RFC2671] OPT\r
+   pseudo-RR DO bit [RFC3225] set to one, a security-aware authoritative\r
+   name server for a signed zone MUST include additional RRSIG, NSEC,\r
+   and DS RRs according to the following rules:\r
+   o  RRSIG RRs that can be used to authenticate a response MUST be\r
+      included in the response according to the rules in Section 3.1.1;\r
+   o  NSEC RRs that can be used to provide authenticated denial of\r
+      existence MUST be included in the response automatically according\r
+      to the rules in Section 3.1.3;\r
+   o  Either a DS RRset or an NSEC RR proving that no DS RRs exist MUST\r
+      be included in referrals automatically according to the rules in\r
+      Section 3.1.4.\r
+\r
+   DNSSEC does not change the DNS zone transfer protocol.  Section 3.1.5\r
+   discusses zone transfer requirements.\r
+\r
+3.1.1  Including RRSIG RRs in a Response\r
+\r
+   When responding to a query that has the DO bit set to one, a\r
+   security-aware authoritative name server SHOULD attempt to send RRSIG\r
+   RRs that a security-aware resolver can use to authenticate the RRsets\r
+   in the response.  A name server SHOULD make every attempt to keep the\r
+   RRset and its associated RRSIG(s) together in a response.  Inclusion\r
+   of RRSIG RRs in a response is subject to the following rules:\r
+   o  When placing a signed RRset in the Answer section, the name server\r
+      MUST also place its RRSIG RRs in the Answer section.  The RRSIG\r
+      RRs have a higher priority for inclusion than any other RRsets\r
+      that may need to be included.  If space does not permit inclusion\r
+      of these RRSIG RRs, the name server MUST set the TC bit.\r
+   o  When placing a signed RRset in the Authority section, the name\r
+      server MUST also place its RRSIG RRs in the Authority section.\r
+      The RRSIG RRs have a higher priority for inclusion than any other\r
+      RRsets that may need to be included.  If space does not permit\r
+      inclusion of these RRSIG RRs, the name server MUST set the TC bit.\r
+   o  When placing a signed RRset in the Additional section, the name\r
+      server MUST also place its RRSIG RRs in the Additional section.\r
+      If space does not permit inclusion of both the RRset and its\r
+      associated RRSIG RRs, the name server MAY drop the RRSIG RRs.  If\r
+      this happens, the name server MUST NOT set the TC bit solely\r
+      because these RRSIG RRs didn't fit.\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 11]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+3.1.2  Including DNSKEY RRs In a Response\r
+\r
+   When responding to a query that has the DO bit set to one and that\r
+   requests the SOA or NS RRs at the apex of a signed zone, a\r
+   security-aware authoritative name server for that zone MAY return the\r
+   zone apex DNSKEY RRset in the Additional section.  In this situation,\r
+   the DNSKEY RRset and associated RRSIG RRs have lower priority than\r
+   any other information that would be placed in the additional section.\r
+   The name server SHOULD NOT include the DNSKEY RRset unless there is\r
+   enough space in the response message for both the DNSKEY RRset and\r
+   its associated RRSIG RR(s). If there is not enough space to include\r
+   these DNSKEY and RRSIG RRs, the name server MUST omit them and MUST\r
+   NOT set the TC bit solely because these RRs didn't fit (see Section\r
+   3.1.1).\r
+\r
+3.1.3  Including NSEC RRs In a Response\r
+\r
+   When responding to a query that has the DO bit set to one, a\r
+   security-aware authoritative name server for a signed zone MUST\r
+   include NSEC RRs in each of the following cases:\r
+\r
+   No Data: The zone contains RRsets that exactly match <SNAME, SCLASS>,\r
+      but does not contain any RRsets that exactly match <SNAME, SCLASS,\r
+      STYPE>.\r
+\r
+   Name Error: The zone does not contain any RRsets that match <SNAME,\r
+      SCLASS> either exactly or via wildcard name expansion.\r
+\r
+   Wildcard Answer: The zone does not contain any RRsets that exactly\r
+      match <SNAME, SCLASS> but does contain an RRset that matches\r
+      <SNAME, SCLASS, STYPE> via wildcard name expansion.\r
+\r
+   Wildcard No Data: The zone does not contain any RRsets that exactly\r
+      match <SNAME, SCLASS>, does contain one or more RRsets that match\r
+      <SNAME, SCLASS> via wildcard name expansion, but does not contain\r
+      any RRsets that match <SNAME, SCLASS, STYPE> via wildcard name\r
+      expansion.\r
+\r
+   In each of these cases, the name server includes NSEC RRs in the\r
+   response to prove that an exact match for <SNAME, SCLASS, STYPE> was\r
+   not present in the zone and that the response that the name server is\r
+   returning is correct given the data that are in the zone.\r
+\r
+3.1.3.1  Including NSEC RRs: No Data Response\r
+\r
+   If the zone contains RRsets matching <SNAME, SCLASS> but contains no\r
+   RRset matching <SNAME, SCLASS, STYPE>, then the name server MUST\r
+   include the NSEC RR for <SNAME, SCLASS> along with its associated\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 12]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   RRSIG RR(s) in the Authority section of the response (see Section\r
+   3.1.1).  If space does not permit inclusion of the NSEC RR or its\r
+   associated RRSIG RR(s), the name server MUST set the TC bit (see\r
+   Section 3.1.1).\r
+\r
+   Since the search name exists, wildcard name expansion does not apply\r
+   to this query, and a single signed NSEC RR suffices to prove the\r
+   requested RR type does not exist.\r
+\r
+3.1.3.2  Including NSEC RRs: Name Error Response\r
+\r
+   If the zone does not contain any RRsets matching <SNAME, SCLASS>\r
+   either exactly or via wildcard name expansion, then the name server\r
+   MUST include the following NSEC RRs in the Authority section, along\r
+   with their associated RRSIG RRs:\r
+   o  An NSEC RR proving that there is no exact match for <SNAME,\r
+      SCLASS>; and\r
+   o  An NSEC RR proving that the zone contains no RRsets that would\r
+      match <SNAME, SCLASS> via wildcard name expansion.\r
+\r
+   In some cases a single NSEC RR may prove both of these points, in\r
+   that case the name server SHOULD only include the NSEC RR and its\r
+   RRSIG RR(s) once in the Authority section.\r
+\r
+   If space does not permit inclusion of these NSEC and RRSIG RRs, the\r
+   name server MUST set the TC bit (see Section 3.1.1).\r
+\r
+   The owner names of these NSEC and RRSIG RRs are not subject to\r
+   wildcard name expansion when these RRs are included in the Authority\r
+   section of the response.\r
+\r
+   Note that this form of response includes cases in which SNAME\r
+   corresponds to an empty non-terminal name within the zone (a name\r
+   which is not the owner name for any RRset but which is the parent\r
+   name of one or more RRsets).\r
+\r
+3.1.3.3  Including NSEC RRs: Wildcard Answer Response\r
+\r
+   If the zone does not contain any RRsets which exactly match <SNAME,\r
+   SCLASS> but does contain an RRset which matches <SNAME, SCLASS,\r
+   STYPE> via wildcard name expansion, the name server MUST include the\r
+   wildcard-expanded answer and the corresponding wildcard-expanded\r
+   RRSIG RRs in the Answer section, and MUST include in the Authority\r
+   section an NSEC RR and associated RRSIG RR(s) proving that the zone\r
+   does not contain a closer match for <SNAME, SCLASS>.  If space does\r
+   not permit inclusion of the answer, NSEC and RRSIG RRs, the name\r
+   server MUST set the TC bit (see Section 3.1.1).\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 13]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+3.1.3.4  Including NSEC RRs: Wildcard No Data Response\r
+\r
+   This case is a combination of the previous cases.  The zone does not\r
+   contain an exact match for <SNAME, SCLASS>, and while the zone does\r
+   contain RRsets which match <SNAME, SCLASS> via wildcard expansion,\r
+   none of those RRsets match STYPE.  The name server MUST include the\r
+   following NSEC RRs in the Authority section, along with their\r
+   associated RRSIG RRs:\r
+   o  An NSEC RR proving that there are no RRsets matching STYPE at the\r
+      wildcard owner name which matched <SNAME, SCLASS> via wildcard\r
+      expansion; and\r
+   o  An NSEC RR proving that there are no RRsets in the zone which\r
+      would have been a closer match for <SNAME, SCLASS>.\r
+\r
+   In some cases a single NSEC RR may prove both of these points, in\r
+   which case the name server SHOULD only include the NSEC RR and its\r
+   RRSIG RR(s) once in the Authority section.\r
+\r
+   The owner names of these NSEC and RRSIG RRs are not subject to\r
+   wildcard name expansion when these RRs are included in the Authority\r
+   section of the response.\r
+\r
+   If space does not permit inclusion of these NSEC and RRSIG RRs, the\r
+   name server MUST set the TC bit (see Section 3.1.1).\r
+\r
+3.1.3.5  Finding The Right NSEC RRs\r
+\r
+   As explained above, there are several situations in which a\r
+   security-aware authoritative name server needs to locate an NSEC RR\r
+   which proves that no RRsets matching a particular SNAME exist.\r
+   Locating such an NSEC RR within an authoritative zone is relatively\r
+   simple, at least in concept.  The following discussion assumes that\r
+   the name server is authoritative for the zone which would have held\r
+   the nonexistent RRsets matching SNAME.  The algorithm below is\r
+   written for clarity, not efficiency.\r
+\r
+   To find the NSEC which proves that no RRsets matching name N exist in\r
+   the zone Z which would have held them, construct sequence S\r
+   consisting of the owner names of every RRset in Z, sorted into\r
+   canonical order [I-D.ietf-dnsext-dnssec-records], with no duplicate\r
+   names.  Find the name M which would have immediately preceded N in S\r
+   if any RRsets with owner name N had existed.  M is the owner name of\r
+   the NSEC RR which proves that no RRsets exist with owner name N.\r
+\r
+   The algorithm for finding the NSEC RR which proves that a given name\r
+   is not covered by any applicable wildcard is similar, but requires an\r
+   extra step.  More precisely, the algorithm for finding the NSEC\r
+   proving that no RRsets exist with the applicable wildcard name is\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 14]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   precisely the same as the algorithm for finding the NSEC RR which\r
+   proves that RRsets with any other owner name do not exist: the part\r
+   that's missing is how to determine the name of the nonexistent\r
+   applicable wildcard.  In practice, this is easy, because the\r
+   authoritative name server has already checked for the presence of\r
+   precisely this wildcard name as part of step (1)(c) of the normal\r
+   lookup algorithm described in Section 4.3.2 of [RFC1034].\r
+\r
+3.1.4  Including DS RRs In a Response\r
+\r
+   When responding to a query which has the DO bit set to one, a\r
+   security-aware authoritative name server returning a referral\r
+   includes DNSSEC data along with the NS RRset.\r
+\r
+   If a DS RRset is present at the delegation point, the name server\r
+   MUST return both the DS RRset and its associated RRSIG RR(s) in the\r
+   Authority section along with the NS RRset.  The name server MUST\r
+   place the NS RRset before the DS RRset and its associated RRSIG\r
+   RR(s).\r
+\r
+   If no DS RRset is present at the delegation point, the name server\r
+   MUST return both the NSEC RR which proves that the DS RRset is not\r
+   present and the NSEC RR's associated RRSIG RR(s) along with the NS\r
+   RRset.  The name server MUST place the NS RRset before the NSEC RRset\r
+   and its associated RRSIG RR(s).\r
+\r
+   Including these DS, NSEC, and RRSIG RRs increases the size of\r
+   referral messages, and may cause some or all glue RRs to be omitted.\r
+   If space does not permit inclusion of the DS or NSEC RRset and\r
+   associated RRSIG RRs, the name server MUST set the TC bit (see\r
+   Section 3.1.1).\r
+\r
+3.1.4.1  Responding to Queries for DS RRs\r
+\r
+   The DS resource record type is unusual in that it appears only on the\r
+   parent zone's side of a zone cut.  For example, the DS RRset for the\r
+   delegation of "foo.example" is stored in the "example" zone rather\r
+   than in the "foo.example" zone.  This requires special processing\r
+   rules for both name servers and resolvers, since the name server for\r
+   the child zone is authoritative for the name at the zone cut by the\r
+   normal DNS rules but the child zone does not contain the DS RRset.\r
+\r
+   A security-aware resolver sends queries to the parent zone when\r
+   looking for a needed DS RR at a delegation point (see Section 4.2).\r
+   However, special rules are necessary to avoid confusing\r
+   security-oblivious resolvers which might become involved in\r
+   processing such a query (for example, in a network configuration that\r
+   forces a security-aware resolver to channel its queries through a\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 15]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   security-oblivious recursive name server).  The rest of this section\r
+   describes how a security-aware name server processes DS queries in\r
+   order to avoid this problem.\r
+\r
+   The need for special processing by a security-aware name server only\r
+   arises when all the following conditions are met:\r
+   o  the name server has received a query for the DS RRset at a zone\r
+      cut; and\r
+   o  the name server is authoritative for the child zone; and\r
+   o  the name server is not authoritative for the parent zone; and\r
+   o  the name server does not offer recursion.\r
+\r
+   In all other cases, the name server either has some way of obtaining\r
+   the DS RRset or could not have been expected to have the DS RRset\r
+   even by the pre-DNSSEC processing rules, so the name server can\r
+   return either the DS RRset or an error response according to the\r
+   normal processing rules.\r
+\r
+   If all of the above conditions are met, however, the name server is\r
+   authoritative for SNAME but cannot supply the requested RRset.  In\r
+   this case, the name server MUST return an authoritative "no data"\r
+   response showing that the DS RRset does not exist in the child zone's\r
+   apex.  See Appendix B.8 for an example of such a response.\r
+\r
+3.1.5  Responding to Queries for Type AXFR or IXFR\r
+\r
+   DNSSEC does not change the DNS zone transfer process.  A signed zone\r
+   will contain RRSIG, DNSKEY, NSEC, and DS resource records, but these\r
+   records have no special meaning with respect to a zone transfer\r
+   operation.\r
+\r
+   An authoritative name server is not required to verify that a zone is\r
+   properly signed before sending or accepting a zone transfer.\r
+   However, an authoritative name server MAY choose to reject the entire\r
+   zone transfer if the zone fails meets any of the signing requirements\r
+   described in Section 2.  The primary objective of a zone transfer is\r
+   to ensure that all authoritative name servers have identical copies\r
+   of the zone.  An authoritative name server that chooses to perform\r
+   its own zone validation MUST NOT selectively reject some RRs and\r
+   accept others.\r
+\r
+   DS RRsets appear only on the parental side of a zone cut and are\r
+   authoritative data in the parent zone.  As with any other\r
+   authoritative RRset, the DS RRset MUST be included in zone transfers\r
+   of the zone in which the RRset is authoritative data: in the case of\r
+   the DS RRset, this is the parent zone.\r
+\r
+   NSEC RRs appear in both the parent and child zones at a zone cut, and\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 16]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   are authoritative data in both the parent and child zones.  The\r
+   parental and child NSEC RRs at a zone cut are never identical to each\r
+   other, since the NSEC RR in the child zone's apex will always\r
+   indicate the presence of the child zone's SOA RR while the parental\r
+   NSEC RR at the zone cut will never indicate the presence of an SOA\r
+   RR.  As with any other authoritative RRs, NSEC RRs MUST be included\r
+   in zone transfers of the zone in which they are authoritative data:\r
+   the parental NSEC RR at a zone cut MUST be included zone transfers of\r
+   the parent zone, while the NSEC at the zone apex of the child zone\r
+   MUST be included in zone transfers of the child zone.\r
+\r
+   RRSIG RRs appear in both the parent and child zones at a zone cut,\r
+   and are authoritative in whichever zone contains the authoritative\r
+   RRset for which the RRSIG RR provides the signature.  That is, the\r
+   RRSIG RR for a DS RRset or a parental NSEC RR at a zone cut will be\r
+   authoritative in the parent zone, while the RRSIG for any RRset in\r
+   the child zone's apex will be authoritative in the child zone. As\r
+   with any other authoritative RRs, RRSIG RRs MUST be included in zone\r
+   transfers of the zone in which they are authoritative data.\r
+\r
+3.1.6  The AD and CD Bits in an Authoritative Response\r
+\r
+   The CD and AD bits are designed for use in communication between\r
+   security-aware resolvers and security-aware recursive name servers.\r
+   These bits are for the most part not relevant to query processing by\r
+   security-aware authoritative name servers.\r
+\r
+   A security-aware name server does not perform signature validation\r
+   for authoritative data during query processing even when the CD bit\r
+   is set to zero.  A security-aware name server SHOULD clear the CD bit\r
+   when composing an authoritative response.\r
+\r
+   A security-aware name server MUST NOT set the AD bit in a response\r
+   unless the name server considers all RRsets in the Answer and\r
+   Authority sections of the response to be authentic.  A security-aware\r
+   name server's local policy MAY consider data from an authoritative\r
+   zone to be authentic without further validation, but the name server\r
+   MUST NOT do so unless the name server obtained the authoritative zone\r
+   via secure means (such as a secure zone transfer mechanism), and MUST\r
+   NOT do so unless this behavior has been configured explicitly.\r
+\r
+   A security-aware name server which supports recursion MUST follow the\r
+   rules for the CD and AD bits given in Section 3.2 when generating a\r
+   response that involves data obtained via recursion.\r
+\r
+3.2  Recursive Name Servers\r
+\r
+   As explained in [I-D.ietf-dnsext-dnssec-intro], a security-aware\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 17]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   recursive name server is an entity which acts in both the\r
+   security-aware name server and security-aware resolver roles. This\r
+   section uses the terms "name server side" and "resolver side" to\r
+   refer to the code within a security-aware recursive name server which\r
+   implements the security-aware name server role and the code which\r
+   implements the security-aware resolver role, respectively.\r
+\r
+   The resolver side follows the usual rules for caching and negative\r
+   caching which would apply to any security-aware resolver.\r
+\r
+3.2.1  The DO bit\r
+\r
+   The resolver side of a security-aware recursive name server MUST set\r
+   the DO bit when sending requests, regardless of the state of the DO\r
+   bit in the initiating request received by the name server side.  If\r
+   the DO bit in an initiating query is not set, the name server side\r
+   MUST strip any authenticating DNSSEC RRs from the response, but MUST\r
+   NOT strip any DNSSEC RR types that the initiating query explicitly\r
+   requested.\r
+\r
+3.2.2  The CD bit\r
+\r
+   The CD bit exists in order to allow a security-aware resolver to\r
+   disable signature validation in a security-aware name server's\r
+   processing of a particular query.\r
+\r
+   The name server side MUST copy the setting of the CD bit from a query\r
+   to the corresponding response.\r
+\r
+   The name server side of a security-aware recursive name server MUST\r
+   pass the sense of the CD bit to the resolver side along with the rest\r
+   of an initiating query, so that the resolver side will know whether\r
+   or not it is required to verify the response data it returns to the\r
+   name server side. If the CD bit is set to one, it indicates that the\r
+   originating resolver is willing to perform whatever authentication\r
+   its local policy requires, thus the resolver side of the recursive\r
+   name server need not perform authentication on the RRsets in the\r
+   response.  When the CD bit is set to one the recursive name server\r
+   SHOULD, if possible, return the requested data to the originating\r
+   resolver even if the recursive name server's local authentication\r
+   policy would reject the records in question. That is, by setting the\r
+   CD bit, the originating resolver has indicated that it takes\r
+   responsibility for performing its own authentication, and the\r
+   recursive name server should not interfere.\r
+\r
+   If the resolver side implements a BAD cache (see Section 4.7) and the\r
+   name server side receives a query which matches an entry in the\r
+   resolver side's BAD cache, the name server side's response depends on\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 18]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   the sense of the CD bit in the original query.  If the CD bit is set,\r
+   the name server side SHOULD return the data from the BAD cache; if\r
+   the CD bit is not set, the name server side MUST return RCODE 2\r
+   (server failure).\r
+\r
+   The intent of the above rule is to provide the raw data to clients\r
+   which are capable of performing their own signature verification\r
+   checks while protecting clients which depend on the resolver side of\r
+   a security-aware recursive name server to perform such checks.\r
+   Several of the possible reasons why signature validation might fail\r
+   involve conditions which may not apply equally to the recursive name\r
+   server and the client which invoked it: for example, the recursive\r
+   name server's clock may be set incorrectly, or the client may have\r
+   knowledge of a relevant island of security which the recursive name\r
+   server does not share.  In such cases, "protecting" a client which is\r
+   capable of performing its own signature validation from ever seeing\r
+   the "bad" data does not help the client.\r
+\r
+3.2.3  The AD bit\r
+\r
+   The name server side of a security-aware recursive name server MUST\r
+   NOT set the AD bit in a response unless the name server considers all\r
+   RRsets in the Answer and Authority sections of the response to be\r
+   authentic.  The name server side SHOULD set the AD bit if and only if\r
+   the resolver side considers all RRsets in the Answer section and any\r
+   relevant negative response RRs in the Authority section to be\r
+   authentic.  The resolver side MUST follow the procedure described in\r
+   Section 5 to determine whether the RRs in question are authentic.\r
+   However, for backwards compatibility, a recursive name server MAY set\r
+   the AD bit when a response includes unsigned CNAME RRs if those CNAME\r
+   RRs demonstrably could have been synthesized from an authentic DNAME\r
+   RR which is also included in the response according to the synthesis\r
+   rules described in [RFC2672].\r
+\r
+3.3  Example DNSSEC Responses\r
+\r
+   See Appendix B for example response packets.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 19]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+4.  Resolving\r
+\r
+   This section describes the behavior of entities that include\r
+   security-aware resolver functions.  In many cases such functions will\r
+   be part of a security-aware recursive name server, but a stand-alone\r
+   security-aware resolver has many of the same requirements.  Functions\r
+   specific to security-aware recursive name servers are described in\r
+   Section 3.2.\r
+\r
+4.1  EDNS Support\r
+\r
+   A security-aware resolver MUST include an EDNS [RFC2671] OPT\r
+   pseudo-RR with the DO [RFC3225] bit set to one when sending queries.\r
+\r
+   A security-aware resolver MUST support a message size of at least\r
+   1220 octets, SHOULD support a message size of 4000 octets, and MUST\r
+   advertise the supported message size using the "sender's UDP payload\r
+   size" field in the EDNS OPT pseudo-RR. A security-aware resolver MUST\r
+   handle fragmented UDP packets correctly regardless of whether any\r
+   such fragmented packets were received via IPv4 or IPv6.  Please see\r
+   [RFC3226] for discussion of these requirements.\r
+\r
+4.2  Signature Verification Support\r
+\r
+   A security-aware resolver MUST support the signature verification\r
+   mechanisms described in Section 5, and MUST apply them to every\r
+   received response except when:\r
+   o  The security-aware resolver is part of a security-aware recursive\r
+      name server, and the response is the result of recursion on behalf\r
+      of a query received with the CD bit set;\r
+   o  The response is the result of a query generated directly via some\r
+      form of application interface which instructed the security-aware\r
+      resolver not to perform validation for this query; or\r
+   o  Validation for this query has been disabled by local policy.\r
+\r
+   A security-aware resolver's support for signature verification MUST\r
+   include support for verification of wildcard owner names.\r
+\r
+   Security aware resolvers MAY query for missing security RRs in an\r
+   attempt to perform validation; implementations that choose to do so\r
+   must be aware of the fact that the answers received may not be\r
+   sufficient to validate the original response.\r
+\r
+   When attempting to retrieve missing NSEC RRs which reside on the\r
+   parental side at a zone cut, a security-aware iterative-mode resolver\r
+   MUST query the name servers for the parent zone, not the child zone.\r
+\r
+   When attempting to retrieve a missing DS, a security-aware\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 20]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   iterative-mode resolver MUST query the name servers for the parent\r
+   zone, not the child zone.  As explained in Section 3.1.4.1,\r
+   security-aware name servers need to apply special processing rules to\r
+   handle the DS RR, and in some situations the resolver may also need\r
+   to apply special rules to locate the name servers for the parent zone\r
+   if the resolver does not already have the parent's NS RRset.  To\r
+   locate the parent NS RRset, the resolver can start with the\r
+   delegation name, strip off the leftmost label, and query for an NS\r
+   RRset by that name; if no NS RRset is present at that name, the\r
+   resolver then strips of the leftmost remaining label and retries the\r
+   query for that name, repeating this process of walking up the tree\r
+   until it either finds the NS RRset or runs out of labels.\r
+\r
+4.3  Determining Security Status of Data\r
+\r
+   A security-aware resolver MUST be able to determine whether or not it\r
+   should expect a particular RRset to be signed.  More precisely, a\r
+   security-aware resolver must be able to distinguish between four\r
+   cases:\r
+\r
+   Secure: An RRset for which the resolver is able to build a chain of\r
+      signed DNSKEY and DS RRs from a trusted security anchor to the\r
+      RRset.  In this case, the RRset should be signed, and is subject\r
+      to signature validation as described above.\r
+\r
+   Insecure: An RRset for which the resolver knows that it has no chain\r
+      of signed DNSKEY and DS RRs from any trusted starting point to the\r
+      RRset.  This can occur when the target RRset lies in an unsigned\r
+      zone or in a descendent of an unsigned zone.  In this case, the\r
+      RRset may or may not be signed, but the resolver will not be able\r
+      to verify the signature.\r
+\r
+   Bogus: An RRset for which the resolver believes that it ought to be\r
+      able to establish a chain of trust but is unable to do so, either\r
+      due to signatures that for some reason fail to validate or due to\r
+      missing data which the relevant DNSSEC RRs indicate should be\r
+      present.  This case may indicate an attack, but may also indicate\r
+      a configuration error or some form of data corruption.\r
+\r
+   Indeterminate: An RRset for which the resolver is not able to\r
+      determine whether or not the RRset should be signed, because the\r
+      resolver is not able to obtain the necessary DNSSEC RRs. This can\r
+      occur when the security-aware resolver is not able to contact\r
+      security-aware name servers for the relevant zones.\r
+\r
+4.4  Configured Trust Anchors\r
+\r
+   A security-aware resolver MUST be capable of being configured with at\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 21]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   least one trusted public key or DS RR, and SHOULD be capable of being\r
+   configured with multiple trusted public keys or DS RRs.  Since a\r
+   security-aware resolver will not be able to validate signatures\r
+   without such a configured trust anchor, the resolver SHOULD have some\r
+   reasonably robust mechanism for obtaining such keys when it boots;\r
+   examples of such a mechanism would be some form of non-volatile\r
+   storage (such as a disk drive) or some form of trusted local network\r
+   configuration mechanism.\r
+\r
+   Note that trust anchors also covers key material that is updated in a\r
+   secure manner.  This secure manner could be through physical media, a\r
+   key exchange protocol, or some other out of band means.\r
+\r
+4.5  Response Caching\r
+\r
+   A security-aware resolver SHOULD cache each response as a single\r
+   atomic entry containing the entire answer, including the named RRset\r
+   and any associated DNSSEC RRs.  The resolver SHOULD discard the\r
+   entire atomic entry when any of the RRs contained in it expire.  In\r
+   most cases the appropriate cache index for the atomic entry will be\r
+   the triple <QNAME, QTYPE, QCLASS>, but in cases such as the response\r
+   form described in Section 3.1.3.2 the appropriate cache index will be\r
+   the double <QNAME,QCLASS>.\r
+\r
+4.6  Handling of the CD and AD bits\r
+\r
+   A security-aware resolver MAY set the CD bit in a query to one in\r
+   order to indicate that the resolver takes responsibility for\r
+   performing whatever authentication its local policy requires on the\r
+   RRsets in the response.  See Section 3.2 for the effect this bit has\r
+   on the behavior of security-aware recursive name servers.\r
+\r
+   A security-aware resolver MUST zero the AD bit when composing query\r
+   messages to protect against buggy name servers which blindly copy\r
+   header bits which they do not understand from the query message to\r
+   the response message.\r
+\r
+   A resolver MUST disregard the meaning of the CD and AD bits in a\r
+   response unless the response was obtained using a secure channel or\r
+   the resolver was specifically configured to regard the message header\r
+   bits without using a secure channel.\r
+\r
+4.7  Caching BAD Data\r
+\r
+   While many validation errors will be transient, some are likely to be\r
+   more persistent, such as those caused by administrative error\r
+   (failure to re-sign a zone, clock skew, and so forth).  Since\r
+   requerying will not help in these cases, validating resolvers might\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 22]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   generate a significant amount of unnecessary DNS traffic as a result\r
+   of repeated queries for RRsets with persistent validation failures.\r
+\r
+   To prevent such unnecessary DNS traffic, security-aware resolvers MAY\r
+   cache data with invalid signatures, with some restrictions.\r
+   Conceptually, caching such data is similar to negative caching\r
+   [RFC2308], except that instead of caching a valid negative response,\r
+   the resolver is caching the fact that a particular answer failed to\r
+   validate.  This document refers to a cache of data with invalid\r
+   signatures as a "BAD cache".\r
+\r
+   Resolvers which implement a BAD cache MUST take steps to prevent the\r
+   cache from being useful as a denial-of-service attack amplifier.  In\r
+   particular:\r
+   o  Since RRsets which fail to validate do not have trustworthy TTLs,\r
+      the implementation MUST assign a TTL.  This TTL SHOULD be small,\r
+      in order to mitigate the effect of caching the results of an\r
+      attack.\r
+   o  In order to prevent caching of a transient validation failure\r
+      (which might be the result of an attack), resolvers SHOULD track\r
+      queries that result in validation failures, and SHOULD only answer\r
+      from the BAD cache after the number of times that responses to\r
+      queries for that particular <QNAME, QTYPE, QCLASS> have failed to\r
+      validate exceeds a threshold value.\r
+\r
+   Resolvers MUST NOT return RRsets from the BAD cache unless the\r
+   resolver is not required to validate the signatures of the RRsets in\r
+   question under the rules given in Section 4.2 of this document.  See\r
+   Section 3.2.2 for discussion of how the responses returned by a\r
+   security-aware recursive name server interact with a BAD cache.\r
+\r
+4.8  Synthesized CNAMEs\r
+\r
+   A validating security-aware resolver MUST treat the signature of a\r
+   valid signed DNAME RR as also covering unsigned CNAME RRs which could\r
+   have been synthesized from the DNAME RR as described in [RFC2672], at\r
+   least to the extent of not rejecting a response message solely\r
+   because it contains such CNAME RRs.  The resolver MAY retain such\r
+   CNAME RRs in its cache or in the answers it hands back, but is not\r
+   required to do so.\r
+\r
+4.9  Stub resolvers\r
+\r
+   A security-aware stub resolver MUST support the DNSSEC RR types, at\r
+   least to the extent of not mishandling responses just because they\r
+   contain DNSSEC RRs.\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 23]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+4.9.1  Handling of the DO Bit\r
+\r
+   A non-validating security-aware stub resolver MAY include the DNSSEC\r
+   RRs returned by a security-aware recursive name server as part of the\r
+   data that the stub resolver hands back to the application which\r
+   invoked it but is not required to do so.  A non-validating stub\r
+   resolver that wishes to do this will need to set the DO bit in\r
+   receive DNSSEC RRs from the recursive name server.\r
+\r
+   A validating security-aware stub resolver MUST set the DO bit, since\r
+   otherwise it will not receive the DNSSEC RRs it needs to perform\r
+   signature validation.\r
+\r
+4.9.2  Handling of the CD Bit\r
+\r
+   A non-validating security-aware stub resolver SHOULD NOT set the CD\r
+   bit when sending queries unless requested by the application layer,\r
+   since by definition, a non-validating stub resolver depends on the\r
+   security-aware recursive name server to perform validation on its\r
+   behalf.\r
+\r
+   A validating security-aware stub resolver SHOULD set the CD bit,\r
+   since otherwise the security-aware recursive name server will answer\r
+   the query using the name server's local policy, which may prevent the\r
+   stub resolver from receiving data which would be acceptable to the\r
+   stub resolver's local policy.\r
+\r
+4.9.3  Handling of the AD Bit\r
+\r
+   A non-validating security-aware stub resolver MAY chose to examine\r
+   the setting of the AD bit in response messages that it receives in\r
+   order to determine whether the security-aware recursive name server\r
+   which sent the response claims to have cryptographically verified the\r
+   data in the Answer and Authority sections of the response message.\r
+   Note, however, that the responses received by a security-aware stub\r
+   resolver are heavily dependent on the local policy of the\r
+   security-aware recursive name server, so as a practical matter there\r
+   may be little practical value to checking the status of the AD bit\r
+   except perhaps as a debugging aid.  In any case, a security-aware\r
+   stub resolver MUST NOT place any reliance on signature validation\r
+   allegedly performed on its behalf except when the security-aware stub\r
+   resolver obtained the data in question from a trusted security-aware\r
+   recursive name server via a secure channel.\r
+\r
+   A validating security-aware stub resolver SHOULD NOT examine the\r
+   setting of the AD bit in response messages, since, by definition, the\r
+   stub resolver performs its own signature validation regardless of the\r
+   setting of the AD bit.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 24]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+5.  Authenticating DNS Responses\r
+\r
+   In order to use DNSSEC RRs for authentication, a security-aware\r
+   resolver requires configured knowledge of at least one authenticated\r
+   DNSKEY or DS RR.  The process for obtaining and authenticating this\r
+   initial trust anchors is achieved via some external mechanism.  For\r
+   example, a resolver could use some off-line authenticated exchange to\r
+   obtain a zone's DNSKEY RR or obtain a DS RR that identifies and\r
+   authenticates a zone's DNSKEY RR.  The remainder of this section\r
+   assumes that the resolver has somehow obtained an initial set of\r
+   trust anchors.\r
+\r
+   An initial DNSKEY RR can be used to authenticate a zone's apex DNSKEY\r
+   RRset.  To authenticate an apex DNSKEY RRset using an initial key,\r
+   the resolver MUST:\r
+   1.  Verify that the initial DNSKEY RR appears in the apex DNSKEY\r
+       RRset, and verify that the DNSKEY RR MUST have the Zone Key Flag\r
+       (DNSKEY RDATA bit 7) set to one.\r
+   2.  Verify that there is some RRSIG RR that covers the apex DNSKEY\r
+       RRset, and that the combination of the RRSIG RR and the initial\r
+       DNSKEY RR authenticates the DNSKEY RRset.  The process for using\r
+       an RRSIG RR to authenticate an RRset is described in Section 5.3.\r
+\r
+   Once the resolver has authenticated the apex DNSKEY RRset using an\r
+   initial DNSKEY RR, delegations from that zone can be authenticated\r
+   using DS RRs.  This allows a resolver to start from an initial key,\r
+   and use DS RRsets to proceed recursively down the DNS tree obtaining\r
+   other apex DNSKEY RRsets.  If the resolver were configured with a\r
+   root DNSKEY RR, and if every delegation had a DS RR associated with\r
+   it, then the resolver could obtain and validate any apex DNSKEY\r
+   RRset.  The process of using DS RRs to authenticate referrals is\r
+   described in Section 5.2.\r
+\r
+   Once the resolver has authenticated a zone's apex DNSKEY RRset,\r
+   Section 5.3 shows how the resolver can use DNSKEY RRs in the apex\r
+   DNSKEY RRset and RRSIG RRs from the zone to authenticate any other\r
+   RRsets in the zone.  Section 5.4 shows how the resolver can use\r
+   authenticated NSEC RRsets from the zone to prove that an RRset is not\r
+   present in the zone.\r
+\r
+   When a resolver indicates support for DNSSEC (by setting the DO bit),\r
+   a security-aware name server should attempt to provide the necessary\r
+   DNSKEY, RRSIG, NSEC, and DS RRsets in a response (see Section 3).\r
+   However, a security-aware resolver may still receive a response that\r
+   that lacks the appropriate DNSSEC RRs, whether due to configuration\r
+   issues such as an upstream security-oblivious recursive name server\r
+   that accidentally interferes with DNSSEC RRs or due to a deliberate\r
+   attack in which an adversary forges a response, strips DNSSEC RRs\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 25]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   from a response, or modifies a query so that DNSSEC RRs appear not to\r
+   be requested.  The absence of DNSSEC data in a response MUST NOT by\r
+   itself be taken as an indication that no authentication information\r
+   exists.\r
+\r
+   A resolver SHOULD expect authentication information from signed\r
+   zones. A resolver SHOULD believe that a zone is signed if the\r
+   resolver has been configured with public key information for the\r
+   zone, or if the zone's parent is signed and the delegation from the\r
+   parent contains a DS RRset.\r
+\r
+5.1  Special Considerations for Islands of Security\r
+\r
+   Islands of security (see [I-D.ietf-dnsext-dnssec-intro]) are signed\r
+   zones for which it is not possible to construct an authentication\r
+   chain to the zone from its parent.  Validating signatures within an\r
+   island of security requires the validator to have some other means of\r
+   obtaining an initial authenticated zone key for the island.  If a\r
+   validator cannot obtain such a key, it SHOULD switch to operating as\r
+   if the zones in the island of security are unsigned.\r
+\r
+   All the normal processes for validating responses apply to islands of\r
+   security.  The only difference between normal validation and\r
+   validation within an island of security is in how the validator\r
+   obtains a trust anchor for the authentication chain.\r
+\r
+5.2  Authenticating Referrals\r
+\r
+   Once the apex DNSKEY RRset for a signed parent zone has been\r
+   authenticated, DS RRsets can be used to authenticate the delegation\r
+   to a signed child zone.  A DS RR identifies a DNSKEY RR in the child\r
+   zone's apex DNSKEY RRset, and contains a cryptographic digest of the\r
+   child zone's DNSKEY RR.  A strong cryptographic digest algorithm\r
+   ensures that an adversary can not easily generate a DNSKEY RR that\r
+   matches the digest.  Thus, authenticating the digest allows a\r
+   resolver to authenticate the matching DNSKEY RR.  The resolver can\r
+   then use this child DNSKEY RR to authenticate the entire child apex\r
+   DNSKEY RRset.\r
+\r
+   Given a DS RR for a delegation, the child zone's apex DNSKEY RRset\r
+   can be authenticated if all of the following hold:\r
+   o  The DS RR has been authenticated using some DNSKEY RR in the\r
+      parent's apex DNSKEY RRset (see Section 5.3);\r
+   o  The Algorithm and Key Tag in the DS RR match the Algorithm field\r
+      and the key tag of a DNSKEY RR in the child zone's apex DNSKEY\r
+      RRset and, when hashed using the digest algorithm specified in the\r
+      DS RR's Digest Type field, results in a digest value that matches\r
+      the Digest field of the DS RR; and\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 26]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   o  The matching DNSKEY RR in the child zone has the Zone Flag bit set\r
+      to one, the corresponding private key has signed the child zone's\r
+      apex DNSKEY RRset, and the resulting RRSIG RR authenticates the\r
+      child zone's apex DNSKEY RRset.\r
+\r
+   If the referral from the parent zone did not contain a DS RRset, the\r
+   response should have included a signed NSEC RRset proving that no DS\r
+   RRset exists for the delegated name (see Section 3.1.4).  A\r
+   security-aware resolver MUST query the name servers for the parent\r
+   zone for the DS RRset if the referral includes neither a DS RRset nor\r
+   a NSEC RRset proving that the DS RRset does not exist (see Section\r
+   4).\r
+\r
+   If the validator authenticates an NSEC RRset that proves that no DS\r
+   RRset is present for this zone, then there is no authentication path\r
+   leading from the parent to the child.  If the resolver has an initial\r
+   DNSKEY or DS RR that belongs to the child zone or to any delegation\r
+   below the child zone, this initial DNSKEY or DS RR MAY be used to\r
+   re-establish an authentication path.  If no such initial DNSKEY or DS\r
+   RR exists, the validator can not authenticate RRsets in or below the\r
+   child zone.\r
+\r
+   If the validator does not support any of the algorithms listed in an\r
+   authenticated DS RRset, then the resolver has no supported\r
+   authentication path leading from the parent to the child.  The\r
+   resolver should treat this case as it would the case of an\r
+   authenticated NSEC RRset proving that no DS RRset exists, as\r
+   described above.\r
+\r
+   Note that, for a signed delegation, there are two NSEC RRs associated\r
+   with the delegated name.  One NSEC RR resides in the parent zone, and\r
+   can be used to prove whether a DS RRset exists for the delegated\r
+   name.  The second NSEC RR resides in the child zone, and identifies\r
+   which RRsets are present at the apex of the child zone.  The parent\r
+   NSEC RR and child NSEC RR can always be distinguished, since the SOA\r
+   bit will be set in the child NSEC RR and clear in the parent NSEC RR.\r
+   A security-aware resolver MUST use the parent NSEC RR when attempting\r
+   to prove that a DS RRset does not exist.\r
+\r
+   If the resolver does not support any of the algorithms listed in an\r
+   authenticated DS RRset, then the resolver will not be able to verify\r
+   the authentication path to the child zone.  In this case, the\r
+   resolver SHOULD treat the child zone as if it were unsigned.\r
+\r
+5.3  Authenticating an RRset Using an RRSIG RR\r
+\r
+   A validator can use an RRSIG RR and its corresponding DNSKEY RR to\r
+   attempt to authenticate RRsets.  The validator first checks the RRSIG\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 27]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   RR to verify that it covers the RRset, has a valid time interval, and\r
+   identifies a valid DNSKEY RR.  The validator then constructs the\r
+   canonical form of the signed data by appending the RRSIG RDATA\r
+   (excluding the Signature Field) with the canonical form of the\r
+   covered RRset.  Finally, the validator uses the public key and\r
+   signature to authenticate the signed data.  Section 5.3.1, Section\r
+   5.3.2, and Section 5.3.3 describe each step in detail.\r
+\r
+5.3.1  Checking the RRSIG RR Validity\r
+\r
+   A security-aware resolver can use an RRSIG RR to authenticate an\r
+   RRset if all of the following conditions hold:\r
+   o  The RRSIG RR and the RRset MUST have the same owner name and the\r
+      same class;\r
+   o  The RRSIG RR's Signer's Name field MUST be the name of the zone\r
+      that contains the RRset;\r
+   o  The RRSIG RR's Type Covered field MUST equal the RRset's type;\r
+   o  The number of labels in the RRset owner name MUST be greater than\r
+      or equal to the value in the RRSIG RR's Labels field;\r
+   o  The validator's notion of the current time MUST be less than or\r
+      equal to the time listed in the RRSIG RR's Expiration field;\r
+   o  The validator's notion of the current time MUST be greater than or\r
+      equal to the time listed in the RRSIG RR's Inception field;\r
+   o  The RRSIG RR's Signer's Name, Algorithm, and Key Tag fields MUST\r
+      match the owner name, algorithm, and key tag for some DNSKEY RR in\r
+      the zone's apex DNSKEY RRset;\r
+   o  The matching DNSKEY RR MUST be present in the zone's apex DNSKEY\r
+      RRset, and MUST have the Zone Flag bit (DNSKEY RDATA Flag bit 7)\r
+      set to one.\r
+\r
+   It is possible for more than one DNSKEY RR to match the conditions\r
+   above.  In this case, the validator cannot predetermine which DNSKEY\r
+   RR to use to authenticate the signature, MUST try each matching\r
+   DNSKEY RR until either the signature is validated or the validator\r
+   has run out of matching public keys to try.\r
+\r
+   Note that this authentication process is only meaningful if the\r
+   validator authenticates the DNSKEY RR before using it to validate\r
+   signatures.  The matching DNSKEY RR is considered to be authentic if:\r
+   o  The apex DNSKEY RRset containing the DNSKEY RR is considered\r
+      authentic; or\r
+   o  The RRset covered by the RRSIG RR is the apex DNSKEY RRset itself,\r
+      and the DNSKEY RR either matches an authenticated DS RR from the\r
+      parent zone or matches a trust anchor.\r
+\r
+5.3.2  Reconstructing the Signed Data\r
+\r
+   Once the RRSIG RR has met the validity requirements described in\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 28]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   Section 5.3.1, the validator needs to reconstruct the original signed\r
+   data.  The original signed data includes RRSIG RDATA (excluding the\r
+   Signature field) and the canonical form of the RRset.  Aside from\r
+   being ordered, the canonical form of the RRset might also differ from\r
+   the received RRset due to DNS name compression, decremented TTLs, or\r
+   wildcard expansion.  The validator should use the following to\r
+   reconstruct the original signed data:\r
+\r
+         signed_data = RRSIG_RDATA | RR(1) | RR(2)...  where\r
+\r
+            "|" denotes concatenation\r
+\r
+            RRSIG_RDATA is the wire format of the RRSIG RDATA fields\r
+               with the Signature field excluded and the Signer's Name\r
+               in canonical form.\r
+\r
+            RR(i) = name | type | class | OrigTTL | RDATA length | RDATA\r
+\r
+               name is calculated according to the function below\r
+\r
+               class is the RRset's class\r
+\r
+               type is the RRset type and all RRs in the class\r
+\r
+               OrigTTL is the value from the RRSIG Original TTL field\r
+\r
+               All names in the RDATA field are in canonical form\r
+\r
+               The set of all RR(i) is sorted into canonical order.\r
+\r
+            To calculate the name:\r
+               let rrsig_labels = the value of the RRSIG Labels field\r
+\r
+               let fqdn = RRset's fully qualified domain name in\r
+                               canonical form\r
+\r
+               let fqdn_labels = Label count of the fqdn above.\r
+\r
+               if rrsig_labels = fqdn_labels,\r
+                   name = fqdn\r
+\r
+               if rrsig_labels < fqdn_labels,\r
+                  name = "*." | the rightmost rrsig_label labels of the\r
+                                fqdn\r
+\r
+               if rrsig_labels > fqdn_labels\r
+                  the RRSIG RR did not pass the necessary validation\r
+                  checks and MUST NOT be used to authenticate this\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 29]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                  RRset.\r
+\r
+   The canonical forms for names and RRsets are defined in\r
+   [I-D.ietf-dnsext-dnssec-records].\r
+\r
+   NSEC RRsets at a delegation boundary require special processing.\r
+   There are two distinct NSEC RRsets associated with a signed delegated\r
+   name.  One NSEC RRset resides in the parent zone, and specifies which\r
+   RRset are present at the parent zone.  The second NSEC RRset resides\r
+   at the child zone, and identifies which RRsets are present at the\r
+   apex in the child zone.  The parent NSEC RRset and child NSEC RRset\r
+   can always be distinguished since only the child NSEC RRs will\r
+   specify an SOA RRset exists at the name. When reconstructing the\r
+   original NSEC RRset for the delegation from the parent zone, the NSEC\r
+   RRs MUST NOT be combined with NSEC RRs from the child zone, and when\r
+   reconstructing the original NSEC RRset for the apex of the child\r
+   zone, the NSEC RRs MUST NOT be combined with NSEC RRs from the parent\r
+   zone.\r
+\r
+   Note also that each of the two NSEC RRsets at a delegation point has\r
+   a corresponding RRSIG RR with an owner name matching the delegated\r
+   name, and each of these RRSIG RRs is authoritative data associated\r
+   with the same zone that contains the corresponding NSEC RRset.  If\r
+   necessary, a resolver can tell these RRSIG RRs apart by checking the\r
+   Signer's Name field.\r
+\r
+5.3.3  Checking the Signature\r
+\r
+   Once the resolver has validated the RRSIG RR as described in Section\r
+   5.3.1 and reconstructed the original signed data as described in\r
+   Section 5.3.2, the validator can attempt to use the cryptographic\r
+   signature to authenticate the signed data, and thus (finally!)\r
+   authenticate the RRset.\r
+\r
+   The Algorithm field in the RRSIG RR identifies the cryptographic\r
+   algorithm used to generate the signature.  The signature itself is\r
+   contained in the Signature field of the RRSIG RDATA, and the public\r
+   key used to verify the signature is contained in the Public Key field\r
+   of the matching DNSKEY RR(s) (found in Section 5.3.1).\r
+   [I-D.ietf-dnsext-dnssec-records] provides a list of algorithm types\r
+   and provides pointers to the documents that define each algorithm's\r
+   use.\r
+\r
+   Note that it is possible for more than one DNSKEY RR to match the\r
+   conditions in Section 5.3.1.  In this case, the validator can only\r
+   determine which DNSKEY RR by trying each matching public key until\r
+   the validator either succeeds in validating the signature or runs out\r
+   of keys to try.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 30]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   If the Labels field of the RRSIG RR is not equal to the number of\r
+   labels in the RRset's fully qualified owner name, then the RRset is\r
+   either invalid or the result of wildcard expansion.  The resolver\r
+   MUST verify that wildcard expansion was applied properly before\r
+   considering the RRset to be authentic.  Section 5.3.4 describes how\r
+   to determine whether a wildcard was applied properly.\r
+\r
+   If other RRSIG RRs also cover this RRset, the local resolver security\r
+   policy determines whether the resolver also needs to test these RRSIG\r
+   RRs, and determines how to resolve conflicts if these RRSIG RRs lead\r
+   to differing results.\r
+\r
+   If the resolver accepts the RRset as authentic, the validator MUST\r
+   set the TTL of the RRSIG RR and each RR in the authenticated RRset to\r
+   a value no greater than the minimum of:\r
+   o  The RRset's TTL as received in the response;\r
+   o  The RRSIG RR's TTL as received in the response;\r
+   o  The value in the RRSIG RR's Original TTL field; and\r
+   o  The difference of the RRSIG RR's Signature Expiration time and the\r
+      current time.\r
+\r
+5.3.4  Authenticating A Wildcard Expanded RRset Positive Response\r
+\r
+   If the number of labels in an RRset's owner name is greater than the\r
+   Labels field of the covering RRSIG RR, then the RRset and its\r
+   covering RRSIG RR were created as a result of wildcard expansion.\r
+   Once the validator has verified the signature as described in Section\r
+   5.3, it must take additional steps to verify the non-existence of an\r
+   exact match or closer wildcard match for the query.  Section 5.4\r
+   discusses these steps.\r
+\r
+   Note that the response received by the resolver should include all\r
+   NSEC RRs needed to authenticate the response (see Section 3.1.3).\r
+\r
+5.4  Authenticated Denial of Existence\r
+\r
+   A resolver can use authenticated NSEC RRs to prove that an RRset is\r
+   not present in a signed zone.  Security-aware name servers should\r
+   automatically include any necessary NSEC RRs for signed zones in\r
+   their responses to security-aware resolvers.\r
+\r
+   Security-aware resolvers MUST first authenticate NSEC RRsets\r
+   according to the standard RRset authentication rules described in\r
+   Section 5.3, then apply the NSEC RRsets as follows:\r
+   o  If the requested RR name matches the owner name of an\r
+      authenticated NSEC RR, then the NSEC RR's type bit map field lists\r
+      all RR types present at that owner name, and a resolver can prove\r
+      that the requested RR type does not exist by checking for the RR\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 31]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+      type in the bit map.  If the number of labels in an authenticated\r
+      NSEC RR's owner name equals the Labels field of the covering RRSIG\r
+      RR, then the existence of the NSEC RR proves that wildcard\r
+      expansion could not have been used to match the request.\r
+   o  If the requested RR name would appear after an authenticated NSEC\r
+      RR's owner name and before the name listed in that NSEC RR's Next\r
+      Domain Name field according to the canonical DNS name order\r
+      defined in [I-D.ietf-dnsext-dnssec-records], then no RRsets with\r
+      the requested name exist in the zone.  However, it is possible\r
+      that a wildcard could be used to match the requested RR owner name\r
+      and type, so proving that the requested RRset does not exist also\r
+      requires proving that no possible wildcard RRset exists that could\r
+      have been used to generate a positive response.\r
+\r
+   To prove non-existence of an RRset, the resolver must be able to\r
+   verify both that the queried RRset does not exist and that no\r
+   relevant wildcard RRset exists.  Proving this may require more than\r
+   one NSEC RRset from the zone.  If the complete set of necessary NSEC\r
+   RRsets is not present in a response (perhaps due to message\r
+   truncation), then a security-aware resolver MUST resend the query in\r
+   order to attempt to obtain the full collection of NSEC RRs necessary\r
+   to verify non-existence of the requested RRset.  As with all DNS\r
+   operations, however, the resolver MUST bound the work it puts into\r
+   answering any particular query.\r
+\r
+   Since a validated NSEC RR proves the existence of both itself and its\r
+   corresponding RRSIG RR, a validator MUST ignore the settings of the\r
+   NSEC and RRSIG bits in an NSEC RR.\r
+\r
+5.5  Resolver Behavior When Signatures Do Not Validate\r
+\r
+   If for whatever reason none of the RRSIGs can be validated, the\r
+   response SHOULD be considered BAD.  If the validation was being done\r
+   to service a recursive query, the name server MUST return RCODE 2 to\r
+   the originating client.  However, it MUST return the full response if\r
+   and only if the original query had the CD bit set. See also Section\r
+   4.7 on caching responses that do not validate.\r
+\r
+5.6  Authentication Example\r
+\r
+   Appendix C shows an example the authentication process.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 32]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+6.  IANA Considerations\r
+\r
+   [I-D.ietf-dnsext-dnssec-records] contains a review of the IANA\r
+   considerations introduced by DNSSEC.  The additional IANA\r
+   considerations discussed in this document:\r
+\r
+   [RFC2535] reserved the CD and AD bits in the message header.  The\r
+   meaning of the AD bit was redefined in [RFC3655] and the meaning of\r
+   both the CD and AD bit are restated in this document.  No new bits in\r
+   the DNS message header are defined in this document.\r
+\r
+   [RFC2671] introduced EDNS and [RFC3225] reserved the DNSSEC OK bit\r
+   and defined its use.  The use is restated but not altered in this\r
+   document.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 33]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+7.  Security Considerations\r
+\r
+   This document describes how the DNS security extensions use public\r
+   key cryptography to sign and authenticate DNS resource record sets.\r
+   Please see [I-D.ietf-dnsext-dnssec-intro] for terminology and general\r
+   security considerations related to DNSSEC; see\r
+   [I-D.ietf-dnsext-dnssec-intro] for considerations specific to the\r
+   DNSSEC resource record types.\r
+\r
+   An active attacker who can set the CD bit in a DNS query message or\r
+   the AD bit in a DNS response message can use these bits to defeat the\r
+   protection which DNSSEC attempts to provide to security-oblivious\r
+   recursive-mode resolvers.  For this reason, use of these control bits\r
+   by a security-aware recursive-mode resolver requires a secure\r
+   channel.  See Section 3.2.2 and Section 4.9 for further discussion.\r
+\r
+   The protocol described in this document attempts to extend the\r
+   benefits of DNSSEC to security-oblivious stub resolvers. However,\r
+   since recovery from validation failures is likely to be specific to\r
+   particular applications, the facilities that DNSSEC provides for stub\r
+   resolvers may prove inadequate.  Operators of security-aware\r
+   recursive name servers will need to pay close attention to the\r
+   behavior of the applications which use their services when choosing a\r
+   local validation policy; failure to do so could easily result in the\r
+   recursive name server accidentally denying service to the clients it\r
+   is intended to support.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 34]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+8.  Acknowledgements\r
+\r
+   This document was created from the input and ideas of the members of\r
+   the DNS Extensions Working Group and working group mailing list.  The\r
+   editors would like to express their thanks for the comments and\r
+   suggestions received during the revision of these security extension\r
+   specifications.  While explicitly listing everyone who has\r
+   contributed during the decade during which DNSSEC has been under\r
+   development would be an impossible task,\r
+   [I-D.ietf-dnsext-dnssec-intro] includes a list of some of the\r
+   participants who were kind enough to comment on these documents.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 35]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+9.  References\r
+\r
+9.1  Normative References\r
+\r
+   [I-D.ietf-dnsext-dnssec-intro]\r
+              Arends, R., Austein, R., Larson, M., Massey, D. and S.\r
+              Rose, "DNS Security Introduction and Requirements",\r
+              draft-ietf-dnsext-dnssec-intro-10 (work in progress), May\r
+              2004.\r
+\r
+   [I-D.ietf-dnsext-dnssec-records]\r
+              Arends, R., Austein, R., Larson, M., Massey, D. and S.\r
+              Rose, "Resource Records for DNS Security Extensions",\r
+              draft-ietf-dnsext-dnssec-records-08 (work in progress),\r
+              May 2004.\r
+\r
+   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",\r
+              STD 13, RFC 1034, November 1987.\r
+\r
+   [RFC1035]  Mockapetris, P., "Domain names - implementation and\r
+              specification", STD 13, RFC 1035, November 1987.\r
+\r
+   [RFC1982]  Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982,\r
+              August 1996.\r
+\r
+   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate\r
+              Requirement Levels", BCP 14, RFC 2119, March 1997.\r
+\r
+   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS\r
+              Specification", RFC 2181, July 1997.\r
+\r
+   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC\r
+              2671, August 1999.\r
+\r
+   [RFC2672]  Crawford, M., "Non-Terminal DNS Name Redirection", RFC\r
+              2672, August 1999.\r
+\r
+   [RFC3225]  Conrad, D., "Indicating Resolver Support of DNSSEC", RFC\r
+              3225, December 2001.\r
+\r
+   [RFC3226]  Gudmundsson, O., "DNSSEC and IPv6 A6 aware server/resolver\r
+              message size requirements", RFC 3226, December 2001.\r
+\r
+9.2  Informative References\r
+\r
+   [I-D.ietf-dnsext-nsec-rdata]\r
+              Schlyter, J., "KEY RR Secure Entry Point Flag",\r
+              draft-ietf-dnsext-nsec-rdata-05 (work in progress), March\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 36]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+              2004.\r
+\r
+   [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS\r
+              NCACHE)", RFC 2308, March 1998.\r
+\r
+   [RFC2535]  Eastlake, D., "Domain Name System Security Extensions",\r
+              RFC 2535, March 1999.\r
+\r
+   [RFC2930]  Eastlake, D., "Secret Key Establishment for DNS (TKEY\r
+              RR)", RFC 2930, September 2000.\r
+\r
+   [RFC2931]  Eastlake, D., "DNS Request and Transaction Signatures (\r
+              SIG(0)s)", RFC 2931, September 2000.\r
+\r
+   [RFC3655]  Wellington, B. and O. Gudmundsson, "Redefinition of DNS\r
+              Authenticated Data (AD) bit", RFC 3655, November 2003.\r
+\r
+   [RFC3658]  Gudmundsson, O., "Delegation Signer (DS) Resource Record\r
+              (RR)", RFC 3658, December 2003.\r
+\r
+\r
+Authors' Addresses\r
+\r
+   Roy Arends\r
+   Telematica Instituut\r
+   Drienerlolaan 5\r
+   7522 NB  Enschede\r
+   NL\r
+\r
+   EMail: roy.arends@telin.nl\r
+\r
+\r
+   Matt Larson\r
+   VeriSign, Inc.\r
+   21345 Ridgetop Circle\r
+   Dulles, VA  20166-6503\r
+   USA\r
+\r
+   EMail: mlarson@verisign.com\r
+\r
+\r
+   Rob Austein\r
+   Internet Systems Consortium\r
+   950 Charter Street\r
+   Redwood City, CA  94063\r
+   USA\r
+\r
+   EMail: sra@isc.org\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 37]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   Dan Massey\r
+   USC Information Sciences Institute\r
+   3811 N. Fairfax Drive\r
+   Arlington, VA  22203\r
+   USA\r
+\r
+   EMail: masseyd@isi.edu\r
+\r
+\r
+   Scott Rose\r
+   National Institute for Standards and Technology\r
+   100 Bureau Drive\r
+   Gaithersburg, MD  20899-8920\r
+   USA\r
+\r
+   EMail: scott.rose@nist.gov\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 38]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+Appendix A.  Signed Zone Example\r
+\r
+   The following example shows a (small) complete signed zone.\r
+\r
+   example.       3600 IN SOA ns1.example. bugs.x.w.example. (\r
+                              1081539377\r
+                              3600\r
+                              300\r
+                              3600000\r
+                              3600\r
+                              )\r
+                  3600 RRSIG  SOA 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h\r
+                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF\r
+                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW\r
+                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB\r
+                              jV7j86HyQgM5e7+miRAz8V01b0I= )\r
+                  3600 NS     ns1.example.\r
+                  3600 NS     ns2.example.\r
+                  3600 RRSIG  NS 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              gl13F00f2U0R+SWiXXLHwsMY+qStYy5k6zfd\r
+                              EuivWc+wd1fmbNCyql0Tk7lHTX6UOxc8AgNf\r
+                              4ISFve8XqF4q+o9qlnqIzmppU3LiNeKT4FZ8\r
+                              RO5urFOvoMRTbQxW3U0hXWuggE4g3ZpsHv48\r
+                              0HjMeRaZB/FRPGfJPajngcq6Kwg= )\r
+                  3600 MX     1 xx.example.\r
+                  3600 RRSIG  MX 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              HyDHYVT5KHSZ7HtO/vypumPmSZQrcOP3tzWB\r
+                              2qaKkHVPfau/DgLgS/IKENkYOGL95G4N+NzE\r
+                              VyNU8dcTOckT+ChPcGeVjguQ7a3Ao9Z/ZkUO\r
+                              6gmmUW4b89rz1PUxW4jzUxj66PTwoVtUU/iM\r
+                              W6OISukd1EQt7a0kygkg+PEDxdI= )\r
+                  3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY\r
+                  3600 RRSIG  NSEC 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              O0k558jHhyrC97ISHnislm4kLMW48C7U7cBm\r
+                              FTfhke5iVqNRVTB1STLMpgpbDIC9hcryoO0V\r
+                              Z9ME5xPzUEhbvGnHd5sfzgFVeGxr5Nyyq4tW\r
+                              SDBgIBiLQUv1ivy29vhXy7WgR62dPrZ0PWvm\r
+                              jfFJ5arXf4nPxp/kEowGgBRzY/U= )\r
+                  3600 DNSKEY 256 3 5 (\r
+                              AQOy1bZVvpPqhg4j7EJoM9rI3ZmyEx2OzDBV\r
+                              rZy/lvI5CQePxXHZS4i8dANH4DX3tbHol61e\r
+                              k8EFMcsGXxKciJFHyhl94C+NwILQdzsUlSFo\r
+                              vBZsyl/NX6yEbtw/xN9ZNcrbYvgjjZ/UVPZI\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 39]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                              ySFNsgEYvh0z2542lzMKR4Dh8uZffQ==\r
+                              )\r
+                  3600 DNSKEY 257 3 5 (\r
+                              AQOeX7+baTmvpVHb2CcLnL1dMRWbuscRvHXl\r
+                              LnXwDzvqp4tZVKp1sZMepFb8MvxhhW3y/0QZ\r
+                              syCjczGJ1qk8vJe52iOhInKROVLRwxGpMfzP\r
+                              RLMlGybr51bOV/1se0ODacj3DomyB4QB5gKT\r
+                              Yot/K9alk5/j8vfd4jWCWD+E1Sze0Q==\r
+                              )\r
+                  3600 RRSIG  DNSKEY 5 1 3600 20040509183619 (\r
+                              20040409183619 9465 example.\r
+                              ZxgauAuIj+k1YoVEOSlZfx41fcmKzTFHoweZ\r
+                              xYnz99JVQZJ33wFS0Q0jcP7VXKkaElXk9nYJ\r
+                              XevO/7nAbo88iWsMkSpSR6jWzYYKwfrBI/L9\r
+                              hjYmyVO9m6FjQ7uwM4dCP/bIuV/DKqOAK9NY\r
+                              NC3AHfvCV1Tp4VKDqxqG7R5tTVM= )\r
+                  3600 RRSIG  DNSKEY 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              eGL0s90glUqcOmloo/2y+bSzyEfKVOQViD9Z\r
+                              DNhLz/Yn9CQZlDVRJffACQDAUhXpU/oP34ri\r
+                              bKBpysRXosczFrKqS5Oa0bzMOfXCXup9qHAp\r
+                              eFIku28Vqfr8Nt7cigZLxjK+u0Ws/4lIRjKk\r
+                              7z5OXogYVaFzHKillDt3HRxHIZM= )\r
+   a.example.     3600 IN NS  ns1.a.example.\r
+                  3600 IN NS  ns2.a.example.\r
+                  3600 DS     57855 5 1 (\r
+                              B6DCD485719ADCA18E5F3D48A2331627FDD3\r
+                              636B )\r
+                  3600 RRSIG  DS 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              oXIKit/QtdG64J/CB+Gi8dOvnwRvqrto1AdQ\r
+                              oRkAN15FP3iZ7suB7gvTBmXzCjL7XUgQVcoH\r
+                              kdhyCuzp8W9qJHgRUSwKKkczSyuL64nhgjuD\r
+                              EML8l9wlWVsl7PR2VnZduM9bLyBhaaPmRKX/\r
+                              Fm+v6ccF2EGNLRiY08kdkz+XHHo= )\r
+                  3600 NSEC   ai.example. NS DS RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              cOlYgqJLqlRqmBQ3iap2SyIsK4O5aqpKSoba\r
+                              U9fQ5SMApZmHfq3AgLflkrkXRXvgxTQSKkG2\r
+                              039/cRUs6Jk/25+fi7Xr5nOVJsb0lq4zsB3I\r
+                              BBdjyGDAHE0F5ROJj87996vJupdm1fbH481g\r
+                              sdkOW6Zyqtz3Zos8N0BBkEx+2G4= )\r
+   ns1.a.example. 3600 IN A   192.0.2.5\r
+   ns2.a.example. 3600 IN A   192.0.2.6\r
+   ai.example.    3600 IN A   192.0.2.9\r
+                  3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 40]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                              pAOtzLP2MU0tDJUwHOKE5FPIIHmdYsCgTb5B\r
+                              ERGgpnJluA9ixOyf6xxVCgrEJW0WNZSsJicd\r
+                              hBHXfDmAGKUajUUlYSAH8tS4ZnrhyymIvk3u\r
+                              ArDu2wfT130e9UHnumaHHMpUTosKe22PblOy\r
+                              6zrTpg9FkS0XGVmYRvOTNYx2HvQ= )\r
+                  3600 HINFO  "KLH-10" "ITS"\r
+                  3600 RRSIG  HINFO 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              Iq/RGCbBdKzcYzlGE4ovbr5YcB+ezxbZ9W0l\r
+                              e/7WqyvhOO9J16HxhhL7VY/IKmTUY0GGdcfh\r
+                              ZEOCkf4lEykZF9NPok1/R/fWrtzNp8jobuY7\r
+                              AZEcZadp1WdDF3jc2/ndCa5XZhLKD3JzOsBw\r
+                              FvL8sqlS5QS6FY/ijFEDnI4RkZA= )\r
+                  3600 AAAA   2001:db8::f00:baa9\r
+                  3600 RRSIG  AAAA 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              nLcpFuXdT35AcE+EoafOUkl69KB+/e56XmFK\r
+                              kewXG2IadYLKAOBIoR5+VoQV3XgTcofTJNsh\r
+                              1rnF6Eav2zpZB3byI6yo2bwY8MNkr4A7cL9T\r
+                              cMmDwV/hWFKsbGBsj8xSCN/caEL2CWY/5XP2\r
+                              sZM6QjBBLmukH30+w1z3h8PUP2o= )\r
+                  3600 NSEC   b.example. A HINFO AAAA RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              QoshyPevLcJ/xcRpEtMft1uoIrcrieVcc9pG\r
+                              CScIn5Glnib40T6ayVOimXwdSTZ/8ISXGj4p\r
+                              P8Sh0PlA6olZQ84L453/BUqB8BpdOGky4hsN\r
+                              3AGcLEv1Gr0QMvirQaFcjzOECfnGyBm+wpFL\r
+                              AhS+JOVfDI/79QtyTI0SaDWcg8U= )\r
+   b.example.     3600 IN NS  ns1.b.example.\r
+                  3600 IN NS  ns2.b.example.\r
+                  3600 NSEC   ns1.example. NS RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              GNuxHn844wfmUhPzGWKJCPY5ttEX/RfjDoOx\r
+                              9ueK1PtYkOWKOOdiJ/PJKCYB3hYX+858dDWS\r
+                              xb2qnV/LSTCNVBnkm6owOpysY97MVj5VQEWs\r
+                              0lm9tFoqjcptQkmQKYPrwUnCSNwvvclSF1xZ\r
+                              vhRXgWT7OuFXldoCG6TfVFMs9xE= )\r
+   ns1.b.example. 3600 IN A   192.0.2.7\r
+   ns2.b.example. 3600 IN A   192.0.2.8\r
+   ns1.example.   3600 IN A   192.0.2.1\r
+                  3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              F1C9HVhIcs10cZU09G5yIVfKJy5yRQQ3qVet\r
+                              5pGhp82pzhAOMZ3K22JnmK4c+IjUeFp/to06\r
+                              im5FVpHtbFisdjyPq84bhTv8vrXt5AB1wNB+\r
+                              +iAqvIfdgW4sFNC6oADb1hK8QNauw9VePJhK\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 41]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                              v/iVXSYC0b7mPSU+EOlknFpVECs= )\r
+                  3600 NSEC   ns2.example. A RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              I4hj+Kt6+8rCcHcUdolks2S+Wzri9h3fHas8\r
+                              1rGN/eILdJHN7JpV6lLGPIh/8fIBkfvdyWnB\r
+                              jjf1q3O7JgYO1UdI7FvBNWqaaEPJK3UkddBq\r
+                              ZIaLi8Qr2XHkjq38BeQsbp8X0+6h4ETWSGT8\r
+                              IZaIGBLryQWGLw6Y6X8dqhlnxJM= )\r
+   ns2.example.   3600 IN A   192.0.2.2\r
+                  3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              V7cQRw1TR+knlaL1z/psxlS1PcD37JJDaCMq\r
+                              Qo6/u1qFQu6x+wuDHRH22Ap9ulJPQjFwMKOu\r
+                              yfPGQPC8KzGdE3vt5snFEAoE1Vn3mQqtu7SO\r
+                              6amIjk13Kj/jyJ4nGmdRIc/3cM3ipXFhNTKq\r
+                              rdhx8SZ0yy4ObIRzIzvBFLiSS8o= )\r
+                  3600 NSEC   *.w.example. A RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              N0QzHvaJf5NRw1rE9uxS1Ltb2LZ73Qb9bKGE\r
+                              VyaISkqzGpP3jYJXZJPVTq4UVEsgT3CgeHvb\r
+                              3QbeJ5Dfb2V9NGCHj/OvF/LBxFFWwhLwzngH\r
+                              l+bQAgAcMsLu/nL3nDi1y/JSQjAcdZNDl4bw\r
+                              Ymx28EtgIpo9A0qmP08rMBqs1Jw= )\r
+   *.w.example.   3600 IN MX  1 ai.example.\r
+                  3600 RRSIG  MX 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              OMK8rAZlepfzLWW75Dxd63jy2wswESzxDKG2\r
+                              f9AMN1CytCd10cYISAxfAdvXSZ7xujKAtPbc\r
+                              tvOQ2ofO7AZJ+d01EeeQTVBPq4/6KCWhqe2X\r
+                              TjnkVLNvvhnc0u28aoSsG0+4InvkkOHknKxw\r
+                              4kX18MMR34i8lC36SR5xBni8vHI= )\r
+                  3600 NSEC   x.w.example. MX RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              r/mZnRC3I/VIcrelgIcteSxDhtsdlTDt8ng9\r
+                              HSBlABOlzLxQtfgTnn8f+aOwJIAFe1Ee5RvU\r
+                              5cVhQJNP5XpXMJHfyps8tVvfxSAXfahpYqtx\r
+                              91gsmcV/1V9/bZAG55CefP9cM4Z9Y9NT9XQ8\r
+                              s1InQ2UoIv6tJEaaKkP701j8OLA= )\r
+   x.w.example.   3600 IN MX  1 xx.example.\r
+                  3600 RRSIG  MX 5 3 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              Il2WTZ+Bkv+OytBx4LItNW5mjB4RCwhOO8y1\r
+                              XzPHZmZUTVYL7LaA63f6T9ysVBzJRI3KRjAP\r
+                              H3U1qaYnDoN1DrWqmi9RJe4FoObkbcdm7P3I\r
+                              kx70ePCoFgRz1Yq+bVVXCvGuAU4xALv3W/Y1\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 42]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                              jNSlwZ2mSWKHfxFQxPtLj8s32+k= )\r
+                  3600 NSEC   x.y.w.example. MX RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 3 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              aRbpHftxggzgMXdDlym9SsADqMZovZZl2QWK\r
+                              vw8J0tZEUNQByH5Qfnf5N1FqH/pS46UA7A4E\r
+                              mcWBN9PUA1pdPY6RVeaRlZlCr1IkVctvbtaI\r
+                              NJuBba/VHm+pebTbKcAPIvL9tBOoh+to1h6e\r
+                              IjgiM8PXkBQtxPq37wDKALkyn7Q= )\r
+   x.y.w.example. 3600 IN MX  1 xx.example.\r
+                  3600 RRSIG  MX 5 4 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              k2bJHbwP5LH5qN4is39UiPzjAWYmJA38Hhia\r
+                              t7i9t7nbX/e0FPnvDSQXzcK7UL+zrVA+3MDj\r
+                              q1ub4q3SZgcbLMgexxIW3Va//LVrxkP6Xupq\r
+                              GtOB9prkK54QTl/qZTXfMQpW480YOvVknhvb\r
+                              +gLcMZBnHJ326nb/TOOmrqNmQQE= )\r
+                  3600 NSEC   xx.example. MX RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 4 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              OvE6WUzN2ziieJcvKPWbCAyXyP6ef8cr6Csp\r
+                              ArVSTzKSquNwbezZmkU7E34o5lmb6CWSSSpg\r
+                              xw098kNUFnHcQf/LzY2zqRomubrNQhJTiDTX\r
+                              a0ArunJQCzPjOYq5t0SLjm6qp6McJI1AP5Vr\r
+                              QoKqJDCLnoAlcPOPKAm/jJkn3jk= )\r
+   xx.example.    3600 IN A   192.0.2.10\r
+                  3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              kBF4YxMGWF0D8r0cztL+2fWWOvN1U/GYSpYP\r
+                              7SoKoNQ4fZKyk+weWGlKLIUM+uE1zjVTPXoa\r
+                              0Z6WG0oZp46rkl1EzMcdMgoaeUzzAJ2BMq+Y\r
+                              VdxG9IK1yZkYGY9AgbTOGPoAgbJyO9EPULsx\r
+                              kbIDV6GPPSZVusnZU6OMgdgzHV4= )\r
+                  3600 HINFO  "KLH-10" "TOPS-20"\r
+                  3600 RRSIG  HINFO 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              GY2PLSXmMHkWHfLdggiox8+chWpeMNJLkML0\r
+                              t+U/SXSUsoUdR91KNdNUkTDWamwcF8oFRjhq\r
+                              BcPZ6EqrF+vl5v5oGuvSF7U52epfVTC+wWF8\r
+                              3yCUeUw8YklhLWlvk8gQ15YKth0ITQy8/wI+\r
+                              RgNvuwbioFSEuv2pNlkq0goYxNY= )\r
+                  3600 AAAA   2001:db8::f00:baaa\r
+                  3600 RRSIG  AAAA 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              Zzj0yodDxcBLnnOIwDsuKo5WqiaK24DlKg9C\r
+                              aGaxDFiKgKobUj2jilYQHpGFn2poFRetZd4z\r
+                              ulyQkssz2QHrVrPuTMS22knudCiwP4LWpVTr\r
+                              U4zfeA+rDz9stmSBP/4PekH/x2IoAYnwctd/\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 43]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                              xS9cL2QgW7FChw16mzlkH6/vsfs= )\r
+                  3600 NSEC   example. A HINFO AAAA RRSIG NSEC\r
+                  3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              ZFWUln6Avc8bmGl5GFjD3BwT530DUZKHNuoY\r
+                              9A8lgXYyrxu+pqgFiRVbyZRQvVB5pccEOT3k\r
+                              mvHgEa/HzbDB4PIYY79W+VHrgOxzdQGGCZzi\r
+                              asXrpSGOWwSOElghPnMIi8xdF7qtCntr382W\r
+                              GghLahumFIpg4MO3LS/prgzVVWo= )\r
+\r
+   The apex DNSKEY set includes two DNSKEY RRs, and the DNSKEY RDATA\r
+   Flags indicate that each of these DNSKEY RRs is a zone key.  One of\r
+   these DNSKEY RRs also has the SEP flag set and has been used to sign\r
+   the apex DNSKEY RRset; this is the key which should be hashed to\r
+   generate a DS record to be inserted into the parent zone.  The other\r
+   DNSKEY is used to sign all the other RRsets in the zone.\r
+\r
+   The zone includes a wildcard entry "*.w.example".  Note that the name\r
+   "*.w.example" is used in constructing NSEC chains, and that the RRSIG\r
+   covering the "*.w.example" MX RRset has a label count of 2.\r
+\r
+   The zone also includes two delegations.  The delegation to\r
+   "b.example" includes an NS RRset, glue address records, and an NSEC\r
+   RR; note that only the NSEC RRset is signed.  The delegation to\r
+   "a.example" provides a DS RR; note that only the NSEC and DS RRsets\r
+   are signed.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 44]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+Appendix B.  Example Responses\r
+\r
+   The examples in this section show response messages using the signed\r
+   zone example in Appendix A.\r
+\r
+B.1  Answer\r
+\r
+   A successful query to an authoritative server.\r
+\r
+   ;; Header: QR AA DO RCODE=0\r
+   ;;\r
+   ;; Question\r
+   x.w.example.        IN MX\r
+\r
+   ;; Answer\r
+   x.w.example.   3600 IN MX  1 xx.example.\r
+   x.w.example.   3600 RRSIG  MX 5 3 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              Il2WTZ+Bkv+OytBx4LItNW5mjB4RCwhOO8y1\r
+                              XzPHZmZUTVYL7LaA63f6T9ysVBzJRI3KRjAP\r
+                              H3U1qaYnDoN1DrWqmi9RJe4FoObkbcdm7P3I\r
+                              kx70ePCoFgRz1Yq+bVVXCvGuAU4xALv3W/Y1\r
+                              jNSlwZ2mSWKHfxFQxPtLj8s32+k= )\r
+\r
+   ;; Authority\r
+   example.       3600 NS     ns1.example.\r
+   example.       3600 NS     ns2.example.\r
+   example.       3600 RRSIG  NS 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              gl13F00f2U0R+SWiXXLHwsMY+qStYy5k6zfd\r
+                              EuivWc+wd1fmbNCyql0Tk7lHTX6UOxc8AgNf\r
+                              4ISFve8XqF4q+o9qlnqIzmppU3LiNeKT4FZ8\r
+                              RO5urFOvoMRTbQxW3U0hXWuggE4g3ZpsHv48\r
+                              0HjMeRaZB/FRPGfJPajngcq6Kwg= )\r
+\r
+   ;; Additional\r
+   xx.example.    3600 IN A   192.0.2.10\r
+   xx.example.    3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              kBF4YxMGWF0D8r0cztL+2fWWOvN1U/GYSpYP\r
+                              7SoKoNQ4fZKyk+weWGlKLIUM+uE1zjVTPXoa\r
+                              0Z6WG0oZp46rkl1EzMcdMgoaeUzzAJ2BMq+Y\r
+                              VdxG9IK1yZkYGY9AgbTOGPoAgbJyO9EPULsx\r
+                              kbIDV6GPPSZVusnZU6OMgdgzHV4= )\r
+   xx.example.    3600 AAAA   2001:db8::f00:baaa\r
+   xx.example.    3600 RRSIG  AAAA 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              Zzj0yodDxcBLnnOIwDsuKo5WqiaK24DlKg9C\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 45]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                              aGaxDFiKgKobUj2jilYQHpGFn2poFRetZd4z\r
+                              ulyQkssz2QHrVrPuTMS22knudCiwP4LWpVTr\r
+                              U4zfeA+rDz9stmSBP/4PekH/x2IoAYnwctd/\r
+                              xS9cL2QgW7FChw16mzlkH6/vsfs= )\r
+   ns1.example.   3600 IN A   192.0.2.1\r
+   ns1.example.   3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              F1C9HVhIcs10cZU09G5yIVfKJy5yRQQ3qVet\r
+                              5pGhp82pzhAOMZ3K22JnmK4c+IjUeFp/to06\r
+                              im5FVpHtbFisdjyPq84bhTv8vrXt5AB1wNB+\r
+                              +iAqvIfdgW4sFNC6oADb1hK8QNauw9VePJhK\r
+                              v/iVXSYC0b7mPSU+EOlknFpVECs= )\r
+   ns2.example.   3600 IN A   192.0.2.2\r
+   ns2.example.   3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              V7cQRw1TR+knlaL1z/psxlS1PcD37JJDaCMq\r
+                              Qo6/u1qFQu6x+wuDHRH22Ap9ulJPQjFwMKOu\r
+                              yfPGQPC8KzGdE3vt5snFEAoE1Vn3mQqtu7SO\r
+                              6amIjk13Kj/jyJ4nGmdRIc/3cM3ipXFhNTKq\r
+                              rdhx8SZ0yy4ObIRzIzvBFLiSS8o= )\r
+\r
+\r
+B.2  Name Error\r
+\r
+   An authoritative name error.  The NSEC RRs prove that the name does\r
+   not exist and that no covering wildcard exists.\r
+\r
+   ;; Header: QR AA DO RCODE=3\r
+   ;;\r
+   ;; Question\r
+   ml.example.         IN A\r
+\r
+   ;; Answer\r
+   ;; (empty)\r
+\r
+   ;; Authority\r
+   example.       3600 IN SOA ns1.example. bugs.x.w.example. (\r
+                              1081539377\r
+                              3600\r
+                              300\r
+                              3600000\r
+                              3600\r
+                              )\r
+   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h\r
+                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF\r
+                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 46]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB\r
+                              jV7j86HyQgM5e7+miRAz8V01b0I= )\r
+   b.example.     3600 NSEC   ns1.example. NS RRSIG NSEC\r
+   b.example.     3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              GNuxHn844wfmUhPzGWKJCPY5ttEX/RfjDoOx\r
+                              9ueK1PtYkOWKOOdiJ/PJKCYB3hYX+858dDWS\r
+                              xb2qnV/LSTCNVBnkm6owOpysY97MVj5VQEWs\r
+                              0lm9tFoqjcptQkmQKYPrwUnCSNwvvclSF1xZ\r
+                              vhRXgWT7OuFXldoCG6TfVFMs9xE= )\r
+   example.       3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY\r
+   example.       3600 RRSIG  NSEC 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              O0k558jHhyrC97ISHnislm4kLMW48C7U7cBm\r
+                              FTfhke5iVqNRVTB1STLMpgpbDIC9hcryoO0V\r
+                              Z9ME5xPzUEhbvGnHd5sfzgFVeGxr5Nyyq4tW\r
+                              SDBgIBiLQUv1ivy29vhXy7WgR62dPrZ0PWvm\r
+                              jfFJ5arXf4nPxp/kEowGgBRzY/U= )\r
+\r
+   ;; Additional\r
+   ;; (empty)\r
+\r
+\r
+B.3  No Data Error\r
+\r
+   A "NODATA" response.  The NSEC RR proves that the name exists and\r
+   that the requested RR type does not.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 47]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   ;; Header: QR AA DO RCODE=0\r
+   ;;\r
+   ;; Question\r
+   ns1.example.        IN MX\r
+\r
+   ;; Answer\r
+   ;; (empty)\r
+\r
+   ;; Authority\r
+   example.       3600 IN SOA ns1.example. bugs.x.w.example. (\r
+                              1081539377\r
+                              3600\r
+                              300\r
+                              3600000\r
+                              3600\r
+                              )\r
+   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h\r
+                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF\r
+                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW\r
+                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB\r
+                              jV7j86HyQgM5e7+miRAz8V01b0I= )\r
+   ns1.example.   3600 NSEC   ns2.example. A RRSIG NSEC\r
+   ns1.example.   3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              I4hj+Kt6+8rCcHcUdolks2S+Wzri9h3fHas8\r
+                              1rGN/eILdJHN7JpV6lLGPIh/8fIBkfvdyWnB\r
+                              jjf1q3O7JgYO1UdI7FvBNWqaaEPJK3UkddBq\r
+                              ZIaLi8Qr2XHkjq38BeQsbp8X0+6h4ETWSGT8\r
+                              IZaIGBLryQWGLw6Y6X8dqhlnxJM= )\r
+\r
+   ;; Additional\r
+   ;; (empty)\r
+\r
+\r
+B.4  Referral to Signed Zone\r
+\r
+   Referral to a signed zone.   The DS RR contains the data which the\r
+   resolver will need to validate the corresponding DNSKEY RR in the\r
+   child zone's apex.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 48]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   ;; Header: QR DO RCODE=0\r
+   ;;\r
+   ;; Question\r
+   mc.a.example.       IN MX\r
+\r
+   ;; Answer\r
+   ;; (empty)\r
+\r
+   ;; Authority\r
+   a.example.     3600 IN NS  ns1.a.example.\r
+   a.example.     3600 IN NS  ns2.a.example.\r
+   a.example.     3600 DS     57855 5 1 (\r
+                              B6DCD485719ADCA18E5F3D48A2331627FDD3\r
+                              636B )\r
+   a.example.     3600 RRSIG  DS 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              oXIKit/QtdG64J/CB+Gi8dOvnwRvqrto1AdQ\r
+                              oRkAN15FP3iZ7suB7gvTBmXzCjL7XUgQVcoH\r
+                              kdhyCuzp8W9qJHgRUSwKKkczSyuL64nhgjuD\r
+                              EML8l9wlWVsl7PR2VnZduM9bLyBhaaPmRKX/\r
+                              Fm+v6ccF2EGNLRiY08kdkz+XHHo= )\r
+\r
+   ;; Additional\r
+   ns1.a.example. 3600 IN A   192.0.2.5\r
+   ns2.a.example. 3600 IN A   192.0.2.6\r
+\r
+\r
+B.5  Referral to Unsigned Zone\r
+\r
+   Referral to an unsigned zone.  The NSEC RR proves that no DS RR for\r
+   this delegation exists in the parent zone.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 49]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   ;; Header: QR DO RCODE=0\r
+   ;;\r
+   ;; Question\r
+   mc.b.example.       IN MX\r
+\r
+   ;; Answer\r
+   ;; (empty)\r
+\r
+   ;; Authority\r
+   b.example.     3600 IN NS  ns1.b.example.\r
+   b.example.     3600 IN NS  ns2.b.example.\r
+   b.example.     3600 NSEC   ns1.example. NS RRSIG NSEC\r
+   b.example.     3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              GNuxHn844wfmUhPzGWKJCPY5ttEX/RfjDoOx\r
+                              9ueK1PtYkOWKOOdiJ/PJKCYB3hYX+858dDWS\r
+                              xb2qnV/LSTCNVBnkm6owOpysY97MVj5VQEWs\r
+                              0lm9tFoqjcptQkmQKYPrwUnCSNwvvclSF1xZ\r
+                              vhRXgWT7OuFXldoCG6TfVFMs9xE= )\r
+\r
+   ;; Additional\r
+   ns1.b.example. 3600 IN A   192.0.2.7\r
+   ns2.b.example. 3600 IN A   192.0.2.8\r
+\r
+\r
+B.6  Wildcard Expansion\r
+\r
+   A successful query which was answered via wildcard expansion. The\r
+   label count in the answer's RRSIG RR indicates that a wildcard RRset\r
+   was expanded to produce this response, and the NSEC RR proves that no\r
+   closer match exists in the zone.\r
+\r
+   ;; Header: QR AA DO RCODE=0\r
+   ;;\r
+   ;; Question\r
+   a.z.w.example.      IN MX\r
+\r
+   ;; Answer\r
+   a.z.w.example. 3600 IN MX  1 ai.example.\r
+   a.z.w.example. 3600 RRSIG  MX 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              OMK8rAZlepfzLWW75Dxd63jy2wswESzxDKG2\r
+                              f9AMN1CytCd10cYISAxfAdvXSZ7xujKAtPbc\r
+                              tvOQ2ofO7AZJ+d01EeeQTVBPq4/6KCWhqe2X\r
+                              TjnkVLNvvhnc0u28aoSsG0+4InvkkOHknKxw\r
+                              4kX18MMR34i8lC36SR5xBni8vHI= )\r
+\r
+   ;; Authority\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 50]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   example.       3600 NS     ns1.example.\r
+   example.       3600 NS     ns2.example.\r
+   example.       3600 RRSIG  NS 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              gl13F00f2U0R+SWiXXLHwsMY+qStYy5k6zfd\r
+                              EuivWc+wd1fmbNCyql0Tk7lHTX6UOxc8AgNf\r
+                              4ISFve8XqF4q+o9qlnqIzmppU3LiNeKT4FZ8\r
+                              RO5urFOvoMRTbQxW3U0hXWuggE4g3ZpsHv48\r
+                              0HjMeRaZB/FRPGfJPajngcq6Kwg= )\r
+   x.y.w.example. 3600 NSEC   xx.example. MX RRSIG NSEC\r
+   x.y.w.example. 3600 RRSIG  NSEC 5 4 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              OvE6WUzN2ziieJcvKPWbCAyXyP6ef8cr6Csp\r
+                              ArVSTzKSquNwbezZmkU7E34o5lmb6CWSSSpg\r
+                              xw098kNUFnHcQf/LzY2zqRomubrNQhJTiDTX\r
+                              a0ArunJQCzPjOYq5t0SLjm6qp6McJI1AP5Vr\r
+                              QoKqJDCLnoAlcPOPKAm/jJkn3jk= )\r
+\r
+   ;; Additional\r
+   ai.example.    3600 IN A   192.0.2.9\r
+   ai.example.    3600 RRSIG  A 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              pAOtzLP2MU0tDJUwHOKE5FPIIHmdYsCgTb5B\r
+                              ERGgpnJluA9ixOyf6xxVCgrEJW0WNZSsJicd\r
+                              hBHXfDmAGKUajUUlYSAH8tS4ZnrhyymIvk3u\r
+                              ArDu2wfT130e9UHnumaHHMpUTosKe22PblOy\r
+                              6zrTpg9FkS0XGVmYRvOTNYx2HvQ= )\r
+   ai.example.    3600 AAAA   2001:db8::f00:baa9\r
+   ai.example.    3600 RRSIG  AAAA 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              nLcpFuXdT35AcE+EoafOUkl69KB+/e56XmFK\r
+                              kewXG2IadYLKAOBIoR5+VoQV3XgTcofTJNsh\r
+                              1rnF6Eav2zpZB3byI6yo2bwY8MNkr4A7cL9T\r
+                              cMmDwV/hWFKsbGBsj8xSCN/caEL2CWY/5XP2\r
+                              sZM6QjBBLmukH30+w1z3h8PUP2o= )\r
+\r
+\r
+B.7  Wildcard No Data Error\r
+\r
+   A "NODATA" response for a name covered by a wildcard.  The NSEC RRs\r
+   prove that the matching wildcard name does not have any RRs of the\r
+   requested type and that no closer match exists in the zone.\r
+\r
+   ;; Header: QR AA DO RCODE=0\r
+   ;;\r
+   ;; Question\r
+   a.z.w.example.      IN AAAA\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 51]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   ;; Answer\r
+   ;; (empty)\r
+\r
+   ;; Authority\r
+   example.       3600 IN SOA ns1.example. bugs.x.w.example. (\r
+                              1081539377\r
+                              3600\r
+                              300\r
+                              3600000\r
+                              3600\r
+                              )\r
+   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h\r
+                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF\r
+                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW\r
+                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB\r
+                              jV7j86HyQgM5e7+miRAz8V01b0I= )\r
+   x.y.w.example. 3600 NSEC   xx.example. MX RRSIG NSEC\r
+   x.y.w.example. 3600 RRSIG  NSEC 5 4 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              OvE6WUzN2ziieJcvKPWbCAyXyP6ef8cr6Csp\r
+                              ArVSTzKSquNwbezZmkU7E34o5lmb6CWSSSpg\r
+                              xw098kNUFnHcQf/LzY2zqRomubrNQhJTiDTX\r
+                              a0ArunJQCzPjOYq5t0SLjm6qp6McJI1AP5Vr\r
+                              QoKqJDCLnoAlcPOPKAm/jJkn3jk= )\r
+   *.w.example.   3600 NSEC   x.w.example. MX RRSIG NSEC\r
+   *.w.example.   3600 RRSIG  NSEC 5 2 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              r/mZnRC3I/VIcrelgIcteSxDhtsdlTDt8ng9\r
+                              HSBlABOlzLxQtfgTnn8f+aOwJIAFe1Ee5RvU\r
+                              5cVhQJNP5XpXMJHfyps8tVvfxSAXfahpYqtx\r
+                              91gsmcV/1V9/bZAG55CefP9cM4Z9Y9NT9XQ8\r
+                              s1InQ2UoIv6tJEaaKkP701j8OLA= )\r
+\r
+   ;; Additional\r
+   ;; (empty)\r
+\r
+\r
+B.8  DS Child Zone No Data Error\r
+\r
+   A "NODATA" response for a QTYPE=DS query which was mistakenly sent to\r
+   a name server for the child zone.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 52]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   ;; Header: QR AA DO RCODE=0\r
+   ;;\r
+   ;; Question\r
+   example.            IN DS\r
+\r
+   ;; Answer\r
+   ;; (empty)\r
+\r
+   ;; Authority\r
+   example.       3600 IN SOA ns1.example. bugs.x.w.example. (\r
+                              1081539377\r
+                              3600\r
+                              300\r
+                              3600000\r
+                              3600\r
+                              )\r
+   example.       3600 RRSIG  SOA 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              ONx0k36rcjaxYtcNgq6iQnpNV5+drqYAsC9h\r
+                              7TSJaHCqbhE67Sr6aH2xDUGcqQWu/n0UVzrF\r
+                              vkgO9ebarZ0GWDKcuwlM6eNB5SiX2K74l5LW\r
+                              DA7S/Un/IbtDq4Ay8NMNLQI7Dw7n4p8/rjkB\r
+                              jV7j86HyQgM5e7+miRAz8V01b0I= )\r
+   example.       3600 NSEC   a.example. NS SOA MX RRSIG NSEC DNSKEY\r
+   example.       3600 RRSIG  NSEC 5 1 3600 20040509183619 (\r
+                              20040409183619 38519 example.\r
+                              O0k558jHhyrC97ISHnislm4kLMW48C7U7cBm\r
+                              FTfhke5iVqNRVTB1STLMpgpbDIC9hcryoO0V\r
+                              Z9ME5xPzUEhbvGnHd5sfzgFVeGxr5Nyyq4tW\r
+                              SDBgIBiLQUv1ivy29vhXy7WgR62dPrZ0PWvm\r
+                              jfFJ5arXf4nPxp/kEowGgBRzY/U= )\r
+\r
+   ;; Additional\r
+   ;; (empty)\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 53]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+Appendix C.  Authentication Examples\r
+\r
+   The examples in this section show how the response messages in\r
+   Appendix B are authenticated.\r
+\r
+C.1  Authenticating An Answer\r
+\r
+   The query in section Appendix B.1 returned an MX RRset for\r
+   "x.w.example.com".  The corresponding RRSIG indicates the MX RRset\r
+   was signed by an "example" DNSKEY with algorithm 5 and key tag 38519.\r
+   The resolver needs the corresponding DNSKEY RR in order to\r
+   authenticate this answer.  The discussion below describes how a\r
+   resolver might obtain this DNSKEY RR.\r
+\r
+   The RRSIG indicates the original TTL of the MX RRset was 3600 and,\r
+   for the purpose of authentication, the current TTL is replaced by\r
+   3600.  The RRSIG labels field value of 3 indicates the answer was not\r
+   the result of wildcard expansion.  The "x.w.example.com" MX RRset is\r
+   placed in canonical form and, assuming the current time falls between\r
+   the signature inception and expiration dates, the signature is\r
+   authenticated.\r
+\r
+C.1.1  Authenticating the example DNSKEY RR\r
+\r
+   This example shows the logical authentication process that starts\r
+   from the a configured root DNSKEY (or DS RR) and moves down the tree\r
+   to authenticate the desired "example" DNSKEY RR.  Note the logical\r
+   order is presented for clarity and an implementation may choose to\r
+   construct the authentication as referrals are received or may choose\r
+   to construct the authentication chain only after all RRsets have been\r
+   obtained, or in any other combination it sees fit.  The example here\r
+   demonstrates only the logical process and does not dictate any\r
+   implementation rules.\r
+\r
+   We assume the resolver starts with an configured DNSKEY RR for the\r
+   root zone (or a configured DS RR for the root zone).  The resolver\r
+   checks this configured DNSKEY RR is present in the root DNSKEY RRset\r
+   (or the DS RR matches some DNSKEY in the root DNSKEY RRset), this\r
+   DNSKEY RR has signed the root DNSKEY RRset and the signature lifetime\r
+   is valid.  If all these conditions are met, all keys in the DNSKEY\r
+   RRset are considered authenticated. The resolver then uses one (or\r
+   more) of the root DNSKEY RRs to authenticate the "example" DS RRset.\r
+   Note the resolver may need to query the root zone to obtain the root\r
+   DNSKEY RRset or "example" DS RRset.\r
+\r
+   Once the DS RRset has been authenticated using the root DNSKEY, the\r
+   resolver checks the "example" DNSKEY RRset for some "example" DNSKEY\r
+   RR that matches one of the authenticated "example" DS RRs.  If such a\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 54]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   matching "example" DNSKEY is found, the resolver checks this DNSKEY\r
+   RR has signed the "example" DNSKEY RRset and the signature lifetime\r
+   is valid.  If all these conditions are met, all keys in the "example"\r
+   DNSKEY RRset are considered authenticated.\r
+\r
+   Finally the resolver checks that some DNSKEY RR in the "example"\r
+   DNSKEY RRset uses algorithm 5 and has a key tag of 38519. This DNSKEY\r
+   is used to authenticated the RRSIG included in the response.  If\r
+   multiple "example" DNSKEY RRs match this algorithm and key tag, then\r
+   each DNSKEY RR is tried and the answer is authenticated if any of the\r
+   matching DNSKEY RRs validates the signature as described above.\r
+\r
+C.2  Name Error\r
+\r
+   The query in section Appendix B.2 returned NSEC RRs that prove the\r
+   requested data does not exist and no wildcard applies.  The negative\r
+   reply is authenticated by verifying both NSEC RRs.  The NSEC RRs are\r
+   authenticated in a manner identical to that of the MX RRset discussed\r
+   above.\r
+\r
+C.3  No Data Error\r
+\r
+   The query in section Appendix B.3 returned an NSEC RR that proves the\r
+   requested name exists, but the requested RR type does not exist. The\r
+   negative reply is authenticated by verifying the NSEC RR.  The NSEC\r
+   RR is authenticated in a manner identical to that of the MX RRset\r
+   discussed above.\r
+\r
+C.4  Referral to Signed Zone\r
+\r
+   The query in section Appendix B.4 returned a referral to the signed\r
+   "a.example." zone.  The DS RR is authenticated in a manner identical\r
+   to that of the MX RRset discussed above.  This DS RR is used to\r
+   authenticate the "a.example" DNSKEY RRset.\r
+\r
+   Once the "a.example" DS RRset has been authenticated using the\r
+   "example" DNSKEY, the resolver checks the "a.example" DNSKEY RRset\r
+   for some "a.example" DNSKEY RR that matches the DS RR.  If such a\r
+   matching "a.example" DNSKEY is found, the resolver checks this DNSKEY\r
+   RR has signed the "a.example" DNSKEY RRset and the signature lifetime\r
+   is valid.  If all these conditions are met, all keys in the\r
+   "a.example" DNSKEY RRset are considered authenticated.\r
+\r
+C.5  Referral to Unsigned Zone\r
+\r
+   The query in section Appendix B.5 returned a referral to an unsigned\r
+   "b.example." zone.  The NSEC proves that no authentication leads from\r
+   "example" to "b.example" and the NSEC RR is authenticated in a manner\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 55]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   identical to that of the MX RRset discussed above.\r
+\r
+C.6  Wildcard Expansion\r
+\r
+   The query in section Appendix B.6 returned an answer that was\r
+   produced as a result of wildcard expansion. The RRset expanded as the\r
+   similar to The corresponding RRSIG indicates the MX RRset was signed\r
+   by an "example" DNSKEY with algorithm 5 and key tag 38519. The RRSIG\r
+   indicates the original TTL of the MX RRset was 3600 and, for the\r
+   purpose of authentication, the current TTL is replaced by 3600.  The\r
+   RRSIG labels field value of 2 indicates the answer the result of\r
+   wildcard expansion since the "a.z.w.example" name contains 4 labels.\r
+   The name "a.z.w.w.example" is replaced by "*.w.example", the MX RRset\r
+   is placed in canonical form and, assuming the current time falls\r
+   between the signature inception and expiration dates, the signature\r
+   is authenticated.\r
+\r
+   The NSEC proves that no closer match (exact or closer wildcard) could\r
+   have been used to answer this query and the NSEC RR must also be\r
+   authenticated before the answer is considered valid.\r
+\r
+C.7  Wildcard No Data Error\r
+\r
+   The query in section Appendix B.7 returned NSEC RRs that prove the\r
+   requested data does not exist and no wildcard applies.  The negative\r
+   reply is authenticated by verifying both NSEC RRs.\r
+\r
+C.8  DS Child Zone No Data Error\r
+\r
+   The query in section Appendix B.8 returned NSEC RRs that shows the\r
+   requested was answered by a child server ("example" server).  The\r
+   NSEC RR indicates the presence of an SOA RR, showing the answer is\r
+   from the child .  Queries for the "example" DS RRset should be sent\r
+   to the parent servers ("root" servers).\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 56]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+Intellectual Property Statement\r
+\r
+   The IETF takes no position regarding the validity or scope of any\r
+   intellectual property or other rights that might be claimed to\r
+   pertain to the implementation or use of the technology described in\r
+   this document or the extent to which any license under such rights\r
+   might or might not be available; neither does it represent that it\r
+   has made any effort to identify any such rights. Information on the\r
+   IETF's procedures with respect to rights in standards-track and\r
+   standards-related documentation can be found in BCP-11. Copies of\r
+   claims of rights made available for publication and any assurances of\r
+   licenses to be made available, or the result of an attempt made to\r
+   obtain a general license or permission for the use of such\r
+   proprietary rights by implementors or users of this specification can\r
+   be obtained from the IETF Secretariat.\r
+\r
+   The IETF invites any interested party to bring to its attention any\r
+   copyrights, patents or patent applications, or other proprietary\r
+   rights which may cover technology that may be required to practice\r
+   this standard. Please address the information to the IETF Executive\r
+   Director.\r
+\r
+\r
+Full Copyright Statement\r
+\r
+   Copyright (C) The Internet Society (2004). All Rights Reserved.\r
+\r
+   This document and translations of it may be copied and furnished to\r
+   others, and derivative works that comment on or otherwise explain it\r
+   or assist in its implementation may be prepared, copied, published\r
+   and distributed, in whole or in part, without restriction of any\r
+   kind, provided that the above copyright notice and this paragraph are\r
+   included on all such copies and derivative works. However, this\r
+   document itself may not be modified in any way, such as by removing\r
+   the copyright notice or references to the Internet Society or other\r
+   Internet organizations, except as needed for the purpose of\r
+   developing Internet standards in which case the procedures for\r
+   copyrights defined in the Internet Standards process must be\r
+   followed, or as required to translate it into languages other than\r
+   English.\r
+\r
+   The limited permissions granted above are perpetual and will not be\r
+   revoked by the Internet Society or its successors or assignees.\r
+\r
+   This document and the information contained herein is provided on an\r
+   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING\r
+   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING\r
+   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 57]\r
+\f\r
+Internet-Draft       DNSSEC Protocol Modifications              May 2004\r
+\r
+\r
+   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF\r
+   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\r
+\r
+\r
+Acknowledgment\r
+\r
+   Funding for the RFC Editor function is currently provided by the\r
+   Internet Society.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 58]\r
+\f\r
+\r
similarity index 73%
rename from doc/draft/draft-ietf-dnsext-dnssec-records-07.txt
rename to doc/draft/draft-ietf-dnsext-dnssec-records-08.txt
index cfd3567f0ab8fe2a6776cae91b1115b29da48f02..3ca99bfb7206674d612642f342801ea1253aa323 100644 (file)
-
-
-DNS Extensions                                                 R. Arends
-Internet-Draft                                      Telematica Instituut
-Expires: August 16, 2004                                      R. Austein
-                                                                     ISC
-                                                               M. Larson
-                                                                VeriSign
-                                                               D. Massey
-                                                                 USC/ISI
-                                                                 S. Rose
-                                                                    NIST
-                                                       February 16, 2004
-
-
-            Resource Records for the DNS Security Extensions
-                  draft-ietf-dnsext-dnssec-records-07
-
-Status of this Memo
-
-   This document is an Internet-Draft and is in full conformance with
-   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/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 August 16, 2004.
-
-Copyright Notice
-
-   Copyright (C) The Internet Society (2004). All Rights Reserved.
-
-Abstract
-
-   This document is part of a family of documents that describes the DNS
-   Security Extensions (DNSSEC).  The DNS Security Extensions are a
-   collection of resource records and protocol modifications that
-   provide source authentication for the DNS. This document defines the
-   public key (DNSKEY), delegation signer (DS), resource record digital
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 1]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   signature (RRSIG), and authenticated denial of existence (NSEC)
-   resource records.  The purpose and format of each resource record is
-   described in detail, and an example of each resource record is given.
-
-   This document obsoletes RFC 2535 and incorporates changes from all
-   updates to RFC 2535.
-
-Table of Contents
-
-   1.    Introduction . . . . . . . . . . . . . . . . . . . . . . . .  4
-   1.1   Background and Related Documents . . . . . . . . . . . . . .  4
-   1.2   Reserved Words . . . . . . . . . . . . . . . . . . . . . . .  4
-   1.3   Editors' Notes . . . . . . . . . . . . . . . . . . . . . . .  4
-   1.3.1 Open Technical Issues  . . . . . . . . . . . . . . . . . . .  4
-   1.3.2 Technical Changes or Corrections . . . . . . . . . . . . . .  4
-   1.3.3 Typos and Minor Corrections  . . . . . . . . . . . . . . . .  5
-   2.    The DNSKEY Resource Record . . . . . . . . . . . . . . . . .  6
-   2.1   DNSKEY RDATA Wire Format . . . . . . . . . . . . . . . . . .  6
-   2.1.1 The Flags Field  . . . . . . . . . . . . . . . . . . . . . .  6
-   2.1.2 The Protocol Field . . . . . . . . . . . . . . . . . . . . .  7
-   2.1.3 The Algorithm Field  . . . . . . . . . . . . . . . . . . . .  7
-   2.1.4 The Public Key Field . . . . . . . . . . . . . . . . . . . .  7
-   2.1.5 Notes on DNSKEY RDATA Design . . . . . . . . . . . . . . . .  7
-   2.2   The DNSKEY RR Presentation Format  . . . . . . . . . . . . .  7
-   2.3   DNSKEY RR Example  . . . . . . . . . . . . . . . . . . . . .  8
-   3.    The RRSIG Resource Record  . . . . . . . . . . . . . . . . .  9
-   3.1   RRSIG RDATA Wire Format  . . . . . . . . . . . . . . . . . .  9
-   3.1.1 The Type Covered Field . . . . . . . . . . . . . . . . . . . 10
-   3.1.2 The Algorithm Number Field . . . . . . . . . . . . . . . . . 10
-   3.1.3 The Labels Field . . . . . . . . . . . . . . . . . . . . . . 10
-   3.1.4 Original TTL Field . . . . . . . . . . . . . . . . . . . . . 11
-   3.1.5 Signature Expiration and Inception Fields  . . . . . . . . . 11
-   3.1.6 The Key Tag Field  . . . . . . . . . . . . . . . . . . . . . 11
-   3.1.7 The Signer's Name Field  . . . . . . . . . . . . . . . . . . 12
-   3.1.8 The Signature Field  . . . . . . . . . . . . . . . . . . . . 12
-   3.2   The RRSIG RR Presentation Format . . . . . . . . . . . . . . 13
-   3.3   RRSIG RR Example . . . . . . . . . . . . . . . . . . . . . . 13
-   4.    The NSEC Resource Record . . . . . . . . . . . . . . . . . . 15
-   4.1   NSEC RDATA Wire Format . . . . . . . . . . . . . . . . . . . 15
-   4.1.1 The Next Domain Name Field . . . . . . . . . . . . . . . . . 15
-   4.1.2 The Type Bit Maps Field  . . . . . . . . . . . . . . . . . . 16
-   4.1.3 Inclusion of Wildcard Names in NSEC RDATA  . . . . . . . . . 17
-   4.2   The NSEC RR Presentation Format  . . . . . . . . . . . . . . 17
-   4.3   NSEC RR Example  . . . . . . . . . . . . . . . . . . . . . . 17
-   5.    The DS Resource Record . . . . . . . . . . . . . . . . . . . 19
-   5.1   DS RDATA Wire Format . . . . . . . . . . . . . . . . . . . . 19
-   5.1.1 The Key Tag Field  . . . . . . . . . . . . . . . . . . . . . 20
-   5.1.2 The Algorithm Field  . . . . . . . . . . . . . . . . . . . . 20
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 2]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   5.1.3 The Digest Type Field  . . . . . . . . . . . . . . . . . . . 20
-   5.1.4 The Digest Field . . . . . . . . . . . . . . . . . . . . . . 20
-   5.2   Processing of DS RRs When Validating Responses . . . . . . . 20
-   5.3   The DS RR Presentation Format  . . . . . . . . . . . . . . . 21
-   5.4   DS RR Example  . . . . . . . . . . . . . . . . . . . . . . . 21
-   6.    Canonical Form and Order of Resource Records . . . . . . . . 22
-   6.1   Canonical DNS Name Order . . . . . . . . . . . . . . . . . . 22
-   6.2   Canonical RR Form  . . . . . . . . . . . . . . . . . . . . . 22
-   6.3   Canonical RR Ordering Within An RRset  . . . . . . . . . . . 23
-   7.    IANA Considerations  . . . . . . . . . . . . . . . . . . . . 24
-   8.    Security Considerations  . . . . . . . . . . . . . . . . . . 26
-   9.    Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . 27
-         Normative References . . . . . . . . . . . . . . . . . . . . 28
-         Informative References . . . . . . . . . . . . . . . . . . . 30
-         Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 30
-   A.    DNSSEC Algorithm and Digest Types  . . . . . . . . . . . . . 32
-   A.1   DNSSEC Algorithm Types . . . . . . . . . . . . . . . . . . . 32
-   A.1.1 Private Algorithm Types  . . . . . . . . . . . . . . . . . . 32
-   A.2   DNSSEC Digest Types  . . . . . . . . . . . . . . . . . . . . 33
-   B.    Key Tag Calculation  . . . . . . . . . . . . . . . . . . . . 34
-   B.1   Key Tag for Algorithm 1 (RSA/MD5)  . . . . . . . . . . . . . 35
-         Intellectual Property and Copyright Statements . . . . . . . 36
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 3]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-1. Introduction
-
-   The DNS Security Extensions (DNSSEC) introduce four new DNS resource
-   record types: DNSKEY, RRSIG, NSEC, and DS.  This document defines the
-   purpose of each resource record (RR), the RR's RDATA format, and its
-   presentation format (ASCII representation).
-
-1.1 Background and Related Documents
-
-   The reader is assumed to be familiar with the basic DNS concepts
-   described in RFC1034 [RFC1034], RFC1035 [RFC1035] and subsequent RFCs
-   that update them:  RFC2136 [RFC2136], RFC2181 [RFC2181] and RFC2308
-   [RFC2308].
-
-   This document is part of a family of documents that define the DNS
-   security extensions.  The DNS security extensions (DNSSEC) are a
-   collection of resource records and DNS protocol modifications that
-   add source authentication and data integrity to the Domain Name
-   System (DNS).  An introduction to DNSSEC and definitions of common
-   terms can be found in [I-D.ietf-dnsext-dnssec-intro]. A description
-   of DNS protocol modifications can be found in
-   [I-D.ietf-dnsext-dnssec-protocol]. This document defines the DNSSEC
-   resource records.
-
-1.2 Reserved Words
-
-   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 RFC 2119 [RFC2119].
-
-1.3 Editors' Notes
-
-1.3.1 Open Technical Issues
-
-   The cryptographic algorithm types (Appendix A) requires input from
-   the working group.  The DSA algorithm was moved to OPTIONAL.  This
-   had strong consensus in workshops and various discussions and a
-   separate Internet-Draft solely to move DSA from MANDATORY to OPTIONAL
-   seemed excessive.  This draft solicits input on that proposed change.
-
-1.3.2 Technical Changes or Corrections
-
-   Please report technical corrections to dnssec-editors@east.isi.edu.
-   To assist the editors, please indicate the text in error and point
-   out the RFC that defines the correct behavior.  For a technical
-   change where no RFC that defines the correct behavior, or if there's
-   more than one applicable RFC and the definitions conflict, please
-   post the issue to namedroppers.
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 4]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   An example correction to dnssec-editors might be: Page X says
-   "DNSSEC RRs SHOULD be automatically returned in responses."  This was
-   true in RFC 2535, but RFC 3225 (Section 3, 3rd paragraph) says the
-   DNSSEC RR types MUST NOT be included in responses unless the resolver
-   indicated support for DNSSEC.
-
-1.3.3 Typos and Minor Corrections
-
-   Please report any typos corrections to dnssec-editors@east.isi.edu.
-   To assist the editors, please provide enough context for us to find
-   the incorrect text quickly.
-
-   An example message to dnssec-editors might be: page X says "the
-   DNSSEC standard has been in development for over 1 years".   It
-   should read "over 10 years".
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 5]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-2. The DNSKEY Resource Record
-
-   DNSSEC uses public key cryptography to sign and authenticate DNS
-   resource record sets (RRsets).  The public keys are stored in DNSKEY
-   resource records and are used in the DNSSEC authentication process
-   described in [I-D.ietf-dnsext-dnssec-protocol]: A zone signs its
-   authoritative RRsets using a private key and stores the corresponding
-   public key in a DNSKEY RR.  A resolver can then use the public key to
-   authenticate signatures covering the RRsets in the zone.
-
-   The DNSKEY RR is not intended as a record for storing arbitrary
-   public keys, and MUST NOT be used to store certificates or public
-   keys that do not directly relate to the DNS infrastructure.
-
-   The Type value for the DNSKEY RR type is 48.
-
-   The DNSKEY RR is class independent.
-
-   The DNSKEY RR has no special TTL requirements.
-
-2.1 DNSKEY RDATA Wire Format
-
-   The RDATA for a DNSKEY RR consists of a 2 octet Flags Field, a 1
-   octet Protocol Field, a 1 octet Algorithm Field, and the Public Key
-   Field.
-
-                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
-    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   |              Flags            |    Protocol   |   Algorithm   |
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   /                                                               /
-   /                            Public Key                         /
-   /                                                               /
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-2.1.1 The Flags Field
-
-   Bit 7 of the Flags field is the Zone Key flag.  If bit 7 has value 1,
-   then the DNSKEY record holds a DNS zone key and the DNSKEY RR's owner
-   name MUST be the name of a zone. If bit 7 has value 0, then the
-   DNSKEY record holds some other type of DNS public key, such as a
-   public key used by TKEY and MUST NOT be used to verify RRSIGs that
-   cover RRsets.
-
-   Bit 15 of the Flags field is the Secure Entry Point flag, described
-   in [I-D.ietf-dnsext-keyrr-key-signing-flag]. If bit 15 has value 1,
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 6]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   then the DNSKEY record holds a key intended for use as a secure entry
-   point.  This flag is only intended to be to a hint to zone signing or
-   debugging software as to the intended use of this DNSKEY record;
-   security-aware resolvers MUST NOT alter their behavior during the
-   signature validation process in any way based on the setting of this
-   bit.
-
-   Bits 0-6 and 8-14 are reserved: these bits MUST have value 0 upon
-   creation of the DNSKEY RR, and MUST be ignored upon reception.
-
-2.1.2 The Protocol Field
-
-   The Protocol Field MUST have value 3 and MUST be treated as invalid
-   during signature verification if found to be some value other than 3.
-
-2.1.3 The Algorithm Field
-
-   The Algorithm field identifies the public key's cryptographic
-   algorithm and determines the format of the Public Key field.  A list
-   of DNSSEC algorithm types can be found in Appendix A.1
-
-2.1.4 The Public Key Field
-
-   The Public Key Field holds the public key material.  The format
-   depends on the algorithm of the key being stored and are described in
-   separate documents.
-
-2.1.5 Notes on DNSKEY RDATA Design
-
-   Although the Protocol Field always has value 3, it is retained for
-   backward compatibility with early versions of the KEY record.
-
-2.2 The DNSKEY RR Presentation Format
-
-   The presentation format of the RDATA portion is as follows:
-
-   The Flag field MUST be represented as an unsigned decimal integer
-   with a value of 0, 256, or 257.
-
-   The Protocol Field MUST be represented as an unsigned decimal integer
-   with a value of 3.
-
-   The Algorithm field MUST  be represented either as an unsigned
-   decimal integer or as an algorithm mnemonic as specified in Appendix
-   A.1.
-
-   The Public Key field MUST be represented as a Base64 encoding of the
-   Public Key.  Whitespace is allowed within the Base64 text.  For a
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 7]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   definition of Base64 encoding, see [RFC1521] Section 5.2.
-
-2.3 DNSKEY RR Example
-
-   The following DNSKEY RR stores a DNS zone key for example.com.
-
-   example.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmynfzW4kyBv015MUG2DeIQ3
-                                          Cbl+BBZH4b/0PY1kxkmvHjcZc8no
-                                          kfzj31GajIQKY+5CptLr3buXA10h
-                                          WqTkF7H6RfoRqXQeogmMHfpftf6z
-                                          Mv1LyBUgia7za6ZEzOJBOztyvhjL
-                                          742iU/TpPSEDhm2SNKLijfUppn1U
-                                          aNvv4w==  )
-
-   The first four text fields specify the owner name, TTL, Class, and RR
-   type (DNSKEY).  Value 256 indicates that the Zone Key bit (bit 7) in
-   the Flags field has value 1.  Value 3 is the fixed Protocol value.
-   Value 5 indicates the public key algorithm.  Appendix A.1 identifies
-   algorithm type 5 as RSA/SHA1 and indicates that the format of the
-   RSA/SHA1 public key field is defined in [RFC3110].  The remaining
-   text is a Base64 encoding of the public key.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 8]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-3. The RRSIG Resource Record
-
-   DNSSEC uses public key cryptography to sign and authenticate DNS
-   resource record sets (RRsets).  Digital signatures are stored in
-   RRSIG resource records and are used in the DNSSEC authentication
-   process described in [I-D.ietf-dnsext-dnssec-protocol]. A
-   security-aware resolver can use these RRSIG RRs to authenticate
-   RRsets from the zone.  The RRSIG RR MUST only be used to carry
-   verification material (digital signatures) used to secure DNS
-   operations.
-
-   An RRSIG record contains the signature for an RRset with a particular
-   name, class, and type.  The RRSIG RR specifies a validity interval
-   for the signature and uses the Algorithm, the Signer's Name, and the
-   Key Tag to identify the DNSKEY RR containing the public key that a
-   resolver can use to verify the signature.
-
-   Because every authoritative RRset in a zone must be protected by a
-   digital signature, RRSIG RRs must be present for names containing a
-   CNAME RR.  This is a change to the traditional DNS specification
-   [RFC1034] that stated that if a CNAME is present for a name, it is
-   the only type allowed at that name.  A RRSIG and NSEC (see Section 4)
-   MUST exist for the same name as a CNAME resource record in a secure
-   zone.
-
-   The Type value for the RRSIG RR type is 46.
-
-   The RRSIG RR is class independent.
-
-   An RRSIG RR MUST have the same class as the RRset it covers.
-
-   The TTL value of an RRSIG RR SHOULD match the TTL value of the RRset
-   it covers.  This is an exception to the [RFC2181] rules for TTL
-   values of individual RRs within a RRset: individual RRSIG with the
-   same owner name will have different TTL values if the RRsets that
-   they cover have different TTL values.
-
-3.1 RRSIG RDATA Wire Format
-
-   The RDATA for an RRSIG RR consists of a 2 octet Type Covered field, a
-   1 octet Algorithm field, a 1 octet Labels field, a 4 octet Original
-   TTL field, a 4 octet Signature Expiration field, a 4 octet Signature
-   Inception field, a 2 octet Key tag, the Signer's Name field, and the
-   Signature field.
-
-                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
-    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-
-Arends, et al.          Expires August 16, 2004                 [Page 9]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   |        Type Covered           |  Algorithm    |     Labels    |
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   |                         Original TTL                          |
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   |                      Signature Expiration                     |
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   |                      Signature Inception                      |
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   |            Key Tag            |                               /
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         Signer's Name         /
-   /                                                               /
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   /                                                               /
-   /                            Signature                          /
-   /                                                               /
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-3.1.1 The Type Covered Field
-
-   The Type Covered field identifies the type of the RRset which is
-   covered by this RRSIG record.
-
-3.1.2 The Algorithm Number Field
-
-   The Algorithm Number field identifies the cryptographic algorithm
-   used to create the signature.  A list of DNSSEC algorithm types can
-   be found in Appendix A.1
-
-3.1.3 The Labels Field
-
-   The Labels field specifies the number of labels in the original RRSIG
-   RR owner name. The significance of this field is that from it a
-   verifier can determine if the answer was synthesized from a wildcard.
-   If so, it can be used to determine what owner name was used in
-   generating the signature.
-
-   To validate a signature, the validator needs the original owner name
-   that was used to create the signature. If the original owner name
-   contains a wildcard label ("*"), the owner name may have been
-   expanded by the server during the response process, in which case the
-   validator will need to reconstruct the original owner name in order
-   to validate the signature.  [I-D.ietf-dnsext-dnssec-protocol]
-   describes how to use the Labels field to reconstruct the original
-   owner name.
-
-   The value of the Labels field MUST NOT count either the null (root)
-   label that terminates the owner name or the wildcard label (if
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 10]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   present).  The value of the Labels field MUST be less than or equal
-   to the number of labels in the RRSIG owner name.  For example,
-   "www.example.com." has a Labels field value of 3, and
-   "*.example.com." has a Labels field value of 2.  Root (".") has a
-   Labels field value of 0.
-
-   Although the wildcard label is not included in the count stored in
-   the Labels field of the RRSIG RR, the wildcard label is part of the
-   RRset's owner name when generating or verifying the signature.
-
-3.1.4 Original TTL Field
-
-   The Original TTL field specifies the TTL of the covered RRset as it
-   appears in the authoritative zone.
-
-   The Original TTL field is necessary because a caching resolver
-   decrements the TTL value of a cached RRset. In order to validate a
-   signature, a resolver requires the original TTL.
-   [I-D.ietf-dnsext-dnssec-protocol] describes how to use the Original
-   TTL field value to reconstruct the original TTL.
-
-3.1.5 Signature Expiration and Inception Fields
-
-   The Signature Expiration and Inception fields specify a validity
-   period for the signature.  The RRSIG record MUST NOT be used for
-   authentication prior to the inception date and MUST NOT be used for
-   authentication after the expiration date.
-
-   Signature Expiration and Inception field values are in POSIX.1 time
-   format: a 32-bit unsigned number of seconds elapsed since 1 January
-   1970 00:00:00 UTC, ignoring leap seconds, in network byte order.  The
-   longest interval which can be expressed by this format without
-   wrapping is approximately 136 years.  An RRSIG RR can have an
-   Expiration field value which is numerically smaller than the
-   Inception field value if the expiration field value is near the
-   32-bit wrap-around point or if the signature is long lived.  Because
-   of this, all comparisons involving these fields MUST use "Serial
-   number arithmetic" as defined in [RFC1982].  As a direct consequence,
-   the values contained in these fields cannot refer to dates more than
-   68 years in either the past or the future.
-
-3.1.6 The Key Tag Field
-
-   The Key Tag field contains the key tag value of the DNSKEY RR that
-   validates this signature.  Appendix B explains how to calculate Key
-   Tag values.
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 11]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-3.1.7 The Signer's Name Field
-
-   The Signer's Name field value identifies the owner name of the DNSKEY
-   RR which a security-aware resolver should use to validate this
-   signature.  The Signer's Name field MUST contain the name of the zone
-   of the covered RRset.  A sender MUST NOT use DNS name compression on
-   the Signer's Name field when transmitting a RRSIG RR.  A receiver
-   which receives an RRSIG RR containing a compressed Signer's Name
-   field SHOULD decompress the field value.
-
-3.1.8 The Signature Field
-
-   The Signature field contains the cryptographic signature which covers
-   the RRSIG RDATA (excluding the Signature field) and the RRset
-   specified by the RRSIG owner name, RRSIG class, and RRSIG Type
-   Covered field.  The format of this field depends on the algorithm in
-   use and these formats are described in separate companion documents.
-
-3.1.8.1 Signature Calculation
-
-   A signature covers the RRSIG RDATA (excluding the Signature Field)
-   and covers the data RRset specified by the RRSIG owner name, RRSIG
-   class, and RRSIG Type Covered fields.  The RRset is in canonical form
-   (see Section 6) and the set RR(1),...RR(n) is signed as follows:
-
-         signature = sign(RRSIG_RDATA | RR(1) | RR(2)... ) where
-
-            "|" denotes concatenation;
-
-            RRSIG_RDATA is the wire format of the RRSIG RDATA fields
-               with the Signer's Name field in canonical form and
-               the Signature field excluded;
-
-            RR(i) = owner | class | type | TTL | RDATA length | RDATA;
-
-               "owner" is the fully qualified owner name of the RRset in
-               canonical form (for RRs with wildcard owner names, the
-               wildcard label is included in the owner name);
-
-               Each RR MUST have the same owner name as the RRSIG RR;
-
-               Each RR MUST have the same class as the RRSIG RR;
-
-               Each RR in the RRset MUST have the RR type listed in the
-               RRSIG RR's Type Covered field;
-
-               Each RR in the RRset MUST have the TTL listed in the
-               RRSIG Original TTL Field;
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 12]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-               Any DNS names in the RDATA field of each RR MUST be in
-               canonical form; and
-
-               The RRset MUST be sorted in canonical order.
-
-
-3.2 The RRSIG RR Presentation Format
-
-   The presentation format of the RDATA portion is as follows:
-
-   The Type Covered field value MUST be represented either as an
-   unsigned decimal integer or as the mnemonic for the covered RR type.
-
-   The Algorithm field value MUST be represented either as an unsigned
-   decimal  integer or as an algorithm mnemonic as specified in Appendix
-   A.1.
-
-   The Labels field value MUST be represented as an unsigned decimal
-   integer.
-
-   The Original TTL field value MUST be represented as an unsigned
-   decimal integer.
-
-   The Signature Expiration Time and Inception Time field values MUST be
-   represented in the form YYYYMMDDHHmmSS in UTC, where:
-
-      YYYY is the year (0000-9999, but see Section 3.1.5);
-
-      MM is the month number (01-12);
-
-      DD is the day of the month (01-31);
-
-      HH is the hour in 24 hours notation (00-23);
-
-      mm is the minute (00-59);
-
-      SS is the second (00-59).
-
-   The Key Tag field MUST be represented as an unsigned decimal integer.
-
-   The Signer's Name field value MUST be represented as a domain name.
-
-   The Signature field is represented as a Base64 encoding of the
-   signature.  Whitespace is allowed within the Base64 text.  For a
-   definition of Base64 encoding see [RFC1521] Section 5.2.
-
-3.3 RRSIG RR Example
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 13]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   The following an RRSIG RR stores the signature for the A RRset of
-   host.example.com:
-
-   host.example.com. 86400 IN RRSIG A 5 3 86400 20030322173103 (
-                                  20030220173103 2642 example.com.
-                                  oJB1W6WNGv+ldvQ3WDG0MQkg5IEhjRip8WTr
-                                  PYGv07h108dUKGMeDPKijVCHX3DDKdfb+v6o
-                                  B9wfuh3DTJXUAfI/M0zmO/zz8bW0Rznl8O3t
-                                  GNazPwQKkRN20XPXV6nwwfoXmJQbsLNrLfkG
-                                  J5D6fwFm8nN+6pBzeDQfsS3Ap3o= )
-
-   The first four fields specify the owner name, TTL, Class, and RR type
-   (RRSIG).  The "A" represents the Type Covered field. The value 5
-   identifies the algorithm used (RSA/SHA1) to create the signature.
-   The value 3 is the number of Labels in the original owner name.  The
-   value 86400 in the RRSIG RDATA is the Original TTL for the covered A
-   RRset.  20030322173103 and 20030220173103 are the expiration and
-   inception dates, respectively.  2642 is the Key Tag, and example.com.
-   is the Signer's Name.  The remaining text is a Base64 encoding of the
-   signature.
-
-   Note that combination of RRSIG RR owner name, class, and Type Covered
-   indicate that this RRSIG covers the "host.example.com" A RRset.  The
-   Label value of 3 indicates that no wildcard expansion was used.  The
-   Algorithm, Signer's Name, and Key Tag indicate this signature can be
-   authenticated using an example.com zone DNSKEY RR whose algorithm is
-   5 and key tag is 2642.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 14]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-4. The NSEC Resource Record
-
-   The NSEC resource record lists two separate things: the owner name of
-   the next authoritative RRset in the canonical ordering of the zone,
-   and the set of RR types present at the NSEC RR's owner name.  The
-   complete set of NSEC RRs in a zone both indicate which authoritative
-   RRsets exist in a zone and also form a chain of authoritative owner
-   names in the zone.  This information is used to provide authenticated
-   denial of existence for DNS data, as described in
-   [I-D.ietf-dnsext-dnssec-protocol].
-
-   Because every authoritative name in a zone must be part of the NSEC
-   chain, NSEC RRs must be present for names containing a CNAME RR.
-   This is a change to the traditional DNS specification [RFC1034] that
-   stated that if a CNAME is present for a name, it is the only type
-   allowed at that name.  An RRSIG (see Section 3) and NSEC MUST exist
-   for the same name as a CNAME resource record in a secure zone.
-
-   The type value for the NSEC RR is 47.
-
-   The NSEC RR is class independent.
-
-   The NSEC RR SHOULD have the same TTL value as the SOA minimum TTL
-   field. This is in the spirt of negative caching [RFC2308].
-
-4.1 NSEC RDATA Wire Format
-
-   The RDATA of the NSEC RR is as shown below:
-
-                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
-    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   /                      Next Domain Name                         /
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   /                       Type Bit Maps                           /
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-4.1.1 The Next Domain Name Field
-
-   The Next Domain Name field contains the owner name of the next
-   authoritative owner name in the canonical ordering of the zone; see
-   Section 6.1 for an explanation of canonical ordering.  The value of
-   the Next Domain Name field in the last NSEC record in the zone is the
-   name of the zone apex (the owner name of the zone's SOA RR).
-
-   A sender MUST NOT use DNS name compression on the Next Domain Name
-   field when transmitting an NSEC RR.  A receiver which receives an
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 15]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   NSEC RR containing a compressed Next Domain Name field SHOULD
-   decompress the field value.
-
-   Owner names of RRsets not authoritative for the given zone (such as
-   glue records) MUST NOT be listed in the Next Domain Name unless at
-   least one authoritative RRset exists at the same owner name.
-
-4.1.2 The Type Bit Maps Field
-
-   The Type Bit Maps field identifies the RRset types which exist at the
-   NSEC RR's owner name.
-
-   The RR type space is split into 256 window blocks, each representing
-   the low-order 8 bits of the 16-bit RR type space. Each block that has
-   at least one active RR type is encoded using a single octet window
-   number (from 0 to 255), a single octet bitmap length (from 1 to 32)
-   indicating the number of octets used for the window block's bitmap,
-   and up to 32 octets (256 bits) of bitmap.
-
-   Blocks are present in the NSEC RR RDATA in increasing numerical
-   order.
-
-      Type Bit Maps Field = ( Window Block # | Bitmap Length | Bitmap )+
-
-      where "|" denotes concatenation.
-
-   Each bitmap encodes the low-order 8 bits of RR types within the
-   window block, in network bit order.  The first bit is bit 0.  For
-   window block 0, bit 1 corresponds to RR type 1 (A), bit 2 corresponds
-   to RR type 2 (NS), and so forth.  For window block 1, bit 1
-   corresponds to RR type 257, bit 2 to RR type 258.  If a bit is set to
-   1, it indicates that an RRset of that type is present for the NSEC
-   RR's owner name.  If a bit is set to 0, it indicates that no RRset of
-   that type is present for the NSEC RR's owner name.
-
-   Since bit 0 in window block 0 refers to the non-existent RR type 0,
-   it MUST be set to 0.  After verification, the validator MUST ignore
-   the value of bit 0 in window block 0.
-
-   Bits representing pseudo-types MUST be set to 0, since they do not
-   appear in zone data.  If encountered, they MUST be ignored upon
-   reading.
-
-   Blocks with no types present MUST NOT be included. Trailing zero
-   octets in the bitmap MUST be omitted.  The length of each block's
-   bitmap is determined by the type code with the largest numerical
-   value, within that block, among the set of RR types present at the
-   NSEC RR's owner name.  Trailing zero octets not specified MUST be
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 16]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   interpreted as zero octets.
-
-   A zone MUST NOT generate an NSEC RR for any domain name that only
-   holds glue records.
-
-4.1.3 Inclusion of Wildcard Names in NSEC RDATA
-
-   If a wildcard owner name appears in a zone, the wildcard label ("*")
-   is treated as a literal symbol and is treated the same as any other
-   owner name for purposes of generating NSEC RRs.  Wildcard owner names
-   appear in the Next Domain Name field without any wildcard expansion.
-   [I-D.ietf-dnsext-dnssec-protocol] describes the impact of wildcards
-   on authenticated denial of existence.
-
-4.2 The NSEC RR Presentation Format
-
-   The presentation format of the RDATA portion is as follows:
-
-   The Next Domain Name field is represented as a domain name.
-
-   The Type Bit Maps field is represented as a sequence of RR type
-   mnemonics.  When the mnemonic is not known, the TYPE representation
-   as described in [RFC3597] (section 5) MUST be used.
-
-4.3 NSEC RR Example
-
-   The following NSEC RR identifies the RRsets associated with
-   alfa.example.com. and identifies the next authoritative name after
-   alfa.example.com.
-
-   alfa.example.com. 86400 IN NSEC host.example.com. (
-                                   A MX RRSIG NSEC TYPE1234 )
-
-   The first four text fields specify the name, TTL, Class, and RR type
-   (NSEC).  The entry host.example.com. is the next authoritative name
-   after alfa.example.com. in canonical order.  The A, MX, RRSIG, NSEC,
-   and TYPE1234 mnemonics indicate there are A, MX, RRSIG, NSEC, and
-   TYPE1234 RRsets associated with the name alfa.example.com.
-
-   The RDATA section of the NSEC RR above would be encoded as:
-
-            0x04 'h'  'o'  's'  't'
-            0x07 'e'  'x'  'a'  'm'  'p'  'l'  'e'
-            0x03 'c'  'o'  'm'  0x00
-            0x00 0x06 0x40 0x01 0x00 0x00 0x00 0x03
-            0x04 0x1b 0x00 0x00 0x00 0x00 0x00 0x00
-            0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
-            0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 17]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-            0x00 0x00 0x00 0x00 0x20
-
-   Assuming that the resolver can authenticate this NSEC record, it
-   could be used to prove that beta.example.com does not exist, or could
-   be used to prove there is no AAAA record associated with
-   alfa.example.com.  Authenticated denial of existence is discussed in
-   [I-D.ietf-dnsext-dnssec-protocol].
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 18]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-5. The DS Resource Record
-
-   The DS Resource Record refers to a DNSKEY RR and is used in the DNS
-   DNSKEY authentication process. A DS RR refers to a DNSKEY RR by
-   storing the key tag, algorithm number, and a digest of the DNSKEY RR.
-   Note that while the digest should be sufficient to identify the
-   public key, storing the key tag and key algorithm helps make the
-   identification process more efficient.  By authenticating the DS
-   record, a resolver can authenticate the DNSKEY RR to which the DS
-   record points.  The key authentication process is described in
-   [I-D.ietf-dnsext-dnssec-protocol].
-
-   The DS RR and its corresponding DNSKEY RR have the same owner name,
-   but they are stored in different locations.  The DS RR appears only
-   on the upper (parental) side of a delegation, and is authoritative
-   data in the parent zone.  For example, the DS RR for "example.com" is
-   stored in the "com" zone (the parent zone) rather than in the
-   "example.com" zone (the child zone).  The corresponding DNSKEY RR is
-   stored in the "example.com" zone (the child zone).  This simplifies
-   DNS zone management and zone signing, but introduces special response
-   processing requirements for the DS RR; these are described in
-   [I-D.ietf-dnsext-dnssec-protocol].
-
-   The type number for the DS record is 43.
-
-   The DS resource record is class independent.
-
-   The DS RR has no special TTL requirements.
-
-5.1 DS RDATA Wire Format
-
-   The RDATA for a DS RR consists of a 2 octet Key Tag field, a one
-   octet Algorithm field, a one octet Digest Type field, and a Digest
-   field.
-
-                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
-    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   |           Key Tag             |  Algorithm    |  Digest Type  |
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-   /                                                               /
-   /                            Digest                             /
-   /                                                               /
-   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 19]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-5.1.1 The Key Tag Field
-
-   The Key Tag field lists the key tag of the DNSKEY RR referred to by
-   the DS record.
-
-   The Key Tag used by the DS RR is identical to the Key Tag used by
-   RRSIG RRs.  Appendix B describes how to compute a Key Tag.
-
-5.1.2 The Algorithm Field
-
-   The Algorithm field lists the algorithm number of the DNSKEY RR
-   referred to by the DS record.
-
-   The algorithm number used by the DS RR is identical to the algorithm
-   number used by RRSIG and DNSKEY RRs. Appendix A.1 lists the algorithm
-   number types.
-
-5.1.3 The Digest Type Field
-
-   The DS RR refers to a DNSKEY RR by including a digest of that DNSKEY
-   RR. The Digest Type field identifies the algorithm used to construct
-   the digest.  Appendix A.2 lists the possible digest algorithm types.
-
-5.1.4 The Digest Field
-
-   The DS record refers to a DNSKEY RR by including a digest of that
-   DNSKEY RR.
-
-   The digest is calculated by concatenating the canonical form of the
-   fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA,
-   and then applying the digest algorithm.
-
-     digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA);
-
-      "|" denotes concatenation
-
-     DNSKEY RDATA = Flags | Protocol | Algorithm | Public Key.
-
-
-   The size of the digest may vary depending on the digest algorithm and
-   DNSKEY RR size.  As of the time of writing, the only defined digest
-   algorithm is SHA-1, which produces a 20 octet digest.
-
-5.2 Processing of DS RRs When Validating Responses
-
-   The DS RR links the authentication chain across zone boundaries, so
-   the DS RR requires extra care in processing.  The DNSKEY RR referred
-   to in the DS RR MUST be a DNSSEC zone key. The DNSKEY RR Flags MUST
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 20]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   have Flags bit 7 set to value 1. If the key tag does not indicate a
-   DNSSEC zone key, the DS RR (and DNSKEY RR it references) MUST NOT be
-   used in the validation process.
-
-5.3 The DS RR Presentation Format
-
-   The presentation format of the RDATA portion is as follows:
-
-   The Key Tag field MUST be represented as an unsigned decimal integer.
-
-   The Algorithm field MUST be represented either as an unsigned decimal
-   integer or as an algorithm mnemonic specified in Appendix A.1.
-
-   The Digest Type field MUST be represented as an unsigned decimal
-   integer.
-
-   The Digest MUST be represented as a sequence of case-insensitive
-   hexadecimal digits.  Whitespace is allowed within the hexadecimal
-   text.
-
-5.4 DS RR Example
-
-   The following example shows a DNSKEY RR and its corresponding DS RR.
-
-   dskey.example.com. 86400 IN DNSKEY 256 3 5 ( AQOeiiR0GOMYkDshWoSKz9Xz
-                                             fwJr1AYtsmx3TGkJaNXVbfi/
-                                             2pHm822aJ5iI9BMzNXxeYCmZ
-                                             DRD99WYwYqUSdjMmmAphXdvx
-                                             egXd/M5+X7OrzKBaMbCVdFLU
-                                             Uh6DhweJBjEVv5f2wwjM9Xzc
-                                             nOf+EPbtG9DMBmADjFDc2w/r
-                                             ljwvFw==
-                                             ) ;  key id = 60485
-
-   dskey.example.com. 86400 IN DS 60485 5 1 ( 2BB183AF5F22588179A53B0A
-                                              98631FAD1A292118 )
-
-
-   The first four text fields specify the name, TTL, Class, and RR type
-   (DS). Value 60485 is the key tag for the corresponding
-   "dskey.example.com." DNSKEY RR, and value 5 denotes the algorithm
-   used by this "dskey.example.com." DNSKEY RR.  The value 1 is the
-   algorithm used to construct the digest, and the rest of the RDATA
-   text is the digest in hexadecimal.
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 21]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-6. Canonical Form and Order of Resource Records
-
-   This section defines a canonical form for resource records, a
-   canonical ordering of DNS names, and a canonical ordering of resource
-   records within an RRset.  A canonical name order is required to
-   construct the NSEC name chain.  A canonical RR form and ordering
-   within an RRset are required to construct and verify RRSIG RRs.
-
-6.1 Canonical DNS Name Order
-
-   For purposes of DNS security, owner names are ordered by treating
-   individual labels as unsigned left-justified octet strings.  The
-   absence of a octet sorts before a zero value octet, and upper case
-   US-ASCII letters are treated as if they were lower case US-ASCII
-   letters.
-
-   To compute the canonical ordering of a set of DNS names, start by
-   sorting the names according to their most significant (rightmost)
-   labels.  For names in which the most significant label is identical,
-   continue sorting according to their next most significant label, and
-   so forth.
-
-   For example, the following names are sorted in canonical DNS name
-   order.  The most significant label is "example".  At this level,
-   "example" sorts first, followed by names ending in "a.example", then
-   names ending "z.example".  The names within each level are sorted in
-   the same way.
-
-             example
-             a.example
-             yljkjljk.a.example
-             Z.a.example
-             zABC.a.EXAMPLE
-             z.example
-             \001.z.example
-             *.z.example
-             \200.z.example
-
-
-6.2 Canonical RR Form
-
-   For purposes of DNS security, the canonical form of an RR is the wire
-   format of the RR where:
-
-   1.  Every domain name in the RR is fully expanded (no DNS name
-       compression) and fully qualified;
-
-   2.  All uppercase US-ASCII letters in the owner name of the RR are
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 22]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-       replaced by the corresponding lowercase US-ASCII letters;
-
-   3.  If the type of the RR is NS, MD, MF, CNAME, SOA, MB, MG, MR, PTR,
-       HINFO, MINFO, MX, HINFO, RP, AFSDB, RT, SIG, PX, NXT, NAPTR, KX,
-       SRV, DNAME, A6, RRSIG or NSEC, all uppercase US-ASCII letters in
-       the DNS names contained within the RDATA are replaced by the
-       corresponding lowercase US-ASCII letters;
-
-   4.  If the owner name of the RR is a wildcard name, the owner name is
-       in its original unexpanded form, including the "*" label (no
-       wildcard substitution); and
-
-   5.  The RR's TTL is set to its original value as it appears in the
-       originating authoritative zone or the Original TTL field of the
-       covering RRSIG RR.
-
-
-6.3 Canonical RR Ordering Within An RRset
-
-   For purposes of DNS security, RRs with the same owner name, class,
-   and type are sorted by treating the RDATA portion of the canonical
-   form of each RR as a left-justified unsigned octet sequence where the
-   absence of an octet sorts before a zero octet.
-
-   [RFC2181] specifies that an RRset is not allowed to contain duplicate
-   records (multiple RRs with the same owner name, class, type, and
-   RDATA).  Therefore, if an implementation detects duplicate RRs during
-   RRset canonicalization, the implementation MUST treat this as a
-   protocol error.  If the implementation chooses to handle this
-   protocol error in the spirit of the robustness principle (being
-   liberal in what it accepts), the implementation MUST remove all but
-   one of the duplicate RR(s) for purposes of calculating the canonical
-   form of the RRset.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 23]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-7. IANA Considerations
-
-   This document introduces no new IANA considerations, because all of
-   the protocol parameters used in this document have already been
-   assigned by previous specifications.  However, since the evolution of
-   DNSSEC has been long and somewhat convoluted, this section attempts
-   to describe the current state of the IANA registries and other
-   protocol parameters which are (or once were) related to DNSSEC.
-
-   Please refer to [I-D.ietf-dnsext-dnssec-protocol] for additional IANA
-   considerations.
-
-   DNS Resource Record Types: [RFC2535] assigned types 24, 25, and 30 to
-      the SIG, KEY, and NXT RRs, respectively. [RFC3658] assigned DNS
-      Resource Record Type 43 to DS.
-      [I-D.ietf-dnsext-dnssec-2535typecode-change] assigned types 46,
-      47, and 48 to the RRSIG, NSEC, and DNSKEY RRs, respectively.
-      [I-D.ietf-dnsext-dnssec-2535typecode-change] also marked type 30
-      (NXT) as Obsolete, and restricted use of types 24 (SIG) and 25
-      (KEY) to the "SIG(0)" transaction security protocol described in
-      [RFC2931] and the transaction KEY Resource Record described in
-      [RFC2930].
-
-   DNS Security Algorithm Numbers: [RFC2535] created an IANA registry
-      for DNSSEC Resource Record Algorithm field numbers, and assigned
-      values 1-4 and 252-255.   [RFC3110] assigned value 5.
-      [I-D.ietf-dnsext-dnssec-2535typecode-change] altered this registry
-      to include flags for each entry regarding its use with the DNS
-      security extensions.  Each algorithm entry could refer to an
-      algorithm that can be used for zone signing, transaction security
-      (see [RFC2931]) or both. Values 6-251 are available for assignment
-      by IETF standards action. See Appendix A for a full listing of the
-      DNS Security Algorithm Numbers entries at the time of writing and
-      their status of use in DNSSEC.
-
-      [RFC3658] created an IANA registry for DNSSEC DS Digest Types, and
-      assigned value 0 to reserved and value 1 to SHA-1.
-
-   KEY Protocol Values: [RFC2535] created an IANA Registry for KEY
-      Protocol Values, but [RFC3445] re-assigned all assigned values
-      other than 3 to reserved and closed this IANA registry.  The
-      registry remains closed, and all KEY and DNSKEY records are
-      required to have Protocol Octet value of 3.
-
-   Flag bits in the KEY and DNSKEY RRs:
-      [I-D.ietf-dnsext-dnssec-2535typecode-change] created an IANA
-      registry for the DNSSEC KEY and DNSKEY RR flag bits.  Initially,
-      this registry only contains an assignment for bit 7 (the ZONE bit)
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 24]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-      and a reservation for bit 15 for the Secure Entry Point flag (SEP
-      bit) [I-D.ietf-dnsext-keyrr-key-signing-flag]. Bits 0-6 and 8-14
-      are available for assignment by IETF Standards Action.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 25]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-8. Security Considerations
-
-   This document describes the format of four DNS resource records used
-   by the DNS security extensions, and presents an algorithm for
-   calculating a key tag for a public key. Other than the items
-   described below, the resource records themselves introduce no
-   security considerations.  Please see [I-D.ietf-dnsext-dnssec-intro]
-   and [I-D.ietf-dnsext-dnssec-protocol] for additional security
-   considerations related to the use of these records.
-
-   The DS record points to a DNSKEY RR using a cryptographic digest, the
-   key algorithm type and a key tag.  The DS record is intended to
-   identify an existing DNSKEY RR, but it is theoretically possible for
-   an attacker to generate a DNSKEY that matches all the DS fields.  The
-   probability of constructing such a matching DNSKEY depends on the
-   type of digest algorithm in use.  The only currently defined digest
-   algorithm is SHA-1, and the working group believes that constructing
-   a public key which would match the algorithm, key tag, and SHA-1
-   digest given in a DS record would be a sufficiently difficult problem
-   that such an attack is not a serious threat at this time.
-
-   The key tag is used to help select DNSKEY resource records
-   efficiently, but it does not uniquely identify a single DNSKEY
-   resource record.  It is possible for two distinct DNSKEY RRs to have
-   the same owner name, the same algorithm type, and the same key tag.
-   An implementation which used only the key tag to select a DNSKEY RR
-   might select the wrong public key in some circumstances.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 26]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-9. Acknowledgments
-
-   This document was created from the input and ideas of the members of
-   the DNS Extensions Working Group and working group mailing list.  The
-   editors would like to express their thanks for the comments and
-   suggestions received during the revision of these security extension
-   specifications.  While explicitly listing everyone who has
-   contributed during the decade during which DNSSEC has been under
-   development would be an impossible task,
-   [I-D.ietf-dnsext-dnssec-intro] includes a list of some of the
-   participants who were kind enough to comment on these documents.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 27]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-Normative References
-
-   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
-              STD 13, RFC 1034, November 1987.
-
-   [RFC1035]  Mockapetris, P., "Domain names - implementation and
-              specification", STD 13, RFC 1035, November 1987.
-
-   [RFC1521]  Borenstein, N. and N. Freed, "MIME (Multipurpose Internet
-              Mail Extensions) Part One: Mechanisms for Specifying and
-              Describing the Format of Internet Message Bodies", RFC
-              1521, September 1993.
-
-   [RFC1982]  Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982,
-              August 1996.
-
-   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
-              Requirement Levels", BCP 14, RFC 2119, March 1997.
-
-   [RFC2136]  Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic
-              Updates in the Domain Name System (DNS UPDATE)", RFC 2136,
-              April 1997.
-
-   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS
-              Specification", RFC 2181, July 1997.
-
-   [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS
-              NCACHE)", RFC 2308, March 1998.
-
-   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC
-              2671, August 1999.
-
-   [RFC2931]  Eastlake, D., "DNS Request and Transaction Signatures (
-              SIG(0)s)", RFC 2931, September 2000.
-
-   [RFC3110]  Eastlake, D., "RSA/SHA-1 SIGs and RSA KEYs in the Domain
-              Name System (DNS)", RFC 3110, May 2001.
-
-   [RFC3445]  Massey, D. and S. Rose, "Limiting the Scope of the KEY
-              Resource Record (RR)", RFC 3445, December 2002.
-
-   [RFC3597]  Gustafsson, A., "Handling of Unknown DNS Resource Record
-              (RR) Types", RFC 3597, September 2003.
-
-   [RFC3658]  Gudmundsson, O., "Delegation Signer (DS) Resource Record
-              (RR)", RFC 3658, December 2003.
-
-   [I-D.ietf-dnsext-dnssec-intro]
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 28]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-              Arends, R., Austein, R., Larson, M., Massey, D. and S.
-              Rose, "DNS Security Introduction and Requirements",
-              draft-ietf-dnsext-dnssec-intro-09 (work in progress),
-              February 2004.
-
-   [I-D.ietf-dnsext-dnssec-protocol]
-              Arends, R., Austein, R., Larson, M., Massey, D. and S.
-              Rose, "Protocol Modifications for the DNS Security
-              Extensions", draft-ietf-dnsext-dnssec-protocol-05 (work in
-              progress), February 2004.
-
-   [I-D.ietf-dnsext-keyrr-key-signing-flag]
-              Kolkman, O., Schlyter, J. and E. Lewis, "KEY RR Secure
-              Entry Point Flag",
-              draft-ietf-dnsext-keyrr-key-signing-flag-12 (work in
-              progress), December 2003.
-
-   [I-D.ietf-dnsext-dnssec-2535typecode-change]
-              Weiler, S., "Legacy Resolver Compatibility for Delegation
-              Signer", draft-ietf-dnsext-dnssec-2535typecode-change-06
-              (work in progress), December 2003.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 29]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-Informative References
-
-   [RFC2535]  Eastlake, D., "Domain Name System Security Extensions",
-              RFC 2535, March 1999.
-
-   [RFC2930]  Eastlake, D., "Secret Key Establishment for DNS (TKEY
-              RR)", RFC 2930, September 2000.
-
-
-Authors' Addresses
-
-   Roy Arends
-   Telematica Instituut
-   Drienerlolaan 5
-   7522 NB  Enschede
-   NL
-
-   EMail: roy.arends@telin.nl
-
-
-   Rob Austein
-   Internet Systems Consortium
-   950 Charter Street
-   Redwood City, CA  94063
-   USA
-
-   EMail: sra@isc.org
-
-
-   Matt Larson
-   VeriSign, Inc.
-   21345 Ridgetop Circle
-   Dulles, VA  20166-6503
-   USA
-
-   EMail: mlarson@verisign.com
-
-
-   Dan Massey
-   USC Information Sciences Institute
-   3811 N. Fairfax Drive
-   Arlington, VA  22203
-   USA
-
-   EMail: masseyd@isi.edu
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 30]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   Scott Rose
-   National Institute for Standards and Technology
-   100 Bureau Drive
-   Gaithersburg, MD  20899-8920
-   USA
-
-   EMail: scott.rose@nist.gov
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 31]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-Appendix A. DNSSEC Algorithm and Digest Types
-
-   The DNS security extensions are designed to be independent of the
-   underlying cryptographic algorithms. The DNSKEY, RRSIG, and DS
-   resource records all use a DNSSEC Algorithm Number to identify the
-   cryptographic algorithm in use by the resource record.   The DS
-   resource record also specifies a Digest Algorithm Number to identify
-   the digest algorithm used to construct the DS record. The currently
-   defined Algorithm and Digest Types are listed below.  Additional
-   Algorithm or Digest Types could be added as advances in cryptography
-   warrant.
-
-   A DNSSEC aware resolver or name server MUST implement all MANDATORY
-   algorithms.
-
-A.1 DNSSEC Algorithm Types
-
-   The DNSKEY, RRSIG, and DS RRs use an 8-bit number used to identify
-   the security algorithm being used.  These values are stored in the
-   "Algorithm number" field in the resource record RDATA.
-
-   Some algorithms are usable only for zone signing (DNSSEC), some only
-   for transaction security mechanisms (SIG(0) and TSIG), and some for
-   both.  Those usable for zone signing may appear in DNSKEY, RRSIG, and
-   DS RRs.  Those usable for transaction security would be present in
-   SIG(0) and KEY RRs as described in [RFC2931]
-
-                                Zone
-   Value Algorithm [Mnemonic]  Signing  References   Status
-   ----- -------------------- --------- ----------  ---------
-     0   reserved
-     1   RSA/MD5 [RSAMD5]         n      RFC 2537   NOT RECOMMENDED
-     2   Diffie-Hellman [DH]      n      RFC 2539    -
-     3   DSA/SHA-1 [DSA]          y      RFC 2536   OPTIONAL
-     4   Elliptic Curve [ECC]              TBA       -
-     5   RSA/SHA-1 [RSASHA1]      y      RFC 3110   MANDATORY
-   252   Indirect [INDIRECT]      n                  -
-   253   Private [PRIVATEDNS]     y      see below  OPTIONAL
-   254   Private [PRIVATEOID]     y      see below  OPTIONAL
-   255   reserved
-
-   6 - 251  Available for assignment by IETF Standards Action.
-
-A.1.1 Private Algorithm Types
-
-   Algorithm number 253 is reserved for private use and will never be
-   assigned to a specific algorithm.  The public key area in the DNSKEY
-   RR and the signature area in the RRSIG RR begin with a wire encoded
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 32]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   domain name, which MUST NOT be compressed. The domain name indicates
-   the private algorithm to use and the remainder of the public key area
-   is determined by that algorithm.  Entities should only use domain
-   names they control to designate their private algorithms.
-
-   Algorithm number 254 is reserved for private use and will never be
-   assigned to a specific algorithm. The public key area in the DNSKEY
-   RR and the signature area in the RRSIG RR begin with an unsigned
-   length byte followed by a BER encoded Object Identifier (ISO OID) of
-   that length.  The OID indicates the private algorithm in use and the
-   remainder of the area is whatever is required by that algorithm.
-   Entities should only use OIDs they control to designate their private
-   algorithms.
-
-A.2 DNSSEC Digest Types
-
-   A "Digest Type" field in the DS resource record types identifies the
-   cryptographic digest algorithm used by the resource record.   The
-   following table lists the currently defined digest algorithm types.
-
-              VALUE   Algorithm                 STATUS
-                0      Reserved                   -
-                1      SHA-1                   MANDATORY
-              2-255    Unassigned                 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 33]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-Appendix B. Key Tag Calculation
-
-   The Key Tag field in the RRSIG and DS resource record types provides
-   a mechanism for selecting a public key efficiently. In most cases, a
-   combination of owner name, algorithm, and key tag can efficiently
-   identify a DNSKEY record.  Both the RRSIG and DS resource records
-   have corresponding DNSKEY records.  The Key Tag field in the RRSIG
-   and DS records can be used to help select the corresponding DNSKEY RR
-   efficiently when more than one candidate DNSKEY RR is available.
-
-   However, it is essential to note that the key tag is not a unique
-   identifier. It is theoretically possible for two distinct DNSKEY RRs
-   to have the same owner name, the same algorithm, and the same key
-   tag. The key tag is used to limit the possible candidate keys, but it
-   does not uniquely identify a DNSKEY record. Implementations MUST NOT
-   assume that the key tag uniquely identifies a DNSKEY RR.
-
-   The key tag is the same for all DNSKEY algorithm types except
-   algorithm 1 (please see Appendix B.1 for the definition of the key
-   tag for algorithm 1).  The key tag algorithm is the sum of the wire
-   format of the DNSKEY RDATA broken into 2 octet groups.  First the
-   RDATA (in wire format) is treated as a series of 2 octet groups,
-   these groups are then added together ignoring any carry bits. A
-   reference implementation of the key tag algorithm is as an ANSI C
-   function is given below with the RDATA portion of the DNSKEY RR is
-   used as input.  It is not necessary to use the following reference
-   code verbatim, but the numerical value of the Key Tag MUST be
-   identical to what the reference implementation would generate for the
-   same input.
-
-   Please note that the algorithm for calculating the Key Tag is almost
-   but not completely identical to the familiar ones complement checksum
-   used in many other Internet protocols.  Key Tags MUST be calculated
-   using the algorithm described here rather than the ones complement
-   checksum.
-
-   The following ANSI C reference implementation calculates the value of
-   a Key Tag.  This reference implementation applies to all algorithm
-   types except algorithm 1 (see Appendix B.1).  The input is the wire
-   format of the RDATA portion of the DNSKEY RR.  The code is written
-   for clarity, not efficiency.
-
-   /*
-    * Assumes that int is at least 16 bits.
-    * First octet of the key tag is the most significant 8 bits of the
-    * return value;
-    * Second octet of the key tag is the least significant 8 bits of the
-    * return value.
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 34]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-    */
-
-   unsigned int
-   keytag (
-           unsigned char key[],  /* the RDATA part of the DNSKEY RR */
-           unsigned int keysize  /* the RDLENGTH */
-          )
-   {
-           unsigned long ac;     /* assumed to be 32 bits or larger */
-           int i;                /* loop index */
-
-           for ( ac = 0, i = 0; i < keysize; ++i )
-                   ac += (i & 1) ? key[i] : key[i] << 8;
-           ac += (ac >> 16) & 0xFFFF;
-           return ac & 0xFFFF;
-   }
-
-
-B.1 Key Tag for Algorithm 1 (RSA/MD5)
-
-   The key tag for algorithm 1 (RSA/MD5) is defined differently than the
-   key tag for all other algorithms, for historical reasons.  For a
-   DNSKEY RR with algorithm 1, the key tag is defined to be the most
-   significant 16 bits of the least significant 24 bits in the public
-   key modulus (in other words, the 4th to last and 3rd to last octets
-   of the public key modulus).
-
-   Please note that Algorithm 1 is NOT RECOMMENDED.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 35]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-Intellectual Property Statement
-
-   The IETF takes no position regarding the validity or scope of any
-   intellectual property or other rights that might be claimed to
-   pertain to the implementation or use of the technology described in
-   this document or the extent to which any license under such rights
-   might or might not be available; neither does it represent that it
-   has made any effort to identify any such rights. Information on the
-   IETF's procedures with respect to rights in standards-track and
-   standards-related documentation can be found in BCP-11. Copies of
-   claims of rights made available for publication and any assurances of
-   licenses to be made available, or the result of an attempt made to
-   obtain a general license or permission for the use of such
-   proprietary rights by implementors or users of this specification can
-   be obtained from the IETF Secretariat.
-
-   The IETF invites any interested party to bring to its attention any
-   copyrights, patents or patent applications, or other proprietary
-   rights which may cover technology that may be required to practice
-   this standard. Please address the information to the IETF Executive
-   Director.
-
-
-Full Copyright Statement
-
-   Copyright (C) The Internet Society (2004). All Rights Reserved.
-
-   This document and translations of it may be copied and furnished to
-   others, and derivative works that comment on or otherwise explain it
-   or assist in its implementation may be prepared, copied, published
-   and distributed, in whole or in part, without restriction of any
-   kind, provided that the above copyright notice and this paragraph are
-   included on all such copies and derivative works. However, this
-   document itself may not be modified in any way, such as by removing
-   the copyright notice or references to the Internet Society or other
-   Internet organizations, except as needed for the purpose of
-   developing Internet standards in which case the procedures for
-   copyrights defined in the Internet Standards process must be
-   followed, or as required to translate it into languages other than
-   English.
-
-   The limited permissions granted above are perpetual and will not be
-   revoked by the Internet Society or its successors or assignees.
-
-   This document and the information contained herein is provided on an
-   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
-   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 36]
-\f
-Internet-Draft          DNSSEC Resource Records            February 2004
-
-
-   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
-   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-
-Acknowledgement
-
-   Funding for the RFC Editor function is currently provided by the
-   Internet Society.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Arends, et al.          Expires August 16, 2004                [Page 37]
-\f
-
+\r
+\r
+DNS Extensions                                                 R. Arends\r
+Internet-Draft                                      Telematica Instituut\r
+Expires: November 15, 2004                                    R. Austein\r
+                                                                     ISC\r
+                                                               M. Larson\r
+                                                                VeriSign\r
+                                                               D. Massey\r
+                                                                 USC/ISI\r
+                                                                 S. Rose\r
+                                                                    NIST\r
+                                                            May 17, 2004\r
+\r
+\r
+            Resource Records for the DNS Security Extensions\r
+                  draft-ietf-dnsext-dnssec-records-08\r
+\r
+Status of this Memo\r
+\r
+   This document is an Internet-Draft and is in full conformance with\r
+   all provisions of Section 10 of RFC2026.\r
+\r
+   Internet-Drafts are working documents of the Internet Engineering\r
+   Task Force (IETF), its areas, and its working groups. Note that other\r
+   groups may also distribute working documents as Internet-Drafts.\r
+\r
+   Internet-Drafts are draft documents valid for a maximum of six months\r
+   and may be updated, replaced, or obsoleted by other documents at any\r
+   time. It is inappropriate to use Internet-Drafts as reference\r
+   material or to cite them other than as "work in progress."\r
+\r
+   The list of current Internet-Drafts can be accessed at http://\r
+   www.ietf.org/ietf/1id-abstracts.txt.\r
+\r
+   The list of Internet-Draft Shadow Directories can be accessed at\r
+   http://www.ietf.org/shadow.html.\r
+\r
+   This Internet-Draft will expire on November 15, 2004.\r
+\r
+Copyright Notice\r
+\r
+   Copyright (C) The Internet Society (2004). All Rights Reserved.\r
+\r
+Abstract\r
+\r
+   This document is part of a family of documents that describes the DNS\r
+   Security Extensions (DNSSEC).  The DNS Security Extensions are a\r
+   collection of resource records and protocol modifications that\r
+   provide source authentication for the DNS. This document defines the\r
+   public key (DNSKEY), delegation signer (DS), resource record digital\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 1]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   signature (RRSIG), and authenticated denial of existence (NSEC)\r
+   resource records.  The purpose and format of each resource record is\r
+   described in detail, and an example of each resource record is given.\r
+\r
+   This document obsoletes RFC 2535 and incorporates changes from all\r
+   updates to RFC 2535.\r
+\r
+Table of Contents\r
+\r
+   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4\r
+     1.1   Background and Related Documents . . . . . . . . . . . . .  4\r
+     1.2   Reserved Words . . . . . . . . . . . . . . . . . . . . . .  4\r
+     1.3   Editors' Notes . . . . . . . . . . . . . . . . . . . . . .  4\r
+       1.3.1   Technical Changes or Corrections . . . . . . . . . . .  4\r
+       1.3.2   Typos and Minor Corrections  . . . . . . . . . . . . .  5\r
+   2.  The DNSKEY Resource Record . . . . . . . . . . . . . . . . . .  6\r
+     2.1   DNSKEY RDATA Wire Format . . . . . . . . . . . . . . . . .  6\r
+       2.1.1   The Flags Field  . . . . . . . . . . . . . . . . . . .  6\r
+       2.1.2   The Protocol Field . . . . . . . . . . . . . . . . . .  7\r
+       2.1.3   The Algorithm Field  . . . . . . . . . . . . . . . . .  7\r
+       2.1.4   The Public Key Field . . . . . . . . . . . . . . . . .  7\r
+       2.1.5   Notes on DNSKEY RDATA Design . . . . . . . . . . . . .  7\r
+     2.2   The DNSKEY RR Presentation Format  . . . . . . . . . . . .  7\r
+     2.3   DNSKEY RR Example  . . . . . . . . . . . . . . . . . . . .  8\r
+   3.  The RRSIG Resource Record  . . . . . . . . . . . . . . . . . .  9\r
+     3.1   RRSIG RDATA Wire Format  . . . . . . . . . . . . . . . . .  9\r
+       3.1.1   The Type Covered Field . . . . . . . . . . . . . . . . 10\r
+       3.1.2   The Algorithm Number Field . . . . . . . . . . . . . . 10\r
+       3.1.3   The Labels Field . . . . . . . . . . . . . . . . . . . 10\r
+       3.1.4   Original TTL Field . . . . . . . . . . . . . . . . . . 11\r
+       3.1.5   Signature Expiration and Inception Fields  . . . . . . 11\r
+       3.1.6   The Key Tag Field  . . . . . . . . . . . . . . . . . . 11\r
+       3.1.7   The Signer's Name Field  . . . . . . . . . . . . . . . 12\r
+       3.1.8   The Signature Field  . . . . . . . . . . . . . . . . . 12\r
+     3.2   The RRSIG RR Presentation Format . . . . . . . . . . . . . 13\r
+     3.3   RRSIG RR Example . . . . . . . . . . . . . . . . . . . . . 13\r
+   4.  The NSEC Resource Record . . . . . . . . . . . . . . . . . . . 15\r
+     4.1   NSEC RDATA Wire Format . . . . . . . . . . . . . . . . . . 15\r
+       4.1.1   The Next Domain Name Field . . . . . . . . . . . . . . 15\r
+       4.1.2   The Type Bit Maps Field  . . . . . . . . . . . . . . . 16\r
+       4.1.3   Inclusion of Wildcard Names in NSEC RDATA  . . . . . . 17\r
+     4.2   The NSEC RR Presentation Format  . . . . . . . . . . . . . 17\r
+     4.3   NSEC RR Example  . . . . . . . . . . . . . . . . . . . . . 17\r
+   5.  The DS Resource Record . . . . . . . . . . . . . . . . . . . . 19\r
+     5.1   DS RDATA Wire Format . . . . . . . . . . . . . . . . . . . 19\r
+       5.1.1   The Key Tag Field  . . . . . . . . . . . . . . . . . . 20\r
+       5.1.2   The Algorithm Field  . . . . . . . . . . . . . . . . . 20\r
+       5.1.3   The Digest Type Field  . . . . . . . . . . . . . . . . 20\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 2]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+       5.1.4   The Digest Field . . . . . . . . . . . . . . . . . . . 20\r
+     5.2   Processing of DS RRs When Validating Responses . . . . . . 20\r
+     5.3   The DS RR Presentation Format  . . . . . . . . . . . . . . 21\r
+     5.4   DS RR Example  . . . . . . . . . . . . . . . . . . . . . . 21\r
+   6.  Canonical Form and Order of Resource Records . . . . . . . . . 22\r
+     6.1   Canonical DNS Name Order . . . . . . . . . . . . . . . . . 22\r
+     6.2   Canonical RR Form  . . . . . . . . . . . . . . . . . . . . 22\r
+     6.3   Canonical RR Ordering Within An RRset  . . . . . . . . . . 23\r
+   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 24\r
+   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 25\r
+   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 26\r
+   10.   References . . . . . . . . . . . . . . . . . . . . . . . . . 27\r
+   10.1  Normative References . . . . . . . . . . . . . . . . . . . . 27\r
+   10.2  Informative References . . . . . . . . . . . . . . . . . . . 28\r
+       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 28\r
+   A.  DNSSEC Algorithm and Digest Types  . . . . . . . . . . . . . . 30\r
+     A.1   DNSSEC Algorithm Types . . . . . . . . . . . . . . . . . . 30\r
+       A.1.1   Private Algorithm Types  . . . . . . . . . . . . . . . 30\r
+     A.2   DNSSEC Digest Types  . . . . . . . . . . . . . . . . . . . 31\r
+   B.  Key Tag Calculation  . . . . . . . . . . . . . . . . . . . . . 32\r
+     B.1   Key Tag for Algorithm 1 (RSA/MD5)  . . . . . . . . . . . . 33\r
+       Intellectual Property and Copyright Statements . . . . . . . . 34\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 3]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+1.  Introduction\r
+\r
+   The DNS Security Extensions (DNSSEC) introduce four new DNS resource\r
+   record types: DNSKEY, RRSIG, NSEC, and DS.  This document defines the\r
+   purpose of each resource record (RR), the RR's RDATA format, and its\r
+   presentation format (ASCII representation).\r
+\r
+1.1  Background and Related Documents\r
+\r
+   The reader is assumed to be familiar with the basic DNS concepts\r
+   described in [RFC1034], [RFC1035] and subsequent RFCs that update\r
+   them:  [RFC2136], [RFC2181] and [RFC2308].\r
+\r
+   This document is part of a family of documents that define the DNS\r
+   security extensions.  The DNS security extensions (DNSSEC) are a\r
+   collection of resource records and DNS protocol modifications that\r
+   add source authentication and data integrity to the Domain Name\r
+   System (DNS).  An introduction to DNSSEC and definitions of common\r
+   terms can be found in [I-D.ietf-dnsext-dnssec-intro]. A description\r
+   of DNS protocol modifications can be found in\r
+   [I-D.ietf-dnsext-dnssec-protocol]. This document defines the DNSSEC\r
+   resource records.\r
+\r
+1.2  Reserved Words\r
+\r
+   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",\r
+   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this\r
+   document are to be interpreted as described in RFC 2119 [RFC2119].\r
+\r
+1.3  Editors' Notes\r
+\r
+1.3.1  Technical Changes or Corrections\r
+\r
+   Please report technical corrections to dnssec-editors@east.isi.edu.\r
+   To assist the editors, please indicate the text in error and point\r
+   out the RFC that defines the correct behavior.  For a technical\r
+   change where no RFC that defines the correct behavior, or if there's\r
+   more than one applicable RFC and the definitions conflict, please\r
+   post the issue to namedroppers.\r
+\r
+   An example correction to dnssec-editors might be: Page X says\r
+   "DNSSEC RRs SHOULD be automatically returned in responses."  This was\r
+   true in RFC 2535, but RFC 3225 (Section 3, 3rd paragraph) says the\r
+   DNSSEC RR types MUST NOT be included in responses unless the resolver\r
+   indicated support for DNSSEC.\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 4]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+1.3.2  Typos and Minor Corrections\r
+\r
+   Please report any typos corrections to dnssec-editors@east.isi.edu.\r
+   To assist the editors, please provide enough context for us to find\r
+   the incorrect text quickly.\r
+\r
+   An example message to dnssec-editors might be: page X says "the\r
+   DNSSEC standard has been in development for over 1 years".   It\r
+   should read "over 10 years".\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 5]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+2.  The DNSKEY Resource Record\r
+\r
+   DNSSEC uses public key cryptography to sign and authenticate DNS\r
+   resource record sets (RRsets).  The public keys are stored in DNSKEY\r
+   resource records and are used in the DNSSEC authentication process\r
+   described in [I-D.ietf-dnsext-dnssec-protocol]: A zone signs its\r
+   authoritative RRsets using a private key and stores the corresponding\r
+   public key in a DNSKEY RR.  A resolver can then use the public key to\r
+   authenticate signatures covering the RRsets in the zone.\r
+\r
+   The DNSKEY RR is not intended as a record for storing arbitrary\r
+   public keys and MUST NOT be used to store certificates or public keys\r
+   that do not directly relate to the DNS infrastructure.\r
+\r
+   The Type value for the DNSKEY RR type is 48.\r
+\r
+   The DNSKEY RR is class independent.\r
+\r
+   The DNSKEY RR has no special TTL requirements.\r
+\r
+2.1  DNSKEY RDATA Wire Format\r
+\r
+   The RDATA for a DNSKEY RR consists of a 2 octet Flags Field, a 1\r
+   octet Protocol Field, a 1 octet Algorithm Field, and the Public Key\r
+   Field.\r
+\r
+                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3\r
+    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   |              Flags            |    Protocol   |   Algorithm   |\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   /                                                               /\r
+   /                            Public Key                         /\r
+   /                                                               /\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+\r
+\r
+2.1.1  The Flags Field\r
+\r
+   Bit 7 of the Flags field is the Zone Key flag.  If bit 7 has value 1,\r
+   then the DNSKEY record holds a DNS zone key and the DNSKEY RR's owner\r
+   name MUST be the name of a zone. If bit 7 has value 0, then the\r
+   DNSKEY record holds some other type of DNS public key, such as a\r
+   public key used by TKEY and MUST NOT be used to verify RRSIGs that\r
+   cover RRsets.\r
+\r
+   Bit 15 of the Flags field is the Secure Entry Point flag, described\r
+   in [RFC3757]. If bit 15 has value 1, then the DNSKEY record holds a\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 6]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   key intended for use as a secure entry point.  This flag is only\r
+   intended to be to a hint to zone signing or debugging software as to\r
+   the intended use of this DNSKEY record; validators MUST NOT alter\r
+   their behavior during the signature validation process in any way\r
+   based on the setting of this bit.  This also means a DNSKEY RR with\r
+   the SEP bit set would also need the Zone Key flag set in order to\r
+   legally be able to generate signatures.  A DNSKEY RR with the SEP set\r
+   and the Zone Key flag not set is an invalid DNSKEY.\r
+\r
+   Bits 0-6 and 8-14 are reserved: these bits MUST have value 0 upon\r
+   creation of the DNSKEY RR, and MUST be ignored upon reception.\r
+\r
+2.1.2  The Protocol Field\r
+\r
+   The Protocol Field MUST have value 3 and the DNSKEY RR MUST be\r
+   treated as invalid during signature verification if found to be some\r
+   value other than 3.\r
+\r
+2.1.3  The Algorithm Field\r
+\r
+   The Algorithm field identifies the public key's cryptographic\r
+   algorithm and determines the format of the Public Key field.  A list\r
+   of DNSSEC algorithm types can be found in Appendix A.1\r
+\r
+2.1.4  The Public Key Field\r
+\r
+   The Public Key Field holds the public key material.  The format\r
+   depends on the algorithm of the key being stored and are described in\r
+   separate documents.\r
+\r
+2.1.5  Notes on DNSKEY RDATA Design\r
+\r
+   Although the Protocol Field always has value 3, it is retained for\r
+   backward compatibility with early versions of the KEY record.\r
+\r
+2.2  The DNSKEY RR Presentation Format\r
+\r
+   The presentation format of the RDATA portion is as follows:\r
+\r
+   The Flag field MUST be represented as an unsigned decimal integer\r
+   with a value of 0, 256, or 257.\r
+\r
+   The Protocol Field MUST be represented as an unsigned decimal integer\r
+   with a value of 3.\r
+\r
+   The Algorithm field MUST be represented either as an unsigned decimal\r
+   integer or as an algorithm mnemonic as specified in Appendix A.1.\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 7]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   The Public Key field MUST be represented as a Base64 encoding of the\r
+   Public Key.  Whitespace is allowed within the Base64 text.  For a\r
+   definition of Base64 encoding, see [RFC1521] Section 5.2.\r
+\r
+2.3  DNSKEY RR Example\r
+\r
+   The following DNSKEY RR stores a DNS zone key for example.com.\r
+\r
+   example.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmynfzW4kyBv015MUG2DeIQ3\r
+                                          Cbl+BBZH4b/0PY1kxkmvHjcZc8no\r
+                                          kfzj31GajIQKY+5CptLr3buXA10h\r
+                                          WqTkF7H6RfoRqXQeogmMHfpftf6z\r
+                                          Mv1LyBUgia7za6ZEzOJBOztyvhjL\r
+                                          742iU/TpPSEDhm2SNKLijfUppn1U\r
+                                          aNvv4w==  )\r
+\r
+   The first four text fields specify the owner name, TTL, Class, and RR\r
+   type (DNSKEY).  Value 256 indicates that the Zone Key bit (bit 7) in\r
+   the Flags field has value 1.  Value 3 is the fixed Protocol value.\r
+   Value 5 indicates the public key algorithm.  Appendix A.1 identifies\r
+   algorithm type 5 as RSA/SHA1 and indicates that the format of the\r
+   RSA/SHA1 public key field is defined in [RFC3110].  The remaining\r
+   text is a Base64 encoding of the public key.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 8]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+3.  The RRSIG Resource Record\r
+\r
+   DNSSEC uses public key cryptography to sign and authenticate DNS\r
+   resource record sets (RRsets).  Digital signatures are stored in\r
+   RRSIG resource records and are used in the DNSSEC authentication\r
+   process described in [I-D.ietf-dnsext-dnssec-protocol]. A validator\r
+   can use these RRSIG RRs to authenticate RRsets from the zone.  The\r
+   RRSIG RR MUST only be used to carry verification material (digital\r
+   signatures) used to secure DNS operations.\r
+\r
+   An RRSIG record contains the signature for an RRset with a particular\r
+   name, class, and type.  The RRSIG RR specifies a validity interval\r
+   for the signature and uses the Algorithm, the Signer's Name, and the\r
+   Key Tag to identify the DNSKEY RR containing the public key that a\r
+   validator can use to verify the signature.\r
+\r
+   Because every authoritative RRset in a zone must be protected by a\r
+   digital signature, RRSIG RRs must be present for names containing a\r
+   CNAME RR.  This is a change to the traditional DNS specification\r
+   [RFC1034] that stated that if a CNAME is present for a name, it is\r
+   the only type allowed at that name.  A RRSIG and NSEC (see Section 4)\r
+   MUST exist for the same name as a CNAME resource record in a signed\r
+   zone.\r
+\r
+   The Type value for the RRSIG RR type is 46.\r
+\r
+   The RRSIG RR is class independent.\r
+\r
+   An RRSIG RR MUST have the same class as the RRset it covers.\r
+\r
+   The TTL value of an RRSIG RR SHOULD match the TTL value of the RRset\r
+   it covers.  This is an exception to the [RFC2181] rules for TTL\r
+   values of individual RRs within a RRset: individual RRSIG with the\r
+   same owner name will have different TTL values if the RRsets they\r
+   cover have different TTL values.\r
+\r
+3.1  RRSIG RDATA Wire Format\r
+\r
+   The RDATA for an RRSIG RR consists of a 2 octet Type Covered field, a\r
+   1 octet Algorithm field, a 1 octet Labels field, a 4 octet Original\r
+   TTL field, a 4 octet Signature Expiration field, a 4 octet Signature\r
+   Inception field, a 2 octet Key tag, the Signer's Name field, and the\r
+   Signature field.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004                [Page 9]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3\r
+    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   |        Type Covered           |  Algorithm    |     Labels    |\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   |                         Original TTL                          |\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   |                      Signature Expiration                     |\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   |                      Signature Inception                      |\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   |            Key Tag            |                               /\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         Signer's Name         /\r
+   /                                                               /\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   /                                                               /\r
+   /                            Signature                          /\r
+   /                                                               /\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+\r
+\r
+3.1.1  The Type Covered Field\r
+\r
+   The Type Covered field identifies the type of the RRset that is\r
+   covered by this RRSIG record.\r
+\r
+3.1.2  The Algorithm Number Field\r
+\r
+   The Algorithm Number field identifies the cryptographic algorithm\r
+   used to create the signature.  A list of DNSSEC algorithm types can\r
+   be found in Appendix A.1\r
+\r
+3.1.3  The Labels Field\r
+\r
+   The Labels field specifies the number of labels in the original RRSIG\r
+   RR owner name. The significance of this field is that a validator\r
+   uses it to determine if the answer was synthesized from a wildcard.\r
+   If so, it can be used to determine what owner name was used in\r
+   generating the signature.\r
+\r
+   To validate a signature, the validator needs the original owner name\r
+   that was used to create the signature. If the original owner name\r
+   contains a wildcard label ("*"), the owner name may have been\r
+   expanded by the server during the response process, in which case the\r
+   validator will need to reconstruct the original owner name in order\r
+   to validate the signature.  [I-D.ietf-dnsext-dnssec-protocol]\r
+   describes how to use the Labels field to reconstruct the original\r
+   owner name.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 10]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   The value of the Labels field MUST NOT count either the null (root)\r
+   label that terminates the owner name or the wildcard label (if\r
+   present).  The value of the Labels field MUST be less than or equal\r
+   to the number of labels in the RRSIG owner name.  For example,\r
+   "www.example.com." has a Labels field value of 3, and\r
+   "*.example.com." has a Labels field value of 2.  Root (".") has a\r
+   Labels field value of 0.\r
+\r
+   Although the wildcard label is not included in the count stored in\r
+   the Labels field of the RRSIG RR, the wildcard label is part of the\r
+   RRset's owner name when generating or verifying the signature.\r
+\r
+3.1.4  Original TTL Field\r
+\r
+   The Original TTL field specifies the TTL of the covered RRset as it\r
+   appears in the authoritative zone.\r
+\r
+   The Original TTL field is necessary because a caching resolver\r
+   decrements the TTL value of a cached RRset. In order to validate a\r
+   signature, a validator requires the original TTL.\r
+   [I-D.ietf-dnsext-dnssec-protocol] describes how to use the Original\r
+   TTL field value to reconstruct the original TTL.\r
+\r
+3.1.5  Signature Expiration and Inception Fields\r
+\r
+   The Signature Expiration and Inception fields specify a validity\r
+   period for the signature.  The RRSIG record MUST NOT be used for\r
+   authentication prior to the inception date and MUST NOT be used for\r
+   authentication after the expiration date.\r
+\r
+   Signature Expiration and Inception field values are in POSIX.1 time\r
+   format: a 32-bit unsigned number of seconds elapsed since 1 January\r
+   1970 00:00:00 UTC, ignoring leap seconds, in network byte order.  The\r
+   longest interval which can be expressed by this format without\r
+   wrapping is approximately 136 years.  An RRSIG RR can have an\r
+   Expiration field value which is numerically smaller than the\r
+   Inception field value if the expiration field value is near the\r
+   32-bit wrap-around point or if the signature is long lived.  Because\r
+   of this, all comparisons involving these fields MUST use "Serial\r
+   number arithmetic" as defined in [RFC1982].  As a direct consequence,\r
+   the values contained in these fields cannot refer to dates more than\r
+   68 years in either the past or the future.\r
+\r
+3.1.6  The Key Tag Field\r
+\r
+   The Key Tag field contains the key tag value of the DNSKEY RR that\r
+   validates this signature.  Appendix B explains how to calculate Key\r
+   Tag values.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 11]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+3.1.7  The Signer's Name Field\r
+\r
+   The Signer's Name field value identifies the owner name of the DNSKEY\r
+   RR which a validator should use to validate this signature.  The\r
+   Signer's Name field MUST contain the name of the zone of the covered\r
+   RRset.  A sender MUST NOT use DNS name compression on the Signer's\r
+   Name field when transmitting a RRSIG RR.\r
+\r
+3.1.8  The Signature Field\r
+\r
+   The Signature field contains the cryptographic signature that covers\r
+   the RRSIG RDATA (excluding the Signature field) and the RRset\r
+   specified by the RRSIG owner name, RRSIG class, and RRSIG Type\r
+   Covered field.  The format of this field depends on the algorithm in\r
+   use and these formats are described in separate companion documents.\r
+\r
+3.1.8.1  Signature Calculation\r
+\r
+   A signature covers the RRSIG RDATA (excluding the Signature Field)\r
+   and covers the data RRset specified by the RRSIG owner name, RRSIG\r
+   class, and RRSIG Type Covered fields.  The RRset is in canonical form\r
+   (see Section 6) and the set RR(1),...RR(n) is signed as follows:\r
+\r
+         signature = sign(RRSIG_RDATA | RR(1) | RR(2)... ) where\r
+\r
+            "|" denotes concatenation;\r
+\r
+            RRSIG_RDATA is the wire format of the RRSIG RDATA fields\r
+               with the Signer's Name field in canonical form and\r
+               the Signature field excluded;\r
+\r
+            RR(i) = owner | type | class | TTL | RDATA length | RDATA\r
+\r
+               "owner" is the fully qualified owner name of the RRset in\r
+               canonical form (for RRs with wildcard owner names, the\r
+               wildcard label is included in the owner name);\r
+\r
+               Each RR MUST have the same owner name as the RRSIG RR;\r
+\r
+               Each RR MUST have the same class as the RRSIG RR;\r
+\r
+               Each RR in the RRset MUST have the RR type listed in the\r
+               RRSIG RR's Type Covered field;\r
+\r
+               Each RR in the RRset MUST have the TTL listed in the\r
+               RRSIG Original TTL Field;\r
+\r
+               Any DNS names in the RDATA field of each RR MUST be in\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 12]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+               canonical form; and\r
+\r
+               The RRset MUST be sorted in canonical order.\r
+\r
+   See Section 6.1 and Section 6.2 for details on canonical name order\r
+   and canonical RR form.\r
+\r
+3.2  The RRSIG RR Presentation Format\r
+\r
+   The presentation format of the RDATA portion is as follows:\r
+\r
+   The Type Covered field is represented as a RR type mnemonic.  When\r
+   the mnemonic is not known, the TYPE representation as described in\r
+   [RFC3597] (section 5) MUST be used.\r
+\r
+   The Algorithm field value MUST be represented either as an unsigned\r
+   decimal  integer or as an algorithm mnemonic as specified in Appendix\r
+   A.1.\r
+\r
+   The Labels field value MUST be represented as an unsigned decimal\r
+   integer.\r
+\r
+   The Original TTL field value MUST be represented as an unsigned\r
+   decimal integer.\r
+\r
+   The Signature Expiration Time and Inception Time field values MUST be\r
+   represented either as seconds since 1 January 1970 00:00:00 UTC or in\r
+   the form YYYYMMDDHHmmSS in UTC, where:\r
+      YYYY is the year (0000-9999, but see Section 3.1.5);\r
+      MM is the month number (01-12);\r
+      DD is the day of the month (01-31);\r
+      HH is the hour in 24 hours notation (00-23);\r
+      mm is the minute (00-59); and\r
+      SS is the second (00-59).\r
+\r
+   The Key Tag field MUST be represented as an unsigned decimal integer.\r
+\r
+   The Signer's Name field value MUST be represented as a domain name.\r
+\r
+   The Signature field is represented as a Base64 encoding of the\r
+   signature.  Whitespace is allowed within the Base64 text.  See\r
+   Section 2.2.\r
+\r
+3.3  RRSIG RR Example\r
+\r
+   The following RRSIG RR stores the signature for the A RRset of\r
+   host.example.com:\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 13]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   host.example.com. 86400 IN RRSIG A 5 3 86400 20030322173103 (\r
+                                  20030220173103 2642 example.com.\r
+                                  oJB1W6WNGv+ldvQ3WDG0MQkg5IEhjRip8WTr\r
+                                  PYGv07h108dUKGMeDPKijVCHX3DDKdfb+v6o\r
+                                  B9wfuh3DTJXUAfI/M0zmO/zz8bW0Rznl8O3t\r
+                                  GNazPwQKkRN20XPXV6nwwfoXmJQbsLNrLfkG\r
+                                  J5D6fwFm8nN+6pBzeDQfsS3Ap3o= )\r
+\r
+   The first four fields specify the owner name, TTL, Class, and RR type\r
+   (RRSIG).  The "A" represents the Type Covered field. The value 5\r
+   identifies the algorithm used (RSA/SHA1) to create the signature.\r
+   The value 3 is the number of Labels in the original owner name.  The\r
+   value 86400 in the RRSIG RDATA is the Original TTL for the covered A\r
+   RRset.  20030322173103 and 20030220173103 are the expiration and\r
+   inception dates, respectively.  2642 is the Key Tag, and example.com.\r
+   is the Signer's Name.  The remaining text is a Base64 encoding of the\r
+   signature.\r
+\r
+   Note that combination of RRSIG RR owner name, class, and Type Covered\r
+   indicate that this RRSIG covers the "host.example.com" A RRset.  The\r
+   Label value of 3 indicates that no wildcard expansion was used.  The\r
+   Algorithm, Signer's Name, and Key Tag indicate this signature can be\r
+   authenticated using an example.com zone DNSKEY RR whose algorithm is\r
+   5 and key tag is 2642.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 14]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+4.  The NSEC Resource Record\r
+\r
+   The NSEC resource record lists two separate things: the owner name of\r
+   the next authoritative RRset in the canonical ordering of the zone,\r
+   and the set of RR types present at the NSEC RR's owner name.  The\r
+   complete set of NSEC RRs in a zone both indicate which authoritative\r
+   RRsets exist in a zone and also form a chain of authoritative owner\r
+   names in the zone.  This information is used to provide authenticated\r
+   denial of existence for DNS data, as described in\r
+   [I-D.ietf-dnsext-dnssec-protocol].\r
+\r
+   Because every authoritative name in a zone must be part of the NSEC\r
+   chain, NSEC RRs must be present for names containing a CNAME RR.\r
+   This is a change to the traditional DNS specification [RFC1034] that\r
+   stated that if a CNAME is present for a name, it is the only type\r
+   allowed at that name.  An RRSIG (see Section 3) and NSEC MUST exist\r
+   for the same name as a CNAME resource record in a signed zone.\r
+\r
+   See [I-D.ietf-dnsext-dnssec-protocol] for discussion of how a zone\r
+   signer determines precisely which NSEC RRs it needs to include in a\r
+   zone.\r
+\r
+   The type value for the NSEC RR is 47.\r
+\r
+   The NSEC RR is class independent.\r
+\r
+   The NSEC RR SHOULD have the same TTL value as the SOA minimum TTL\r
+   field. This is in the spirit of negative caching [RFC2308].\r
+\r
+4.1  NSEC RDATA Wire Format\r
+\r
+   The RDATA of the NSEC RR is as shown below:\r
+\r
+                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3\r
+    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   /                      Next Domain Name                         /\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   /                       Type Bit Maps                           /\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+\r
+\r
+4.1.1  The Next Domain Name Field\r
+\r
+   The Next Domain Name field contains the owner name of the next\r
+   authoritative owner name in the canonical ordering of the zone; see\r
+   Section 6.1 for an explanation of canonical ordering.  The value of\r
+   the Next Domain Name field in the last NSEC record in the zone is the\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 15]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   name of the zone apex (the owner name of the zone's SOA RR).\r
+\r
+   A sender MUST NOT use DNS name compression on the Next Domain Name\r
+   field when transmitting an NSEC RR.\r
+\r
+   Owner names of RRsets not authoritative for the given zone (such as\r
+   glue records) MUST NOT be listed in the Next Domain Name unless at\r
+   least one authoritative RRset exists at the same owner name.\r
+\r
+4.1.2  The Type Bit Maps Field\r
+\r
+   The Type Bit Maps field identifies the RRset types which exist at the\r
+   NSEC RR's owner name.\r
+\r
+   The RR type space is split into 256 window blocks, each representing\r
+   the low-order 8 bits of the 16-bit RR type space. Each block that has\r
+   at least one active RR type is encoded using a single octet window\r
+   number (from 0 to 255), a single octet bitmap length (from 1 to 32)\r
+   indicating the number of octets used for the window block's bitmap,\r
+   and up to 32 octets (256 bits) of bitmap.\r
+\r
+   Blocks are present in the NSEC RR RDATA in increasing numerical\r
+   order.\r
+\r
+      Type Bit Maps Field = ( Window Block # | Bitmap Length | Bitmap )+\r
+\r
+      where "|" denotes concatenation.\r
+\r
+   Each bitmap encodes the low-order 8 bits of RR types within the\r
+   window block, in network bit order.  The first bit is bit 0.  For\r
+   window block 0, bit 1 corresponds to RR type 1 (A), bit 2 corresponds\r
+   to RR type 2 (NS), and so forth.  For window block 1, bit 1\r
+   corresponds to RR type 257, bit 2 to RR type 258.  If a bit is set to\r
+   1, it indicates that an RRset of that type is present for the NSEC\r
+   RR's owner name.  If a bit is set to 0, it indicates that no RRset of\r
+   that type is present for the NSEC RR's owner name.\r
+\r
+   Bits representing pseudo-types MUST be set to 0, since they do not\r
+   appear in zone data.  If encountered, they MUST be ignored upon\r
+   reading.\r
+\r
+   Blocks with no types present MUST NOT be included. Trailing zero\r
+   octets in the bitmap MUST be omitted.  The length of each block's\r
+   bitmap is determined by the type code with the largest numerical\r
+   value, within that block, among the set of RR types present at the\r
+   NSEC RR's owner name.  Trailing zero octets not specified MUST be\r
+   interpreted as zero octets.\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 16]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   The bitmap for the NSEC RR at a delegation point requires special\r
+   attention.  Bits corresponding to the delegation NS RRset and the RR\r
+   types for which the parent zone has authoritative data MUST be set to\r
+   1; bits corresponding to any non-NS RRset for which the parent is not\r
+   authoritative MUST be set to 0.\r
+\r
+   A zone MUST NOT include an NSEC RR for any domain name that only\r
+   holds glue records.\r
+\r
+4.1.3  Inclusion of Wildcard Names in NSEC RDATA\r
+\r
+   If a wildcard owner name appears in a zone, the wildcard label ("*")\r
+   is treated as a literal symbol and is treated the same as any other\r
+   owner name for purposes of generating NSEC RRs.  Wildcard owner names\r
+   appear in the Next Domain Name field without any wildcard expansion.\r
+   [I-D.ietf-dnsext-dnssec-protocol] describes the impact of wildcards\r
+   on authenticated denial of existence.\r
+\r
+4.2  The NSEC RR Presentation Format\r
+\r
+   The presentation format of the RDATA portion is as follows:\r
+\r
+   The Next Domain Name field is represented as a domain name.\r
+\r
+   The Type Bit Maps field is represented as a sequence of RR type\r
+   mnemonics.  When the mnemonic is not known, the TYPE representation\r
+   as described in [RFC3597] (section 5) MUST be used.\r
+\r
+4.3  NSEC RR Example\r
+\r
+   The following NSEC RR identifies the RRsets associated with\r
+   alfa.example.com. and identifies the next authoritative name after\r
+   alfa.example.com.\r
+\r
+   alfa.example.com. 86400 IN NSEC host.example.com. (\r
+                                   A MX RRSIG NSEC TYPE1234 )\r
+\r
+   The first four text fields specify the name, TTL, Class, and RR type\r
+   (NSEC).  The entry host.example.com. is the next authoritative name\r
+   after alfa.example.com. in canonical order.  The A, MX, RRSIG, NSEC,\r
+   and TYPE1234 mnemonics indicate there are A, MX, RRSIG, NSEC, and\r
+   TYPE1234 RRsets associated with the name alfa.example.com.\r
+\r
+   The RDATA section of the NSEC RR above would be encoded as:\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 17]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+            0x04 'h'  'o'  's'  't'\r
+            0x07 'e'  'x'  'a'  'm'  'p'  'l'  'e'\r
+            0x03 'c'  'o'  'm'  0x00\r
+            0x00 0x06 0x40 0x01 0x00 0x00 0x00 0x03\r
+            0x04 0x1b 0x00 0x00 0x00 0x00 0x00 0x00\r
+            0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00\r
+            0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00\r
+            0x00 0x00 0x00 0x00 0x20\r
+\r
+   Assuming that the validator can authenticate this NSEC record, it\r
+   could be used to prove that beta.example.com does not exist, or could\r
+   be used to prove there is no AAAA record associated with\r
+   alfa.example.com.  Authenticated denial of existence is discussed in\r
+   [I-D.ietf-dnsext-dnssec-protocol].\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 18]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+5.  The DS Resource Record\r
+\r
+   The DS Resource Record refers to a DNSKEY RR and is used in the DNS\r
+   DNSKEY authentication process. A DS RR refers to a DNSKEY RR by\r
+   storing the key tag, algorithm number, and a digest of the DNSKEY RR.\r
+   Note that while the digest should be sufficient to identify the\r
+   public key, storing the key tag and key algorithm helps make the\r
+   identification process more efficient.  By authenticating the DS\r
+   record, a resolver can authenticate the DNSKEY RR to which the DS\r
+   record points.  The key authentication process is described in\r
+   [I-D.ietf-dnsext-dnssec-protocol].\r
+\r
+   The DS RR and its corresponding DNSKEY RR have the same owner name,\r
+   but they are stored in different locations.  The DS RR appears only\r
+   on the upper (parental) side of a delegation, and is authoritative\r
+   data in the parent zone.  For example, the DS RR for "example.com" is\r
+   stored in the "com" zone (the parent zone) rather than in the\r
+   "example.com" zone (the child zone).  The corresponding DNSKEY RR is\r
+   stored in the "example.com" zone (the child zone).  This simplifies\r
+   DNS zone management and zone signing, but introduces special response\r
+   processing requirements for the DS RR; these are described in\r
+   [I-D.ietf-dnsext-dnssec-protocol].\r
+\r
+   The type number for the DS record is 43.\r
+\r
+   The DS resource record is class independent.\r
+\r
+   The DS RR has no special TTL requirements.\r
+\r
+5.1  DS RDATA Wire Format\r
+\r
+   The RDATA for a DS RR consists of a 2 octet Key Tag field, a one\r
+   octet Algorithm field, a one octet Digest Type field, and a Digest\r
+   field.\r
+\r
+                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3\r
+    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   |           Key Tag             |  Algorithm    |  Digest Type  |\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+   /                                                               /\r
+   /                            Digest                             /\r
+   /                                                               /\r
+   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 19]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+5.1.1  The Key Tag Field\r
+\r
+   The Key Tag field lists the key tag of the DNSKEY RR referred to by\r
+   the DS record.\r
+\r
+   The Key Tag used by the DS RR is identical to the Key Tag used by\r
+   RRSIG RRs.  Appendix B describes how to compute a Key Tag.\r
+\r
+5.1.2  The Algorithm Field\r
+\r
+   The Algorithm field lists the algorithm number of the DNSKEY RR\r
+   referred to by the DS record.\r
+\r
+   The algorithm number used by the DS RR is identical to the algorithm\r
+   number used by RRSIG and DNSKEY RRs. Appendix A.1 lists the algorithm\r
+   number types.\r
+\r
+5.1.3  The Digest Type Field\r
+\r
+   The DS RR refers to a DNSKEY RR by including a digest of that DNSKEY\r
+   RR. The Digest Type field identifies the algorithm used to construct\r
+   the digest.  Appendix A.2 lists the possible digest algorithm types.\r
+\r
+5.1.4  The Digest Field\r
+\r
+   The DS record refers to a DNSKEY RR by including a digest of that\r
+   DNSKEY RR.\r
+\r
+   The digest is calculated by concatenating the canonical form of the\r
+   fully qualified owner name of the DNSKEY RR with the DNSKEY RDATA,\r
+   and then applying the digest algorithm.\r
+\r
+     digest = digest_algorithm( DNSKEY owner name | DNSKEY RDATA);\r
+\r
+      "|" denotes concatenation\r
+\r
+     DNSKEY RDATA = Flags | Protocol | Algorithm | Public Key.\r
+\r
+\r
+   The size of the digest may vary depending on the digest algorithm and\r
+   DNSKEY RR size.  As of the time of writing, the only defined digest\r
+   algorithm is SHA-1, which produces a 20 octet digest.\r
+\r
+5.2  Processing of DS RRs When Validating Responses\r
+\r
+   The DS RR links the authentication chain across zone boundaries, so\r
+   the DS RR requires extra care in processing.  The DNSKEY RR referred\r
+   to in the DS RR MUST be a DNSSEC zone key. The DNSKEY RR Flags MUST\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 20]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   have Flags bit 7 set to value 1. If the DNSKEY flags do not indicate\r
+   a DNSSEC zone key, the DS RR (and DNSKEY RR it references) MUST NOT\r
+   be used in the validation process.\r
+\r
+5.3  The DS RR Presentation Format\r
+\r
+   The presentation format of the RDATA portion is as follows:\r
+\r
+   The Key Tag field MUST be represented as an unsigned decimal integer.\r
+\r
+   The Algorithm field MUST be represented either as an unsigned decimal\r
+   integer or as an algorithm mnemonic specified in Appendix A.1.\r
+\r
+   The Digest Type field MUST be represented as an unsigned decimal\r
+   integer.\r
+\r
+   The Digest MUST be represented as a sequence of case-insensitive\r
+   hexadecimal digits.  Whitespace is allowed within the hexadecimal\r
+   text.\r
+\r
+5.4  DS RR Example\r
+\r
+   The following example shows a DNSKEY RR and its corresponding DS RR.\r
+\r
+   dskey.example.com. 86400 IN DNSKEY 256 3 5 ( AQOeiiR0GOMYkDshWoSKz9Xz\r
+                                             fwJr1AYtsmx3TGkJaNXVbfi/\r
+                                             2pHm822aJ5iI9BMzNXxeYCmZ\r
+                                             DRD99WYwYqUSdjMmmAphXdvx\r
+                                             egXd/M5+X7OrzKBaMbCVdFLU\r
+                                             Uh6DhweJBjEVv5f2wwjM9Xzc\r
+                                             nOf+EPbtG9DMBmADjFDc2w/r\r
+                                             ljwvFw==\r
+                                             ) ;  key id = 60485\r
+\r
+   dskey.example.com. 86400 IN DS 60485 5 1 ( 2BB183AF5F22588179A53B0A\r
+                                              98631FAD1A292118 )\r
+\r
+\r
+   The first four text fields specify the name, TTL, Class, and RR type\r
+   (DS). Value 60485 is the key tag for the corresponding\r
+   "dskey.example.com." DNSKEY RR, and value 5 denotes the algorithm\r
+   used by this "dskey.example.com." DNSKEY RR.  The value 1 is the\r
+   algorithm used to construct the digest, and the rest of the RDATA\r
+   text is the digest in hexadecimal.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 21]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+6.  Canonical Form and Order of Resource Records\r
+\r
+   This section defines a canonical form for resource records, a\r
+   canonical ordering of DNS names, and a canonical ordering of resource\r
+   records within an RRset.  A canonical name order is required to\r
+   construct the NSEC name chain.  A canonical RR form and ordering\r
+   within an RRset are required to construct and verify RRSIG RRs.\r
+\r
+6.1  Canonical DNS Name Order\r
+\r
+   For purposes of DNS security, owner names are ordered by treating\r
+   individual labels as unsigned left-justified octet strings.  The\r
+   absence of a octet sorts before a zero value octet, and upper case\r
+   US-ASCII letters are treated as if they were lower case US-ASCII\r
+   letters.\r
+\r
+   To compute the canonical ordering of a set of DNS names, start by\r
+   sorting the names according to their most significant (rightmost)\r
+   labels.  For names in which the most significant label is identical,\r
+   continue sorting according to their next most significant label, and\r
+   so forth.\r
+\r
+   For example, the following names are sorted in canonical DNS name\r
+   order.  The most significant label is "example".  At this level,\r
+   "example" sorts first, followed by names ending in "a.example", then\r
+   names ending "z.example".  The names within each level are sorted in\r
+   the same way.\r
+\r
+             example\r
+             a.example\r
+             yljkjljk.a.example\r
+             Z.a.example\r
+             zABC.a.EXAMPLE\r
+             z.example\r
+             \001.z.example\r
+             *.z.example\r
+             \200.z.example\r
+\r
+\r
+6.2  Canonical RR Form\r
+\r
+   For purposes of DNS security, the canonical form of an RR is the wire\r
+   format of the RR where:\r
+   1.  Every domain name in the RR is fully expanded (no DNS name\r
+       compression) and fully qualified;\r
+   2.  All uppercase US-ASCII letters in the owner name of the RR are\r
+       replaced by the corresponding lowercase US-ASCII letters;\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 22]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   3.  If the type of the RR is NS, MD, MF, CNAME, SOA, MB, MG, MR, PTR,\r
+       HINFO, MINFO, MX, HINFO, RP, AFSDB, RT, SIG, PX, NXT, NAPTR, KX,\r
+       SRV, DNAME, A6, RRSIG or NSEC, all uppercase US-ASCII letters in\r
+       the DNS names contained within the RDATA are replaced by the\r
+       corresponding lowercase US-ASCII letters;\r
+   4.  If the owner name of the RR is a wildcard name, the owner name is\r
+       in its original unexpanded form, including the "*" label (no\r
+       wildcard substitution); and\r
+   5.  The RR's TTL is set to its original value as it appears in the\r
+       originating authoritative zone or the Original TTL field of the\r
+       covering RRSIG RR.\r
+\r
+6.3  Canonical RR Ordering Within An RRset\r
+\r
+   For purposes of DNS security, RRs with the same owner name, class,\r
+   and type are sorted by treating the RDATA portion of the canonical\r
+   form of each RR as a left-justified unsigned octet sequence where the\r
+   absence of an octet sorts before a zero octet.\r
+\r
+   [RFC2181] specifies that an RRset is not allowed to contain duplicate\r
+   records (multiple RRs with the same owner name, class, type, and\r
+   RDATA).  Therefore, if an implementation detects duplicate RRs when\r
+   putting the RRset in canonical form, the implementation MUST treat\r
+   this as a protocol error.  If the implementation chooses to handle\r
+   this protocol error in the spirit of the robustness principle (being\r
+   liberal in what it accepts), the implementation MUST remove all but\r
+   one of the duplicate RR(s) for purposes of calculating the canonical\r
+   form of the RRset.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 23]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+7.  IANA Considerations\r
+\r
+   This document introduces no new IANA considerations, because all of\r
+   the protocol parameters used in this document have already been\r
+   assigned by previous specifications.  However, since the evolution of\r
+   DNSSEC has been long and somewhat convoluted, this section attempts\r
+   to describe the current state of the IANA registries and other\r
+   protocol parameters which are (or once were) related to DNSSEC.\r
+\r
+   Please refer to [I-D.ietf-dnsext-dnssec-protocol] for additional IANA\r
+   considerations.\r
+\r
+   DNS Resource Record Types: [RFC2535] assigned types 24, 25, and 30 to\r
+      the SIG, KEY, and NXT RRs, respectively. [RFC3658] assigned DNS\r
+      Resource Record Type 43 to DS. [RFC3755] assigned types 46, 47,\r
+      and 48 to the RRSIG, NSEC, and DNSKEY RRs, respectively. [RFC3755]\r
+      also marked type 30 (NXT) as Obsolete, and restricted use of types\r
+      24 (SIG) and 25 (KEY) to the "SIG(0)" transaction security\r
+      protocol described in [RFC2931] and the transaction KEY Resource\r
+      Record described in [RFC2930].\r
+\r
+   DNS Security Algorithm Numbers: [RFC2535] created an IANA registry\r
+      for DNSSEC Resource Record Algorithm field numbers, and assigned\r
+      values 1-4 and 252-255.  [RFC3110] assigned value 5. [RFC3755]\r
+      altered this registry to include flags for each entry regarding\r
+      its use with the DNS security extensions.  Each algorithm entry\r
+      could refer to an algorithm that can be used for zone signing,\r
+      transaction security (see [RFC2931]) or both. Values 6-251 are\r
+      available for assignment by IETF standards action. See Appendix A\r
+      for a full listing of the DNS Security Algorithm Numbers entries\r
+      at the time of writing and their status of use in DNSSEC.\r
+\r
+      [RFC3658] created an IANA registry for DNSSEC DS Digest Types, and\r
+      assigned value 0 to reserved and value 1 to SHA-1.\r
+\r
+   KEY Protocol Values: [RFC2535] created an IANA Registry for KEY\r
+      Protocol Values, but [RFC3445] re-assigned all values other than 3\r
+      to reserved and closed this IANA registry.  The registry remains\r
+      closed, and all KEY and DNSKEY records are required to have\r
+      Protocol Octet value of 3.\r
+\r
+   Flag bits in the KEY and DNSKEY RRs: [RFC3755] created an IANA\r
+      registry for the DNSSEC KEY and DNSKEY RR flag bits.  Initially,\r
+      this registry only contains an assignment for bit 7 (the ZONE bit)\r
+      and a reservation for bit 15 for the Secure Entry Point flag (SEP\r
+      bit) [RFC3757]. Bits 0-6 and 8-14 are available for assignment by\r
+      IETF Standards Action.\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 24]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+8.  Security Considerations\r
+\r
+   This document describes the format of four DNS resource records used\r
+   by the DNS security extensions, and presents an algorithm for\r
+   calculating a key tag for a public key. Other than the items\r
+   described below, the resource records themselves introduce no\r
+   security considerations.  Please see [I-D.ietf-dnsext-dnssec-intro]\r
+   and [I-D.ietf-dnsext-dnssec-protocol] for additional security\r
+   considerations related to the use of these records.\r
+\r
+   The DS record points to a DNSKEY RR using a cryptographic digest, the\r
+   key algorithm type and a key tag.  The DS record is intended to\r
+   identify an existing DNSKEY RR, but it is theoretically possible for\r
+   an attacker to generate a DNSKEY that matches all the DS fields.  The\r
+   probability of constructing such a matching DNSKEY depends on the\r
+   type of digest algorithm in use.  The only currently defined digest\r
+   algorithm is SHA-1, and the working group believes that constructing\r
+   a public key which would match the algorithm, key tag, and SHA-1\r
+   digest given in a DS record would be a sufficiently difficult problem\r
+   that such an attack is not a serious threat at this time.\r
+\r
+   The key tag is used to help select DNSKEY resource records\r
+   efficiently, but it does not uniquely identify a single DNSKEY\r
+   resource record.  It is possible for two distinct DNSKEY RRs to have\r
+   the same owner name, the same algorithm type, and the same key tag.\r
+   An implementation which uses only the key tag to select a DNSKEY RR\r
+   might select the wrong public key in some circumstances.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 25]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+9.  Acknowledgments\r
+\r
+   This document was created from the input and ideas of the members of\r
+   the DNS Extensions Working Group and working group mailing list.  The\r
+   editors would like to express their thanks for the comments and\r
+   suggestions received during the revision of these security extension\r
+   specifications.  While explicitly listing everyone who has\r
+   contributed during the decade during which DNSSEC has been under\r
+   development would be an impossible task,\r
+   [I-D.ietf-dnsext-dnssec-intro] includes a list of some of the\r
+   participants who were kind enough to comment on these documents.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 26]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+10.  References\r
+\r
+10.1  Normative References\r
+\r
+   [I-D.ietf-dnsext-dnssec-intro]\r
+              Arends, R., Austein, R., Larson, M., Massey, D. and S.\r
+              Rose, "DNS Security Introduction and Requirements",\r
+              draft-ietf-dnsext-dnssec-intro-10 (work in progress), May\r
+              2004.\r
+\r
+   [I-D.ietf-dnsext-dnssec-protocol]\r
+              Arends, R., Austein, R., Larson, M., Massey, D. and S.\r
+              Rose, "Protocol Modifications for the DNS Security\r
+              Extensions", draft-ietf-dnsext-dnssec-protocol-06 (work in\r
+              progress), May 2004.\r
+\r
+   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",\r
+              STD 13, RFC 1034, November 1987.\r
+\r
+   [RFC1035]  Mockapetris, P., "Domain names - implementation and\r
+              specification", STD 13, RFC 1035, November 1987.\r
+\r
+   [RFC1521]  Borenstein, N. and N. Freed, "MIME (Multipurpose Internet\r
+              Mail Extensions) Part One: Mechanisms for Specifying and\r
+              Describing the Format of Internet Message Bodies", RFC\r
+              1521, September 1993.\r
+\r
+   [RFC1982]  Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982,\r
+              August 1996.\r
+\r
+   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate\r
+              Requirement Levels", BCP 14, RFC 2119, March 1997.\r
+\r
+   [RFC2136]  Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic\r
+              Updates in the Domain Name System (DNS UPDATE)", RFC 2136,\r
+              April 1997.\r
+\r
+   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS\r
+              Specification", RFC 2181, July 1997.\r
+\r
+   [RFC2308]  Andrews, M., "Negative Caching of DNS Queries (DNS\r
+              NCACHE)", RFC 2308, March 1998.\r
+\r
+   [RFC2671]  Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC\r
+              2671, August 1999.\r
+\r
+   [RFC2931]  Eastlake, D., "DNS Request and Transaction Signatures (\r
+              SIG(0)s)", RFC 2931, September 2000.\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 27]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   [RFC3110]  Eastlake, D., "RSA/SHA-1 SIGs and RSA KEYs in the Domain\r
+              Name System (DNS)", RFC 3110, May 2001.\r
+\r
+   [RFC3445]  Massey, D. and S. Rose, "Limiting the Scope of the KEY\r
+              Resource Record (RR)", RFC 3445, December 2002.\r
+\r
+   [RFC3597]  Gustafsson, A., "Handling of Unknown DNS Resource Record\r
+              (RR) Types", RFC 3597, September 2003.\r
+\r
+   [RFC3658]  Gudmundsson, O., "Delegation Signer (DS) Resource Record\r
+              (RR)", RFC 3658, December 2003.\r
+\r
+   [RFC3755]  Weiler, S., "Legacy Resolver Compatibility for Delegation\r
+              Signer", RFC 3755, April 2004.\r
+\r
+   [RFC3757]  Kolkman, O., Schlyter, J. and E. Lewis, "KEY RR Secure\r
+              Entry Point Flag", RFC 3757, April 2004.\r
+\r
+10.2  Informative References\r
+\r
+   [I-D.ietf-dnsext-nsec-rdata]\r
+              Schlyter, J., "KEY RR Secure Entry Point Flag",\r
+              draft-ietf-dnsext-nsec-rdata-05 (work in progress), March\r
+              2004.\r
+\r
+   [RFC2535]  Eastlake, D., "Domain Name System Security Extensions",\r
+              RFC 2535, March 1999.\r
+\r
+   [RFC2930]  Eastlake, D., "Secret Key Establishment for DNS (TKEY\r
+              RR)", RFC 2930, September 2000.\r
+\r
+\r
+Authors' Addresses\r
+\r
+   Roy Arends\r
+   Telematica Instituut\r
+   Drienerlolaan 5\r
+   7522 NB  Enschede\r
+   NL\r
+\r
+   EMail: roy.arends@telin.nl\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 28]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   Rob Austein\r
+   Internet Systems Consortium\r
+   950 Charter Street\r
+   Redwood City, CA  94063\r
+   USA\r
+\r
+   EMail: sra@isc.org\r
+\r
+\r
+   Matt Larson\r
+   VeriSign, Inc.\r
+   21345 Ridgetop Circle\r
+   Dulles, VA  20166-6503\r
+   USA\r
+\r
+   EMail: mlarson@verisign.com\r
+\r
+\r
+   Dan Massey\r
+   USC Information Sciences Institute\r
+   3811 N. Fairfax Drive\r
+   Arlington, VA  22203\r
+   USA\r
+\r
+   EMail: masseyd@isi.edu\r
+\r
+\r
+   Scott Rose\r
+   National Institute for Standards and Technology\r
+   100 Bureau Drive\r
+   Gaithersburg, MD  20899-8920\r
+   USA\r
+\r
+   EMail: scott.rose@nist.gov\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 29]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+Appendix A.  DNSSEC Algorithm and Digest Types\r
+\r
+   The DNS security extensions are designed to be independent of the\r
+   underlying cryptographic algorithms. The DNSKEY, RRSIG, and DS\r
+   resource records all use a DNSSEC Algorithm Number to identify the\r
+   cryptographic algorithm in use by the resource record.   The DS\r
+   resource record also specifies a Digest Algorithm Number to identify\r
+   the digest algorithm used to construct the DS record. The currently\r
+   defined Algorithm and Digest Types are listed below.  Additional\r
+   Algorithm or Digest Types could be added as advances in cryptography\r
+   warrant.\r
+\r
+   A DNSSEC aware resolver or name server MUST implement all MANDATORY\r
+   algorithms.\r
+\r
+A.1  DNSSEC Algorithm Types\r
+\r
+   The DNSKEY, RRSIG, and DS RRs use an 8-bit number used to identify\r
+   the security algorithm being used.  These values are stored in the\r
+   "Algorithm number" field in the resource record RDATA.\r
+\r
+   Some algorithms are usable only for zone signing (DNSSEC), some only\r
+   for transaction security mechanisms (SIG(0) and TSIG), and some for\r
+   both.  Those usable for zone signing may appear in DNSKEY, RRSIG, and\r
+   DS RRs.  Those usable for transaction security would be present in\r
+   SIG(0) and KEY RRs as described in [RFC2931]\r
+\r
+                                Zone\r
+   Value Algorithm [Mnemonic]  Signing  References   Status\r
+   ----- -------------------- --------- ----------  ---------\r
+     0   reserved\r
+     1   RSA/MD5 [RSAMD5]         n      RFC 2537   NOT RECOMMENDED\r
+     2   Diffie-Hellman [DH]      n      RFC 2539    -\r
+     3   DSA/SHA-1 [DSA]          y      RFC 2536   OPTIONAL\r
+     4   Elliptic Curve [ECC]              TBA       -\r
+     5   RSA/SHA-1 [RSASHA1]      y      RFC 3110   MANDATORY\r
+   252   Indirect [INDIRECT]      n                  -\r
+   253   Private [PRIVATEDNS]     y      see below  OPTIONAL\r
+   254   Private [PRIVATEOID]     y      see below  OPTIONAL\r
+   255   reserved\r
+\r
+   6 - 251  Available for assignment by IETF Standards Action.\r
+\r
+A.1.1  Private Algorithm Types\r
+\r
+   Algorithm number 253 is reserved for private use and will never be\r
+   assigned to a specific algorithm.  The public key area in the DNSKEY\r
+   RR and the signature area in the RRSIG RR begin with a wire encoded\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 30]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   domain name, which MUST NOT be compressed. The domain name indicates\r
+   the private algorithm to use and the remainder of the public key area\r
+   is determined by that algorithm.  Entities should only use domain\r
+   names they control to designate their private algorithms.\r
+\r
+   Algorithm number 254 is reserved for private use and will never be\r
+   assigned to a specific algorithm. The public key area in the DNSKEY\r
+   RR and the signature area in the RRSIG RR begin with an unsigned\r
+   length byte followed by a BER encoded Object Identifier (ISO OID) of\r
+   that length.  The OID indicates the private algorithm in use and the\r
+   remainder of the area is whatever is required by that algorithm.\r
+   Entities should only use OIDs they control to designate their private\r
+   algorithms.\r
+\r
+A.2  DNSSEC Digest Types\r
+\r
+   A "Digest Type" field in the DS resource record types identifies the\r
+   cryptographic digest algorithm used by the resource record.   The\r
+   following table lists the currently defined digest algorithm types.\r
+\r
+              VALUE   Algorithm                 STATUS\r
+                0      Reserved                   -\r
+                1      SHA-1                   MANDATORY\r
+              2-255    Unassigned                 -\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 31]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+Appendix B.  Key Tag Calculation\r
+\r
+   The Key Tag field in the RRSIG and DS resource record types provides\r
+   a mechanism for selecting a public key efficiently. In most cases, a\r
+   combination of owner name, algorithm, and key tag can efficiently\r
+   identify a DNSKEY record.  Both the RRSIG and DS resource records\r
+   have corresponding DNSKEY records.  The Key Tag field in the RRSIG\r
+   and DS records can be used to help select the corresponding DNSKEY RR\r
+   efficiently when more than one candidate DNSKEY RR is available.\r
+\r
+   However, it is essential to note that the key tag is not a unique\r
+   identifier. It is theoretically possible for two distinct DNSKEY RRs\r
+   to have the same owner name, the same algorithm, and the same key\r
+   tag. The key tag is used to limit the possible candidate keys, but it\r
+   does not uniquely identify a DNSKEY record. Implementations MUST NOT\r
+   assume that the key tag uniquely identifies a DNSKEY RR.\r
+\r
+   The key tag is the same for all DNSKEY algorithm types except\r
+   algorithm 1 (please see Appendix B.1 for the definition of the key\r
+   tag for algorithm 1).  The key tag algorithm is the sum of the wire\r
+   format of the DNSKEY RDATA broken into 2 octet groups.  First the\r
+   RDATA (in wire format) is treated as a series of 2 octet groups,\r
+   these groups are then added together ignoring any carry bits.\r
+\r
+   A reference implementation of the key tag algorithm is as an ANSI C\r
+   function is given below with the RDATA portion of the DNSKEY RR is\r
+   used as input.  It is not necessary to use the following reference\r
+   code verbatim, but the numerical value of the Key Tag MUST be\r
+   identical to what the reference implementation would generate for the\r
+   same input.\r
+\r
+   Please note that the algorithm for calculating the Key Tag is almost\r
+   but not completely identical to the familiar ones complement checksum\r
+   used in many other Internet protocols.  Key Tags MUST be calculated\r
+   using the algorithm described here rather than the ones complement\r
+   checksum.\r
+\r
+   The following ANSI C reference implementation calculates the value of\r
+   a Key Tag.  This reference implementation applies to all algorithm\r
+   types except algorithm 1 (see Appendix B.1).  The input is the wire\r
+   format of the RDATA portion of the DNSKEY RR.  The code is written\r
+   for clarity, not efficiency.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 32]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   /*\r
+    * Assumes that int is at least 16 bits.\r
+    * First octet of the key tag is the most significant 8 bits of the\r
+    * return value;\r
+    * Second octet of the key tag is the least significant 8 bits of the\r
+    * return value.\r
+    */\r
+\r
+   unsigned int\r
+   keytag (\r
+           unsigned char key[],  /* the RDATA part of the DNSKEY RR */\r
+           unsigned int keysize  /* the RDLENGTH */\r
+          )\r
+   {\r
+           unsigned long ac;     /* assumed to be 32 bits or larger */\r
+           int i;                /* loop index */\r
+\r
+           for ( ac = 0, i = 0; i < keysize; ++i )\r
+                   ac += (i & 1) ? key[i] : key[i] << 8;\r
+           ac += (ac >> 16) & 0xFFFF;\r
+           return ac & 0xFFFF;\r
+   }\r
+\r
+\r
+B.1  Key Tag for Algorithm 1 (RSA/MD5)\r
+\r
+   The key tag for algorithm 1 (RSA/MD5) is defined differently than the\r
+   key tag for all other algorithms, for historical reasons.  For a\r
+   DNSKEY RR with algorithm 1, the key tag is defined to be the most\r
+   significant 16 bits of the least significant 24 bits in the public\r
+   key modulus (in other words, the 4th to last and 3rd to last octets\r
+   of the public key modulus).\r
+\r
+   Please note that Algorithm 1 is NOT RECOMMENDED.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 33]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+Intellectual Property Statement\r
+\r
+   The IETF takes no position regarding the validity or scope of any\r
+   intellectual property or other rights that might be claimed to\r
+   pertain to the implementation or use of the technology described in\r
+   this document or the extent to which any license under such rights\r
+   might or might not be available; neither does it represent that it\r
+   has made any effort to identify any such rights. Information on the\r
+   IETF's procedures with respect to rights in standards-track and\r
+   standards-related documentation can be found in BCP-11. Copies of\r
+   claims of rights made available for publication and any assurances of\r
+   licenses to be made available, or the result of an attempt made to\r
+   obtain a general license or permission for the use of such\r
+   proprietary rights by implementors or users of this specification can\r
+   be obtained from the IETF Secretariat.\r
+\r
+   The IETF invites any interested party to bring to its attention any\r
+   copyrights, patents or patent applications, or other proprietary\r
+   rights which may cover technology that may be required to practice\r
+   this standard. Please address the information to the IETF Executive\r
+   Director.\r
+\r
+\r
+Full Copyright Statement\r
+\r
+   Copyright (C) The Internet Society (2004). All Rights Reserved.\r
+\r
+   This document and translations of it may be copied and furnished to\r
+   others, and derivative works that comment on or otherwise explain it\r
+   or assist in its implementation may be prepared, copied, published\r
+   and distributed, in whole or in part, without restriction of any\r
+   kind, provided that the above copyright notice and this paragraph are\r
+   included on all such copies and derivative works. However, this\r
+   document itself may not be modified in any way, such as by removing\r
+   the copyright notice or references to the Internet Society or other\r
+   Internet organizations, except as needed for the purpose of\r
+   developing Internet standards in which case the procedures for\r
+   copyrights defined in the Internet Standards process must be\r
+   followed, or as required to translate it into languages other than\r
+   English.\r
+\r
+   The limited permissions granted above are perpetual and will not be\r
+   revoked by the Internet Society or its successors or assignees.\r
+\r
+   This document and the information contained herein is provided on an\r
+   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING\r
+   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING\r
+   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 34]\r
+\f\r
+Internet-Draft          DNSSEC Resource Records                 May 2004\r
+\r
+\r
+   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF\r
+   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\r
+\r
+\r
+Acknowledgment\r
+\r
+   Funding for the RFC Editor function is currently provided by the\r
+   Internet Society.\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+Arends, et al.         Expires November 15, 2004               [Page 35]\r
+\f\r
+\r