RFC 3090 PROPOSED STANDARD DNS · SECURITY · DNSSEC

DNS Security Extension Clarification on Zone Status

How to define whether a DNS zone is secured by DNSSEC.

On rfc-editor.org ↗
PUBLISHED
March 2001
AUTHORS
E. Lewis
STREAM
IETF
BUILDS ON
RFC 2535 — DNSSEC
OBSOLETED BY
RFC 4033 — DNSSEC Introduction, RFC 4034 — DNSSEC Records, RFC 4035 — DNSSEC Protocol
UPDATED BY
RFC 3658 — DS record
REPLACED BY
RFCs 4033, 4034, 4035
DOI
10.17487/RFC3090

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                           E. Lewis
Request for Comments: 3090                                      NAI Labs
Category: Standards Track                                     March 2001


          DNS Security Extension Clarification on Zone Status

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2001).  All Rights Reserved.

Abstract

   The definition of a secured zone is presented, clarifying and
   updating sections of RFC 2535.  RFC 2535 defines a zone to be secured
   based on a per algorithm basis, e.g., a zone can be secured with RSA
   keys, and not secured with DSA keys.  This document changes this to
   define a zone to be secured or not secured regardless of the key
   algorithm used (or not used).  To further simplify the determination
   of a zone's status, "experimentally secure" status is deprecated.

1 Introduction

   Whether a DNS zone is "secured" or not is a question asked in at
   least four contexts.  A zone administrator asks the question when
   configuring a zone to use DNSSEC.  A dynamic update server asks the
   question when an update request arrives, which may require DNSSEC
   processing.  A delegating zone asks the question of a child zone when
   the parent enters data indicating the status the child.  A resolver
   asks the question upon receipt of data belonging to the zone.

1.1 When a Zone's Status is Important

   A zone administrator needs to be able to determine what steps are
   needed to make the zone as secure as it can be.  Realizing that due
   to the distributed nature of DNS and its administration, any single
   zone is at the mercy of other zones when it comes to the appearance
   of security.  This document will define what makes a zone qualify as
   secure.

   A name server performing dynamic updates needs to know whether a zone
   being updated is to have signatures added to the updated data, NXT
   records applied, and other required processing.  In this case, it is
   conceivable that the name server is configured with the knowledge,
   but being able to determine the status of a zone by examining the
   data is a desirable alternative to configuration parameters.

   A delegating zone is required to indicate whether a child zone is
   secured.  The reason for this requirement lies in the way in which a
   resolver makes its own determination about a zone (next paragraph).
   To shorten a long story, a parent needs to know whether a child
   should be considered secured.  This is a two part question.  Under
   what circumstances does a parent consider a child zone to be secure,
   and how does a parent know if the child conforms?

   A resolver needs to know if a zone is secured when the resolver is
   processing data from the zone.  Ultimately, a resolver needs to know
   whether or not to expect a usable signature covering the data.  How
   this determination is done is out of the scope of this document,
   except that, in some cases, the resolver will need to contact the
   parent of the zone to see if the parent states that the child is
   secured.

