RFC 9364 BEST CURRENT PRACTICE DNS · DNSSEC · SECURITY

DNS Security Extensions (DNSSEC)

A roadmap to the many RFCs that make up DNSSEC, and a statement that using it is best current practice.

On rfc-editor.org ↗
PUBLISHED
February 2023
AUTHORS
P. Hoffman
STREAM
IETF
BCP NUMBER
237
CORE DOCUMENTS
RFC 4033, RFC 4034, RFC 4035, plus RFC 6840
SIGNED WEBSITES (CITED ESTIMATE)
Fewer than 10%
VALIDATED QUERIES (CITED ESTIMATE)
Around a third
ROOT ZONE SIGNED
2010
DOI
10.17487/RFC9364

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                        P. Hoffman
Request for Comments: 9364                                         ICANN
BCP: 237                                                   February 2023
Category: Best Current Practice
ISSN: 2070-1721


                    DNS Security Extensions (DNSSEC)

Abstract

   This document describes the DNS Security Extensions (commonly called
   "DNSSEC") that are specified in RFCs 4033, 4034, and 4035, as well as
   a handful of others.  One purpose is to introduce all of the RFCs in
   one place so that the reader can understand the many aspects of
   DNSSEC.  This document does not update any of those RFCs.  A second
   purpose is to state that using DNSSEC for origin authentication of
   DNS data is the best current practice.  A third purpose is to provide
   a single reference for other documents that want to refer to DNSSEC.

Status of This Memo

   This memo documents an Internet Best Current Practice.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   BCPs is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc9364.

Copyright Notice

   Copyright (c) 2023 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Revised BSD License text as described in Section 4.e of the
   Trust Legal Provisions and are provided without warranty as described
   in the Revised BSD License.

Table of Contents

   1.  Introduction
     1.1.  DNSSEC as a Best Current Practice
     1.2.  Implementing DNSSEC
   2.  DNSSEC Core Documents
     2.1.  Addition to the DNSSEC Core
   3.  Additional Cryptographic Algorithms and DNSSEC
   4.  Extensions to DNSSEC
   5.  Additional Documents of Interest
   6.  IANA Considerations
   7.  Security Considerations
   8.  References
     8.1.  Normative References
     8.2.  Informative References
   Acknowledgements
   Author's Address

1.  Introduction

   The core specification for what we know as DNSSEC (the combination of
   [RFC4033], [RFC4034], and [RFC4035]) describes a set of protocols
   that provide origin authentication of DNS data.  [RFC6840] updates
   and extends those core RFCs but does not fundamentally change the way
   that DNSSEC works.

   This document lists RFCs that should be considered by someone
   creating an implementation of, or someone deploying, DNSSEC as it is
   currently standardized.  Although an effort was made to be thorough,
   the reader should not assume this list is comprehensive.  It uses
   terminology from those documents without defining that terminology.
   It also points to the relevant IANA registry groups that relate to
   DNSSEC.  It does not, however, point to standards that rely on zones
   needing to be signed by DNSSEC, such as DNS-Based Authentication of
   Named Entities (DANE) [RFC6698].

1.1.  DNSSEC as a Best Current Practice

   Using the DNSSEC set of protocols is the best current practice for
   adding origin authentication of DNS data.  To date, no Standards
   Track RFCs offer any other method for such origin authentication of
   data in the DNS.

   More than 15 years after the DNSSEC specification was published, it
   is still not widely deployed.  Recent estimates are that fewer than
   10% of the domain names used for websites are signed, and only around
   a third of queries to recursive resolvers are validated.  However,
   this low level of deployment does not affect whether using DNSSEC is
   a best current practice; it just indicates that the value of
   deploying DNSSEC is often considered lower than the cost.
   Nonetheless, the significant deployment of DNSSEC beneath some top-
   level domains (TLDs) and the near-universal deployment of DNSSEC for
   the TLDs in the DNS root zone demonstrate that DNSSEC is applicable
   for implementation by both ordinary and highly sophisticated domain
   owners.

