<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.1 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC4033 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml">
<!ENTITY RFC4035 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4035.xml">
<!ENTITY RFC7646 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7646.xml">
<!ENTITY RFC5011 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5011.xml">
<!ENTITY RFC8145 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8145.xml">
<!ENTITY RFC7583 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7583.xml">
<!ENTITY RFC6781 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6781.xml">
<!ENTITY I-D.ietf-dnsop-ns-revalidation SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-dnsop-ns-revalidation.xml">
<!ENTITY RFC8247 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8247.xml">
<!ENTITY RFC8221 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8221.xml">
<!ENTITY RFC6975 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6975.xml">
<!ENTITY RFC8914 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8914.xml">
<!ENTITY RFC7958 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7958.xml">
<!ENTITY RFC7598 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7598.xml">
<!ENTITY I-D.ietf-dnsop-rfc5011-security-considerations SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-dnsop-rfc5011-security-considerations.xml">
]>

<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocindent="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-dnsop-dnssec-validator-requirements-01" category="info">

  <front>
    <title abbrev="DRO Recommendations">Recommendations for DNSSEC Resolvers Operators</title>

    <author initials="D." surname="Migault" fullname="Daniel Migault">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>8275 Trans Canada Route</street>
          <city>Saint Laurent, QC</city>
          <code>4S 0B6</code>
          <country>Canada</country>
        </postal>
        <email>daniel.migault@ericsson.com</email>
      </address>
    </author>
    <author initials="D." surname="York" fullname="Dan York">
      <organization>ISOC</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <code></code>
          <country></country>
        </postal>
        <email>york@isoc.org</email>
      </address>
    </author>

    <date year="2022" month="May" day="13"/>

    <area>operational</area>
    <workgroup>dnsop</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The DNS Security Extensions (DNSSEC) define a process for validating received
data and assert them authentic and complete as opposed to
forged.</t>

<t>This document clarifies the scope and responsibilities of
DNSSEC Resolver Operators (DRO) as well as  operational recommendations
that DNSSEC validators operators SHOULD put in place in order to
implement sufficient trust that makes DNSSEC validation output accurate.
The recommendations described in this document include, provisioning
mechanisms as well as monitoring and management mechanisms.</t>



    </abstract>


  </front>

  <middle>


<section anchor="requirements-notation" title="Requirements Notation">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL
NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”,
“MAY”, and “OPTIONAL” in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

</section>
<section anchor="sec-intro" title="Introduction">

<t>The purpose of DNSSEC Resolver Operator (DRO) is to enable DNSSEC validation in their resolvers.</t>

<t>By validating with DNSSEC a received Resource Record Set (RRset), the resolver provides a high level of confidentiality that the information carried by the RRset is effectively the one published by the legitimate owner of the RRset. 
The act of DNSSEC validation <xref target="RFC4033"/><xref target="RFC4035"/> can be broken into two part: A <spanx style="emph">Signature Validation</spanx> which binds the RRset to a private key as well as <spanx style="emph">Trust</spanx> in the owner of the private being the legitimate owner.</t>

<t>Signature Validation consists in checking the cryptographic signature of a RRset and involves among other parameters a DNSKEY Resource Record (RR) and RRSIG RR and the RRset itself. 
The signature validation process results in designating the owner of RRset as the owner of the corresponding private part of the public key contained in the DNSKEY RR. 
Cryptography provides a high level of confidence in the binding to the private key. 
In that sense, a rogue RRset likely results from the private key being exposed or guessed – as opposed to signature or key collisions for example.
As such differ the confidence into the Trust to designate which DNSKEY RR is legitimate.</t>

<t>Trust implicitly assumes the private keys used to signed are not shared and as such can be associated their respective owners.
The purpose of Trust is to put significant confidence into designating the legitimate DNSKEY RR - which also characterizes the corresponding private key. 
Such trust is provided by a Trust Anchor (TA), and the chain of trust established between the TA and the DNSKEY RR. 
The chain of trust is obtained by recursively validating the DNSKEY RRs.</t>

<t>As a result, such trust results from the trust placed in the TA as well as the delegation mechanism provided by DNSSEC and the Signature Validation. 
As TAs need to be managed over time, the trust also concerns the management procedure of the TA. 
This is the main concern of this document.</t>

<t>Data’s authenticity and integrity is tied to the operator of the key that generates the signature.<vspace />
It is conceivable that a validator could “know” the keys of each data source, but this is not practical at large scale.
To counter this, DNSSEC relied on securely chaining keys in a manner isomorphic to the way names are delegated.<vspace />
Keys for a name will “vouch for” keys at a name delegated via the signing of a DS resource record set.</t>

<t>Using keys to vouch for keys, recursively, works when a manageable set of key to name associations are determined to be “trusted” - and are called trust anchors. 
In DNSSEC, a validator needs one or more Trust Anchors from which to grow chains of verified keys.</t>

<t>With operational experience, a twist has emerged.
More often, to date, failed validation is due to operator error or software bug <xref target="ENT"/> and not an attempt to forge data.
In general badly signed RRsets or zone badly delegated are out of scope of the DRO’s responsibility. 
However, the DRO may reflect this operational error with a temporary solution designated as Negative Trust Anchors (NTA) <xref target="RFC7646"/>. 
A NTA instructs a validator to ignore the presence of keys for a name, reacting as if the name is unsigned.</t>

<t>Once accurately validated the RRset is assumed to be accurately validated and trusted during the time indicated by its TTL.</t>

