Zum Hauptinhalt Zur Navigation

Programmiersprachen: Sicheres NTP könnte von C auf Rust oder Go wechseln

Mit NTPsec erstellt ein Team um den Open-Source-Pionier Eric S. Raymond eine sichere Implementierung für NTP. Das Team überlegt, sich komplett von dem C-Code zu trennen und stattdessen eine sichere Programmiersprache wie Rust oder Go zu verwenden.
/ Sebastian Grüner
79 Kommentare News folgen (öffnet im neuen Fenster)
NTP dient zur Zeitsynchronisation über das Internet. (Bild: Wikimedia, Manuelarosi,)
NTP dient zur Zeitsynchronisation über das Internet. Bild: Wikimedia, Manuelarosi, / CC-BY-SA 4.0

Seit etwas mehr als einem Jahr arbeitet ein kleines Entwicklerteam um den Open-Source-Pionier Eric S. Raymond an NTPsec(öffnet im neuen Fenster) . Dabei handelt es sich um einen sicheren und abgespeckten Fork der Referenzimplementierung des Network Time Protocol (NTP). Finanziell unterstützt wird das von der Core Infrastructure Initiative (CII) unter Führung der Linux Foundation. Raymond gibt in dem Projekt-Blog(öffnet im neuen Fenster) bekannt, dass sich das Projekt künftig von seinem C-Code verabschieden könnte.

Statt dem vor allem für Überläufe anfälligen C, das damit potenzielle Sicherheitslücken birgt, erwägt das Team einen Wechsel auf eine Sprache, die derartige Fehler von vornherein vermeidet. Die zwei möglichen Kandidaten dafür sind wenig überraschend das von Google initiierte Go sowie Rust, das explizit als Alternative zu C und damit verwandten Sprachen positioniert wird.

Dass ein kompletter Wechsel überhaupt so einfach in Erwägung gezogen werden könne, liege vor allem daran, dass der Code von NTPsec keine besonderen Abhängigkeiten aufweise und die verbliebenen Plattformabhängigkeiten wohl einfach auf Standard-APIs übertragen werden könnten. Der optimistischen Schätzung von Raymond zufolge könnten die Arbeiten an der Übersetzung in eine andere Sprache bereits in 6 bis 9 Monaten begonnen werden.

Noch gibt es keinerlei Präferenz für eine der beiden Sprachen. Eine mögliche Entscheidung hängt wohl davon ab, ob und wie gut der C-Code automatisch übersetzt werden kann. Sowohl für Go als auch für Rust gebe es entsprechende Werkzeuge, jenes für Rust, Corrode, befindet sich aber noch in der Entstehungsphase. Darüber hinaus werde ein Wechsel wohl auch davon abhängen, welche der Sprachen Raymond besser gefalle.


Relevante Themen