<?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.21 (Ruby 3.3.6) -->
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ntp-update-registries-17" category="std" consensus="true" submissionType="IETF" updates="5905, 5906, 8573, 7822, 7821" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title>Updating the NTP Registries</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ntp-update-registries-17"/>
    <author initials="R." surname="Salz" fullname="Rich Salz">
      <organization>Akamai Technologies</organization>
      <address>
        <email>rsalz@akamai.com</email>
      </address>
    </author>
    <date year="2025" month="January" day="06"/>
    <workgroup>ntp</workgroup>
    <keyword>NTP</keyword>
    <keyword>extensions</keyword>
    <keyword>registries</keyword>
    <keyword>IANA</keyword>
    <abstract>
      <?line 34?>

<t>The Network Time Protocol (NTP) and Network Time Security (NTS) documents
define a number of assigned number registries, collectively called the NTP
registries.</t>
      <t>Some registries have wrong values, some registries
do not follow current common practice, and some are just right.
For the sake of completeness, this document reviews all NTP and NTS registries,
and makes updates where necessary.</t>
      <t>This document updates RFC 5905, RFC 5906, RFC 8573, RFC 7822, and
RFC 7821.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Notes</name>
      <t>This document is a product of the
    <eref target="https://dt.ietf.org/wg/ntp">NTP Working Group</eref>.
    Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/richsalz/draft-rsalz-update-registries"/>.
      </t>
      <t>RFC Editor: Please update 'this RFC' to refer to this document,
    once its RFC number is known, through the document.</t>
    </note>
  </front>
  <middle>
    <?line 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Network Time Protocol (NTP) and Network Time Security (NTS) documents
define a number of assigned number registries, collectively called the NTP
registries.
The NTP registries can all be found at
<eref target="https://www.iana.org/assignments/ntp-parameters/ntp-parameters.xhtml">https://www.iana.org/assignments/ntp-parameters/ntp-parameters.xhtml</eref>
and the NTS registries can all be found at
<eref target="https://www.iana.org/assignments/nts/nts.xhtml">https://www.iana.org/assignments/nts/nts.xhtml</eref>.</t>
      <t>Some registries have wrong values, some registries
do not follow current common practice, and some are just right.
For the sake of completeness, this document reviews all NTP and NTS registries,
and makes updates where necessary.</t>
      <t>The bulk of this document can be divided into two parts:</t>
      <ul spacing="normal">
        <li>
          <t>First, each registry, its defining document, and a summary of its
syntax is defined.</t>
        </li>
        <li>
          <t>Second, the revised format and entries for each registry that is
being modified is specified.</t>
        </li>
      </ul>
    </section>
    <section anchor="existing-registries">
      <name>Existing Registries</name>
      <t>This section describes the registries and the rules for them.
It is intended to be a short summary of the syntax and registration
requirements for each registry.
The semantics and protocol processing rules for each registry -- that is,
how an implementation acts when sending or receiving any of the fields --
are not described here.</t>
      <section anchor="reference-id-kiss-o-death">
        <name>Reference ID, Kiss-o'-Death</name>
        <t><xref target="RFC5905"/> defined two registries; the Reference ID in Section 7.3, and the
Kiss-o'-Death in Section 7.4.  Both of these are allowed to be four ASCII
characters; padded on the right with all-bits-zero if necessary.
Entries that start with 0x58, the ASCII
letter uppercase X, are reserved for Private or Experimental Use.
Both registries are first-come first-served. The formal request to define
the registries is in <xref section="16" sectionFormat="comma" target="RFC5905"/>.</t>
      </section>
      <section anchor="extension-field-types">
        <name>Extension Field Types</name>
        <t><xref section="7.5" sectionFormat="comma" target="RFC5905"/> defined the on-the-wire format of extension
fields but did not create a registry for them.</t>
        <t><xref section="13" sectionFormat="comma" target="RFC5906"/> mentioned the Extension Field Types registry, and defined it
indirectly by defining 30 extensions (10 each for request, response, and
error response).
It did not provide a formal definition of the columns in the registry.
<xref section="10" sectionFormat="comma" target="RFC5906"/> splits the Field Type into four subfields,
only for use within the Autokey extensions.</t>
        <t><xref target="RFC7821"/> added a new entry, Checksum Complement, to the Extension
Field Types registry.</t>
        <t><xref target="RFC7822"/> clarified the processing rules for Extension Field Types,
