By
Dr. J on 2023-01-03 07:23:34
Most current operating systems, including many small systems like IoT devices, use some form of NTP to sync time. NTP is lightweight and reasonably accurate in most use cases to synchronize time across the internet with millisecond accuracy [1]. Some protocols, like PTP, are more accurate but are designed for local networks and may require special hardware on the host [2]. Smaller systems with less stringent accuracy requirements sometimes use SNTP, a variant of NTP.
One of the most obvious and best-documented ways to identify an operating system based on NTP is the hostname of the NTP server. For examples:
- time.apple.com for Apple
- time.windows.com for Microsoft
- android.pool.ntp.org - Android
- amazon.pool.ntp.org - Amazon devices (Kindle, Echo)
- askozia.pool.ntp.org
- centos.pool.ntp.org
- debian.pool.ntp.org
- dragonfly.pool.ntp.org
- freebsd.poo.ntp.org
- irobot.pool.ntp.org
- opnsense.pool.ntp.org
- rhel.pool.ntp.org
- smartos.pool.ntp.org And many more.
- timed - used by Apple
- chrony - used by newer Linux versions
- ntpd - old "default" and probably most used ntp servers
- Windows Time Service w32time - Windows
Windows 10 | Linux Chrony | Linux ntpd | iOS | macOS | |
Source Port | 123 | > 1024 | 123 | > 1024 | 123 |
NTP Version | 3 | 4 | 4 | 3 | 4 |
Leap Indicator | 192 | 0 | 192 | 0 | 0 |
Poll Interval | 17 | 6 | 6 | 0 | 0 |
Root Dispersion | 1 | 0 | 0 | 0 | 0 |
Reference TS | current time | 0 | 0 | 0 | 0 |
Transmit TS | current time | random | random? | current time | random? |