Skip to content

Instantly share code, notes, and snippets.

Created February 27, 2014 17:01
Show Gist options
  • Save anonymous/9254328 to your computer and use it in GitHub Desktop.
Save anonymous/9254328 to your computer and use it in GitHub Desktop.
Re: Schluss mit Mythen rund um Threema

Re: Schluss mit Mythen rund um Threema

Originalartikel: http://info8.ch/online/internet/1606-schluss-mit-mythen-rund-um-threema.html

Die Website Info8.ch stellt zurecht fest, dass zum Thema Threema "Im Verlaufe der öffentlichen Meinungsbildung [...] in Foren und Diskussionsspalten von Tageszeitungen häufig mit Halbwahrheiten und Fehlschlüssen argumentiert [wurde]". Info8.ch möchte nun "die gängigsten Fehlschlüsse [zu Threema] aufzugreifen und richtigstellen" und zieht dabei selbst einen Fehlschluss nach dem anderen. Ein Kommentar:

Argument 1: Weil Threema nicht OpenSource ist, ist es unsicher!

Der Quellcode von Threema kann momentan nicht eingesehen werden, das ist korrekt. Der Verfasser der Software begründete dies mit der Angst davor, dass Nachahmer ihre eigene Software programmieren trotzdem auf seiner Serverinfrastruktur laufen lassen könnten, was durchaus plausibel erscheint.

Das bedeutet aber nicht, dass Threema nicht auf seine Zuverlässigkeit überprüft werden kann. Threema basiert auf der quelloffenen Kryptographiebibliothek NaCl. Die Algorithmen dieser Bibliothek stammen von einem weltweit anerkannten Mathematiker und weisen nach heutigem Kenntnisstand im Gegensatz zu anderen weitverbreiteten Algorithmen keine Backdoor (oder Hintertür) auf.

Die Entwickler von Threema haben eine detaillierte Anleitung veröffentlicht, mit der man überprüfen kann, welche Daten Threema vom Mobiltelefon ins Internet sendet. Sämtliche dieser Daten können mit dem entsprechenden Wissen und unter Einsatz der NaCl Kryptolibrary zugeordnet werden. Somit ist es jedem Benutzer möglich zu überprüfen, dass die App nur die verschlüsselten Daten an den Server der App übermittelt, und nicht noch nebenbei das ganze Adressbuch oder sonstige privaten Daten vom Mobiltelefon irgendwohin ins Internet sendet.

Es ist korrekt, dass NaCl eine ausgezeichnete Kryptobibliothek ist, und in einem Open-Source-Produkt könnte man auch sicher sein, dass sie korrekt benutzt wird und dass kein Schabernack getrieben wird. Die Autoren von Threema versuchen mit ihrer detaillierten Anleitung zu beweisen, dass man tatsächlich die Funktion ihrer Software auch ohne den Quelltext nachvollziehen kann. Tatsächlich lässt sich auch der gesamte Datenverkehr nachprüfen. Das Allerwichtigste jedoch lässt sich mit ihrer detaillierten Anleitung nicht nachprüfen: Wie der eigentliche Schlüssel generiert wurde!

Obwohl die ausgezeichnete NaCl Kryptografiebibliothek benutzt wird, kann auch die beste Kryptografie nicht gegen schwache Schlüssel schützen. Die Sicherheit des ganzen Systems steht und fällt mit der Qualität des erzeugten Schlüssels. Und genau dies kann man bei einem Closed-Source-Programm nicht nachprüfen, egal wie viel Datenverkehr man mit der Anleitung von Threema überprüft. Der Schlüssel lässt sich zwar mit der Anleitung von Threema extrahieren, aber man kann einem Schlüssel nicht einfach ansehen, ob er sicher ist.

