Vertrauen, Privatsphäre und Freie Software

Wir setzen eine Menge Vertrauen in unsere Geräte, immer mehr unseres Lebens läuft über unsere Telefone und Laptops. Die Gesprächsinhalte, die wir einander schicken, enthalten die privatesten Details, die wir unseren Geräten mitteilen. Das Erleben, das wir bei der Nutzung dieser Geräte haben, empfinden wir als privat: wenn keiner auf unseren Bildschirm sieht, dann ist es wohl so, dass kein anderer uns beobachten kann. Leider zeigt die Wirklichkeit das genaue Gegenteil. Unsere Geräte sind voller Überwachungs- und Spionagewerkzeuge, ob wir sie mitbekommen oder nicht. Der Druck, Hintertüren einzubauen, wächst stetig. Und die meisten Menschen vertrauen noch immer proprietärer Software ihre sensibelsten Dinge an.

Im Laufe der letzten 10 Jahre gab es riesige Fortschritte in der Entwicklung brauchbarer Techniken für einen starken Schutz der Privatsphäre. Die Verwendung der End-zu-End-Verschlüsselung galt einst als große technische Herausforderung (denken wir an PGP-E-Mail), jetzt nutzen sie über eine Milliarde Menschen täglich. Offene Plattformen und Freie Software geben uns die Kontrolle darüber, was auf unseren Computern geschieht, und auch die Möglichkeit zu prüfen, was genau Software mit unseren privaten Daten macht. Reproduzierbare Builds erschienen noch vor einigen Jahren als Zeitverschwendung, nun sind sie ein essentielles Baubestandteil vertrauenswürdiger Systeme. Die F-Droid-Community hat alle diese Bausteine zusammengesetzt, um ein komplettes Verteilungssystem zu schaffen, in dem der Quelltext das einzige Stück ist, das vertrauenswürdig sein muss.

Um dies etwas deutlicher zu machen, können wir die Analogie zum Kauf eines Fertiggerichts nutzen. Die Zutaten müssen auf der Verpackung aufgeführt sein. Wir vertrauen darauf, dass die Zutatenliste mit dem übereinstimmt, was tatsächlich enthalten ist. Open Source-Software ist diesem sehr ähnlich. Der Quellcode ist ein sehr aufwändiges Rezept, das die ausführbare Binärdatei erzeugt, die die Computerchips tatsächlich ausführen. Stellen Sie sich vor, es gibt eine Roboterküche, in der Rezepte perfekt ausgeführt werden, die jedes Mal genau das gleiche Ergebnis liefert und einen einfachen Chemiebaukasten, der zeigt, ob zwei Produkte genau die gleichen sind. Jeder, der das Rezept liest, weiß, was in den Lebensmitteln enthalten ist. Die Roboterküche kann auf die strikte Einhaltung der Rezeptur überprüft werden. Die daraus resultierenden Lebensmittel können im Verlauf getestet werden, um sicherzustellen, dass die Roboterküche tatsächlich jedes Mal die genau gleichen Lebensmittel herstellt. Dann kann man sich darauf verlassen, dass die Kombination aus Rezept und Roboterküche nur das verwendet, was in der Zutatenliste aufgeführt ist. Und jeder kann mit dem Chemiebaukasten überprüfen, ob das, was in seiner Packung ist, dem entspricht, was in irgendeiner anderen Packung ist.

Das ist, was F-Droid jetzt tun kann, nur für Software statt Nahrung. Es tut das, indem der Chemiebaukasten jedes Mal angewandt wird, wenn Sie eine App installieren und diese mit der vergleicht, die die F-Droid-Build-Maschine gesehen hat, als sie die binäre App erstellt hat. In Wirklichkeit ist sie also viel einfacher zu überprüfen als das obige Beispiel.

In die Details gehen

Freie Software, Prüfprotokolle, Codeinspektionen, reproduzierbare Builds und die richtige Hardware: das sind die erforderlichen Zutaten für ein wirklich vertrauenswürdiges System.

Die Gesamtvorstellung von vertrauenswürdigem Computing ist nun in Reichweite. Freie Software ist seit langem eine Voraussetzung für zuverlässige Software. Es gibt zuverlässige Methoden der Ende-zu-Ende-Verschlüsselung, von Briar Protocol bis Signal Protocol. Reproduzierbare Builds bedeuten, dass Binärdateien eindeutig mit dem Quellcode verknüpft werden können. Echte Ausschalter geben dem Benutzer die volle Kontrolle darüber, wann Funktionen aktiviert sind. Freie Hardware-Designs ermöglichen es uns, die beim Bau unserer Geräte verwendeten Rezepturen zu untersuchen.

Das F-Droid-Ökosystem bietet nun die notwendigen Komponenten für vertrauenswürdige, verifizierbare Software: * Freie Software * Reproduzierbare Builds * Offene, geprüfte Kryptographie

