Network Time Protocol Explained

Network Time Protocol
Developer:David L. Mills, Harlan Stenn, Network Time Foundation

The Network Time Protocol (NTP) is a networking protocol for clock synchronization between computer systems over packet-switched, variable-latency data networks. In operation since before 1985, NTP is one of the oldest Internet protocols in current use. NTP was designed by David L. Mills of the University of Delaware.

NTP is intended to synchronize all participating computers to within a few milliseconds of Coordinated Universal Time (UTC). It uses the intersection algorithm, a modified version of Marzullo's algorithm, to select accurate time servers and is designed to mitigate the effects of variable network latency. NTP can usually maintain time to within tens of milliseconds over the public Internet, and can achieve better than one millisecond accuracy in local area networks under ideal conditions. Asymmetric routes and network congestion can cause errors of 100 ms or more.[1] [2]

The protocol is usually described in terms of a client–server model, but can as easily be used in peer-to-peer relationships where both peers consider the other to be a potential time source. Implementations send and receive timestamps using the User Datagram Protocol (UDP) on port number 123.[3] They can also use broadcasting or multicasting, where clients passively listen to time updates after an initial round-trip calibrating exchange. NTP supplies a warning of any impending leap second adjustment, but no information about local time zones or daylight saving time is transmitted.

The current protocol is version 4 (NTPv4), which is backward compatible with version 3.

History

In 1979, network time synchronization technology was used in what was possibly the first public demonstration of Internet services running over a trans-Atlantic satellite network, at the National Computer Conference in New York. The technology was later described in the 1981 Internet Engineering Note (IEN) 173 and a public protocol was developed from it that was documented in . The technology was first deployed in a local area network as part of the Hello routing protocol and implemented in the Fuzzball router, an experimental operating system used in network prototyping, where it ran for many years.

Other related network tools were available both then and now. They include the Daytime and Time protocols for recording the time of events, as well as the ICMP Timestamp messages and IP Timestamp option . More complete synchronization systems, although lacking NTP's data analysis and clock disciplining algorithms, include the Unix daemon timed, which uses an election algorithm to appoint a server for all the clients; and the Digital Time Synchronization Service (DTSS), which uses a hierarchy of servers similar to the NTP stratum model.

In 1985, NTP version 0 (NTPv0) was implemented in both Fuzzball and Unix, and the NTP packet header and round-trip delay and offset calculations, which have persisted into NTPv4, were documented in . Despite the relatively slow computers and networks available at the time, accuracy of better than 100 milliseconds was usually obtained on Atlantic spanning links, with accuracy of tens of milliseconds on Ethernet networks.

In 1988, a much more complete specification of the NTPv1 protocol, with associated algorithms, was published in . It drew on the experimental results and clock filter algorithm documented in and was the first version to describe the client–server and peer-to-peer modes. In 1991, the NTPv1 architecture, protocol and algorithms were brought to the attention of a wider engineering community with the publication of an article by David L. Mills in the IEEE Transactions on Communications.[4]

In 1989, was published defining NTPv2 by means of a state machine, with pseudocode to describe its operation. It introduced a management protocol and cryptographic authentication scheme which have both survived into NTPv4, along with the bulk of the algorithm. However the design of NTPv2 was criticized for lacking formal correctness by the DTSS community, and the clock selection procedure was modified to incorporate Marzullo's algorithm for NTPv3 onwards.

In 1992, defined NTPv3. The RFC included an analysis of all sources of error, from the reference clock down to the final client, which enabled the calculation of a metric that helps choose the best server where several candidates appear to disagree. Broadcast mode was introduced.

In subsequent years, as new features were added and algorithm improvements were made, it became apparent that a new protocol version was required.[5] In 2010, was published containing a proposed specification for NTPv4. Following the retirement of Mills from the University of Delaware, the reference implementation is currently maintained as an open source project led by Harlan Stenn.[6] [7] On the IANA side, a ntp (network time protocols) work group is in charge of reviewing proposed drafts.[8]

The protocol has significantly progressed since NTPv4., three RFC documents describing updates to the protocol have been published, not counting the numerous peripheral standards such as NTS .[8] Mills had mentioned plans for a "NTPv5" on his page, but one was never published. An unrelated draft termed "NTPv5" by M. Lichvar of chrony was initiated in 2020 and includes security, accuracy, and scaling changes.[9]

SNTP

