[Git][NTPsec/ntpsec][master] Documentation polishing.

Eric S. Raymond gitlab at mg.gitlab.com
Fri Feb 1 20:30:16 UTC 2019


Eric S. Raymond pushed to branch master at NTPsec / ntpsec


Commits:
7d9be250 by Eric S. Raymond at 2019-02-01T20:29:18Z
Documentation polishing.

- - - - -


5 changed files:

- docs/driver_spectracom.adoc
- docs/history.adoc
- docs/ntpsec.adoc
- docs/warp.adoc
- ntpclients/ntpkeygen.py


Changes:

=====================================
docs/driver_spectracom.adoc
=====================================
@@ -5,7 +5,7 @@ include::html.include[]
 
 ["verse",subs="normal"]
 Name: spectracom
-Reference ID: +GPS+
+Reference ID: GPS
 Serial Port: +/dev/spectracom+'u'; 9600 bps 8N1
 Features: Optional PPS signal processing, +tty_clk+
 Requires: Optional PPS signal processing requires the PPSAPI signal interface.


=====================================
docs/history.adoc
=====================================
@@ -43,7 +43,7 @@ model for precision timekeeping) described a new implementation and
 interface in 1994. That implementation could keep time with a
 precision of up to one microsecond.
 
-Work for a Version 4 of NTP bagain around 1994. The first new
+Work for a Version 4 of NTP begain around 1994. The first new
 specification was https://tools.ietf.org/rfc/rfc2030.txt[RFC 2030],
 Simple Network Time Protocol (SNTP) version 4 for IPv4, IPv6 and OSI.
 This issued in 1996.


=====================================
docs/ntpsec.adoc
=====================================
@@ -98,8 +98,14 @@ a build-time switch, not a run-time one).
 == Security Improvements ==
 
 We have spent more effort than anything else on reducing attack
-surface and hardening code.  In toto, more than 70% of the NTP Classic
-codebase has been outright removed, with less than 5% new code added.
+surface and hardening code.  In toto, more than 74% of the NTP Classic
+codebase has been outright removed, with less than 5% new code added
+to the security-critical core.
+
+* NTPsec conforms to the
+  https://datatracker.ietf.org/doc/draft-ietf-ntp-data-minimization/[NTP
+  Client Data Minimization] draft RFC, which changes the client-side
+  generation of some packet headers to prevent client fingerprinting.
 
 * The deprecated ntpdc utility, long a chronic locus of security
   vulnerabilities, has been removed.  Its function has been merged
@@ -168,6 +174,11 @@ codebase has been outright removed, with less than 5% new code added.
   to be selected.  This probably accounts for some flakiness within
   8 polling intervals of startup on older versions.
 
+* Flagging a PPS peer with "prefer" allows its pulse-per-second input
+  to be used with any source. This capability had been claimed in the NTP
+  Classic documentation but if it was ever actually implemented that
+  code was lost without trace by the time NTPsec forked.
+
 [[clients]]
 == Client Tool Improvements ==
 


=====================================
docs/warp.adoc
=====================================
@@ -11,6 +11,7 @@ include::includes/external.adoc[]
 * link:#intro[Introduction and Overview]
 * link:#scale[NTP Timescale and Data Formats]
 * link:#arch[Architecture and Algorithms]
+* link:#standards[Standards Conformance]
 
 '''''
 
@@ -185,6 +186,66 @@ Research Project] page. For additional information on statistical
 principles and performance metrics, see the link:stats.html[Performance
 Metrics] page.
 
+[[standards]]
+== Standards Conformance ==
+
+The principal standard informing the NTPsec software is
+https://tools.ietf.org/html/rfc5905[RFC 5905].
+
+Older NTP RFCs such as https://tools.ietf.org/html/rfc1305[RFC 1305]
+are no longer relevant.
+
+Note that NTPsec has entirely dropped conformance with
+https://tools.ietf.org/html/rfc5905[RFC 5906].  Autokey never quite
+worked, and the design was unstable enough that if there was ever
+actually a time when it fully conformed to its RFC that span must have
+been pretty short.
+
+https://tools.ietf.org/rfc/rfc2030.txt[RFC 2030] describes
+Simple Network Time Protocol (SNTP) version 4.
+
+=== Divergences from RFC 5905 ===
+
+Code conformance was never quite exact even before the NTPsec fork.
+In this section we attempt to list divergences.  This list is probably
+not exhaustive.
+
+Modes 5 (Broadcast) and 6 (Broadcast client) are no longer implemented
+in NTPsec, as they were impossible to secure.  Mode 1 (Symmetric
+Active) is no longer implemented; such packets are treated as ordinary
+client (mode 3) packets. Mode 2 (Symmetric Passive) is still distinct
+from mode 3 but its only effect is on initial poll interval.
+
+In figure 8 of section 7.3, 128 bits (16 octets, corresponding to an
+MD5 digest) is not the only possible length for the MAC. This was
+a pre-NTPsec change present in NTP Classic versions after 2010.
+
+NTPsec conforms to the
+https://datatracker.ietf.org/doc/draft-ietf-ntp-data-minimization/[NTP
+Client Data Minimization] draft RFC, which changes the client-side
+generation of some packet headers.
+
+The table of reference identifiers in Figure 12 is largely obsolete
+and somewhat incomplete relative to the code.
+
+In the table of KISS codes (Figure 13), only RATE still exists and is
+implemented in NTPsec; others proved unnecessary or (in the cases of
+DENY and RSTR) outright dangerous. INIT and STEP are no lonkrt KoD types
+but persist as peer statuses that may be reported by {ntpqman}/{ntpmon}.
+
+The continuing relevance of much of Appendix A is doubtful.
+
+=== Divergences from RFC 2030 ===
+
+In the packet-format illustration of section 4 (NTP Message Format)
+128 is not the only possible bit length for a MAC.  However, this
+field is not shipped in SNTP operation, so the flaw is theoretical.
+
+Some packet mode values are, as previously noted, no longer
+implemented. Many External Reference Source types are obsolete.
+Multicast and anycast modes are no longer implemented.
+
+
 '''''
 
-include::includes/footer.adoc[]
+Include::includes/footer.adoc[]


=====================================
ntpclients/ntpkeygen.py
=====================================
@@ -15,7 +15,7 @@ AES (128-bit) keys used to compute CMAC mode authentcation
 using shared key cryptography
 
 The file can be edited by hand to support MD5 and SHA1 for
-old digest mode authentcation.
+old digest mode authentication.
 '''
 
 from __future__ import print_function



View it on GitLab: https://gitlab.com/NTPsec/ntpsec/commit/7d9be2502ff7ea27f1dc24c8c9f4bccc3ae41707

-- 
View it on GitLab: https://gitlab.com/NTPsec/ntpsec/commit/7d9be2502ff7ea27f1dc24c8c9f4bccc3ae41707
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ntpsec.org/pipermail/vc/attachments/20190201/8742b87d/attachment-0001.html>


More information about the vc mailing list