หลังจากผ่านการพัฒนามามากกว่า 1.2.4 ปี ในที่สุดเซิร์ฟเวอร์ซิงโครไนซ์เวลาแม่นยำ NTPsec 4 ก็ได้รับการเผยแพร่แล้ว โครงการนี้ถูกสร้างขึ้นเพื่อเป็นส่วนหนึ่งของการใช้งานอ้างอิงของโปรโตคอล NTPv4.3.34 (NTP Classic XNUMX) โดยมุ่งเน้นไปที่การปรับปรุงฐานโค้ดเพื่อปรับปรุงความปลอดภัย ซอร์สโค้ดของ NTPsec ได้รับการเผยแพร่ภายใต้ใบอนุญาต BSD, MIT และ NTP
NTPsec ได้รับการพัฒนาภายใต้การดูแลของ Eric S. Raymond โดยได้รับความช่วยเหลือจากนักพัฒนา NTP Classic ดั้งเดิมบางส่วน วิศวกรจาก Hewlett Packard และ Akamai Technologies และโครงการ GPSD และ RTEMS ความแตกต่างจาก NTP Classic ได้แก่ การเพิ่มการรองรับโปรโตคอล NTS (Network Time Security) การลดขนาดฐานโค้ดลงมากกว่าครึ่งหนึ่ง (คุณสมบัติที่ไม่สนับสนุนและแพลตฟอร์มที่ไม่เกี่ยวข้องได้ถูกลบออก) การนำโหมดอัตโนมัติมาใช้ การใช้เมธอดป้องกันการโจมตี (เช่น การกรองการเรียกใช้ระบบ) และการเปลี่ยนผ่านไปสู่ฟังก์ชันที่ได้รับการป้องกันสำหรับการทำงานกับหน่วยความจำและสตริง
ในเวอร์ชันใหม่:
- เพิ่มการตั้งค่า "พอร์ตพิเศษ xxxx" เพื่อรับคำขอบนพอร์ตเครือข่ายเพิ่มเติม นอกเหนือจากพอร์ตหลักที่กำหนดค่าผ่านทาง "พอร์ต nts 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" (โดยการนำการชดเชยเวลาแบบสุ่มเป็นมิลลิวินาทีมาใช้ในเวลาที่กำหนดให้กับไคลเอนต์ ซึ่งไม่ส่งผลต่อความแม่นยำโดยรวม แต่ไม่อนุญาตให้ผู้โจมตีคาดเดาค่าเวลาจริงได้)
- ลบส่วนที่เหลือของโค้ดที่เกี่ยวข้องกับการทำงานในโหมดบรอดคาสต์และมัลติคาสต์
- เพิ่มตัวเลือกให้ ntpdig สามารถผูกกับพอร์ตที่ระบุได้ ที่อยู่ IP.
- มีการเพิ่มตัวเลือกให้กับการกำหนดค่า NTS-KE เพื่อกำหนดค่ารายการอัลกอริทึมการเข้ารหัสที่ต้องการสำหรับ TLS
- แทนที่จะใช้ ntp_adjtime จะใช้การเรียกใช้ ntp_gettime
ที่มา: opennet.ru