As NTP replaced the use of the old Time Protocol, some use-cases nevertheless found the full protocol too complicated. In 1992, Simple Network Time Protocol (SNTP) was defined to fill this niche. The SNTPv3 standard describes a way to use NTPv3, such that no storage of state over extended periods of time is needed. The topology becomes essentially the same as with the Time Protocol, as only one server is used. In 1996, SNTP was updated to SNTPv4 with some features of the then-in-development NTPv4. The current version of SNTPv4 is merged into the main NTPv4 standard in 2010. SNTP is fully interoperable with NTP since it does not define a new protocol. However, the simple algorithms provide times of reduced accuracy and thus it is inadvisable to sync time from an SNTP source.

Clock strata

NTP uses a hierarchical, semi-layered system of time sources. Each level of this hierarchy is termed a stratum and is assigned a number starting with zero for the reference clock at the top. A server synchronized to a stratum n server runs at stratum n + 1. The number represents the distance from the reference clock and is used to prevent cyclical dependencies in the hierarchy. Stratum is not always an indication of quality or reliability; it is common to find stratum 3 time sources that are higher quality than other stratum 2 time sources. A brief description of strata 0, 1, 2 and 3 is provided below.

Stratum 0
  • These are high-precision timekeeping devices such as atomic clocks, GNSS (including GPS) or other radio clocks, or a PTP-synchronized clock.[10] They generate a very accurate pulse per second signal that triggers an interrupt and timestamp on a connected computer. Stratum 0 devices are also known as reference clocks. NTP servers cannot advertise themselves as stratum 0. A stratum field set to 0 in NTP packet indicates an unspecified stratum.[11]
    Stratum 1
  • These are computers whose system time is synchronized to within a few microseconds of their attached stratum 0 devices. Stratum 1 servers may peer with other stratum 1 servers for sanity check and backup.[12] They are also referred to as primary time servers.
    Stratum 2
  • These are computers that are synchronized over a network to stratum 1 servers. Often a stratum 2 computer queries several stratum 1 servers. Stratum 2 computers may also peer with other stratum 2 computers to provide more stable and robust time for all devices in the peer group.
    Stratum 3
  • These are computers that are synchronized to stratum 2 servers. They employ the same algorithms for peering and data sampling as stratum 2, and can themselves act as servers for stratum 4 computers, and so on.

    The upper limit for stratum is 15; stratum 16 is used to indicate that a device is unsynchronized. The NTP algorithms on each computer interact to construct a Bellman–Ford shortest-path spanning tree, to minimize the accumulated round-trip delay to the stratum 1 servers for all the clients.

    In addition to stratum, the protocol is able to identify the synchronization source for each server in terms of a reference identifier (refid).

    Common time reference identifiers (refid) codes
    Refid[13] Clock Source
    GOES Geosynchronous Orbit Environment Satellite
    GPS Global Positioning System
    GAL Galileo Positioning System
    PPS Generic pulse-per-second
    IRIG Inter-Range Instrumentation Group
    WWVB LF Radio WWVB Fort Collins, Colorado 60 kHz
    DCF LF Radio DCF77 Mainflingen, DE 77.5 kHz
    HBG LF Radio HBG Prangins, HB 75 kHz (ceased operation)
    MSF LF Radio MSF Anthorn, UK 60 kHz
    JJY LF Radio JJY Fukushima, JP 40 kHz, Saga, JP 60 kHz
    LORC MF Radio Loran-C station, 100 kHz
    TDF MF Radio Allouis, FR 162 kHz
    CHU HF Radio CHU Ottawa, Ontario
    WWV HF Radio WWV Fort Collins, Colorado
    WWVH HF Radio WWVH Kauai, Hawaii
    NIST NIST telephone modem
    ACTS NIST telephone modem
    USNO USNO telephone modem
    PTB German PTB time standard telephone modem
    MRS (Informal) Multi Reference Sources
    GOOG (Unofficial) Google Refid used by Google NTP servers as time4.google.com

    For servers on stratum 2 and below, the refid is an encoded form of the upstream time server's IP address. For IPv4, this is simply the 32-bit address; for IPv6, it would be the first 32 bits of the MD5 hash of the source address. Refids serve to detect and prevent timing loops to the first degree.

    The refid field is filled with status words in the case of kiss-o'-death (KoD) packets, which tell the client to stop sending requests so that the server can rest. Some examples are INIT (initialization), STEP (step time change), and RATE (client requesting too fast).[14] The program output may additionally use codes not transmitted in the packet to indicate error, such as XFAC to indicate a network disconnection.[13]

    The IANA maintains a registry for refid source names and KoD codes. Informal assignments can still appear.[15]

    Timestamps

    The 64-bit binary fixed-point timestamps used by NTP consist of a 32-bit part for seconds and a 32-bit part for fractional second, giving a time scale that rolls over every 232 seconds (136 years) and a theoretical resolution of 2−32 seconds (233 picoseconds). NTP uses an epoch of January 1, 1900. Therefore, the first rollover occurs on February 7, 2036.[16] [17]

    NTPv4 introduces a 128-bit date format: 64 bits for the second and 64 bits for the fractional-second. The most-significant 32 bits of this format is the Era Number which resolves rollover ambiguity in most cases.[18] According to Mills, "The 64-bit value for the fraction is enough to resolve the amount of time it takes a photon to pass an electron at the speed of light. The 64-bit second value is enough to provide unambiguous time representation until the universe goes dim."[19]

    Clock synchronization algorithm

    A typical NTP client regularly polls one or more NTP servers. The client must compute its time offset and round-trip delay. Time offset θ is positive or negative (client time > server time) difference in absolute time between the two clocks. It is defined by

    \theta = \frac,and the round-trip delay δ by\delta =,where

    To derive the expression for the offset, note that for the request packet,t_0 + \theta + \delta/2 = t_1and for the response packet,t_3 + \theta - \delta/2 = t_2Solving for θ yields the definition of the time offset.

    The values for θ and δ are passed through filters and subjected to statistical analysis ("mitigation"). Outliers are discarded and an estimate of time offset is derived from the best three remaining candidates. The clock frequency is then adjusted to reduce the offset gradually ("discipline"), creating a feedback loop.[20]

    Accurate synchronization is achieved when both the incoming and outgoing routes between the client and the server have symmetrical nominal delay. If the routes do not have a common nominal delay, a systematic bias exists of half the difference between the forward and backward travel times. A number of approaches have been proposed to measure asymmetry,[21] but among practical implementations only chrony seems to have one included.[22]

    Software implementations

    Reference implementation

    The NTP reference implementation, along with the protocol, has been continuously developed for over 20 years. Backwards compatibility has been maintained as new features have been added. It contains several sensitive algorithms, especially to discipline the clock, that can misbehave when synchronized to servers that use different algorithms. The software has been ported to almost every computing platform, including personal computers. It runs as a daemon called ntpd under Unix or as a service under Windows. Reference clocks are supported and their offsets are filtered and analysed in the same way as remote servers, although they are usually polled more frequently. This implementation was audited in 2017, finding 14 potential security issues.[23]

    Windows Time

    All Microsoft Windows versions since Windows 2000 include the Windows Time service (W32Time),[24] which has the ability to synchronize the computer clock to an NTP server.

    W32Time was originally implemented for the purpose of the Kerberos version 5 authentication protocol, which required time to be within 5 minutes of the correct value to prevent replay attacks. The network time server in Windows 2000 Server (and Windows XP) does not implement NTP disciplined synchronization, only locally disciplined synchronization with NTP/SNTP correction.[25]

    Beginning with Windows Server 2003 and Windows Vista, the NTP provider for W32Time became compatible with a significant subset of NTPv3.[26] Microsoft states that W32Time cannot reliably maintain time synchronization with one second accuracy.[27] If higher accuracy is desired, Microsoft recommends using a newer version of Windows or different NTP implementation.[28]

    Beginning with Windows 10 version 1607 and Windows Server 2016, W32Time can be configured to reach time accuracy of 1 s, 50 ms or 1 ms under certain specified operating conditions.[29] [30]

    OpenNTPD

    In 2004, Henning Brauer of OpenBSD presented OpenNTPD, an NTPv3/SNTPv4[31] implementation with a focus on security and encompassing a privilege separated design. Whilst it is aimed more closely at the simpler generic needs of OpenBSD users, it also includes some protocol security improvements while still being compatible with existing NTP servers. The simpler code base sacrifices accuracy, deemed unnecessary in this use case.[32] A portable version is available in Linux package repositories.

    NTPsec

    NTPsec is a fork of the reference implementation that has been systematically security-hardened. The fork point was in June 2015 and was in response to a series of compromises in 2014.[33] The first production release shipped in October 2017.[34] Between removal of unsafe features, removal of support for obsolete hardware, and removal of support for obsolete Unix variants, NTPsec has been able to pare away 75% of the original codebase, making the remainder easier to audit.[35] A 2017 audit of the code showed eight security issues, including two that were not present in the original reference implementation, but NTPsec did not suffer from eight other issues that remained in the reference implementation.[36]

    chrony

    See main article: chrony.

    chrony is an independent NTP implementation mainly sponsored by Red Hat, who uses it as the default time program in their distributions.[37] Being written from scratch, chrony has a simpler codebase allowing for better security[38] and lower resource consumption. It does not however compromise on accuracy, instead syncing faster and better than the reference ntpd in many circumstances. It is versatile enough for ordinary computers, which are unstable, go into sleep mode or have intermittent connection to the Internet. It is also designed for virtual machines, a more unstable environment.[39]

    Chrony has been evaluated as "trustworthy", with only a few incidents.[40] It is able to achieve improved precision on LAN connections, using hardware timestamping on the network adapter.[41] Support for Network Time Security (NTS) was added on version 4.0.[42] is available under GNU General Public License version 2, was created by Richard Curnow in 1997 and is currently maintained by Miroslav Lichvar.[43]

    Others

    Leap seconds

    On the day of a leap second event, ntpd receives notification from either a configuration file, an attached reference clock, or a remote server. Although the NTP clock is actually halted during the event, because of the requirement that time must appear to be strictly increasing, any processes that query the system time cause it to increase by a tiny amount, preserving the order of events. If a negative leap second should ever become necessary, it would be deleted with the sequence 23:59:58, 00:00:00, skipping 23:59:59.[47]

    An alternative implementation, called leap smearing, consists in introducing the leap second incrementally during a period of 24 hours, from noon to noon in UTC time. This implementation is used by Google (both internally and on their public NTP servers), Amazon AWS,[48] and Facebook.[49] Chrony supports leap smear in and configurations, but such use is not to be mixed with a public NTP pool as leap smear is non-standard and will throw off client calculation in a mix.[50]

    Security concerns

    See also: NTP server misuse and abuse.

    Because adjusting system time is generally a privileged operation, part or all of NTP code has to be run with some privileges in order to support its core functionality. Only a few other security problems have been identified in the reference implementation of the NTP codebase, but those that appeared in 2009 were cause for significant concern.[51] [52] The protocol has been undergoing revision and review throughout its history. The codebase for the reference implementation has undergone security audits from several sources for several years.[53]

    A stack buffer overflow exploit was discovered and patched in 2014.[54] Apple was concerned enough about this vulnerability that it used its auto-update capability for the first time.[55] On systems using the reference implementation, which is running with root user's credential, this could allow unlimited access. Some other implementations, such as OpenNTPD, have smaller code base and adopted other mitigation measures like privilege separation, are not subject to this flaw.[56]

    A 2017 security audit of three NTP implementations, conducted on behalf of the Linux Foundation's Core Infrastructure Initiative, suggested that both NTP[57] [58] and NTPsec[59] were more problematic than Chrony[60] from a security standpoint.[61]

    NTP servers can be susceptible to man-in-the-middle attacks unless packets are cryptographically signed for authentication.[62] The computational overhead involved can make this impractical on busy servers, particularly during denial of service attacks.[63] NTP message spoofing from a man-in-the-middle attack can be used to alter clocks on client computers and allow a number of attacks based on bypassing of cryptographic key expiration.[64] Some of the services affected by fake NTP messages identified are TLS, DNSSEC, various caching schemes (such as DNS cache), Border Gateway Protocol (BGP), Bitcoin and a number of persistent login schemes.[65] [66]

    NTP has been used in distributed denial of service attacks.[67] [68] A small query is sent to an NTP server with the return IP address spoofed to be the target address. Similar to the DNS amplification attack, the server responds with a much larger reply that allows an attacker to substantially increase the amount of data being sent to the target. To avoid participating in an attack, NTP server software can be upgraded or servers can be configured to ignore external queries.[69]

    Secure extensions

    NTP itself includes support for authenticating servers to clients. NTPv3 supports a symmetric key mode, which is not useful against MITM. The public key system known as "autokey" in NTPv4 adapted from IPSec offers useful authentication,[62] but is not practical for a busy server.[63] Autokey was also later found to suffer from several design flaws,[70] with no correction published, save for a change in the message authentication code.

    Network Time Security (NTS) is a secure version of NTPv4 with TLS and AEAD.[71] The main improvement over previous attempts is that a separate "key establishment" server handles the heavy asymmetric cryptography, which needs to be done only once. If the server goes down, previous users would still be able to fetch time without fear of MITM. NTS is currently supported by several time servers,[72] [73] including Cloudflare. It is supported by NTPSec and chrony.[74]

    Microsoft also has an approach to authenticate NTPv3/SNTPv4 packets using a Windows domain identity, known as MS-SNTP.[75] This system is implemented in the reference ntpd and chrony, using samba for the domain connection. [76]

    See also

    Further reading

    External links

    Notes and References

    1. Web site: Executive Summary: Computer Network Time Synchronization . 2011-11-21 . https://web.archive.org/web/20111102204926/http://www.eecis.udel.edu/~mills/exec.html . 2011-11-02 . live.
    2. Web site: NTP FAQ . The NTP Project . 2011-08-27 . https://web.archive.org/web/20110906014530/http://www.ntp.org/ntpfaq/NTP-s-algo.htm#Q-ACCURATE-CLOCK . 2011-09-06 . live.
    3. Web site: Port Numbers . The Internet Assigned Numbers Authority (IANA) . 2011-01-19 . https://web.archive.org/web/20010604223215/https://www.iana.org/assignments/port-numbers . 2001-06-04 . live.
    4. Internet Time Synchronization: The Network Time Protocol . IEEE Transactions on Communications . October 1991 . 39 . 1482–1493 . 10 . limited . David L. Mills . 10.1109/26.103043 . 2017-11-06 . https://web.archive.org/web/20160610113047/http://www3.cs.stonybrook.edu/%7Ejgao/CSE590-spring11/91-ntp.pdf . 2016-06-10 . live.
    5. Book: David L. Mills. Computer Network Time Synchronization: The Network Time Protocol on Earth and in Space, Second Edition. 15 November 2010. CRC Press. 978-1-4398-1464-2. 377.
    6. Web site: NTP Needs Money: Is A Foundation The Answer?. InformationWeek. March 23, 2015. April 4, 2015. https://web.archive.org/web/20150410033108/http://www.informationweek.com/cloud/infrastructure-as-a-service/ntp-needs-money-is-a-foundation-the-answer/d/d-id/1319557. April 10, 2015. live.
    7. Web site: NTP's Fate Hinges On 'Father Time'. InformationWeek. March 11, 2015. April 4, 2015. https://web.archive.org/web/20150410021745/http://www.informationweek.com/it-life/ntps-fate-hinges-on-father-time/d/d-id/1319432?cmp=em-prog-na-na-newsltr_20150313_control&imm_mid=0ce65e&page_number=2. April 10, 2015. live.
    8. Web site: Network Time Protocols (ntp): Documents . datatracker.ietf.org . 27 December 2022 . en.
    9. Lichvar . Miroslav . Network Time Protocol Version 5 . www.ietf.org . 6 December 2022 . en.
    10. Web site: Combining PTP with NTP to Get the Best of Both Worlds . www.redhat.com . en . Programs from the linuxptp package can be used in a combination with an NTP daemon. A PTP clock on a NIC is synchronized by ptp4l and is used as a reference clock by chronyd or ntpd for synchronization of the system clock..
    11. RFC 5905, p. 21
    12. Web site: Network Time Protocol: Best Practices White Paper. 15 October 2013. https://web.archive.org/web/20131001041853/http://www.cisco.com/en/US/tech/tk869/tk769/technologies_white_paper09186a0080117070.shtml. 1 October 2013. live.
    13. Web site: 'ntpq -p' output. NLUG.ML1.co.uk. 2018-11-12. https://web.archive.org/web/20181112141516/https://nlug.ml1.co.uk/2012/01/ntpq-p-output/831. 2018-11-12. live.
    14. Web site: Event Messages and Status Words . docs.ntpsec.org . Refid codes are used in kiss-o'-death (KoD) packets, the reference identifier field in ntpq and ntpmon billboard displays and log messages..
    15. Web site: Network Time Protocol (NTP) Parameters . www.iana.org.
    16. Web site: The NTP Era and Era Numbering . David L. Mills . 12 May 2012 . 24 September 2016 . https://web.archive.org/web/20161026011515/https://www.eecis.udel.edu/~mills/y2k.html . 26 October 2016 . live.
    17. Book: W. Richard Stevens . Bill Fenner . Andrew M. Rudoff . UNIX Network Programming . 2004 . Addison-Wesley Professional . 978-0-13-141155-5 . 582– . 2016-10-16 . https://web.archive.org/web/20190330170620/https://books.google.com/books?id=ptSC4LpwGA0C&pg=PA582 . 2019-03-30 . live.
    18. Web site: A look at the Year 2036/2038 problems and time proofness in various systems . 14 March 2017 . 2018-07-20 . https://web.archive.org/web/20180721014309/http://www.lieberbiber.de/2017/03/14/a-look-at-the-year-20362038-problems-and-time-proofness-in-various-systems/ . 2018-07-21 . live.
    19. [University of Delaware]
    20. Book: David L. Mills. Computer Network Time Synchronization: The Network Time Protocol. 12 December 2010. Taylor & Francis. 978-0-8493-5805-0. 12–. 16 October 2016. https://web.archive.org/web/20140718092324/http://books.google.com/books?id=pdTcJBfnbq8C&pg=PA12. 18 July 2014. live.
    21. Gotoh . T. . Imamura . K. . Kaneko . A. . Conference Digest Conference on Precision Electromagnetic Measurements . Improvement of NTP time offset under the asymmetric network with double packets method . Conference on Precision Electromagnetic Measurements . 448–449 . 2002 . 10.1109/CPEM.2002.1034915 . 0-7803-7242-5.
    22. Web site: sourcestats.c, function estimate_asymmetry . git.tuxfamily.org (chrony).
    23. Web site: Pentest-Report NTP 01.2017 . Cure53 . 2017 . 2019-07-03 . https://web.archive.org/web/20181201232241/https://wiki.mozilla.org/images/e/ea/Ntp-report.pdf . 2018-12-01 . live.
    24. Web site: Windows Time Service Technical Reference . technet.microsoft.com . 2011-08-17 . 2011-09-19 . https://web.archive.org/web/20110906143547/http://technet.microsoft.com/en-us/library/cc773061(WS.10).aspx . 2011-09-06 . live.
    25. Web site: Windows Time Service page at NTP.org . Support.NTP.org . 2008-02-25 . 2017-05-01 . https://web.archive.org/web/20170514214217/http://support.ntp.org/bin/view/Support/WindowsTimeService . 2017-05-14 . live.
    26. Web site: How the Windows Time Service Works . technet.microsoft.com . 2010-03-12 . 2011-09-19 . https://web.archive.org/web/20110924184432/http://technet.microsoft.com/en-us/library/cc773013(WS.10).aspx . 2011-09-24 . live.
    27. Web site: Support boundary to configure the Windows Time service for high accuracy environments . 2011-10-19 . . 2008-12-10 . https://web.archive.org/web/20090112213922/http://support.microsoft.com/kb/939322 . 2009-01-12 . live.
    28. Web site: High Accuracy W32time Requirements . 2007-10-23 . Ned Pyle . . 2012-08-26 . https://web.archive.org/web/20121017165107/http://blogs.technet.com/b/askds/archive/2007/10/23/high-accuracy-w32time-requirements.aspx . 2012-10-17 . live.
    29. Web site: Windows Server 2016 Accurate Time . technet.microsoft.com . 2016-12-07 . https://web.archive.org/web/20161202233231/https://technet.microsoft.com/en-us/windows-server-docs/identity/ad-ds/get-started/windows-time-service/windows-2016-accurate-time . 2016-12-02 . live.
    30. Web site: dahavey. Support boundary for high-accuracy time. 2021-07-24. docs.microsoft.com. en-us.
    31. Web site: ntpd(8) - OpenBSD manual pages . man.openbsd.org . It implements the Simple Network Time Protocol version 4, as described in RFC 5905, and the Network Time Protocol version 3, as described in RFC 1305..
    32. Web site: FAQ 6.12.1: 'But OpenNTPD isn't as accurate as the ntp.org daemon!' . The OpenBSD Project . 21 August 2006 . The OpenBSD Project . 2020-05-14 . https://web.archive.org/web/20160205120110/http://www.openbsd.org/faq/faq6.html#OpenNTPDaccurate . 2016-02-05 . dead.
    33. Web site: Raymond . Eric S. . 2017-03-30 . NTPsec: a Secure, Hardened NTP Implementation Linux Journal . live . https://archive.today/20240126231434/https://www.linuxjournal.com/content/ntpsec-secure-hardened-ntp-implementation . 2024-01-26 . 2024-01-26 . Linux Journal.
    34. Web site: The Secure Network Time Protocol (NTPsec) Distribution. 2019-01-12. https://web.archive.org/web/20190113232124/https://ntpsec.org/. 2019-01-13. live.
    35. Book: Liska, Allan. NTP Security: A Quick-Start Guide. December 10, 2016. Apress. 978-1-4842-2412-0. 80–.
    36. Web site: Pentest-Report NTPsec 01.2017 . Cure53 . 2017 . 2019-07-03 . https://web.archive.org/web/20190704001204/https://wiki.mozilla.org/images/1/10/Ntpsec-report.pdf . 2019-07-04 . live.
    37. Web site: Combining PTP with NTP to Get the Best of Both Worlds . 19 November 2017 . Lichvar . Miroslav . 20 July 2016 . Red Hat Enterprise Linux Blog . Starting with Red Hat Enterprise Linux 7.0 (and now in Red Hat Enterprise Linux 6.8) a more versatile NTP implementation is also provided via the chrony package . . https://web.archive.org/web/20160730091110/http://rhelblog.redhat.com/2016/07/20/combining-ptp-with-ntp-to-get-the-best-of-both-worlds/ . 30 July 2016.
    38. Web site: Securing Network Time . 19 November 2017 . 27 September 2017 . Core Infrastructure Initiative, a Linux Foundation Collaborative Project . In sum, the Chrony NTP software stands solid and can be seen as trustworthy . Core Infrastructure Initiative . https://web.archive.org/web/20171028123642/https://www.coreinfrastructure.org/news/blogs/2017/09/securing-network-time . 28 October 2017.
    39. Web site: Both . David . Manage NTP with Chrony . Opensource.com . 29 June 2019 . en . https://web.archive.org/web/20190629174030/https://opensource.com/article/18/12/manage-ntp-chrony . 29 June 2019 . live.
    40. Web site: Pentest-Report Chrony 08.2017 . 19 November 2017 . Heiderich . Mario . August 2017 . Cure53.de Team . en . Withstanding eleven full days of on-remote testing in August of 2017 means that Chrony is robust, strong, and developed with security in mind. . wiki.mozilla.org, AKA MozillaWiki or WikiMO . https://web.archive.org/web/20171005123643/https://wiki.mozilla.org/images/e/e4/Chrony-report.pdf . 5 October 2017.
    41. Web site: chrony – chrony.conf(5) . 2 August 2020 . Lichvar . Miroslav . 18 September 2018 . Chrony project . en . This directive enables hardware timestamping of NTP packets sent to and received from the specified network interface. .
    42. Web site: chrony/chrony.git - Official Git repository for the Chrony project.. 2021-07-31. git.tuxfamily.org.
    43. Web site: chrony introduction . 19 November 2017 . TuxFamily, a non-profit organization. . The software is supported on Linux, FreeBSD, NetBSD, macOS, and Solaris. . chrony . https://web.archive.org/web/20091209115945/https://chrony.tuxfamily.org/ . 9 December 2009.
    44. Web site: Poul-Henning. Kamp. 20140926 – Playing with time again. PHK's Bikeshed. 4 June 2015. https://web.archive.org/web/20191220015844/http://phk.freebsd.dk/time/20140926/. 20 December 2019. live.
    45. Web site: Poul-Henning. Kamp. Network time synchronization software, NTPD replacement.. ntimed git repository README file. Github. 4 June 2015. https://web.archive.org/web/20150802090927/https://github.com/bsdphk/Ntimed/. 2 August 2015. live.
    46. Web site: Switching from OpenNTPd to Chrony - anarcat . anarc.at. So in effect, systemd-timesyncd became the default NTP daemon in Debian in bookworm, which I find somewhat surprising..
    47. Web site: The NTP Timescale and Leap Seconds . David Mills . 15 October 2013 . https://web.archive.org/web/20130907021050/http://www.eecis.udel.edu/%7emills/leap.html . 7 September 2013 . live.
    48. Web site: Google Developers Leap Smear . 4 April 2019 . https://web.archive.org/web/20190404122431/https://developers.google.com/time/smear . 4 April 2019 . live.
    49. Obleukhov . Oleg . Building a more accurate time service at Facebook scale . Engineering at Meta . 18 March 2020 .
    50. Web site: chrony – Frequently Asked Questions . chrony.tuxfamily.org.
    51. Web site: Security Notice . Support.NTP.org . 2009-12-10 . 2011-01-12 .
    52. Web site: Cisco IOS Software Network Time Protocol Packet Vulnerability . 23 September 2009 . . 11 June 2020 . https://web.archive.org/web/20200611155551/https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20090923-ntp . 11 June 2020 . live.
    53. Web site: Code Audit . Support.NTP.org . 2009-06-13 . 2011-01-12.
    54. Web site: Network Time Protocol Vulnerabilities (Update C) | ICS-CERT . Ics-cert.us-cert.gov . 2015-04-15 . https://web.archive.org/web/20141220002022/https://ics-cert.us-cert.gov/advisories/ICSA-14-353-01 . 2014-12-20 . live.
    55. Web site: Apple automatically patches Macs to fix severe NTP security flaw . arstechnica . Dec 23, 2014 . Apr 29, 2015 . Cunningham . Andrew . https://web.archive.org/web/20150415002211/http://arstechnica.com/apple/2014/12/apple-automatically-patches-macs-to-fix-severe-ntp-security-flaw/ . April 15, 2015 . live.
    56. Web site: NTP The Latest Open Source Security Problem . I Programmer . 23 December 2014 . Fairhead . Harry . 24 December 2014 . https://web.archive.org/web/20141224071634/http://www.i-programmer.info/news/149-security/8120-ntp-the-latest-open-source-security-problem.html . 24 December 2014 . dead.
    57. NTP SecurityNotice Page
    58. NVD NIST Product Search NTP
    59. NVD NIST Product Search NTPsec
    60. NVD NIST Product Search Chrony
    61. Web site: CII Audit Identifies Most Secure NTP Implementation . https://web.archive.org/web/20180203195701/https://www.linuxfoundation.org/blog/cii-audit-identifies-secure-ntp-implementation/ . 2018-02-03 . The Linux Foundation . September 28, 2017 . 2019-07-03.
    62. 5906 . Network Time Protocol Version 4: Autokey Specification . IETF . June 2010.
    63. Web site: NTP Security Analysis . 11 October 2013 . https://web.archive.org/web/20130907040625/http://www.eecis.udel.edu/%7emills/security.html . 7 September 2013 . dead.
    64. Web site: Bypassing HTTP Strict Transport Security . 2014-10-16 . 2014-10-16 . Jose Selvi . https://web.archive.org/web/20141018053055/https://www.blackhat.com/docs/eu-14/materials/eu-14-Selvi-Bypassing-HTTP-Strict-Transport-Security-wp.pdf . 2014-10-18 . dead.
    65. Attacking the Network Time Protocol . Aanchal Malhotra . Isaac E. Cohen . Erik Brakke . Sharon Goldberg . amp . 20 October 2015 . NDSS . https://web.archive.org/web/20151022140151/http://www.cs.bu.edu/~goldbe/papers/NTPattack.pdf . 22 October 2015 . dead . 27 October 2015.
    66. Web site: Attacking the Network Time Protocol . www.cs.bu.edu . 2015-10-27 . https://web.archive.org/web/20151024172618/http://www.cs.bu.edu/~goldbe/NTPattack.html . 2015-10-24 . dead.
    67. Web site: Goodin . Dan . New DoS attacks taking down game sites deliver crippling 100Gbps floods . Ars Technica . 2014-01-13 . 2014-01-25 . https://web.archive.org/web/20140124074451/http://arstechnica.com/security/2014/01/new-dos-attacks-taking-down-game-sites-deliver-crippling-100-gbps-floods/ . 2014-01-24 . live.
    68. Web site: Lee . Dave . Huge Hack 'Ugly Sign of Future' for Internet Threats . BBC . 2014-02-11 . 2014-02-12 . https://web.archive.org/web/20140211175533/http://www.bbc.co.uk/news/technology-26136774 . 2014-02-11 . live.
    69. Web site: DRDoS / Amplification Attack using ntpdc monlist command. support.NTP.org. 2010-04-24. 2014-04-13. https://web.archive.org/web/20140330131447/http://support.ntp.org/bin/view/Main/SecurityNotice#April_2010_DRDoS_Amplification_A. 2014-03-30. live.
    70. Analysis of NTP’s Autokey Protocol. Dieter Sibold. Stephen Röttger. IETF 83. 2012.
    71. Web site: nts.time.nl homepage. 2021-08-19. nts.time.nl.
    72. Web site: Langer. Martin. 2019-12-05. Setting up NTS-Secured NTP with NTPsec. 2021-08-19. Weberblog.net. en-US.
    73. Web site: How to use NTS Netnod. 2021-08-19. Netnod.
    74. Web site: Network Time Security · Cloudflare Time Services docs . developers.cloudflare.com . 5 February 2024 . en.
    75. Web site: [MS-SNTP]: Network Time Protocol (NTP) Authentication Extensions . 24 June 2021 .
    76. Web site: Comparison of NTP implementations. chrony.tuxfamily.org. 2019-10-08.