Der WhatsApp-Verschlüsselung auf die Finger geschaut | heise Security

yowsup logging whatsapp

Für einen Artikel in c’t hat sich das Team von heise Security die Ende-zu-Ende-Verschlüsselung von WhatsApp im Detail angesehen. Dabei kam heraus, dass WhatsApp zwar vorbildlich mit der TextSecure-Technik von Moxie Marlinspike verschlüsselt, das Ganze in der Praxis aber nur beschränkten Nutzen hat.

Fabian A. Scherschel – 30.04.2015

English translation of this article

Als die Macher des Krypto-Messengers TextSecure Ende 2014 ankündigten WhatsApp würde nun mit dem von ihnen entwickelten Protokoll Ende-zu-Ende verschlüsseln, löste dies ein großes Medieninteresse aus. Danach wurde es allerdings schnell wieder still um die Verschlüsselung beim beliebten Smartphone-Messenger. Viele Nutzer fragen sich noch immer, ob sie der App nun vertrauen können oder ob die Datenkrake Facebook nach wie vor alles mitliest. Um diese Frage in einem c’t-Artikel zu beantworten (siehe dazu Ausgabe 11/15 von c’t auf S.88: „WhatsApp entschlüsselt„), haben wir die Verschlüsselung des Dienstes unter die Lupe genommen.

Da die Apps selbst Closed Source sind, konzentrierten wir uns auf die übertragenen Nachrichten. Dabei sind wir von zwei Seiten an die Sache herangegangen. Zum einen haben wir den Datenverkehr vom Smartphone zum WhatsApp-Server untersucht, zum anderen haben wir die empfangene Nachricht dem Python-Tool yowsupvorgeworfen. Da das als Quelltext vorliegt, konnten wir dort nachvollziehen, was wie entschlüsselt werden musste, um die verschickte Nachricht zum Vorschein zu bringen.

Analyse mit Wireshark

Auf der Seite des Smartphones schalteten wir uns zwischen das Absender-Gerät der Nachricht und den WLAN-Router. Mittels ARP-Spoofing machten wir dem Gerät vor, wir wären der Router und gaben uns gegenüber dem Router als das Handy aus – ein klassischer Man-in-the-Middle-Angriff. Auf diesem Weg ging sämtlicher Netzwerkverkehr vom Smartphone zum WhatsApp-Server an uns vorbei. Mit Hilfeeines Zusatzmoduls für Wireshark gelang es uns, in die von WhatsApp verschickten Datenpakete hineinzuschauen. Allerdings förderte das nur die Verwaltungsinformationen des Jabber-ähnlichen Protokolls zu Tage. Der eigentliche Inhalt der Nachrichten blieb – wie zu erwarten – unlesbarer Binärcode.

mitm whatsapp
Der Versuchsaufbau: Das Smartphone sendet eine Nachricht an yowsup auf einem Desktop-Rechner. Auf dem Weg zum WhatsApp-Server werden die Daten auf dem Laptop mit Wireshark mitgeschnitten und dann weiter geschickt.

Wie bereits von Sicherheitsforschern dokumentiert wurde, setzt WhatsApp eine proprietäre Transportverschlüsselung ein, die auf dem problematischen RC4-Algorithmus beruht und somit durchaus angreifbar ist. Das RC4-Verfahren gilt als geknackt; außerdem wird offenbar für beide Kommunikationsrichtungen der gleiche,aus einem Benutzerkennwort abgeleitete Schlüssel verwendet, was zusätzliche Angriffsfläche bietet. Somit ist die Transportverschlüsselung prinzipiell angreifbar. Trotzdem ist damit eine einfache Massenüberwachung der WhatsApp-Kommunikation etwa auf den Internet-Backbones schon mal unmöglich.

