Dopo oltre un anno di sviluppo, è stata pubblicata la versione 1.2.4 del server di sincronizzazione del tempo NTPsec. Il progetto è stato creato come un fork dell'implementazione di riferimento del protocollo NTPv4 (NTP Classic 4.3.34), con l'obiettivo di ristrutturare il codice per migliorarne la sicurezza. Il codice sorgente di NTPsec è distribuito sotto licenze BSD, MIT e NTP.
NTPsec è sviluppato sotto la guida di Eric Raymond, con la partecipazione di alcuni sviluppatori dell'originale NTP Classic, ingegneri delle aziende Hewlett Packard e Akamai Technologies, oltre ai progetti GPSD e RTEMS. Tra le differenze rispetto a NTP Classic si evidenzia l'aggiunta del supporto per il protocollo NTS (Network Time Security), la riduzione della dimensione del codice di oltre la metà (sono state rimosse funzionalità obsolescenti e piattaforme non più attuali), l'implementazione della modalità offline, l'adozione di metodi per prevenire attacchi (come la filtrazione delle chiamate di sistema) e la transizione a funzioni sicure per la gestione della memoria e delle stringhe.
Nella nuova versione:
- È stata aggiunta l'impostazione «extra port xxxx» per ricevere richieste su una porta di rete aggiuntiva, oltre alla porta principale configurata tramite «nts port xxxx». La porta aggiuntiva può essere utile per superare i blocchi sulle comunicazioni con server NTP esterni, imposti dai firewall.
- È stata aggiunta la supporto per la compilazione su sistemi Linux con architettura armhf.
- È garantito il supporto per il funzionamento di ntpd su sistemi in modalità FIPS.
- Il sistema di build Waf è stato aggiornato alla versione 2.1.4. In Debian, l'installazione di utilità scritte in Python, come ntpq e ntpmon, ora avviene nella cartella «/usr/local/lib/python3.xx/site-packages», piuttosto che in «/usr/local/lib/python3.xx/dist-packages». Nel comando «waf install» è stata inclusa la verifica dei file eseguibili installati, e tramite il comando «waf configure —enable-Werror» ora è possibile attivare il trattamento degli avvisi del compilatore come errori.
- La versione minima di Python dichiarata è la 2.7. Ho in programma di interrompere il supporto per Python 2 nella prossima versione.
- Per impostazione predefinita è stata applicata l'opzione «—disable-fuzz», che disabilita il meccanismo di «Clock fuzzing» (l'aggiunta di piccole variazioni casuali in millisecondi all'orario restituito ai client, che non influiscono sulla precisione complessiva, ma impediscono agli aggressori di prevedere il valore temporale effettivo).
- Rimossi i residui di codice legati al funzionamento in modalità broadcast e multicast.
- A ntpdig è stata aggiunta l'opzione per il binding a specificato. indirizzo IP.
- Nella configurazione NTS-KE è stata aggiunta un'opzione per configurare l'elenco degli algoritmi di crittografia preferiti per TLS.
- Invece di ntp_adjtime, è stata utilizzata la chiamata ntp_gettime.
Fonte: opennet.ru
