Tijd speelt een cruciale rol in en op internet. Tijdsdiensten met een milliseconde nauwkeurigheid zijn breed beschikbaar, maar de infrastructuur voor nog nauwkeurigere tijd (‘sub-milliseconde’) staat nog in de kinderschoenen. Dat terwijl voor steeds meer opkomende internettoepassingen en -diensten een dergelijke hoge nauwkeurigheid cruciaal is. Een open tijdinfrastructuur is een mogelijke oplossing.
De juiste tijd is cruciaal voor internet en de toepassingen die er gebruik van maken. Beveiligingsprotocollen als TLS, DNSSEC en RPKI spelen bijvoorbeeld een cruciale rol in internet, maar kunnen niet functioneren zonder de juiste tijd. Hetzelfde geldt voor een functie als domeinnaamregistratie.
Onnauwkeurige timing kan ernstige operationele gevolgen hebben, zoals gegevensverlies omdat backupprogramma’s te laat worden gestart of het voortijdig wissen van de cache van een DNS-resolver, en resulteren in prestatie- of beschikbaarheidsproblemen. Het is daarom essentieel om betrouwbare tijddiensten te ontwikkelen die internettoepassingen met uiteenlopende nauwkeurigheidseisen ondersteunen. Deze diensten zijn nu vaak een ondergeschoven kindje.
Timestamps
Internettijddiensten zoals NTP Pool en het door SIDN Labs opgezette TimeNL verspreiden timestamps doorgaans via het Network Time Protocol (NTP). NTP-infrastructuren gebruiken hiervooreen hiërarchie van tijdservers zodat ze grote aantallen internetapparaten kunnen bedienen. Tijdsbronnen (zogenaamde ‘referentieklokken’) zijn bijvoorbeeld atoomklokken of signalen van satellietnetwerken.
NTP biedt typisch een nauwkeurigheid van tientallen tot rond de honderd milliseconden, maar het Precision Time Protocol (PTP) kan tijd met nog hogere nauwkeurigheid verspreiden (microseconden of meer). Een dergelijke ‘sub-milliseconde’ nauwkeurigheid is belangrijk voor nieuwe kritieke infrastructuren, die gebruikmaken van internet en internetprotocollen. Zo vereisen slimme elektriciteitsnetten op zijn minst microseconde nauwkeurigheid en vragen ultrasnelle beurssystemen om een tot op de microseconde of zelfs nanoseconde nauwkeurige tijd. Deze geavanceerde toepassingen vereisen meestal ook een hoge stabiliteit, bijvoorbeeld een stabiele afwijking van een nanoseconde om schepen een haven binnen te loodsen.
Een PTP-infrastructuur kan tijd met een sub-milliseconde nauwkeurigheid verspreiden, omdat de PTP-switches op het pad van een tijdsbron (referentieklok) naar een gebruiker ‘tijdbewust’ zijn. Dit betekent dat ze timestamps onderweg voortdurend corrigeren door de vertraging die PTP-pakketten in een switch ondervinden eraf te trekken. PTP-netwerken zijn meestal gesloten, waardoor ze minder gevoelig zijn voor aanvallen, maar doorgaans niet beschikbaar zijn voor derden.
Kinderschoenen
Het euvel met PTP-infrastructuren is dat ze nog in de kinderschoenen staan, hoewel PTP al sinds 2002 een standaard is. Het ecosysteem is gefragmenteerd en bestaat uit maar een beperkt aantal operators van referentieklokken en PTP-netwerken, die elk een specifieke regio of doelgroep bedienen.
Dit is een probleem omdat het daardoor lastig is om sub-milliseconde tijd op internetschaal aan te bieden. Zo is het voor internetserviceproviders lastig een tijdsignaal op te halen bij meerdere providers van tijdnetwerken. Daardoor bestaat de kans dat de sub-milliseconde-tijddiensten die ze zouden willen leveren minder robuust zijn dan een NTP-infrastructuur of dan hun ip-connectiviteitsdiensten. Bovendien fungeren operators van sub-milliseconde-tijdnetwerken vaak ook als aanbieders van referentieklokken (bijvoorbeeld atoomklokken), wat de flexibiliteit van de infrastructuur beperkt omdat referentieklokken niet door meerdere tijdnetwerken zijn te delen worden gedeeld.
Onze visie is dat dit probleem een open sub-milliseconde tijdsinfrastructuur vereist, vergelijkbaar met het open karakter van het internet. Op die manier kan het organisch groeien waardoor sub-milliseconde tijd breder beschikbaar wordt. Om dit mogelijk te maken moet het gemakkelijker worden om een PTP-netwerk op te zetten en te beheren. Ons voorstel is om hiervoor een reeks operationele best practices en opensourcesoftwarecomponenten te ontwikkelen voor nieuwe operators van referentieklokken, tijdsdistributienetwerken en internetdiensten.
(In deze bijdrage richten we ons op de best practices. Meer informatie de andere facetten vind je in deze uitgebreide blog.)
Strakkere controle
De best practices gaan over verschillende aspecten van het ontwerpen en beheren van een PTP-tijdnetwerk. Ze verschillen van een typisch IP-netwerk, omdat tijdnetwerken een veel strakkere controle van de vertraging en jitter van het netwerk vereisen.De eerste drie best practices die we identificeerden bij ons werk aan TimeNL zijn:
- Netwerkontwerp
Het transporteren van sub-milliseconde tijdsignalen is complexer dan het ‘best effort’ transporteren van IP-pakketten en vraagt om speciale netwerkontwerpen. Met PTP moeten alle tussenliggende PTP-switches bijvoorbeeld een correctie uit kunnen voeren voor vertraging. Alle paden in het tijdnetwerk moeten daarnaast vrij zijn van ‘obstakels’ die de nauwkeurigheid negatief kunnen beïnvloeden. - Beveiligingsontwerp
PTP-netwerken vereisen extra beveiligingsmaatregelen omdat het protocol eigenlijk is ontworpen voor gebruik binnen vertrouwde omgevingen. Zo kan een tijdontvanger zichzelf in PTP bijvoorbeeld per ongeluk tot primaire klok bombarderen via PTP’s klokselectiealgoritme, waarna alle andere klokken, inclusief de ware primaire klok, hiermee gaan synchroniseren. - Netwerkbewaking
Tijdnetwerken moeten grondiger worden gemonitord dan typische ‘best effort’ IP-netwerken, omdat ze aan strikte vertragingseisen moeten voldoen. Idealiter zouden operators de nauwkeurigheid van hun tijdsignaal regelmatig door een externe auditor moeten laten toetsen aan atoomklokken.
Tijdtestbed
Om onze eerste verzameling operationele best practices te verbeteren, zijn we samen met internet exchanges AMS-IX en NL-ix bezig om hier in Nederland een kleinschalig open sub-milliseconde tijdtestbed op te zetten. Het gezamenlijke doel is om te leren wat er nodig is om de rollen van een ISP, een tijdnetwerkoperator en een leverancier van referentieklokken te combineren.
(Een ieder die interesse heeft om aan de pilot mee te doen, kan ons benaderen via timekeerpers@sidn.nl.)
Cristian Hesselman is directeur SIDN Labs en hoogleraar Trusted Open Networking aan de Universiteit Twente
Marco Davids is research engineer SIDN Lab
Giovane Moura is data-scientist SIDN Labs en assistant professor TU Delft Cyber Security group