<?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.35 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-johani-tld-zone-pipeline-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <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-01"/>
    <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>
      <?line 32?>

<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>The goal of this document is to describe the requirements that the
.SE Registry choose in preparation for the implementation of a 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>
  </front>
  <middle>
    <?line 54?>

<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
service 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>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The correct generation and DNSSEC signing of a TLD zone is a matter of
significant importance. As such requirements and methods for
verification of correctness is an important matter that has previously
not been much publically discussed.</t>
      <t>As a requirements specification this document aims to make this topic
more public and visible with the intent of improving the correctness
of the requirements via public review.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>None</t>
      <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"/>
          <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"/>
          <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"/>
          <author fullname="A. Hoenes" initials="A." role="editor" surname="Hoenes"/>
          <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"/>
          <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"/>
          <author fullname="P. Barber" initials="P." surname="Barber"/>
          <author fullname="M. Weinberg" initials="M." surname="Weinberg"/>
          <author fullname="W. Kumari" initials="W." surname="Kumari"/>
          <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
          <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>
    <?line 387?>

<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>
      <ul spacing="normal">
        <li>draft-johani-tld-zone-pipeline-01</li>
      </ul>
      <ul empty="true">
        <li>
          <t>Security and IANA Considerations sections added.
Minor typos fixed.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA51b63IbuZX+30+BlX+s5CLpSzLJWj+2QkvyWLEtKaKdZCaV
2gK7QRJRs5vb6BbNmXLVvkZeL0+y3zkHQKNJ2jOVqaky2WwA5/qdC47G43HW
2rY05+rk4/tL9WNdGXVnN6a0FZ7dm//tbGPWpmqdmlaFujTOLit119gqt5vS
uJNMz+eNeTxXB8sHq7Oiziu9xp5Foxft+B/1Sld23JbF+CcsGm/8ovHzF1mh
W7z38+X049WXLMeXZd3szpVriyyzm+ZctU3n2pfPn796/jLTjdHn6rpqTVOZ
NtvWzcOyqbvNubq8md3eqb/gga2W6nt6mD2YHd4o+gXjSyIny1yrq+J/dFkT
2zvjso09V39r63ykXN20jVk4fNqt6cPfs0x37apuzjM1zhT+s5U7V3+cqFlr
Kuy05ofC7h+J0eEPdbME7z/p1tYV5LYyarY1hXWrSJV6U3dVwS/wCrPWtjxX
LLSJ83v9wfq3XWsXrSmdwW/mgKR8Ve7wXkqSfqjnwx9A0rl6B2VZNX09OJLe
/cMD/UKbZ1XdrEHXozmHLqpF8m08His9d22jc8jzY13onVrXrmXDaMzS4idr
nNp085J4hXpmVxeK7MkUiozATVgYDmZjqtyoegGdm43LFk29VktTmQaHQZct
3uqqZOVIPVqd7khvQaHqUTe27pxqdxscXS+yR9PYhc1ZtMo6ELYwTYNt2lpp
xzuf0I4qGOTJBMzgaVPPYXQg0vHGeY1VuXwHnbRusIz2xvO86XKry8yuN7Ai
TVzR6uOvVyZsxXLLG9uC0lJtdNMy8fRTvWEp1BXvr1Pp7jypyxqLeCfsCr/r
yAPpBPBYGId954aPaVL3ble6pafZZHYF15UdVb6qawfyKrVpDAgRwUHvvAHY
Knm5PGaCKrNl3rLAm2g10qFL15Ph4F3ryHYh6JKDOW8DQla2qMuy3iq2g33C
J+otW8sBt+QeVSGqJVgg/eps2dnCMAPwMNOw3webguV2EN2Qq5Harmy+oh03
pa4q2XBussaURjt8xb7QSgVWuiY3pIRb9RoyvPpw++erS/LwPcrmhk7MwZSe
1xAp9iBrrNT3tl11c6Xb8+xvq7bduPNnz5b8bJLX62cCmp+ffRtC/376by89
m7ABsfnBvIncrcdPOI7zOm4TdY6EdetcZ4CQps0nyq3qroRYypLEpB8BJHpe
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
OwAA

-->

</rfc>