Ein Beispiel sahen wir in der Vergangenheit am Beispiel des Dual_EC_DRBG Schlüsselgenerators. Threema könnte etwas Ähnliches benutzen: Wir können es niemals nachprüfen, auch wenn wir allen Datenverkehr mitschneiden und analysieren. Threema kann die Schlüssel auf einem Handy so generieren, dass sie sie ebenfalls auf ihren Servern generieren können.

Alleine diese Überlegung macht deutlich, dass Threema (und alle Closed-Source-Programme) nicht überprüfbar sicher sein können.

Argument 2: Threema ist unsicher, weil die Entwickler sämtliche Nachrichten auf dem Server wieder entschlüsseln können!

Nein, das können sie eben nicht! Threema basiert auf einem asymmetrischen Verschlüssellungsverfahren. Diese Verschlüssellungsart ist durchgängig vom Sender bis zum Empfänger. Der Server schiebt ausschliesslich verschlüsselte Nachrichten hin und her. Auch das kann mit dem Threema Validation Guide nachgewiesen werden. Nur der Empfänger hat die Möglichkeit, die Nachrichten überhaupt zu entschlüsseln. Dieses Verschlüssellungsverfahren basiert nicht auf Passwörtern, die beide Kommunikationspartner kennen müssen, um verschlüsselt zu kommunizieren, sondern auf sogenannten Private- und Public-Keys. Damit der Sender jemandem eine verschlüsselte Nachricht senden kann, braucht er lediglich dessen öffentlichen Schlüssel zu kennen. Dieser ist – wie gesagt – öffentlich und befähigt den Nutzer ausschliesslich, Nachrichten an eine entsprechende Person zu verschlüsseln. Mit dem Public Key können jedoch keine Nachrichten entschlüsselt werden – deshalb kann er auch problemlos der ganzen Welt zugänglich gemacht werden.

Ein bekanntes Verfahren, welches nach demselben Prinzip funktioniert, ist PGP für die E-Mail-Verschlüsselung. Auch bei PGP werden Nachrichten vom Sender auf den Mailserver des Empfängers geladen und trotzdem ist dieses Verfahren überhaupt nicht unsicher.

Ja, das können sie eben doch! Weil die Schlüssel manipuliert sein können. Weil man am Datenverkehr und am Schlüssel nicht sehen kann, ob der Schlüssel manipuliert ist. Weil das Programm Closed-Source ist. Der Vergleich mit PGP (GnuPG) ist Unsinn, denn GnuPG ist im Gegensatz zu Threema Open-Source und deshalb kann man dort auch nachvollziehen, dass alles mit Rechten Dingen zugeht.

Argument 3: Threema ist unsicher, weil die Entwickler dafür Geld verlangen!

Wie auch im richtigen Leben, ist Sicherheit nicht gratis zu bekommen. Jeder, der schon mal eine Software entwickelt hat, weiss, wie viel Zeit man investieren muss, bis ein halbwegs vernünftiges Produkt soweit fertiggestellt wurde, dass es sich veröffentlichen lässt. Im Falle von Threema dürften inzwischen mehrere hundert bis tausend Stunden investiert worden sein. Wenn dies jemand in Fronarbeit zu tun bereit ist, ist das zwar löblich, aber nicht selbstverständlich.

Hier verhaspelt sich der Autor in einen Widerspruch: Sicherheit ist eben doch gratis zu bekommen. Das, was Threema sicher macht (laut Threema) ist eine kostenlose Open-Source-Bibliothek. GnuPG (PGP) ist kostenlos und sicher. OpenBSD (ein Betriebssystem) ist kostenlos und gilt als das am meisten auf Sicherheit ausgelegte Betriebssystem.

Das was Kryptografen meinen wenn sie sagen, dass "Sicherheit nicht kostenlos ist", ist, dass Sicherheit mit größerer Komplexität für den Nutzer verbunden ist, und dass man besondere Vorsicht walten lassen muss, wenn man ein System sicher machen möchte: Eine Nachricht im Klartext über das Internet schicken kann jeder. Möchte man dies "sicher" machen, müssen viele technische aber auch soziologische Probleme bedacht werden.

