<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.26 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-johani-tld-zone-pipeline-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="TLD Zone Pipeline Requirements">TLD Zone Pipeline: Requirements And Design Principles</title>
    <seriesInfo name="Internet-Draft" value="draft-johani-tld-zone-pipeline-00"/>
    <author initials="J." surname="Stenstam" fullname="Johan Stenstam">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <email>johan.stenstam@internetstiftelsen.se</email>
      </address>
    </author>
    <author initials="J." surname="Schlyter" fullname="Jakob Schlyter">
      <organization>Kirei AB</organization>
      <address>
        <email>jakob@kirei.se</email>
      </address>
    </author>
    <date/>
    <area>Internet</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>Today most TLD registries publish DNSSEC signed zones. The sequence of steps
from generating the unsigned zone, via DNSSEC signing and various types of
verification is referred to as the "zone pipeline".</t>
      <t>The robustness and correctness of the zone pipeline is of crucial
importance and the zone pipeline is one of the most critical parts of
the operations of a TLD registry.</t>
      <t>After a serious incident in 2022, the .SE Registry decided to re-evaluate the
requirements on the zone pipeline. This has led to several new design
choices and a decision to create a more robust implementation from scratch.</t>
      <t>The goal of this document is to describe the requirements that the
.SE Registry choose in preparation for the implementation of the new zone
pipeline. The document also describes some of the design consequences that
follow from the requirements. Hence this document is intended to work as a
guide for understanding the actual implementation, which is planned to be
released as open source.</t>
      <t>TO BE REMOVED: This document is being collaborated on in Github at:
<eref target="https://github.com/johanix/draft-johani-tld-zone-pipeline">https://github.com/johanix/draft-johani-tld-zone-pipeline</eref>.
The most recent working version of the document, open issues, etc. should all be
available there.  The authors (gratefully) accept pull requests.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/johanix/draft-johani-tld-zone-pipeline"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Today most TLD registries publish DNSSEC signed zones. This typically
leads to a zone production "pipeline" that consists of several steps,
including generation of the unsigned zone, signing of the zone and
various types of verifications that the zone is correct before
publication on the Internet.</t>
      <t>In some cases, including the .SE Registry, the zone pipeline was not
the result of a clear requirements process, nor was it the result of a
concious design and implementation. Rather, it was the result of
combining various tools in a mostly ad-hoc way that achieved the goal
of moving the zone via signing and verifications towards publication.</t>
      <t>When a critical part of the operation of a TLD registry is the result
of an ad-hoc process there are likely to be hidden risks. That was the
case for the .SE registry, which had a serious incident in February
2022. Because of that incident, .SE decided to re-evaluate the
requirements on the zone pipeline and then create a more robust
implementation from scratch.</t>
      <t>This document aims to describe the requirements for zone production
(also known as "zone pipeline") that the .SE Registry choose in
preparation for the implementation of the new zone pipeline. It is
developed for the needs of the .SE and .NU TLD Registries, but the
conclusions are intended to be generally applicable.</t>
      <section anchor="requirements-notation">
        <name>Requirements Notation</name>
        <t>The key words "<strong>MUST</strong>", "<strong>MUST NOT</strong>", "<strong>REQUIRED</strong>", "<strong>SHALL</strong>",
"<strong>SHALL NOT</strong>", "<strong>SHOULD</strong>", "<strong>SHOULD NOT</strong>", "<strong>RECOMMENDED</strong>",
"<strong>NOT RECOMMENDED</strong>", "<strong>MAY</strong>", and "<strong>OPTIONAL</strong>" 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>
    <section anchor="purpose">
      <name>Purpose</name>
      <t>A TLD Registry has a total responsibility towards society and the
Internet community to ensure, at any given time, public access to
correct versions of the DNS zones under their management. In order to
meet this commitment, three components are essentially required:</t>
      <ul spacing="normal">
        <li>Generation of unsigned zones from the Registry System.</li>
        <li>Quality control and signing of the zones.</li>
        <li>Publication of resulting signed zones.</li>
      </ul>
      <t>The first step is handled by the Registry System. The third step is
handled by a combination of external providers of authoritative DNS
handledservice and in-house DNS service. Both of these steps are out-of-scope
for this document</t>
      <t>The sole purpose of this document is to provide a correct set of
