Preventing (Network) Time Travel with Chronos
Published: September 2nd, 2018
The Network Time Protocol (NTP) is a major protocol that synchronizes time across computer systems over the internet. Many applications, such as TLS certificates, DNS, Kerberos, and HTTP Strict Transport Security (HSTS), rely on NTP for both correctness and safety.
For example, while accessing a web site with HTTPS, the browser verifies that the server we are communicating with actually hosts the url that we entered. This is done by inspecting the server’s certificate (see Figure 1).
Figure 2 shows a certificate information, with its expiration date. Our browser needs to know the current time in order to verify it. An incorrect time in our computer might lead us to accept old (and possibly compromised) certificates.
Unfortunately, NTP is highly vulnerable to attackers where the attacker’s goal is to shift the local time at an NTP client forward/backward, even if all NTP communications are encrypted and authenticated.
Accordingly, we present Chronos, a new NTP client that achieves good synchronization even in the presence of powerful man-in-the-middle attackers. Chronos is backwards compatible with legacy NTP and involves no changes whatsoever to NTP servers. In addition, Chronos is carefully engineered to minimize communication overhead so as to avoid overloading NTP servers.
We evaluate Chronos’ security and network efficiency guarantees via a combination of theoretical analyses and experiments with a prototype implementation. Our results indicate that to succeed in shifting time at a Chronos client by over 100ms from the UTC, even a powerful man-in-the-middle attacker can be expected to require over 20 years of effort.
Full paper link: Preventing (Network) Time Travel with Chronos