1.2 Islands of Security

   The goal of DNSSEC is to have each zone secured, from the root zone
   and the top-level domains down the hierarchy to the leaf zones.
   Transitioning from an unsecured DNS, as we have now, to a fully
   secured - or "as much as will be secured" - tree will take some time.
   During this time, DNSSEC will be applied in various locations in the
   tree, not necessarily "top down."

   For example, at a particular instant, the root zone and the "test."
   TLD might be secured, but region1.test. might not be.  (For
   reference, let's assume that region2.test. is secured.)  However,
   subarea1.region1.test. may have gone through the process of becoming
   secured, along with its delegations.  The dilemma here is that
   subarea1 cannot get its zone keys properly signed as its parent zone,
   region1, is not secured.

   The colloquial phrase describing the collection of contiguous secured
   zones at or below subarea1.region1.test. is an "island of security."
   The only way in which a DNSSEC resolver will come to trust any data
   from this island is if the resolver is pre-configured with the zone
   key(s) for subarea1.region1.test., i.e., the root of the island of
   security.  Other resolvers (not so configured) will recognize this
   island as unsecured.

   An island of security begins with one zone whose public key is pre-
   configured in resolvers.  Within this island are subzones which are
   also secured.  The "bottom" of the island is defined by delegations
   to unsecured zones.  One island may also be on top of another -
   meaning that there is at least one unsecured zone between the bottom
   of the upper island and the root of the lower secured island.

   Although both subarea1.region1.test. and region2.test. have both been
   properly brought to a secured state by the administering staff, only
   the latter of the two is actually "globally" secured - in the sense
   that all DNSSEC resolvers can and will verify its data.  The former,
   subarea1, will be seen as secured by a subset of those resolvers,
   just those appropriately configured.  This document refers to such
   zones as being "locally" secured.

   In RFC 2535, there is a provision for "certification authorities,"
   entities that will sign public keys for zones such as subarea1.
   There is another document, [RFC3008], that restricts this activity.
   Regardless of the other document, resolvers would still need proper
   configuration to be able to use the certification authority to verify
   the data for the subarea1 island.

1.2.1 Determining the closest security root

   Given a domain, in order to determine whether it is secure or not,
   the first step is to determine the closest security root.  The
   closest security root is the top of an island of security whose name
   has the most matching (in order from the root) right-most labels to
   the given domain.

   For example, given a name "sub.domain.testing.signed.exp.test.", and
   given the secure roots "exp.test.", "testing.signed.exp.test." and
   "not-the-same.xy.", the middle one is the closest.  The first secure
   root shares 2 labels, the middle 4, and the last 0.

   The reason why the closest is desired is to eliminate false senses of
   insecurity because of a NULL key.  Continuing with the example, the
   reason both "testing..." and "exp.test." are listed as secure root is
   presumably because "signed.exp.test." is unsecured (has a NULL key).
   If we started to descend from "exp.test." to our given domain
   (sub...), we would encounter a NULL key and conclude that sub... was
   unsigned.  However, if we descend from "testing..." and find keys
   "domain...." then we can conclude that "sub..." is secured.

   Note that this example assumes one-label deep zones, and assumes that
   we do not configure overlapping islands of security.  To be clear,
   the definition given should exclude "short.xy.test." from being a
   closest security root for "short.xy." even though 2 labels match.

   Overlapping islands of security introduce no conceptually interesting
   ideas and do not impact the protocol in anyway.  However, protocol
   implementers are advised to make sure their code is not thrown for a
   loop by overlaps.  Overlaps are sure to be configuration problems as
   islands of security grow to encompass larger regions of the name
   space.

1.3 Parent Statement of Child Security

   In 1.1 of this document, there is the comment "the parent states that
   the child is secured."  This has caused quite a bit of confusion.

   The need to have the parent "state" the status of a child is derived
   from the following observation.  If you are looking to see if an
   answer is secured, that it comes from an "island of security" and is
   properly signed, you must begin at the (appropriate) root of the
   island of security.

   To find the answer you are inspecting, you may have to descend
   through zones within the island of security.  Beginning with the
   trusted root of the island, you descend into the next zone down.  As
   you trust the upper zone, you need to get data from it about the next
   zone down, otherwise there is a vulnerable point in which a zone can
   be hijacked. When or if you reach a point of traversing from a
   secured zone to an unsecured zone, you have left the island of
   security and should conclude that the answer is unsecured.

   However, in RFC 2535, section 2.3.4, these words seem to conflict
   with the need to have the parent "state" something about a child:

      There MUST be a zone KEY RR, signed by its superzone, for every
      subzone if the superzone is secure.  This will normally appear in
      the subzone and may also be included in the superzone.  But, in
      the case of an unsecured subzone which can not or will not be
      modified to add any security RRs, a KEY declaring the subzone to
      be unsecured MUST appear with the superzone signature in the
      superzone, if the superzone is secure.

   The confusion here is that in RFC 2535, a secured parent states that
   a child is secured by SAYING NOTHING ("may also be" as opposed to
   "MUST also be").  This is counter intuitive, the fact that an absence
   of data means something is "secured."  This notion, while acceptable
   in a theoretic setting has met with some discomfort in an operation
   setting.  However, the use of "silence" to state something does
   indeed work in this case, so there hasn't been sufficient need
   demonstrated to change the definition.

1.4 Impact on RFC 2535

   This document updates sections of RFC 2535.  The definition of a
   secured zone is an update to section 3.4 of the RFC.  Section 3.4 is
   updated to eliminate the definition of experimental keys and
   illustrate a way to still achieve the functionality they were
   designed to provide.  Section 3.1.3 is updated by the specifying the
   value of the protocol octet in a zone key.

1.5 "MUST" and other key words

   The key words "MUST", "REQUIRED", "SHOULD", "RECOMMENDED", and "MAY"
   in this document are to be interpreted as described in [RFC 2119].
   Currently, only "MUST" is used in this document.

2 Status of a Zone

   In this section, rules governing a zone's DNSSEC status are
   presented.  There are three levels of security defined: global,
   local, and unsecured.  A zone is globally secure when it complies
   with the strictest set of DNSSEC processing rules.  A zone is locally
   secured when it is configured in such a way that only resolvers that
   are appropriately configured see the zone as secured.  All other
   zones are unsecured.

   Note: there currently is no document completely defining DNSSEC
   verification rules.  For the purposes of this document, the strictest
   rules are assumed to state that the verification chain of zone keys
   parallels the delegation tree up to the root zone.  (See 2.b below.)
   This is not intended to disallow alternate verification paths, just
   to establish a baseline definition.

   To avoid repetition in the rules below, the following terms are
   defined.

   2.a Zone signing KEY RR - A KEY RR whose flag field has the value 01
   for name type (indicating a zone key) and either value 00 or value 01
   for key type (indicating a key permitted to authenticate data).  (See
   RFC 2535, section 3.1.2).  The KEY RR also has a protocol octet value
   of DNSSEC (3) or ALL (255).

   The definition updates RFC 2535's definition of a zone key.  The
   requirement that the protocol field be either DNSSEC or ALL is a new
   requirement (a change to section 3.1.3.)

   2.b On-tree Validation - The authorization model in which only the
   parent zone is recognized to supply a DNSSEC-meaningful signature
   that is used by a resolver to build a chain of trust from the child's
   keys to a recognized root of security.  The term "on-tree" refers to
   following the DNS domain hierarchy (upwards) to reach a trusted key,
   presumably the root key if no other key is available.  The term
   "validation" refers to the digital signature by the parent to prove
   the integrity, authentication and authorization of the child's key to
   sign the child's zone data.

   2.c Off-tree Validation - Any authorization model that permits domain
   names other than the parent's to provide a signature over a child's
   zone keys that will enable a resolver to trust the keys.

2.1 Globally Secured

   A globally secured zone, in a nutshell, is a zone that uses only
   mandatory to implement algorithms (RFC 2535, section 3.2) and relies
   on a key certification chain that parallels the delegation tree (on-
   tree validation).  Globally secured zones are defined by the
   following rules.

   2.1.a. The zone's apex MUST have a KEY RR set.  There MUST be at
   least one zone signing KEY RR (2.a) of a mandatory to implement
   algorithm in the set.

   2.1.b. The zone's apex KEY RR set MUST be signed by a private key
   belonging to the parent zone.  The private key's public companion
   MUST be a zone signing KEY RR (2.a) of a mandatory to implement
   algorithm and owned by the parent's apex.

   If a zone cannot get a conforming signature from the parent zone, the
   child zone cannot be considered globally secured.  The only exception
   to this is the root zone, for which there is no parent zone.

   2.1.c. NXT records MUST be deployed throughout the zone.  (Clarifies
   RFC 2535, section 2.3.2.)  Note: there is some operational discomfort
   with the current NXT record.  This requirement is open to
   modification when two things happen.  First, an alternate mechanism
   to the NXT is defined and second, a means by which a zone can
   indicate that it is using an alternate method.

   2.1.d. Each RR set that qualifies for zone membership MUST be signed
   by a key that is in the apex's KEY RR set and is a zone signing KEY
   RR (2.a) of a mandatory to implement algorithm.  (Updates 2535,
   section 2.3.1.)

   Mentioned earlier, the root zone is a special case.  The root zone
   will be considered to be globally secured provided that if conforms
   to the rules for locally secured, with the exception that rule 2.1.a.
   be also met (mandatory to implement requirement).

2.2 Locally Secured

   The term "locally" stems from the likely hood that the only resolvers
   to be configured for a particular zone will be resolvers "local" to
   an organization.

   A locally secured zone is a zone that complies with rules like those
   for a globally secured zone with the following exceptions.  The
   signing keys may be of an algorithm that is not mandatory to
   implement and/or the verification of the zone keys in use may rely on
   a verification chain that is not parallel to the delegation tree
   (off-tree validation).

   2.2.a. The zone's apex MUST have a KEY RR set.  There MUST be at
   least one zone signing KEY RR (2.a) in the set.

   2.2.b. The zone's apex KEY RR set MUST be signed by a private key and
   one of the following two subclauses MUST hold true.

   2.2.b.1 The private key's public companion MUST be pre-configured in
   all the resolvers of interest.

   2.2.b.2 The private key's public companion MUST be a zone signing KEY
   RR (2.a) authorized to provide validation of the zone's apex KEY RR
   set, as recognized by resolvers of interest.

   The previous sentence is trying to convey the notion of using a
   trusted third party to provide validation of keys.  If the domain
   name owning the validating key is not the parent zone, the domain
   name must represent someone the resolver trusts to provide
   validation.

   2.2.c. NXT records MUST be deployed throughout the zone.  Note: see
   the discussion following 2.1.c.

   2.2.d. Each RR set that qualifies for zone membership MUST be signed
   by a key that is in the apex's KEY RR set and is a zone signing KEY
   RR (2.a).  (Updates 2535, section 2.3.1.)

2.3 Unsecured

   All other zones qualify as unsecured.  This includes zones that are
   designed to be experimentally secure, as defined in a later section
   on that topic.

2.4 Wrap up

   The designation of globally secured, locally secured, and unsecured
   are merely labels to apply to zones, based on their contents.
   Resolvers, when determining whether a signature is expected or not,
   will only see a zone as secured or unsecured.

   Resolvers that follow the most restrictive DNSSEC verification rules
   will only see globally secured zones as secured, and all others as
   unsecured, including zones which are locally secured.  Resolvers that
   are not as restrictive, such as those that implement algorithms in
   addition to the mandatory to implement algorithms, will see some
   locally secured zones as secured.

   The intent of the labels "global" and "local" is to identify the
   specific attributes of a zone.  The words are chosen to assist in the
   writing of a document recommending the actions a zone administrator
   take in making use of the DNS security extensions.  The words are
   explicitly not intended to convey a state of compliance with DNS
   security standards.

3 Experimental Status

   The purpose of an experimentally secured zone is to facilitate the
   migration from an unsecured zone to a secured zone.  This distinction
   is dropped.

   The objective of facilitating the migration can be achieved without a
   special designation of an experimentally secure status.
   Experimentally secured is a special case of locally secured.  A zone
   administrator can achieve this by publishing a zone with signatures
   and configuring a set of test resolvers with the corresponding public
   keys.  Even if the public key is published in a KEY RR, as long as
   there is no parent signature, the resolvers will need some pre-
   configuration to know to process the signatures.  This allows a zone
   to be secured with in the sphere of the experiment, yet still be
   registered as unsecured in the general Internet.

4 IANA Considerations

   This document does not request any action from an assigned number
   authority nor recommends any actions.

5 Security Considerations

   Without a means to enforce compliance with specified protocols or
   recommended actions, declaring a DNS zone to be "completely" secured
   is impossible.  Even if, assuming an omnipotent view of DNS, one can
   declare a zone to be properly configured for security, and all of the
   zones up to the root too, a misbehaving resolver could be duped into
   believing bad data.  If a zone and resolver comply, a non-compliant
   or subverted parent could interrupt operations.  The best that can be
   hoped for is that all parties are prepared to be judged secure and
   that security incidents can be traced to the cause in short order.

6 Acknowledgements

   The need to refine the definition of a secured zone has become
   apparent through the efforts of the participants at two DNSSEC
   workshops, sponsored by the NIC-SE (.se registrar), CAIRN (a DARPA-
   funded research network), and other workshops.  Further discussions
   leading to the document include Olafur Gudmundsson, Russ Mundy,
   Robert Watson, and Brian Wellington.  Roy Arends, Ted Lindgreen and
   others have contributed significant input via the namedroppers
   mailing list.

7 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.

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2136] Vixie, P., (Ed.), Thomson, S., Rekhter, Y. and J. Bound,
             "Dynamic Updates in the Domain Name System", RFC 2136,
             April 1997.

   [RFC2535] Eastlake, D., "Domain Name System Security Extensions", RFC
             2535, March 1999.

   [RFC3007] Wellington, B., "Simple 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.