Bleiben für eine massenhafte Analyse von WhatsApp-Nachrichten also die WhatsApp-Server, welche die transport-gesicherten Nachrichten dechiffrieren und damit dann den Klartext der Nachrichten prozessieren und auch auswerten können. Zumindest wenn keine Ende-zu-Ende-Verschlüsselung das verhindert. Ob die, wie von Moxie Marlinspike behauptet, jedoch tatsächlich schon zum Einsatz kommt, ist bislang nicht dokumentiert. WhatsApp selbst hat sich zum Thema Ende-zu-Ende-Verschlüsselung (E2E) nicht öffentlich geäußert. Also haben wir uns die von einem Android-Smartphone verschickten Nachrichten genauer angeschaut. Die sollten nämlich laut Marlinspike bereits E2E-gesichert sein, wenn die Gegenstelle das ebenfalls schon kann.

Open Source hilft bei der Krypto-Analyse

Eine solche Gegenstelle setzten wir für unsere Untersuchungen selbst auf. Die freie und quelloffene Software yowsup kann man dazu verwenden, per Skript vom Webserver zu whatsappen. In der aktuellen Version enthält sie auch bereits eine experimentelle Option mit dem Namen --moxie, mit der man einen E2E-fähige WhatsApp-Client aufsetzen kann. Der Vorteil gegenüber dem Original: Nicht nur der Quellcode von yowsup selbst liegt offen, das Programm bindet eine Portierung der Axolotl-Verschlüsselung aus TextSecure ein, die vom selben Entwickler stammt und ebenfalls Open Source ist. So kann man alle Schritte vom Empfang der chiffrierten Daten aus dem Netz bis hin zur Ausgabe der Klartextnachricht verfolgen.

Mit diesem Patch schauen wir yowsup auf die Finger, wenn es Nachrichten entschlüsselt.
Mit diesem Patch schauen wir yowsup auf die Finger, wenn es Nachrichten entschlüsselt. Vergrößern

Für unsere Tests luden wir den Python-Code aus dem GitHub-Repo des yowsup-Projektes herunter und bauten an einigen Stellen zusätzliche Kontroll-Ausgaben ein.Die Änderungen sorgen dafür, dass der Code den Ciphertext auf der Kommandozeile ausgibt, bevor er entschlüsselt wird. Die binären Cipherdaten wandelt der Logging-Code für die Ausgabe in Hexadezimal-Form um. Und in der Tat kam von den getesteten Android-Handys immer Ciphertext an deser Stelle an.

Codeflow: So verarbeitet yowsup mit Hilfe der Bibliothek python-axolotl eine eingehende Nachricht, die mit dem TextSecure-Protokoll verschlüsselt wurde und entschlüsselt werden soll.
Codeflow: So verarbeitet yowsup mit Hilfe der Bibliothek python-axolotl eine eingehende Nachricht, die mit dem TextSecure-Protokoll verschlüsselt wurde und entschlüsselt werden soll. Vergrößern

Im nächsten Schritt ruft der Code die Axolotl-Bibliothek auf und lässt die Nachricht entschlüsseln. Eine zweite Modifikation unsererseits sorgte dafür, dass auch der Klartext auf der Kommandozeile als Hinweis ausgegeben wird. Und in der Tat lieferte dieser Schritt den schließlich auch angezeigten Klartext zurück.

Damit wissen wir, dass unsere Android-Handys im Test tatsächlich nur Ende-zu-Ende-verschlüsselte Nachrichten an die E2E-fähige Gegenstelle verschickten. Und diese Nachrichten waren offenbar nicht irgendwie, sondern gemäß dem TextSecure-Protokoll verschlüsselt. Von ebenfalls getesteten iOS-Clients kamen hingegen keine derart gesicherten Nachrichten.

Hier zeigt der Echo Client von yowsup die verschlüsselt eingehende Nachricht sowie den Klartext nach der Entschlüsselung durch die Axolotl-Bibliothek.
Hier zeigt der Echo Client von yowsup die verschlüsselt eingehende Nachricht sowie den Klartext nach der Entschlüsselung durch die Axolotl-Bibliothek. Vergrößern

