<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ntp-nts-keyexchange-pool-01" category="exp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="NTS pools">NTS extensions for enabling pools</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ntp-nts-keyexchange-pool-01"/>
    <author fullname="David Venhoek">
      <organization>Trifecta Tech Foundation</organization>
      <address>
        <email>david@tweedegolf.com</email>
      </address>
    </author>
    <author fullname="Ruben Nijveld">
      <organization>Trifecta Tech Foundation</organization>
      <address>
        <email>ruben@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="2026" month="July" day="19"/>
    <area>Internet</area>
    <workgroup>Network Time Protocols</workgroup>
    <keyword>NTP</keyword>
    <keyword>NTS</keyword>
    <abstract>
      <?line 49?>

<t>The aim of this document is to describe a 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 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://ietf-wg-ntp.github.io/draft-ietf-ntp-nts-keyexchange-pool/draft-ietf-ntp-nts-keyexchange-pool.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ntp-nts-keyexchange-pool/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Time Protocols Working Group mailing list (<eref target="mailto:ntp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ntp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ntp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-ntp/draft-ietf-ntp-nts-keyexchange-pool"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<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 provides 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 time source's cookie format,</t>
        </li>
        <li>
          <t>avoids 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 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 time source for the time servers that the pool delegates the actual providing of time to.</t>
      <t>This document follows the conventions used in <xref target="RFC8915"/> for the layout of NTS records on the wire.</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 time sources. Contrary to <xref target="RFC8915"/>, there is no direct TLS connection between the client and the selected time source.</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 time source. Because cookies need to be generated using key material from the client, the pool extracts this key material and sends it to the time source. The time source 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 time source.</t>
      <section anchor="session-flow-between-client-pool-and-time-source">
        <name>Session flow between client, pool and time source</name>
        <t>In our proposed pool model, a session of a client with the pool is handled through the following steps:
1) The client presents itself to the pools NTS key exchange server, sending it its request.
2) The pool parses this requests, and assigns a time source to the request.
3) The pool then asks that time source which protocols and algorithms it supports.
4) Based on that information, and the request of the client, the pool can now determine what the next protocol and algorithm should be given in the response to the client. It uses this information to extract the NTS client-to-server and server-to-client keys from the TLS session with the client.
5) The pool then sends a fixed key request to the time source, with the extracted keys and the selected next protocol and algorithm. The time source can then provide the pool with the cookies the client will need to succesfully connect to it.
6) Finally, the pool combines all the information generated through the process into the response to the client, telling it the selected next protocol, algorithm, providing it with the cookies, and telling it where to find the ntp server of the selected time source.</t>
        <t>This session flow requires additional information to be exchanged between the pool and the time source in steps 3 and 5, for which this draft provides records described in the sections below. The exchange of information with the time source from the pool is split into two steps because the information on supported protocols and algorithms needs to be available to the pool before it can actually send over the keys to the time source.</t>
        <t>In addition, this split then allows caching of the supported protocols and algorithm information for the time sources. This allows some load reduction on both the time source and the pool itself.</t>
      </section>
    </section>
    <section anchor="communication-between-the-pool-and-time-sources">
      <name>Communication between the pool and time sources</name>
      <t>To facilitate communication between the pool and the time sources, six new NTS records are defined in <xref target="records"/>. Together these records provide a way for the pool to provide key exchange services to clients on behalf of the time sources.</t>
      <t>The Supported Next Protocol List (<xref target="supportedprotocol"/>), Supported Algorithm List (<xref target="supportedalgorithm"/>) and List Server Names (<xref target="listservernames"/>) records allow the pool to ask a time source which protocols and algorithms it supports, and which server names are used in the NTP server records (<xref section="4.1.7" sectionFormat="comma" target="RFC8915"/>) it generates. This information can be requested by the pool at any time, and can be cached for short periods of time to improve efficiency.</t>
      <t>Using knowledge of a time source's supported protocols and algorithms, the pool can then handle client connections for that time source, using the clients indicated desires to choose a concrete next protocol and AEAD algorithm. The pool can then extract the keys from the TLS connection and use the Fixed Key record (<xref target="fixedkey"/>) to request cookies for these keys from the time source. The response to a request containing a Fixed Key record will be the same as that for any regular NTS Key Exchange response, with the exception that the keys will be taken from the Fixed Key record instead of being derived from the TLS connection.</t>
      <t>The list of server names provided by the time source can be used by the pool to honor requests by the client to not repeat a certain server. This allows more efficient retrieval of multiple sources from a pool.</t>
      <t>As it is wasteful to setup a new TLS session between the pool and the time source for each of these interactions. To facilitate reuse of the TLS sessions, we further introduce the Keep Alive record (<xref target="keepalive"/>). This record allows the pool to indicate to the time source a desire to keep the session alive for more than a single request-response interaction.</t>
      <section anchor="poolauth">
        <name>Authenticating the pool to time sources</name>
        <t>Allowing arbitrary clients to keep connections alive for more that a single request-response interaction could open up the server to denial of service due to resource exhaustion. To prevent this, a pool wishing to use the keep alive functionality <bcp14>MUST</bcp14> authenticate itself to the time source using an Authentication Token record (<xref target="authentication"/>). Time sources <bcp14>MUST</bcp14> check that the content of the Authentication Token record matches the authentication string of a client that is on the list of requestors allowed to use the keep alive mechanism. By default, the list of requestors allowed to use the keep alive mechanism <bcp14>MUST</bcp14> be empty</t>
        <t>Furthermore, time sources <bcp14>MAY</bcp14> choose to also restrict the Fixed Key, Supported Next Protocol List and Supported Algorithm List to authenticated clients. If this choice is made, it is suggested that the server treat these records as unrecognized critical records on unauthenticated client's connections.</t>
      </section>
    </section>
    <section anchor="communication-between-clients-and-the-pool">
      <name>Communication between clients and the pool</name>
      <t>A client requesting time from the pool can make a normal NTS Key Exchange request to the pool. In the response to the client the pool needs to tell which NTP server is to be used to get the time. This can be done through the already existing NTP Server Record. However, the pool needs to ensure it is present, and therefore <bcp14>MUST</bcp14> add such a record to the response unless one is already provided by the time source.</t>
      <t>Clients that are aware they are talking to a pool may want to get multiple independent time sources from that pool. For this, they need to be able to tell the pool which time sources they already have, otherwise they might get a time source that they are already talking to. To achieve this, a client can use the NTP Server Deny record (<xref target="serverdeny"/>) to indicate it would rather not receive a particular server. Clients <bcp14>MUST</bcp14> use the precise name given by the pool in a previous NTP Server record, otherwise the pool may not recognize which time source the client is referring to.</t>
    </section>
    <section anchor="records">
      <name>New NTS record types</name>
      <section anchor="keepalive">
        <name>Keep Alive</name>
        <t>Record Type Number: 8
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 a time source's NTS Key Exchange servers multiple times, reducing load on both the pool and time sources.</t>
        <t>When a client sends this record the body <bcp14>MUST</bcp14> have size 0. A 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>MAY</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. As keeping a connection active requires additional resources on the server, a server <bcp14>SHOULD NOT</bcp14> respond with a Keep Alive record to unauthenticated clients.</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: 9
Critical bit: 1</t>
        <t>This record can be used by a pool to query time sources about which next protocols they support.</t>
        <t>When a client sends this record the body <bcp14>MUST</bcp14> have size 0. 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>When receiving this record, servers <bcp14>MUST</bcp14> ignore any client body sent and <bcp14>MUST</bcp14> send in the 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 receiving this record, a server <bcp14>MUST NOT</bcp14> negotiate a next protocol, AEAD algorithm, or keys for this request. A server <bcp14>MAY</bcp14> treat this record as unknown for clients that are not authenticated as described in <xref target="poolauth"/>.</t>
      </section>
      <section anchor="supportedalgorithm">
        <name>Supported Algorithm List</name>
        <t>Record Type Number: 10
