NTP-beveiliging met verificatie en vertrouwde tijdsreferenties

NTP (Network Time Protocol) synchroniseert netwerken met een enkele tijdbron met behulp van tijdstempels om de huidige tijd van de dag weer te geven, dit is essentieel voor tijdgevoelige transacties en veel systeemtoepassingen zoals e-mail.

NTP is daarom kwetsbaar voor beveiligingsbedreigingen, of het nu gaat om een ​​kwaadwillende hacker die het tijdstempel wil wijzigen om fraude of een DDoS-aanval te plegen (Distributed Denial of Service - normaal gesproken veroorzaakt door kwaadaardige malware die een server overstroomt met verkeer) die servertoegang blokkeert.

Omdat het een van de oudste protocollen van het internet is en gedurende meer dan 25-jaren is ontwikkeld, is NTP uitgerust met zijn eigen beveiligingsmaatregelen in de vorm van authenticatie.

Verificatie verifieert dat elke tijdstempel uit de beoogde tijdreferentie is gekomen door een reeks overeengekomen encryptiesleutels te analyseren die samen met de tijdinformatie worden verzonden. NTP, met Message Digest Encryption (MD5) om de sleutel te ontcijferen, analyseert het en bevestigt of het uit de vertrouwde tijdbron is gekomen door het te verifiëren tegen een set vertrouwde toetsen.

Vertrouwde authenticatiesleutels worden weergegeven in het NTP-serverconfiguratiebestand (ntp.conf) en worden normaal opgeslagen in het bestand ntp.keys. Het sleutelbestand is normaal gesproken erg groot, maar vertrouwde sleutels vertellen de NTP-server welke set van subset sleutels momenteel actief is en welke niet. Verschillende subsets kunnen worden geactiveerd zonder het bestand ntp.keys aan te passen met behulp van de opdracht trusted-keys config.

Authenticatie is daarom van groot belang bij het beschermen van een NTP-server tegen kwaadwillende aanvallen; er zijn echter veel tijdreferenties waar authenticatie niet vertrouwd kan worden.

Microsoft, die sinds Windows 2000 een versie van NTP in hun besturingssysteem heeft geïnstalleerd, beveelt ten zeerste aan dat een hardwarebron als timingreferentie wordt gebruikt, omdat internetbronnen niet kunnen worden geverifieerd.

NTP is essentieel voor het gesynchroniseerd houden van netwerken, maar minstens zo belangrijk is het beveiligen van systemen. Terwijl netwerkbeheerders duizenden in antivirale / malwaresoftware besteden, slagen velen er niet in om het lek in hun tijdservers te ontdekken.

Veel netwerkbeheerders vertrouwen internetbronnen nog steeds toe voor hun tijdreferentie. Hoewel velen een goede bron bieden voor UTC-tijd (Coordinated Universal Time - de internationale standaard van tijd), zoals nist.gov, betekent het gebrek aan authenticatie dat het netwerk openstaat voor misbruik.

Andere bronnen van UTC-tijd zijn veiliger en kunnen worden gebruikt met relatief goedkope apparatuur. De eenvoudigste methode is om een ​​gespecialiseerde NTP GPS-tijdserver te gebruiken die verbinding kan maken met een GPS-antenne en een geverifieerd tijdstempel per satelliet kan ontvangen.

GPS-tijdservers kunnen nauwkeurigheid tot UTC-tijd leveren tot binnen enkele nanoseconden, zolang de antenne een goed zicht op de lucht heeft. Ze zijn relatief goedkoop en het signaal is geauthenticeerd en biedt een veilige tijdsreferentie.

Als alternatief zijn er verschillende nationale uitzendingen die een tijdreferentie verzenden. In het Verenigd Koninkrijk wordt dit uitgezonden door het National Physics Laboratory (NPL) in Cumbria. Soortgelijke systemen zijn actief in Duitsland, Frankrijk en de VS. Terwijl dit signaal wordt geverifieerd, zijn deze radiosignalen gevoelig voor interferentie en hebben ze een eindig bereik.

Verificatie voor NTP is ontwikkeld om kwaadwillende manipulatie met systeemsynchronisatie te voorkomen, net zoals er firewalls zijn ontwikkeld om netwerken te beschermen tegen aanvallen, maar net als bij elk beveiligingssysteem werkt het alleen als het wordt gebruikt.

Dit bericht is geschreven door

Richard N Williams

Richard N Williams is een technisch auteur en een specialist in de NTP-server en de tijd synchronisatie industrie. Richard N Williams op Google+