Verifikationsserver

Die Idee bei einem Verifikationsserver ist es, offizielle, von f-droid.org (oder einem anderen Server) veröffentlichte Versionen automatisch zu reproduzieren. Ein anderer Name dafür ist Rebuilder. Dieser Prozess stellt sicher, dass alles im Release-APK aus dem Quellcode stammt und nichts eingeschleust oder während des Buildprozesses eingebunden wird. Dies dient auch dem Nachweis, dass der Build-Prozess keine proprietären Bibliotheken enthält.

Das ultimative Ziel ist eine einfache Einrichtung, die jede dritte Partei durchführen kann, die ständig nach neu veröffentlichten Paketen sucht, ihre eigenen Builds erstellt und bestätigt, dass die Binärdateien genau übereinstimmen. Es gibt viele Aufgaben zu erledigen, um zu diesem Ziel zu gelangen, aber das Grundkonzept ist bereits getestet und funktioniert. (Siehe den Befehl „fdroid verify“).

Die Ausgabe mehrerer Verifikationsserver steht dann dem F-Droid-Client zur Verfügung. Die Idee dabei ist, den Client so zu konfigurieren, dass er keiner Binärdatei traut, solange sich nicht mehrere Verifikationsserver einig sind, dass sie korrekt ist.

Auf APK-Signatur basierende Verifizierung

Der Verifizierungsprozess funktioniert derzeit, indem ein neues unsigniertes APK erstellt und dann die APK-Signatur aus dem bestehenden APK in das neu erstellte unsignierte APK kopiert wird. Bestätigt sich die APK-Signatur, wurde das APK reproduziert und wird als verifiziert markiert. Wenn nicht, wird ein diffoscope Protokoll erstellt, um die Unterschiede zwischen den beiden Builds anzuzeigen. Der Verifikationsserver benötigt keine Signaturfähigkeiten, er erstellt nur.

Einen Server aufsetzen

Der Verifikationsserver wird über ein Ansible Playbook verwaltet, das auf einem Server unter Debian/stable installiert ist, der für das Ausführen von Containern mit Podman ohne Root konfiguriert ist. Dies ist, was auf https://verification.f-droid.org läuft, aber es ist immer noch ziemlich unfertig, somit erwartet dich einige Bastelei. Wir begrüßen Beiträge. Unser Ziel ist es, dass dieses Setup so universell wird, dass die Maintainer eines jeden F-Droid kompatiblen Repositorys dieses Setup als Rebuilder verwenden kann.