10 Author's Address

   Edward Lewis
   NAI Labs
   3060 Washington Road Glenwood
   MD 21738

   Phone: +1 443 259 2352
   EMail: lewis@tislabs.com

11 Full Copyright Statement

   Copyright (C) The Internet Society (2001).  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 assigns.

   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
   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.

AI ELI5

On this page
PROBLEMRFC 2535 defined DNSSEC security per algorithm, so a zone could be secured with one algorithm but not another. This created confusion and complexity for implementers and operators.
MECHANISMThis document simplifies the definition: a zone is either secured or not secured, regardless of algorithm. It defines three levels: globally secured (follows standard chain of trust), locally secured (uses non-standard validation), and unsecured.
WHY IT MATTERSZone status is clearer and easier to determine. The document was superseded by RFCs 4033, 4034 and 4035.

§1Introduction and Context

The Domain Name System Security Extensions (DNSSEC) use digital signatures to verify DNS data. A critical question for DNS administrators, servers, and resolvers is: Is this zone secured? Zone administrators need to know what steps to take to secure a zone. Dynamic update servers need to know whether to apply DNSSEC processing. Parent zones need to indicate whether child zones are secured. Resolvers need to know whether to expect valid signatures.

RFC 2535 originally defined zone security on a per-algorithm basis: a zone could be secured with RSA keys but unsecured for DSA keys. This granular approach proved confusing in practice. RFC 3090 simplifies this by defining a zone as simply secured or unsecured, regardless of algorithm choice.