<t>The responsibilities of a DRO are limited to the management of TAs as well as providing the necessary infrastructure to perform the signature validation, e.g. appropriated libraries and time. 
More specifically, badly signed zones or insertion of malicious DNSKEY fall out of the DRO’s responsibilities. 
Even though these threats fall out of these responsibilities, a DRO may collaborate with authoritative servers to limit the damage of their operational errors.</t>

<t>This document is focused on operational recommendations that DRO SHOULD put in place in order to implement sufficient trust that makes DNSSEC validation output accurate. 
The recommendations described in this document include, provisioning mechanisms as well as monitoring and management mechanisms.</t>

<t>The mechanisms provided are designed in accordance of the DNSSEC trust model as to meet the current operations of DNSSEC. 
Such trust model is briefly recapped in <xref target="sec-dnssec-val-desc"/> so operators understand the limits and motivations for such mechanisms.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>This document uses the following terminology:</t>

<t><list style="hanging">
  <t hangText="DNSSEC validator">
  the entity that performs DNSSEC resolution and performs signature
validation.</t>
  <t hangText="Accurate validation">
  validation that avoids false positives and catches true negatives.</t>
  <t hangText="Trust Anchor Data Store">
  a module (of code) implementing functions related to the trust anchors
used by the validator.  This is essentially a database allowing access,
monitoring of, and changes to trust anchors.</t>
  <t hangText="DNSSEC Resolver Operator (DRO)">
  The operator providing DNSSEC validation service and managing DNSSEC
validators</t>
</list></t>

</section>
<section anchor="sec-dnssec-val-desc" title="DNSSEC Validator Description">

<t>This is a conceptual block diagram of the elements involved with DNSSEC validation. 
This is not meant to be an architecture for code, this is meant to be a framework for discussion and explanation.</t>

<figure><artwork><![CDATA[
    +-------------+  +---------------+
    |             |  |               |
    | Time Source |  | Cryptographic |
    |             |  |   Libraries   |
    |             |  |               |
    +-------------+  +---------------+
           |                 |
           v                 v
    +--------------------------------+   +--------------+
    |                                |   |              |
    |                                |<--| Trust Anchor |
    |    DNSSEC Validation Engine    |   |   Manager &  |
    |                                |-->|   Storage    |
    |                                |   |              |
    +--------------------------------+   +--------------+
          ^ |               ^                   |
          | v               |                   |
    +-------------+  +---------------+          |
    |             |  |               |          |
    | DNS Caches  |  | DNS Messages  |<---------+
    |             |  |               |
    +-------------+  +---------------+
]]></artwork></figure>
<t>{ title=”DNSSEC Validator Description” }</t>

<t><list style="hanging">
  <t hangText="Time Source">
  The wall clock time provides the DNSSEC Validation Engine the current time. 
Time is among other used to validate the RRSIG Signature and Inception Fields to provide some protection against replay attacks.</t>
  <t hangText="Cryptograhic Libraries">
  The code performing mathematical functions provides the DNSSEC Validation Engine the ability to check the Signature Field that contains the cryptographic signature covering the RRSIG RDATA.</t>
  <t hangText="DNS Message">
  DNS responses are used to carry the information from the DNS system.
The receiver of the DNS message can be any kind of application including DNS-related application such as in the case of automated Trust Anchor update performed by the Trust Anchor Manager &amp; Storage. 
The DNSSEC Validator Engine accurately validates the DNS responses before caching them in the DNS Cache and forwarding them to the DNS receiver. 
In case of validation failure, an error is returned and the information may be negatively cached.</t>
  <t hangText="DNS Caches">
  Include positive and negative caches. 
The DNSSEC Validation Engine fills DNS Caches with the results of a validation (positive data, negative failures). 
The DNSSEC trust model considers that once a RRset has been accurately validated by the DNSSEC Validator Engine, the RRset is considered trusted (or untrusted) for its associated TTL. 
DNS Caches contain RRsets that may contain information requested by the application (RRset of type AAAA for example) as well as RRset necessary to accurately validate the RRsets (RRsets of type DNSKEY or RRSIG for example). 
It also worth noticing that RRset validated with DNSSEC or RRset that are not validated with DNSSEC fill the DNS Cache with the same level of trust.</t>
  <t hangText="Trust Anchor Manager">
  The database of trust anchors associated to database management processes. 
This function provides the DNSSEC Validation Engine Trust Anchor information when needed. 
When TA needs to be updated, the Trust Anchor Manager is also responsible to handle the updating procedure.
This includes sending DNS Messages as well as treating appropriately the DNS responses that have been accurately validated by the DNSSEC Validator Engine.<vspace />
This will require the DNSSEC Validator to update Trust Anchor information, whether via methods like Automated Updates of DNSSEC Trust Anchors <xref target="RFC5011"/>, management of Negative Trust Anchors, or other, possibly not yet defined, means.</t>
  <t hangText="DNSSEC Validation Engine">
  follows local policy to approve data. The approved data is returned to the requesting application as well as in the DNS Caches. 
While the cryptographic computation of the RRSIG signature may be the most visible step, the RRSIG record also contains other information intended to help the validator perform its work, in some cases “sane value” checks are performed.
For instance, the original TTL (needed to prepare the RR set for validation) ought to be equal to or higher than the received TTL.</t>
</list></t>

<t>Not shown - Name Server Process Management interfaces to elements, handling of Checking Disabled request, responses, as well as all API requests made of the name server.</t>

</section>
<section anchor="recommendations-categories" title="Recommendations Categories">

<t>DRO needs to be able to enable DNSSEC validation with sufficient confidence they will not be held responsible in case their resolver does not validate the DNSSEC response. 
The minimization of these risks is provided by setting automated procedures, when a resolver is started or while it is operating, as well as some on-demand operations that enable the DRO to perform a specific operation. 
The recommendations do not come with the same level of requirements and some are likely to be required.
Other are optional and may be followed by more advanced DROs.</t>

