Wat is NTP?

NTP (Network Time Protocol) is een netwerkprotocol waarmee computers, servers en industriële apparaten hun systeemklok via een IP-netwerk synchroniseren met een betrouwbare tijdsbron, door tijdstempels uit te wisselen en de netwerkvertraging daaruit te berekenen. De huidige versie, NTPv4, is in 2010 vastgelegd in RFC 5905 en werkt via UDP-poort 123. Op een lokaal netwerk haalt NTP doorgaans een nauwkeurigheid van minder dan een milliseconde, over het internet enkele tientallen milliseconden.

NTP is de stille basis onder correcte logvolgorde, procesbesturing en beveiliging in zowel IT- als OT-omgevingen: zonder gelijklopende klokken is geen enkele tijdlijn betrouwbaar.


🎯 Waarom is tijdsynchronisatie zo belangrijk?

Een klok in een computer of PLC loopt nooit exact gelijk. Een gewoon kwartskristal wijkt typisch 10 tot 50 ppm af, ofwel ongeveer 1 tot 4 seconden per dag, en na enkele maanden zonder correctie lopen systemen minuten uit elkaar. Dat heeft directe gevolgen:

  • Logvolgorde en forensisch onderzoek - bij een incident moet u gebeurtenissen uit firewalls, servers en besturingen in de juiste volgorde zetten. Afwijkende klokken maken forensisch onderzoek en incidentrespons onbetrouwbaar.
  • Correlatie in de SIEM - een SIEM koppelt meldingen uit verschillende bronnen op basis van tijd; een verschil van enkele seconden kan een aanvalspatroon onzichtbaar maken.
  • Authenticatie - Kerberos in Active Directory weigert standaard aanmeldingen bij een klokverschil van meer dan vijf minuten, en certificaten worden op geldigheidsdatum gecontroleerd.
  • Procesdata - een historian, batch control en SCADA hebben correcte tijdstempels nodig om trends, batchrapporten en audit trails te kunnen reconstrueren.
  • Alarmen - alarmmanagement en first-out-analyse vertrouwen erop dat het eerste alarm ook echt het eerste was.
  • Redundantie en failover - wanneer een redundante server of besturing het overneemt, moeten beide dezelfde tijd hanteren; anders ontstaan gaten of dubbele records in de procesdata.

⚙️ Hoe werkt NTP technisch?

Een NTP-client vraagt periodiek de tijd op bij een of meer servers. Bij elk verzoek ontstaan vier tijdstempels: T1 (client verstuurt), T2 (server ontvangt), T3 (server verstuurt) en T4 (client ontvangt). Daaruit berekent de client:

  • Offset (klokverschil) = ((T2 − T1) + (T3 − T4)) / 2
  • Vertraging (round-trip delay) = (T4 − T1) − (T3 − T2)

NTP neemt aan dat de heen- en terugweg even lang duren. Is het pad asymmetrisch, bijvoorbeeld door een volle uplink of een trage VPN-tunnel, dan ontstaat een fout van maximaal de helft van dat verschil. Door meerdere servers te bevragen en uitschieters te filteren, kiest NTP de betrouwbaarste bron en negeert het een afwijkende “valse” klok.

De client past zijn klok vervolgens geleidelijk aan. De referentie-implementatie ntpd versnelt of vertraagt de klok (slewen) met maximaal 500 ppm, zodat er geen tijdsprongen ontstaan. Pas bij een afwijking van meer dan 128 milliseconden die blijft bestaan, wordt de klok in één keer verzet (steppen), en bij meer dan 1000 seconden stopt ntpd standaard omdat er dan iets fundamenteel mis is. Het vraaginterval loopt standaard van 64 tot 1024 seconden en wordt groter naarmate de klok stabieler loopt.


🧱 Hoe ziet de NTP-hiërarchie (stratum) eruit?

NTP organiseert tijdsbronnen in lagen, strata. Hoe lager het getal, hoe dichter bij de referentieklok:

Stratum Rol Voorbeeld in een fabriek
0 Referentieklok, zelf geen netwerkapparaat GPS/Galileo-ontvanger, DCF77-radiosignaal, atoomklok
1 Primaire server, direct gekoppeld aan stratum 0 Hardware-tijdserver met GNSS-antenne op het dak
2 Secundaire server, synchroniseert met stratum 1 Domain Controller, centrale Firewall, core-switch
3–15 Verdere lagen Lokale servers, industriële switches per zone
16 Niet gesynchroniseerd Apparaat dat zijn bron kwijt is

