rfc8901xml2.original.xml   rfc8901.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC1034 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
.1034.xml">
<!ENTITY RFC1035 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.1035.xml">
<!ENTITY RFC1995 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.1995.xml">
<!ENTITY RFC2136 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.2136.xml">
<!ENTITY RFC2845 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.2845.xml">
<!ENTITY RFC4033 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.4033.xml">
<!ENTITY RFC4034 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.4034.xml">
<!ENTITY RFC4035 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.4035.xml">
<!ENTITY RFC5155 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.5155.xml">
<!ENTITY RFC5731 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.5731.xml">
<!ENTITY RFC5936 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.5936.xml">
<!ENTITY RFC6781 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.6781.xml">
<!ENTITY RFC7129 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.7129.xml">
<!ENTITY RFC7344 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.7344.xml">
<!ENTITY RFC7858 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.7858.xml">
<!ENTITY RFC8078 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.8078.xml">
<!ENTITY RFC8198 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.8198.xml">
<!ENTITY RFC8484 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.8484.xml">
<!ENTITY RFC8499 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC
.8499.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.o
rg/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude"
<!-- used by XSLT processors --> docName="draft-ietf-dnsop-multi-provider-dnssec-05" number="8901"
<!-- For a complete list and description of processing instructions (PIs), ipr="trust200902" obsoletes="" updates="" submissionType="IETF"
please see http://xml.resource.org/authoring/README.html. --> category="info" consensus="true" xml:lang="en" tocInclude="true"
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds tocDepth="4" symRefs="true" sortRefs="true" version="3">
might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-ietf-dnsop-multi-provider-dnssec-05" ipr="tr
ust200902">
<!-- category values: std, bcp, info, exp, and historic
ipr values: full3667, noModification3667, noDerivatives3667
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ***** FRONT MATTER ***** --> <!-- xml2rfc v2v3 conversion 2.44.0 -->
<front> <front>
<title abbrev="Multi Signer DNSSEC models">Multi Signer DNSSEC models</title >
<title abbrev="Multi-Signer DNSSEC Models">Multi-Signer DNSSEC Models</title
>
<seriesInfo name="RFC" value="8901"/>
<author fullname="Shumon Huque" initials="S." surname="Huque"> <author fullname="Shumon Huque" initials="S." surname="Huque">
<organization>Salesforce</organization> <organization>Salesforce</organization>
<address> <address>
<postal>
<street>415 Mission Street, 3rd Floor</street>
<city>San Francisco</city>
<region>CA</region>
<code>94105</code>
<country>United States of America</country>
</postal>
<email>shuque@gmail.com</email> <email>shuque@gmail.com</email>
<!-- uri and facsimile elements may also be added -->
</address> </address>
</author> </author>
<author fullname="Pallavi Aras" initials="P." surname="Aras"> <author fullname="Pallavi Aras" initials="P." surname="Aras">
<organization>Salesforce</organization> <organization>Salesforce</organization>
<address> <address>
<postal>
<street>415 Mission Street, 3rd Floor</street>
<city>San Francisco</city>
<region>CA</region>
<code>94105</code>
<country>United States of America</country>
</postal>
<email>paras@salesforce.com</email> <email>paras@salesforce.com</email>
<!-- uri and facsimile elements may also be added -->
</address> </address>
</author> </author>
<author fullname="John Dickinson" initials="J." surname="Dickinson"> <author fullname="John Dickinson" initials="J." surname="Dickinson">
<organization>Sinodun</organization> <organization>Sinodun IT</organization>
<address> <address>
<postal>
<street>Magdalen Centre</street>
<street>Oxford Science Park</street>
<city>Oxford</city>
<code>OX4 4GA</code>
<country>United Kingdom</country>
</postal>
<email>jad@sinodun.com</email> <email>jad@sinodun.com</email>
<!-- uri and facsimile elements may also be added -->
</address> </address>
</author> </author>
<author fullname="Jan Vcelak" initials="J." surname="Vcelak"> <author fullname="Jan Vcelak" initials="J." surname="Vcelak">
<organization>NS1</organization> <organization>NS1</organization>
<address> <address>
<postal>
<street>55 Broad Street, 19th Floor</street>
<city>New York</city>
<region>NY</region>
<code>10004</code>
<country>United States of America</country>
</postal>
<email>jvcelak@ns1.com</email> <email>jvcelak@ns1.com</email>
<!-- uri and facsimile elements may also be added -->
</address> </address>
</author> </author>
<author fullname="David Blacka" initials="D." surname="Blacka"> <author fullname="David Blacka" initials="D." surname="Blacka">
<organization>Verisign</organization> <organization>Verisign</organization>
<address> <address>
<postal>
<street>12061 Bluemont Way</street>
<city>Reston</city>
<region>VA</region>
<code>20190</code>
<country>United States of America</country>
</postal>
<email>davidb@verisign.com</email> <email>davidb@verisign.com</email>
<!-- uri and facsimile elements may also be added -->
</address> </address>
</author> </author>
<date month="September" year="2020"/>
<date month="April" year="2020" />
<!-- Meta-data Declarations -->
<area>General</area> <area>General</area>
<workgroup>Internet Engineering Task Force</workgroup> <workgroup>Internet Engineering Task Force</workgroup>
<keyword>Internet-Draft</keyword>
<keyword>DNSSEC</keyword> <keyword>DNSSEC</keyword>
<keyword>Multiple</keyword> <keyword>Multiple</keyword>
<keyword>Provider</keyword> <keyword>Provider</keyword>
<keyword>Signer</keyword> <keyword>Signer</keyword>
<keyword>Models</keyword> <keyword>Models</keyword>
<abstract> <abstract>
<t> <t>
Many enterprises today employ the service of multiple DNS Many enterprises today employ the service of multiple DNS
providers to distribute their authoritative DNS service. providers to distribute their authoritative DNS service.
Deploying DNSSEC in such an environment may present some Deploying DNSSEC in such an environment may present some
challenges depending on the configuration and feature set challenges, depending on the configuration and feature set
in use. In particular, when each DNS provider independently in use. In particular, when each DNS provider independently
signs zone data with their own keys, additional key management signs zone data with their own keys, additional key-management
mechanisms are necessary. This document presents deployment mechanisms are necessary. This document presents deployment
models that accommodate this scenario and describe these key models that accommodate this scenario and describes these
management requirements. These models do not require any changes key-management requirements. These models do not require any changes
to the behavior of validating resolvers, nor do they impose the to the behavior of validating resolvers, nor do they impose the
new key management requirements on authoritative servers not new key-management requirements on authoritative servers not
involved in multi signer configurations. involved in multi-signer configurations.
</t> </t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section numbered="true" toc="default">
<section title="Introduction and Motivation"> <name>Introduction and Motivation</name>
<t>
RFC EDITOR: PLEASE REMOVE THIS PARAGRAPH BEFORE PUBLISHING:
The source for this draft is maintained in GitHub at:
https://github.com/shuque/multi-provider-dnssec
</t>
<t> <t>
Many enterprises today employ the service of multiple Domain Name Many enterprises today employ the service of multiple Domain Name
System (DNS) <xref target="RFC1034" /> <xref target="RFC1035" /> System (DNS) <xref target="RFC1034" format="default"/> <xref target="RFC 1035" format="default"/>
providers to distribute their authoritative DNS service. This is providers to distribute their authoritative DNS service. This is
primarily done for redundancy and availability, and allows the DNS primarily done for redundancy and availability, and it allows the DNS
service to survive a complete, catastrophic failure of any single service to survive a complete, catastrophic failure of any single
provider. Additionally, enterprises or providers occasionally have provider. Additionally, enterprises or providers occasionally have
requirements that preclude standard zone transfer techniques requirements that preclude standard zone-transfer techniques
<xref target="RFC1995" /> <xref target="RFC5936" /> <xref target="RFC1995" format="default"/><xref target="RFC5936"
: either non-standardized DNS features are in use that are format="default"/>: either nonstandardized DNS features are in use
incompatible with zone transfer, or operationally a provider that are incompatible with zone transfer, or operationally a provider
must be able to (re)sign DNS records using their own keys. must be able to (re-)sign DNS records using their own keys.
This document outlines some possible models of DNSSEC This document outlines some possible models of DNSSEC
<xref target="RFC4033" /> <xref target="RFC4034" /> <xref target="RFC4033" format="default"/> <xref target="RFC4034"
<xref target="RFC4035" /> deployment in such an environment. format="default"/> <xref target="RFC4035" format="default"/> deployment
in such an environment.
</t> </t>
<t> <t>
This document assumes a reasonable level of familiarity with This document assumes a reasonable level of familiarity with
DNS operations and protocol terms. Much of the terminology DNS operations and protocol terms. Much of the terminology
is explained in further detail in <xref target="RFC8499"> is explained in further detail in <xref target="RFC8499" format="default
DNS Terminology</xref>. ">
"DNS Terminology"</xref>.
</t> </t>
</section> </section>
<section anchor="models" numbered="true" toc="default">
<section title="Deployment Models" anchor="models"> <name>Deployment Models</name>
<t> <t>
If a zone owner can use standard zone transfer techniques, then If a zone owner can use standard zone-transfer techniques, then
the presence of multiple providers does not require modifications the presence of multiple providers does not require modifications
to the normal deployment models. In these deployments, there is a to the normal deployment models. In these deployments, there is a
single signing entity (which may be the zone owner, one of the single signing entity (which may be the zone owner, one of the
providers, or a separate entity), while the providers act as secondary providers, or a separate entity), while the providers act as secondary
authoritative servers for the zone. authoritative servers for the zone.
</t> </t>
<t> <t>
Occasionally, however, standard zone transfer techniques Occasionally, however, standard zone-transfer techniques
cannot be used. This could be due to the use of non-standard cannot be used. This could be due to the use of nonstandard
DNS features, or due to operational requirements of a given DNS features or the operational requirements of a given
provider (e.g., a provider that only supports "online provider (e.g., a provider that only supports "online
signing".) In these scenarios, the multiple providers each act signing"). In these scenarios, the multiple providers each act
like primary servers, independently signing data received from like primary servers, independently signing data received from
the zone owner and serving it to DNS queriers. This configuration the zone owner and serving it to DNS queriers. This configuration
presents some novel challenges and requirements. presents some novel challenges and requirements.
</t> </t>
<section anchor="multi-sign" numbered="true" toc="default">
<section title="Multiple Signer models" anchor="multi-sign"> <name>Multiple-Signer Models</name>
<t> <t>
In this category of models, multiple providers each In this category of models, multiple providers each
independently sign and serve the same zone. The zone owner independently sign and serve the same zone. The zone owner
typically uses provider-specific APIs to update zone content typically uses provider-specific APIs to update zone content
identically at each of the providers, and relies on the provider identically at each of the providers and relies on the provider
to perform signing of the data. A key requirement here is to to perform signing of the data. A key requirement here is to
manage the contents of the DNSKEY and Delegation Signer (DS) RRsets manage the contents of the DNSKEY and Delegation Signer (DS) RRsets
in such a way that validating resolvers always have a viable path in such a way that validating resolvers always have a viable path
to authenticate the DNSSEC signature chain, no matter which to authenticate the DNSSEC signature chain, no matter which
provider is queried. This requirement is achieved by having provider is queried. This requirement is achieved by having
each provider import the public Zone Signing Keys (ZSKs) of each provider import the public Zone Signing Keys (ZSKs) of
all other providers into their DNSKEY RRsets. all other providers into their DNSKEY RRsets.
</t> </t>
<t> <t>
These models can support DNSSEC even for the non-standard These models can support DNSSEC even for the nonstandard
features mentioned previously, if the DNS providers have the features mentioned previously, if the DNS providers have the
capability of signing the response data generated by those capability of signing the response data generated by those
features. Since these responses are often generated features. Since these responses are often generated
dynamically at query time, one method is for the provider to dynamically at query time, one method is for the provider to
perform online signing (also known as on-the-fly signing). However, perform online signing (also known as on-the-fly signing). However,
another possible approach is to pre-compute all the possible another possible approach is to precompute all the possible
response sets and associated signatures, and then algorithmically response sets and associated signatures and then algorithmically
determine at query time which response set and signature needs determine at query time which response set and signature need
to be returned. to be returned.
</t> </t>
<!-- davib: unsure if this paragraph is needed -->
<t> <t>
In the models presented, the function of coordinating the DNSKEY or In the models presented, the function of coordinating the DNSKEY or
DS RRset does not involve the providers communicating directly with DS RRset does not involve the providers communicating directly with
each other. Feedback from several commercial managed DNS providers each other. Feedback from several commercial managed-DNS providers
indicates that they may be unlikely to directly communicate, since indicates that they may be unlikely to directly communicate, since
they typically have a contractual relationship only with the zone they typically have a contractual relationship only with the zone
owner. However, if the parties involved are agreeable, it may be owner. However, if the parties involved are agreeable, it may be
possible to devise a protocol mechanism by which the providers possible to devise a protocol mechanism by which the providers
directly communicate to share keys. Details of such a protocol are directly communicate to share keys. Details of such a protocol are
deferred to a future specification document, should there be interest. deferred to a future specification document, should there be interest.
</t> </t>
<t> <t>
In the descriptions below, the Key Signing Key (KSK), and Zone In the descriptions below, the Key Signing Key (KSK) and Zone
Signing Key (ZSK), correspond to the definitions in Signing Key (ZSK) correspond to the definitions in
<xref target="RFC8499" />, with the caveat that the KSK not <xref target="RFC8499" format="default"/>, with the caveat that the KSK
only signs the zone apex DNSKEY RRset, but also serves as the not
only signs the zone apex DNSKEY RRset but also serves as the
Secure Entry Point (SEP) into the zone. Secure Entry Point (SEP) into the zone.
</t> </t>
<section anchor="model1" numbered="true" toc="default">
<section title="Model 1: Common KSK set, Unique ZSK set per provider" an <name>Model 1: Common KSK Set, Unique ZSK Set per Provider</name>
chor="model1"> <ul spacing="normal">
<t> <li>The zone owner holds the KSK set, manages the DS record set,
<list style="symbols">
<t>The zone owner holds the KSK set, manages the DS record set,
and is responsible for signing the DNSKEY RRset and distributing and is responsible for signing the DNSKEY RRset and distributing
it to the providers.</t> it to the providers.</li>
<t>Each provider has their own ZSK set which is used to sign data <li>Each provider has their own ZSK set, which is used to sign data
in the zone.</t> in the zone.</li>
<t>The providers have an API that the zone owner uses to query the ZSK <li>The providers have an API that the zone owner uses to query the
public keys, and insert a combined DNSKEY RRset that includes ZSK
the ZSK sets of each provider, and the KSK set, signed by the KSK.</t public keys and insert a combined DNSKEY RRset that includes
> the ZSK sets of each provider and the KSK set, signed by the KSK.</li
<t>Note that even if the contents of the DNSKEY RRset do not change, >
<li>Note that even if the contents of the DNSKEY RRset do not change
,
the zone owner needs to periodically re-sign it as signature the zone owner needs to periodically re-sign it as signature
expiration approaches. The provider API is also used expiration approaches. The provider API is also used
to thus periodically redistribute the refreshed DNSKEY RRset.</t> to thus periodically redistribute the refreshed DNSKEY RRset.</li>
<t>Key rollovers need coordinated participation of the zone <li>Key rollovers need coordinated participation of the zone
owner to update the DNSKEY RRset (for KSK or ZSK), and the owner to update the DNSKEY RRset (for KSK or ZSK) and the
DS RRset (for KSK).</t> DS RRset (for KSK).</li>
<t>(One specific variant of this model that may be interesting is <li>(One specific variant of this model that may be interesting is
a configuration in which there is only a single provider. A a configuration in which there is only a single provider. A
possible use case for this is where the zone owner wants to possible use case for this is where the zone owner wants to
outsource the signing and operation of their DNS zone to a single outsource the signing and operation of their DNS zone to a single
3rd party provider, but still control the KSK, so that they can third-party provider but still control the KSK, so that they can
authorize and/or revoke the use of specific zone signing keys.)</t> authorize and/or revoke the use of specific zone signing keys.)</li>
</list> </ul>
</t>
</section> </section>
<section anchor="model2" numbered="true" toc="default">
<section title="Model 2: Unique KSK set and ZSK set per provider" anchor <name>Model 2: Unique KSK Set and ZSK Set per Provider</name>
="model2"> <ul spacing="normal">
<t> <li>Each provider has their own KSK and ZSK sets.</li>
<list style="symbols"> <li>Each provider offers an API that the zone owner uses to import
<t>Each provider has their own KSK and ZSK sets.</t> the ZSK sets of the other providers into their DNSKEY RRset.</li>
<t>Each provider offers an API that the zone owner uses to import <li>The DNSKEY RRset is signed independently by each provider using
the ZSK sets of the other providers into their DNSKEY RRset.</t> their own KSK.</li>
<t>The DNSKEY RRset is signed independently by each provider using <li>The zone owner manages the DS RRset located in the parent zone.
their own KSK.</t>
<t>The zone owner manages the DS RRset located in the parent zone.
This is comprised of DS records corresponding to the KSKs of This is comprised of DS records corresponding to the KSKs of
each provider.</t> each provider.</li>
<t>Key rollovers need coordinated participation of the zone <li>Key rollovers need coordinated participation of the zone
owner to update the DS RRset (for KSK), and the DNSKEY owner to update the DS RRset (for KSK) and the DNSKEY
RRset (for ZSK).</t> RRset (for ZSK).</li>
</list> </ul>
</t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="resolver" numbered="true" toc="default">
<section title="Validating Resolver Behavior" anchor="resolver"> <name>Validating Resolver Behavior</name>
<t> <t>
The central requirement for both of the <xref The central requirement for both of the <xref target="multi-sign"
target="multi-sign">Multiple Signer models</xref> is to ensure format="default">multiple-signer models</xref> is to ensure
that the ZSKs from all providers are present in each that the ZSKs from all providers are present in each
provider's apex DNSKEY RRset, and is vouched for by either the provider's apex DNSKEY RRset and vouched for by either the
single KSK (in model 1) or each provider's KSK (in model 2.) single KSK (in Model 1) or each provider's KSK (in Model 2.)
If this is not done, the following situation can arise (assuming If this is not done, the following situation can arise (assuming
two providers A and B): two providers, A and B):
<list style="symbols"> </t>
<t>The validating resolver follows a referral (i.e. secure delegation) <ul spacing="normal">
to the zone in question.</t> <li>The validating resolver follows a referral (i.e., secure delegation)
<t>It retrieves the zone's DNSKEY RRset from one of provider to the zone in question.</li>
<li>It retrieves the zone's DNSKEY RRset from one of Provider
A's nameservers, authenticates it against the parent DS RRset, A's nameservers, authenticates it against the parent DS RRset,
and caches it.</t> and caches it.</li>
<t>At some point in time, the resolver attempts to resolve a <li>At some point in time, the resolver attempts to resolve a
name in the zone, while the DNSKEY RRset received from provider A name in the zone while the DNSKEY RRset received from Provider A
is still viable in its cache.</t> is still viable in its cache.</li>
<t>It queries one of provider B's nameservers to resolve the <li>It queries one of Provider B's nameservers to resolve the
name, and obtains a response that is signed by provider B's name and obtains a response that is signed by Provider B's
ZSK, which it cannot authenticate because this ZSK is not present ZSK, which it cannot authenticate because this ZSK is not present
in its cached DNSKEY RRset for the zone that it received from in its cached DNSKEY RRset for the zone that it received from
provider A.</t> Provider A.</li>
<t>The resolver will not accept this response. It may still <li>The resolver will not accept this response. It may still
be able to ultimately authenticate the name by querying other be able to ultimately authenticate the name by querying other
nameservers for the zone until it elicits a response from one nameservers for the zone until it elicits a response from one
of provider A's nameservers. But it has incurred the penalty of Provider A's nameservers. But it has incurred the penalty
of additional roundtrips with other nameservers, with the of additional round trips with other nameservers, with the
corresponding latency and processing costs. The exact number corresponding latency and processing costs. The exact number
of additional roundtrips depends on details of the resolver's of additional round trips depends on details of the resolver's
nameserver selection algorithm and the number of nameservers nameserver-selection algorithm and the number of nameservers
configured at provider B.</t> configured at Provider B.</li>
<t>It may also be the case that a resolver is unable to <li>It may also be the case that a resolver is unable to
provide an authenticated response because it gave up after provide an authenticated response, because it gave up after
a certain number of retries or a certain amount of delay, or a certain number of retries or a certain amount of delay; or it is
that downstream clients of the resolver that originated the possible that downstream clients of the resolver that originated the
query timed out waiting for a response. query timed out waiting for a response.
</t> </li>
</list> </ul>
<t>
Hence, it is important that the DNSKEY RRset at each provider is Hence, it is important that the DNSKEY RRset at each provider is
maintained with the active ZSKs of all participating providers. maintained with the active ZSKs of all participating providers.
This ensures that resolvers can validate a response no matter This ensures that resolvers can validate a response no matter
which provider's nameservers it came from. which provider's nameservers it came from.
</t> </t>
<t> <t>
Details of how the DNSKEY RRset itself is validated differ. Details of how the DNSKEY RRset itself is validated differ.
In <xref target="model1">model 1</xref>, one unique KSK In <xref target="model1" format="default">Model 1</xref>, one unique KSK
managed by the zone owner signs an identical DNSKEY RRset managed by the zone owner signs an identical DNSKEY RRset
deployed at each provider, and the signed DS record in the deployed at each provider, and the signed DS record in the
parent zone refers to this KSK. In <xref parent zone refers to this KSK. In <xref target="model2" format="default
target="model2">model 2</xref>, each provider has a ">Model 2</xref>, each provider has a
distinct KSK and signs the DNSKEY RRset with it. The zone distinct KSK and signs the DNSKEY RRset with it. The zone
owner deploys a DS RRset at the parent zone that contains owner deploys a DS RRset at the parent zone that contains
multiple DS records, each referring to a distinct provider's multiple DS records, each referring to a distinct provider's
KSK. Hence it does not matter which provider's nameservers the KSK. Hence, it does not matter which provider's nameservers the
resolver obtains the DNSKEY RRset from, the signed DS record resolver obtains the DNSKEY RRset from; the signed DS record
in each model can authenticate the associated KSK. in each model can authenticate the associated KSK.
</t> </t>
</section> </section>
<section anchor="algorithms" numbered="true" toc="default">
<section title="Signing Algorithm Considerations" anchor="algorithms"> <name>Signing-Algorithm Considerations</name>
<t> <t>
DNS providers participating in multi-signer models need to use DNS providers participating in multi-signer models need to use
a common DNSSEC signing algorithm (or a common set of algorithms a common DNSSEC signing algorithm (or a common set of algorithms
if multiple are in use). This is because the current specifications if several are in use). This is because the current specifications
require that if there are multiple algorithms in the DNSKEY RRset, require that if there are multiple algorithms in the DNSKEY RRset,
then RRsets in the zone need to be signed with at least one DNSKEY then RRsets in the zone need to be signed with at least one DNSKEY
of each algorithm, as described in of each algorithm, as described in <xref target="RFC4035"
<xref target="RFC4035">RFC 4035</xref>, Section 2.2. If providers sectionFormat="comma" section="2.2"/>. If providers
employ distinct signing algorithms, then this requirement cannot employ distinct signing algorithms, then this requirement cannot
be satisfied. be satisfied.
</t> </t>
</section> </section>
<section anchor="nsec" numbered="true" toc="default">
<section title="Authenticated Denial Considerations" anchor="nsec"> <name>Authenticated-Denial Considerations</name>
<t> <t>
Authenticated denial of existence enables a resolver to validate that Authenticated denial of existence enables a resolver to validate that
a record does not exist. For this purpose, an authoritative server a record does not exist. For this purpose, an authoritative server
presents, in a response to the resolver, signed NSEC (Section 3.1.3 of presents, in a response to the resolver, signed NSEC (<xref
<xref target="RFC4035" />) or NSEC3 (Section 7.2 of <xref target="RFC4035" sectionFormat="of" section="3.1.3"/>) or NSEC3
target="RFC5155" />) records that provide cryptographic proof of (<xref target="RFC5155" sectionFormat="of" section="7.2"/>) records
this non-existence. The NSEC3 method enhances NSEC by that provide cryptographic proof of
this nonexistence. The NSEC3 method enhances NSEC by
providing opt-out for signing insecure delegations and also adds providing opt-out for signing insecure delegations and also adds
limited protection against zone enumeration attacks. limited protection against zone-enumeration attacks.
</t> </t>
<t> <t>
An authoritative server response carrying records for authenticated An authoritative server response carrying records for authenticated
denial is always self-contained and the receiving resolver doesn't denial is always self-contained, and the receiving resolver doesn't
need to send additional queries to complete the proof of denial. need to send additional queries to complete the proof of denial.
For this reason, no rollover is needed when switching between NSEC For this reason, no rollover is needed when switching between NSEC
and NSEC3 for a signed zone. and NSEC3 for a signed zone.
</t> </t>
<t> <t>
Since authenticated denial responses are self-contained, NSEC and Since authenticated-denial responses are self-contained, NSEC and
NSEC3 can be used by different providers to serve the same zone. NSEC3 can be used by different providers to serve the same zone.
Doing so however defeats the protection against zone enumeration Doing so, however, defeats the protection against zone enumeration
provided by NSEC3 (because an adversary can trivially enumerate provided by NSEC3 (because an adversary can trivially enumerate
the zone by just querying the providers that employ NSEC). A the zone by just querying the providers that employ NSEC). A
better configuration involves multiple providers using different better configuration involves multiple providers using different
authenticated denial of existence mechanisms that all provide zone authenticated denial-of-existence mechanisms that all provide
enumeration defense, such as pre-computed NSEC3, zone-enumeration defense, such as precomputed NSEC3,
<xref target="RFC7129">NSEC3 White Lies</xref>, <xref target="RFC7129" format="default">NSEC3 white lies</xref>,
<xref target="BLACKLIES">NSEC Black Lies</xref>, etc. Note however <xref target="I-D.valsorda-dnsop-black-lies" format="default">NSEC
that having multiple providers offering different authenticated denial black lies</xref>, etc. Note, however,
that having multiple providers offering different authenticated-denial
mechanisms may impact how effectively resolvers are able to make mechanisms may impact how effectively resolvers are able to make
use of the caching of negative responses. use of the caching of negative responses.
</t> </t>
<section numbered="true" toc="default">
<section title="Single Method"> <name>Single Method</name>
<t> <t>
Usually, the NSEC and NSEC3 methods are used exclusively (i.e. the Usually, the NSEC and NSEC3 methods are used exclusively (i.e., the
methods are not used at the same time by different servers). This methods are not used at the same time by different servers). This
configuration is preferred because the behavior is well-defined and configuration is preferred, because the behavior is well defined and
is closest to current operational practice. closest to current operational practice.
</t> </t>
</section> </section>
<section numbered="true" toc="default">
<section title="Mixing Methods"> <name>Mixing Methods</name>
<t> <t>
Compliant resolvers should be able to validate zone data when Compliant resolvers should be able to validate zone data when
different authoritative servers for the same zone respond with different authoritative servers for the same zone respond with
different authenticated denial methods because this is normally different authenticated-denial methods, because this is normally
observed when NSEC and NSEC3 are being switched or when NSEC3PARAM observed when NSEC and NSEC3 are being switched or when NSEC3PARAM
is updated. is updated.
</t> </t>
<t> <t>
Resolver software may, however, be designed to handle a single Resolver software may, however, be designed to handle a single
transition between two authenticated denial configurations more transition between two authenticated denial configurations more
optimally than a permanent setup with mixed authenticated denial optimally than a permanent setup with mixed authenticated-denial
methods. This could make caching on the resolver side less methods. This could make caching on the resolver side less
efficient and the authoritative servers may observe higher number efficient, and the authoritative servers may observe a higher number
of queries. This aspect should be considered especially in the of queries. This aspect should be considered especially in the
context of <xref target="RFC8198" >Aggressive Use of DNSSEC-Validated context of <xref target="RFC8198" format="default">"Aggressive Use of
Cache</xref>. DNSSEC-Validated
Cache"</xref>.
</t> </t>
<t> <t>
In case all providers cannot be configured with the same In case all providers cannot be configured with the same
authenticated denial mechanism, it is recommended to limit authenticated-denial mechanism, it is recommended to limit
the distinct configurations to the lowest number feasible. the distinct configurations to the lowest number feasible.
</t> </t>
<t> <t>
Note that NSEC3 configuration on all providers with Note that NSEC3 configuration on all providers with
different NSEC3PARAM values is considered a mixed setup. different NSEC3PARAM values is considered a mixed setup.
</t> </t>
</section> </section>
</section> </section>
<section anchor="keyrollover" numbered="true" toc="default">
<section title="Key Rollover Considerations" anchor="keyrollover"> <name>Key Rollover Considerations</name>
<t> <t>
The <xref target="multi-sign">Multiple Signer</xref> models The <xref target="multi-sign" format="default">multiple-signer</xref> mo dels
introduce some new requirements for DNSSEC key rollovers. introduce some new requirements for DNSSEC key rollovers.
Since this process necessarily involves coordinated actions on Since this process necessarily involves coordinated actions on
the part of providers and the zone owner, one reasonable the part of providers and the zone owner, one reasonable
strategy is for the zone owner to initiate key rollover strategy is for the zone owner to initiate key-rollover
operations. But other operationally plausible models may also operations. But other operationally plausible models may also
suit, such as a DNS provider initiating a key rollover and suit, such as a DNS provider initiating a key rollover and
signaling their intent to the zone owner in some manner. The signaling their intent to the zone owner in some manner. The
mechanism to communicate this intent could be some secure mechanism to communicate this intent could be some secure
out-of-band channel that has been agreed upon, or the provider out-of-band channel that has been agreed upon, or the provider
could offer an API function that could be periodically polled could offer an API function that could be periodically polled
by the zone owner. by the zone owner.
</t> </t>
<t> <t>
The descriptions in this section assume two DNS providers For simplicity, the descriptions in this section assume two DNS
for simplicity. They also assume that KSK rollovers employ providers. They also assume that KSK rollovers employ
the commonly used Double Signature KSK Rollover Method, and the commonly used Double-Signature KSK rollover method and
that ZSK rollovers employ the Pre-Publish ZSK Rollover that ZSK rollovers employ the Pre-Publish ZSK rollover
Method, as described in detail in <xref target="RFC6781"/>. method, as described in detail in <xref target="RFC6781" format="default
"/>.
With minor modifications, they can be easily adapted to With minor modifications, they can be easily adapted to
other models, such as Double DS KSK Rollover or Double other models, such as Double-DS KSK rollover or Double-Signature ZSK
Signature ZSK rollover, if desired. Key use timing should rollover, if desired. Key-use timing should
follow the recommendations outlined in <xref target="RFC6781"/>, follow the recommendations outlined in <xref target="RFC6781" format="de
fault"/>,
but taking into account the additional operations needed by but taking into account the additional operations needed by
the multi signer models. For example, "time to propagate data the multi-signer models. For example, "time to propagate data
to all the authoritative servers" now includes the time to import to all the authoritative servers" now includes the time to import
the new ZSKs into each provider. the new ZSKs into each provider.
</t> </t>
<section anchor="krc-model1" numbered="true" toc="default">
<section title="Model 1: Common KSK, Unique ZSK per provider" <name>Model 1: Common KSK, Unique ZSK per Provider</name>
anchor="krc-model1"> <ul spacing="normal">
<t> <li>
<list style="symbols"> Key Signing Key Rollover: In this model, the two managed-DNS
<t>
Key Signing Key Rollover: In this model, the two managed DNS
providers share a common KSK (public key) in their respective providers share a common KSK (public key) in their respective
zones, and the zone owner controls the KSK signing key. To zones, and the zone owner has sole access to the private key portion o f the KSK. To
initiate the rollover, the zone owner generates a new KSK and obtains initiate the rollover, the zone owner generates a new KSK and obtains
the DNSKEY RRset of each DNS provider using their respective APIs. the DNSKEY RRset of each DNS provider using their respective APIs.
The new KSK is added to each provider's DNSKEY RRset and the RRset The new KSK is added to each provider's DNSKEY RRset, and the RRset
is re-signed with both the new and the old KSK. This new DNSKEY RRset is re-signed with both the new and the old KSK. This new DNSKEY RRset
is then transferred to each provider. The zone owner then updates is then transferred to each provider. The zone owner then updates
the DS RRset in the parent zone to point to the new KSK, and after the DS RRset in the parent zone to point to the new KSK and, after
the necessary DS record TTL period has expired, proceeds with the necessary DS record TTL period has expired, proceeds with
updating the DNSKEY RRset to remove the old KSK. updating the DNSKEY RRset to remove the old KSK.
</t> </li>
<t> <li>
Zone Signing Key Rollover: In this model, each DNS provider has Zone Signing Key Rollover: In this model, each DNS provider has
separate Zone Signing Keys. Each provider can choose to roll their separate Zone Signing Keys. Each provider can choose to roll their
ZSK independently by co-ordinating with the zone owner. Provider A ZSK independently by coordinating with the zone owner. Provider A
would generate a new ZSK and communicate their intent to perform a would generate a new ZSK and communicate their intent to perform a
rollover (note that Provider A cannot immediately insert this new rollover (note that Provider A cannot immediately insert this new
ZSK into their DNSKEY RRset because the RRset has to be signed by ZSK into their DNSKEY RRset, because the RRset has to be signed by
the zone owner). The zone owner obtains the new ZSK from the zone owner). The zone owner obtains the new ZSK from
Provider A. It then obtains the current DNSKEY RRset from each Provider A. It then obtains the current DNSKEY RRset from each
provider (including Provider A), inserts the new ZSK into each DNSKEY provider (including Provider A), inserts the new ZSK into each DNSKEY
RRset, re-signs the DNSKEY RRset, and sends it back to each provider RRset, re-signs the DNSKEY RRset, and sends it back to each provider
for deployment via their respective key management APIs. Once the for deployment via their respective key-management APIs. Once the
necessary time period is elapsed (i.e. all zone data has been necessary time period has elapsed (i.e., all zone data has been
re-signed by the new ZSK and propagated to all authoritative servers re-signed by the new ZSK and propagated to all authoritative servers
for the zone, plus the maximum zone TTL value of any of the data in for the zone, plus the maximum zone-TTL value of any of the data in
the zone signed by the old ZSK), Provider A and the zone owner can the zone that has been signed by the old ZSK), Provider A and the
initiate the next phase of removing the old ZSK, and re-signing the zone owner can initiate the next phase of removing the old ZSK and
resulting new DNSKEY RRset. re-signing the resulting new DNSKEY RRset.
</t> </li>
</list> </ul>
</t>
</section> </section>
<section anchor="krc-model2" numbered="true" toc="default">
<section title="Model 2: Unique KSK and ZSK per provider" <name>Model 2: Unique KSK and ZSK per Provider</name>
anchor="krc-model2"> <ul spacing="normal">
<t> <li>
<list style="symbols"> Key Signing Key Rollover: In Model 2, each managed-DNS provider
<t> has their own KSK. A KSK roll for Provider A does not require any
Key Signing Key Rollover: In Model 2, each managed DNS provider change in the DNSKEY RRset of Provider B but does require
has their own KSK. A KSK roll for provider A does not require any
change in the DNSKEY RRset of provider B, but does require
co-ordination with the zone owner in order to get the DS record co-ordination with the zone owner in order to get the DS record
set in the parent zone updated. The KSK roll starts with Provider set in the parent zone updated. The KSK roll starts with Provider
A generating a new KSK and including it in their DNSKEY RRSet. A generating a new KSK and including it in their DNSKEY RRSet.
The DNSKey RRset would then be signed by both the new and old KSK. The DNSKey RRset would then be signed by both the new and old KSK.
The new KSK is communicated to the zone owner, after which the zone The new KSK is communicated to the zone owner, after which the zone
owner updates the DS RRset to replace the DS record for the old KSK owner updates the DS RRset to replace the DS record for the old KSK
with a DS record for the new KSK. After the necessary DS RRset TTL with a DS record for the new KSK. After the necessary DS RRset TTL
period has elapsed, the old KSK can be removed from provider A's period has elapsed, the old KSK can be removed from Provider A's
DNSKEY RRset. DNSKEY RRset.
</t> </li>
<t> <li>
Zone Signing Key Rollover: In Model 2, each managed DNS provider Zone Signing Key Rollover: In Model 2, each managed-DNS provider
has their own ZSK. The ZSK roll for provider A would start with has their own ZSK. The ZSK roll for Provider A would start with
them generating new ZSK and including it in their DNSKEY RRset and them generating a new ZSK, including it in their DNSKEY RRset, and
re-signing the new DNSKEY RRset with their KSK. The new ZSK of re-signing the new DNSKEY RRset with their KSK. The new ZSK of
provider A would then be communicated to the zone owner, who will Provider A would then be communicated to the zone owner, who would
initiate the process of importing this ZSK into the DNSKEY RRsets initiate the process of importing this ZSK into the DNSKEY RRsets
of the other providers, using their respective APIs. Once the of the other providers, using their respective APIs. Before
necessary Pre-Publish key rollover time periods have elapsed, signing zone data with the new ZSK, Provider A should wait
provider A and the zone owner can initiate the process of removing for the DNSKEY TTL plus the time to import the ZSK into
the old ZSK from the DNSKEY RRset of all providers. Provider B, plus the time to propagate the DNSKEY RRset to
</t> all authoritative servers of both providers. Once the
</list> necessary Pre-Publish key-rollover time periods have elapsed,
</t> Provider A and the zone owner can initiate the process of removing
the old ZSK from the DNSKEY RRsets of all providers.
</li>
</ul>
</section> </section>
</section> </section>
<section anchor="CSK" numbered="true" toc="default">
<section anchor="CSK" title="Using Combined Signing Keys"> <name>Using Combined Signing Keys</name>
<t> <t>
A Combined Signing Key (CSK) is one in which the same key serves the A Combined Signing Key (CSK) is one in which the same key serves the
purpose of being both the secure entry point (SEP) key for the zone, purposes of both being the secure entry point (SEP) key for the zone
and also for signing all the zone data including the DNSKEY RRset and signing all the zone data, including the DNSKEY RRset
(i.e., there is no KSK/ZSK split). (i.e., there is no KSK/ZSK split).
</t> </t>
<t> <t>
Model 1 is not compatible with CSKs because the zone owner would then Model 1 is not compatible with CSKs because the zone owner would then
hold the sole signing key, and providers would not be able to sign hold the sole signing key, and providers would not be able to sign
their own zone data. their own zone data.
</t> </t>
<t> <t>
Model 2 can accommodate CSKs without issue. In this case, any or all Model 2 can accommodate CSKs without issue. In this case, any or all
of the providers could employ a CSK. The DS record in the parent zone of the providers could employ a CSK. The DS record in the parent zone
would reference the provider's CSK instead of KSK, and the public would reference the provider's CSK instead of KSK, and the public
CSK will need to be imported into the DNSKEY RRsets of all of the other CSK would need to be imported into the DNSKEY RRsets of all of the other
providers. A CSK key rollover for such a provider would involve the providers. A CSK key rollover for such a provider would involve the
following: The provider generates a new CSK, installs the new CSK following: The provider generates a new CSK, installs the new CSK
into the DNSKEY RRset, and signs it with both the old and new CSK. into the DNSKEY RRset, and signs it with both the old and new CSKs.
The new CSK is communicated to the zone owner. The zone owner exports The new CSK is communicated to the zone owner. The zone owner exports
this CSK into the other provider's DNSKEY RRsets and replaces the DS this CSK into the other provider's DNSKEY RRsets and replaces the DS
record referencing the old CSK with one referencing the new one in record referencing the old CSK with one referencing the new one in
the parent DS RRset. Once all the zone data has been re-signed with the parent DS RRset. Once all the zone data has been re-signed with
the new CSK, the old CSK is removed from the DNSKEY RRset, and the the new CSK, the old CSK is removed from the DNSKEY RRset, and the
latter is re-signed with only the new CSK. Finally, the old CSK is latter is re-signed with only the new CSK. Finally, the old CSK is
removed from the DNSKEY RRsets of the other providers. removed from the DNSKEY RRsets of the other providers.
</t> </t>
</section> </section>
<section anchor="CDS-CDNSKEY" numbered="true" toc="default">
<section anchor="CDS-CDNSKEY" title="Use of CDS and CDNSKEY"> <name>Use of CDS and CDNSKEY</name>
<t> <t>
CDS and CDNSKEY records <xref target="RFC7344" /> CDS and CDNSKEY records <xref target="RFC7344" format="default"/><xref
<xref target="RFC8078" /> target="RFC8078" format="default"/>
are used to facilitate automated updates are used to facilitate automated updates
of DNSSEC secure entry point keys between parent and child of DNSSEC secure-entry-point keys between parent and child
zones. Multi-signer DNSSEC configurations can support this too. zones. Multi-signer DNSSEC configurations can support this, too.
In Model 1, CDS/CDNSKEY changes are centralized at the zone owner. In Model 1, CDS/CDNSKEY changes are centralized at the zone owner.
However, the zone owner will still need to push down updated However, the zone owner will still need to push down updated
signed CDNS/DNSKEY RRsets to the providers via the key management signed CDNS/DNSKEY RRsets to the providers via the key-management
mechanism. In Model 2, the key management mechanism needs to mechanism. In Model 2, the key-management mechanism needs to
support cross importation of the CDS/CDNSKEY records, so that a support cross-importation of the CDS/CDNSKEY records, so that a
common view of the RRset can be constructed at each provider, and common view of the RRset can be constructed at each provider and
is visible to the parent zone attempting to update the DS RRset. is visible to the parent zone attempting to update the DS RRset.
</t> </t>
</section> </section>
<section anchor="Key-Management" numbered="true" toc="default">
<section anchor="Key-Management" title="Key Management Mechanism Requirement <name>Key-Management-Mechanism Requirements</name>
s">
<t> <t>
Managed DNS providers typically have their own proprietary zone Managed-DNS providers typically have their own proprietary zone
configuration and data management APIs, commonly utilizing configuration and data-management APIs, commonly utilizing
HTTPS/REST interfaces. So, rather than outlining a new API for HTTPS and Representational State Transfer (REST) interfaces. So, rather
than outlining a new API for
key management here, we describe the specific functions that the key management here, we describe the specific functions that the
provider API needs to support in order to enable the multi-signer provider API needs to support in order to enable the multi-signer
models. The zone owner is expected to use these API functions to models. The zone owner is expected to use these API functions to
perform key management tasks. Other mechanisms that can partly perform key-management tasks. Other mechanisms that can partly
offer these functions, if supported by the providers, include the offer these functions, if supported by the providers, include the
<xref target="RFC2136">DNS UPDATE protocol</xref> and <xref target="RFC2136" format="default">DNS UPDATE protocol</xref> and
<xref target="RFC5731">EPP</xref>. <xref target="RFC5731" format="default">Extensible Provisioning
Protocol (EPP)</xref>.
</t> </t>
<t> <ul spacing="normal">
<list style="symbols"> <li>The API must offer a way to query the current DNSKEY RRset
<t>The API must offer a way to query the current DNSKEY RRset of the provider.</li>
of the provider</t> <li>For Model 1, the API must offer a way to import a signed
<t>For model 1, the API must offer a way to import a signed
DNSKEY RRset and replace the current one at the provider. DNSKEY RRset and replace the current one at the provider.
Additionally, if CDS/CDNSKEY is supported, the API must also Additionally, if CDS/CDNSKEY is supported, the API must also
offer a way to import a signed CDS/CDNSKEY RRset.</t> offer a way to import a signed CDS/CDNSKEY RRset.</li>
<t>For model 2, the API must offer a way to import a DNSKEY <li>For Model 2, the API must offer a way to import a DNSKEY
record from an external provider into the current DNSKEY record from an external provider into the current DNSKEY
RRset. Additionally, if CDS/CDNSKEY is supported, the RRset. Additionally, if CDS/CDNSKEY is supported, the
API must offer a mechanism to import individual CDS/CDNSKEY API must offer a mechanism to import individual CDS/CDNSKEY
records from an external provider.</t> records from an external provider.</li>
</list> </ul>
</t>
<t> <t>
In model 2, once initially bootstrapped with each other's zone In Model 2, once initially bootstrapped with each other's zone-signing
signing keys via these API mechanisms, providers could, if desired, keys via these API mechanisms, providers could, if desired,
periodically query each other's DNSKEY RRsets, authenticate their periodically query each other's DNSKEY RRsets, authenticate their
signatures, and automatically import or withdraw ZSKs in the keyset signatures, and automatically import or withdraw ZSKs in the keyset
as key rollover events happen. as key-rollover events happen.
</t> </t>
</section> </section>
<section anchor="Response-Size" numbered="true" toc="default">
<section anchor="Response-Size" title="DNS Response Size Considerations"> <name>DNS Response-Size Considerations</name>
<t> <t>
The Multi-Signer models result in larger DNSKEY RRsets, so the size The multi-signer models result in larger DNSKEY RRsets, so the size
of a response to a query for the DNSKEY RRset will be larger. The of a response to a query for the DNSKEY RRset will be larger. The
actual size increase depends on multiple factors: DNSKEY algorithm actual size increase depends on multiple factors: DNSKEY algorithm
and keysize choices, the number of providers, whether additional keys and keysize choices, the number of providers, whether additional keys
are pre-published, how many simultaneous key rollovers are in progress are prepublished, how many simultaneous key rollovers are in progress,
etc. Newer elliptic curve algorithms produce keys small enough that the etc. Newer elliptic-curve algorithms produce keys small enough that the
responses will typically be far below the common Internet path MTU. responses will typically be far below the common Internet-path MTU.
Thus operational concerns related to IP fragmentation or truncation Thus, operational concerns related to IP fragmentation or truncation
and TCP fallback are unlikely to be encountered. In any case, DNS and TCP fallback are unlikely to be encountered. In any case, DNS
operators need to ensure that they can emit and process large DNS UDP operators need to ensure that they can emit and process large DNS UDP
responses when necessary, and a future migration to alternative responses when necessary, and a future migration to alternative
transports like <xref target="RFC7858">DNS over TLS</xref> or transports like <xref target="RFC7858" format="default">DNS over TLS</xr
<xref target="RFC8484">DNS over HTTPS</xref> may make this topic moot. ef> or
<xref target="RFC8484" format="default">DNS over HTTPS</xref> may make t
his topic moot.
</t> </t>
</section> </section>
<section anchor="IANA" numbered="true" toc="default">
<section anchor="IANA" title="IANA Considerations"> <name>IANA Considerations</name>
<t>This document includes no request to IANA.</t> <t>This document has no IANA actions.</t>
</section> </section>
<section anchor="Security" numbered="true" toc="default">
<section anchor="Security" title="Security Considerations"> <name>Security Considerations</name>
<t> <t>
The Multi Signer models necessarily involve 3rd party providers The multi-signer models necessarily involve third-party providers
holding the private keys that sign the zone owner's data. Obviously holding the private keys that sign the zone-owner's data. Obviously,
this means that the zone owner has decided to place a great deal this means that the zone owner has decided to place a great deal
of trust in these providers. By contrast, the more traditional of trust in these providers. By contrast, the more traditional
model in which the zone owner runs a hidden master and uses the zone model in which the zone owner runs a hidden master and uses the
transfer protocol with the providers, is arguably more secure, because zone-transfer protocol with the providers is arguably more secure,
only the zone owner holds the private signing keys, and the 3rd party because
only the zone owner holds the private signing keys, and the third-party
providers cannot serve bogus data without detection by validating providers cannot serve bogus data without detection by validating
resolvers. resolvers.
</t> </t>
<t> <t>
The Zone key import and export APIs required by these models The zone-key import and export APIs required by these models
need to be strongly authenticated to prevent tampering of key need to be strongly authenticated to prevent tampering of key
material by malicious third parties. Many providers today material by malicious third parties. Many providers today
offer REST/HTTPS APIs, where the HTTPS layer provides transport offer REST/HTTPS APIs that utilize a number of
security and server authentication, and that utilize a number of client-authentication mechanisms (username/password, API keys etc) and
client authentication mechanisms (username/password, API keys etc). whose HTTPS layer provides transport
security and server authentication. Multifactor
authentication could be used to further strengthen security.
If DNS protocol mechanisms like UPDATE are being used for key If DNS protocol mechanisms like UPDATE are being used for key
insertion and deletion, they should similarly be strongly insertion and deletion, they should similarly be strongly
authenticated, e.g. by employing <xref target="RFC2845"> authenticated -- e.g., by employing <xref target="RFC2845" format="defau
Transaction Signatures (TSIG)</xref>. Multi-factor lt">
authentication could be used to further strengthen security. Transaction Signatures (TSIG)</xref>.
Key Generation and other general security related operations Key generation and other general security-related operations
should follow the guidance specified in <xref target="RFC6781"/>. should follow the guidance specified in <xref target="RFC6781" format="d
</t> efault"/>.
</section>
<section title="Acknowledgments">
<t>
The initial version of this document benefited from discussions
with and review from Duane Wessels. Additional helpful comments
were provided by Steve Crocker, Ulrich Wisser, Tony Finch, Olafur
Gudmundsson, Matthijs Mekking, Daniel Migault, and Ben Kaduk.
</t> </t>
</section> </section>
</middle> </middle>
<!-- *****BACK MATTER ***** -->
<back> <back>
<references title="Normative References">
&RFC1034;
&RFC1035;
&RFC2845;
&RFC4033;
&RFC4034;
&RFC4035;
&RFC5155;
&RFC6781;
&RFC7344;
&RFC8078;
&RFC8198;
</references>
<references title="Informative References"> <displayreference target="I-D.valsorda-dnsop-black-lies" to="BLACKLIES"/>
&RFC1995;
&RFC2136; <references>
&RFC5731; <name>References</name>
&RFC5936; <references>
&RFC7129; <name>Normative References</name>
&RFC7858; <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
&RFC8484; FC.1034.xml"/>
&RFC8499; <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<reference anchor="BLACKLIES" FC.1035.xml"/>
target="https://tools.ietf.org/html/draft-valsorda-dnsop-black- <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
lies"> FC.2845.xml"/>
<front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<title>Compact DNSSEC Denial of Existence or Black Lies</title> FC.4033.xml"/>
<author fullname="Filippo Valsorda" initials="F" surname="Valsorda" /> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<author fullname="Olafur Gudmundsson" initials="O" surname="Gudmundsso FC.4034.xml"/>
n" /> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<date /> FC.4035.xml"/>
</front> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
</reference> FC.5155.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6781.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7344.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8078.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8198.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.1995.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2136.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5731.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5936.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7129.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7858.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8484.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8499.xml"/>
<!-- [BLACKLIES] I-D.valsorda-dnsop-black-lies; IESG state Expired -->
<xi:include
href="https://www.rfc-editor.org/refs/bibxml3/reference.I-D.valsorda-dnsop-b
lack-lies.xml"/>
</references>
</references> </references>
<section numbered="false" toc="default">
<name>Acknowledgments</name>
<t>
The initial version of this document benefited from discussions
with and review from <contact fullname="Duane Wessels"/>. Additional hel
pful comments
were provided by <contact fullname="Steve Crocker"/>, <contact
fullname="Ulrich Wisser"/>, <contact fullname="Tony Finch"/>, <contact
fullname="Olafur Gudmundsson"/>, <contact fullname="Matthijs
Mekking"/>, <contact fullname="Daniel Migault"/>, and <contact fullname="
Ben Kaduk"/>.
</t>
</section>
</back> </back>
</rfc> </rfc>
 End of changes. 149 change blocks. 
436 lines changed or deleted 401 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/