Después de más de un año de desarrollo, se ha publicado la versión 1.2.4 del servidor de sincronización de tiempo NTPsec. El proyecto se creó como un fork de la implementación de referencia del protocolo NTPv4 (NTP Classic 4.3.34), enfocado en la reestructuración de la base de código para mejorar la seguridad. El código fuente de NTPsec se distribuye bajo las licencias BSD, MIT y NTP.
NTPsec se desarrolla bajo la dirección de Eric Raymond, con la participación de algunos desarrolladores originales de NTP Classic, ingenieros de Hewlett Packard y Akamai Technologies, así como de los proyectos GPSD y RTEMS. Entre las diferencias respecto a NTP Classic se destacan la inclusión del soporte del protocolo NTS (Network Time Security), la reducción de la base de código en más de un 50 % (eliminación de funciones obsoletas y plataformas irrelevantes), la implementación de un modo de funcionamiento autónomo, la adopción de métodos de prevención de ataques (como la filtración de llamadas del sistema) y la migración a funciones seguras para la gestión de memoria y cadenas.
En la nueva versión:
- Se ha añadido la configuración «extra port xxxx» para recibir solicitudes en un puerto de red adicional, además del puerto principal configurado a través de «nts port xxxx». El puerto adicional puede ser útil para eludir bloqueos de acceso a servidores NTP externos impuestas por cortafuegos.
- Se ha añadido soporte para compilación en sistemas Linux con arquitectura armhf.
- Se ha garantizado el soporte para el funcionamiento de ntpd en sistemas en modo FIPS.
- El sistema de construcción Waf se ha actualizado a la versión 2.1.4. En Debian, la instalación de utilidades escritas en Python, como ntpq y ntpmon, ahora se realiza en el directorio «/usr/local/lib/python3.xx/site-packages» en lugar de «/usr/local/lib/python3.xx/dist-packages». La comando «waf install» incluye pruebas de los archivos ejecutables instalados, y a través del comando «waf configure —enable-Werror» ahora es posible habilitar el tratamiento de advertencias del compilador como errores.
- Se ha declarado la versión mínima de Python como la 2.7. Se planea finalizar el soporte para Python 2 en la próxima versión.
- Por defecto, se aplica la opción «—disable-fuzz», que desactiva el mecanismo «Clock fuzzing» (introducción de desplazamientos aleatorios en milisegundos en el tiempo mostrado a los clientes, que no afectan la precisión general, pero evitan que un atacante prevea el valor real del tiempo).
- Se han eliminado los restos de código relacionado con el funcionamiento en modos broadcast y multicast.
- En ntpdig se ha añadido una opción para vincularse a un específico IP.
- Se ha añadido la opción para configurar la lista de algoritmos de cifrado preferidos para TLS en la configuración NTS-KE.
- Se ha utilizado la llamada ntp_gettime en lugar de ntp_adjtime.
Fuente: opennet.ru
