Internet-Draft | DNSSEC automation | October 2024 |
Wisser, et al. | Expires 22 April 2025 | [Page] |
This document describes an algorithm and protocol to automate the setup, operations, and decomissioning of Multi-Signer DNSSEC [RFC8901] configurations. It employs Model 2 of the multi-signer specification, where each operator has their own distinct KSK and ZSK sets (or CSK sets), Managing DS Records from the Parent via CDS/CDNSKEY [RFC8078], and Child-to-Parent Synchronization in DNS [RFC7477] to accomplish this.¶
This note is to be removed before publishing as an RFC.¶
Source for this draft and an issue tracker can be found at https://github.com/ietf-wg-dnsop/draft-ietf-dnsop-dnssec-automation.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
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."¶
This Internet-Draft will expire on 22 April 2025.¶
Copyright (c) 2024 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.¶
[RFC8901] describes the necessary steps and API for a multi-signer DNSSEC configuration. In this document we will combine [RFC8901] with [RFC8078] and [RFC7477] to define an automatable algorithm for setting up, operating and decomissioning of a multi-signer DNSSEC configuration.¶
One of the special cases of multi-signer DNSSEC is the secure change of DNS operator. Using multi-signer Model 2 the secure change of DNS operator can be accomplished.¶
In order for any multi-signer group to give consistent answers across all nameservers, the data contents of the zone also have to be synchronized (in addition to infrastructure records like NS, DNSKEY, CDS etc). This content synchronization is out-of-scope for this document.¶
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 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
Signer¶
An entity signing a zone¶
Multi-signer Group¶
A group of signers that sign the same zone¶
Controller¶
An entity controlling the multi-signer group. Used in the decentralized model.¶
Parent¶
Trust mechanism¶
DS-Wait-Time¶
Once the parent has picked up and published the new DS record set, the any further changes MUST to be delayed until the new DS set has propagated.¶
The minimum DS-Wait-Time is the TTL of the DS RRset.¶
DNSKEY-Wait-Time¶
Once the DNSKEY sets of all signers are updated, any further changes MUST to be delayed until the new DNSKEY set has propagated.¶
The minimum DNSKEY-Wait-Time is the maximum of all DNSKEYS TTL values from all signers plus the time it takes to publish the zone on all secondaries.¶
NS-Wait-Time¶
Once the parent has picked up and published the new NS record set, any further changes MUST be delayed until the new NS set has propagated.¶
The minimum NS-Wait-Time is the maximum of the TTL value of the NS set in the parent zone and all NS sets from all signers.¶
As described in [RFC8901] a multi-signer DNSSEC configuration has some challenges that can be overcome with the right infrastructure and following a number of steps for setup and operation.¶
In this document we describe, except for the initial trust, how the steps in the multi-migner DNSSEC setup can be automated.¶
Changing the nameserver operator of a DNSSEC signed zone can be challenging. Currently the most common method is temporarily "going insecure". This is poor for security, and for users relying on the security of the zone. Furthermore, when DNSSEC is being used for application security functions like DANE [RFC6698], it is critical that the DNSSEC chain of trust remain unbroken during the transfer.¶
Multi-signer DNSSEC Model 2 provides a mechanism for transitioning from one nameserver operator to another without "going insecure". A new operator joins the current operator in a temporary multi-signer group. Once that is accomplished and stable the old operator leaves the multi-signer group completing the transition.¶
Using multiple DNS providers to distribute authoritative DNS service with each provider signing independendly and with their own key set. This use-case is described in [RFC8901].¶
Automation of the necessary steps can be categorized into two main models, centralized and decentralized. Both have pros and cons, and a zone owner should carefully choose the model that works best.¶
In a centralized model a controller executes all steps necessary and controls all signers.¶
The controller needs to have authorized access to all signers. This can be achieved in a variety of different ways. For example will many service providers offer access through a REST API. Another possibility is access through Dynamic Update [RFC2136] with TSIG authentication.¶
In the decentralized models all signers will communicate with each other and execute the necessary steps on their instance only. For this signers need a specialized protocol to communicate configuration details that are not part of the zone data.¶
In order for any of the models to work the signer must support the following capabilities.¶
In a centralized model it is the controllers task to compute all waiting times and control the zone in a way that all timing restrictions are met.¶
In the decentralized model every signer must compute all waiting times and adhere to all timing restrictions.¶
In both methods it will be necessary that some of the timing restrictions must be given as part of the configuration data.¶
Each signer to be added, including the initial signer, must meet the following prerequisites before joining the multi-signer Group¶
The zone is already authoritatively served by one DNS operator and is DNSSEC signed. For full automation both the KSK and ZSK or CSK must be online.¶
This would be a special case, a multi-signer group with only one signer.¶
Only when all signers use the same algorithm(s) can all resolvers validate zone data with consistency.¶
This section tries to summarize why that is the case and what trade-offs can be made in situations where using the same algorithm isn't possible.¶
Section 2.2 of [RFC4035] states that a signed zone MUST include a DNSKEY for each algorithm present in the zone's DS RRset and expected trust anchors for the zone. A setup where different signers use different key algorithms therefore violates [RFC4035].¶
According to Section 5.11 of [RFC6840] validators SHOULD NOT insist that all algorithms signaled in the DS RRset work, and they MUST NOT insist that all algorithms signaled in the DNSKEY RRset work.¶
So a multi-signer setup where different signers use different key algorithms should still validate.¶
This could be an acceptable risk in a situation where going insecure is not desirable or impossible and name servers have to be changed between operators which only support distinct set of key algorithms.¶
We have to consider the following scenarios:¶
Validator supports both algorithms¶
Validation should be stable through all stages of the multi-signer algorithms.¶
Validator supports none of the algorithms¶
The validator will treat the zone as unsigned. Resolution should work through all stages of the multi-signer algorithms.¶
Validator supports only one of the algorithms¶
The validator will not be able to validate the DNSKEY RR set or any data from one of the signers. So in some cases the validator will consider the zone bogus and reply with a SERVFAIL response code.¶
The later scenario can be mitigated, but not fully eliminated, by selecting two well-supported algorithms.¶
This document has no IANA actions.¶
multi-signer DNSSEC inherits the security considerations of [RFC7477], [RFC8078] and [RFC8901].¶
Every step of the multi-signer algorithms has to be carefully executed at the right time. Any failure could result in the loss of resolution for the domain.¶
Independent of the chosen model, it is crucial that only authorized entities will be able to change the zone data. Some providers or software installation allow to make more specific configuration on the allowed changes. All extra steps to allow as little access to change zone data as possible should be taken.¶
If used correctly, the multi-signer algorithm will strengthen the DNS security by avoiding "going insecure" at any stage of the domain life cycle.¶
One implementation of a centralized controller which supports updates through Dynamic DNS or REST API's of several vendors has been implemented by the Swedish Internet Foundation.¶
The code can be found as part of the multi-signer project on Github https://github.com/DNSSEC-Provisioning/multi-signer-controller¶
The authors would like to thank the following for their review of this work and their valuable comments: Steve Crocker, Eric Osterweil, Roger Murray, Jonas Andersson, Peter Thomassen.¶