Da kauft Facebook WhatsApp und viele wechseln zum angeblich sicheren Threema. Doch ist Threema wirklich sicherer? Und wie sähe ein wirklich sicher Messenger aus?
Die Probleme der Verschlüsselung bei Closed Source
Jeder Messenger, wie auch Threema, dessen Quelltext nicht verfügbar ist (Closed Source), kann theoretisch viel mehr oder ganz anderes machen, als er vorgibt. Wenn er dies jetzt nicht tut, dann vielleicht, nachdem dessen Hersteller ebenfalls verkauft wurde. Nur bei Open Source Quellcode, welcher verifzizierbar in die aus den App-Stores installierte App compliliert, kann man relativ sicher sein, dass die App nur das tut, was sie zu tun vorgibt. Dies ist so, weil die App funktionsbedingt die Nachrichten im Klartext erhält und die der Kommunikationsteilnehmer im Klartest anzeigen muss, hat die Verschlüsselung einen Bruch. Denn, um es noch einmal zu betonen, der Programmcode der App steht unter voller Kontrolle des Herstellers. Es wäre z.B. möglich, jede Nachricht nicht nur mit dem privaten Schlüssel des Empfängers, sondern zudem mit einen Zweitschlüssel entschlüsselbar zu versenden bzw. jede Nachricht bzw. selektiv Nachrichten zusätzlich mit einer zweiten Verschlüsselung zu versenden. Wenn auch nicht jetzt, dann vielleicht nachdem ein Geheimdienst den Hersteller dazu gezwungen hat, dies zu tun. Sicherheit ist also immer nur ein Versprechen und nicht etwa systembedingt vorhanden, wenn der Vorgang der Verschlüsselung und der Datenübertragungsendstellen nicht nachweislich aus einem bestimmten Open Source Quellcode compliliert wurde. [Nachtrag 21.02.2014] Genau genommen gilt dies schon für das Betriebsystem (iOS, Android etc.), da auch dieses Hintertüren enthalten kann, wenn es nicht vollständig in Open Source vorliegt.Kontakte/Adressbuch
Der Zugriff einer Messenger App auf das Adressbuch mag praktisch nützlich sein, so können z.B. die Profilbilder zu den Nachrichten angezeigt werden. Andererseits ist auch, wie bei WhatsApp, unsicher, was damit geschieht. Selbst wenn die App die Daten heute nicht überträgt: Wer garantiert, dass sie dies auch in Zukunft nicht tut, sobald sie Millionen von Anwendern hat und vielleicht den Eigentümer wechselt? Wenn man auf den Luxus des Adressbuch-Zugriffs nicht verzichten möchte, sollten mindestens zwei Versionen der App angeboten werden: eine mit und eine ohne dieses Zugriffsrecht (zumindest unter Android mit seinem ganz-oder-garnicht-Rechtemanagement).Schlüsselgenerierung
Üblicherweise wird ein Messenger, wie auch E-Mail, asynchrone Verschlüsselung verwenden. Diese basiert auf einem Paar aus öffentlichem und privatem Schlüssel. Nachrichten, die mit dem öffentlichen Schlüssel verschlüsselt wurden, können nur mit dem privaten Schlüssel entschlüsselt werden. Zur Anwendung kommt dabei eine mathematische Falltürfunktion, die nur mit extremem Rechenaufwand umgekehrt werden kann. Tatsächlich wird aber i.d.R. nicht die Nachricht selbst so verschlüsselt, sondern nur ein einmalig generierter symmetrischer Schlüssel; und dieser wird mit übertragen. Dies wird zum einen gemacht, weil asynmetrische Ver- und Entschlüsselung größerer Datenmengen langsam ist, zum anderen kann somit der symmetrische Schlüssel jeweils mit dem privaten Schlüssel mehrerer Empfänger verschlüsselt werden, und jeder der Empfänger, aber niemand anders, kann diese Nachricht entschlüsseln. Die Schwachstelle ist hierbei die Kenntnis der privaten Schlüssel. Wenn die Messenger App diese selbst generiert, könnte sie auch die privaten Schlüssel heimlich mit übertragen und somit doch wieder jede Nachricht entschlüsseln. Das Schlüsselpaar muss also unbedingt unabhängig von der Messenger App generiert werden und die privten Schlüssel dürfen zumindest einem Closed-Source Messenger niemals bekannt werden. Wie das aufzulösen ist, wird weiter unten beschrieben. Zudem müssen auch die öffentlichen Schlüssel der Kommunikationspartner auf sicherem Wege zwischen diesen ausgetauscht werden. Denn ansonsten könnte ein Man in the Middle seinen Schlüssel dazwischen schieben und jede Nachricht zunächst mit seinem privaten Schlüssel entschlüssen und mitlesen und dann zur Weiterleitung mit dem echten privaten Schlüssel des Empfängers weiterleiten - theoretisch sogar verändert.Man in the Middle
Unter Man in the Middle versteht man üblicherweise ein Computerprogramm, welches sich in den Kommunikationsweg einschaltet und zu beiden seiten so tut, als wäre es der eigentliche Kommunkikationspartner, um Nachrichten mitzulesen oder gar zu verfälschen/einzuschleusen. Bei einer Messenger-App mit einem zentralen Server-Betreiber kann dieser aber auch selbst der Man in the Middle sein. Zumindest hier ist bekannt, wer wann mit wem kommuniziert - selbst wenn die Nachrichten selbst verschlüsselt sind, um sie zuzustellen, muss schließlich der Empfänger bekannt sein. Wünschenswert wäre hier ein dezentraler Dienst, bei dem jeder seinen eigenen Kommunikationsserver verwenden könnte. Damit könnten Gruppen untereinander ihre Kommunikation ganz einem zentralen Dienst entziehen. Ein Man in the Middle auf dem Übertragungsweg müsste mindestens eine Verschlüsselung brechen, um auch nur an die konkreten Kommunikationspartner heran zu kommen.Lösungsansatz: Trennung Messenger App von Verschlüsselung+Übertragung
Was ich mir daher wünschte, wäre ein Messenger mit folgenden Eigenschaften:- Eine Messenger Frontend-App, welche die Benutzerschnittselle implementiert. Diese müsste entweder im Open Source vorliegen oder keinerlei besondere Rechte benötigen, außer auf die folgende Dienst-App zugreifen zu können.
- Eine Messenger Dienst-App, zur Verschlüsselung und Datenübertragung, die separat installiert werden kann und über standardisierte Schnittstellen mit dem Messenger-Frontend kommuniziert.
- Ein standardisiertes Datenübertragungs- und -vermittlungsprotokoll, welches von Open Source Messenger Dienst-Apps sowie Open Source Servern implementiert werden kann. Es müsste zudem dezentral sein, d.h. das Untergruppen nur über ihre eigenen Server kommunizieren können, die dann externe Kommunikation vermitteln. XMPP wäre ein solcher Kandidat, allerdings fehlt eine Optimierung für Mobildevices und Integration in die Push-Dienste der Smartphone-Betriebssysteme.
Twitter
Facebook
Reddit
LinkedIn
StumbleUpon
Email