1.2.  Implementing DNSSEC

   Developers of validating resolvers and authoritative servers, as well
   as operators of validating resolvers and authoritative servers, need
   to know the parts of the DNSSEC protocol that would affect them.
   They should read the DNSSEC core documents and probably at least be
   familiar with the extensions.  Developers will probably need to be
   very familiar with the algorithm documents as well.

   As a side note, some of the DNSSEC-related RFCs have significant
   errata, so reading the RFCs should also include looking for the
   related errata.

2.  DNSSEC Core Documents

   What we refer to as "DNSSEC" is the third iteration of the DNSSEC
   specification; [RFC2065] was the first, and [RFC2535] was the second.
   Earlier iterations have not been deployed on a significant scale.
   Throughout this document, "DNSSEC" means the protocol initially
   defined in [RFC4033], [RFC4034], and [RFC4035].

   The three initial core documents generally cover different topics:

   *  [RFC4033] is an overview of DNSSEC, including how it might change
      the resolution of DNS queries.

   *  [RFC4034] specifies the DNS resource records used in DNSSEC.  It
      obsoletes many RFCs about earlier versions of DNSSEC.

   *  [RFC4035] covers the modifications to the DNS protocol incurred by
      DNSSEC.  These include signing zones, serving signed zones,
      resolving in light of DNSSEC, and authenticating DNSSEC-signed
      data.

   At the time this set of core documents was published, someone could
   create a DNSSEC implementation of signing software, of a DNSSEC-aware
   authoritative server, and/or of a DNSSEC-aware recursive resolver
   from the three core documents, plus a few older RFCs specifying the
   cryptography used.  Those two older documents are the following:

   *  [RFC2536] defines how to use the DSA signature algorithm (although
      it refers to other documents for the details).  DSA was thinly
      implemented and can safely be ignored by DNSSEC implementations.

   *  [RFC3110] defines how to use the RSA signature algorithm (although
      refers to other documents for the details).  RSA is still among
      the most popular signing algorithms for DNSSEC.

   It is important to note that later RFCs update the core documents.
   As just one example, [RFC9077] changes how TTL values are calculated
   in DNSSEC processing.

2.1.  Addition to the DNSSEC Core

   As with any major protocol, developers and operators discovered
   issues with the original core documents over the years.  [RFC6840] is
   an omnibus update to the original core documents and thus itself has
   become a core document.  In addition to covering new requirements
   from new DNSSEC RFCs, it describes many important security and
   interoperability issues that arose during the deployment of the
   initial specifications, particularly after the DNS root was signed in
   2010.  It also lists some errors in the examples of the core
   specifications.

   [RFC6840] brings a few additions into the core of DNSSEC.  It makes
   NSEC3 [RFC5155] as much a part of DNSSEC as NSEC is.  It also makes
   the SHA-256 and SHA-512 hash functions defined in [RFC4509] and
   [RFC5702] part of the core.

3.  Additional Cryptographic Algorithms and DNSSEC

   Current cryptographic algorithms typically weaken over time as
   computing power improves and new cryptoanalysis emerges.  Two new
   signing algorithms have been adopted by the DNSSEC community:
   Elliptic Curve Digital Signature Algorithm (ECDSA) [RFC6605] and
   Edwards-curve Digital Signature Algorithm (EdDSA) [RFC8080].  ECDSA
   and EdDSA have become very popular signing algorithms in recent
   years.  The GOST signing algorithm [GOST-SIGN] was also adopted but
   has seen very limited use, likely because it is a national algorithm
   specific to a very small number of countries.

   Implementation developers who want to know which algorithms to
   implement in DNSSEC software should refer to [RFC8624].  Note that
   this specification is only about what algorithms should and should
   not be included in implementations, i.e., it is not advice about
   which algorithms zone operators should or should not use for signing,
   nor which algorithms recursive resolver operators should or should
   not use for validation.