<t>The recommendations are voluntary restrictive to prevent side effects of interventions that will be hard to predict, debug and understand.</t>

<t>The RECOMMENDATIONS in this document are subdivided into the following
categories:</t>

<t><list style="hanging">
  <t hangText="Start-up recommendations">
  which describes RECOMMENDED operations the DRO is expected to perform when the resolver is started. 
These operations typically includes health check of the infrastructure the resolver is instantiated on as well as configuration check.</t>
  <t hangText="Run time recommendations">
  which describes RECOMMENDED operations the DRO is expected to perform on its running resolvers.
These operations typically include health checks of the infrastructure as well as the resolvers.</t>
  <t hangText="On demand recommendations">
  which describes the RECOMMENDED operations a DRO may perform. 
This includes the ability to operate health check at a given time as well as specific operations such as flushing the cache. 
The reason the document mentions these recommendations is to enable DROs to have the appropriates tools as well as to restrict their potential interventions.</t>
</list></t>

</section>
<section anchor="time-deviation-and-absence-of-real-time-clock-recommendations" title="Time deviation and absence of Real Time Clock Recommendations">

<t>With M2M communication some devices are not expected to embed Real Time Clock (Raspberry Pi is one example of such devices). 
When these devices are re-plugged the initial time is set to January 1 1970.
Other devices that have clocks that may suffer from time deviation.
These devices cannot rely on their time estimation to perform DNSSEC validation.</t>

<t>Time synchronization may be performed manually, but for the sake of operations it is strongly RECOMMENDED to automate the time synchronization on each resolver.</t>

<t>START-UP REC:</t>

<t><list style="symbols">
  <t>DRO MUST provide means to update the time without relying on DNSSEC when the DNSSEC validator is started. 
The resolver MUST NOT start if the time synchronization does not succeed at start time.</t>
</list></t>

<t>Note that updating time in order to be able to perform DNSSEC validation may become a form of a chicken-and-egg problem when the NTP server is designated by its FQDN.
The update mechanisms must consider the DNSSEC validator may not able to validate the DNSSEC queries.<vspace />
In other words, the mechanisms may have to update the time over an unsecure DNSSEC resolution.</t>

<t>RUN TIME REC:</t>

<t><list style="symbols">
  <t>While operating, DRO MUST closely monitor time derivations of the resolvers and maintain the time synchronized.</t>
</list></t>

<t>ON DEMAND REC:</t>

<t><list style="symbols">
  <t>A DRO SHOULD be able to check and synchronize, on demand, the time of the system of its resolver.</t>
</list></t>

<t>Note that time synchronization is a sensible operation and DRO MUST update the time of the systems over an authenticated and secure channel.</t>

<t>For all recommendations, it is strongly RECOMMENDED that recommendations are supported by automated processes.</t>

</section>
<section anchor="ta" title="Trust Anchor Related Recommendations">

<t>A TA store maintains associations between domain names and keys (whether stored as in a DNSKEY resource record or a DS resource record) and domain names whose key are to be ignored (negative trust anchors).
The TA store is essentially a database, storing the (positive) trust anchors.
Management of the TA can be done manually or in an automated way.
Automatic management of the TA is RECOMMENDED and can be subdivided into the following sub-categories:</t>

<t><list style="numbers">
  <t><list style="hanging">
      <t hangText="Initial TA provisioning">
      that is the ability, for a DRO, to ensure a starting resolver is automatically provisioned with an up-to-date configuration.
This includes the TA associated to the trust model established by the DRO.</t>
    </list></t>
  <t><list style="hanging">
      <t hangText="TA update over time">
      while the trust model may not evolve, the cryptographic keys associated to the security entry points are subject to change and thus TA needs to be updated over time. A DRO needs to check TA updates properly.</t>
    </list></t>
  <t><list style="hanging">
      <t hangText="TA reporting">
      The reporting of the TA used by the resolver is  made to the DRO as well as the authoritative servers which are hold responsible for making their zone validated by DNSSEC resolvers.</t>
    </list></t>
</list></t>

<t>This section is only considering TA and not NTA. The handling of NTA is detailed in <xref target="nta"/>.</t>

<section anchor="boot" title="Trust Anchor Configuration">

<t>When a DRO starts a DNSSEC resolver, the DNSSEC resolver is provisioned with the TAs as part of its configuration.
As these TAs change over time, the DRO MUST ensures resolvers are always provisioned with up-to-date TAs and detect deprecated configuration.</t>

<t>To do so, the TA configuration is considered as a trusted model instantiated as follows:</t>

<t><list style="numbers">
  <t>Trust model definition
:The DRO defines the domain names that constitutes security entry point (TA) – see <xref target="trust-model-def"/> for more details.</t>
  <t><list style="hanging">
      <t hangText="Trust model bootstrapping">
      A bootstrapping procedure is applied to each TA to retrieve their TA values - that is the corresponding value of the key - in a trusted way. 
Such TA MAY have a specific format not understood by the resolver – see <xref target="trust-model-boot"/> for more details.</t>
    </list></t>
  <t><list style="hanging">
      <t hangText="DNSSEC resolver configuration generation">
      The TA with associated values are formatted appropriately for the DNSSEC resolver that will be instantiated. In many cases the appropriated format is the DNS RRset format - see <xref target="conf"/> for more details.</t>
    </list></t>
  <t><list style="hanging">
      <t hangText="DNSSEC resolver instantiation">
      The DNSSEC resolver is started, performs some checks before becoming operational, that is checking comp ability between provisioned TAs and those found online. 