requirements for the second step, between zone generation in the
Registry System and zone publication on the public Internet.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Well lit</dt>
        <dd>
          <t>Software or other system that is successfully used in production, similar to our needs, in a large number of other places around the world.</t>
        </dd>
        <dt>Upstream</dt>
        <dd>
          <t>Further up in the zone pipeline, i.e. in the direction of the Registry System.</t>
        </dd>
        <dt>Downstream</dt>
        <dd>
          <t>Further down the zone pipeline, i.e. towards the public Internet.</t>
        </dd>
      </dl>
    </section>
    <section anchor="basic-design-principles">
      <name>Basic Design Principles</name>
      <t>A number of fundamental principles are defined for the design of the
system. The intention of these principles is to minimize the risk that
the zone data (as generated by the Registry System) can somehow change
at any stage through the zone pipeline.</t>
      <ul spacing="normal">
        <li>
          <t>Critical path for zone data must be via proven and well-reviewed
standard software. This critical path is called the "zone pipeline".  </t>
          <t>
Rationale: Using well-established software used by others in the
industry reduces development needs for the Registry. By not being
critically dependent on self-developed software, the dependence on
individuals is reduced.</t>
        </li>
        <li>
          <t>Standardized protocols shall be used as far as possible.  </t>
          <t>
Rationale: Individual components must be replaceable as easily as
possible.</t>
        </li>
        <li>
          <t>Consequences of inaccuracies in custom software must be limited as far
as possible and must never affect published zone data.  </t>
          <t>
Rationale: Obvious opportunities for risk minimization of a critical
system within the business.</t>
        </li>
        <li>
          <t>Verification, signing and publication of the zone must be able to take
place independently and without dependence on infrastructure outside
the operating facility.  </t>
          <t>
Rationale: The ability to always maintain and publish an updated
zone is the most important responsibility of the Registry. To ensure
the ability to always maintain this ability the zone production must
be self-contained.</t>
        </li>
      </ul>
    </section>
    <section anchor="interface-to-the-registry">
      <name>Interface to the Registry</name>
      <t>Interface to the Registry System must be done according to
standardized protocols. This requirement has the following
consequences:</t>
      <ul spacing="normal">
        <li>Zone data must be retrieved from the Registry System using AXFR and
IXFR <xref target="RFC5936"/>.</li>
        <li>The request for publication of new zone data must be notified with DNS
NOTIFY <xref target="RFC1995"/>.</li>
        <li>Zone data published by the Registry System must contain a checksum in
the form of ZONEMD <xref target="RFC8976"/>.</li>
      </ul>
    </section>
    <section anchor="local-updates">
      <name>Local Updates</name>
      <t>During normal operation, no changes to the zone data retrieved from
the Registry may take place. However, there may be situations where
the Registry is not reachable (nor is it expected to be reachable
within a reasonable time) and where local updates of zone data must be
able to be carried out. This can for example,. be redirection of
socially important infrastructure.</t>
      <t>In a crisis situation (emergency operation), zone updates must be able
to take place locally. Updates that take place in this way are
introduced into regular systems as soon as possible. Return to normal
operation may only take place after all changes made during emergency
operation have been introduced into the regular system.</t>
      <t>Local updates must be applied using a strict and traceable method. It
must be clear at all times whether local updates have been applied,
what these are and who requested them.</t>
      <t>In cases where local updates have taken place, ZONEMD must be updated.</t>
      <t>N.B. Local updates are an extraordinary measure and must not be used
except in emergency situations. Procedures for who may request these
are decided by the Internet foundation's crisis management.</t>
    </section>
    <section anchor="ingress-verification">
      <name>Ingress Verification</name>
      <t>Before signing, a number of checks must be performed on the zone
contents. The reason why checking must take place before signing is to
ensure that the zone being signed is always correct and can thus
continue to be re-signed in the event of problems upstream. The exact
checks to be carried out are set out in a separate specification and
are subject to local policy.</t>
      <section anchor="requirements-on-ingress-verification">
        <name>Requirements on ingress verification</name>
        <ul spacing="normal">
          <li>The ingress verification must prevent an updated incorrect zone from
being signed. An already approved previous version of the zone must
continue to be signed until a new zone is approved.</li>
          <li>New zone controls must be able to be added without the component for
ingress verification of zone data needing to be redesigned</li>
          <li>The interface from the zone pipeline to the ingress verification
function must be DNS AXFR. This means that all controls must
logically sit to the side and not be part of the critical
path. I.e. the verification code is not part of the zone pipeline.</li>
          <li>All zone controls, self-developed or imported, must have local
ownership within the organization.</li>
        </ul>
      </section>
      <section anchor="examples-of-ingress-verification-checks">
        <name>Examples of ingress verification checks:</name>
        <ul spacing="normal">
          <li>Check that the zone data is complete.</li>
          <li>Check that delegation information for the zone itself is correct.</li>
          <li>Check that the delta (i.e. the difference) between the current zone
