RFC 9364 | DNSSEC | February 2023 |
Hoffman | Best Current Practice | [Page] |
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.¶
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 (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.¶
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].¶
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.¶
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.¶
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:¶
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:¶
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.¶
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.¶
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.¶
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:¶
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:¶
There will certainly be other RFCs related to DNSSEC that are published after this one.¶
IANA already has three registry groups that relate to DNSSEC:¶
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.¶
All of the security considerations from all of the RFCs referenced in this document apply here.¶
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.¶