These checks are implemented by the resolver and not really in scope of the DRO – see <xref target="instantiation"/> for more details.</t>
    </list></t>
</list></t>

<t>While these steps may require some some specific development for complex trust model, no additional deployment is required when using the default model where the root zone is defined as the only secure entry point. 
In such case, the trusted model bootstrapping is performed by software-update that relies on the code signing key of the software provider. 
The software provider also provides the configuration to the appropriated format and the checks at instantiation – see <xref target="iana-boot"/>.</t>

<section anchor="trust-model-def" title="Definition of the Trust model">

<t>The DRO defines its trust model by explicitly mentioning the domain name that constitutes security entry point as well as domain name that are known to be unsecured.</t>

<t>This document does not provide recommendations regarding the number of TA a DRO needs to configure its DNSSEC resolver with.
There are many reasons a DRO may be willing to consider multiple TAs as opposed to  a  single Root Zone Trust Anchor.
In fact it is not always possible to build a trusted delegation between the Root Zone and any sub zone.
This may happen, for example, if one of the upper zones does not handle the secure delegation or improperly implement it.
Typically, a DS RRset may not be properly filled or its associated signature cannot be validated.
As the chain of trust between a zone and the root zone may not be validated, the DNSSEC validation for the zone requires a TA.
Such DNS(SEC) resolutions may be critical for infrastructure management.
A company “Example” may, for example, address all its devices under the domain example.com and may not want disruption to happen if the .com delegation cannot be validated for any reasons.
Such companies may operate DNSSEC with a TA for the zone example.com in addition to the regular DNSSEC delegation.
Similarly some domains may present different views such as a “private” view and a “public view”.
These zones may have some different content, and may use a different KSK for each view.</t>

<t>The domain name chosen as security entry point may overlap themselves such as example.com and .com for example.
The TA associated to a domain name is determined by the longest match.
However, the trust model MUST at least ensure that any domain name in the DNS be related to a TA.
As the number of top level domains is evolving overtime, it remains safe to keep the root zone as a security entry point in order to cover the full domain name space.</t>

<t>The default trust model consists in the root zone as a security entry point, and no zones being considered as unsecured.</t>

</section>
<section anchor="trust-model-boot" title="Trust Model Bootstrapping">

<t>The purpose of the boostrapping step is clearly to securely retrieve DNSKEY as well as DS RRsets with a valid and authentic RDATA to implement the trust model (see <xref target="trust-model-def"/>).
Authentic data includes data that are up-to-date at the time these are requested, provided with securely and verified.
In particular the TA MUST NOT be retrieved from a local source that is not known to be up to date.
This typically includes software or any local store of data for which there is not a dedicated and automated updating system.
Similarly, TA MUST NOT be retrieved from untrusted communication such as a DNS resolution that cannot be verified or validated.</t>

<t>The authenticity of the RDATA is usually based on the authentication of the source which can take multiple forms, but the principle is that a chain of signature ends up being validated by a trusted key.
For TA that are not the root zone KSK, DNSSEC may be used to retrieve and validate the TA.
Note that such means to validate the authenticity, the TA as a subdomain mostly prevents potential disruptions of the parent domains.
In many cases, an alternative trusted source will be preferred such as TLS which is likely to rely on the Web PKI, or the signature of a file.</t>

<t>Although some bootstrapping mechanisms to securely retrieve publish <xref target="RFC7958"/> and retrieve <xref target="UNBOUND-ANCHOR"/> the Root Zone Trust Anchor have been defined, it is believed these mechanisms should be extended to other KSKs or Trust Anchors.
Such bootstrapping process enables a DRO to start a DNSSEC resolver from a configuration file, that reflects the trust model of the DRO.</t>

<t>START-UP REC:</t>

<t><list style="symbols">
  <t>DRO SHOULD only rely on TA associated with a bootstrapping mechanism.</t>
</list></t>

<section anchor="iana-boot" title="IANA Trust Anchor Bootstrapping">

<t>For validators that may be used on the global public Internet (with “may be” referring to general purpose, general release code), handling the IANA managed root zone KSK trust anchor is a consideration.</t>

<t>The IANA managed root zone KSK is an operationally significant trust point in the global public Internet.
Attention to the trust anchor for this point is paramount.
Trust anchor management ought to recognize that the majority of operators deploying DNSSEC validators will need to explicitly or implicitly rely on this trust anchor.
Trust anchor management needs to recognize that there may be other trust anchors of interest to operators.
Besides deployments in networks other than the global public Internet (hence a different root), operators may want to configure other trust points.</t>

<t>The IANA managed root zone KSK is managed and published as described in “DNSSEC Trust Anchor Publication for the Root Zone” <xref target="RFC7598"/>.
That document is written as specific to that trust point.
Other trust points may adopt the technique describe (or may use other approaches).</t>

<t>This represents a consideration for implementations.
On one hand, operators will place special emphasis on how the root zone DNSSEC KSK is managed.
On the other hand, implementations  ought to accommodate trust anchors in a general manner, despite the odds that other trust anchors will not be configured in a specific deployment.</t>

<t>Because of this, it is recommended that implementations make the root zone trust anchor obvious to the operator while still enabling configuration of general trust points.</t>

</section>
</section>
<section anchor="conf" title="Configuration Generation">

<t>The generation of a configuration file associated to the TA is expected to be implementation independent.
The necessity of tweaking the data depending of the software implementer or eventually the software version introduces a vector for configuration errors.</t>

</section>
<section anchor="instantiation" title="DNSSEC Resolver Instantiation">

<t>START-UP REC:</t>

