Software::Distributionen::Debian

Reproduzierbare Builds in Debian nähern sich

Seit einem Jahr experimentieren einige Entwickler mit reproduzierbaren Builds in Debian. Vermutlich kann schon bald das experimentelle Stadium verlassen werden, und Debian 9 könnte komplett aus reproduzierbaren Paketen bestehen.

Software in the Public Interest (SPI)

Transparenz war schon immer ein wesentliches Argument für freie Software. Das gilt aktuell umso mehr und ist sogar oft von entscheidender Bedeutung, da Geheimdienste und Kriminelle immer mehr versuchen, den Anwendern schädliche Software unterzuschieben. Wer seine Software grundsätzlich nur im Quellcode bezieht, ist dank der Offenheit vor Schadcode nahezu gefeit, denn schon die Möglichkeit, den Quellcode und seine Änderungen zu inspizieren, macht Manipulationen sehr unwahrscheinlich. Doch fast immer sind auch Binärpakete im Spiel. Manchen Anwendern geht es in diesem Fall nicht weit genug, dass die Pakete aus vertrauenswürdigen Quellen stammen, was mittels kryptografischer Signaturen auch verifiziert werden kann. Sie wollen zusätzlich sicher sein, dass das Binärpaket auch mit exakt dem Quellcode erstellt wurde, den es angibt, und mit genau angegeben vertrauenswürdigen Werkzeugen.

Die Idee der reproduzierbaren Builds kommt wohl aus dem Umfeld des Tor-Projekts und Bitcoin, denen es in besonderem Maße darauf ankommt, dass die Anwender verifizieren können, dass ein bestimmter Stand von Quellcode und Werkzeugen zu einem exakt identischen Binärpaket führt. Das zu erreichen, ist keineswegs trivial. Will man auf zwei verschiedenen Systemen identische Binärpakete erzeugen, müssen eine Vielzahl von Werkzeugen identisch sein. Auch variable Daten wie Zeitstempel, die in den Binärcode eingehen, müssen vermieden oder zumindest konstant gehalten werden.

Seit mindestens einem Jahr verfolgen auch im Debian-Projekt einige Entwickler das Ziel der reproduzierbaren Builds. Ein aktueller Statusbericht meldet nun erhebliche Fortschritte: 83,5% der Pakete von in der Entwicklungsversion »sid« lassen sich reproduzierbar erzeugen. Das Projekt ist noch experimentell und muss sich zur Zeit noch speziell angepasster Werkzeuge bedienen, die in dieser Form noch nicht in Debian enthalten sind. Zum Generieren wird die Infrastruktur zur kontinuierlichen Integration auf jenkins.debian.net genutzt, die, wie der Name besagt, auf Jenkins beruht.

Die Entwickler planen, die Reproduzierbarkeit komplett in die Debian-Infrastruktur zu integrieren, was eine Menge von Stellen betrifft. Beispielsweise wurde der Reproduzierbarkeitsstatus in den Tracker, in die Paketübersicht für Entwickler (DDPO) und in das Maintainer Dashboard eingefügt. In Kürze sollen für alle Pakete, die sich noch nicht reproduzierbar bauen lassen, Fehler im Ticketsystem geöffnet werden. Mehr als 400 Einträge wurden laut den Entwicklern bereits erstellt, bis zu 2.000 weitere könnten noch folgen. Diese Einträge haben aber keine Auswirkung auf das in Kürze kommende Debian 8 »Jessie«, wohl aber auf die nachfolgende Version. Für diese könnte die Reproduzierbarkeit ein explizites Veröffentlichungsziel werden. Bis dahin sind aber noch einige offene Punkte zu erledigen. Alle Interessierten sind daher zur Mitarbeit aufgerufen.