<?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.34 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ntp-nts-keyexchange-pool-00" category="exp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="NTS pools">NTS extensions for enabling pools</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ntp-nts-keyexchange-pool-00"/>
    <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="March" day="20"/>
    <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>
    <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: 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 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: To be assigned by IANA (draft implementations: 0x4004)
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: To be assigned by IANA (draft implementations: 0x4001)
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: To be assigned by IANA (draft implementations: 0x4006)
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: 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. 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: 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 anchor="authentication">
        <name>Authentication Token</name>
        <t>Record Type Number: To be assigned by IANA (draft implementations: 0x4005)
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 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="supportedprotocol"/></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">List Server Names</td>
            <td align="left">[[this memo]] <xref target="listservernames"/></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>
          <tr>
            <td align="left">[[TBD]]</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 249?>

<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:
H4sIAAAAAAAAA+0823LcxpXv8xW91EPsreFIlGXHZmWTUKQUsyxRWpGyK+Vy
bfUAPTMIMcAEDcxoQutf9lv2y/ZcG43LUHKs1G5t9sEWB+jL6XO/NY6Pjyd1
Vufu1Bxd3Vwb9652hc/KwptFWRlX2HmeFUuzKcvcH03sfF65rYyVZ4mt3bKs
9qcweTOZpGVS2DWsl1Z2UR9nrl4cF/UG/vPHt27v3iUrWyzdMc4+fvRo4pv5
OvO4Zb3fwLTLZzfPjXlgbO5L2CgrUrdx8L+iPpqaI5dmdVllNscfl2dP4R8A
8+jyzc3zo0nRrOeuOp2kANHpJIFDwFkaf2rqqnETAPuLia2chVUvi9pVhauP
Jruyul1WZbPBQ7kaf5qbbO3M66qsy4ROCGDD8/R0Yo7N1c1r/ud6snVFA/sY
86H5xvDRjn6At4jNP+EEfL62WQ7PAT9/RETNymqJj22VrODxqq43/vThQxyF
j7Ktm+mwh/jg4bwqd949hPkPcd4yq1fNHLGGWN8tEfEPP4IOODcHpPk62jVa
Y8YLz7LyY1b7mDGzVb2GbSe2qVdlhZgFEIxZNHnO3HN0YbdZar53xap0t0f0
Fo5ti+xvtgZmOTU3VbZwSW3NjUtW5nnZFCm9oaFOMJviKn+sd86lwKT5YpaU
66OR3d40c1eYq+wvW5enf/duFa7yEbu9BOKZ62QFiEhdtbbF6I60jMF1zNPZ
97POTmtYYbDRpChhsRrYBLnyzfPzr588+Ur//Obky9PJJCsWvTFffvPoS/zz
NQBzSnvUtlo64ARlhN1uNwM6EtkARB7DOgOkgSaanZv7rHaTyfHxsbFzX1c2
qSeTm5UzNlubcmHqVeYNKIdmDaJs4O+6NKnzSZXNYYzxe1+7NSmdoFtgjq1B
GOD9PHc4AYY23qVmvjdJnsFC3uyANcsGhhV7c1uUu9ylSwcD92WRmk1uswIX
nBkEhaRz5WDBBQDinTebpnL53pSFSUAz1CictjAZqoc16BqQCQLnO7c3z4R/
jXfV1lUMXAKjASjQNYtsCWulBA+8A5jTtHIeN4HTr5u8zja5TvawS2rSDPCU
zRvYJC8tnMohRQucvWaAN7aqaT7iw5QbVxFzAOIsqWXaDPjHLvEX7prDmjgh
7AOHzd0CnjX8PIFVCM1EEMTIjKm2ztI0Bwo+MKAdqzJtEuLvCZ7/7k5Y6P17
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

-->

</rfc>