Dass sich jemand für seine Arbeit entlöhnen lassen will, ist noch lange kein Indiz dafür, dass die Software unsicher ist. So hat es in der Vergangenheit gerade mehrere gegenteilige Beispiele gegeben, wo sich Geheimdienste an gemeinnützigen OpenSource-Projekten beteiligt haben, um ihre potentiellen Backdoors in die jeweiligen Produkte einzubringen.

Nein, tatsächlich verdienen viele Firmen ihr Geld damit, dass sie sichere Open-Source-Software "verkaufen". Man muss also seine Software nicht Closed-Source machen, um mit ihr Geld zu verdienen.

Dass es Beispiele gibt, dass in Open-Source-Software Backdoors eingebaut wurden bestreitet keiner. Der Vorteil ist, dass sie dort gefunden werden können und auch gefunden werden. Ganz im Gegensatz zu Closed-Source Produkten, wo schon ein Unfall passieren muss, damit man überhaupt bemerkt, dass dort eine Hintertür eingebaut wurde.

Dass man gefühlt öfter von Hintertüren in Open-Source Produkten hört liegt einfach an deren Offenheit: Hintertüren können gefunden werden. Aus der Annahme "man hört von keinen Hintertüren in Closed-Source-Software" darauf zu schließen, dass sie deswegen sicherer sind ist ein Trugschluss: Es werden dort weniger Hintertüren gefunden, weil man dort nicht aktiv nach ihnen suchen kann.

Ganz zu schweigen davon, haben die Entwickler für den Betrieb und Unterhalt der Server aufzukommen, die dafür zuständig sind, dass Threema überhaupt Nachrichten versenden kann. Der Betrieb von solchen hochverfügbaren Servern ist ebenfalls mit grösseren finanziellen Aufwendungen verbunden.

Würde Threema den Server-Source-Code veröffentlichen, müssten sie die Server auch nicht selbst betreiben. Und nebenbei bemerkt: Der Konkurrent "Telegram" betreibt hochverfügbare Server und erlaubt jedem den Zugriff auf diese Server. Der Konkurrent "Telegram" schafft also das was der Autor hier abstreitet: Dass es nicht möglich sei, die Serverkapazitäten kostenlos, auch für Open-Source-Programme, anzubieten.

Argument 4: Weil Threema auf einem Client-Server Prinzip basiert ist es unsicher. Einzig P2P Kommunikationslösungen sind sicher!

Während der Offenlegung der NSA-Affäre wurde immer augenscheinlicher, dass die NSA den Fokus nicht primär auf die eigentliche Nachricht legt, sondern sich viel mehr für die Metadaten interessiert. Metadaten sind die Daten, die rund um die eigentlichen Nachrichten anfallen. Anhand der Metadaten wissen Überwacher beispielsweise, dass gestern Abend um 21:34 Uhr User1 aus Luzern von der IP 1.2.3.4 dem User2 in Zürich eine Nachricht mit der Nachrichtengrösse 45 Kilobyte gesendet hat. Werden Metadaten in grossem Stil gespeichert, sind sie enorm wertvoll. Es können so komplette Bewegungsprofile einer Person erstellt werden. Ausserdem können ganze Beziehungsnetze rekonstruiert und gespeichert werden. Es kann auch analysiert werden, wer mit wem zu welchem Zeitpunkt besonders oft kommuniziert.

Wenn dieser Aspekt beachtet wird, dann sind eher die Peer to Peer Netze enorm unsicher. Einem Angreifer ist es in so genannten P2P-Netzen möglich, ohne Kenntnis der eigentlich übermittelten Nachricht genauestens festzustellen, wer mit wem kommuniziert.