and the previous version is within approved limits.</li>
          <li>Check that certain crucial records are present and correct (the
zone's SOA record is one example).</li>
        </ul>
      </section>
    </section>
    <section anchor="signing">
      <name>Signing</name>
      <t>The task of the signing step is to keep an approved and received zone
signed for an arbitrary length of time until a new zone is received
from upstream (i.e. from Registry via Ingress Verification).</t>
      <section anchor="key-management">
        <name>Key management</name>
        <t>The following requirements apply to the management of cryptographic
keys for signing zone data:</t>
        <ul spacing="normal">
          <li>The key material must be stored and used
in an HSM that meets the security requirements set by the CISO.</li>
          <li>The interface for accessing the key material shall be PKCS#11.</li>
          <li>All keys must, to facilitate replication between different signing
entities, be generated in advance.In order to facilitate replication
between different signing entities, all keys must be generated in
advance.</li>
          <li>Exchange of KSK can be initiated automatically or manually, and is
automatically terminated when the DS record in the parent zone is
updated (after according to an appropriate safety margin).</li>
          <li>Changing the KSK may only be completed if the DS record in the
parent zone is updated.</li>
          <li>Replacement of ZSK must be done automatically.</li>
        </ul>
      </section>
      <section anchor="zone-signing">
        <name>Zone signing</name>
        <t>The following requirements apply to signing zone data:</t>
        <ul spacing="normal">
          <li>Signing must be done using key material via PKCS#11.</li>
          <li>The signing function must support algorithm rollover, e.g,. from RSA/SHA-256 to ECC/P-256/SHA-256.</li>
          <li>Signing must be done with either NSEC or NSEC3 semantics.</li>
          <li>If NSEC3 salt is used, the salt must be periodically changed automatically.</li>
          <li>Change of DNSSEC signing semantics from NSEC to NSEC3 and vice versa
must be possible automatically.</li>
          <li>Previous signatures that are valid within a configurable time window
shall be reused when re-signing, in order to reduce the rate of
change on the zone.</li>
          <li>The signing function shall recreate the ZONEMD RR per <xref target="RFC8976"/> after
the zone has been signed.</li>
        </ul>
      </section>
    </section>
    <section anchor="egress-verification">
      <name>Egress Verification</name>
      <t>After signing, several checks must be performed on the zone contents.
Apart from the obvious validation of generated DNSSEC signatures it is
also important to ensure that the signing step only added DNSSEC-
information without in any way modifying the unsigned data.</t>
      <section anchor="requirements-on-egress-verification">
        <name>Requirements on egress verification</name>
        <ul spacing="normal">
          <li>All generated DNSSEC signatures (RRSIG records) must be validated.</li>
          <li>The NSEC (or NSEC3) chain must be verified to be complete.</li>
          <li>The non-DNSSEC content of the signed zone must be provably identical
to the corresponding unsigned zone that entered the signing step.</li>
        </ul>
      </section>
    </section>
    <section anchor="distribution">
      <name>Distribution</name>
      <t>The following requirements apply to distribution of the signed zone:</t>
      <ul spacing="normal">
        <li>The signed zone must be retrieved from signing and egress
verification to the distribution points with AXFR (not IXFR).</li>
        <li>The signed zone shall be distributed to the designated authoritative
name server services using AXFR/IXFR.</li>
        <li>To reduce convergence time towards the public Internet, the signed
zone must be distributed with IXFR as far as possible.</li>
        <li>At least two complete zone publishing chains must be operational and
always active.</li>
        <li>Choice of zone publishing chain is an active configuration choice
in each distribution point and must always be the same for all
distribution points.</li>
        <li>The signed zone from the selected zone publishing chain must be
 retrieved by all distribution points in all operating facilities.</li>
      </ul>
    </section>
    <section anchor="resulting-design-consequences">
      <name>Resulting Design Consequences</name>
      <ul spacing="normal">
        <li>The requirement on being able to prove that no unsigned data has
been modified during signing is most efficiently fullfilled by
computing the ZONEMD checksum on the unsigned data after signing
(i.e. the signed zone modulo the DNSSEC related records DNSKEY,
RRSIG. NSEC, NSEC3, NSEC3PARAM, apex CDS and CDNSKEY) and comparing
that to the ZONEMD checksum for the corresponding unsigned zone.</li>
        <li>The ZONEMD checksums need to be stored outside the zone pipeline,
indexed by the unsigned zone that each checksum corresponds to.</li>
        <li>The signed zone may (and will) change the SOA Serial independently
of the unsigned zone. For this reason the ZONEMD checksums can not
be stored using the SOA Serial as the index. Therefore a separate,
unique, identifier is attached to each new version of the zone as a
TXT record. A UUID is used as the identifier.</li>
        <li>Each unsigned zone MUST have a ZONEMD and a UUID index to store it
under. Therefore changes to the unsigned zone via the local update
facility must update the UUID in addition to any other change that
is executed.</li>
        <li>The Registry runs multiple, parallel zone pipelines for the same
zone with the requirement to be able to switch which pipeline is
"active" at any time. As the local update facility is responsible
for updating the UUID if a local change is needed, the same UUID
will identify the exact same zone in all pipelines.</li>
        <li>The requirement that the zone pipeline only consists of proven and
widely used software forces all local and custom software (including
various tests and verification modules) to be located outside the
zone pipeline. This cause a need for a component inside the zone
pipeline with the ability to call an external "verifier" for
verifications. At present only one such component is known (the
authoritative nameserver NSD with its "verify:" attribute), but we
hope that there will be more alternatives in the future.</li>
      </ul>
      <t/>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner">
            <organization/>
          </author>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba">
            <organization/>
          </author>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC5936">
        <front>
          <title>DNS Zone Transfer Protocol (AXFR)</title>
          <author fullname="E. Lewis" initials="E." surname="Lewis">
            <organization/>
          </author>
          <author fullname="A. Hoenes" initials="A." role="editor" surname="Hoenes">
            <organization/>
          </author>
          <date month="June" year="2010"/>
          <abstract>
            <t>The standard means within the Domain Name System protocol for maintaining coherence among a zone's authoritative name servers consists of three mechanisms.  Authoritative Transfer (AXFR) is one of the mechanisms and is defined in RFC 1034 and RFC 1035.</t>
            <t>The definition of AXFR has proven insufficient in detail, thereby forcing implementations intended to be compliant to make assumptions, impeding interoperability.  Yet today we have a satisfactory set of implementations that do interoperate.  This document is a new definition of AXFR -- new in the sense that it records an accurate definition of an interoperable AXFR mechanism.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5936"/>
        <seriesInfo name="DOI" value="10.17487/RFC5936"/>
      </reference>
      <reference anchor="RFC1995">
        <front>
          <title>Incremental Zone Transfer in DNS</title>
          <author fullname="M. Ohta" initials="M." surname="Ohta">
            <organization/>
          </author>
          <date month="August" year="1996"/>
          <abstract>
            <t>This document proposes extensions to the DNS protocols to provide an incremental zone transfer (IXFR) mechanism.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="1995"/>
        <seriesInfo name="DOI" value="10.17487/RFC1995"/>
      </reference>
      <reference anchor="RFC8976">
        <front>
          <title>Message Digest for DNS Zones</title>
          <author fullname="D. Wessels" initials="D." surname="Wessels">
            <organization/>
          </author>
          <author fullname="P. Barber" initials="P." surname="Barber">
            <organization/>
          </author>
          <author fullname="M. Weinberg" initials="M." surname="Weinberg">
            <organization/>
          </author>
          <author fullname="W. Kumari" initials="W." surname="Kumari">
            <organization/>
          </author>
          <author fullname="W. Hardaker" initials="W." surname="Hardaker">
            <organization/>
          </author>
          <date month="February" year="2021"/>
          <abstract>
            <t>This document describes a protocol and new DNS Resource Record that provides a cryptographic message digest over DNS zone data at rest. The ZONEMD Resource Record conveys the digest data in the zone itself. When used in combination with DNSSEC, ZONEMD allows recipients to verify the zone contents for data integrity and origin authenticity. This provides assurance that received zone data matches published data, regardless of how the zone data has been transmitted and received.  When used without DNSSEC, ZONEMD functions as a checksum, guarding only against unintentional changes. </t>
            <t>ZONEMD does not replace DNSSEC: DNSSEC protects individual RRsets (DNS data with fine granularity), whereas ZONEMD protects a zone's data as a whole, whether consumed by authoritative name servers, recursive name servers, or any other applications. </t>
            <t>As specified herein, ZONEMD is impractical for large, dynamic zones due to the time and resources required for digest calculation. However, the ZONEMD record is extensible so that new digest schemes may be added in the future to support large, dynamic zones.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8976"/>
        <seriesInfo name="DOI" value="10.17487/RFC8976"/>
      </reference>
    </references>
    <section anchor="change-history-to-be-removed-before-publication">
      <name>Change History (to be removed before publication)</name>
      <ul spacing="normal">
        <li>draft-johani-tld-zone-pipeline-00</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Initial public draft.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
rPgf119/FsE5AAA=

-->

</rfc>