The document also deprecates the concept of experimentally secure zones, which were intended to facilitate migration but created additional complexity. A zone administrator can achieve the same goal more simply using locally secured status.

Early DNSSEC rules had different security levels depending on the type of lock used. This simplifies it: a zone is locked or unlocked, period.

§2Globally and Locally Secured Zones

A globally secured zone follows the strictest DNSSEC rules. It uses only mandatory-to-implement algorithms (per RFC 2535 section 3.2) and relies on a chain of trust that parallels the DNS delegation tree — meaning each zone's keys are signed by its parent zone, all the way up to a trusted root.

For a zone to be globally secured, it must have at least one zone signing KEY record at its apex using a mandatory algorithm, signed by the parent zone. The parent's signing key must also be a zone signing KEY using a mandatory algorithm. The zone must deploy NXT (Next) records throughout to provide complete denial of existence. Every record set must be signed by one of the zone's mandatory-algorithm keys.

A locally secured zone is similar but allows deviations: the signing algorithm need not be mandatory-to-implement, and the chain of trust can rely on off-tree validation (such as a trusted third party or pre-configuration in resolvers) rather than the parent zone. Locally secured zones still require NXT records and proper signatures, but can use non-standard algorithms or validation paths.

The document introduces the concept of islands of security — contiguous groups of secured zones surrounded by unsecured zones. A locally secured zone is often the root of such an island.

