SfN
blank

Server-Software und die Frage nach dem Quellcode

Häufig wird gefordert, dass der Quellcode von Server-Software, insbesondere von Sicherheitssoftware quelloffen, d.h. Open Source, sein sollte. Besonders tritt diese Diskussion bei Messaging-Diensten wie Signal oder Threema auf. Im Folgenden soll auf diese Frage näher eingegangen und das Für und Wider erörtert werden.

Server-Software – was ist das?

Stark vereinfacht kann man bei Software zwischen zwei Bereichen unterscheiden, in welchen Software eingesetzt wird bzw. „läuft“:

  • auf dem Server; das ist meistens ein Rechner im Internet
  • auf dem Clienten; das ist meisten ein lokales Gerät bei dem Anwender, bspw. ein Mobiltelefon oder ein Notebook

Eine Sonderform stellt die sog. Peer-to-Peer-Verbindung (kurz P2P) dar, bei welcher die Kommunikation in einem Netzwerk von zwei oder mehr „gleichgestellten“ Rechnern vollzogen wird und alle Seiten Server- wie Client-Funktionen nutzen.

Warum ist offener Quellcode bei Client-Anwendungen wichtig?

Die Nachvollziehbarkeit vom Quellcode, d.h. wie genau ein Programm funktioniert, ist für die Sicherheit von essenzieller Bedeutung. Es ist zwar durchaus so, dass nur ein kleiner Teil der Menschen Programmiersprachen in einem ausreichenden Maße versteht und selbst von denen haben auch nicht alle eine Spezialisierung im Sicherheitsbereich. Doch spätestens seit den Snowden-Enthüllungen und die bis dahin unbekannten Verstrickungen von Microsoft, Skype und verschiedenen weiteren Software-Anbietern und deren nicht-quelloffener Software mit westlichen Geheimdiensten muss klar sein, dass die Nachvollziehbarkeit ein wichtiger Faktor ist. Selbst die vermeintliche oder tatsächliche Mitarbeit oder Finanzierung von Geheimdiensten, wie beim Tor-Netzwerk oder der Linux-Kernel-Erweiterung SELinux, muss dabei nicht per se eine schlechte Sache sein. Deutlich wichtiger ist eine offene Kommunikation und die Nachvollziehbarkeit für jeden Interessierten, was die verschiedenen Akteure beitragen, was diese Sachen tun und wie sie funktionieren. Eine Manipulation kann schließlich genauso gut, von einer Einzelperson vollzogen werden, die offiziell keine Verbindung in entsprechende Bereiche hat. Auch Geheimdienste wiederum haben ein Interesse an sicherer Software, denn auch sie nutzen diese für ihre Tätigkeiten. Die Motivation und deren Überprüfbarkeit spielt also eine entscheidende Rolle und stellt den entscheidenden Unterschied zu den Snowden-Enthüllungen und den dort genannten Unternehmen dar.

Bei Anwendungen, die auf den lokalen Geräten der Anwender laufen, ist es daher von besonderer Bedeutung, dass die Funktionen dieser Anwendungen kein schädliches Verhalten besitzen. Zum Beispiel muss eine Ende-zu-Ende-Verschlüsselung das tun was sie verspricht und es dürfen keine unnötigen Daten an den Hersteller oder Dritte abfließen. Das alles muss überprüfbar sein.

Sollte Server-Software auch quelloffen sein?

Im Gegensatz zu lokalen Geräten, lässt sich auf einem Server kaum prüfen, was für eine Software dort eingesetzt wird und ob die Versprechen der Betreiber der Realität entsprechen. Lokale Programme werden zwar von den meisten Menschen auch nur ohne Kontrolle vom Hersteller heruntergeladen. Lokale quelloffene Software kann jedoch von fachkundigen Menschen nicht nur geprüft, sondern auch selbst „gebaut“ (kompiliert) werden. Sofern die Sofware-Entwickler sog. „reproduzierbare Build-Prozesse“ anbieten, können Interessierte sogar sehr genau prüfen, ob der Quellcode mit den angebotenen Dateien übereinstimmen. Nicht wenige Software-Schmieden im Open-Source-Bereich bieten diese Möglichkeit an bzw. bemühen sich diese Nachvollziehbarkeit zu schaffen. Genannt werden können bspw. das Tor-Project [1][2], Debian-Linux [3], Signal (Android-Version) [4]) und Threema (Android-Version) [5].
Server-Software kann zwar auch quelloffen angeboten werden, eine Kontrolle wie durch die „reproduzierbare Build-Prozesse“ ist jedoch nicht möglich. Ist es daher völlig unnötig darauf zu bestehen, dass auch die Server-Software bspw. von Instant-Messenger quelloffen sein müssen? Nicht ganz. Auch bei der Server-Software ergeben sich einige Vorteile, wenn diese quelloffen zur Verfügung steht.

Haben die Entwickler überhaupt Ahnung?