<t><list style="symbols">
  <t>DNS resolver MUST validate the TA before starting the DNSSEC resolver, and a failure of TA validity check MUST prevent the DNSSEC resolver to be started. Validation of the TA includes coherence between out-out band values, values stored in the DNS as well as corresponding DS RRsets.</t>
</list></t>

</section>
</section>
<section anchor="trust-anchor-update" title="Trust Anchor Update">

<t>Updating the TA reflects the evolution of the trust.
It is important to understand that this section does not consider the trust model to be updated by the DRO.
This has been defined in section <xref target="boot"/>.
Instead, it considers the evolution over time of the instantiation of the trust model, that is the update of the values associated to the TA.
Such updates need to be operated in a reliable and trusted way.</t>

<t>The value associated to the TA may be updated over time which is part of the maintenance of the configuration and needs to be performed by the DNSSEC resolver without any intervention of the DRO. This is the purpose of this section.</t>

<t>TA update is expected to be transparent to the DRO (see <xref target="automated-update-ta"/>.
However, a DRO MAY wish to ensure its resolvers operate according to the provisioned configurations and are updated normally (see <xref target="automated-ta-check"/>.
This includes for a DRO the ability to check which TA are in used as well as to resolve in collaboration of authoritative servers and report the used TAs.</t>

<section anchor="automated-update-ta" title="Automated Updates to DNSSEC Trust Anchors">

<t>Trust is inherently a matter of an operations policy.
As such, a DRO will need to be able to update the list of Trust Anchors.
TA updates are not expected to be handled manually.
This introduces a potentially huge vector for configuration errors, due to human intervention as well as potential misunderstanding of ongoing operations.</t>

<t>START-UP REC:</t>

<t><list style="symbols">
  <t>DRO SHOULD enable “Automated Updates to DNSSEC Trust Anchors” <xref target="RFC5011"/> <xref target="I-D.ietf-dnsop-rfc5011-security-considerations"/>.</t>
</list></t>

</section>
<section anchor="automated-ta-check" title="Automated Trust Anchor Check">

<t>A DRO SHOULD regularly check the trust anchor used by the DNSSEC resolver is up-to-date and that values used by the resolvers are conform to the ones in the configuration (see <xref target="boot"/>).
Such check is designated as TA health check.</t>

<t>Note that retrieving in an automated way the value of the TA removes old values from the configuration and ensures that resolvers are always started with up-to-date values.
In the case of a key roll over, the resolver is moving from an old value to an up-to date value.
This up-to-date value does not need to survive reboot, and there is no need to update the configuration file of the running instances - configuration is updated by a separate process.
To put it in other words, the updated value of the TA is only expected to be stored in the resolver’s memory.
Avoiding the configuration file to be updated prevents old configuration file to survive to writing error on read-only file systems.</t>

<t>The TA used by a resolver may be part of a configuration parameter as well as part of an internal state of the resolver.
It is NOT RECOMMENDED a DRO accesses configuration or internal state of a resolver  as it may open the resolver to other vulnerabilities and provides privileged access to a potential attacker.</t>

<t>START-UP REC:</t>

<t><list style="symbols">
  <t>DRO SHOULD enable “Signaling Trust Anchor Knowledge in DNS Security Extensions (DNSSEC)” <xref target="RFC8145"/> to provide visibility to the TA used by the resolver.
The TA can be queried using a DNSKEY query. The channel MAY be protected and restricted to the DRO.</t>
</list></t>

<t>Note also that <xref target="RFC8145"/> does not only concern Trust Anchor but is instead generic to DNSKEY RRsets.
As a result, unless for the root zone, it is not possible to determine if the KSK/ZSK or DS is a Trust Anchor or a KSK/ZSK obtained from regular DNSSEC resolutions.</t>

<t>TA health check includes validating DNSKEY RRsets and associated DS RRsets in the resolver, on the DNS authoritative servers  as well as those obtained out-of-band.
TA health check results MUST be logged.
The check SHOULD evaluate if the mismatch resulted from an ongoing normal roll over, a potential emergency key roll over, failed roll over or any other envisioned cases.
Conflicts are not inherently a problem as some keys may be withheld from distribution via the DNS.
A failed key roll over or any other abnormal situation  MUST trigger an alarm.</t>

<t>RUN TIME REC:</t>

<t><list style="symbols">
  <t>A DRO SHOULD regularly run TA health checks.</t>
</list></t>

<t>If the mismatch is due to a failed key roll-over, this SHOULD be considered as a bug by the DRO.
The DRO MUST restart the resolver with updated TA.</t>

<t>ON DEMAND REC:</t>

<t><list style="symbols">
  <t>A DRO SHOULD be able to check the status of a TA as defined in Section 3 of <xref target="RFC7583"/>.</t>
</list></t>

</section>
</section>
</section>
<section anchor="nta" title="Negative Trust Anchors Related Recommendations">

<t>When the DNSSEC Resolver is not able to validate signatures because a key or DS has been published with an error, the DNSSEC Operator MAY temporarily disable the signature check for that key until the time the error is addressed.
This is performed using NTA<xref target="RFC7646"/>.
NTA represents the only permitted intervention in the resolving process for a DRO.</t>

<t>NTA are considered as temporary fix for a known unsecured domain, which is different from an TA that would not be trusted.
The designation of NTA might be misleading, but NTA are not expected to be part of the trust model.
This does not prevent a DRO to provision NTA as a configuration parameters NTA. 
The management of the configuration SHOULD be automated as described in <xref target="boot"/>.</t>

<t>Handling NTA is described in <xref target="RFC7646"/> and a DRO SHOULD follow these guidelines. The intent of this section is to position these guidelines toward the operational recommendations provided in this document.</t>

<t>START-UP REC:</t>

<t><list style="symbols">
  <t>DRO SHOULD be able to automatically configure NTA when starting DNSSEC resolvers.</t>
</list></t>

<t>ON DEMAND REC:</t>

<t><list style="symbols">
  <t>DRO SHOULD set automated procedures to determine the NTA of DNSSEC resolvers.</t>
  <t>DRO SHOULD be able to handle NTA as defined in <xref target="RFC7646"/>.</t>
</list></t>

<t>Note that adding a Negative Trust Anchor only requires the domain name to be specified. 
Note also that NTA can disable any sort of DNSKEY and is not restricted to TA.</t>

<t>A failure in signaling validation is associated to a mismatch between the key and the signature.
DNSKEY/DS RRsets for TA have a higher level of trust then regular KSK/ZSK.
In addition, DRO are likely to have specific communication channel with TA maintainer which eases trouble shooting.</t>

<t>A signature validation failure is either an attack or a failure in the signing operation on the authoritative servers.
The DRO is expected to confirm this off line before introducing the NTA.
This is likely to happen via a human confirmation. As a result here are the
following recommendations:</t>

<t>RUN TIME REC:</t>

<t><list style="symbols">
  <t>DRO SHOULD monitor the number of signature failure associated to each DNSKEY. 
These number are only hints and MUST NOT trigger automated insertion of NTA.</t>
  <t>A DRO MAY collect additional information associated each DNSKEY RRSets.
This information may be useful to follow-up roll over when these happen and evaluate when a key roll over is not performed appropriately on the resolver side or on the authoritative server.
It would provide some means to the DRO to take action with full knowledge without necessary asking for a confirmation.
In other cases it could prevent invalidation to happen.
These check may be performed for a limited subset of domains or generalized.</t>
</list></t>

</section>
<section anchor="zsk-ksk-non-ta-related-recommendations" title="ZSK / KSK (non TA) Related Recommendations">

<t>KSK / ZSK are not part of the DNSSEC validator configuration.
Their values in the DNS Caches may not reflect those published by the authoritative servers or may be incoherent with the RRset in the DNS Cache they are validating.
However, such incoherence primary results from error in the management of the authoritative servers.
As a result, it is not expected that the DNSSEC validator provides complex management facilities to address these issues as this will modify the DNS architecture and add complexity that is not proved to be beneficial.
As a result, recommendations always belong to the run time or on demand recommendations. 
The main difference between TA and KSK/ZSK is that the DRO does not necessarily have an out of band mechanism to retrieve the RRsets.
As a result, the DRO has less information to determine and confirm what is happening. 
The default recommendation is to let things go.</t>

<t>A number of reasons may result in inconsistencies between the RRsets stored in the cache and those published by the authoritative server.</t>

<t>An emergency KSK / ZSK rollover may result in a new KSK / ZSK with associated new RRSIG published in the authoritative zone, while DNSSEC validator may still cache the old value of the ZSK / KSK.
For a RRset not cached, the DNSSEC validator performs a DNSSEC query to the authoritative server that returns the RRset signed with the new KSK / ZSK.
The DNSSEC validator may not be able to retrieve the new KSK / ZSK while being unable to validate the signature with the old KSK / ZSK.
This either results in a bogus resolution or in an invalid signature check.
Note that by comparing the Key Tag Fields, the DNSSEC validator is able to notice the new KSK / ZSK used for signing differs from the one used to generate the received generated signature.
However, the DNSSEC validator is not expected to retrieve the new ZSK / KSK, as such behavior could be used by an attacker.
Instead, ZSK / KSK key roll over procedures are expected to avoid such inconsistencies.</t>

<t>Similarly, a KSK / ZSK roll over may be performed normally, that is as described in <xref target="RFC6781"/> and <xref target="RFC7583"/>.
While the KSK / ZSK roll over is performed, there is no obligation to flush the RRsets in the cache that have been associated with the old key.
In fact, these RRsets may still be considered as trusted and be removed from the cache as their TTL timeout.
With very long TTL, these RRsets may remain in the cache while the ZSK / KSK with a shorter TTL is no longer published nor in the cache.
In such situations, the purpose of the KSK / ZSK used to validate the data is considered trusted at the time it enters the cache, and such trust may remain after the KSK / ZSK is being rolled over.
Note also that even though the data may not be associated to the KSK / ZSK that has been used to validate the data, the link between the KSK / ZSK and the data is still stored in the cache using the RRSIG.
Note also that inconsistencies between the ZSK / KSK stored in the cache and those published on the authoritative server, may lead to inconsistencies to downstream DNSSEC validators that rely on multiple cache over time.</t>

<t>Typically, a request for the KSK / ZSK may have been provided by a cache that is storing the new published value, while the data and associated signatures may be associated to the old KSK / ZSK.</t>

<t>Incoherence between RRsets and DNSKEYs is not the responsibility of the DRO. 
Instead, it is the responsibility of authoritative server publishing these data.
This includes insuring the coherence between TTLs and signature validation periods as well as small variations of the resolvers clocks.
Section 4.4.1 of <xref target="RFC6781"/> provides some recommendations that can be implemented by the authoritative server which puts the responsibility of failure of signature validation under the responsibility of the authoritative server.
A DRO MAY however limit the risks for these inconsistencies to happen by configuring the DNSSEC validator with generic rules that applies to the validation process.
Typically, the TTL associate to the DNSKEY is an engagement from the authoritative server that the DNSKEY will remain valid over this period.
As this engagement supersedes the validation of any RRSIG and by extension to any RRset in the zone, this TTL value may be used as the maximum value for the TTL associated to FQDNs in the zone.
Section 8.1 of <xref target="RFC4033"/> mention the ability by the resolver to set the upper bound of the TTL to the remaining signature validity period.
This would at least reduce inconsistencies during regular KSK roll over.
In addition, the DNSSEC validator should also be able to provide a maximum values for TTLs.
These values MAY also consider the small inaccuracy of the local clock.</t>

<t>RUN TIME REC:</t>

<t><list style="symbols">
  <t>To limit the risks of incoherent data in the cache, it is RECOMMENDED DRO enforce TTL policies of RRsets based on the TTL of the DS, KSK and ZSK.
RRsets TTL SHOULD NOT exceed the DS, KSK or ZSK initial TTL value, that TTL SHOULD trigger delegation revalidation as described in <xref target="I-D.ietf-dnsop-ns-revalidation"/>.
TTL SHOULD NOT exceed the signature validity.</t>
</list></t>

</section>
<section anchor="dnskey-related-recommendations" title="DNSKEY Related Recommendations">

<t>This section considers the recommendations that are common to TA as well
as non TA DNSKEY RRsets.</t>

<section anchor="automated-reporting" title="Automated Reporting">

<t>A DRO MAY regularly report the Trust Anchor used to the authoritative server.
This would at least provide insight to the authoritative server and provide some context before moving a key roll over further.</t>

<t>The purpose of reporting the currently used Trust Anchor for a domain name is to establish an informational channel between the resolver and the authoritative server.
This data may not directly be useful for the DNSSEC Resolver, but instead to the authoritative server.
In return it is likely the authoritative server will take the appropriate steps in operating the authoritative server and consider this information.
This results in the following recommendation:</t>

<t>RUNNING REC:</t>

<t><list style="symbols">
  <t>A DRO SHOULD enable TA reporting to the authoritative server as specified in “Signaling Trust Anchor Knowledge in DNS Security Extensions (DNSSEC)” <xref target="RFC8145"/></t>
</list></t>

</section>
<section anchor="interactions-with-the-cached-rrsets" title="Interactions with the cached RRsets">

<t>The purpose of automated checks is to enable early detection of failed operations, which provides enough time to the DRO to react without any consequences. 
On the other hand, these checks MAY reveal as well that a rogue TA has been placed and that the resolver is corrupted.
Similarly, a DRO may be informed by other channel a rogue or unwilling DNSKEY has been emitted.</t>

<t>In such situation, the DRO SHOULD be able to remove the RRsets validated by the rogue DNSKEY.</t>

<t>ON DEMAND REC:</t>

<t><list style="symbols">
  <t>A DRO MUST be able to flush the cached data associated to a DNSKEY</t>
</list></t>

</section>
</section>
<section anchor="cryptography-deprecation-recommendations" title="Cryptography Deprecation Recommendations">

<t>As mentioned in <xref target="RFC8247"/> and <xref target="RFC8221"/> cryptography used one day is expected over the time to be replaced by new and more robust cryptographic mechanisms.
In the case of DNSSEC signature protocols are likely to be updated over time.
In order to anticipate the sunset of one of the signature scheme, a DNSSEC validator may be willing to estimate the impact of deprecating one signature scheme.</t>

<t>Currently <xref target="RFC6975"/> provides the ability for a DNSSEC validator to announce an authoritative server the supported signature schemes.
However, a DNSSEC validator is not able to determine other than by requesting and monitoring DNSKEY RRsets as well as RRSIG.
These RRsets are received by enabling DNSSEC validation by default which is obviously the case for DNSSEC validator.</t>

<t>To safely deprecate one signature scheme, the DNSSEC validator operator is expected to follow the recommendation below:</t>

<t>RUN TIME REC:</t>

<t><list style="symbols">
  <t>A DRO SHOULD regularly request and monitor the signature scheme supported by  an authoritative server.</t>
  <t>A DRO SHOULD report a “Unsupported DNSKEY Algorithm” as defined in <xref target="RFC8914"/>  when a deprecated algorithm is used for validation.</t>
</list></t>

</section>
<section anchor="invalid-reporting-recommendations" title="Invalid Reporting Recommendations">

<t>A DNSSEC validator receiving a DNS response cannot make the difference between receiving an non-secure response versus an attack.
Dropping DNSSEC fields by a misconfigured middle boxes, such as DS, RRRSIG is considered as an attack.
A DNSSEC validator is expected to perform secure DNS resolution and as such protects its stub client.
An invalid response may be the result of an attack or a misconfiguration, and the DNSSEC validator may play an important role in sharing this information with the authoritative server or domain name owner.</t>

<t>RUN TIME REC:</t>

<t><list style="symbols">
  <t>DRO SHOULD monitor and report DNSSEC validation error.
Reporting may take various means but the DRO SHOULD implement <xref target="RFC8914"/> to inform the DNS client.</t>
</list></t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>There are no IANA consideration for this document.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>The recommendations listed in this document have two goals.
First ensuring the DNSSEC validator has appropriated information to appropriately perform DNSSEC validation.
Second, monitoring the necessary elements that would enable a DNSSEC validator operator to ease a potential analysis.
The recommendations provide very limited ability for a DNSSEC validator operator to alter or directly interfere on the validation process and the main purpose in providing the recommendations was to let the protocol run as much as possible. 
Providing inappropriate information can lead to misconfiguring the DNSSEC validator, and thus disrupting the DNSSEC resolution service.
As a result, enabling the setting of configuration parameters by a third party may open a wide surface of attacks. 
In addition, such changes may lead to unexpected corner cases that would result in making analysis and trouble shooting very hard.</t>

<t>As an appropriate time value is necessary to perform signature check, an attacker may provide rogue time value to prevent the DNSSEC validator to check signatures.</t>

<t>An attacker may also affect the resolution service by regularly asking the DNSSEC validator to flush the KSK/ZSK from its cache.<vspace />
All associated data will also be flushed. 
This generates additional DNSSEC resolution and additional validations, as RRSet that were cached require a DNSSEC resolution over the Internet. 
This affects the resolution service by slowing down responses, and increases the load on the DNSSEC validator.</t>

<t>An attacker may ask the DNSSEC validator to consider a rogue KSK/ZSK, thus hijacking the DNS zone. Similarly, an attacker may inform the DNSSEC validator not to trust a given KSK in order to prevent DNSSEC validation to be performed.</t>

<t>An attacker (cf.  Section 7) can advertise a “known insecure” KSK or ZSK is “back to secure” to prevent signature check to be performed correctly.</t>

<t>As a result, information considered by the DNSSEC validator should be from a trusted party.  This trust party should have been authenticated, and the channel used to exchange the information should also be protected and authenticated.</t>

<t>The software used for DNSSEC validator is not immune to bugs and may become vulnerable independently of how it is operated.
As a result a DRO SHOULD NOT depend on a single implementation or version of a given software and SHOULD instead run at least two independent pieces of software.</t>

</section>
<section anchor="contributors" title="Contributors">

<t>We would like to thank very much Edward Lewis without who the document might probably not exist.</t>

</section>
<section anchor="acknowledgment" title="Acknowledgment">

<t>The need to address DNSSEC issues on the resolver occured during multiple discussions   including among others Ted Lemon, Ralph Weber,
Normen Kowalewski, Mikael Abrahamsson, Jim Gettys, Paul Wouters, Joe Abley and Michael Richardson.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC8174;
&RFC4033;
&RFC4035;
&RFC7646;
&RFC5011;
&RFC8145;
&RFC7583;
&RFC6781;
&I-D.ietf-dnsop-ns-revalidation;
&RFC8247;
&RFC8221;
&RFC6975;
&RFC8914;


    </references>

    <references title='Informative References'>

<reference anchor="UNBOUND-ANCHOR" target="https://nlnetlabs.nl/documentation/unbound/unbound-anchor/">
  <front>
    <title>unbound-anchor - Unbound anchor utility</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="ENT" target="https://indico.dns-oarc.net/event/25/contributions/403/attachments/378/647/AFNIC_OARC_Dallas.pdf">
  <front>
    <title>ENT was here !!!</title>
    <author initials="V." surname="Levigneron" fullname="Vincent Levigneron">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
&RFC7958;
&RFC7598;
&I-D.ietf-dnsop-rfc5011-security-considerations;


    </references>



  </back>

<!-- ##markdown-source:
H4sIAN2JfmIAA7V9/ZbbxpXn/3wKpHXORtqQlGXLkawzuztttRwrslpKdys+
mT/GBySLJNIgwEUBTTGy8izzLPNkez+rbgGgpMxk+yRWNwkU6uN+39+9mM1m
k0lbtKV7ll25Zb3buWqVt0Vd+WxdN9nF5fX1i+fwla/LO9f47M3eNXlbN36S
LxaNu3uWXVy96d86WdXLKt/BmKsmX7ezwrXr2ary9R7/691ydpeXxQrHmTXu
/3ZF4+Dm1s++ejSZFPvmWdY2nW+//uqr7776epI3Ln+W1fRgGD0vJ4cNjIzD
TW4Pz7KXVeuayrWzC3zYZJm3z7KiWteTyb54NsmyZr10K98ecY1H5+GTtl6a
X4tqBQ/XD3zdtI1b+/D3cZf82TbFMlzMq27Dt0VVFlV4DOzCLt/vi2rDn0zy
rt3WDc4Jf2byL94GI1zMs9fFJu/KNnzOe3iRV4UrB1/WDQz7AmbjfV2FT2F+
zsH8nn795NvspsnhHJ/nVb7Ks6u6a124blm0x2fZdV5UbfZT3jWwimn2p+fx
+3oFj358nX31/e/Nh13VNnAfDxk+d7u8KOFIaKLzHU/0X53MbQ67dHLJf6mb
2+F6049ppS+v3zzvrzL8PUvXNfY5rmf0c17SyFeyqiNM5V8LXy/nMA8gT6Cs
ZgeUeEfjvbv8/s27y4vZ+eXzH99c8TD2mNu82eB5bNt27589fFiVQKllvvDz
qnwIBNIh/RBdP+yqBUxmpf/O8moJwzzkYZhF06+yWfaOP8jkg64tStgAuOXF
5c1wMrrDfy6qpcODd3fFpnKN0E9/rsAYxbKeA6fN6rxZzmHmD90d3Pjw628f
LmvYt2LREcM/fPzVNw/zts2XW+KHh988efrw94+fPDz/4fLl81/enF89/+Ui
L8vcz/ertV0RzDM75D7busZlv/nNbyb0M5vNMtijtsmX7WRys3UoiLJrt+wa
WF724n3rKk9C6j5LqAfZyq2B9bI82zf10nkWXyJmgAOzxi0dnNlqAn/nsF+w
ZyCJmjZrt25HuwQTL5b0DRDsvnQtjOZB7uxr71YgKCYw4sat5jihwmd6eNmy
zJtiXTiPQ2V+CZKKRmmc38MUiwWeCX5dryc9eRrFKSzk6s0DfODBlSX+ayUe
zj4RsO02b1U4B1nq5Rb87frHN+9+usj2XQuslu3LfOnwl7pZwVNhLQWukKbv
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

-->

</rfc>