A zone can be locked in the standard way (parent vouches for child all the way up to the root) or in a custom way (some other authority approves it). Either way, it's locked.

§3Security Roots and Chain of Trust

Every secured zone must have a security context: a starting point from which trust flows. For globally secured zones, the security chain is on-tree — it parallels the DNS delegation hierarchy. Resolvers verify zone keys by tracing upward through parent signatures until reaching a trusted root.

For locally secured zones, the security chain is off-tree — it can use authorities outside the standard hierarchy. This includes certification authorities that sign zone keys, pre-configured keys in resolvers, or other trusted parties.

The document defines the closest security root as the security root with the most matching labels when descending toward a given domain. This helps disambiguate when multiple islands of security exist. For example, if both "exp.test." and "testing.signed.exp.test." are security roots and you are verifying "sub.domain.testing.signed.exp.test.", the latter is closest (4 matching labels vs. 2).

Islands of security can overlap but the definition ensures resolvers examine the correct verification chain. Parent zones indicate to child zones whether the child is secured by stating it explicitly (via a KEY record) or implying it through the absence of such a statement.

To verify a locked zone, you follow the signature chain upward to a key you trust. That starting key is the security root.

§4Unsecured Zones and Experimental Status Deprecation

An unsecured zone is any zone that does not meet the criteria for globally or locally secured status. This includes zones with no signatures, incomplete NXT record coverage, or signatures using non-mandatory algorithms without off-tree validation support.

