<?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.7.20 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-venhoek-nts-pool-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="NTS pools">NTS extensions for enabling pools</title>
    <seriesInfo name="Internet-Draft" value="draft-venhoek-nts-pool-01"/>
    <author fullname="David Venhoek">
      <organization>Tweede golf B.V.</organization>
      <address>
        <email>david@tweedegolf.com</email>
      </address>
    </author>
    <author fullname="Folkert de Vries">
      <organization>Tweede golf B.V.</organization>
      <address>
        <email>folkert@tweedegolf.com</email>
      </address>
    </author>
    <author fullname="Marc Schoolderman">
      <organization>Tweede golf B.V.</organization>
      <address>
        <email>marc@tweedegolf.com</email>
      </address>
    </author>
    <date year="2024" month="November" day="03"/>
    <area>INT</area>
    <workgroup>ntp</workgroup>
    <keyword>NTP</keyword>
    <keyword>NTS</keyword>
    <abstract>
      <?line 48?>

<t>The aim of this document is to describe a proof of concept system for NTS pools that are able to be used by clients without any knowledge beyond plain NTS. The work here focuses purely on creating an intermediate NTS Key Exchange server that can be configured with the addresses of multiple downstream servers and distribute load between them. The parts of pool operation dealing with managing the list of servers are left out of scope for this work.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://pendulum-project.github.io/nts-pool-draft/draft-nts-pool.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-venhoek-nts-pool/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/pendulum-project/nts-pool-draft"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>NTS <xref target="RFC8915"/> provides authenticity and limited confidentiality for NTP <xref target="RFC5905"/>. However, the key exchange preceding the actual time exchange makes it hard to implement a pool for NTS supporting servers in a manner similar to the DNS resolution approach taken to provide the NTP Pool <xref target="Pool"/>.</t>
      <t>This document aims to provide extensions to the NTS Key Exchange sessions that allow for an implementation of a pool for NTS that:</t>
      <ul spacing="normal">
        <li>
          <t>is usable without changes to the client,</t>
        </li>
        <li>
          <t>avoids constraining the downstream time source's cookie format,</t>
        </li>
        <li>
          <t>avoids downstream time sources having potential access to all traffic.</t>
        </li>
      </ul>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>Throughout the text, the terms client and server will refer to those roles in an NTS Key Exchange session as specified in <xref target="RFC8915"/>. Please note that this means that the pool itself operates in both roles: As a server towards users of the pool, and as a client towards the downstream time sources.</t>
      <t>Where further specificity of the role of a participant is needed, we will use the term user to indicate a user of a pool, the term pool to indicate the pool itself, and downstream time source for the time servers that the pool delegates the actual providing of time to.</t>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

</section>
    <section anchor="general-pool-architecture">
      <name>General pool architecture</name>
      <t>We propose a pool model where the pool provides an NTS Key Exchange service to the outside world. A major advantage of this model is that it avoids having to distribute certificates to all downstream time servers. Contrary to <xref target="RFC8915"/>, there is no direct TLS connection between the client and the selected downstream time service.</t>
      <t>In <xref target="RFC8915"/>, cookies are generated based on key material that is extracted from this TLS connection. Our proposed model instead establishes two TLS connections: between the client and the pool, and between the pool and the downstream time server. Because cookies need to be generated using key material from the client, the pool extracts this key material and sends it to the server. The server uses this key material (rather than key material extracted from its connection with the pool) to generate cookies. This way, the pool can remain oblivious to the cookie format of the downstream time server.</t>
      <t>The pool <bcp14>MUST</bcp14> ensure that the response sent to the client includes an NTPv4 Server Negotiation record as specified in <xref section="4.1.7" sectionFormat="of" target="RFC8915"/>.</t>
    </section>
    <section anchor="client-facilities-for-pools">
      <name>Client facilities for pools</name>
      <t>One challenge with getting multiple time sources from a single NTS Key Exchange server is that clients that allow for explicit pool configuration want to end up with multiple independent time sources. Without additional support, a user of a pool might receive a downstream time source it already has from an NTS Key Exchange session, resulting in that session being a waste of time. To avoid unneccessary NTS Key Exchange sessions, we also introduce a record that clients can use to indicate which downstream time servers they don't want, because they already have them.</t>
    </section>
    <section anchor="pool-authentication">
      <name>Pool authentication</name>
      <t>The extensions proposed below allow a client to establish an NTS association with a server with arbitrary keys, not just those extracted from the TLS session. To discourage misuse, it is not desirable to allow arbitrary clients to do this.</t>
      <t>Therefore, a server supporting the Fixed Key Request record from <xref target="fixedkey"/> <bcp14>MUST</bcp14> authenticate clients using the Fixed Key Request record using TLS client certificates. Support <bcp14>MUST</bcp14> be disabled by default, and when enabled, <bcp14>MUST</bcp14> be limited to an explicitly configured list of clients.</t>
    </section>
    <section anchor="new-nts-record-types">
      <name>New NTS record types</name>
      <section anchor="keepalive">
        <name>Keep Alive</name>
        <t>Record Type Number: To be assigned by IANA (draft implementations: 0x4000)