particularly around the interaction with the Message Authentication
Code (MAC) field. NTPv4 packets may contain a MAC that appears where
one would expect the next extension field header.</t>
        <t><xref target="RFC8573"/> changed the cryptography used in the MAC field.</t>
        <t><xref target="RFC8915"/> added four new entries to the Extension Field Types registry.</t>
        <t>The following problems exist with the current registry:</t>
        <ul spacing="normal">
          <li>
            <t>Many of the entries in the Extension Field Types registry have
swapped some of the nibbles; 0x1234 is listed as 0x1432 for example.
This was due to documentation errors with the original implementation
of Autokey.
This document marks the erroneous values as reserved, in case there
is an implementation that used the registered values
instead of what the original implementation used.
Applications that might have used those values would have realized
that they did not interoperate with the dominant (if not only)
implementation at the time.
Marking the values as reserved ensures that any such applications would still
be able to work as-is.</t>
          </li>
          <li>
            <t>Some values were mistakenly re-used.</t>
          </li>
        </ul>
      </section>
      <section anchor="network-time-security-registries">
        <name>Network Time Security Registries</name>
        <t><xref target="RFC8915"/> defines the NTS protocol.
Its registries are listed here for completeness, but no changes
to them are specified in this document.</t>
        <t>Sections 7.1 through 7.5 (inclusive) added entries to existing registries.</t>
        <t>Section 7.6 created a new registry, NTS Key Establishment Record Types,
that partitions the assigned numbers into three different registration
policies: IETF Review, Specification Required, and Private or Experimental Use.</t>
        <t>Section 7.7 created a new registry, NTS Next Protocols,
that similarly partitions the assigned numbers.</t>
        <t>Section 7.8 created two new registries, NTS Error Codes and NTS Warning Codes.
Both registries are also partitioned the same way.</t>
      </section>
    </section>
    <section anchor="updated-registries">
      <name>Updated Registries</name>
      <t>The following general guidelines apply to all registries updated here:</t>
      <ul spacing="normal">
        <li>
          <t>Every registry reserves a partition for Private or Experimental Use.</t>
        </li>
        <li>
          <t>Entries with ASCII fields are now limited to uppercase letters or digits; fields
starting with 0x58, the uppercase letter "X", are reserved for Private or
Experimental Use.</t>
        </li>
        <li>
          <t>The policy for every registry is now Specification Required, as defined
in <xref section="4.6" sectionFormat="comma" target="RFC8126"/>.</t>
        </li>
      </ul>
      <t>The IESG is requested to choose three designated experts, with two being
required to approve a registry change. Guidance for such experts is
given below.</t>
      <t>Each entry described in the sub-sections below is intended to completely
replace the existing entry with the same name.</t>
      <section anchor="guidance-to-designated-experts">
        <name>Guidance to Designated Experts</name>
        <t>The designated experts (DE) should be familiar with <xref target="RFC8126"/>, particularly
Section 5. As that reference suggests, the DE should ascertain the existence
of a suitable specification, and verify that it is publicly available. The DE
is also expected to check the clarity of purpose and use of the requested
code points.</t>
        <t>In addition, the DE is expected to be familiar with this document,
specifically the history documented here.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="ntp-reference-identifier-codes">
        <name>NTP Reference Identifier Codes</name>
        <t>The registration procedure is changed to Specification Required.</t>
        <t>The Note is changed to read as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Codes beginning with the character "X" are reserved for experimentation
and development. IANA cannot assign them.</t>
          </li>
        </ul>
        <t>The columns are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>ID (required): a four-byte value padded on the right with all-bits-zero.
Each byte other than padding must be an ASCII uppercase letter or digits.</t>
          </li>
          <li>
            <t>Clock source (required): A brief text description of the ID.</t>
          </li>
          <li>
            <t>Reference (required): the publication defining the ID.</t>
          </li>
        </ul>
        <t>The existing entries are left unchanged.</t>
      </section>
      <section anchor="ntp-kiss-o-death-codes">
        <name>NTP Kiss-o'-Death Codes</name>
        <t>The registration procedure is changed to Specification Required.</t>
        <t>The Note is changed to read as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Codes beginning with the character "X" are reserved for experimentation
and development. IANA cannot assign them.</t>
          </li>
        </ul>
        <t>The columns are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>ID (required): a four-byte value padded on the right with all-bits-zero.
Each byte other than padding must be an ASCII uppercase letter or digits.</t>
          </li>
          <li>
            <t>Meaning source (required): A brief text description of the ID.</t>
          </li>
          <li>
            <t>Reference (required): the publication defining the ID.</t>
          </li>
        </ul>
        <t>The existing entries are left unchanged.</t>
      </section>
      <section anchor="ntp-extension-field-types">
        <name>NTP Extension Field Types</name>
        <t>The registration procedure is changed to Specification Required.</t>
        <t>The reference <xref target="RFC5906"/> should be added, if possible.</t>
        <t>The following two Notes are added:</t>
        <ul spacing="normal">
          <li>
            <t>Field Types in the range 0xF000 through 0xFFFF, inclusive, are reserved
for experimentation and development. IANA cannot assign them.
Both NTS Cookie and Autokey Message Request have the same Field Type;
in practice this is not a problem as the field semantics will be
determined by other parts of the message.</t>
          </li>
          <li>
            <t>The "Reserved for historic reasons" is for differences between the
original documentation and implementation of Autokey and marks
the erroneous values as reserved, in case there is an implementation
that used the registered values instead of what the original
implementation used.</t>
          </li>
        </ul>
        <t>The columns are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Field Type (required): A two-byte value in hexadecimal.</t>
          </li>
          <li>
            <t>Meaning (required): A brief text description of the field type.</t>
          </li>
          <li>
            <t>Reference (required): the publication defining the field type.</t>
          </li>
        </ul>
        <t>The table is replaced with the following entries.
IANA is requested to replace "This RFC" with the actual RFC number once
assigned.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field Type</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x0000</td>
              <td align="left">Crypto-NAK; authentication failure</td>
              <td align="left">RFC 5905</td>
            </tr>
            <tr>
              <td align="left">0x0002</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0102</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0104</td>
              <td align="left">Unique Identifier</td>
              <td align="left">RFC 8915, Section 5.3</td>
            </tr>
            <tr>
              <td align="left">0x0200</td>
              <td align="left">No-Operation Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0201</td>
              <td align="left">Association Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0202</td>
              <td align="left">Certificate Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0203</td>
              <td align="left">Cookie Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0204</td>
              <td align="left">Autokey Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0204</td>
              <td align="left">NTS Cookie</td>
              <td align="left">RFC 8915, Section 5.4</td>
            </tr>
            <tr>
              <td align="left">0x0205</td>
              <td align="left">Leapseconds Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0206</td>
              <td align="left">Sign Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0207</td>
              <td align="left">IFF Identity Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0208</td>
              <td align="left">GQ Identity Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0209</td>
              <td align="left">MV Identity Message Request</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x0302</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0304</td>
              <td align="left">NTS Cookie Placeholder</td>
              <td align="left">RFC 8915, Section 5.5</td>
            </tr>
            <tr>
              <td align="left">0x0402</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0404</td>
              <td align="left">NTS Authenticator and Encrypted Extension Fields</td>
              <td align="left">RFC 8915, Section 5.6</td>
            </tr>
            <tr>
              <td align="left">0x0502</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0602</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0702</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0802</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x0902</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x2005</td>
              <td align="left">UDP Checksum Complement</td>
              <td align="left">RFC 7821</td>
            </tr>
            <tr>
              <td align="left">0x8002</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8102</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8200</td>
              <td align="left">No-Operation Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8201</td>
              <td align="left">Association Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8202</td>
              <td align="left">Certificate Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8203</td>
              <td align="left">Cookie Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8204</td>
              <td align="left">Autokey Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8205</td>
              <td align="left">Leapseconds Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8206</td>
              <td align="left">Sign Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8207</td>
              <td align="left">IFF Identity Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8208</td>
              <td align="left">GQ Identity Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8209</td>
              <td align="left">MV Identity Message Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0x8302</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8402</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8502</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8602</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8702</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8802</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0x8902</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC002</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC102</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC200</td>
              <td align="left">No-Operation Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC201</td>
              <td align="left">Association Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC202</td>
              <td align="left">Certificate Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC203</td>
              <td align="left">Cookie Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC204</td>
              <td align="left">Autokey Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC205</td>
              <td align="left">Leapseconds Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC206</td>
              <td align="left">Sign Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC207</td>
              <td align="left">IFF Identity Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC208</td>
              <td align="left">GQ Identity Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC209</td>
              <td align="left">MV Identity Message Error Response</td>
              <td align="left">RFC 5906</td>
            </tr>
            <tr>
              <td align="left">0xC302</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC402</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC502</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC602</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC702</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC802</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xC902</td>
              <td align="left">Reserved for historic reasons</td>
              <td align="left">This RFC</td>
            </tr>
            <tr>
              <td align="left">0xF000-<br/>0xFFFF</td>
              <td align="left">Reserved for Experimental Use</td>
              <td align="left">This RFC</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document adds no new security considerations, as they are defined
