После более года разработки опубликован выпуск сервера синхронизации точного времени NTPsec 1.2.4. Проект был создан как форк эталонной реализации протокола NTPv4 (NTP Classic 4.3.34), сфокусированный на переработке кодовой базы с целью повышения безопасности. Исходный код NTPsec распространяется под лицензиями BSD, MIT и NTP.
NTPsec развивается под руководством Эрика Реймонда (Eric S. Raymond) при участии некоторых разработчиков оригинального NTP Classic, инженеров из компаний Hewlett Packard и Akamai Technologies, а также проектов GPSD и RTEMS. Из отличий от NTP Classic выделяется добавление поддержки протокола NTS (Network Time Security), сокращение размера кодовой базы более чем в два раза (удалены устаревшие возможности и неактуальные платформы), реализация режима автономной работы, задействование методов предотвращения атак (например, фильтрация системных вызовов), переход на защищённые функции для работы с памятью и строками.
В новой версии:
- Добавлена настройка “extra port xxxx” для приёма запросов на дополнительном сетевом порту, помимо основного порта, настраиваемого через “nts port xxxx”. Дополнительный порт может быть полезен для обхода блокировок обращения к внешним NTP-серверам, выставленных на межсетевых экранах.
- Добавлена поддержка сборки на Linux-системах с архитектурой armhf.
- Обеспечена поддержка работы ntpd на системах в режиме FIPS.
- Система сборки Waf обновлена до версии 2.1.4. В Debian установка утилит, написанных на Python, таких как ntpq и ntpmon, теперь осуществляется в каталог “/usr/local/lib/python3.xx/site-packages”, а не в “/usr/local/lib/python3.xx/dist-packages”. В команде “waf install” включено тестирвоание устанавливаемых исполняемых файлов, а через команду “waf configure –enable-Werror” теперь можно включить обработку предупреждений компилятора как ошибок.
- В качестве минимальной версии Python заявлен выпуск 2.7. Поддержку Python 2 планирую прекратить в следующей версии.
- По умолчанию применена опция “–disable-fuzz”, отключающая механизм “Clock fuzzing” (внесение миллисекундных случайных смещений в отдаваемое клиентам время, не влияющих на общую точность, но не позволяющих злоумышленникам предсказать фактическое значение времени).
- Удалены остатки кода, связанного с работой в режимах broadcast и multicast.
- В ntpdig добавлена опция для привязки к указанному IP-адресу.
- В конфигурацию NTS-KE добавлена опция для настройки списка предпочтительных алгоритмов шифрования для TLS.
- Вместо ntp_adjtime задействован вызов ntp_gettime.