Dies gilt jedoch nur für die klassischen Peer-to-Peer-Netze und auch nur dann, wenn man die Metadaten einem bestimmten Nutzer zuordnen kann. Bittorrent Chat beispielsweise verrät nichts über die Identität eines Nutzers. Die Metadaten sind nutzlos. Reicht einem das noch nicht, so ist es problemlos möglich seinen Datenverkehr mit Hilfe des TOR-Netzwerks zu anonymisieren.

Basiert hingegen das Kommunikationsmodell auf einem Client-Server-Prinzip, so wie bei Threema, kommuniziert jeder Benutzer lediglich mit dem Server. Er übermittelt dem Server seine verschlüsselte Nachricht und sein Kommunikationspartner holt die verschlüsselte Nachricht wieder auf dem Server ab. Mit einem solchen Prinzip hat ein Angreifer viel weniger Möglichkeiten, sinnvolle Metadaten aus der Kommunikation zu entnehmen.

Das setzt voraus, dass die Geheimdienste keinen Zugriff auf den Server des Anbieters haben. Denn im Gegensatz zu einem Peer-to-Peer-Netzwerk, wo ein Geheimdienst sich die Metadaten mühsam aus dem Netz "herausfischen" muss, liegen die Metadaten beim Client-Server-Modell alle auf einem Server in einer Datenbank (siehe nächster Punkt). Ich überlasse es dem Leser sich auszumalen, welches das erfolgversprechendere Angriffsziel ist: Ein Server/Eine Firma oder das ganze Internet. Zudem die Firma erpressbar und ein Single-Point-Of-Failure ist.

Argument 5: Weil hinter Threema eine kommerzielle Firma steckt, ist sie erpressbar und die darüber versandten Nachrichten sind deshalb unsicher.

Diese Aussage ist in ihrem Kern nicht falsch. Eine staatliche Behörde könnte die Betreiberfirma dazu zwingen, die Daten auf ihrem Server offen zu legen. Wie jedoch bereits in Punkt 2 geklärt, hat die Firma aus mathematischen Gründen gar keine Möglichkeit, die Nachrichten, die sich auf ihrem Server befinden, zu entschlüsseln. Die Firma kann aber natürlich die Metadaten (wer hat wann mit wem geschrieben) dem Staat offenlegen.

Wie in Punkt zwei gezeigt, kann Threema sehr wohl die Nachrichten, welche auf ihrem Server liegen zu entschlüsseln.

Im Extremfall könnten die staatlichen Repressalien auch so weit gehen, dass die Firma gezwungen wird, die Betreiberserver abzuschalten. Der entstehende Schaden wäre dabei einigermassen gering. Ab diesem Zeitpunkt hätten die Nutzer von Threema keine Möglichkeit mehr, überhaupt noch über Threema Nachrichten zu versenden. Bereits versandte Nachrichten wären davon aber nicht betroffen – deren Vertraulichkeit wäre nach wie vor gewährleistet, auch wenn die staatlichen Behörden den kompletten Server bis ins letzte Detail analysieren würden.

Nein, da Threema die Schlüssel kennt, ist auch dieser Punkt falsch.

Genau dies ist übrigens im Falle Lavabit geschehen. Auch hier hatte der Betreiber seinen Dienst einstellen müssen – jedoch ohne, dass die Vertraulichkeit der versendeten Daten damit tangiert worden wäre.

Aber auch nur weil Lavabit fair gespielt hat und die SSL-Schlüssel vernichtet hat. Dass Threema ebenfalls fair spielt oder bei Androhung von Strafzahlungen fair spielen würde und statt den Schlüssel herauszugeben ihren Dienst ebenfalls beenden würden ist nicht gesagt. Es lässt sich nicht nachprüfen. Es ist alles nur eine Vermutung. Vermutungen sind nicht Sicherheit.

Argument 6: Threema ist per se unsicher, weil jedes Mobiltelefon ja sowieso mit einer Backdoor ausgestattet ist.