in the document that defines the extension.  See the References column of the
appropriate table.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The members of the NTP Working Group helped a great deal.
Notable contributors include:</t>
      <ul spacing="normal">
        <li>
          <t>Miroslav Lichvar, Red Hat</t>
        </li>
        <li>
          <t>Daniel Franke, formerly at Akamai Technologies</t>
        </li>
        <li>
          <t>Danny Mayer, Network Time Foundation</t>
        </li>
        <li>
          <t>Michelle Cotton, formerly at IANA</t>
        </li>
        <li>
          <t>Tamme Dittrich, Tweede Golf</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative 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="RFC5906">
        <front>
          <title>Network Time Protocol Version 4: Autokey Specification</title>
          <author fullname="B. Haberman" initials="B." role="editor" surname="Haberman"/>
          <author fullname="D. Mills" initials="D." surname="Mills"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>This memo describes the Autokey security model for authenticating servers to clients using the Network Time Protocol (NTP) and public key cryptography. Its design is based on the premise that IPsec schemes cannot be adopted intact, since that would preclude stateless servers and severely compromise timekeeping accuracy. In addition, Public Key Infrastructure (PKI) schemes presume authenticated time values are always available to enforce certificate lifetimes; however, cryptographically verified timestamps require interaction between the timekeeping and authentication functions.</t>
            <t>This memo includes the Autokey requirements analysis, design principles, and protocol specification. A detailed description of the protocol states, events, and transition functions is included. A prototype of the Autokey design based on this memo has been implemented, tested, and documented in the NTP version 4 (NTPv4) software distribution for the Unix, Windows, and Virtual Memory System (VMS) operating systems at http://www.ntp.org. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5906"/>
        <seriesInfo name="DOI" value="10.17487/RFC5906"/>
      </reference>
      <reference anchor="RFC7821">
        <front>
          <title>UDP Checksum Complement in the Network Time Protocol (NTP)</title>
          <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
          <date month="March" year="2016"/>
          <abstract>
            <t>The Network Time Protocol (NTP) allows clients to synchronize to a time server using timestamped protocol messages. To facilitate accurate timestamping, some implementations use hardware-based timestamping engines that integrate the accurate transmission time into every outgoing NTP packet during transmission. Since these packets are transported over UDP, the UDP Checksum field is then updated to reflect this modification. This document proposes an extension field that includes a 2-octet Checksum Complement, allowing timestamping engines to reflect the checksum modification in the last 2 octets of the packet rather than in the UDP Checksum field. The behavior defined in this document is interoperable with existing NTP implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7821"/>
        <seriesInfo name="DOI" value="10.17487/RFC7821"/>
      </reference>
      <reference anchor="RFC7822">
        <front>
          <title>Network Time Protocol Version 4 (NTPv4) Extension Fields</title>
          <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
          <author fullname="D. Mayer" initials="D." surname="Mayer"/>
          <date month="March" year="2016"/>
          <abstract>
            <t>The Network Time Protocol version 4 (NTPv4) defines the optional usage of extension fields. An extension field, as defined in RFC 5905, is an optional field that resides at the end of the NTP header and that can be used to add optional capabilities or additional information that is not conveyed in the standard NTP header. This document updates RFC 5905 by clarifying some points regarding NTP extension fields and their usage with Message Authentication Codes (MACs).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7822"/>
        <seriesInfo name="DOI" value="10.17487/RFC7822"/>
      </reference>
      <reference anchor="RFC8126">
        <front>
          <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
          <author fullname="M. Cotton" initials="M." surname="Cotton"/>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <author fullname="T. Narten" initials="T." surname="Narten"/>
          <date month="June" year="2017"/>
          <abstract>
            <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
            <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
            <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="26"/>
        <seriesInfo name="RFC" value="8126"/>
        <seriesInfo name="DOI" value="10.17487/RFC8126"/>
      </reference>
      <reference anchor="RFC8573">
        <front>
          <title>Message Authentication Code for the Network Time Protocol</title>
          <author fullname="A. Malhotra" initials="A." surname="Malhotra"/>
          <author fullname="S. Goldberg" initials="S." surname="Goldberg"/>
          <date month="June" year="2019"/>
          <abstract>
            <t>The Network Time Protocol (NTP), as described in RFC 5905, states that NTP packets should be authenticated by appending NTP data to a 128-bit key and hashing the result with MD5 to obtain a 128-bit tag. This document deprecates MD5-based authentication, which is considered too weak, and recommends the use of AES-CMAC as described in RFC 4493 as a replacement.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8573"/>
        <seriesInfo name="DOI" value="10.17487/RFC8573"/>
      </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>
    </references>
  </back>
  <!-- ##markdown-source:
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
MiXETuY9eb/SOtXyvc2m4h8sXFHGKzUAAA==

-->

</rfc>