Critical bit: 0</t>
        <t>Indicates a desire to keep the TLS connection active for more than one message exchange. This can be used by a pool to reuse connections to downstream NTS Key Exchange servers multiple times, reducing load on both the pool and downstream servers.</t>
        <t>Client <bcp14>MUST</bcp14> send this record with a body of size 0. Client <bcp14>MUST NOT</bcp14> use Keep Alive unless the request contains a record type allowing the use of Keep Alive. Within this specification, that is limited to the Supported Protocol List and Fixed Key Request records. A server <bcp14>SHOULD</bcp14> ignore any body for the Keep Alive record.</t>
        <t>When supported by a server and allowed for the request in question, the server <bcp14>MUST</bcp14> include a Keep Alive record with a body of size 0 in the response and keep the TLS connection active after the response to handle further requests from the client. A client <bcp14>SHOULD</bcp14> ignore any body for the Keep Alive record.</t>
        <t>When included in the request or response, the client respectively server <bcp14>MAY</bcp14>, contrary to the requirements in <xref target="RFC8915"/>, send another request or response. Any TLS "close_notify" <bcp14>SHALL</bcp14> be sent only after the last request or response respectively to use the connection.</t>
        <t>Once a Keep Alive record has been sent by a client, or honored by a server, the TLS connection over which it was sent <bcp14>MUST NOT</bcp14> be used for key extraction. Doing so anyway can result in the reuse of keys and may result in loss of confidentiality or authenticity of the resulting NTP exchanges.</t>
      </section>
      <section anchor="supportedprotocol">
        <name>Supported Next Protocol List</name>
        <t>Record Type Number: To be assigned by IANA (draft implementations: 0x4004)
Critical bit: 1</t>
        <t>This record can be used by a pool to query downstream servers about which next protocols they support.</t>
        <t>Client <bcp14>MUST</bcp14> send with no body. Clients <bcp14>MAY</bcp14> use Keep Alive in combination with this record. Contrary to <xref target="RFC8915"/>, a request with this record <bcp14>SHOULD NOT</bcp14> include a "Next Protocol Negotiation", "AEAD Algorithm Negotiation" or "Fixed Key Request" record.</t>
        <t>Server <bcp14>MUST</bcp14> ignore any client body sent and <bcp14>MUST</bcp14> send in response a Supported Next Protocol List record with as data a list of 16-bit integers, giving the protocol IDs the server supports.</t>
        <t>When included, the server <bcp14>MUST NOT</bcp14> negotiate a next protocol, AEAD algorithm, or keys for this request.</t>
      </section>
      <section anchor="supportedalgorithm">
        <name>Supported Algorithm List</name>
        <t>Record Type Number: To be assigned by IANA (draft implementations: 0x4001)
Critical bit: 1</t>
        <t>This record can be used by a pool to query downstream servers about which AEAD algorithms they support.</t>
        <t>Client <bcp14>MUST</bcp14> send with no body. Clients <bcp14>MAY</bcp14> use Keep Alive in combination with this record. Contrary to <xref target="RFC8915"/>, a request with this record <bcp14>SHOULD NOT</bcp14> include a "Next Protocol Negotiation", "AEAD Algorithm Negotiation" or "Fixed Key Request" record.</t>
        <t>Server <bcp14>MUST</bcp14> ignore any client body sent and <bcp14>MUST</bcp14> send in response a Supported Algorithm List record with as data a list of tuples of two 16-bit integers, the first giving an algorithm ID for the AEAD and the second giving the length of the key for that algorithm ID.</t>
        <t>When included, the server <bcp14>MUST NOT</bcp14> negotiate a next protocol, AEAD algorithm, or keys for this request.</t>
        <t>We include the algorithm key size in the response so that a pool does not itself need knowledge of which AEAD algorithms exist, and what their key sizes are. Instead, it can use the provided key length when extracting keys from the TLS connection between end user and pool. This allows adoption of new AEAD algorithms without any changes being needed for the pool software.</t>
      </section>
      <section anchor="fixedkey">
        <name>Fixed Key Request</name>
        <t>Record Type Number: To be assigned by IANA (draft implementations: 0x4002)