Alle der oben genannten Teile wurden in mehreren Anwendungen angewendet und erprobt, einige beinhalten bereits mehrere Techniken. Damit eine App eine vertrauenswürdige Privatsphäre bietet, müssen alle Voraussetzungen erfüllt sein.

  • 100% freie Software: Briar, Bitcoin Wallet, Die Tageszeitung (TAZ), Tutanota
  • Vollständig in die Client-Software integrierte, offene, geprüfte Kryptographie: Briar, Bitcoin Wallet, Tutanota
  • Reproduzierbare Builds: Briar, Bitcoin Wallet, F-Droid, F-Droid Privileged Extension, Nextcloud, Öffi und mehr.
  • Code-Signierung und -Verteilung basierend auf der Reproduktion des Build des Entwicklers: Briar, Bitcoin Wallet

Tor Browser für Android wird mittels F-Droids reproduzierbarem Verfahren demnächst veröffentlicht werden. Das bedeutet, dass die App an F-Droid übermittelt wird, indem nur der Quellcode und die entwicklereigene Signatur des APK gesendet werden. Das heißt, F-Droid wird nur APKs veröffentlichen, die aus dem Quellcode auf der f-droid.org Infrastruktur erstellt wurden, die Signatur wird dennoch der entsprechen, die für das APK erzeugt wurde, das vom Entwickler auf seiner Infrastruktur erstellt wurde.

Andere Projekte wie Signal bestätigen, dass reproduzierbare Builds wichtig seien, die Signal APKs sind allerdings nicht reproduzierbar. Nur der Java-Teil ist reproduzierbar. Das heißt, der C/C++-Code ist nicht reproduzierbar und das ist der Ort, an dem es am einfachsten und effektivsten ist, Exploits einzufügen.

Es gibt noch weitere Bedenken, die sich auf einen viel weitreichenderen Teil der Android-Apps auswirken: die Tools und Plugins, die zum Erstellen der Apps verwendet werden, sowie Bibliotheken von Drittanbietern, die heutzutage praktisch jede App enthält. gradle ist das offizielle Build-System und viele Projekte verwenden gradle-Plugins als Teil ihres Build-Prozesses. gradle ist freie Software, aber viele der Plugins sind es nicht.

F-Droid hat mit den Debian Android Tools- und Java-Teams daran gearbeitet, wenigstens die grundlegenden Build-Werkzeuge als Bestandteil von Debian verpackt und reproduzierbar erstellt hinzubekommen. Die F-Droid Rechteerweiterung geht so in Sachen Reproduzierbarkeit diesen Schritt weiter: Sie wird von den Debian Android Tools-Paketen ohne externe Abhängigkeiten erstellt.

Das letzte große Stück sind die Bibliotheken von Drittanbietern, die mit gradle so einfach zu integrieren sind. Die Bibliotheks-Repositorys JCenter und Maven Central verlangen, dass zu jedem Release ein passendes Quell-JAR hochgeladen wird, aber nichts prüft, ob das Quell-JAR in irgendeiner Weise dem binären JAR entspricht. Dann sind Android AARs-Bibliotheken recht verbreitet und für die gibt es keine Auflage, den Quellcode abzugleichen.

Hardware-Überlegungen

Die richtige Hardware-Plattform ist ebenfalls essentiell.

Die Möglichkeit, Hintertüren in Hardware einzubauen, bedeutet, wir brauchen für Hardware genau wie für Software komplett dieselben Dinge: freie and offene Quellen, Reproduzierbarkeit, öffentliche Audits und zuverlässige Designs. Leider hinkt die Hardware der Software in diesen Belangen hinterher. Aber es gibt eine Reihe vielversprechender Arbeiten:

Meilensteine, die man schon bekommen kann

Fairphone Open bietet freie Android-Software mit eingebautem F-Droid, die vollständig vom Hardware-Hersteller unterstützt wird. Hardware-Sicherheit kann mit basisbandfreien Tablets und gehackten Moto Gs erzielt werden. Ein puristisches Librem 5 mit einem isolierten und hardware-geschalteten GSM-Basisband erscheint in Kürze.

Die Tools sind in F-Droid vorhanden, damit alle App-Entwickler ihren Benutzern vollständig vertrauenswürdige Binärdateien anbieten können. Briar, und Bitcoin Wallet waren die ersten, die alle Kriterien erfüllten, nachdem sie nun reproduzierbar in F-Droid erstellt werden. Tutanota, Conversations, Die Tageszeitung (TAZ), Nextcloud, Riot, Kontalk und viele andere sind 100% freie Software und werden von F-Droid aus dem Quellcode erstellt. Andere wie Firefox, Wire und Zom sind nah dran und hoffentlich werden die weiter abgeschlossenen Beispiele sie dazu inspirieren, sich in die richtige Richtung zu bewegen. Und F-Droid ist die Verbindung diese Teile zusammenzuhalten. Die F-Droid-Community ist bereit, allen Projekten zu helfen, die den nächsten Schritt in Richtung vertrauenswürdiges Computing gehen.