Dieses Argument ist in sich durchaus korrekt. Wenn man davon ausgeht, dass jedes Mobiltelefon per se schädlingsbefallen ist, nützt auch Threema nichts, weil dann beispielsweise die Möglichkeit besteht, dass bereits die Tastatureingaben mitgelesen werden, bevor sie überhaupt auf dem Display landen. Wenn jedoch auf dieser Ebene argumentiert wird, so müsste jeder, der diese These vertritt, sein Mobiltelefon augenblicklich ausschalten und ab sofort nicht mehr verwenden. Nur dann kann gewährleistet werden, dass er – zumindest in diesem Bereich – nicht ausspioniert wird.

Das stimmt so: Wenn jemand ein Apple iPhone, ein Windows Phone oder ein Android-Phone mit Originalfirmware verwendet, so können dort Hintertüren enthalten sein. Man kann sich, zumindest mit einem Android-Handy, schützen, indem man ein (gerne auch selbst kompiliertes) Custom-ROM benutzt. Ich verwende beispielsweise Omni-ROM, welches ein Open-Source ROM ist.

Fazit

Wie die Entwickler von Threema selbst eingestehen, können Sie nicht zu hundert Prozent gewährleisten, dass die NSA keinen Zugriff auf Nachrichten hat, welche mit Threema versendet wurden. Gerade die Problematik um verseuchte Endgeräte lässt sich nie komplett ausschliessen.

Doch, die Problematik der verseuchten Endgeräte lässt sich ausschliessen, indem man statt eines Closed-Source Handys ein Handy mit einem Open-Source-ROM verwendet.

Dabei wäre es trotzdem schön, wenn die Entwickler von Threema ihren Quellcode zur Analyse zur Verfügung stellen würden. Dies würde das Vertrauen in die Applikation massiv stärken. Potenzielle Sicherheitsrisiken birgt ausserdem die Generierung der Schlüsselpaare. Rein hypothetisch wäre es möglich, dass sämtlichen Schlüsselpaaren auf jedem Threema Mobiltelefon weltweit ein Masterschlüssel zugrunde liegt, mit dem sämtliche Nachrichten entschlüsselt werden können. Dieses Risiko ist jedoch sehr klein, weil in diesem Falle der Masterschlüssel in der Applikation einprogrammiert sein müsste, was früher oder später bei einem Reverse-Engineering der Applikation jemandem auffallen würde.

Nein, ich persönlich schätze zwar das Risiko ebenfalls als gering ein, dass wirklich eine Backdoor in Threema verbaut ist, jedoch nicht auf Grund dessen dass es technisch schwierig sei, sondern einfach weil ich an das Gute im Menschen glaube, und der Firma hinter Threema glauben möchte. Dennoch ist es von der Technik her einfach möglich und man benötigt dafür auch keinen in das Gerät programmierten Masterschlüssel wie das Beispiel des Dual_EC_DRBG Schlüsselgenerators zeigt. Zudem ist Reverse-Engineering keine triviale Angelegenheit, wenn beispielsweise Obfuscated Code verwendet wird.

Doch auch wenn ich glaube, dass in Threema keine Backdoor ist, ist es nicht möglich zu prüfen, dass keine Backdoor enthalten ist. Und das ist der ausschlaggebende Grund.

Nach eingehender Prüfung sämtlicher Faktoren ist die Info8.ch-Technikredaktion jedenfalls zum Schluss gekommen, dass Threema momentan die sicherste Methode ist, um über das Smartphone mit anderen zu kommunizieren.

Da der Artikel jedoch leider gespickt mit falschen Annahmen, Trugschlüssen und Vermutungen ist, ist die Info8.ch-Technikredaktion zu einem falschen Schluss gekommen.

Fazit: Closed-Source-Software im Bereich Kryptografie vermeiden. Nur ein einsehbarer Quellcode macht es möglich, zu überprüfen, ob die Versprechen auch stimmen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment