LWN: Comments on "A rift in the NTP world" https://lwn.net/Articles/713901/ This is a special feed containing comments posted to the individual LWN article titled "A rift in the NTP world". en-us Mon, 20 Oct 2025 07:24:35 +0000 Mon, 20 Oct 2025 07:24:35 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net A rift in the NTP world https://lwn.net/Articles/821508/ https://lwn.net/Articles/821508/ hridhya09 <div class="FormattedComment"> I need a recipe for implementing ntpsec in an arm system <br> </div> Wed, 27 May 2020 09:26:51 +0000 A rift in the NTP world https://lwn.net/Articles/821060/ https://lwn.net/Articles/821060/ hridhya09 <div class="FormattedComment"> Can you share the steps for ntpsec implementation working package<br> </div> Thu, 21 May 2020 14:08:46 +0000 A rift in the NTP world https://lwn.net/Articles/715066/ https://lwn.net/Articles/715066/ Cyberax <div class="FormattedComment"> WAF supports DESTDIR out of box, but it's a command-line option and not a variable. It also is parallel, but since it doesn't integrate with make's job server it can't be parallel across multiple builds.<br> </div> Mon, 20 Feb 2017 23:19:16 +0000 A rift in the NTP world https://lwn.net/Articles/715064/ https://lwn.net/Articles/715064/ nix <div class="FormattedComment"> Er, if you think the problem there was just with the *instructions*, you're missing something. Not supporting DESTDIR in this day and age will make packagers want to strangle you. Not supporting parallel make is even worse.<br> <p> Was this *really* an improvement? It's not looking anything like one from where I'm sitting. Any autobuilder out there understands configure/make/make install based systems supporting DESTDIR, like upstream ntp, and will at most need telling "use configure, here are the configure script options". Handling your special snowflake build system will be a lot more work, a lot more cursing, and a lot more packagers asking "why does this project even exist?".<br> <p> (I hate scons too. Building Samba 4 wasn't terribly pleasant, either, particularly not for platforms with no Python installation but with a working compiler. I actually had to have the autobuilder *compile Python first*, install it in a virtualenv, then build Samba with that. Samba was worth it -- just. ntpsec... wouldn't be.)<br> </div> Mon, 20 Feb 2017 23:08:18 +0000 A rift in the NTP world https://lwn.net/Articles/715047/ https://lwn.net/Articles/715047/ fallenpegasus <div class="FormattedComment"> Thank you for discovering those issues with our INSTALL file instructions for cross compiling. We're now working on fixing them.<br> </div> Mon, 20 Feb 2017 19:55:01 +0000 A rift in the NTP world https://lwn.net/Articles/714920/ https://lwn.net/Articles/714920/ pizza <div class="FormattedComment"> All else being equal, I'd agree that the CII best practices are good to follow, but I feel compelled point out that a project that does little more than print out "hello world" could achieve a similar 100% badge.<br> <p> That 100% score doesn't mean that a given project is actually suitable for a given task or meets any objectively meaningful code quality targets.<br> <p> <p> </div> Sun, 19 Feb 2017 03:56:30 +0000 A rift in the NTP world https://lwn.net/Articles/714919/ https://lwn.net/Articles/714919/ jnareb <div class="FormattedComment"> NTPsec passed with 100% the CII Best Practices Badge:<br> <a href="https://bestpractices.coreinfrastructure.org/projects/79">https://bestpractices.coreinfrastructure.org/projects/79</a><br> <p> I doubt that NTP Classic would pass it.<br> <p> </div> Sat, 18 Feb 2017 23:32:51 +0000 A rift in the NTP world https://lwn.net/Articles/714826/ https://lwn.net/Articles/714826/ branden <div class="FormattedComment"> Here's another edifying Eric Raymond story, wherein he covers himself in his usual glory.<br> <p> <a href="http://invisible-island.net/ncurses/ncurses-license.html">http://invisible-island.net/ncurses/ncurses-license.html</a><br> <p> <p> </div> Fri, 17 Feb 2017 15:08:04 +0000 A rift in the NTP world https://lwn.net/Articles/714788/ https://lwn.net/Articles/714788/ anselm <blockquote><em>And if Sons was serious, she should at least have *started* by offering to help, not by forking ...</em></blockquote> <p> It seems that's how esr and his friends roll. After all, didn't esr fork many of his other feather-in-the-cap projects, like the <em>Jargon File</em> and fetchmail? </p> <p> The problem is that offering help requires a certain degree of deference towards the developers who have already been working on the project for a long time, and that doesn't come easy to people who consider themselves the greatest Unix programmers ever (remember that esr basically wrote The Book on the subject, or thinks so, anyway). If you're all “I'm new to this project but you're doing everything completely wrong – wrong language, wrong build system, and your code is insecure, too, let me sort this out for you already”, then forking is basically your only option because nobody likes a know-it-all bully. </p> Fri, 17 Feb 2017 00:24:22 +0000 A rift in the NTP world https://lwn.net/Articles/714767/ https://lwn.net/Articles/714767/ Cyberax <div class="FormattedComment"> Oy vey...<br> <p> Weather stuff is written in all kinds of languages. It does NOT need to do anything realtime, just fast enough. Fortran is used simply because the earliest models hark back to the beginning of 60-s.<br> </div> Thu, 16 Feb 2017 19:23:18 +0000 A rift in the NTP world https://lwn.net/Articles/714749/ https://lwn.net/Articles/714749/ Wol <div class="FormattedComment"> The trouble is, in this brave new tech world, the younger generation often think they *don't* *need* an older mentor.<br> <p> It's all very well us telling them "here be dragons", but by the time they find out there really are dragons it's too late. They've been eaten.<br> <p> Cheers,<br> Wol<br> </div> Thu, 16 Feb 2017 16:49:03 +0000 A rift in the NTP world https://lwn.net/Articles/714745/ https://lwn.net/Articles/714745/ Wol <div class="FormattedComment"> Don't forget, that apparently the XFree86 committee were telling people who wanted a GUI on *nix to "go and use Windows".<br> <p> And the fork to Xorg happened when said committee kicked the primary maintainer (ie the Indian doing the work, not the Chiefs pontificating) out of the project.<br> <p> And actually, I find the reported comments of NTPsec that "the guys doing NTP are burnt out and should be retired" a perfect example of offensive propaganda. If they're burning out, they need help not flaming. And if Sons was serious, she should at least have *started* by offering to help, not by forking ...<br> <p> Cheers,<br> Wol<br> </div> Thu, 16 Feb 2017 16:36:16 +0000 A rift in the NTP world https://lwn.net/Articles/714744/ https://lwn.net/Articles/714744/ Wol <div class="FormattedComment"> <font class="QuotedText">&gt; &gt; C is the only rational choice for things that truly need to be fast and as close to the metal as possible. (Assembly is the best choice for true performance and reliability.)</font><br> <p> <font class="QuotedText">&gt; No, it's not. And assembly? LOL.</font><br> <p> Which is why a lot of time critical stuff was (and is) written in Fortran.<br> <p> Fortran was the language of choice when simulations had difficulty keeping up with the real world, for example in weather forcasting ...<br> <p> Cheers,<br> Wol<br> </div> Thu, 16 Feb 2017 16:28:36 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714726/ https://lwn.net/Articles/714726/ pizza <div class="FormattedComment"> Oh, and my comments are even more applicable to NTP-the-protocol.<br> </div> Thu, 16 Feb 2017 14:37:32 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714723/ https://lwn.net/Articles/714723/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; My concern is appliances where the IP addresses used are baked in.</font><br> <p> It seems misguided to blame NTPd-the-project when the fault lies entirely with the idiots who shipped consumer gear with hardcoded, bad configurations.<br> <p> (From NTPd's perspective, there's no way to tell a difference between "bad" and "good" here; that's entirely the integrator/administrator's purview)<br> <p> <p> <p> <p> </div> Thu, 16 Feb 2017 14:21:29 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714678/ https://lwn.net/Articles/714678/ Cyberax <div class="FormattedComment"> There has been an idea to add a timestamp to DHCP replies. That would easily allow ~1s precision - more than enough to bootstrap DNSSEC and then acquire reliable NTP.<br> </div> Thu, 16 Feb 2017 08:06:20 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714673/ https://lwn.net/Articles/714673/ akkornel <div class="FormattedComment"> The issue I see with relying on DNS is, if DNSSEC becomes more used, then having NTP require DNS won't work well, as DNS would require NTP to verify signatures. You could bypass DNSSEC verification just for the NTP IP lookup, but that seems dangerous to me. Similarly, using TLS would also be problematic, as you need to already have good time in order to verify TLS certificate dates.<br> <p> So much of security today relies on each party in the exchange having the same, or similar, time.<br> <p> If changes are being proposed, I would suggest relying on capabilities that already exist within DHCP:<br> <p> 1: ISPs which provide DHCP service should run at least three NTP server, and must include those NTP server IPs in all DHCP offers. Smaller ISPs may make arrangements with a higher-tier ISP, or other entity, if they're unable to run their own NTP servers. ISPs which do not provide DHCP service are exempt, although they may wish to provide NTP service for their customer ISPs.<br> <p> 2a: Router vendors must each obtain a vendor zone from the NTP Pool project, and configure that as their NTP servers for their router software. For example, 0.linksys.pool.ntp.org, 1.linksys.pool.ntp.org, and 2.linksys.pool.ntp.org would be the default NTP servers for a Linksys router.<br> <p> 2b: When the router receives one or more NTP server IP addresses in a DHCP offer, if the router accepts the DHCP offer, then the router must replace its existing NTP server entries with the NTP server IP addresses received in the DHCP offer: For each IP received in the DHCP offer, replace one of the pre-configured NTP servers.<br> <p> 2c: If the router provides DHCP (for example, to its local network), and the router received NTP server IP addresses from upstream, then the router must provide those NTP server IP addresses in all DHCP offers that the router makes to local machines.<br> <p> Item 1 would be agreed upon and implemented by the ISPs. Those ISPs would then lean on their router suppliers, to ensure that the routers sold/rented/leased/whatever by the ISPs met all of the requirements of point 2. From there things could slowly flow to the remaining consumer router market. Some OSes are able to support getting NTP servers from DHCP; as more routers begin to provide them, OSes will begin to use them.<br> <p> This would allow devices to get NTP servers from a "trusted" source (the same source giving them their IP address), and helps to localize NTP traffic to within an ISP (or an ISP's ISP). It also eliminates the reliance on things like DNS and TLS, with one exception: As DNS embraces DNSSEC more and more, point 2a will stop working. Point 2a is only a stopgap, so that router vendors will have something to put in default configs.<br> </div> Thu, 16 Feb 2017 07:15:28 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714668/ https://lwn.net/Articles/714668/ gdt <p><i>In contrast, NTPd has proper rate-limit mechanism built-in, such as KoD and good pooling interval, blocking NTP does NOT causes more user traffic.</i></p> <p>We had issues in 2003 with SMC routers, and blocking that traffic lead to a multiplication of incoming traffic. The KoD option didn't arrive in servers until later, and then not in clients for years after that. So we had to specially engineer the network for ntpd until most of the purchasers of those routers retired them.</p> <p>It would be very useful if issuing a ICMP Administratively Denied prevented retries. The ACL is unlikely to suddenly disappear, so it would be safe to disable the association entirely. It's much easier for a network to issue a ICMP than to deploy an anycast edge of ntpd servers to issue KoD replies.</p> <p>Please note that "we've fixed it now" is desirable but not immediately useful for operating a network. We'll probably have to run special queuing for ntpd UDP control plane traffic for the next decade. So there might be only a few years where the network hasn't been running without a special fix for some ntpd issue. As you can see, the timescales in network operations are much longer than the timescales in development: you are at the leading edge of deployment, we have to deal with the trailing edge of deployments.</p> <p>That's why I say that the total security picture is important, human factors and all. It's better to avoid issues than to fix them.</p> <p>We not adverse to change. It would be useful if the major NTP authors formed a small cabal and had an approximate date where they all make a new release which moves the control channel to TCP (or even to TLS if you think that is wise).</p> Thu, 16 Feb 2017 06:03:11 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714667/ https://lwn.net/Articles/714667/ gdt <p>DHCP using IP addresses is fine. That's a mechanism an administrator can use to modify the NTP server used by the appliance's software. My concern is appliances where the IP addresses used are baked in.</p> Thu, 16 Feb 2017 05:04:58 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714610/ https://lwn.net/Articles/714610/ dwh <div class="FormattedComment"> FYI, most (all?) DHCP server implementations accept time-server configuration in DNS name format, and perform the DNS lookup on behalf of the client.<br> <p> So while the wire format DHCP protocol contents is 4-octet network byte order IPv4 or 16-octet network byte order IPv6 addresses, their contents are the result of DNS resolution and caching by the DHCP/DHCPv6 server; DNS remains the source of truth and clients receive updated results as they renew their leases (or abandon stale configuration when leases expire).<br> <p> This is even when the DHCPv6 server offers IPv6 address(es), IPv6 multicast address(es), and also FQDN(s) all together for some reason that can never be adequately explained (RFC 5908).<br> </div> Wed, 15 Feb 2017 19:25:55 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714595/ https://lwn.net/Articles/714595/ biergaizi <div class="FormattedComment"> <font class="QuotedText">&gt; Being able to list IP addresses in the configuration — rather than only DNS names — is a major misfeature. These IP addresses get hardcoded by device manufacturers.</font><br> <p> It is a separate issue, the issue of human, and it is not related to this post. Having a different NTP implementation won't make any differences, current NTPd has nothing wrong. Having a different protocol may have no use neither. It is much harder to solve all these problems than your imagine. <br> <p> Usually, if a device comes with hardcoded NTP addresses, it, in fact, usually indicates their program is poorly-written, and the manufacturers are irresponsible.<br> <p> Those devices have the worst homebrew NTP implementation on the planet,<br> <p> 1. They send ancient NTPv1 packets, while the latest version is NTPv4.<br> 2. They synchronize their time on the beginning of an hour, effectively making a flooding attack. Another larger flooding attack starts at 00:00 UTC.<br> 3. They retry interval is around 3 minutes, if fails to reach the server, make even more traffic to the server, rather than an exponentially-increase interval.<br> 4. They still try to talk to the default hardcoded servers, even if an alternative server list is set.<br> 5. They don't support the Kiss of Death packet, nothing can stop them if they became wild.<br> <p> ST-1 servers are the most vulnerable: they have highest accuracy, with reference clock. Despite the acceptable usage of ST-1 are passing time to downstream, or for scientific purposes, since there's only a handful of them and often listed publicly, they are often spotted by those manufacturers, and put in their devices by default.<br> <p> ST-1 are usually provided by universities, or unpaid volunteers for the public good of the Internet. If a single server got hardcoded in those mass-manufactured devices, serious consequences can happen, the volunteer may literally bankrupt: your whole institute/school will be kicked out from the Internet [0]; when you came to the manufacture asking to pay the damage they are responsible for, you are threatened by a lawyer from California. [1] The whole Internet community should honor the spirit of self-sacrifice of these NTP volunteers.<br> <p> Most of the NTP pool servers has similar issues, once you're in and became well-known on the net, there's no way out and keep receiving bad-traffic. Fortunately given a reasonable bandwidth, it is often a negligible issue though. But not as always. [2]<br> <p> <font class="QuotedText">&gt; That's because of a second misfeature, where blocking NTP — even returning a ICMP Administratively Denied — causes more traffic than servicing NTP.</font><br> <p> In contrast, NTPd has proper rate-limit mechanism built-in, such as KoD and good pooling interval, blocking NTP does NOT causes more user traffic. What increased is the abuser traffic. The damage caused by a standard NTPd and silly sysadmin is much less significant and is negligible compared to the Internet of Scary Things.<br> <p> By the way, not only hardware devices can contains dangerous NTP code, but also software.<br> <p> As long as manufactures still write broken code and unaware of the proper way to use NTP, nothing can be done to solve this issue. Many involved in these misuses and abuses are totally unaware what they are doing. The proper way to use of NTP should have been written in all textbooks related to practical networking lectures.<br> <p> NTPd does has issues, it has legacy code issues, it has vulnerabilities, it is not so actively maintained, and previously it has reflection attack issues, but the issue you mentioned is human issue, not NTPd issues. We still have reflection attack issues, though it has been fixed, it is still another human issue.<br> <p> [0]: Flawed Routers Flood University of Wisconsin Internet Time Server <br> <a href="http://pages.cs.wisc.edu/~plonka/netgear-sntp/">http://pages.cs.wisc.edu/~plonka/netgear-sntp/</a><br> <p> [1]: Open Letter to D-Link about their NTP vandalism<br> <a href="https://web.archive.org/web/20060423012837/http://people.freebsd.org/~phk/dlink/">https://web.archive.org/web/20060423012837/http://people....</a><br> <p> [2]: Recent NTP pool traffic increase<br> <a href="https://mailman.nanog.org/pipermail/nanog/2016-December/089588.html">https://mailman.nanog.org/pipermail/nanog/2016-December/0...</a><br> <p> Tom.<br> </div> Wed, 15 Feb 2017 19:02:06 +0000 A rift in the NTP world https://lwn.net/Articles/714598/ https://lwn.net/Articles/714598/ moltonel <div class="FormattedComment"> That's one area where Rust shines: benchmarks consistently place it at the same level as C (with similar algorithms and optimization efforts). And Rust will allow you to iterate your optimization work faster because you're less likely to unwittingly break stuff.<br> <p> Concerning "will work every time, guaranteed", it's a no-brainer that Rust's safety guarantees make that goal easier to attain than C. And yes, you can boot to Rust to avoid that pesky interfering OS.<br> <p> Sure, nothing beat C's portability. But when I see that Rust is arriving on Arduino for example, I stop worrying.<br> </div> Wed, 15 Feb 2017 18:01:37 +0000 A rift in the NTP world https://lwn.net/Articles/714602/ https://lwn.net/Articles/714602/ Cyberax <div class="FormattedComment"> <font class="QuotedText">&gt; C is the only rational choice for things that truly need to be fast and as close to the metal as possible. (Assembly is the best choice for true performance and reliability.) </font><br> No, it's not. And assembly? LOL.<br> <p> Hint: lots of hard-realtime trading systems are written in... Java. And these systems are not these laughable cases like stability control in cars where a failure simply leads to lost lives. If a trading system failure occurs then a much worse outcome happens - people lose MONEY.<br> <p> <font class="QuotedText">&gt; Operating at real-world timescales, you probably don't even want the OS in the loop for timing critical processing - modern OSes and hardware are now fast enough to really give you a false sense of security about the ability of a system to reliably do hard realtime control - "statistically works almost all the time" is NOT the same as "will work every time, guaranteed" - the latter is required in life-critical applications.</font><br> WTF OS has to do with the language of a fairly simple daemon? And IoT? You've forgotten to mention Machine Learning and Big Data for the complete Bullshit Bingo.<br> <p> NTP is designed to do one thing - synchronize clocks of computers across the wide-area network. It needs to be as good as the network jitter, which for regular Internet is usually within multiple milliseconds.<br> </div> Wed, 15 Feb 2017 17:46:50 +0000 A rift in the NTP world https://lwn.net/Articles/714588/ https://lwn.net/Articles/714588/ Nelson So there was a single machine in the world that could build ntp and the root password was lost? (You said that around 2:20 in that video.) <p> Can you explain any of that in more detail or is it simply hyperbole or is it worse? I mean, I'm pretty sure I've built in myself before and I was unaware that I was dependent upon that machine. <p> I get the message, I understand that there are these old project and they need transition plans and fresh air and such and that it's important. I'm even open to the idea that long-term supporting an opensource project might not be emotionally healthy, maybe it's better to hand things off for many reasons. I also get that things change and most problems have a different looking solution after the fact. I'd suggest that respect should be a key component of hacking. We should assume hacker solved problems the best they could with the information and knowledge and tools that they had at the time when we re-examine their solutions. It feels really disrespectful to hear stories that might not be entirely true being told as part of the process. In your presentation you also state the the tooling choices and build process were made to "maintain control," is that something you could also elaborate on? NTP was fundamentally a forkable opensource project, you can take it and patch it however you want, fork it, do whatever, what was it that constituted a control issue? Versus maybe a comfort issue. I only ask because, again, it sounds a little disrespectful, if he was a real control freak, it wouldn't be opensource at all and he'd have never asked for help, right? <p> I can email if I don't hear back here. Wed, 15 Feb 2017 17:40:44 +0000 A rift in the NTP world https://lwn.net/Articles/714596/ https://lwn.net/Articles/714596/ jubal <div class="FormattedComment"> LWN has this useful feature called “subscriber link”, where a subscriber may provide a non-subscriber with a direct link to the paywalled article; and the article becomes visible after two weeks anyway.<br> <p> (If neither of the options appeals to you, the actual subscription is dirt cheap and supporting high quality and independent tech journalism is very important.)<br> <p> <p> </div> Wed, 15 Feb 2017 17:35:33 +0000 A rift in the NTP world https://lwn.net/Articles/714557/ https://lwn.net/Articles/714557/ dublin <div class="FormattedComment"> C is the only rational choice for things that truly need to be fast and as close to the metal as possible. (Assembly is the best choice for true performance and reliability.) <br> <p> Operating at real-world timescales, you probably don't even want the OS in the loop for timing critical processing - modern OSes and hardware are now fast enough to really give you a false sense of security about the ability of a system to reliably do hard realtime control - "statistically works almost all the time" is NOT the same as "will work every time, guaranteed" - the latter is required in life-critical applications.<br> <p> Most of the discussion here is making a fatally flawed assumption - namely, that "regular" computers (PCs, servers, etc.) are the main kinds of things that need time synchronization. This is why the full functionality of the original NTP codebase (and its offshoots such as PTP) is important - as IoT moves increasingly into hard realtime (especially for apps like comms between self-driving cars, robots cooperating in the same workspace, etc.), PTP or something similar is required. (PTP is the Precision Time Protocol offshoot of NTP, and is the leading current standard in high-resolution industrial/commercial measurements.) NTP proper is only good to about 1/100 of a second - but 10 ms is forever: long enough for very, very bad things to happen in the real world.<br> <p> So in short, this isn't just about syncing PC clocks - that's pretty much trivial - the real issue is secure, reliable, synchronized microsecond clocks suitable for hard realtime IoT. As Mills says, the NTP group really does understand what that takes. I'm not convinced the NTPSec guys do... (at least not yet.)<br> <p> <p> </div> Wed, 15 Feb 2017 17:13:28 +0000 A rift in the NTP world https://lwn.net/Articles/714556/ https://lwn.net/Articles/714556/ rkeene <div class="FormattedComment"> The information about building NTPSec provided by the parent commenter is wrong. Running "./waf build" returns the following error:<br> <p> --- building host --- <br> The project was not configured: run "waf configure" first!<br> <p> <p> Further, running "./waf configure" fails predictably when cross-compiling (as generally you need to tell the system what platform is being targeted, though it could figure it out):<br> + ./waf configure<br> Setting top to : /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-pcXttoUpzzwX <br> Setting out to : /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-pcXttoUpzzwX/build <br> --- Configuring host --- <br> Checking for 'gcc' (C compiler) : /home/rkeene/devel/aurae/common/compiler/online/x86_64-coreadaptive-linux/bin/gcc <br> Checking for program 'bison' : /home/rkeene/devel/aurae/common/detected-tools/bison <br> Checking compiler : no <br> The configuration failed<br> (complete log in /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-pcXttoUpzzwX/build/config.log)<br> <p> The "build.log" referenced is full of escape sequences that hinder readabilty (but I'm sure if I were using "cat" to view it would make it very colorful on my terminal) and a huge, hundred or so line Python stack trace that, from what I can gather from the stack trace, means it tried to run the code it just compiled... which of course won't work, since the code being generated isn't for the platform I'm compiling it on.<br> <p> Helpfully, an "INSTALL" file is provided which tells us how to cross-compile NTPSec:<br> <p> == Cross-compiling ==<br> <p> Set up a cross-compile environment for the target architecture. At minimum<br> it will need its own binaries for the OpenSSL library.<br> <p> Configure NTPSec with:<br> <p> waf configure --enable-cross=/path/to/your/cross/cc<br> <p> But when we actually try to use that:<br> + ./waf configure --enable-cross=gcc<br> waf [commands] [options]<br> &lt;...hundreds of lines of usage omitted...&gt;<br> waf: error: no such option: --enable-cross<br> <p> The usage information, however, indicates a different option of:<br> --cross-compiler=CROSS_COMPILER<br> <p> So we try with that...<br> + ./waf configure --cross-compiler=gcc<br> Setting top to : /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-oyqK4b6LB8gE <br> Setting out to : /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-oyqK4b6LB8gE/build <br> --- Configuring host --- <br> Checking for 'gcc' (C compiler) : /home/rkeene/devel/aurae/common/compiler/online/x86_64-coreadaptive-linux/bin/gcc <br> Checking for program 'bison' : /home/rkeene/devel/aurae/common/detected-tools/bison <br> Checking compiler : no <br> The configuration failed<br> (complete log in /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-oyqK4b6LB8gE/build/config.log)<br> <p> <p> And the build.log looks like the same stack trace as before.<br> <p> Let's assume "waf" is really dumb and tries to look at the filename of my compiler to determine the platform and give it a different name -- no change.<br> <p> Let's assume it's ultra-extra dumb and is running "$CC" expecting it to be a native-compiler instead of using HOST_CC or CC_FOR_BUILD -- that seems to have gotten us further !<br> <p> + CC="${CC_FOR_BUILD}" ./waf configure --cross-compiler=gcc<br> Setting top to : /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-JoHiSwi4ewtB <br> Setting out to : /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-JoHiSwi4ewtB/build <br> --- Configuring host --- <br> Checking for 'gcc' (C compiler) : /home/rkeene/devel/aurae/common/detected-tools/gcc <br> Checking for program 'bison' : /home/rkeene/devel/aurae/common/detected-tools/bison <br> Checking compiler : yes <br> Compiler found : GCC <br> ...<br> Asking python-config for pyembed '--cflags --libs --ldflags' flags : yes <br> Testing pyembed configuration : yes <br> Asking python-config for pyext '--cflags --libs --ldflags' flags : yes <br> Testing pyext configuration : Could not build python extensions <br> The configuration failed<br> (complete log in /home/rkeene/devel/aurae/node/root/packages/ntpsec/workdir-JoHiSwi4ewtB/build/config.log)<br> <p> At this point, things are failing because it's asking our build system's "python-config" how to compile a Python extension, which differs from the host system Python... but there doesn't seem to be a way to tell it to use the correct "python-config", so we play some PATH tricks and get going further...<br> <p> At this point, after reading the wrong comment, wrong documentation, and finally following the usage information and making a few guesses, then some workarounds ... the configuration is complete. Time to build it !<br> <p> Of course there's no Makefile but the INSTALL documentation says we should NOW do "./waf build". It seems to work -- it's a bummer that it's not using a Makefile since it would otherwise integrate into the parallel build system.<br> <p> Now we have to figure out how to install it -- with no conventional "make install DESTDIR=..." and the INSTALL file lacking (hey, atleast it's not just wrong this time) information on how to use DESTDIR. There seems to be a --destdir option to "waf", we try it out and it works on the first try... but at this point we notice we forgot to specify "--prefix" and "--sbindir" options to the configure step...<br> <p> But there's no option for "--sbindir" and the "--bindir" option doesn't stop it from installing "ntpd" in /sbin, so we have to move it to the correct directory after the installation completes... and finally, we have a working package.<br> <p> <p> </div> Wed, 15 Feb 2017 15:47:58 +0000 A rift in the NTP world https://lwn.net/Articles/714554/ https://lwn.net/Articles/714554/ HedgeMage <div class="FormattedComment"> Jumping in, while this article is not paywalled (it has been at other times I've tried to visit).<br> <p> I'm Susan Sons, the "ISO Emeritus" who presented on NTPSec at O'Reilly Security Conference. While I've stepped down from my official role with NTPSec, I do what I can to raise awareness of NTPSec, both for the good of its community, and as a case study in what much of our infrastructure software is going through. Mark has already done a more than adequate job of addressing points related to the NTPSec/NTP classic split, so I shall limit myself to some personal notes:<br> <p> I was not, to my knowledge, contacted by Bruce Byfield or anyone else researching this article. I find this surprising as I am incredibly easy to find. Feel free to drop "Susan Sons NTP" or "Susan Sons ICEI" or any similarly logical set into a search engine and see what happens. I've chosen to make my email addresses ( susan@icei.org for open source organization things, hedgemage@binaryredneck.net for personal, and sesons@iu.edu at work) quite public, and finding at least one of my phone numbers as well as my office address and home address should be trivial as well. While I do travel extensively for work, I'm good at following up, and there are people in my office who will bridge the gap if needed. <br> <p> Being a hacker, I find this is a great defense against getting doxxed: it's already out there, and I don't care.<br> <p> The full video of my interview with Mac Slocum is here for anyone who would like to see my remarks in context and un-edited:<br> <a rel="nofollow" href="https://www.oreilly.com/ideas/the-internet-is-going-to-fall-down-if-i-dont-fix-this-susan-sons?imm_mid=0eb1c1&amp;cmp=em-webops-na-na-newsltr_security_20161129">https://www.oreilly.com/ideas/the-internet-is-going-to-fa...</a><br> <p> I speak at length about the education I received at the feet of previous generations of software engineers, and how I built my career on their mentorship. I also talk about how one day I looked around, and there were not enough people like me in my generation waiting to take the hand-off. Succession planning matters, and it has not been happening. I created New Guard to attract and mentor new infrastructure software maintainers, and specifically to help them find opportunities to work under the Old Masters and learn as I did. We, the community of hackers, need to plan ahead, or our software infrastructure will be taken over by centralized powers who are happy to Balkanize it and curb the many freedoms many now take for granted.<br> <p> My slides from the security conference presentation are here: <a rel="nofollow" href="http://slides.com/hedgemage/savingtime">http://slides.com/hedgemage/savingtime</a><br> The video of the presentation is available on O'Reilly Safari<br> <p> I can't promise to follow up in this comment thread, as it has not been accessible at all times I've tried to visit. However, anyone who has questions for me is welcome to email me.<br> </div> Wed, 15 Feb 2017 15:22:59 +0000 A rift in the NTP world https://lwn.net/Articles/714545/ https://lwn.net/Articles/714545/ federico3 <div class="FormattedComment"> If only Nim was stable enough...<br> </div> Wed, 15 Feb 2017 13:48:26 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714535/ https://lwn.net/Articles/714535/ pizza <div class="FormattedComment"> Oh, one more thing that I accidently left out -- DHCP's 'time-server' attributes are specified in terms of IP addresses.<br> <p> So you're always going to need to handle NTP client configuration in terms of IP addresses.<br> </div> Wed, 15 Feb 2017 02:16:24 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714534/ https://lwn.net/Articles/714534/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; Being able to list IP addresses in the configuration — rather than only DNS names — is a major misfeature.</font><br> <p> I disagree. Forcing use of DNS names makes you reliant on DNS, which:<br> <p> * requires that there be a DNS server, and that it be accessible.<br> * opens you up to dns hijacking should said DNS server (and all intermediate resolvers) not be under your direct control. It may prevent use of DNSSEC (as the local resolver's clock needs to be at least in the same ballpark as the server's)<br> <p> ..As an end-user and administrator of small (&lt;50 user) networks, I've been bitten by all of these situations.<br> </div> Wed, 15 Feb 2017 02:09:47 +0000 Code cleanups don't solve NTP's security issues https://lwn.net/Articles/714531/ https://lwn.net/Articles/714531/ gdt <p>I'm a network engineer on a large internet network. NTP causes us problems, and has done so for decades.</p> <p>Being able to list IP addresses in the configuration &mdash; rather than only DNS names &mdash; is a major misfeature. These IP addresses get hardcoded by device manufacturers and that IP address is then forever bound to provide NTP service. That's because of a second misfeature, where blocking NTP &mdash; even returning a ICMP Administratively Denied &mdash; causes more traffic than servicing NTP. It's reasonable to require people providing NTP infrastructure to also configure DNS, and this small hassle is worth the cost when they no longer wish to prove the service at that particular IP address.</p> <p>The configuration file isn't really designed for the NTP pool. There's no way to apply a "restrict" statement to a pool DNS name. So most NTP deployments from Linux vendors are vulnerable out-of-the-box to allowing a subverted NTP pool machine to use those NTP clients in a DDoS multiplcation attack.</p> <p>NTP needs the control channel moved to TCP, again to limit the ability of servers to launch traffic multiplication attacks.</p> <p>I don't see NTPsec making these sort of changes, so I'd question the "sec" appellation.</p> Wed, 15 Feb 2017 01:39:23 +0000 A rift in the NTP world https://lwn.net/Articles/714457/ https://lwn.net/Articles/714457/ chrisV <div class="FormattedComment"> Thankfully the only time I have come across WAF is when trying to build pycairo-1.10.0 (the latest version available) with python-3. The WAF build system for pycairo is broken for versions of python after python-3.2. Anything as brittle as this which breaks when a new minor version of python comes out is surely unusable?<br> </div> Tue, 14 Feb 2017 11:52:58 +0000 A rift in the NTP world https://lwn.net/Articles/714446/ https://lwn.net/Articles/714446/ Cyberax <div class="FormattedComment"> WAF does support cross-compilation for real-life large projects: <a href="https://wiki.samba.org/index.php/Waf#cross-compiling">https://wiki.samba.org/index.php/Waf#cross-compiling</a><br> <p> I've had my share of issues with build toolchains and debugging even esoteric issues with Unicode capitalization on MacOS X in Scons was easier than finding out why autotools is not rebuilding stuff properly.<br> <p> <p> </div> Tue, 14 Feb 2017 03:22:08 +0000 A rift in the NTP world https://lwn.net/Articles/714441/ https://lwn.net/Articles/714441/ pizza <div class="FormattedComment"> <font class="QuotedText">&gt; The decision to move off autotools was not done to move to the "new shiny", but as a deliberate decision to help drive the cleanup. </font><br> <p> Yeah, the last time I experienced a "help drive cleanup" migration away from autotools, it was GPSd to scons. It turned out to be easier to just backport fixes rather than fix the build system to work in a cross-compiled environment.<br> <p> To paraphrase, Autotools is the worst build system, except for all the others.<br> </div> Tue, 14 Feb 2017 01:44:54 +0000 A rift in the NTP world https://lwn.net/Articles/714434/ https://lwn.net/Articles/714434/ fallenpegasus <div class="FormattedComment"> I'm sorry you feel that way. <br> <p> The decision to move off autotools was not done to move to the "new shiny", but as a deliberate decision to help drive the cleanup. The existing autotools was ancient, was itself out to date with the latest autotools generators and so was very difficult to update and revise, it will full of errors, it ran very slowly, and it was tightly entangled with all the out of date portability shims and ifdefs.<br> <p> We made the technical decision that having a Python dependency to build would not be a difficult barrier. Every modern distro of every still shipping and still supported UNIX has a sufficiently up to date Python package, and most UNIX distros in fact now either actually require a Python install, or have Python in their core package set.<br> <p> Regular users or even builders of NTPsec are not required to know or code in Python. Just do a "./waf build" and it should work. If it doesnt work on your system, please email us at contact@ntpsec.org and let us fix it for you.<br> <p> If the WAF project ever dies, we will port to another build system. Maybe even to a modernerized autotools, if that is appropriate at the time.<br> </div> Mon, 13 Feb 2017 21:10:51 +0000 A rift in the NTP world https://lwn.net/Articles/714429/ https://lwn.net/Articles/714429/ clemensg <div class="FormattedComment"> I was just considering a switch to NTPsec but then I saw you moved away from the well established autotools to one of the new shiny build systems available nowadays and no one can say for sure if it is still maintained in a few years. Autoconf/-make will be, that's for sure. It's the de-facto standard build system, not only in the GNU world. It is especially nice if you are doing cross-compilation.<br> <p> Now you introduced more barriers for users and for developers. To build, you have to install Python. To understand the build process they need to know Python + waf: <a href="https://github.com/ntpsec/ntpsec/blob/master/wscript">https://github.com/ntpsec/ntpsec/blob/master/wscript</a><br> autotools is complicated but waf is not a big improvement, imho. Only a different kind of complexity.<br> <p> Many new build systems come and go. Remember Scons? Google wrote ninja/gyp/gn to "replace" it. waf is also a Scons fork/rewrite.<br> <p> Why not just keep using Autotools? Developers need to know it anyway if they work on other free software projects and it does its job.<br> </div> Mon, 13 Feb 2017 18:37:47 +0000 A rift in the NTP world https://lwn.net/Articles/714365/ https://lwn.net/Articles/714365/ mathstuf <div class="FormattedComment"> Note that with SOURCE_DATE_EPOCH from reproducible build efforts will make that date the date of the release or tag or some other static timestamp rather than "when this binary was built".<br> </div> Mon, 13 Feb 2017 01:31:08 +0000 A rift in the NTP world https://lwn.net/Articles/714361/ https://lwn.net/Articles/714361/ jmscott <div class="FormattedComment"> regarding affordable gps i recommend meinberg<br> <p> <a href="https://www.meinbergglobal.com/">https://www.meinbergglobal.com/</a><br> <p> excellent linux interface.<br> <p> -j<br> </div> Sun, 12 Feb 2017 23:02:33 +0000 A rift in the NTP world https://lwn.net/Articles/714355/ https://lwn.net/Articles/714355/ smcv <div class="FormattedComment"> <font class="QuotedText">&gt; However, systems that are starting up need to know the date within no more than 68 years</font><br> <p> I like systemd's trick for dealing with this: during early boot, if the kernel clock is before the date/time on which this particular version of systemd was compiled, it brings the clock forward to that date/time.<br> <p> As long as you don't leave a device for decades without upgrading its OS, and rebuild systemd at least every few years (either for a security or other bug fix, or just artificially to get a newer timestamp), that's good enough.<br> <p> There'd be nothing to stop the kernel doing the same trick with its own release or compilation date/time.<br> </div> Sun, 12 Feb 2017 18:10:25 +0000