In de praktijk zijn eindapparaten zoals een PLC, HMI, SCADA-server of historian clients op stratum 3 of 4. Elke extra laag voegt een kleine onnauwkeurigheid toe, dus houd de keten kort.


🔄 Wat is het verschil tussen NTP, SNTP, PTP en IRIG-B?

Protocol Typische nauwkeurigheid Kenmerk Toepassing
NTP < 1 ms (LAN) tot tientallen ms (internet) Filtert en combineert meerdere bronnen, geleidelijke correctie Servers, werkplekken, SCADA, logging
SNTP Milliseconden tot honderden ms Vereenvoudigde client zonder geavanceerde filtering Eenvoudige apparaten, switches, oudere PLC’s
PTP (IEEE 1588) Microseconden tot nanoseconden Hardware-tijdstempels in netwerkkaarten en switches Motion control, IEC 61850-onderstations, TSN
IRIG-B Microseconden Aparte tijdcode-kabel, geen netwerkprotocol Beveiligingsrelais en IED’s in de energiesector

NTP en PTP vullen elkaar aan: PTP voor apparatuur die microseconden nodig heeft, NTP voor alles waarbij milliseconden volstaan. Een tijdserver met GNSS-ontvanger levert in veel installaties zowel NTP als het PTP-grandmastersignaal.


🔐 Welke beveiligingsrisico’s heeft NTP?

Klassiek NTP heeft geen ingebouwde authenticatie van de tijd die het ontvangt. Dat maakt het een aantrekkelijk doelwit:

  • Tijdmanipulatie - via spoofing of een man-in-the-middle kan een aanvaller de klok verzetten. Gevolgen: verlopen of nog niet geldige certificaten, mislukte Kerberos-aanmeldingen, of een replay-aanval die weer “geldig” lijkt.
  • GNSS-verstoring - jamming of spoofing van satellietsignalen treft de stratum 1-server en daarmee het hele netwerk.
  • Amplificatie-aanvallen - in december 2013 werd de monlist-functie van oudere ntpd-versies (CVE-2013-5211) massaal misbruikt voor DDoS-aanvallen: een klein verzoek met vervalst bronadres levert een veel groter antwoord richting het slachtoffer. Versie 4.2.7p26 verhielp dit; restrict default ... noquery blokkeert dit soort vragen.
  • Publieke afhankelijkheid - een OT-netwerk dat direct publieke NTP-servers bevraagt, heeft een open uitgaande verbinding nodig, wat ingaat tegen netwerksegmentatie.

Het antwoord is Network Time Security (NTS), in 2020 vastgelegd in RFC 8915. NTS zet via TLS sleutels op en authenticeert daarna elk NTP-pakket, zodat de client weet dat de tijd echt van de bedoelde server komt. Nog niet alle OT-apparaten ondersteunen NTS, daarom blijft een interne, goed afgeschermde tijdserver de kern van de verdediging.


🏭 Hoe richt u NTP in een OT-netwerk in?

Een bewezen aanpak volgt het Purdue Model en de zones en conduits uit IEC 62443-3-3, dat met eis SR 2.11 (Timestamps) tijdstempels voor auditrecords vraagt. De uitbreiding RE 1 vraagt vanaf security level 2 om synchronisatie met een systeembrede tijdsbron, en RE 2 op security level 4 om bescherming van de integriteit van die tijdsbron:

  1. Kies een eigen primaire bron - plaats een stratum 1-tijdserver met GNSS-ontvanger (bij voorkeur GPS en Galileo) en een holdover-oscillator, zodat de tijd bij uitval van de satellieten uren tot dagen stabiel blijft.
  2. Zorg voor redundantie - gebruik minimaal drie onafhankelijke bronnen, zodat NTP een afwijkende klok kan wegstemmen. Twee bronnen geven bij onenigheid geen uitsluitsel.
  3. Distribueer per zone - laat in de DMZ of IDMZ een NTP-server de tijd doorgeven naar de OT-zones, en sta in de firewall alleen UDP 123 toe van die server naar de clients. Zo vereist segmentatie geen internetverbinding vanuit het procesnetwerk.
  4. Configureer de clients - stel op PLC’s, HMI’s, switches en servers dezelfde interne servers in, gebruik UTC als systeemtijd en laat lokale tijdzones alleen in de presentatie toe.
  5. Harden de servers - schakel beheerqueries uit, beperk wie mag synchroniseren en gebruik NTS of symmetrische sleutels waar apparaten dat ondersteunen; zie ook hardening.
  6. Bewaak de tijd - monitor offset en stratum, alarmeer bij stratum 16 of een afwijking boven een drempel (bijvoorbeeld 100 ms) en stuur die meldingen via Syslog naar de SIEM.

