Anonymisierungs-, Verschlüsselungs- u.ä. Software: am Ende bleibt doch nur Vertrauen
Eigentlich ist die c’t ja definitiv meine Lieblings-Computerzeitschrift. Aber ihr Privacy-Wahn wird langsam kindisch. In der Ausgabe 16/2013 gibt es eine große Artikelserie, mit welchen Mitteln man vermeintlich der NSA-Überwachung entgehen kann. Das sind zwar schon mal deutlich realistischere Tipps als in Computer Bild, aber es ist überhaupt nicht konsequent zu Ende gedacht.
Das hole ich hiermit nach: Im Artikel über Verschlüsselung schreiben sie, dass man Programme wie GnuPG oder TrueCrypt selbst kompilieren sollte, um sicher zu sein, dass in fertig kompilierten Downloads keine Hintertüren drin sind. Das ist so weit grundsätzlich richtig. Aber es geht ja weiter: Kann ich sicher sein, dass der Microsoft C-Compiler nicht extra für Verschlüsselungsprogramme eine Erkennungsfunktion hat und dann doch noch eine Hintertür einkompiliert, auch wenn der Quelltext an sich sauber ist? Und überhaupt, den Quelltext müsste ich mir natürlich vorher gründlich durchlesen, um auch wirklich sicher zu sein. Doch das ist noch längst nicht alles. Schließlich will ich das Programm (ob selbst kompiliert oder fertig heruntergeladen) ja auch auf meinem Rechner ausführen. Handelt es sich dabei aber um ein proprietäres Closed Source-System wie Windows oder OS X, dann kann noch vor der Verschlüsselung - jedenfalls theoretisch - das Dateisystem oder der Festplattentreiber meine zu verschlüsselnden Daten mitlesen und Beliebiges damit anstellen (außer bei der TrueCrypt-Systemverschlüsselung).
Zwischenfazit: Verschlüsselung auf proprietären Closed Source-Systemen bringt’s nicht, weil ich der darunter liegenden Betriebssystemschicht nicht vertrauen kann. Oder andersherum: weil ich sie nicht überprüfen kann, sondern ihr vertrauen muss.
Also Linux oder *BSD. Aaaber: Benutze ich Binärpakete, habe ich die gleiche Situation wie unter Windows, weil ich den Leuten der jeweiligen Linux-Distribution (oder *BSD) vertrauen muss. Bleiben also Gentoo oder gleich Linux from Scratch. Doch auch diese setzen vorher ein funktionierendes Linux-System mit vorkompilierten Binaries voraus.
Am Ende müsste ich also die gesamte Entwicklung von den allerersten Computern bis zu dem System, auf dem ich das LFS baue, lückenlos nachvollziehen, oder mir gleich einen kompletten Computer from Scratch bauen und binär programmieren.
In allen anderen Fällen muss ich an irgendeiner Stelle der Kette der Arbeit anderer Menschen (blind!) vertrauen.
Die meisten Menschen fangen allein aus Zeitmangel schon sehr weit oben damit an, nämlich bei den Bereitstellern von Binärpaketen (unter Windows also EXE-Dateien).
Übrigens widerspricht sich die c’t in diesem Punkt in mehreren anderen Artikeln, wo sie zum einen Apples Messenger iChat (hat von euch schon mal jemand dessen Quelltext gesehen?) für sicher erklärt und zum anderen mehrfach die fertig kompilierten TrueCrypt-Pakete oder GPG4Win empfiehlt.
Fefe sieht die Sache deutlich realistischer (am Beispiel von Tor):
Das Problem an sich, dass wir unseren Regierungen nicht mehr trauen können, und einer totalen Schnüffelei ausgesetzt sind, das ist kein Problem, das man technisch lösen kann.
Nachtrag vom 01.01.2019: Nun habe ich doch glatt einen Vortrag von Hannes Mehnert bei der FIfF-Konferenz 2017 zum Thema gefunden, Wem müssen wir beim Benutzen von Software vertrauen? Ein wichtiges Stichwort aus dem Vortrag ist die Trusted computing base.
Nachtrag vom 16.02.2021: Folge 2 des Podcasts machtmenschmaschine handelt genau von dem Spannungsfeld von Vertrauen in Technik vs. Vertrauen in Menschen (die die Technik ja überhaupt erst geschaffen haben).
Nachtrag vom 14.07.2021: Das oben Gesagte gilt natürlich genauso für die Blockchain.