Critical bit: 1</t>
        <t>This record can be used by a pool to query time sources about which AEAD algorithms they support.</t>
        <t>When a client sends this record the body <bcp14>MUST</bcp14> have size 0. 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>When receiving this record, servers <bcp14>MUST</bcp14> ignore any client body sent and <bcp14>MUST</bcp14> send in the 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 receiving this record, a server <bcp14>MUST NOT</bcp14> negotiate a next protocol, AEAD algorithm, or keys for this request. A server <bcp14>MAY</bcp14> treat this record as unknown for clients that are not authenticated as described in <xref target="poolauth"/>.</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 to the pool software.</t>
      </section>
      <section anchor="listservernames">
        <name>List Server Names</name>
        <t>Record Type Number: 11
Critical bit: 1</t>
        <t>This record can be used by a pool to query time sources about which server names they use in NTP server records in their responses.</t>
        <t>When a client sends this record the body <bcp14>MUST</bcp14> have size 0. 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>Servers <bcp14>MUST NOT</bcp14> include this record in a response. When receiving this record, servers <bcp14>MUST</bcp14> ignore any body of this record sent by the client, and <bcp14>MUST</bcp14> send in the response one NTP server record for each server name the server may use responses to fixed key requests. If a server never sends a NTP server record in response to a fixed key request, it <bcp14>MAY</bcp14> opt to not provide one in response to this record.</t>
        <t>When receiving this record, a server <bcp14>MUST NOT</bcp14> negotiate a next protocol, AEAD algorithm, or keys for this request. A server <bcp14>MAY</bcp14> treat this record as unknown for clients that are not authenticated as described in <xref target="poolauth"/>.</t>
      </section>
      <section anchor="fixedkey">
        <name>Fixed Key Request</name>
        <t>Record Type Number: 12
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. In all other aspects, the response <bcp14>SHALL</bcp14> be the same as that from a regular key exchange session as specified in <xref target="RFC8915"/>. This allows a pool to do key negotiation on behalf of its users with the time source's 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>This record <bcp14>MUST NOT</bcp14> be sent by a server. A server <bcp14>MAY</bcp14> treat this record as unknown for clients that are not authenticated as described in <xref target="poolauth"/>.</t>
      </section>
      <section anchor="serverdeny">
        <name>NTP Server Deny</name>
        <t>Record Type Number: 13
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 anchor="authentication">
        <name>Authentication Token</name>
        <t>Record Type Number: 14
