network time security
Slik blir det sikrere for datamaskiner å be om tiden over internett
Tar i bruk cookies.
Mange IT-tjenester er avhengige av en nøyaktig og synkroniserte tidsangivelser for å fungere skikkelig. Dette kan gjelde alt fra etablering av krypterte forbindelser til tidsstempling av finansielle transaksjoner.
De fleste operativsystemer har innebygd støtte for å stille datamaskinens klokke automatisk. Dette er basert på en protokoll og tjeneste som heter Network Time Protocol (NTP).
Den første versjonen av NTP kom for mer enn 30 år siden, på en tid hvor det var relativt få som brukte internett, og hvor trusselbildet på internett var et helt annet enn i dag.
Lite motstandsdyktige mot angrep
Selv om NTP har blitt oppdatert flere ganger, så er protokollen sårbar, ikke minst for såkalte Man-in-the-Middle-angrep (MITM), hvor en ondsinnet aktør for eksempel har tilgang til forbindelsen mellom en datamaskin og NTP-serveren den ber om tiden fra, eventuelt å bruke DNS-forfalskning, slik at forbindelsen peker til en NTP-server som angriperen kontrollerer. Angriperen kan da endre tidspunktet i NTP-meldingene og få dermed få datamaskinen til å sette klokka til noe helt annet enn den egentlig er.
NTPv3 introduserte riktignok støtte for symmetrisk autentisering med forhåndsutdelte nøkler, men i praksis framstår dette som et eneste stort logistikkproblem, ikke minst for de store NTP-tilbyderne som betjener millioner av brukere.
Derfor har NTP-arbeidsgruppen i standardiseringsorganisasjonen IETF (Internet Engineering Task Force) i flere år jobbet med å skape et alternativ.
Network Time Security
Dette alternativet heter Network Time Security (NTS), men kalles også iblant for NTPSec. Det innebærer at forbindelsen mellom klient og server krypteres ved å bruke velkjente TLS (Transport Layer Security) og kanskje ikke fullt så kjente AEAD (Authenticated Encryption with Associated Data).
Svenske Netnod, som blant annet driver det største samtrafikknutepunktet i Norden, har vært med på å utvikle NTS.
Slik fungerer det
Selskapet skriver i et blogginnlegg at NTS fungerer på den måten at det er klienten som setter i gang nøkkelutvekslingen ved å ta kontakt med en NTS-KE-server (Network Time Security Key Exchange) via en TLS-kanal. Serveren sender et antall cookier til klienten, sammen med en liste med IP-adresser til servere hvor disse kan brukes.
Når klienten senere skal be serveren om tiden, benyttes en NTP-pakke med noen ekstra felt, sammenlignet med det som benyttes av NTPv4. Dette inkluderer blant annet et felt inneholder et autentiseringssymbol som har blitt beregnet av klienten basert på nøkkelmateriale den har mottatt i kommunikasjonen med NTS-KE-serveren. Et annet felt inneholder én av de nevnte cookiene.
NTP-serveren kan dekode cookien og benytte innholdet til å gjenskape det nevnte nøkkelmaterialet, før den returnerer en autentisert respons, som også inkluderer en ny cookie som klienten senere kan benytte.
Klienten validerer signaturer på den innkommende pakken og kan deretter sette tiden, samtidig som at den er sikker på at har mottatt den fra den korrekte serveren.
De første tjenestene
Blant målene for løsningen, er at den skal være svært lite ressurskrevende for serversiden.
Siden NTS fortsatt ikke er ferdig standardisert, og derfor kan bli endret, er det så langt få som tilbyr allment tilgjengelige NTS-tjenester. Enkelte er bare på teststadiet, og i slutten av september var det kun tjenesten til Cloudflare som ble ansett som produksjonsklar.
Én måned senere er antallet produksjonsklare tjenester minst dobbelt så høyt, da Netnod lanserte sin NTS-aktiverte NTP-tjeneste mandag denne uken.
Tjenesten er finansiert av svenske Post- och telestyrelsen og kan aksesseres med klienter som støtter NTS. To slike er utviklet av Netnod-ansatte. Den ene er skrevet i Python, den andre i Go. En tredje klient finnes her.
Det vil nok fortsatt ta noe tid før slik støtte eventuelt blir standard i de ulike operativsystemene.
Disse kan brukes til å kommunisere med Netnod NTS-aktiverte NTP-tjeneste via én av disse tre adressene: nts.ntp.se, nts.sth1.ntp.se og nts.sth2.ntp.se. De to sistnevnte er ment for brukere som holder til i nærheten av Stockholm.