Wir sahen übrigens bei unserer Analyse der Netzwerk-Aktivitäten keine zusätzlichen Daten, die eventuell darauf hinweisen könnten, dass der WhatsApp-Client die Daten zusätzlich noch ohne den E2E-Schutz an den Server sendet. Damit beginnt allerdings die frustrierende Liste der Dinge, die wir mit unserem Versuchsaufbau nicht erfassen können. Wir wissen etwa nicht, ob die E2E-Verschlüsselung tatsächlich immer zum Einsatz kommt, wenn es möglich ist, oder nach bestimmten Kriterien auch mal ausgesetzt wird – etwa auf Anfrage gewisser Dienste oder in bestimmten Ländern. Grundsätzlich ist ein solcher Schalter ja durchaus vorgesehen. Schließlich sendet jeder WhatsApp-Client auch ungesicherte Nachrichten etwa an iPhones ohne E2E-Verschlüsselung.

Ob die von WhatsApp erstellten, geheimen Schlüssel unter bestimmten Umständen vielleicht doch das Gerät verlassen, wissen wir ebenfalls nicht. Aber solange WhatsApp jedem Client jederzeit signalisieren kann, ab sofort unverschlüsselt zu senden und der Anwender praktisch keine Chance hat, das zu bemerken, dürfte das Interesse an diesen Schlüsseln ohnehin gering sein.

Unsicherheit trotz Ende-zu-Ende-Verschlüsselung

Letzteres ist vielleicht sogar das größte Problem der Ende-zu-Ende-Verschlüsselung. Man weiß eigentlich nie wirklich sicher, ob sie tatsächlich zum Einsatz kommt. Denn weder beim Verschicken noch beim Empfang zeigt ein regulärer WhatsApp-Client an, ob die Nachricht E2E-verschlüsselt wurde. Auch unsere Labor-Tests belegen lediglich, dass das prinzipiell schon geschieht. Genug, um sich drauf zu verlassen, ist das leider nicht. Erschwerend hinzu kommt, dass es zumindest nach unserem Kenntnisstand nicht einmal ein Commitment von WhatsApp zu konsequenter E2E-Verschlüsselung gibt. Damit bleibt das Ganze bisher leider nur eine Geste. (fab)

Quelle: Der WhatsApp-Verschlüsselung auf die Finger geschaut | heise Security

Advertisements

Autor: Publik

„Wenn ihr die Geheimnisse des Universums verstehen wollt, denkt in Begriffen wie Energie, Frequenz und Vibrationen.“ Nikola Tesla

1 Kommentar zu „Der WhatsApp-Verschlüsselung auf die Finger geschaut | heise Security“

  1. Hier noch die Fortführung der Tests von Heise mit abschließendem Fazit:

    http://www.heise.de/security/artikel/Test-Hinter-den-Kulissen-der-WhatsApp-Verschluesselung-3165567.html

    Fazit: Alltagstaugliche Verschlüsselung für eine Milliarde Nutzer

    Diese Tests zeichnen ein anderes Bild als noch beim letzten Mal: Nach den Änderungen am Benutzerinterface der Apps und der konsequenten Ende-zu-Ende-Verschlüsselung über Gerätegrenzen hinweg ist die WhatsApp-Verschlüsselung tatsächlich ein gewaltiger Schritt nach vorne. WhatsApp bestätigt: Unser yowsup-Testnutzer kommuniziert verschlüsselt mit uns.
    WhatsApp bestätigt: Unser yowsup-Testnutzer kommuniziert verschlüsselt mit uns. Vergrößern Wir haben mit unseren Tests keine Anhaltspunkte gefunden, dass die Verschlüsselung nicht so funktionieren würde, wie sie von Marlinspike beschrieben wurde. Insbesondere akzeptierte WhatsApp in unseren Versuchen für ein einmal als Krypto-fähig erkanntes Gegenüber ausschließlich verschlüsselte Nachrichten ……….

    Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s