XMPP

XMPP (Conversations) - The very last word in instant messaging!
Das Extensible Messaging and Presence Protocol ist eine offene XML Technologie für die Echtzeitkommunikation.

XMPP Logo

Föderation statt Zentralisierung

Obwohl das Internet dezentral funktioniert werden viele Dienste zentralisiert und die Kontrolle darüber liegt in den Händen ein paar weniger Grosskonzerne. Dabei bietet Föderation gegenüber der Zentralisierung etliche Vorteile. Nehmen wir das Beispiel E-Mail. In den meisten Fällen betreibt jede Firma einen eigenen Mailserver, auch habe ich als Benutzer die Möglichkeit ein Konto bei unterschiedlichen E-Mail-Anbietern zu eröffnen und trotz dezentraler Struktur, kann ich eine E-Mail an alle Teilnehmer jeglicher Anbieter zustellen. Es spielt keine Rolle welche Anbieter (Gmail, GMX, Posteo etc.), Server- (Postfix, Exchange, Kolab, Lotus Notes etc.) beziehungsweise Clientsoftware (Thunderbird, Outlook, K-9 Mail etc.) verwendet wird, solange alle dieselbe Sprache (Protokoll) sprechen. Sogar der Zugriff mittels Webinterface wird für alle Webbrowser (Firefox, Opera, Safari etc.) zur Verfügung gestellt. Bei den sogenannten Walled-Gardens (ummauerter Garten, geschlossene Ökosysteme) wie Whatsapp, Facebook, Threema, Signal, Telegram usw. kann ich mich nur in deren Kosmos mit deren Anwendung unterhalten. Diese geschlossenen Inselsysteme wiedersprechen einem gemeinschaftlichen und freien Internet. Der Benutzer macht sich von einem einzigen Anbieter abhängig und ist in deren Blase gefangen.

Ohne Föderation könntest du E-Mails nur mit Personen austauschen, die denselben Anbieter (Posteo, Gmail, GMX etc.) verwenden. Auch das Telefonieren wäre nur mit den Kunden eines gemeinsamen Netzbetreibers (Swisscom, Salt, Telekom, Vodafone etc.) möglich. Oder stell dir vor, du bräuchtest für jede Webseite eine eigene Anwendung. Protokolle wie SMTP (Mail), HTTP (Internet) und XMPP (Kommunikation) sind offene Standards, die an keinen Anbieter, Betriebssystem oder Anwendung gebunden sind und stehen somit nicht unter der Kontrolle einer einzigen Firma. Sollte ich mit dem Angebot eines Mobilfunk- oder E-Mail-Anbieters unzufrieden sein oder werden gar die AGB’s zu meinem Nachteil angepasst, kann ich diese wechseln und bin trotzdem für alle erreichbar.
Niemand würde akzeptieren, dass mehrere Mailkonten oder mehrere Telefonabos nötig wären, um mit den Personen zu kommunizieren, die eben bei diesen Anbietern ihr Konto haben. Warum tolerieren wir dieses Vorgehen bei Instant Messaging? Bei der Entstehung des Internets bestand das Interesse darin, alle Teilnehmer zu verbinden, während heute die kommerziellen Interessen ein paar wenigen im Vordergrund stehen.

Wir müssen weg von zentralen und proprietären Lösungen hin zu freien und offenen Protokollen. Nur aufgrund des unglaublich hohen Marktanteils von Whatsapp nehmen wir die Mauern der Zentralisierung nicht mehr wahr.

Zentralisierung, Föderation, Punkt-zu-Punkt

Interoperabilität statt Insellösungen

So wie Whatsapp beim Instant-Messaging, erreichte Microsoft mit dem Webbrowser Internet Explorer einen Marktanteil von nahezu 90%. Die weite Verbreitung des Internet Explorer führte dazu, dass die Webseiten für diesen Browser "optimiert" wurden und sich die Entwickler vor allem am IE und nicht an Web-Standards orientierten.
Nach dem gewonnenen Browserkrieg gegen Netscape wurde im Herbst 2001 das Internet-Explorer Entwicklerteam so gut wie aufgelöst. Es dauerte sechs Jahre, bis Microsoft eine neue Version des IE veröffentlichte. Erst im März 2009 mit der Veröffentlichung des Internet Explorer 8 bestand Microsoft den Acid-Test, welcher die Konformität zu den Standards des W3C (World Wide Web Consortium) bestätigt. Spätestens mit dem Boom der Smartphones seit den 2010er Jahren, wurde weitgehende Kompatibilität unabdingbar und die Browserhersteller arbeiten seither verstärkt mit dem W3C zusammen, statt mit ihrer Marktmacht zu versuchen, ihre Vorschläge für Webtechnologien durchzusetzen.
Firmen, die sich nicht an Standards halten und alle anderen Anbieter durch Inkompatibilität ausschliessen wollen, sind eine Gefahr für das freie Internet und sollten gemieden werden! Die Fähigkeit zur Kombination und Interaktion verschiedener Systeme, Techniken oder Daten (Interoperabilität) und nicht Insellösungen haben die Entwicklung des Internet weitergebracht und zum wichtigsten Medium geformt.

Das XMPP-Protokoll

Damit wir untereinander Daten austauschen können, müssen Programme dieselbe Sprache sprechen. Ein Kommunikationsprotokoll dient als Regelwerk, welches den Vorgang der Kommunikation zwischen den Kommunikationspartnern exakt beschreibt. HTTP und SMTP sind bekannte Beispiele, die wie XMPP zur Internetprotokollfamilie gehören. HTTP wird verwendet, um Webseiten aus dem World Wide Web in einen Webbrowser zu laden. SMTP ist ein einfaches E-Mail-Transportprotokoll, um den Austausch von E-Mails in Computernetzen zu ermöglichen. Genauso wie zum Laden von Webseiten und Versenden von E-Mails gibt es einen offenen Standard für Instant Messaging (IM) namens XMPP.
Das XMPP-Protokoll (früher Jabber) mit seinen Erweiterungen (XEPs) unterstützt Funktionen zur Nachrichtenübermittlung, Dateiübertragung, Gruppenchats und wird von unzähligen Instant-Messengern (Apps) als Grundlage zur Kommunikation verwendet. Durch den Zusammenschluss unterschiedlichster Anbieter von XMPP-Servern zu einer offenen Kommunikationsplattform können Nachrichten Serverübergreifend an alle Benutzer, die über einen Jabber IDentifier (JID) verfügen, gesendet werden. Die JID (Beispiel: johndoe@swissjabber.ch) kann mit einer E-Mail Adresse verglichen werden. Der Benutzer jondoe ist somit beim Server swissjabber.ch registriert.

Bevor eine Nachricht per Kabel oder WLAN übertragen werden kann und beim Empfänger ankommt, müssen verschiedene TCP/IP-Schichten durchlaufen werden. Wie auf der Grafik dargestellt, sendet Bob von seinem Notebook mit einer beliebigen Anwendung (zBsp. Outlook) über den Anbieter gmail.com ein Mail an Alice. Die E-Mail durchläuft verschiedene Protkolle von der Anwendungsschicht bis zur untersten Schicht der Netzzugangsschicht. Die E-Mail wird physikalisch über ein Kabel oder per WLAN zum Smartphone von Alice übertragen. Bei Alice werden die Schichten in umgekehrter Reihenfolge durchlaufen hoch bis zum E-Mail Programm (zBsp. K-9 Mail). Damit die unterschiedlichen Anwendungen und Server (Anbieter) miteinander kommunizieren können, müssen alle die Regeln der unterschiedlichen Protokolle einhalten. TCP/IP Referenzmodell Instant-Messenger wie Whatsapp, Threema, Facebook-Chat etc. basieren auf dem XMPP-Protokoll. Diese Anbieter bedienen sich den fertigen Bibliotheken des XMPP-Protokolls, deaktivieren die Schlüsselfunktionalität, damit einzelne XMPP-Server miteinander kommunizieren können und schaffen so ein geschlossenes System. Bis zum Mai 2015 war es XMPP Teilnehmer möglich über eine Schnittstelle mit Facebook-Benutzern zu chatten. Leider wurde diese Möglichkeit von Facebook deaktiviert.
Ein weiterer Unterschied von Whatsapp gegenüber den gängigen XMPP-Clients (Anwendungen) wie Conversations, Gajim oder Pidgin ist der Benutzername (JID). Der Jabber IDentifier wird nach der Installation der App anhand der Telefonnummer automatisch generiert (Telefonnummer@s.whatsapp.net) und kann nicht frei gewählt werden. Über den Adressbuchabgleich der Telefonnummern können nun alle Kontakte gefunden werden, welche bei WhatsApp registriert sind. Diese an sich praktische Funktion ist aber aus Sicht des Datenschutzes extrem fragwürdig.

Open-Source

Quelloffen bedeutet nicht zwangsläufig, dass eine Software sicherer ist, aber die Möglichkeit den Code einzusehen bietet zumindest die Option für mehr Sicherheit. Leider fehlt der Open Source Community in manchen Fällen die nötigen Ressourcen um den Code sauber zu auditieren. Die Haltung, irgendwer hat das bestimmt geprüft, der Code ist schliesslich einsehbar bringt eben keine Sicherheit.
Aber gerade bei sicherheitsrelevanten Anwendungen ist Open-Source essentiell, da die stärkste Verschlüsselung nichts hilft, wenn durch Hintertüren in Closed-Source die Schlüsselinformationen entwendet werden. Das Maximum an Vertrauen kann NUR eine Quelloffene Anwendung bieten. Ohne die Möglichkeit, den Code zu prüfen, ist es praktisch unmöglich, Hintertüren zu entdecken.

Ziele der Kryptographie

Zum Schutz von Datenbeständen, Nachrichten und Übertragungskanälen gibt es in der Kryptographie vier Hauptziele.

  • Vertraulichkeit/Zugriffsschutz
    Vertraulichkeit ist in der Informationssicherheit der Schutz vor unbefugter Preisgabe von Informationen. Daten dürfen nur von berechtigen Personen gelesen werden.
  • Integrität/Änderungsschutz
    Die Integrität soll verhindern, dass Daten unautorisiert modifiziert werden.
  • Authentizität/Fälschungsschutz
    Authentizität bezeichnet die Eigenschaften der Echtheit, Überprüfbarkeit und Vertrauenswürdigkeit. Nachrichten müssen einem Sender bzw. Gerät zugeordnet werden können.
  • Verbindlichkeit/Nichtabstreitbarkeit
    Die Verbindlichkeit verhindert unzulässiges Abstreiten durchgeführter Handlungen. Es geht darum, sicher zu stellen, dass der Absender einer Nachricht nicht leugnen kann, dass er diese geschickt hat.

Auswahlkriterien

Folgende Punkte dienen als Grundlage zur Auswahl eines sicheren und datenschutzfreundlichen Messenger.

  • Kryptografie
    • Ende-zu-Ende-Verschlüsselung (E2E)
      Unter Ende-zu-Ende-Verschlüsselung versteht man die Verschlüsselung übertragener Daten über alle Übertragungsstationen hinweg. Bis auf den Versender und Empfänger hat niemand Zugriff auf den Dateninhalt (Vertraulichkeit). kuketz-blog.de - Grenzen der E2E Verschlüsselung
    • Folgenlosigkeit
      Sollte ein Angreifer irgendwann im Besitz meines privaten Schlüssels (Langzeitschlüssel) sein, kann er dank PFS (Perfect Forward Secrecy) die abgefangenen Pakete in der Vergangenheit sowie Zukunft trotzdem nicht entschlüsseln. Mit dem privaten Schlüssel werden Kurzzeitschlüssel erzeugt, die zur Verschlüsselung von Nachrichten ständig getauscht werden. Dies ist insofern wichtig, weil Staaten alle Daten abgreifen und auf unbestimmte Zeit speichern. Angenommen nach fünf Jahren wird der private Schlüssel kompromitiert, könnten die abgefangenen Daten der Geheimdienste trotzdem nicht entschlüsselt werden.
    • Glaubhafte Abtretbarkeit
      Glaubhafte Abtretbarkeit steht im Gegensatz zur Verbindlichkeit, ist aber zentral, damit sich nicht nachweisen lässt, ob eine Person einen bestimmten Schlüssel tatsächlich genutzt hat. Mir kann nicht bewiesen werden, dass ich zum Zeitpunkt Y mit der Person X in Kontakt war.
      Um sich der Verantwortung entziehen zu können, ist dieses Konzept in Form von Führungsstrukturen und Befehlsketten unter Politiker seit jeher bekannt.
  • Metadaten
    Daten über Daten zu sammeln, ist für Unternehmen und Geheimdienste ein vorrangiges Ziel. Metadaten sagen sehr viel über eine Person aus und sollten so gut wie möglich vermieden werden.
    • Adressbuch
      Das Adressbuch (Telefonnummern) darf nicht vom Anbieter abgegriffen werden.
    • Identifier
      Aus datenschutzrechtlicher Sicht sollte ein alternativer Identifier und auf keinen Fall die Telefonnummer verwendet werden. Eine Telefonnummer wird nicht anonym vergeben!
  • Bezugsquelle
    Es sollte die Möglichkeit bestehen, die Anwendung ohne Apple-ID oder GMAIL-Adresse über F-Droid oder direkt beim Anbieter zu beziehen.
  • Dezentralisierung
    Das Internet mit den unterschiedlichsten offenen und einheitlichen Standards, ist wohl das bedeutendste dezentrale Netzwerk. Auch das kommunizieren über dieses Netzwerk sollte unabhängig von einer zentralen Stelle möglich sein. Sei es, in Form eines Peer-to-Peer Netzwerkes, wo die Teilnehmer direkt miteinander kommunizieren können oder über frei wählbare Server, die dank Föderation miteinander verbunden sind.
  • Quelloffen
    Überall wo personenbezogene Daten verarbeitet werden, muss Quelloffene Software eingesetzt werden.
  • Sicherheitsaudit
    Unabhängige Dritte sollten den Quellcode regelmässig auf Sicherheitslücken prüfen.
  • Plattformunabhängig
    Der Messenger sollte auf den gängigen Plattformen (Android, Windows, iOS, Linux etc.) zur Verfügung stehen.
Quelle:
kuketz-blog.de - Conversations: Sicherer Android Messenger
kuketz-blog.de - Messenger: Kriterien an Sicherheit und Datenschutz

OMEMO Verschlüsselung

Die XMPP Erweiterung OMEMO steht für Multi-Client-Ende-zu-Ende-Verschlüsselung. Nebst Ende-zu-Ende Verschlüsselung bietet OMEMO Perfect Forward Secrecy sowie glaubhafte Abtretbarkeit. Bei OMEMO muss man sich nicht auf die Benutzeridentität verlassen, sondern kann den Kommunikationspartner mittels Geräteidentität verifizieren.
Der OMEMO-Fingerprint identifiziert den öffentlichen Geräteschlüssel des Gesprächspartners und wird beim Erhalt der ersten Nachricht eingeblendet. Mit der Verifizierung des Fingerabdrucks über einen anderen Kanal wird sichergestellt, dass eine sichere Verbindung der beiden Endgeräte aufgebaut wurde. Mit diesem Verfahren kann ein Man-in-the-Middle-Angriff ausgeschlossen werden.

Welche Clients OMEMO unterstützen, kannst du auf folgender Seite entnehmen: omemo.top

XMPP-Konto (JID) einrichten

Wie beim Einrichten einer Mailadresse muss auch hier ein Anbieter eines XMPP-Server gewählt werden. Unter XMPP.net wird eine entsprechende Serverliste angeboten. Beim trashserver.net kannst du dich direkt über die Webseite registrieren. Die Registrierung einer JID kann auch innerhalb des Client durchgeführt werden. Eine umfangreiche Liste von Clients (Apps) wird von der XMPP Foundation zur Verfügung gestellt.

Empfehlung

XMPP Client

Android: Conversations
iOS: Chatsecure
Linux: Gajim
Windows: Gajim
MacOS: Pidgin
Browser: Converse.JS

XMPP Server Anbieter

Eine Liste mit XMPP-Server die gut gewartet, immer die neusten Features unterstützen und in einem deutschen Datencenter betrieben werden, findest du auf der Seite von Daniel Gultsch: conversations.im - XMPP Compliance

Quellen und weiterführende Links

30.04.2017, zuletzt aktualisiert am 05.11.2019