Critical Bit: 1</t>
        <t>When a client is properly authenticated, the server <bcp14>SHOULD NOT</bcp14> perform Key Extraction but rather use the keys provided by the client in the extension field. This allows a pool to do key negotiation on behalf of its users with the downstream NTS Key Exchange servers, even though it terminates the TLS connection.</t>
        <t>When used, the client <bcp14>MUST</bcp14> provide an AEAD Algorithm Negotiation record with precisely one algorithm, and a Next Protocol Negotiation record with precisely one next protocol. The data in the Fixed Key Request record must have length twice the key length N of the AEAD algorithm in the AEAD Algorithm Negotiation record. The first N bytes <bcp14>MUST</bcp14> be the C2S Key and the second set of N bytes <bcp14>MUST</bcp14> be the S2C key. Clients <bcp14>MAY</bcp14> use Keep Alive in combination with this record.</t>
        <t><bcp14>MUST NOT</bcp14> be sent by a server. Server <bcp14>SHOULD</bcp14> treat the extension field as unknown when sent by any client not authorized to make fixed key requests.</t>
      </section>
      <section anchor="serverdeny">
        <name>NTP Server Deny</name>
        <t>Record Type Number: To be assigned by IANA (draft implementations: 0x4003)
Critical Bit: 0</t>
        <t>When provided by a client, indicates a desire to connect to a server other than the server specified in the record. This can be used to ensure a client receives independent NTP servers from one NTS Key Exchange server without having to potentially try multiple times to get a new server.</t>
        <t>A client <bcp14>MAY</bcp14> send multiple of these records if desired. The data in the record <bcp14>SHOULD</bcp14> match that given through an NTPv4 Server Negotiation received in an earlier response from the same NTS Key Exchange server.</t>
        <t><bcp14>MUST NOT</bcp14> be sent by a server. Server <bcp14>MAY</bcp14> at its discretion ignore the request from the client and still provide the given server in an NTPv4 Server Negotiation record.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="pools-position">
        <name>Pool's position</name>
        <t>In the pool design presented above, the pool effectively acts as a man in the middle between the user and the ultimate time source during the NTS Key Exchange portion of the session. This means that the pool has access to the key material of these sessions. Although this is a small additional risk, we consider this acceptable because the pool could already always assign sessions for a user to time servers it controls anyway.</t>
        <t>The fact that the pool also gets access to key material makes it less advisable to have a pool as a downstream time source for another pool, as this increases the number of actors with access to the key material even further.</t>
        <t>The design above does avoid sharing key material between all downstream time sources. As a consequence, a downstream time source in the pool will not be able to break confidentiality or authenticity of traffic with other downstream time sources of the pool. Furthermore, any traffic directly with the downstream time source has no key material involved that is known to the pool.</t>
      </section>
      <section anchor="error-handling">
        <name>Error handling</name>
        <t>To avoid giving multiple downstream time sources access to the key material of the end user, it is important that the keys extracted from the TLS session between the user and the pool are sent to at most one downstream time source. If an error occurs after sending the Fixed Key Request record, either with the TLS connection between the pool and the downstream time source, or by being explicitly reported by the downstream time source to the pool, the pool <bcp14>SHOULD</bcp14> return an error to the user. Retrying with a different downstream time source during the same TLS session may unintentionally leave the user vulnerable to the operator of the originally selected downstream time source.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate the following entries in the Network Time Security Key Establishment Record Types registry <xref target="RFC8915"/>:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Record Type Number</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">[[TBD]]</td>
            <td align="left">Keep Alive</td>
            <td align="left">[[this memo]] <xref target="keepalive"/></td>
          </tr>
          <tr>
            <td align="left">[[TBD]]</td>
            <td align="left">Supported Next Protocol List</td>
            <td align="left">[[this memo]] <xref target="keepalive"/></td>
          </tr>
          <tr>
            <td align="left">[[TBD]]</td>
            <td align="left">Supported Algorithm List</td>
            <td align="left">[[this memo]] <xref target="supportedalgorithm"/></td>
          </tr>
          <tr>
            <td align="left">[[TBD]]</td>
            <td align="left">Fixed Key Request</td>
            <td align="left">[[this memo]] <xref target="fixedkey"/></td>
          </tr>
          <tr>
            <td align="left">[[TBD]]</td>
            <td align="left">NTP Server Deny</td>
            <td align="left">[[this memo]] <xref target="serverdeny"/></td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8915">
          <front>
            <title>Network Time Security for the Network Time Protocol</title>
            <author fullname="D. Franke" initials="D." surname="Franke"/>
            <author fullname="D. Sibold" initials="D." surname="Sibold"/>
            <author fullname="K. Teichel" initials="K." surname="Teichel"/>
            <author fullname="M. Dansarie" initials="M." surname="Dansarie"/>
            <author fullname="R. Sundblad" initials="R." surname="Sundblad"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>This memo specifies Network Time Security (NTS), a mechanism for using Transport Layer Security (TLS) and Authenticated Encryption with Associated Data (AEAD) to provide cryptographic security for the client-server mode of the Network Time Protocol (NTP).</t>
              <t>NTS is structured as a suite of two loosely coupled sub-protocols. The first (NTS Key Establishment (NTS-KE)) handles initial authentication and key establishment over TLS. The second (NTS Extension Fields for NTPv4) handles encryption and authentication during NTP time synchronization via extension fields in the NTP packets, and holds all required state only on the client via opaque cookies.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8915"/>
          <seriesInfo name="DOI" value="10.17487/RFC8915"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5905">
          <front>
            <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
            <author fullname="D. Mills" initials="D." surname="Mills"/>
            <author fullname="J. Martin" initials="J." role="editor" surname="Martin"/>
            <author fullname="J. Burbank" initials="J." surname="Burbank"/>
            <author fullname="W. Kasch" initials="W." surname="Kasch"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet. This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family. NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs. It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required. It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5905"/>
          <seriesInfo name="DOI" value="10.17487/RFC5905"/>
        </reference>
        <reference anchor="Pool" target="https://www.ntppool.org">
          <front>
            <title>NTP Pool website</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 197?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Marlon Peeters for their input and discussions during the writing of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1b63Ibx5X+P0/RC/1wkiIh0ZETm5VNQomSzVqJ0oq0VS6X
