| rfc9109xml2.original.xml | rfc9109.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="utf-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.2119.xml"> | ||||
| <!ENTITY RFC5905 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.5905.xml"> | ||||
| <!ENTITY RFC6056 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.6056.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.8174.xml"> | ||||
| <!ENTITY I-D.ietf-ntp-data-minimization SYSTEM "https://xml2rfc.ietf.org/public/ | ||||
| rfc/bibxml3/reference.I-D.ietf-ntp-data-minimization.xml"> | ||||
| <!ENTITY I-D.irtf-pearg-numeric-ids-generation SYSTEM "https://xml2rfc.ietf.org/ | ||||
| public/rfc/bibxml3/reference.I-D.draft-irtf-pearg-numeric-ids-generation-07.xml" | ||||
| > | ||||
| <!ENTITY RFC2663 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.2663.xml"> | ||||
| <!ENTITY RFC3715 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.3715.xml"> | ||||
| <!ENTITY RFC4953 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.4953.xml"> | ||||
| <!ENTITY RFC5927 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.5927.xml"> | ||||
| <!ENTITY RFC6335 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.6335.xml"> | ||||
| <!ENTITY RFC7942 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.7942.xml"> | ||||
| ]> | ||||
| <rfc submissionType="IETF" docName="draft-ietf-ntp-port-randomization-08" catego | ||||
| ry="std" updates="5905" ipr="trust200902"> | ||||
| <!-- Generated by id2xml 1.5.0 on 2021-06-30T00:34:10Z --> | ||||
| <?rfc strict="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc text-list-symbols="o*+-"?> | ||||
| <?rfc toc="yes"?> | ||||
| <front> | ||||
| <title abbrev="NTP Port Randomization">Port Randomization in the Network | ||||
| Time Protocol Version 4</title> | ||||
| <author initials="F." surname="Gont" fullname="Fernando Gont"> | ||||
| <organization>SI6 Networks</organization> | ||||
| <address><postal><street>Evaristo Carriego 2644</street> | ||||
| <city>Haedo, Provincia de Buenos Aires</city><code>1706</code> | ||||
| <country>Argentina</country> | ||||
| </postal> | ||||
| <phone>+54 11 4650 8472</phone> | ||||
| <email>fgont@si6networks.com</email> | ||||
| <uri>https://www.si6networks.com</uri> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="G." surname="Gont" fullname="Guillermo Gont"> | ||||
| <organization>SI6 Networks</organization> | ||||
| <address><postal><street>Evaristo Carriego 2644</street> | ||||
| <city>Haedo, Provincia de Buenos Aires</city><code>1706</code> | ||||
| <country>Argentina</country> | ||||
| </postal> | ||||
| <phone>+54 11 4650 8472</phone> | ||||
| <email>ggont@si6networks.com</email> | ||||
| <uri>https://www.si6networks.com</uri> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="M." surname="Lichvar" fullname="Miroslav Lichvar"> | ||||
| <organization>Red Hat</organization> | ||||
| <address><postal><street>Purkynova 115</street> | ||||
| <city>Brno</city><code>612 00</code> | ||||
| <country>Czech Republic</country> | ||||
| </postal> | ||||
| <email>mlichvar@redhat.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2021" month="June"/> | ||||
| <workgroup>Network Time Protocol (ntp) Working Group</workgroup> | ||||
| <!-- [rfced] Please insert any keywords (beyond those that appear in the title) for use on https://www.rfc-editor.org/search. --> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <keyword>example</keyword> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-ntp-port-ran domization-08" number="9109" submissionType="IETF" category="std" consensus="tru e" updates="5905" ipr="trust200902" obsoletes="" xml:lang="en" symRefs="true" so rtRefs="true" tocInclude="true" version="3"> | |||
| <abstract><t> | <front> | |||
| The Network Time Protocol can operate in several modes. Some of | ||||
| these modes are based on the receipt of unsolicited packets, and | ||||
| therefore require the use of a well-known port as the local port | ||||
| number. However, in the case of NTP modes where the use of a well- | ||||
| known port is not required, employing such well-known port | ||||
| unnecessarily facilitates the ability of attackers to perform blind/ | ||||
| off-path attacks. This document formally updates RFC5905, | ||||
| recommending the use of transport-protocol ephemeral port | ||||
| randomization for those modes where use of the NTP well-known port is | ||||
| not required.</t> | ||||
| </abstract> | <title abbrev="NTP Port Randomization">Network Time Protocol Version 4: Port | |||
| </front> | Randomization</title> | |||
| <seriesInfo name="RFC" value="9109"/> | ||||
| <author initials="F." surname="Gont" fullname="Fernando Gont"> | ||||
| <organization>SI6 Networks</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Evaristo Carriego 2644</street> | ||||
| <city>Haedo, Provincia de Buenos Aires</city> | ||||
| <code>1706</code> | ||||
| <country>Argentina</country> | ||||
| </postal> | ||||
| <phone>+54 11 4650 8472</phone> | ||||
| <email>fgont@si6networks.com</email> | ||||
| <uri>https://www.si6networks.com</uri> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="G." surname="Gont" fullname="Guillermo Gont"> | ||||
| <organization>SI6 Networks</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Evaristo Carriego 2644</street> | ||||
| <city>Haedo, Provincia de Buenos Aires</city> | ||||
| <code>1706</code> | ||||
| <country>Argentina</country> | ||||
| </postal> | ||||
| <phone>+54 11 4650 8472</phone> | ||||
| <email>ggont@si6networks.com</email> | ||||
| <uri>https://www.si6networks.com</uri> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="M." surname="Lichvar" fullname="Miroslav Lichvar"> | ||||
| <organization>Red Hat</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>Purkynova 115</street> | ||||
| <city>Brno</city> | ||||
| <code>612 00</code> | ||||
| <country>Czech Republic</country> | ||||
| </postal> | ||||
| <email>mlichvar@redhat.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2021" month="August"/> | ||||
| <workgroup>Network Time Protocol (ntp) Working Group</workgroup> | ||||
| <keyword>security</keyword> | ||||
| <keyword>transport protocols</keyword> | ||||
| <middle> | <abstract> | |||
| <section title="Introduction" anchor="sect-1"><t> | <t> | |||
| The Network Time Protocol (NTP) can operate in several modes. Some of these | ||||
| modes are based on the receipt of unsolicited packets and therefore | ||||
| require the use of a well-known port as the local port. However, in | ||||
| the case of NTP modes where the use of a well-known port is not required, | ||||
| employing such a well-known port unnecessarily facilitates the ability of | ||||
| attackers to perform blind/off-path attacks. This document formally | ||||
| updates RFC 5905, recommending the use of transport-protocol ephemeral port | ||||
| randomization for those modes where use of the NTP well-known port is not | ||||
| required.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <middle> | ||||
| <section anchor="sect-1" numbered="true" toc="default"> | ||||
| <name>Introduction</name> | ||||
| <t> | ||||
| The Network Time Protocol (NTP) is one of the oldest Internet | The Network Time Protocol (NTP) is one of the oldest Internet | |||
| protocols, and currently specified in <xref target="RFC5905"/>. Since its or iginal | protocols and is currently specified in <xref target="RFC5905" format="defaul t"/>. Since its original | |||
| implementation, standardization, and deployment, a number of | implementation, standardization, and deployment, a number of | |||
| vulnerabilities have been found both in the NTP specification and in | vulnerabilities have been found both in the NTP specification and in | |||
| some of its implementations <xref target="NTP-VULN"/>. Some of these | some of its implementations <xref target="NTP-VULN" format="default"/>. Some | |||
| vulnerabilities allow for off-path/blind attacks, where an attacker | of these | |||
| can send forged packets to one or both NTP peers for achieving Denial | vulnerabilities allow for blind/off-path attacks, where an attacker | |||
| of Service (DoS), time-shifts, or other undesirable outcomes. Many | can send forged packets to one or both NTP peers to achieve Denial | |||
| of Service (DoS), time shifts, or other undesirable outcomes. Many | ||||
| of these attacks require the attacker to guess or know at least a | of these attacks require the attacker to guess or know at least a | |||
| target NTP association, typically identified by the tuple {srcaddr, | target NTP association, typically identified by the tuple {srcaddr, | |||
| srcport, dstaddr, dstport, keyid} (see section 9.1 of <xref target="RFC5905"/ | srcport, dstaddr, dstport, keyid} (see <xref target="RFC5905" sectionFormat=" | |||
| >). | of" section="9.1"/>). | |||
| Some of these parameters may be easily known or guessed.</t> | Some of these parameters may be known or easily guessed.</t> | |||
| <t> | ||||
| <t> | ||||
| NTP can operate in several modes. Some of these modes rely on the | NTP can operate in several modes. Some of these modes rely on the | |||
| ability of nodes to receive unsolicited packets, and therefore | ability of nodes to receive unsolicited packets and therefore | |||
| require the use of the NTP well-known port (123). However, for modes | require the use of the NTP well-known port (123). However, for modes | |||
| where the use of a well-known port is not required, employing the NTP | where the use of a well-known port is not required, employing the | |||
| well-known port unnecessarily facilitates the ability of an attacker | NTP well-known port unnecessarily facilitates the ability of attackers | |||
| to perform blind/off-path attacks (since knowledge of the port | to perform blind/off-path attacks (since knowledge of the port | |||
| numbers is typically required for such attacks). A recent study | numbers is typically required for such attacks). A recent study | |||
| <xref target="NIST-NTP"/> that analyzes the port numbers employed by NTP clie | <xref target="NIST-NTP" format="default"/> that analyzes the port numbers emp | |||
| nts | loyed by NTP clients | |||
| suggests that a considerable number of NTP clients employ the NTP | suggests that numerous NTP clients employ the NTP well-known port as their lo | |||
| well-known port as their local port, or select predictable ephemeral | cal port, or select predictable ephemeral | |||
| port numbers, thus unnecessarily facilitating the ability of | port numbers, thus unnecessarily facilitating the ability of | |||
| attackers to perform blind/off-path attacks against NTP.</t> | attackers to perform blind/off-path attacks against NTP.</t> | |||
| <t> | ||||
| <t> | BCP 156 <xref target="RFC6056" format="default"/> already recommends the rand | |||
| BCP 156 <xref target="RFC6056"/> already recommends the randomization of tran | omization of transport-protocol ephemeral ports. This document aligns NTP with | |||
| sport- | the | |||
| protocol ephemeral ports. This document aligns NTP with the | recommendation in BCP 156 <xref target="RFC6056" format="default"/> by formal | |||
| recommendation in BCP 156 <xref target="RFC6056"/>, by formally updating <xre | ly updating <xref target="RFC5905" format="default"/> | |||
| f target="RFC5905"/> | ||||
| such that port randomization is employed for those NTP modes for | such that port randomization is employed for those NTP modes for | |||
| which the use of the NTP well-known port is not needed.</t> | which the use of the NTP well-known port is not needed.</t> | |||
| </section> | ||||
| </section> | <section anchor="sect-2" numbered="true" toc="default"> | |||
| <name>Terminology</name> | ||||
| <section title="Terminology" anchor="sect-2"><t> | <t> | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUI | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | RED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bc | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, the | p14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and | |||
| y appear in all | "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described | |||
| in BCP | ||||
| 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="d | ||||
| efault"/> when, and only when, they appear in all | ||||
| capitals, as shown here.</t> | capitals, as shown here.</t> | |||
| </section> | ||||
| </section> | <section anchor="sect-3" numbered="true" toc="default"> | |||
| <name>Considerations about Port Randomization in NTP</name> | ||||
| <section title="Considerations About Port Randomization in NTP" anchor="s | <t> | |||
| ect-3"><t> | ||||
| The following subsections analyze a number of considerations about | The following subsections analyze a number of considerations about | |||
| transport-protocol ephemeral port randomization when applied to NTP.</t> | transport-protocol ephemeral port randomization when applied to NTP.</t> | |||
| <section anchor="sect-3.1" numbered="true" toc="default"> | ||||
| <section title="Mitigation Against Off-path Attacks" anchor="sect-3.1"><t | <name>Mitigation against Off-Path Attacks</name> | |||
| > | <t> | |||
| There has been a fair share of work in the area of off-path/blind | There has been a fair share of work in the area of blind/off-path | |||
| attacks against transport protocols and upper-layer protocols, such | attacks against transport protocols and upper-layer protocols, such | |||
| as <xref target="RFC5927"/> and <xref target="RFC4953"/>. Whether the target | as <xref target="RFC4953" format="default"/> and <xref target="RFC5927" forma | |||
| of the attack is a | t="default"/>. Whether the target of the attack is a | |||
| transport protocol instance (e.g., TCP connection) or an upper-layer | transport-protocol instance (e.g., TCP connection) or an upper-layer | |||
| protocol instance (e.g., an application protocol instance), the | protocol instance (e.g., an application-protocol instance), the | |||
| attacker is required to know or guess the five-tuple {Protocol, IP | attacker is required to know or guess the five-tuple {Protocol, IP | |||
| Source Address, IP Destination Address, Source Port, Destination | Source Address, IP Destination Address, Source Port, Destination | |||
| Port} that identifies the target transport protocol instance or the | Port} that identifies the target transport-protocol instance or the | |||
| transport protocol instance employed by the target upper-layer | transport-protocol instance employed by the target upper-layer | |||
| protocol instance. Therefore, increasing the difficulty of guessing | protocol instance. Therefore, increasing the difficulty of guessing | |||
| this five-tuple helps mitigate blind/off-path attacks.</t> | this five-tuple helps mitigate blind/off-path attacks.</t> | |||
| <t> | ||||
| <t> | ||||
| As a result of these considerations, transport-protocol ephemeral | As a result of these considerations, transport-protocol ephemeral | |||
| port randomization is a best current practice (BCP 156) that helps | port randomization is a best current practice (BCP 156) that helps | |||
| mitigate off-path attacks at the transport-layer. This document | mitigate off-path attacks at the transport layer. This document | |||
| aligns the NTP specification <xref target="RFC5905"/> with the existing best | aligns the NTP specification <xref target="RFC5905" format="default"/> with t | |||
| current | he existing best current | |||
| practice on ephemeral port selection, irrespective of other | practice on transport-protocol ephemeral port selection, irrespective of othe | |||
| techniques that may (and should) be implemented for mitigating off- | r | |||
| path attacks.</t> | techniques that may (and should) be implemented for mitigating off-path attac | |||
| ks.</t> | ||||
| <t> | <t> | |||
| We note that transport-protocol ephemeral port randomization is a | We note that transport-protocol ephemeral port randomization is a | |||
| transport-layer mitigation against off-path/blind attacks, and does | transport-layer mitigation against blind/off-path attacks and does | |||
| not preclude (nor is it precluded by) other possible mitigations for | not preclude (nor is it precluded by) other possible mitigations for | |||
| off-path attacks that might be implemented at other layers (e.g. | off-path attacks that might be implemented at other layers (e.g., | |||
| <xref target="I-D.ietf-ntp-data-minimization"/>). For instance, some of the | <xref target="I-D.ietf-ntp-data-minimization" format="default"/>). For insta | |||
| nce, some of the | ||||
| aforementioned mitigations may be ineffective against some off-path | aforementioned mitigations may be ineffective against some off-path | |||
| attacks <xref target="NTP-FRAG"/> or may benefit from the additional entropy | attacks <xref target="NTP-FRAG" format="default"/> or may benefit from the ad | |||
| provided by port randomization <xref target="NTP-security"/>.</t> | ditional entropy | |||
| provided by port randomization <xref target="NTP-security" format="default"/> | ||||
| </section> | .</t> | |||
| </section> | ||||
| <section title="Effects on Path Selection" anchor="sect-3.2"><t> | <section anchor="sect-3.2" numbered="true" toc="default"> | |||
| Intermediate systems implementing the Equal-Cost Multi-Path (ECMP) | <name>Effects on Path Selection</name> | |||
| <t> | ||||
| Intermediate systems implementing the Equal-Cost Multipath (ECMP) | ||||
| algorithm may select the outgoing link by computing a hash over a | algorithm may select the outgoing link by computing a hash over a | |||
| number of values, that include the transport-protocol source port. | number of values, including the transport-protocol source port. | |||
| Thus, as discussed in <xref target="NTP-CHLNG"/>, the selected client port ma | Thus, as discussed in <xref target="NTP-CHLNG" format="default"/>, the select | |||
| y have | ed client port may have | |||
| an influence on the measured offset and delay.</t> | an influence on the measured offset and delay.</t> | |||
| <t> | ||||
| <t> | ||||
| If the source port is changed with each request, packets in different | If the source port is changed with each request, packets in different | |||
| exchanges will be more likely to take different paths, which could | exchanges will be more likely to take different paths, which could | |||
| cause the measurements to be less stable and have a negative impact | cause the measurements to be less stable and have a negative impact | |||
| on the stability of the clock.</t> | on the stability of the clock.</t> | |||
| <t> | ||||
| <t> | Network paths to/from a given server are less likely to change between | |||
| Network paths to/from a given server are less likely to change | requests if port randomization is applied on a per-association basis. This | |||
| between requests if port randomization is applied on a per- | approach minimizes the impact on the stability of NTP measurements, | |||
| association basis. This approach minimizes the impact on the | but it may cause different clients in the same network synchronized to the | |||
| stability of NTP measurements, but may cause different clients in the | same NTP server to have a significant stable offset between their clocks. | |||
| same network synchronized to the same NTP server to have a | This is due to their NTP exchanges consistently taking different paths with | |||
| significant stable offset between their clocks due to their NTP | different asymmetry in the network delay.</t> | |||
| exchanges consistently taking different paths with different | <t> | |||
| asymmetry in the network delay.</t> | <xref target="sect-4" format="default"/> recommends that NTP implementations | |||
| randomize the ephemeral | ||||
| <t> | ||||
| <xref target="sect-4"/> recommends NTP implementations to randomize the ephem | ||||
| eral | ||||
| port number of client/server associations. The choice of whether to | port number of client/server associations. The choice of whether to | |||
| randomize the port number on a per-association or a per-request basis | randomize the port number on a per-association or a per-request basis | |||
| is left to the implementation.</t> | is left to the implementation.</t> | |||
| </section> | ||||
| </section> | <section anchor="sect-3.3" numbered="true" toc="default"> | |||
| <name>Filtering of NTP Traffic</name> | ||||
| <section title="Filtering of NTP traffic" anchor="sect-3.3"><t> | <t> | |||
| In a number of scenarios (such as when mitigating DDoS attacks), a | In a number of scenarios (such as when mitigating DDoS attacks), a | |||
| network operator may want to differentiate between NTP requests sent | network operator may want to differentiate between NTP requests sent | |||
| by clients, and NTP responses sent by NTP servers. If an | by clients and NTP responses sent by NTP servers. If an | |||
| implementation employs the NTP well-known port for the client port | implementation employs the NTP well-known port for the client port, requests/ | |||
| number, requests/responses cannot be readily differentiated by | responses cannot be readily differentiated by | |||
| inspecting the source and destination port numbers. Implementation | inspecting the source and destination port numbers. | |||
| of port randomization for non-symmetrical modes allows for simple | ||||
| differentiation of NTP requests and responses, and for the | ||||
| enforcement of security policies that may be valuable for the | ||||
| mitigation of DDoS attacks, when all NTP clients in a given network | ||||
| employ port randomization.</t> | ||||
| </section> | ||||
| <section title="Effect on NAPT devices" anchor="sect-3.4"><t> | Implementation of port randomization for nonsymmetrical modes allows for | |||
| simple differentiation of NTP requests and responses and for the | ||||
| enforcement of security policies that may be valuable for the mitigation of | ||||
| DDoS attacks, when all NTP clients in a given network employ port randomizati | ||||
| on.</t> | ||||
| </section> | ||||
| <section anchor="sect-3.4" numbered="true" toc="default"> | ||||
| <name>Effect on NAPT Devices</name> | ||||
| <t> | ||||
| Some NAPT devices will reportedly not translate the source port of a | Some NAPT devices will reportedly not translate the source port of a | |||
| packet when a system port number (i.e., a port number in the range | packet when a system port number (i.e., a port number in the range | |||
| 0-1023) <xref target="RFC6335"/> is employed. In networks where such NAPT de vices | 0-1023) <xref target="RFC6335" format="default"/> is employed. In networks w here such NAPT devices | |||
| are employed, use of the NTP well-known port for the client port may | are employed, use of the NTP well-known port for the client port may | |||
| limit the number of hosts that may successfully employ NTP client | limit the number of hosts that may successfully employ NTP client | |||
| implementations at any given time.</t> | implementations at any given time.</t> | |||
| <t>NOTES: | ||||
| <list> | ||||
| <t> NAPT devices are defined in Section 4.1.2 of <xref target="RFC2663"/> | ||||
| .</t> | ||||
| <t>The reported behavior is similar to the special treatment of UDP | ||||
| port 500 that has been documented in Section 2.3 of <xref target="RFC3715" | ||||
| />.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <aside> | |||
| <t>NOTES:</t> | ||||
| <t indent="3">NAPT devices are defined in <xref target="RFC2663" section | ||||
| Format="of" section="4.1.2"/>.</t> | ||||
| <t indent="3">The reported behavior is similar to the special treatment | ||||
| of UDP | ||||
| port 500, which has been documented in <xref target="RFC3715" sectionForma | ||||
| t="of" section="2.3"/>.</t> | ||||
| </aside> | ||||
| <t> | ||||
| In the case of NAPT devices that will translate the source port even | In the case of NAPT devices that will translate the source port even | |||
| when a system port is employed, packets reaching the external realm | when a system port is employed, packets reaching the external realm | |||
| of the NAPT will not employ the NTP well-known port as the source | of the NAPT will not employ the NTP well-known port as the source | |||
| port, as a result of the port translation function performed by the | port, as a result of the port translation function being performed by the | |||
| NAPT device.</t> | NAPT device.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="sect-4" numbered="true" toc="default"> | ||||
| </section> | <name>Update to RFC 5905</name> | |||
| <t> | ||||
| <section title="Update to RFC5905" anchor="sect-4"><t> | The following text from Section | |||
| The following text from Section 9.1 ("Peer Process Variables") of | <xref target="RFC5905" section="9.1" sectionFormat="bare">Peer | |||
| <xref target="RFC5905"/>:</t> | Process Variables</xref> of <xref target="RFC5905"/>:</t> | |||
| <blockquote> | ||||
| <t><list style="hanging" hangIndent="3"> | <dl newline="false" spacing="normal" indent="3"> | |||
| <t hangText="dstport:"> UDP port number of the client, ordinarily the NTP | <dt>dstport:</dt> | |||
| port | <dd> UDP port number of the client, ordinarily the NTP port | |||
| number PORT (123) assigned by the IANA. This becomes the source | number PORT (123) assigned by the IANA. This becomes the source | |||
| port number in packets sent from this association.</t> | port number in packets sent from this association.</dd> | |||
| </dl> | ||||
| </list> | </blockquote> | |||
| </t> | <t>is replaced with:</t> | |||
| <t>is replaced with:</t> | ||||
| <t><list style="hanging" hangIndent="3"> | <blockquote> | |||
| <t hangText="dstport:"> UDP port number of the client. In the case of br | <dl newline="false" spacing="normal" indent="3"> | |||
| oadcast | <dt>dstport:</dt> | |||
| server mode (5) and symmetric modes (1 and 2), it SHOULD contain | <dd> UDP port number of the client. In the case of broadcast | |||
| the NTP port number PORT (123) assigned by the IANA. In the | server mode (5) and symmetric modes (1 and 2), it <bcp14>SHOULD</bcp14> co | |||
| client mode (3), it SHOULD contain a randomized port number, as | ntain | |||
| specified in <xref target="RFC6056"/>. The value in this variable becomes | the NTP port number PORT (123) assigned by IANA. In the | |||
| the | client mode (3), it <bcp14>SHOULD</bcp14> contain a randomized port number | |||
| , as | ||||
| specified in <xref target="RFC6056" format="default"/>. The value in this | ||||
| variable becomes the | ||||
| source port number of packets sent from this association. The | source port number of packets sent from this association. The | |||
| randomized port number SHOULD NOT be shared with other | randomized port number <bcp14>SHOULD NOT</bcp14> be shared with other | |||
| associations, to avoid revealing the randomized port to other | associations, to avoid revealing the randomized port to other | |||
| associations.</t> | associations.</dd> | |||
| <dt/> | ||||
| <t>If a client implementation performs ephemeral port randomization | <dd>If a client implementation performs transport-protocol ephemeral por | |||
| on a per-request basis, it SHOULD close the corresponding socket/ | t randomization | |||
| port after each request/response exchange. In order to prevent | on a per-request basis, it <bcp14>SHOULD</bcp14> close the corresponding | |||
| duplicate or delayed server packets from eliciting ICMP port | socket/port | |||
| unreachable error messages at the client, the client MAY wait for | after each request/response exchange. In order to prevent duplicate | |||
| more responses from the server for a specific period of time (e.g. | or delayed server packets from eliciting ICMP port unreachable error | |||
| 3 seconds) before closing the UDP socket/port.</t> | messages <xref target="RFC0792"/> <xref target="RFC4443"/> at the client | |||
| , the client <bcp14>MAY</bcp14> wait for more responses from | ||||
| </list> | the server for a specific period of time (e.g., 3 seconds) before | |||
| </t> | closing the UDP socket/port.</dd> | |||
| <dt/> | ||||
| <t>NOTES:</t> | <dd/> | |||
| </dl> | ||||
| <t>Randomizing the ephemeral port number on a per-request basis | <dl newline="false" spacing="normal" indent="6"> | |||
| will better mitigate off-path/blind attacks, particularly if | <dt/><dd><t>NOTES:</t> | |||
| <t>Randomizing the ephemeral port number on a per-request basis | ||||
| will better mitigate blind/off-path attacks, particularly if | ||||
| the socket/port is closed after each request/response exchange, | the socket/port is closed after each request/response exchange, | |||
| as recommended above. The choice of whether to randomize the | as recommended above. The choice of whether to randomize the | |||
| ephemeral port number on a per-request or a per-association | ephemeral port number on a per-request or a per-association | |||
| basis is left to the implementation, and should consider the | basis is left to the implementation, and it should consider the | |||
| possible effects on path selection along with its possible | possible effects on path selection along with its possible | |||
| impact on time measurement.</t> | impact on time measurement.</t></dd> | |||
| <dt/> | ||||
| <t>On most current operating systems, which implement ephemeral | <dd>On most current operating systems, which implement ephemeral | |||
| port randomization <xref target="RFC6056"/>, an NTP client may normally | port randomization <xref target="RFC6056" format="default"/>, an NTP cl | |||
| rely | ient may normally rely | |||
| on the operating system to perform ephemeral port | on the operating system to perform ephemeral port | |||
| randomization. For example, NTP implementations using POSIX | randomization. For example, NTP implementations using POSIX | |||
| sockets may achieve ephemeral port randomization by *not* | sockets may achieve ephemeral port randomization by <em>not</em> | |||
| binding the socket with the bind() function, or binding it to | binding the socket with the bind() function or binding it to | |||
| port 0, which has a special meaning of "any port". connect()ing | port 0, which has a special meaning of "any port". Using the connect() | |||
| the socket will make the port inaccessible by other systems | function for the socket will make the port inaccessible | |||
| (that is, only packets from the specified remote socket will be | by other systems (that is, only packets from the specified remote socket will | |||
| received by the application).</t> | be | |||
| received by the application).</dd> | ||||
| </section> | </dl> | |||
| </blockquote> | ||||
| <section title="Implementation Status" anchor="sect-5"><t> | ||||
| [RFC Editor: Please remove this section before publication of this document a | ||||
| s an RFC.]</t> | ||||
| <t> | ||||
| This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of this | ||||
| Internet-Draft, and is based on a proposal described in <xref target="RFC7942 | ||||
| "/>. | ||||
| The description of implementations in this section is intended to | ||||
| assist the IETF in its decision processes in progressing drafts to | ||||
| RFCs. Please note that the listing of any individual implementation | ||||
| here does not imply endorsement by the IETF. Furthermore, no effort | ||||
| has been spent to verify the information presented here that was | ||||
| supplied by IETF contributors. This is not intended as, and must not | ||||
| be construed to be, a catalog of available implementations or their | ||||
| features. Readers are advised to note that other implementations may | ||||
| exist.</t> | ||||
| <t><list style="hanging" hangIndent="3"> | ||||
| <t hangText="OpenNTPD:"> | ||||
| <xref target="OpenNTPD"/> has never explicitly set the local port of NTP | ||||
| clients, | ||||
| and thus employs the ephemeral port selection algorithm | ||||
| implemented by the operating system. Thus, on all operating | ||||
| systems that implement port randomization (such as current | ||||
| versions of OpenBSD, Linux, and FreeBSD), OpenNTPD will employ | ||||
| port randomization for client ports. | ||||
| </t> | ||||
| <t hangText="chrony:"> | ||||
| <xref target="chrony"/> by default does not set the local client port, an | ||||
| d thus | ||||
| employs the ephemeral port selection algorithm implemented by the | ||||
| operating system. Thus, on all operating systems that implement | ||||
| port randomization (such as current versions of OpenBSD, Linux, | ||||
| and FreeBSD), chrony will employ port randomization for client | ||||
| ports. | ||||
| </t> | ||||
| <t hangText="nwtime.org's sntp client:"> | ||||
| sntp does not explicitly set the local port, and thus employs the | ||||
| ephemeral port selection algorithm implemented by the operating | ||||
| system. Thus, on all operating systems that implement port | ||||
| randomization (such as current versions of OpenBSD, Linux, and | ||||
| FreeBSD), it will employ port randomization for client ports. | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </section> | ||||
| <section title="IANA Considerations" anchor="sect-6"><t> | ||||
| There are no IANA registries within this document. The RFC-Editor | ||||
| can remove this section before publication of this document as an | ||||
| RFC.</t> | ||||
| </section> | ||||
| <section title="Security Considerations" anchor="sect-7"><t> | </section> | |||
| <section anchor="sect-6" numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <t> | ||||
| This document has no IANA actions.</t> | ||||
| </section> | ||||
| <section anchor="sect-7" numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <t> | ||||
| The security implications of predictable numeric identifiers | The security implications of predictable numeric identifiers | |||
| <xref target="I-D.irtf-pearg-numeric-ids-generation"/> (and of predictable | <xref target="I-D.irtf-pearg-numeric-ids-generation" format="default"/> (and | |||
| transport-protocol port numbers <xref target="RFC6056"/> in particular) have | of predictable | |||
| been | transport-protocol port numbers <xref target="RFC6056" format="default"/> in | |||
| particular) have been | ||||
| known for a long time now. However, the NTP specification has | known for a long time now. However, the NTP specification has | |||
| traditionally followed a pattern of employing common settings even | traditionally followed a pattern of employing common settings even | |||
| when not strictly necessary, which at times has resulted in negative | when not strictly necessary, which at times has resulted in negative | |||
| security and privacy implications (see e.g. | security and privacy implications (see, e.g., | |||
| <xref target="I-D.ietf-ntp-data-minimization"/>). The use of the NTP well-kn | <xref target="I-D.ietf-ntp-data-minimization" format="default"/>). The use o | |||
| own | f the NTP well-known | |||
| port (123) for the srcport and dstport variables is not required for | port (123) for the srcport and dstport variables is not required for | |||
| all operating modes. Such unnecessary usage comes at the expense of | all operating modes. Such unnecessary usage comes at the expense of | |||
| reducing the amount of work required for an attacker to successfully | reducing the amount of work required for an attacker to successfully | |||
| perform off-path/blind attacks against NTP. Therefore, this document | perform blind/off-path attacks against NTP. Therefore, this document | |||
| formally updates <xref target="RFC5905"/>, recommending the use of transport- | formally updates <xref target="RFC5905" format="default"/>, recommending the | |||
| protocol port randomization when use of the NTP well-known port is | use of transport-protocol port randomization when use of the NTP well-known port | |||
| is | ||||
| not required.</t> | not required.</t> | |||
| <t> | ||||
| <t> | This issue has been assigned CVE-2019-11331 <xref target="VULN-REPORT" format | |||
| This issue has been assigned CVE-2019-11331 <xref target="VULN-REPORT"/> in t | ="default"/> in the U.S. | |||
| he U.S. | ||||
| National Vulnerability Database (NVD).</t> | National Vulnerability Database (NVD).</t> | |||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| </section> | <displayreference target="I-D.ietf-ntp-data-minimization" to="NTP-DATA-MINIMIZAT | |||
| ION"/> | ||||
| <section title="Acknowledgments" anchor="sect-8"><t> | <displayreference target="I-D.irtf-pearg-numeric-ids-generation" to="PEARG-NUMER | |||
| The authors would like to thank (in alphabetical order) Ivan Arce, | IC-IDS"/> | |||
| Roman Danyliw, Dhruv Dhody, Lars Eggert, Todd Glassey, Blake Hudson, | ||||
| Benjamin Kaduk, Erik Kline, Watson Ladd, Aanchal Malhotra, Danny | ||||
| Mayer, Gary E. Miller, Bjorn Mork, Hal Murray, Francesca Palombini, | ||||
| Tomoyuki Sahara, Zaheduzzaman Sarker, Dieter Sibold, Steven Sommars, | ||||
| Jean St-Laurent, Kristof Teichel, Brian Trammell, Eric Vyncke, Ulrich | ||||
| Windl, and Dan Wing, for providing valuable comments on earlier | ||||
| versions of this document.</t> | ||||
| <t> | ||||
| Watson Ladd raised the problem of DDoS mitigation when the NTP well- | ||||
| known port is employed as the client port (discussed in Section 3.3 | ||||
| of this document).</t> | ||||
| <t> | ||||
| The authors would like to thank Harlan Stenn for answering questions | ||||
| about nwtime.org's NTP implementation.</t> | ||||
| <t> | ||||
| Fernando would like to thank Nelida Garcia and Jorge Oscar Gont, for | ||||
| their love and support.</t> | ||||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| &RFC2119; | ||||
| &RFC5905; | ||||
| &RFC6056; | ||||
| &RFC8174; | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <reference anchor="chrony" target="https://chrony.tuxfamily.org/"><front> | ||||
| <title>chrony</title> | ||||
| <author> | ||||
| </author> | ||||
| <date/> | <references> | |||
| </front> | <name>References</name> | |||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5905.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6056.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| </reference> | </references> | |||
| &I-D.ietf-ntp-data-minimization; | <references> | |||
| &I-D.irtf-pearg-numeric-ids-generation; | <name>Informative References</name> | |||
| <reference anchor="NIST-NTP" target="https://tf.nist.gov/general/pdf/2818 | ||||
| .pdf"><front> | ||||
| <title>Usage Analysis of the NIST Internet Time Service</title> | ||||
| <author initials="J." surname="Sherman" fullname="J. Sherman"> | ||||
| </author> | ||||
| <author initials="J." surname="Levine" fullname="J. Levine"> | <reference anchor='I-D.ietf-ntp-data-minimization'> | |||
| </author> | <front> | |||
| <title>NTP Client Data Minimization</title> | ||||
| <author initials='D' surname='Franke' fullname='Daniel Franke'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='A' surname='Malhotra' fullname='Aanchal Malhotra'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='March' day='25' year='2019' /> | ||||
| </front> | ||||
| <seriesInfo name='Internet-Draft' value='draft-ietf-ntp-data-minimization-04' /> | ||||
| <format type='TXT' | ||||
| target='http://www.ietf.org/internet-drafts/draft-ietf-ntp-data-minimiza | ||||
| tion-04.txt' /> | ||||
| </reference> | ||||
| <date month="March" year="2016"/> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| </front> | .irtf-pearg-numeric-ids-generation.xml"/> | |||
| <seriesInfo name="Journal" value="of Research of the National Institute o | <reference anchor="NIST-NTP" target="https://tf.nist.gov/general/pdf/281 | |||
| f Standards and Technology Volume 121"/> | 8.pdf"> | |||
| </reference> | <front> | |||
| <reference anchor="NTP-CHLNG" target="http://leapsecond.com/ntp/NTP_Paper | <title>Usage Analysis of the NIST Internet Time Service</title> | |||
| _Sommars_PTTI2017.pdf"><front> | <author initials="J." surname="Sherman" fullname="Jeffrey Sherman"> | |||
| <title>Challenges in Time Transfer Using the Network Time Protocol (NTP)< | ||||
| /title> | ||||
| <author initials="S." surname="Sommars" fullname="S. Sommars"> | ||||
| </author> | </author> | |||
| <author initials="J." surname="Levine" fullname="Judah Levine"> | ||||
| <date month="January" year="2017"/> | ||||
| </front> | ||||
| <seriesInfo name="Proceedings" value="of the 48th Annual Precise Time and | ||||
| Time Interval Systems and Applications Meeting"/> | ||||
| </reference> | ||||
| <reference anchor="NTP-FRAG" target="https://www.cs.bu.edu/~goldbe/papers | ||||
| /NTPattack.pdf"><front> | ||||
| <title>Attacking the Network Time Protocol</title> | ||||
| <author initials="A." surname="Malhotra" fullname="A. Malhotra"> | ||||
| </author> | </author> | |||
| <date month="March" year="2016"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.6028/jres.121.003"/> | ||||
| <refcontent>Journal of Research of the National Institute of Standards | ||||
| and Technology, Volume 121</refcontent> | ||||
| </reference> | ||||
| <author initials="I." surname="Cohen" fullname="I. Cohen"> | <reference anchor="NTP-CHLNG" target="http://leapsecond.com/ntp/NTP_Pape | |||
| r_Sommars_PTTI2017.pdf"> | ||||
| <front> | ||||
| <title>Challenges in Time Transfer using the Network Time Protocol ( | ||||
| NTP)</title> | ||||
| <author initials="S." surname="Sommars" fullname="Steven Sommars"> | ||||
| </author> | </author> | |||
| <date month="January" year="2017"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.33012/2017.14978"/> | ||||
| <refcontent>Proceedings of the 48th Annual Precise Time and Time Inter | ||||
| val Systems and Applications Meeting, pp. 271-290</refcontent> | ||||
| </reference> | ||||
| <author initials="E." surname="Brakke" fullname="E. Brakke"> | <reference anchor="NTP-FRAG" target="https://www.cs.bu.edu/~goldbe/paper | |||
| s/NTPattack.pdf"> | ||||
| <front> | ||||
| <title>Attacking the Network Time Protocol</title> | ||||
| <author initials="A." surname="Malhotra" fullname="Aanchal Malhotra" | ||||
| > | ||||
| </author> | </author> | |||
| <author initials="I." surname="Cohen" fullname="Isaac Cohen"> | ||||
| <author initials="S." surname="Goldberg" fullname="S. Goldberg"> | ||||
| </author> | </author> | |||
| <author initials="E." surname="Brakke" fullname="Erik Brakke"> | ||||
| <date month="Feb" year="2017"/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="NTP-security" target="https://eprint.iacr.org/2016/100 | ||||
| 6"><front> | ||||
| <title>The Security of NTP's Datagram Protocol</title> | ||||
| <author initials="A." surname="Malhotra" fullname="A. Malhotra"> | ||||
| </author> | </author> | |||
| <author initials="S." surname="Goldberg" fullname="Sharon Goldberg"> | ||||
| <author initials="M." surname="Van Gundy" fullname="M. Van Gundy"> | ||||
| </author> | </author> | |||
| <date month="February" year="2016"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.14722/ndss.2016.23090"/> | ||||
| <refcontent>NDSS '16</refcontent> | ||||
| </reference> | ||||
| <author initials="V." surname="Varia" fullname="V. Varia"> | <reference anchor="NTP-security" target="https://eprint.iacr.org/2016/10 | |||
| 06.pdf"> | ||||
| <front> | ||||
| <title>The Security of NTP's Datagram Protocol</title> | ||||
| <author initials="A." surname="Malhotra" fullname="Aanchal Malhotra" | ||||
| > | ||||
| </author> | </author> | |||
| <author initials="M." surname="Van Gundy" fullname="Matthew Van Gund | ||||
| <author initials="H." surname="Kennedy" fullname="H. Kennedy"> | y"> | |||
| </author> | </author> | |||
| <author initials="M." surname="Varia" fullname="Mayank Varia"> | ||||
| <author initials="J." surname="Gardner" fullname="J. Gardner"> | ||||
| </author> | </author> | |||
| <author initials="H." surname="Kennedy" fullname="Haydn Kennedy"> | ||||
| <author initials="S." surname="Goldberg" fullname="S. Goldberg"> | ||||
| </author> | </author> | |||
| <author initials="J." surname="Gardner" fullname="Jonathan Gardner"> | ||||
| <date year="2016"/> | ||||
| </front> | ||||
| <seriesInfo name="Cryptology" value="ePrint Archive Report 2016/1006"/> | ||||
| </reference> | ||||
| <reference anchor="NTP-VULN" target="https://support.ntp.org/bin/view/Mai | ||||
| n/SecurityNotice"><front> | ||||
| <title>Network Time Foundation</title> | ||||
| <author> | ||||
| </author> | </author> | |||
| <author initials="S." surname="Goldberg" fullname="Sharon Goldberg"> | ||||
| <date/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="OpenNTPD" target="https://www.openntpd.org"><front> | ||||
| <title>OpenNTPD Project</title> | ||||
| <author> | ||||
| </author> | </author> | |||
| <date year="2017" month="February"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.1007/978-3-319-70972-7_23"/> | ||||
| <refcontent>Cryptology ePrint Archive Report 2016/1006</refcontent> | ||||
| </reference> | ||||
| <date/> | <reference anchor="NTP-VULN" target="http://support.ntp.org/bin/view/Mai | |||
| </front> | n/SecurityNotice"> | |||
| <front> | ||||
| </reference> | <title>Network Time Foundation</title> | |||
| &RFC2663; | <author> | |||
| &RFC3715; | ||||
| &RFC4953; | ||||
| &RFC5927; | ||||
| &RFC6335; | ||||
| &RFC7942; | ||||
| <reference anchor="VULN-REPORT" target="https://cve.mitre.org/cgi-bin/cve | ||||
| name.cgi?name=CVE-2019-11331"><front> | ||||
| <title>CVE-2019-11331</title> | ||||
| <author> | ||||
| <organization>The MITRE Corporation</organization> | ||||
| </author> | </author> | |||
| <date/> | ||||
| </front> | ||||
| </reference> | ||||
| <date month="April" year="2019"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </front> | FC.2663.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| </reference> | FC.3715.xml"/> | |||
| </references> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </back> | FC.4953.xml"/> | |||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5927.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6335.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.0792.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4443.xml"/> | ||||
| <reference anchor="VULN-REPORT" target="https://cve.mitre.org/cgi-bin/cv | ||||
| ename.cgi?name=CVE-2019-11331"> | ||||
| <front> | ||||
| <title>CVE-2019-1133</title> | ||||
| <author> | ||||
| <organization>The MITRE Corporation</organization> | ||||
| </author> | ||||
| <date month="August" year="2020"/> | ||||
| </front> | ||||
| <refcontent>National Vulnerability Database</refcontent> | ||||
| </reference> | ||||
| </rfc> | </references> | |||
| </references> | ||||
| <section anchor="sect-8" numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t> | ||||
| The authors would like to thank (in alphabetical order) <contact fullname="Iv | ||||
| an Arce"/>, | ||||
| <contact fullname="Roman Danyliw"/>, <contact fullname="Dhruv Dhody"/>, <cont | ||||
| act fullname="Lars Eggert"/>, <contact fullname="Todd Glassey"/>, <contact fulln | ||||
| ame="Blake Hudson"/>, | ||||
| <contact fullname="Benjamin Kaduk"/>, <contact fullname="Erik Kline"/>, <cont | ||||
| act fullname="Watson Ladd"/>, <contact fullname="Aanchal Malhotra"/>, <contact f | ||||
| ullname="Danny | ||||
| Mayer"/>, <contact fullname="Gary E. Miller"/>, <contact fullname="Bjorn Mork | ||||
| "/>, <contact fullname="Hal Murray"/>, <contact fullname="Francesca Palombini"/> | ||||
| , | ||||
| <contact fullname="Tomoyuki Sahara"/>, <contact fullname="Zaheduzzaman Sarker | ||||
| "/>, <contact fullname="Dieter Sibold"/>, <contact fullname="Steven Sommars"/>, | ||||
| <contact fullname="Jean St-Laurent"/>, <contact fullname="Kristof Teichel"/>, | ||||
| <contact fullname="Brian Trammell"/>, <contact fullname="Éric Vyncke"/>, <conta | ||||
| ct fullname="Ulrich | ||||
| Windl"/>, and <contact fullname="Dan Wing"/> for providing valuable comments | ||||
| on earlier draft versions of this document.</t> | ||||
| <t> | ||||
| <contact fullname="Watson Ladd"/> raised the problem of DDoS mitigation when | ||||
| the NTP well-known | ||||
| port is employed as the client port (discussed in <xref target="sect-3.3"/> o | ||||
| f this document).</t> | ||||
| <t> | ||||
| The authors would like to thank <contact fullname="Harlan Stenn"/> for answer | ||||
| ing questions | ||||
| about a popular NTP implementation (see <eref target="https://www.nwtime.org" | ||||
| brackets="angle"/>).</t> | ||||
| <t> | ||||
| <contact fullname="Fernando Gont"/> would like to thank <contact fullname="Ne | ||||
| lida Garcia"/> and <contact fullname="Jorge Oscar Gont"/> for | ||||
| their love and support.</t> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | ||||
| End of changes. 74 change blocks. | ||||
| 479 lines changed or deleted | 397 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||