4.  Extensions to DNSSEC

   The DNSSEC community has extended the DNSSEC core and the
   cryptographic algorithms, both in terms of describing good
   operational practices and in new protocols.  Some of the RFCs that
   describe these extensions include the following:

   *  [RFC5011] describes a method to help resolvers update their DNSSEC
      trust anchors in an automated fashion.  This method was used in
      2018 to update the DNS root trust anchor.

   *  [RFC6781] is a compendium of operational practices that may not be
      obvious from reading just the core specifications.

   *  [RFC7344] describes using the CDS and CDNSKEY resource records to
      help automate the maintenance of DS records in the parents of
      signed zones.

   *  [RFC8078] extends [RFC7344] by showing how to do initial setup of
      trusted relationships between signed parent and child zones.

   *  [RFC8198] describes how a validating resolver can emit fewer
      queries in signed zones that use NSEC and NSEC3 for negative
      caching.

   *  [RFC9077] updates [RFC8198] with respect to the TTL fields in
      signed records.

5.  Additional Documents of Interest

   The documents listed above constitute the core of DNSSEC, the
   additional cryptographic algorithms, and the major extensions to
   DNSSEC.  This section lists some additional documents that someone
   interested in implementing or operating DNSSEC might find of value:

   *  [RFC4470] "describes how to construct DNSSEC NSEC resource records
      that cover a smaller range of names than called for by [RFC4034].
      By generating and signing these records on demand, authoritative
      name servers can effectively stop the disclosure of zone contents
      otherwise made possible by walking the chain of NSEC records in a
      signed zone".

   *  [RFC6975] "specifies a way for validating end-system resolvers to
      signal to a server which digital signature and hash algorithms
      they support".

   *  [RFC7129] "provides additional background commentary and some
      context for the NSEC and NSEC3 mechanisms used by DNSSEC to
      provide authenticated denial-of-existence responses".  This
      background is particularly important for understanding NSEC and
      NSEC3 usage.

   *  [RFC7583] "describes the issues surrounding the timing of events
      in the rolling of a key in a DNSSEC-secured zone".

   *  [RFC7646] "defines Negative Trust Anchors (NTAs), which can be
      used to mitigate DNSSEC validation failures by disabling DNSSEC
      validation at specified domains".

   *  [RFC7958] "describes the format and publication mechanisms IANA
      has used to distribute the DNSSEC trust anchors".

   *  [RFC8027] "describes problems that a Validating DNS resolver,
      stub-resolver, or application might run into within a non-
      compliant infrastructure".

   *  [RFC8145] "specifies two different ways for validating resolvers
      to signal to a server which keys are referenced in their chain of
      trust".

   *  [RFC8499] contains lists of terminology used when talking about
      DNS; Sections 10 and 11 cover DNSSEC.

   *  [RFC8509] "specifies a mechanism that will allow an end user and
      third parties to determine the trusted key state for the root key
      of the resolvers that handle that user's DNS queries".

   *  [RFC8901] "presents deployment models that accommodate this
      scenario [when each DNS provider independently signs zone data
      with their own keys] and describes these key-management
      requirements".

   *  [RFC9276] "provides guidance on setting NSEC3 parameters based on
      recent operational deployment experience".

   There will certainly be other RFCs related to DNSSEC that are
   published after this one.

