AA_123rf-60002195_MaksymYemelyanov-123RF.jpg

© Maksym Yemelyanov, 123RF

Reproducible Builds in Debian

Bit für Bit

Die Ansprüche in Sachen Sicherheit steigen – auch für die Pakete in den Archiven der Distributionen. Debians Reproducible-Builds-Projekt versucht, dem gerecht zu werden.

Darf man Software überhaupt noch vertrauen? Diese Frage stellt sich zunehmend, sobald man die Begehrlichkeiten der Staatsorgane sowie der ihnen willfährig zuarbeitenden Softwarefirmen einerseits betrachtet oder die Armee krimineller Hacker andererseits. Um ihre Ziele zu erreichen, versuchen die einen wie die anderen dem Nutzer manipulierte Software unterzuschieben.

Nun darf man in der Regel der verwendeten Distribution soweit vertrauen, dass die Pakete, die sie ausliefert, dem Quellcode entsprechen, aus dem sie gebaut wurden. Die Packages lassen sich auch nur schwer manipulieren, da die Inhalte der Archive die Signatur der GPG-Schlüssel der jeweiligen Paketbetreuer tragen. Allerdings gibt es auch Ausnahmen: So ließ sich Linux Mint kürzlich nicht nur ein manipuliertes Image unterschieben, sondern lieferte es auch noch an die Benutzer aus.

Debian stellt hier von Haus aus höhere Barrieren auf. Trotzdem fragten sich dort schon vor einigen Jahren einige Entwickler, was man tun könnte, um die Sicherheit weiter anzuheben. Die resultierende Idee: Der Anwender soll zu Hause überprüfen können, ob ein Paket Bit für Bit dem zugrundeliegenden Quellcode entspricht. Bereits um die Jahrtausendwende gab es auf der Debian-Entwicklerliste in Debian erste Anregungen zu reproduzierbaren Binärpaketen, die Idee wurde aber damals als nicht realisierbar abgetan.

Noch experimentell

Das noch in der experimentellen Phase befindliche Projekt, das diesen Grundgedanken wieder aufgenommen hat, nennt sich Reproducible Builds [1]. Nach rund zwei Jahren intensiver Arbeit könnte es 2017 mit Debian 9 "Stretch" an einem Punkt anlangen, an dem sich Debian zumindest teilweise reproduzierbar nachbauen lässt.

Als Endziel schwebt den Entwicklern vor, dass sich nicht nur alle Pakete reproduzierbar bauen lassen, sondern auch die dafür eigens erstellten Werkzeuge einen Weg in die Debian-Infrastruktur finden, um auch künftig Reproduzierbarkeit zu gewährleisten.

Das klare Versprechen des Reproducible-Builds-Projekts lautet: Jedermann kann zu jeder Zeit bitgenau identische Binärpakete eines gegebenen Quelltexts bauen (Abbildung 1). Geht es nach den Machern von Reproducible Builds, soll also künftig die Definition von freier Software die Reproduzierbarkeit zwingend mit einschließen (Abbildung 2).

Abbildung 1: Das Versprechen des Projekts: stets reproduzierbare, identische Binärpakete.
Abbildung 2: Die Definition von freier Software sollte bitgenaue Reproduzierbarkeit einschließen.

Breite Testbasis

Debians Reproducible-Builds-Team in Debian testet ständig in den Zweigen "Testing", "Unstable" sowie "Experimental". Aus den Ergebnissen erstellt es nicht nur eine viele Punkte umfassende Statistik [2], sondern veröffentlicht auch ein wöchentliches Nachrichtenblog [3]. Neben Debian treiben auch andere Distributionen die Reproduzierbarkeit von Binärpaketen voran, wie Arch Linux, Fedora, Subgraph OS und Tails. Ähnliche Initiativen finden sich auch in der BSD-Welt (NetBSD, FreeBSD) sowie bei Projekten wie Coreboot, OpenWRT, F-Droid und Guix.

Debian nutzt für das Erstellen der Reproducible-Builds 30 Host-Maschinen. Zusammen stehen für amd64, i386 und armhf rund 180 CPU-Kerne und über 300 GByte RAM zur Verfügung (Abbildung 3). Die Tests werden von Jenkins [4] gesteuert, einer Software zur kontinuierlichen Integration von Softwareprojekten. Dazu entstanden im Rahmen des Projekts insgesamt 41 Skripte mit rund 10 000 Zeilen Code.

Abbildung 3: Das Projekt testet unter verschiedenen Voraussetzungen, einschließlich anderer Distributionen.

Im Rahmen des Tests baut das System rund 10 000 Pakete je zweimal. Nach dem ersten Durchlauf ändert die Routine einige Gegebenheiten, wie Hardware, Architektur und Dateisystem, und vergleicht anschließend die Ergebnisse. Im Mai 2017 waren in Debian 21 365 von insgesamt 24 135 Quellpaketen reproduzierbar. Das entspricht im Durchschnitt der einzelnen Zweige 88,5 Prozent. "Testing" schneidet dabei mit über 90 Prozent besser ab als "Unstable" und "Experimental".

Zu diesem Zeitpunkt ließen sich 1879 Pakete noch nicht reproduzierbar bauen, wobei bei zwei Dritteln der Grund bekannt war. Trotzdem sieht sich das Projekt noch weit vom Ziel entfernt: Holger Levsen, einer der Debian-Entwickler bei Reproducible Builds, sagte kürzlich in einem Vortrag [5], derzeit ließe sich Debian realistisch zu null Prozent reproduzieren – bislang handle es sich bei den Reproducible Builds noch um eine reine Machbarkeitsstudie (Abbildung 4).

Abbildung 4: Noch gilt das Projekt als experimentell, aber 90 Prozent der Debian-Pakete lassen sich bereits reproduzierbar bauen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...