RFC 9364
DNS Security Extensions (DNSSEC)
RFC 9364: DNS Security Extensions (DNSSEC) π
Okay bestie, RFC 9364 is the DNSSEC one, and it's giving a whole guided tour π¦. P. Hoffman from ICANN wrote it, and it was published in February 2023 by the Internet Engineering Task Force (IETF) πΈ. It's a Best Current Practice (that's BCP 237 for the IETF's rule book, with ISSN 2070-1721) π. The header doesn't list anything it obsoletes or updates, and the abstract says it doesn't update RFCs 4033, 4034, or 4035 β¨.
Abstract
okay so this doc describes DNS Security Extensions (lowkey known as "DNSSEC") as they're set out in RFCs 4033, 4034, and 4035, plus a handful of others π§. It has three goals. First, it puts all the RFCs in one spot so you can get the whole DNSSEC picture π. Second, it says that using DNSSEC for origin authentication of DNS data is the best current practice π . Third, it's a single reference that other docs can point to when they want to mention DNSSEC π«Ά.
Status of This Memo
bestie, this one is pure paperwork but it still matters π. It documents an Internet Best Current Practice π₯.
It's a product of the Internet Engineering Task Force (IETF), it represents what the IETF community agreed on, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication β . If you want more on BCPs, check Section 2 of RFC 7841 π.
Info about the current status of this doc, any errata, and how to give feedback lives 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 doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date π. Please read these carefully, because they spell out your rights and restrictions for this doc π. Code components pulled out of this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come 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 β¨
okay so the core spec for DNSSEC (that's the combo of [RFC4033], [RFC4034], and [RFC4035]) lays out a bunch of protocols that give you origin authentication of DNS data π. [RFC6840] updates and extends those core RFCs, but it doesn't fundamentally change how DNSSEC works πΈ.
This doc lists the RFCs that someone building a DNSSEC implementation, or someone deploying DNSSEC as it's currently standardized, should look at π. We tried to be thorough, but don't assume the list is complete π. It also uses terminology from those docs without defining it, so bring your homework π . It points to the relevant IANA registry groups for DNSSEC too π§. What it doesn't do is point to standards that depend on zones being signed with DNSSEC, like DNS-Based Authentication of Named Entities (DANE) [RFC6698] π.
1.1. DNSSEC as a Best Current Practice π
the main vibe here is that using the DNSSEC set of protocols is the best current practice for adding origin authentication to DNS data π. So far, no Standards Track RFCs offer any other way to do origin authentication of data in the DNS π₯.
It's been more than 15 years since the DNSSEC spec was published, and it's still not widely deployed π. Recent estimates say fewer than 10% of the domain names used for websites are signed, and only around a third of queries to recursive resolvers get validated π. But low deployment doesn't change whether DNSSEC is a best current practice π«Ά. It just means people often think the value of deploying it is lower than the cost π. Still, the big deployment under some top-level domains (TLDs), and the near-universal deployment for the TLDs in the DNS root zone, prove that DNSSEC is doable for both ordinary and highly sophisticated domain owners πβ¨.
1.2. Implementing DNSSEC π¦
Developers of validating resolvers and authoritative servers, plus the operators running them, need to know the parts of the DNSSEC protocol that affect them π§βπ». They should read the DNSSEC core docs and probably be at least familiar with the extensions π. Developers will probably need to be very familiar with the algorithm docs too π₯.
Side note, bestie: some of the DNSSEC-related RFCs have significant errata, so when you read the RFCs, look up the related errata as well π.
2. DNSSEC Core Documents πΈ
so "DNSSEC" as we use it is the third iteration of the DNSSEC spec π. [RFC2065] was the first, and [RFC2535] was the second π§. Earlier versions never got deployed at any real scale π. In this doc, "DNSSEC" means the protocol that was first defined in [RFC4033], [RFC4034], and [RFC4035] π.
The three original core docs each cover different stuff π:
- [RFC4033] is an overview of DNSSEC, including how it might change the way DNS queries get resolved π.
- [RFC4034] specifies the DNS resource records used in DNSSEC. It obsoletes a lot of RFCs about earlier versions of DNSSEC ποΈ.
- [RFC4035] covers the changes DNSSEC makes to the DNS protocol. That includes signing zones, serving signed zones, resolving with DNSSEC in mind, and authenticating DNSSEC-signed data π.
When this set of core docs came out, you could build DNSSEC signing software, a DNSSEC-aware authoritative server, or a DNSSEC-aware recursive resolver using just those three core docs, plus a few older RFCs that specify the cryptography β¨. Those two older docs are:
- [RFC2536] defines how to use the DSA signature algorithm, though it points to other docs for the details. DSA was thinly implemented and DNSSEC implementations can safely ignore it π.
- [RFC3110] defines how to use the RSA signature algorithm, though it also points to other docs for the details. RSA is still among the most popular signing algorithms for DNSSEC π .
Important to note, later RFCs update the core docs. For 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 found issues with the original core docs over the years π. [RFC6840] is an omnibus update to the original core docs, so it has basically become a core doc itself π. Besides covering new requirements from newer DNSSEC RFCs, it describes a lot of important security and interoperability issues that popped up while the initial specs were being deployed, especially after the DNS root got signed in 2010 π₯. It also lists some errors in the examples in the core specs π.
[RFC6840] adds a few things to the core of DNSSEC. It makes NSEC3 [RFC5155] just 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 π.
Part 1 is done, bestie! π Part 2 picks up with Section 3 next π¦.
5. Additional Documents of Interest β¨
Okay so the docs above are the core of DNSSEC, the extra crypto algorithms, and the big extensions. π If you're implementing or running DNSSEC, these extra reads are lowkey essential:
- [RFC4470] explains how to build DNSSEC NSEC records that cover a smaller range of names than [RFC4034] asks for. Authoritative name servers can generate and sign these on demand, which stops anyone from walking the NSEC chain in a signed zone and seeing what's inside π
- [RFC6975] is giving validating end-system resolvers a way to tell a server which digital signature and hash algorithms they support π₯
- [RFC7129] is the background tea β on the NSEC and NSEC3 mechanisms that DNSSEC uses for authenticated denial-of-existence responses. It's super important if you want to get how NSEC and NSEC3 are used in practice π§
- [RFC7583] covers the timing issues when you roll a key in a DNSSEC-secured zone. Timing is everything, bestie β°
- [RFC7646] defines Negative Trust Anchors (NTAs). These let you mitigate DNSSEC validation failures by turning off DNSSEC validation at specific domains π«Ά
- [RFC7958] describes the format and publication mechanisms IANA uses to distribute the DNSSEC trust anchors π
- [RFC8027] walks through the problems a validating DNS resolver, stub resolver, or application can run into when the infrastructure isn't compliant π
- [RFC8145] describes two different ways validating resolvers can tell a server which keys are referenced in their chain of trust π¦
- [RFC8499] is the terminology glossary for talking about DNS. Sections 10 and 11 are the DNSSEC bits π
- [RFC8509] gives end users and third parties a mechanism to figure out the trusted key state for the root key of the resolvers that handle their DNS queries π
- [RFC8901] lays out deployment models for when each DNS provider signs zone data with its own keys, and it describes the key-management requirements for that setup πΈ
- [RFC9276] gives guidance on setting NSEC3 parameters, based on recent real-world deployment experience π
There will definitely be more DNSSEC RFCs published after this one. Stay tuned π
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 then [RFC6014], [RFC6725], and [RFC9157] updated them π«Ά
This document does not update or create any registry groups or registries. Nothing new in the registries from this one, so nothing to see here π
7. Security Considerations
Okay, this part is serious, so listen up ππ₯ All of the security considerations from all of the RFCs referenced in this document apply here. Every single one. You can't skip them just because this doc is the summary. Read the referenced RFCs' security sections like your DNSSEC deployment depends on it, because it does π
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 π
okay bestie, these are the extra reads π€ they're informative, not normative, so they're the "go deeper if you're curious" pile π§
- [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 massive thank-you to everyone who wrote and contributed to the core DNSSEC documents and the notable DNSSEC extensions π
also, big shoutout to Ben Schwartz and Duane Wessels πΈ they made significant contributions to the early draft versions of this document, so they're literally the reason it got off the ground β¨
Author's Address π
Paul Hoffman
ICANN
Email: paul.hoffman@icann.org
π¦ where this page comes from
- ietf: rfc9364 2023-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms