Die Übernahme von WhatsApp durch Facebook zeigt, dass es einfach Sch.... ist, sich das Adressbuch klauen zu lassen. Irgendwann landet es in den Datensammlungen von Facebook (oder Google, Microsoft oder...), die alle als PRISM-Partner der NSA gelistet sind.
Juristisch kann man es DSGVO-konform so formulieren (AG Bad Hersfeld Familiengericht):Wer den Messenger-Dienst "WhatsApp" nutzt, übermittelt nach den Vorgaben des Dienstes fortlaufend Daten in Klardaten-Form von allen in dem eigenen Adressbuch eingetragenen Kontaktpersonen an das hinter dem Dienst stehende Unternehmen (Facebook).
Wer durch seine Nutzung von "WhatsApp" diese andauernde Datenweitergabe zulässt, ohne zuvor von seinen Kontaktpersonen aus dem eigenen Adressbuch hierfür jeweils eine Erlaubnis eingeholt zu haben, begeht gegenüber diesen Personen eine deliktische Handlung und begibt sich in Gefahr, von den betroffenen Personen kostenpflichtig abgemahnt zu werden.
Wenn man als WhatsApp Nutzer die Telefonnummern mit Bekannten austauscht und im Adressbuch speichert, dann müsste man also eigentlich um die Zustimmung bitten, Name, Telefonnummer und Freundschaftsstatus an Facebook zu schicken. Das Gespräch könnte so ablaufen:
Update: im März 2023 erklärte WhatsApp gegenüber der EU Kommision, dass der Dienst zukünftig keine personenbezogenen Daten an Facebook oder andere Meta-Unternehmen weitergeben wird.
Die Infrastruktur des Dienstes sollte dezentral verteilt sein und nicht von einem einzelnen Betreiber kontrolliert werden. Dezentrale Strukturen sind nur schwer von Regierungen durch Gesetze kompromittierbar, um Geheimdiensten die Überwachung zu ermöglichen.
Anmerkung: Im Gegensatz zu einigen Open Source Dogmatikern bin ich nicht der Meinung, dass eine dezentrale Infrastruktur "freier Messenger" gegen die Installation von Backdoors auf den Servern schützt. Während bei Threema oder Signal App immer wieder angezweifelt wird, ob dort wirklich die auditierte Software auf den Servern läuft, werden die Admins von [matrix] oder XMPP Servern per Definition zu Heiligen erklärt, die niemals etwas anderes installieren würden als die offizielle Software oder neugierig die Metadaten beschnüffeln.
Für diese Glorifizierung der Open Source Admins gibt es keinen Grund. Als wir vor einigen Jahren noch Jabber/XMPP mit OTR-Verschlüsselung verwendeten, haben wir gehofft, das die Admins der Server nicht mit dem Modul mod_otr: man-in-the-middle module for Off-the-Record spielen oder es zumindest nicht gegen uns anwenden.
Die Gründe für Vertrauen sind sehr individuell. Manch einer sagt sich "Ich vertraue dem Admin, weil es ein Bekannter ist." und ein anderer denkt "Ich vertraue dem Admin nicht, weil es ein Bekannter ist, da die Neugier und Verführung zu einer kleinen Schnüffelei unter Bekannten am größten ist." (Stichwort Love-INT o.ä.)
Multi-Device-Support ist ein heutzutage ein häufig gewünschtes Standardfeature für Messenger. Man möchte via PC und Laptop online sein, um eine vernüftige Tastatur und einen großen Bildschirm zu nutzen, und man möchte via Smartphone unterwegs erreichbar sein. Dieses Feature erschwert es aber, eine sichere Ende-zu-Ende Verschlüsselung zu realisieren.
Ein potenter Angreifer kann den Multi-Device-Support ausnutzen, um ein weiteres Gerät im Namen des Opfers zu registrieren. Damit können alle Unterhaltungen mitgelesen werden und es sind auch Ende-zu-Ende verschlüsselte Chats betroffen. Das betrifft alle Multi-Device fähigen Protokolle.
Das BKA hat in den Jahren 2015/16 insgesamt 43x Telegram Nutzer überlistet. Das Team von Prof. Fedderath demonstrierte wie: die Behörden gaben die Telefonnummer der Zielperson in der Telegram Web-App eingeben und die SMS zur Authorisierung des Zugriffs abfangen. Dann konnten die unverschlüsselten Gruppenchats unbeobachtet mitgelesen werden. (Inzwischen werden Codes zur Authorisierung zus. Geräte nicht via SMS versendet sondern via Telegram.)
Die verschlüsselten, geheimen Chats von Telegram konnten damit nicht geknackt werden, da die Verschlüsselung MTProto nicht Multi-Device fähig ist.
Im August 2022 wurde der SMS Dienstleister Twilio mit einer Phishing Attacke angegriffen, der auch von Signal App zur Versendung von SMS genutzt wird. Die Angreifer verschafften sich damit Zugang zur Infrastuktur und versuchten, für drei Signal Nutzer ein neues Gerät zu registrieren und die SMS zur Verifikation abzufangen. Bei einem Nutzer waren sie erfolgreich und hatten mehrere Stunden Zugang zur aktuellen Kommunikation. Ein Zugriff auf Kontakte oder alte Nachrichten war aufgrund der sicheren Konzeption von Signal App nicht möglich.
Das Audit der OMEMO Verschlüsselung für Jabber/XMPP (PDF) beschreibt einen möglichen Man-in-the Middle Angriff auf die Verschlüsselung, der ebenfalls die Multi-Device Fähigkeiten des Protokolls ausnutzt. Ein Angreifer (Eve) veranlasst Alice, ein neues Gerät mit einem eigenen Key für Bob in die Liste aufzunehmen. Alice sendet in Zukunft alle Nachricht verschlüsselt mit den Schlüsseln für Bob+Eve. Eve kann die Nachrichten mitlesen ohne die Krypto brechen zu müssen. Um unentdeckt zu bleiben, entfernt Eve ihre Geräte-ID, bevor sie die Nachricht an Bob weiterleitet. Diese Manipulation ist bei OMEMO möglich, weil die Nachrichten nicht kryptografisch authentifiziert werden. (Hat man das einfach vergessen?)
Das Paper Practically-exploitable Cryptographic Vulnerabilities in Matrix beschreibt mehrere Angriffe auf die Verschlüsselung bei [matrix]. Ein bösartiger Homeserver kann zusätzliche Nutzer in E2E-verschlüsselte Räume einfügen oder neue Geräte für einen User registrieren und damit alle E2E-verschlüsselten Chats dieses Nutzers mitlesen, solange der Nutzer das zusätzliche Gerät oder den neuen Teilnehmer im Raum (Gruppenchat) nicht bemerkt. Außerdem könnte ein bösartige Homeserver Sessions kompromittieren und sich selbst als Man-in-the-Middle in ausgewählten Räumen platzieren oder sich als vertraunswürdiges Gerät eines Nutzers ausgeben und ein Backup anfordern, das Zugriff auf alle Daten bietet.
Grundsätzliche Anforderungen an eine Ende-zu-Ende Verschlüsselung werden bei [matrix] nicht erfüllt. Auf den Homeservern sitzt genau der Angreifer (Mallory), gegen den die Ende-zu-Ende Verschlüsselung eigentlich schützen soll.
Schutz gegen Angriffe, die ein zusätzliches Gerät für einen Account registrieren wollen:
Bei vielen Multi-Device fähigen Messengern kann man eine zweistufige Bestätigung bzw. Registrierungssperre für das Hinzufügen neuer Geräte aktivieren. Damit ist für die Anmeldung eines neuen Gerätes eine zusätzliche Passphrase bzw. PIN erforderlich, die sich vom Account Passwort unterscheiden sollte. Die oben genannten Angriffe sind dann nicht mehr möglich.
Als Schutz gegen Angriffe bei (kurzzeitigem) physischem Zugriff auf ein entsperrtes Smartphone bieten hochwertige Messenger eine zusätzliche PIN-Sperre für die App, die man bei hohem Schutzbedarf aktivieren kann. Damit wird verhindert, dass ein Angreifer die App auf dem Smartphone starten kann und damit die Rechte erlangt, um ein zusätzliches Gerät anzumelden.
Anmerkung: Die Krypto-Protokolle OTR (Jabber/XMPP) und MTProto 2.0 (Telegram) sind nicht Multi-Device fähig und daher von diesen Angriffen nicht betroffen.
Der moderne Mensch nutzt heutzutage oft mehrere Geräte (neben dem Smartphone noch einen Desktop PC zuhause und/oder einen Laptop für die Reise). Damit steht man vor dem Problem, das man Daten (Fotos, Urlaubsdokumente, Passwörter… usw.) auf mehreren Geräten braucht.
Man kann auch den Multi-Device-Support moderner Messenger dafür nutzen. Dabei profitiert man von der Ende-zu-Ende Verschlüsselung der Daten. Bei wirklich guten Messenger wie Signal App oder Threema werden die Daten ausschließlich verschlüsselt auf den eigenen Geräten gespeichert und liegen nicht unverschlüsselt auf Servern von Dritten rum. Außerdem können neben beliebigen Dateien und Notizen auch Sprachmemos unkompliziert genutzt werden.
Für die Messenger-Mini-Cloud richtet man sich einen oder mehrere private (verschlüsselte) Gruppenchats ein, zu denen Dritte keinen Zugang haben und die man für "Selbstgespräche" nutzt.
Alle Dateien, Notizen oder Sprachmemos, die man hier ablegt, stehen auf allen Geräte zur Verfügung, auf denen ein Client für den Messenger installiert ist. (Funktioniert mit allen Messengern.)
In den Desktop Clients von Signal App oder Telegram ist ein Chat für die "Selbstgespräche" schon vorbereitet. Man kann sie in den Desktop Clients (nicht auf den Smartphones) aktivieren.
Beim Telegram Desktop Client startet man den Chat "Gespeichertes", den man im Menü findet, dass man mit einem Klick auf das Burgersymbol oben rechts öffnet.
Bei Telegram werden die Daten zwar verschlüsselt auf den Servern abgelegt aber Telegram hat auch die Schlüssel, ist also fast so wie E-Mails an die eigene Adresse, die unverschlüsselt beim E-Mail Provider rumliegen.
Auch wenn die Krypto nicht gebrochen werden kann, sind verschiedene Angriffe möglich:
Angriffe auf die Schlüssel attakieren den Schlüsseltausch. Um eine einfache Kontaktaufnahme zu ermöglichen wenn der Gegenüber offline ist, stellen viele Messenger die public Keys der Nutzer auf den Servern zur Verfügung. Ein bösartiger Betreiber könnte prinzipiell die Keys austauschen und den Datenverkehr umleiten, so dass Mallory wieder in der Mitte sitzt und als "Reflektor" agieren kann, der die Nachrichten umschlüsselt und mitliest.
Gegen diese Angriffe schützt eine Verifikation der Kommunikationspartner:
Weiche Verifikation schützt gegen Social Attacks. Man könnte den Account des Gegenüber via Audio- oder Videocall anrufen (viele Messenger unterstützen es) und wenn man den Gegenüber erkennt und die Verschlüsselung prüft, chattet man mit der richtigen Person.
Wenn der Account des Gegenüber mit einer Telefonnummer verknüpft ist, dann ist auch eine Verifikation via Adressbuch möglich. Einige Messenger können die Telefonummer des Gegenüber mit dem Adressbuch abgleichen und schützen damit gegen simple Social Attacks.
(Es ist nicht grundsätzlich verwerflich, wenn Messenger Accounts mit Telefonnummern verknüpft werden. Es kommt darauf an, ob man den Messenger vor allem für die private Kommunikation mit Bekannten verwenden möchte oder ob man in erster Linie anonym irgendwo "rumtrollen" will.)
Harte Verifikation überprüft die verwendeten Schlüssel. Ein universelles Verfahren zur Überprüfung der Schlüssel ist ein Vergleich der Fingerabdrücke der Schlüssel bei einem Face-2-Face Treffen oder out-of-band über einen unabhägigen, sicheren Kanal.
Der Fingerabdruck muss dabei nicht unbedingt anhand kryptischer Zeichenfolgen verglichen werden sondern könnte auch anhand bunter Bildchen erfolgen, was intuitiver ist.
Signal App setzt nicht nur bei Verschlüsselung der Daten Maßstäbe sondern auch beim Schlüsseltausch. Beim X3DH Schlüsseltausch liegen nicht die public Keys auf dem Server sondern abgeleitete Schlüssel, die nur in Kombination mit den echten privaten Keys auf den primären Endgeräten der Nutzer sinnvoll genutzt werden können.
Bei X3DH könnte ein bösartiger Provider die Verbindsaufnahme blockieren. Es ist aber (nach aktuellem Stand) nicht möglich, modifizierte Keys einzuschleusen.
Diese Anzeige der Nachrichten könnte im Freundes- oder Familienkreis für Verwirrung sorgen, wenn beispielsweise der Ehemann auf dem Smartphone seiner Frau öfters Nachrichten von anderen Männern mit Küsschen und Herzchen Smilies sieht.
Deshalb bieten gute Messenger die Möglichkeit, die angezeigten Inhalte zu konfigurieren und keine (verschlüsselten) Inhalte in Notifications zu leaken. Beispielsweise Threema: Oder Signal App:WhatsApp hat die einfachste Implementierung gewählt. Der WhatsApp Messenger kontaktiert den Webserver direkt und hinterlässt damit Einträge in den Logs.
Anhand der IP-Adresse kann damit die Verknüpfung zu einer Person erfolgen, wenn man beispielsweise den Link zu einer Facebook Seite versendet und dabei gleichzeitig bei Facebook eingeloggt ist. (Aber das stört WhatsApp Nutzer wahrscheinlich nicht.)
Signal App generiert Link Previews für Webseiten, die via HTTPS erreichbar sind. Signal App kontaktiert den Webserver ebenfalls direkt und tarnt sich als "WhatsApp".
In den Datenschutz Einstellungen von Signal kann man Link Previews abschalten.
Telegram hat eine andere Lösung implementiert. Die Link Previews werden auf dem Telegram Server generiert. Das verhindert Implikationen wie bei WhatsApp, da nur der Server die Webseiten kontaktiert und das Abrufen der Informationen keinem Nutzer individuell zugeordnet werden kann.
Bei unverschlüsselten Chats kann man das als brauchbare Lösung betrachten. Bei geheimen Chats, die Ende-zu-Ende verschlüsselt sind, sollte der der Telegram Server aber keine Informationen über die Inhalte der Chats sammeln können. Deshalb sollte man die Link Previews für geheime Chats abschalten. Die Option findet man in den Einstellungen unter "Privatsphäre und Sicherheit" -> "Dateneinstellungen".
Matrix/Riot macht es ähnlich wie Telegram. Bei unverschlüsselten Chats werden die Link Previews vom Matrix Server generiert. Dieses Feature kann in den Einstellungen von Riot deaktiviert werden. Bei Ende-zu-Ende verschlüsselten Chats sollen laut Spezifikation keine Link Previews generiert werden.