-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathremoval-plan.html
277 lines (275 loc) · 11.3 KB
/
removal-plan.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="AsciiDoc 8.6.9">
<title>Feature removals</title>
<link rel="stylesheet" href="./asciidoc.css" type="text/css">
<script type="text/javascript" src="./asciidoc.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="article">
<div id="header">
<h1>Feature removals</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph"><p>The aim of the NTPsec project is high security, availability, and assurance.
The more code we can throw away, the fewer potential vulnerabilities
and complexity issues we will have.</p></div>
<div class="paragraph"><p>Accordingly, we have already removed many obsolete features, and have
a schedule of more feature removals planned. If something on this
list is important to you, tell us. If the complexity cost of keeping
it is low, you win. If the complexity cost is high, then we will need
a donation of engineering time or money to support keeping it in the
codebase.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_removals_already_complete">Removals already complete</h2>
<div class="sectionbody">
<div class="paragraph"><p>The ntpdc utility has been entirely removed. (All its capabilities are
available through ntpq with a similar user unterface.) Support for
Mode 7 packets in ntpd has been removed along with it, significantly
reducing total attack surface and code complexity.</p></div>
<div class="paragraph"><p>The ntpsnmpd daemon, being half-complete and not fully conformant with
RFC 5907, has been removed. In a future release we would be open to
replacing it with a conformant implementation.</p></div>
<div class="paragraph"><p>The long-deprecated ntpdate program has been replaced with a shell
wrapper around ntpdig.</p></div>
<div class="paragraph"><p>We have removed the following refclock drivers, which were either
broken and won’t compile on modern systems (12, 21), or irretrievably
obsolete due to the WWVB modulation change in 2013 (3, 19, 32, 34,
36), or had unfixable Y2K issues (37), or unfixable security issues
(16, 43), or were deprecated in NTP Classic and had their
documentation removed (13, 14, 17).</p></div>
<table class="tableblock frame-all grid-all"
style="
width:100%;
">
<col style="width:100%;">
<tbody>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 3: PSTI/Traconex 1020 WWV/WWVH Receiver (WWV_PST)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 12: KSI/Odetics TPRO/S IRIG Interface</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 13: Leitch CSD 5300 Master Clock Controller (ATOM_LEITCH)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 14: EES M201 MSF Receiver (REFCLOCK_MSF_EES)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 16: Bancomm GPS/IRIG Receiver (GPS_BANCOMM)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 17: Datum Precision Time System (GPS_DATUM)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 19: Heath WWV/WWVH Receiver (WWV_HEATH)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 21: TrueTime GPS-VME Interface (GPS_VME)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 32: Chrono-log K-series WWVB receiver (CHRONOLOG)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 34: Ultralink WWVB Receivers (ULINK)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 36: Radio WWV/H Audio Demodulator/Decoder (WWV)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 37: Forum Graphic GPS Dating station (FG)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 43: RIPE NCC interface for Trimble Palisade</p></td>
</tr>
</tbody>
</table>
<div class="paragraph"><p>In addition, support for WWVB and OMEGA has been removed from
the Type 5 (TrueTime) driver. Support for GPS and GOES has been retained.</p></div>
<div class="paragraph"><p>You may be unable to build NTPsec on a sufficiently archaic big-iron
Unix platform. Support for the native APIs of any version that last
shipped in the last century has been removed. The codebase assumes
full POSIX.1-2001 and C99 conformance including ANSI pthreads; in some
cases you may be able to meet this requirement by upgrading to a
modern GCC- or clang-based toolchain.</p></div>
<div class="paragraph"><p>Platform-dependent kernel-space code that raised potential security
issues has been removed. No programs access /dev/kmem directly any
longer, and STREAMS support for the parse driver has been deleted.</p></div>
<div class="paragraph"><p>Support for VMS has been removed, and is unlikely to be restored
unless that platform has achieved effectively full standards
conformance and someone interested throws engineering time and money
at us. Likewise for VxWorks.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_suppressed_code">Suppressed code</h2>
<div class="sectionbody">
<div class="paragraph"><p>While we have not removed the Windows code, we will not ship with
Windows supported until that platform has an active port maintainer.</p></div>
<div class="paragraph"><p>An implementation of the Autokey public-key-based authentication
system is still present in the codebase, but we don’t support
building with it. This feature is broken and has serious security
vulnerabilities. One of our longer-term projects is to re-engineer
it.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_obsolete_refclocks">Obsolete refclocks</h2>
<div class="sectionbody">
<div class="paragraph"><p>We consider a refclock driver obsolete if it fails any of the
following tests:</p></div>
<div class="olist arabic"><ol class="arabic">
<li>
<p>
It has been discontinued for seven or more years and cannot be
found for sale on the Web. Types 5, 9, 10, 26, 27, 35, 37, 38, 41.
</p>
</li>
<li>
<p>
Duplicates capabilities of GPSD, which specializes in GPSes.
Types 20, 29, 30, 31.
</p>
</li>
<li>
<p>
Deprecated by the NTP Classic documentation in favor of orphan mode
(type 1).
</p>
</li>
<li>
<p>
Accuracy an order of magnitude worse than a cheap 1PPS GPS. Types
6, 7, 33.
</p>
</li>
</ol></div>
<div class="paragraph"><p>Thus, we plan to remove the following refclock drivers:</p></div>
<table class="tableblock frame-all grid-all"
style="
width:100%;
">
<col style="width:100%;">
<tbody>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 1: Undisciplined Local Clock</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 5: TrueTime GPS/GOES Receivers (TRUETIME)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 6: IRIG Audio Decoder (IRIG_AUDIO)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 7: Radio CHU Audio Demodulator/Decoder (CHU)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 9: Magnavox MX4200 GPS Receiver (GPS_MX4200)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 10: Austron 2200A/2201A GPS Receivers (GPS_AS2201)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 20: Generic NMEA GPS Receiver (NMEA)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 27: Arcron MSF Receiver (MSF_ARCRON)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 29: Trimble Navigation Palisade GPS (GPS_PALISADE)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 30: Motorola UT Oncore GPS (GPS_ONCORE)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 31: Rockwell Jupiter GPS (GPS_JUPITER)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 33: Dumb Clock (DUMBCLOCK)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 35: Conrad Parallel Port Radio Clock (PCF)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 38: hopf GPS/DCF77 6021/komp for Serial Line (HOPF_S)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 41: TrueTime 560 IRIG-B Decoder (REFCLK_TT560)</p></td>
</tr>
</tbody>
</table>
<div class="paragraph"><p>Removing 6 and 7 means we will be able to remove all the
hair for audio card support.</p></div>
<div class="paragraph"><p>This will leave the following drivers in place:</p></div>
<table class="tableblock frame-all grid-all"
style="
width:100%;
">
<col style="width:100%;">
<tbody>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 4: Spectracom GPS Receivers (SPECTRACOM)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 8: Generic Reference Driver (PARSE)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 11: Arbiter 1088A/B GPS Receiver (GPS_ARBITER)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 18: NIST/USNO/PTB Modem Time Services (ACTS_MODEM)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 22: PPS Clock Discipline (PPS)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 26: Hewlett Packard 58503A GPS Receiver (GPS_HP)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 28: Shared Memory Driver (SHM)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 39: hopf GPS/DCF77 6039 for PCI-Bus (HOPF_P)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 40: JJY Receivers (JJY)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 42: Zyfer GPStarplus Receiver</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 44: NeoClock4X - DCF77 / TDF serial line</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 45: Spectracom TSync PCI</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top" ><p class="tableblock">Type 46: GPSD NG client protocol</p></td>
</tr>
</tbody>
</table>
<div class="paragraph"><p>For details on the technical considerations, see our
<a href="drivers.html">NTPD driver retention analysis</a>.</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr></div>
<div id="footer">
<div id="footer-text">
Last updated
2015-11-16 16:19:03 EST
</div>
</div>
</body>
</html>