Critical Bit: 0</t>
        <t>When provided by a client, gives a proof of their identity through a pre-shared secret token. This can be used to allow only certain clients, for example pools, to use certain functionality of an NTS key exchange server. In particular, it can be used to prevent misuse of the keep alive mechanism by clients other than the pool, preventing resource exhaustion denial of service attack.</t>
        <t>This record <bcp14>MUST</bcp14> be sent before records that may be refused if not properly authenticated. A client <bcp14>MUST NOT</bcp14> send more than 1 of this record. The data in the record should be an ASCII string that <bcp14>MUST NOT</bcp14> be null terminated, previously agreed through an out of scope mechanism.</t>
        <t>The Authentication Token record <bcp14>MUST NOT</bcp14> be sent by a server. A server <bcp14>MAY</bcp14> use the record to gate acceptance of other records such as the Keep Alive, Fixed Key Request, List Server Names, Supported Algorithm List and Supported Next Protocol List records. A server supporting this record <bcp14>MUST</bcp14> support keys of length at least 64 characters. Keys <bcp14>SHOULD</bcp14> be chosen such that they have at least 128 bits of entropy. When using only letters and numbers this corresponds to at least 22 characters, and when using only hexadecimal digits, at least 32 characters.</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 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 time sources. As a consequence, a time source in the pool will not be able to break confidentiality or authenticity of traffic with other time sources of the pool. Furthermore, any traffic directly with the time source has no key material involved that is known to the pool.</t>
        <t>It must be noted that clients need to trust the pool to check the TLS certificates of the time sources. It is imperative that the pool does this correctly, and that it has a trusted source of time to be able to do revocation checks.</t>
      </section>
      <section anchor="keep-alive-and-denial-of-service-attack-risk">
        <name>Keep alive and denial of service attack risk</name>
        <t>The Keep Alive NTS record allows a client to keep an NTS key exchange connection open for significantly longer than usual. If arbitrary clients were allowed to do this, they could use it trivially run a server out of resources such as file descriptors. It is therefore important that public servers restrict keeping connections alive to a limited set of trusted clients. The recommended mechanism for doing this is through token authentication via the authentication token record <xref target="authentication"/>.</t>
        <t>The token used in token authentication is a symmetric authentication secret, known to both the pool and the time source. Its security in transit is guaranteed by the protections from the TLS connection. Pools <bcp14>SHOULD</bcp14> provide methods for updating these keys to provide time sources an option should the used authentication token leak. Updating these keys is presumed to be done using an out of band method out of scope for this text.</t>
      </section>
      <section anchor="unwanted-addition-to-a-pool">
        <name>Unwanted addition to a pool</name>
        <t>This document does not specify an explicit mechanism for pools to identify whether a timesource wants to be part of the pool. Such a mechanism is considered out of scope.</t>
        <t>However, clients that wish to restrict their inclusion in pools of the type described in this document may choose to also enforce the token authentication for use of the Fixed Key Request record from <xref target="fixedkey"/>, and the Supported Protocol and Supported Algorithm records from <xref target="supportedprotocol"/> and <xref target="supportedalgorithm"/>. Doing so effectively prevents the time source from being included in a pool without explicit configuration, providing control for the time source operator over which pools their time source is included in.</t>
      </section>
      <section anchor="error-handling">
        <name>Error handling</name>
        <t>To avoid giving multiple 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 time source. If an error occurs after sending the Fixed Key Request record, either with the TLS connection between the pool and the time source, or by being explicitly reported by the time source to the pool, the pool <bcp14>SHOULD</bcp14> return an error to the user. Retrying with a different time source during the same TLS session may unintentionally leave the user vulnerable to the operator of the originally selected time source.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA has early-allocated, and is requested to permanently 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">8</td>
            <td align="left">Keep Alive</td>
            <td align="left">[[this memo]] <xref target="keepalive"/></td>
          </tr>
          <tr>
            <td align="left">9</td>
            <td align="left">Supported Next Protocol List</td>
            <td align="left">[[this memo]] <xref target="supportedprotocol"/></td>
          </tr>
          <tr>
            <td align="left">10</td>
            <td align="left">Supported Algorithm List</td>
            <td align="left">[[this memo]] <xref target="supportedalgorithm"/></td>
          </tr>
          <tr>
            <td align="left">11</td>
            <td align="left">List Server Names</td>
            <td align="left">[[this memo]] <xref target="listservernames"/></td>
          </tr>
          <tr>
            <td align="left">12</td>
            <td align="left">Fixed Key Request</td>
            <td align="left">[[this memo]] <xref target="fixedkey"/></td>
          </tr>
          <tr>
            <td align="left">13</td>
            <td align="left">NTP Server Deny</td>
            <td align="left">[[this memo]] <xref target="serverdeny"/></td>
          </tr>
          <tr>
            <td align="left">14</td>
            <td align="left">Authentication Token</td>
            <td align="left">[[this memo]] <xref target="authentication"/></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="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <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.</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 263?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank Marlon Peeters, Folkert de Vries and Watson Ladd for their input and discussions during the writing of this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