a6sx0wDanJnGTs8AQmi9yz7LPtl+55zumR5cKCfr7K+tconAoKf7XL9za5+e
nmatbUtzribXtzfKfGhN7a2rvZq7Rplaz0pbL9TKudJPMj2bNWYd1oZnuW7N
wjXbc+XbIssKl9e6wn5Fo+ft6drUS2fuTuvWn9ILp0/OMt/NKuvplHa7wsqr
F7cvlXqkdOkd9rZ1YVYG/9Tt5ERNTGFb11hd0peri2f4A8omV+9uX06yuqtm
pjnPChBxnuWgG+R3/ly1TWcyUPr7TDdG44zr22zjmrtF47rVuarbVXZntnhS
nGfqVF3fvpU/Nxko7rDXI6XC2vdf0xch9T22IHl8TT/R40rbkpb81XzQ1ao0
09xV9Fw3+fJcLdt25c8fP05+fIztsLVtl90MzBKjXdlVp6vG/WTy9nEvKJbf
BGtL8OZbrI277b4zld2m1u28/Vh0EB9Ol21VTrJMd+3SNcQ3dldq3pWlqGxy
qde2UN+Jzib8q2sWurZ/0y3Uda5uN8YURi1cOVfPpt9NeYkRIUwKevuvLS+h
FcTu5MApL115Z5pWYaPvGmv8333QXDb4BUe9hh7UTb4E94VpKl3/3WdV2GHv
oKx22Ky1axiKUu9ePv/yq7MvzrPM1vOdH7746skX9PEtKDjnjVvdLEw72MZm
s5nCHFlBoEvWiEvCKvlFtTEzb1uTZaenp0rPfNvovM2y26VR2lbKzVW7tF7B
97oKbqPwuXWQr88bO8MaBUvBIvwHF8nNqlV+61tTsZP3voxNdAvLxQuz0tAO
eLfzplCzrcpLi5292sDWXIdl9Vbd1W5TmmJhsHDr6kKtSm1r2nCqiDZyOLU0
2HAOyrzxatU1ptwqV6scbtmSK+la2bqFcuDosHQm59/MVr34kC91jb29adam
EeJyrAZR4GJuF9irYHrwG2guisZ4OgRsVl3ZWngcRLKpIS6jq7CPx4GFKiwe
2lmH80qnwaAhFde0USW0r3TT8lYkGuVWpmFrgVA1IyKfC4PSC/pGBJTYk17o
zwHfpZnjWSfPc+zCEmdlkXCmotHKFkUJ7T5SV3XbuKLL6agsI1Hc3wfz+viR
tAgPA4fkwdCGzW27ZX5KW8E+ChEMISfwkn4T/b6VXcgWP36cqm/cxoDCE6Ya
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

-->

</rfc>