In een Windows-domein is de PDC-emulator van het forest root-domein de tijdbron voor alle domeincontrollers; laat die server synchroniseren met de interne stratum 1-bron. Red Hat Enterprise Linux gebruikt sinds versie 8 alleen nog chrony; ntpd wordt daar niet meer ondersteund. Let op: chrony bedient pas andere clients als u dat met een allow-regel toestaat.


🇳🇱 Welke Nederlandse en Europese context is relevant?

  • TimeNL - SIDN Labs biedt samen met VSL, SURF en de Trifecta Tech Foundation een publieke stratum 1-dienst, gevoed door GPS, Galileo, het DCF77-signaal en atoomklokken waaronder de officiële Nederlandse tijd UTC(VSL). NTS is daar sinds begin 2022 in productie.
  • ISO 27001 - beheersmaatregel A.8.17 (Clock synchronisation) uit de versie van 2022 eist dat klokken van relevante systemen met goedgekeurde tijdsbronnen worden gesynchroniseerd.
  • NIS2 en de Cyberbeveiligingswet - de zorgplicht vraagt om logging, detectie en incidentafhandeling; betrouwbare tijd is daar een stille voorwaarde voor, zeker bij de strakke meldtermijnen.
  • Schrikkelseconden - de laatste werd toegevoegd op 31 december 2016. De CGPM besloot in 2022 de toegestane afwijking tussen UTC en de aardrotatie uiterlijk in 2035 te vergroten, waardoor schrikkelseconden verdwijnen.

❓ Veelgestelde vragen

Welke poort gebruikt NTP?

NTP gebruikt UDP-poort 123, zowel voor de server als meestal voor de client. Voor Network Time Security komt daar een TLS-verbinding voor de sleuteluitwisseling bij, standaard op TCP-poort 4460. In een OT-firewall staat u NTP bij voorkeur alleen toe vanaf de interne tijdserver.

Hoe nauwkeurig is NTP?

NTP haalt op een lokaal netwerk met moderne apparatuur doorgaans een nauwkeurigheid van minder dan een milliseconde. Over het internet ligt de nauwkeurigheid van NTP eerder op enkele tientallen milliseconden, vooral door asymmetrische netwerkpaden. Wie microseconden nodig heeft, gebruikt PTP.

Wat betekent stratum 16 bij NTP?

Stratum 16 betekent bij NTP dat een apparaat niet gesynchroniseerd is met een geldige tijdsbron. Stratum 1 tot en met 15 zijn geldige lagen, waarbij een lager nummer dichter bij de referentieklok ligt. Een apparaat op stratum 16 verdient een alarm in uw monitoring.

Mag een OT-netwerk publieke NTP-servers gebruiken?

Een OT-netwerk kan beter geen publieke NTP-servers direct bevragen, omdat daarvoor een uitgaande verbinding naar internet nodig is en de tijd niet geauthenticeerd wordt. Gebruik een interne tijdserver met eigen GNSS-ontvanger, eventueel aangevuld via de DMZ met een betrouwbare publieke bron die NTS ondersteunt.

Wat is het verschil tussen NTP en SNTP?

SNTP is een vereenvoudigde vorm van NTP die hetzelfde pakketformaat gebruikt, maar zonder het filteren en combineren van meerdere bronnen. SNTP is daardoor lichter en minder nauwkeurig en geschikt voor eenvoudige apparaten. Volwaardig NTP is beter voor servers en voor bronnen waar andere systemen op leunen.

Wat is NTS?

NTS (Network Time Security) is de beveiligingsuitbreiding van NTP uit RFC 8915 uit 2020. NTS gebruikt TLS om sleutels af te spreken en authenticeert daarna elk NTP-pakket, zodat een aanvaller de tijd niet ongemerkt kan vervalsen. Steeds meer servers en clients zoals chrony ondersteunen NTS.


📌 Samengevat

NTP zorgt ervoor dat al uw systemen op één tijdlijn lopen: de voorwaarde voor betrouwbare logs, werkende authenticatie, correcte procesdata en forensisch onderzoek. Richt NTP in met een eigen GNSS-gevoede stratum 1-bron, minstens drie onafhankelijke servers, distributie via de DMZ per zone en monitoring op offset en stratum. Beveilig de tijd met NTS waar dat kan, en gebruik PTP waar milliseconden niet volstaan. Zo wordt tijdsynchronisatie een vast onderdeel van OT-convergentie.