Gute Software zu schreiben, welche nicht nur möglichst fehlerfrei, sondern auch über Jahre hinweg gut wartbar und wiederverwendbar ist, ist häufig kein leichtes Unterfangen, sondern erfordert hohes Können und auch einige Erfahrung. Noch komplizierter wird die Sache, wenn Sicherheitssoftware entwickelt werden soll. Hierbei muss neben der reinen Software-Entwicklung auch im hohen Maße ein Verständnis z.B. über Verschlüsselungsalgorithmen und ihre Vorteile und Schwächen vorhanden sein. Die Mathematik dahinter ist häufig komplex und auch für Durchschnittsentwickler nicht immer leicht verständlich. So passieren auch Entwicklern mit guten Absichten Fehler, welche ohne Kontrolle von der Allgemeinheit unbemerkt blieben würden, aber von Angreifern mit entsprechenden Ressourcen ausgenutzt werden könnten. Als Beispiel lässt sich die Software Cryptocat anführen. Der Entwickler hinter Cryptocat hatte durchaus positive und ehrenwerte Absichten, baute aber unabsichtlich grobe Fehler in seine Software ein, wodurch diese unsicher war. Die Überprüfbarkeit ermöglichte unabhängigen Fachleuten den Zugriff und so konnte diese Schwachstelle aufgefunden und korrigiert werden. [6] Es mögen nun einige Leute anführen und meinen, dass der betroffene Teil keine Server-Software sei, doch es sei darauf hingewiesen, dass dieses Beispiel auf die Komplexität des kryptografischen Bereichs hinweisen soll. Auch auf Servern laufen zum Teil sehr komplexe kryptografische Verfahren ab, welche eine entsprechend hohe Fachkompetenz bei der Entwicklung erfordern. Als Beispiel dafür kann man die „anonymen Berechtigungsnachweise“ (engl. anonymous credentials) vom Signal-Gruppenchatsystem anführen. [7] Doch Server-Software, deren Quellcode verschlossen ist, kann ebenfalls von externen Fachleuten geprüft werden. Wo besteht also der Vorteil von offenen Quellcode? Die Antwort liegt zum einen in der Unabhängigkeit der Prüfer. Während bei geschlossenem Quellcode häufig ausschließlich Personen Zugang zum Quellcode bekommen, die dafür bezahlt werden und dadurch ein Abhängigkeitsverhältnis aufweisen, mindestens indirekt dadurch indem keine weiteren Geschäfte in der Zukunft entstehen, bestehen die Prüfer bei quelloffener Software aus verschiedenen Akteuren, teilweise auch bezahlt, aber zum Teil auch völlig unabhängig. Diese Prüfer können aus Universitäten oder Forschungseinrichtungen kommen oder eben Privatpersonen sein. [8] Zum anderen Besitzen die Auftraggeber von Software mit geschlossenem Quellcode die Informationshoheit, welche Teile des Quellcodes geprüft und welche Informationen veröffentlicht werden, während Software mit offenem Quellcode jedem zur Verfügung steht und entsprechend offen publiziert werden darf.
Quelloffenheit und Nachvollziehbarkeit bei Server-Software stellt also sicher, dass die Sicherheit die von den Betreiber versprochen wird, auch korrekt umgesetzt wurde – eine ehrliche und aufrichtige Motivation der Betreiber vorausgesetzt. Gegen absichtliche Manipulation bringt die Quelloffenheit hingegen nichts.

Projekt eingestellt – was nun?

Die einen oder anderen mögen sich vielleicht noch daran erinnern: Truecrypt wurde 2014 unter rätselhaften Umständen eingestellt. Die Welt rätselte über die Hintergründe und die ominösen letzten Nachrichten, des Truecrypt-Entwicklern. Doch die Fortführung des Projektes ging schnell weiter. Der Quellcode konnte im Internet noch gefunden werden und einige Projekte, wovon Veracrypt heute das Bekannteste ist, konnten die Arbeit von Truecrypt fortsetzen.
Doch wie wäre die Fortsetzung verlaufen, wenn ein wesentlicher Teil des benötigten Quellcodes nicht vorhanden wäre? Was wäre, wenn bei einem Instant Messenger der Server-Quellcode fehlen würde? Der Aufwand für eine komplette Neuentwicklung der Server-Software dürfte eine schnelle Fortführung des Projektes im Weg stehen und eine weitere Verwendung der Software verhindern.
Eine Server-Software deren Quellcode jedoch jedem zur Verfügung steht, könnte wie im Falle von Truecrypt eine schnelle Verfügbarkeit, nach der Einstellung des ursprünglichen Software-Projektes, ermöglichen.

Fazit

Die beiden angeführten Beispiele zeigen, dass die Offenlegung des Quellcodes von Server-Software durchaus sinnvoll sein kann. Darüber hinaus gibt es auch noch eine Reihe weiterer Gründe, wie eine bessere Einbindung des Ökosystems, welches sich häufig um ein Software-Projekt bilden kann, insbesondere durch andere Entwickler, die Beiträge allgemeiner Natur leisten oder sich auf Fehlersuche begeben.
Sofern eine Server-Software für ein Produkt erforderlich ist, insbesondere in einem sicherheitsrelevanten Bereich, sollte der Quellcode daher offen und frei verfügbar für jeden sein. Instant Messenger, welche die in der Einleitung erwähnten Peer-to-Peer-Mechanismen verwenden, sind ein spannender weiterer Ansatz, um die Server-Problematik zu umgehen. Jedoch weisen viele Programme in diesem P2P-Bereich gewisse Defizite in der Benutzerfreundlichkeit auf, weswegen die Akzeptanz, abseits von fachlich interessierten Menschen, beim Otto-Normal-Endbenutzer häufig nicht sonderlich ausgeprägt ist. Eine Verbesserung dieser Defizite könnte jedoch weitere Möglichkeiten schaffen, die Überprüfbarkeit der eingesetzten Software zu steigern.

2 Kommentare

Inhalte melden

Beiträge, Kommentare und sonstige Veröffentlichungen in dem SfN Informationsblog werden vor dem Hintergrund der gültigen Gesetzgebung in der BRD überprüft. Sollte dennoch der Verdacht bestehen, dass ein Beitrag gegen Gesetze verstoßen könnte und / oder Beschwerden sonstiger Art vorliegen, wird gebeten, die Redaktion zu kontaktieren, um den bedenklichen Inhalt zu überprüfen bzw. entfernen.


blank

blank

Es liegt an dir selbst, was du für dich und deine Sicherheit übernimmst.