6.  IANA Considerations

   IANA already has three registry groups that relate to DNSSEC:

   *  DNSSEC algorithm numbers (https://www.iana.org/assignments/dns-
      sec-alg-numbers)

   *  DNSSEC NSEC3 parameters (https://www.iana.org/assignments/dnssec-
      nsec3-parameters)

   *  DNSSEC DS RRtype digest algorithms
      (https://www.iana.org/assignments/ds-rr-types)

   The rules for the DNSSEC algorithm registry were set in the core RFCs
   and updated by [RFC6014], [RFC6725], and [RFC9157].

   This document does not update or create any registry groups or
   registries.

7.  Security Considerations

   All of the security considerations from all of the RFCs referenced in
   this document apply here.

8.  References

8.1.  Normative References

   [RFC3110]  Eastlake 3rd, D., "RSA/SHA-1 SIGs and RSA KEYs in the
              Domain Name System (DNS)", RFC 3110, DOI 10.17487/RFC3110,
              May 2001, <https://www.rfc-editor.org/info/rfc3110>.

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, DOI 10.17487/RFC4033, March 2005,
              <https://www.rfc-editor.org/info/rfc4033>.

   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Resource Records for the DNS Security Extensions",
              RFC 4034, DOI 10.17487/RFC4034, March 2005,
              <https://www.rfc-editor.org/info/rfc4034>.

   [RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Protocol Modifications for the DNS Security
              Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005,
              <https://www.rfc-editor.org/info/rfc4035>.

   [RFC4509]  Hardaker, W., "Use of SHA-256 in DNSSEC Delegation Signer
              (DS) Resource Records (RRs)", RFC 4509,
              DOI 10.17487/RFC4509, May 2006,
              <https://www.rfc-editor.org/info/rfc4509>.

   [RFC5155]  Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS
              Security (DNSSEC) Hashed Authenticated Denial of
              Existence", RFC 5155, DOI 10.17487/RFC5155, March 2008,
              <https://www.rfc-editor.org/info/rfc5155>.

   [RFC5702]  Jansen, J., "Use of SHA-2 Algorithms with RSA in DNSKEY
              and RRSIG Resource Records for DNSSEC", RFC 5702,
              DOI 10.17487/RFC5702, October 2009,
              <https://www.rfc-editor.org/info/rfc5702>.

   [RFC6840]  Weiler, S., Ed. and D. Blacka, Ed., "Clarifications and
              Implementation Notes for DNS Security (DNSSEC)", RFC 6840,
              DOI 10.17487/RFC6840, February 2013,
              <https://www.rfc-editor.org/info/rfc6840>.

8.2.  Informative References

   [GOST-SIGN]
              Belyavsky, D., Dolmatov, V., Ed., and B. Makarenko, Ed.,
              "Use of GOST 2012 Signature Algorithms in DNSKEY and RRSIG
              Resource Records for DNSSEC", Work in Progress, Internet-
              Draft, draft-ietf-dnsop-rfc5933-bis-13, 30 November 2022,
              <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-
              rfc5933-bis-13>.

   [RFC2065]  Eastlake 3rd, D. and C. Kaufman, "Domain Name System
              Security Extensions", RFC 2065, DOI 10.17487/RFC2065,
              January 1997, <https://www.rfc-editor.org/info/rfc2065>.

   [RFC2535]  Eastlake 3rd, D., "Domain Name System Security
              Extensions", RFC 2535, DOI 10.17487/RFC2535, March 1999,
              <https://www.rfc-editor.org/info/rfc2535>.

   [RFC2536]  Eastlake 3rd, D., "DSA KEYs and SIGs in the Domain Name
              System (DNS)", RFC 2536, DOI 10.17487/RFC2536, March 1999,
              <https://www.rfc-editor.org/info/rfc2536>.

   [RFC4470]  Weiler, S. and J. Ihren, "Minimally Covering NSEC Records
              and DNSSEC On-line Signing", RFC 4470,
              DOI 10.17487/RFC4470, April 2006,
              <https://www.rfc-editor.org/info/rfc4470>.

   [RFC5011]  StJohns, M., "Automated Updates of DNS Security (DNSSEC)
              Trust Anchors", STD 74, RFC 5011, DOI 10.17487/RFC5011,
              September 2007, <https://www.rfc-editor.org/info/rfc5011>.

   [RFC6014]  Hoffman, P., "Cryptographic Algorithm Identifier
              Allocation for DNSSEC", RFC 6014, DOI 10.17487/RFC6014,
              November 2010, <https://www.rfc-editor.org/info/rfc6014>.

   [RFC6605]  Hoffman, P. and W.C.A. Wijngaards, "Elliptic Curve Digital
              Signature Algorithm (DSA) for DNSSEC", RFC 6605,
              DOI 10.17487/RFC6605, April 2012,
              <https://www.rfc-editor.org/info/rfc6605>.

   [RFC6698]  Hoffman, P. and J. Schlyter, "The DNS-Based Authentication
              of Named Entities (DANE) Transport Layer Security (TLS)
              Protocol: TLSA", RFC 6698, DOI 10.17487/RFC6698, August
              2012, <https://www.rfc-editor.org/info/rfc6698>.

   [RFC6725]  Rose, S., "DNS Security (DNSSEC) DNSKEY Algorithm IANA
              Registry Updates", RFC 6725, DOI 10.17487/RFC6725, August
              2012, <https://www.rfc-editor.org/info/rfc6725>.

   [RFC6781]  Kolkman, O., Mekking, W., and R. Gieben, "DNSSEC
              Operational Practices, Version 2", RFC 6781,
              DOI 10.17487/RFC6781, December 2012,
              <https://www.rfc-editor.org/info/rfc6781>.

   [RFC6975]  Crocker, S. and S. Rose, "Signaling Cryptographic
              Algorithm Understanding in DNS Security Extensions
              (DNSSEC)", RFC 6975, DOI 10.17487/RFC6975, July 2013,
              <https://www.rfc-editor.org/info/rfc6975>.

   [RFC7129]  Gieben, R. and W. Mekking, "Authenticated Denial of
              Existence in the DNS", RFC 7129, DOI 10.17487/RFC7129,
              February 2014, <https://www.rfc-editor.org/info/rfc7129>.

   [RFC7344]  Kumari, W., Gudmundsson, O., and G. Barwood, "Automating
              DNSSEC Delegation Trust Maintenance", RFC 7344,
              DOI 10.17487/RFC7344, September 2014,
              <https://www.rfc-editor.org/info/rfc7344>.

   [RFC7583]  Morris, S., Ihren, J., Dickinson, J., and W. Mekking,
              "DNSSEC Key Rollover Timing Considerations", RFC 7583,
              DOI 10.17487/RFC7583, October 2015,
              <https://www.rfc-editor.org/info/rfc7583>.

   [RFC7646]  Ebersman, P., Kumari, W., Griffiths, C., Livingood, J.,
              and R. Weber, "Definition and Use of DNSSEC Negative Trust
              Anchors", RFC 7646, DOI 10.17487/RFC7646, September 2015,
              <https://www.rfc-editor.org/info/rfc7646>.

   [RFC7958]  Abley, J., Schlyter, J., Bailey, G., and P. Hoffman,
              "DNSSEC Trust Anchor Publication for the Root Zone",
              RFC 7958, DOI 10.17487/RFC7958, August 2016,
              <https://www.rfc-editor.org/info/rfc7958>.

   [RFC8027]  Hardaker, W., Gudmundsson, O., and S. Krishnaswamy,
              "DNSSEC Roadblock Avoidance", BCP 207, RFC 8027,
              DOI 10.17487/RFC8027, November 2016,
              <https://www.rfc-editor.org/info/rfc8027>.

   [RFC8078]  Gudmundsson, O. and P. Wouters, "Managing DS Records from
              the Parent via CDS/CDNSKEY", RFC 8078,
              DOI 10.17487/RFC8078, March 2017,
              <https://www.rfc-editor.org/info/rfc8078>.

   [RFC8080]  Sury, O. and R. Edmonds, "Edwards-Curve Digital Security
              Algorithm (EdDSA) for DNSSEC", RFC 8080,
              DOI 10.17487/RFC8080, February 2017,
              <https://www.rfc-editor.org/info/rfc8080>.

   [RFC8145]  Wessels, D., Kumari, W., and P. Hoffman, "Signaling Trust
              Anchor Knowledge in DNS Security Extensions (DNSSEC)",
              RFC 8145, DOI 10.17487/RFC8145, April 2017,
              <https://www.rfc-editor.org/info/rfc8145>.

   [RFC8198]  Fujiwara, K., Kato, A., and W. Kumari, "Aggressive Use of
              DNSSEC-Validated Cache", RFC 8198, DOI 10.17487/RFC8198,
              July 2017, <https://www.rfc-editor.org/info/rfc8198>.

   [RFC8499]  Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS
              Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499,
              January 2019, <https://www.rfc-editor.org/info/rfc8499>.

   [RFC8509]  Huston, G., Damas, J., and W. Kumari, "A Root Key Trust
              Anchor Sentinel for DNSSEC", RFC 8509,
              DOI 10.17487/RFC8509, December 2018,
              <https://www.rfc-editor.org/info/rfc8509>.

   [RFC8624]  Wouters, P. and O. Sury, "Algorithm Implementation
              Requirements and Usage Guidance for DNSSEC", RFC 8624,
              DOI 10.17487/RFC8624, June 2019,
              <https://www.rfc-editor.org/info/rfc8624>.

   [RFC8901]  Huque, S., Aras, P., Dickinson, J., Vcelak, J., and D.
              Blacka, "Multi-Signer DNSSEC Models", RFC 8901,
              DOI 10.17487/RFC8901, September 2020,
              <https://www.rfc-editor.org/info/rfc8901>.

   [RFC9077]  van Dijk, P., "NSEC and NSEC3: TTLs and Aggressive Use",
              RFC 9077, DOI 10.17487/RFC9077, July 2021,
              <https://www.rfc-editor.org/info/rfc9077>.

   [RFC9157]  Hoffman, P., "Revised IANA Considerations for DNSSEC",
              RFC 9157, DOI 10.17487/RFC9157, December 2021,
              <https://www.rfc-editor.org/info/rfc9157>.

   [RFC9276]  Hardaker, W. and V. Dukhovni, "Guidance for NSEC3
              Parameter Settings", BCP 236, RFC 9276,
              DOI 10.17487/RFC9276, August 2022,
              <https://www.rfc-editor.org/info/rfc9276>.

Acknowledgements

   The DNS world owes a depth of gratitude to the authors and other
   contributors to the core DNSSEC documents and to the notable DNSSEC
   extensions.

   In addition, the following people made significant contributions to
   early draft versions of this document: Ben Schwartz and Duane
   Wessels.

Author's Address

   Paul Hoffman
   ICANN
   Email: paul.hoffman@icann.org

AI ELI5

On this page
PROBLEMDNSSEC is spread across many RFCs, and implementers, operators and other documents have no single place that lists them or says what status DNSSEC has.
MECHANISMRFC 9364 lists the core documents (RFC 4033, RFC 4034, RFC 4035 and RFC 6840), the added algorithms, the extensions and other useful documents, and declares DNSSEC the best current practice for origin authentication of DNS data. It does not update any of them.
WHY IT MATTERSIt serves as a single reference for DNSSEC. The text admits deployment is limited, saying fewer than 10% of website domain names were signed, but holds that this does not change the best-current-practice status.

§1Purpose and Scope

The core specification of DNSSEC is the combination of RFC 4033, RFC 4034 and RFC 4035. It describes a set of protocols that provide origin authentication of DNS data. RFC 6840 updates and extends them but does not fundamentally change how DNSSEC works.

This document lists RFCs that someone implementing or deploying DNSSEC should consider. It tries to be thorough but does not claim the list is comprehensive. It also points to the relevant IANA registry groups. It does not define terminology and does not point to standards that depend on signed zones, such as DANE (RFC 6698). It does not update any of the RFCs it lists.

DNSSEC is a big puzzle with lots of separate instruction sheets. This document is the table of contents that tells you which sheets exist.

§1.1DNSSEC as a Best Current Practice

The RFC states that using the DNSSEC set of protocols is the best current practice for adding origin authentication of DNS data. It adds that, to date, no Standards Track RFCs offer any other method for this.

The text is frank about deployment: more than 15 years after the specification was published it is still not widely deployed. Recent estimates it cites are that fewer than 10% of the domain names used for websites are signed, and only around a third of queries to recursive resolvers are validated. It argues this does not affect best-current-practice status. It only shows that the value of deploying is often considered lower than the cost.

It also points to significant deployment beneath some top-level domains and near-universal deployment for the TLDs in the DNS root zone, as evidence that DNSSEC suits both ordinary and highly sophisticated domain owners.

Not many people use the seal yet, because it costs effort. But it is still the best way we have, so this document says it is the right thing to do.

§1.2Advice for Implementers and Operators

Developers and operators of validating resolvers and authoritative servers need to know the parts of DNSSEC that affect them. They should read the core documents and probably at least be familiar with the extensions. Developers will probably need to be very familiar with the algorithm documents too.

The RFC also notes that some DNSSEC-related RFCs have significant errata, so reading them should include looking for the related errata.

If you build or run DNS servers, read the main sheets and check for corrections to them.

§2The DNSSEC Core Documents

The DNSSEC in use today is the third iteration of the specification. RFC 2065 was the first and RFC 2535 the second, and neither was deployed on a significant scale. Here, DNSSEC means the protocol initially defined in RFC 4033, RFC 4034 and RFC 4035.

  • RFC 4033 is an overview of DNSSEC, including how it might change the resolution of DNS queries.
  • RFC 4034 specifies the DNS resource records used in DNSSEC.
  • RFC 4035 covers the changes to the DNS protocol: signing zones, serving signed zones, resolving in light of DNSSEC, and authenticating DNSSEC-signed data.

When those were published, an implementation also needed a few older RFCs on cryptography. RFC 2536 covers DSA, which was thinly implemented and can safely be ignored. RFC 3110 covers RSA, still among the most popular signing algorithms. Later RFCs update the core; for example RFC 9077 changes how TTL values are calculated in DNSSEC processing.

Three main instruction sheets explain what DNSSEC is, what pieces it adds, and how computers should act. A few older sheets describe the secret-code math.

THE THREE CORE DNSSEC DOCUMENTS
DocumentCovers
RFC 4033Overview and how DNS resolution may change
RFC 4034Resource records used by DNSSEC
RFC 4035Protocol changes: signing, serving, resolving, authenticating

§2.1RFC 6840 Joins the Core

Over the years developers and operators found issues in the original core documents. RFC 6840 is an omnibus update that has itself become a core document. It covers new requirements from newer DNSSEC RFCs and many security and interoperability issues found in deployment, particularly after the DNS root was signed in 2010. It also lists errors in the examples of the core specifications.

It makes NSEC3 (RFC 5155) as much a part of DNSSEC as NSEC is. It also brings the SHA-256 and SHA-512 hash functions from RFC 4509 and RFC 5702 into the core.

After people used DNSSEC for a while they found mistakes and gaps, so one big fix-up document was written. It is now treated as part of the main set.

§3Additional Cryptographic Algorithms

Cryptographic algorithms typically weaken over time as computing power improves and new cryptanalysis emerges. Two new signing algorithms have been adopted by the DNSSEC community: ECDSA (RFC 6605) and EdDSA (RFC 8080). Both have become very popular in recent years. The GOST signing algorithm was also adopted but has seen very limited use, likely because it is a national algorithm specific to a very small number of countries.

Developers who want to know which algorithms to implement should refer to RFC 8624. That document is only about what implementations should and should not include. It is not advice about which algorithms zone operators should use to sign or resolver operators should use to validate.

Secret codes get easier to crack over time, so newer, stronger codes were added. Another document says which codes software should know.

§4Extensions and Further Reading

The DNSSEC community has extended the core and the algorithms with good operational practices and new protocols. The RFC lists these extensions:

  • RFC 5011: automated updates of resolvers' trust anchors. This method was used in 2018 to update the DNS root trust anchor.
  • RFC 6781: a compendium of operational practices.
  • RFC 7344: using CDS and CDNSKEY records to automate maintenance of DS records in the parents of signed zones; RFC 8078 extends it to initial setup of trust between signed parent and child zones.
  • RFC 8198: letting a validating resolver send fewer queries in signed zones using NSEC and NSEC3; RFC 9077 updates it for TTL fields in signed records.

Section 5 adds a list of other documents of interest, including RFC 7583 on key rollover timing, RFC 7646 on Negative Trust Anchors, RFC 8901 on multi-signer models, RFC 9276 on NSEC3 parameter settings and RFC 8499 for DNS terminology. It notes that more related RFCs will certainly be published later.

People added extras: ways to update the master key, ways to change keys safely, and ways to make answers faster. This part is the list of those extras.

§7IANA and Security Considerations

IANA already has three registry groups related to DNSSEC: DNSSEC algorithm numbers, DNSSEC NSEC3 parameters, and DNSSEC DS RRtype digest algorithms. The rules for the algorithm registry were set in the core RFCs and updated by RFC 6014, RFC 6725 and RFC 9157. This document does not update or create any registries.

For security, the RFC says only that all the security considerations from all the RFCs referenced in it apply.

The notebooks of code numbers already exist, and this document adds nothing to them. Any safety warnings in the listed documents still apply.

§9References