RFC 2535 defined an experimentally secure status to facilitate migration from unsecured to secured zones. A zone could publish signatures and be tested before wide deployment. However, this status created unnecessary complexity. RFC 3090 deprecates it, allowing the same functionality via locally secured status: a zone administrator can publish signatures and configure test resolvers with the zone's public keys, achieving the same goal without a special designation.

This simplification reduces the number of security states resolvers must handle from four (globally secured, locally secured, experimentally secured, unsecured) to three (globally secured, locally secured, unsecured).

Zones that aren't locked properly are unsecured. The old "experimental" lock status is removed; zones can test security privately without a special label.

§5Determining Zone Status in Practice

The document provides rules for determining whether a zone is secured in various contexts. When a zone administrator configures a zone, they determine status by examining its KEY records, signatures and NXT records against the criteria for global or local security.

A dynamic update server determines zone status similarly, examining zone data to decide whether to apply DNSSEC processing. A parent zone indicates child zone status through presence or absence of KEY records (silence means secured; an explicit unsigned KEY record with NULL algorithm means unsecured).

Resolvers follow the most restrictive rules when verifying data. A resolver that only supports mandatory-to-implement algorithms will only see globally secured zones as secured. A resolver supporting additional algorithms may see locally secured zones as secured. The designations "globally" and "locally" are not standards-compliance states but simply identify the attributes and scope of a zone's security.

The document emphasizes that declaring a zone "completely" secured is impossible — misbehaving resolvers or non-compliant parents can subvert security. The best achievable state is that all parties comply with the rules and security incidents can be traced quickly.

To know if a zone is locked, examine its records and signatures. Different resolvers might see it differently depending on how strict they are.

§6References