Freie Software: Probleme bei Verifikation von Binärdateien

Die Binärdatei einer Software mit dem dazugehörigen Quellcode zu vergleichen ist schwieriger als eventuell vermutet. Selbst für Pakete von Linux-Distributionen sind das Rekompilieren und die anschließende Verifikation nicht einfach.

Artikel veröffentlicht am ,
Kontrolle und Vertrauen sind auch für Open-Source-Software notwendig.
Kontrolle und Vertrauen sind auch für Open-Source-Software notwendig. (Bild: Open Source Initiative/CC-BY 3.0)

Einer der Vorteile von freier Software ist die Möglichkeit, die eingesetzte Binärversion der Software mit dem korrespondierenden Quellcode zu vergleichen. Ein Rekompilieren des Codes sollte genügen, um eventuelle Unstimmigkeiten zwischen eigener und bereitgestellter Binärversion aufzudecken. Der Entwickler Jos van den Oever beschreibt jedoch in seinem Blog, dass diese vergleichsweise naive Idee selbst für die Pakete einiger Linux-Distributionen schwer umzusetzen sei.

Denn die GPLv2 verlange zwar, sämtliche Skripte bereitzustellen, die für das Kompilieren notwendig sind, Angaben wie etwa zur Compiler-Version müssen aber nicht gemacht werden. Das, so van den Oever, mache die Überprüfung von Binärdatei und Quellcode sehr schwierig, denn unterschiedliche Compiler führen zu unterschiedlichen Binärdateien.

Pakete überprüfen?

Darüber hinaus sind die von Linux-Distributionen angebotenen Binärpakete sehr verschieden im Gegensatz zu einer einfachen, selbst kompilierten Datei. Wohl deshalb bieten die meisten Distributionen auch Quellpakete an, aus denen die Binärpakete selbst erstellt und gegebenenfalls überprüft werden können, was van den Oever versuchte.

Der Entwickler untersuchte beispielhaft für Debian, Fedora und Opensuse das Erstellen eines Pakets der Software Tar. Neben Unterschieden, die aus Zeitstempeln und Build-IDs entstanden, fand van den Oever auch einige Unterschiede, die nicht direkt zu erklären sind. Zwar belaufen sich die Unterschiede oft nur auf wenige Bytes, ob dies aber aus unterschiedlichen Build-Umgebungen resultiert, wie van den Oever vermutet, lässt sich derzeit nicht abschließend klären.

Um "Bit-perfekte Builds" zu erstellen, brauche es nur ein paar Veränderungen an den Werkzeugen, schreibt van den Oever, wie etwa die Dokumentation der Build-Umgebung. Sollte die Verifikation aber nicht funktionieren, bleibt nur das Vertrauen in den Dienst, der die Binärversionen anbietet, also meist die Distribution.

Doch selbst wenn dieses Vertrauen nicht vorliegt, schafft ein konsequent selbst kompiliertes System wie bei Gentoo oder Arch-Linux nicht unbedingt mehr Sicherheit. Denn auch dem Quellcode selbst muss jeder Nutzer vertrauen, worauf Unix-Pionier Ken Thompson in seinem Essay Reflections on Trusting Trust hinwies.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


__destruct() 12. Aug 2013

Mir ist diesbezüglich nichts bekannt, aber noch viel unklarer ist mir, wie du darauf...

Andre S 24. Jun 2013

...die Einstellung wird immer Paranoider. Sicher ist es wichtig aufzupassen aber das...

dudida 23. Jun 2013

Frag Microsoft.

hjp 22. Jun 2013

In Reflections on Trusting Trust geht es nicht darum, dass man dem Source-Code vertrauen...



Aktuell auf der Startseite von Golem.de
Gefangen im Zeitstrom, verloren im All
Die zehn besten Sci-Fi-Serien der 1960er

Sie sind die Klassiker, auf denen das ganze Genre aufbaut: die großen Science-Fiction-Serien der 1960er. Neben Star Trek gab es hier noch viel mehr.
Von Peter Osteried

Gefangen im Zeitstrom, verloren im All: Die zehn besten Sci-Fi-Serien der 1960er
Artikel
  1. Grace Hopper Superchip: Nvidia zeigt den DGX GH200 AI-Supercomputer
    Grace Hopper Superchip
    Nvidia zeigt den DGX GH200 AI-Supercomputer

    Die Kombination aus Grace Hopper, Bluefield 3 und NVLink ergibt funktional eine riesige GPU mit der Rechenkapazität eines Supercomputers und 144 TByte Grafikspeicher.

  2. Forschung: KI findet Antibiotikum gegen multirestistentes Bakterium
    Forschung
    KI findet Antibiotikum gegen multirestistentes Bakterium

    Forscher zeigen, dass die Hoffnungen in KI bei der Entwicklung von Medikamenten berechtigt sind. Ihre Entwicklung soll deutlich schneller werden.

  3. Speicherleaks vermeiden: Ressourcen- und typensicheres Programmieren in C++
    Speicherleaks vermeiden
    Ressourcen- und typensicheres Programmieren in C++

    Bei C++ liegt alles in der Hand der Entwickler - und das kann gut und schlecht sein. Richtig angewendet, ist die Sprache aber alles andere als unsicher.
    Eine Anleitung von Adam Jaskowiec

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • Microsoft Xbox Wireless Controller 40,70€ • Lexar Play 1 TB 99,60€ • DAMN!-Deals mit AMD-Bundle-Aktion • MindStar: AMD Ryzen 9 5950X 429€, MSI RTX 3060 Gaming Z Trio 12G 329€, GIGABYTE RTX 3060 Eagle OC 12G 299€, be quiet! Pure Base 500DX 89€ • Logitech bis -46% [Werbung]
    •  /