Instant Messaging mit Jabber/XMPP – was ist das?

Jabber oder XMPP ist kurz gesagt ein auf dem offenen XMPP Kommunikationsprotokoll und seinen Erweiterungen basierender, dezentral organisierter Sofortnachrichten- und Chatdienst, über den man mit anderen Personen bzw. Nutzern dieses Dienstes Textnachrichten, Bilder und Dateien austauschen und mit ihnen einzeln oder in Gruppen chatten kann. Er stellt insoweit eine freie auf Open-Source basierende Alternative zu den allseits bekannten unfreien Instant Messaging Diensten von WhatsApp und Co. dar. Dieser Beitrag ist als Einstiegshilfe in freies Instand Messaging gedacht und richtet sich daher in erster Linie an die interessierten Einsteiger und natürlich auch die Wechselwilligen, die es vielleicht zunächst erstmal kennenlernen und testen möchten.

Ursprünge und Begrifflichkeiten

Wenn von einem freien Instant Messaging die Rede ist, tauchen mit Jabber und XMPP schnell zwei Begriffe auf, deren jeweilige Bedeutung oftmals nicht ganz klar ist und die daher zu etwas Verwirrung führen kann. Zum Einstieg daher zunächst kurz einige grundsätzliche Infos. Der Begriff Jabber geht auf das gleichnamige von Jeremie Miller 1998 ins Leben gerufene Jabber-Projekt zurück, mit dem er auf Basis der Auszeichnungssprache XML eine freie (Open-Source) Alternative zu den damals zunehmend auftauchenden unfreien (proprietären) Messengern entwickelte und etwa ein Jahr später dann auch sein Echtzeit-XML-Streaming-Protokoll unter dem Namen Jabber veröffentlichte. In der Folgezeit schlossen sich dem Projekt weitere Entwickler an, die unter anderem zur Erweiterung der Funktionalität des Jabber Protokolls von Jeremie Miller entsprechende Erweiterungsprotokolle entwickelten, die zunächst auch noch als Jabber Enhancement Proposals (JEPs) bezeichnet wurden.

Im Jahre 2004 wurde sein Protokoll mit einigen inzwischen eingeflossenen Änderungen dann von der IETF (Internet Engineering Task Force) als offizieller Standard mit der Bezeichnung Extensible Messaging and Presence Protocol (XMPP) verabschiedet. Seither ist nun auch die gemeinnützige Stiftung XMPP Standards Foundation (XSF), die nach einer Umbenennung aus der zuvor gegründeten Jabber Software Foundation hervorging, für die weitere Entwicklung und Einhaltung des Standards von XMPP zuständig und hierbei insbesondere hinsichtlich der darauf aufbauenden offiziellen Erweiterungsprotokolle, die nun als XMPP Extension Protocols (XEPs) bezeichnet werden, für die Standardisierung verantwortlich.

Mit diesem kurzen Blick auf die Geschichte und Entwicklung von Jabber und XMPP wird deutlich, dass beide Begriffe im Prinzip für das Gleiche stehen. Auch wenn sich im Zuge der weiteren Protokollentwicklung die Begrifflichkeit zu XMPP verlagert hat, so ist die ursprüngliche Bezeichnung Jabber doch nach wie vor ebenso wie nun XMPP als der Begriff etabliert, der für einen auf freier und quelloffener Software basierenden Instant Messaging Dienst steht. Daher sind auch beide Begriffe gebräuchlich, wobei sie zudem auch in der Kombination Jabber/XMPP zur Benennung des immer gleichen Dienstes zu finden sind. In letzter Zeit ist allerdings auch zu beobachten, dass zunehmend durchgängig für freies Instant Messaging und die zugehörigen Elemente nur noch der Begriff XMPP genutzt wird, z.B. XMPP-ID, XMPP-Server oder XMPP-Client. Im Hinblick auf die vorstehend aufgezeigte Protokollentwicklung ist dies aktuell wohl durchaus die etwas korrektere Bezeichnungsweise, der auch ich mich anschließe.

Wie funktioniert XMPP?

Wie eingangs angeführt, stellt XMPP einen freien Instant Messaging Dienst dar, der ebenso wie die unfreien und zentral organisierten Dienste von WhatsApp und Co. den Austausch von Nachrichten und Dateien ermöglicht. Hierzu braucht es neben den Clienten der einzelnen Benutzer einen Server, der die Verbindungen und Nachrichtenübertragungen herstellt bzw. ermöglicht. Da das XMPP Kommunikationsprotokoll grundsätzlich für eine dezentrale Serverstruktur konzipiert wurde, muss hier allerdings keineswegs alles über einen Server bzw. ein Server-Cluster eines Unternehmens laufen, an dem sich alle Nutzer anmelden müssen, sondern können, wie wir es ja bereits von den diversen E-Mail Providern kennen, viele verschiedene Betreiber einen XMPP-Server unterhalten, die sich entsprechend den E-Mail Servern untereinander verbinden und so ein weltumspannendes XMPP-Netzwerk bilden.

Da es sich zudem nicht nur bei dem offenen XMPP-Protokoll, sondern auch bei der zum Betrieb eines XMPP-Servers erforderlichen Software wie z.B. Prosody oder ejabberd um freie (Open Source) Software handelt, kann theoretisch jeder, der die Möglichkeit dazu hat, einen XMPP-Server aufsetzen und betreiben, soweit denn die weiteren Voraussetzungen gegeben sind. Mittlerweile bilden weltweit tausende von XMPP-Servern, die in fast allen Ländern betrieben werden, das XMPP-Netzwerk, wobei die Server überwiegend von engagierten Privatpersonen, Universitäten, technischen Hochschulen oder Vereinen, aber auch von dem einen oder anderen Internet- oder E-Mail Provider betrieben werden. Da sämtliche so betriebenen XMPP-Server weltweit ständig miteinander verbunden sind, spielt es für die Erreichbarkeit ebenso wie beim E-Mail letztlich keine Rolle, auf welchem Server man selbst und andererseits die jeweiligen Kontakte oder Chatpartner ihren Account bzw. ihre XMPP-ID angemeldet haben.

Aber alle meine Kontakte sind doch schon bei WhatsApp und …

Tja, das ist in der Regel wohl so und häufig wird von den unbedarften Nutzern dann auch angeführt, dass in der heutigen Zeit eben ohne WhatsApp praktisch nichts mehr geht und umgehend voller Überzeugung angefügt, dass sie ja nichts zu verbergen hätten und bei der Kommunikation mit ihren Kontakten ohnehin allenfalls Belangloses und keine persönlichen Informationen austauschen würden. Natürlich haben wir alle Dinge, die niemanden etwas angehen und sie blenden hierbei zudem aus oder es ist ihnen schlicht nicht bewusst, dass sie bereits gleich nach der Installation und dem ersten Start von WhatsApp mit der Preisgabe personenbezogener Daten begonnen haben, wenn dabei über die Telefonnummer ihrer SIM-Karte alle ihre Kontakte identifiziert werden, wobei hierzu vorab automatisch ihr gesamtes Adressbuch auf irgendeinen WhatsApp-Server per upload übertragen und ausgelesen wurde. Damit haben sie schon gleich zu Beginn der Nutzung den Datenschutz missachtet und alle ihre gespeicherten Kontakte in der Regel ungefragt an ein Unternehmen weitergegeben, welches mit der Nutzung und Vermarktung fremder Daten seinen Gewinn generiert. Vielleicht dämmert dem einen oder anderen aber auch so langsam, was er, bewusst oder unbewusst, dann wohl erst über einen längeren Nutzungszeitraum hinweg tatsächlich so alles innerhalb des Facebook-Imperiums, zu dem auch WhatsApp zählt, an Metadaten sowie in Wort und Bild über sich und seine Kontakte und diese über ihn preisgegeben haben, was vielleicht den Datenschutz verletzt oder niemanden sonst etwas angeht und nun aber nicht mehr zurückzuholen ist.

Der Umstand, dass es fast alle nutzen, ist für mich jedenfalls noch lange kein Grund, nun ebenfalls dem Datenschutz und meiner Privatsphäre sowie der meiner Angehörigen, Freunde und aller sonstigen Kontakte einen so geringen Stellenwert beizumessen, dass ich jetzt ebenfalls WhatsApp und damit letztlich dem datensammelnden und gewinnorientierten Facebook-Imperium einen freizügigen Zugriff darauf ermögliche. Man muss nicht zwangsläufig der Herde folgen, es gibt freie und sichere Alternativen, bei denen eigene Daten eigene Daten bleiben und eine davon ist Instant Messaging mit XMPP.

Natürlich ist auch mir bewusst, dass es sicherlich nicht ganz einfach ist, mal eben so auf einen anderen Kommunikationskanal umzusteigen und dabei vermutlich zunächst alle bisherigen Kontakte zu verlieren. Hier braucht der oder die Wechselwillige neben den entsprechenden Infos zu Instant Messaging mit XMPP und einem zumindest im Ansatz vorhandenen Bewusstsein für eine freie, die Privatsphäre der Nutzer respektierende Lösung auch eine gute Portion Stehvermögen, um WhatsApp und Co. dauerhaft hinter sich zu lassen. Wenn es damit leichter fällt, besteht natürlich auch die Möglichkeit, für eine gewisse Übergangszeit XMPP und WhatsApp parallel zu nutzen und hierzu auf dem Smart- oder iPhone zusätzlich einen freien Clienten (z.B. Conversations oder ChatSecure) zu installieren, um zunächst mit einigen Gleichgesinnten zu starten. Aufgrund der weitgehend identischen Bedienbarkeit der Clienten wird der Einstieg nicht sonderlich schwer fallen und wenn dann noch weitere Clienten auf den Desktopsystemen installiert sind, kann es auch geräteübergreifend genutzt und getestet werden.

Wo liegen denn die Vorteile von XMPP?

  • Fraglos ist in der Verbindung von dezentraler Ausrichtung und dem Einsatz von freier und quelloffener Software der grundlegende Vorteil zu sehen, den das offene XMPP Kommunikationsprotokoll bietet. Erst dadurch wurde ein freies, weil nicht an ein bestimmtes Unternehmen und dessen Server gebundenes Instant Messaging möglich. An dieser Stelle ist vielleicht interessant, dass auch WhatsApp auf XMPP aufbaut. Allerdings haben deren Entwickler eine besondere Lösung bezüglich der Datenkomprimierung bei der Übertragung gefunden und bezeichnen ihre abgeänderte Protokollversion nun als FunXMPP Protokoll. Leider haben sie die Lösung nicht vollständig frei dokumentiert, so dass es nicht möglich ist, entsprechende Anpassungen allgemein in XMPP einfliessen zu lassen. Daher können freie XMPP-Server nun auch keine Verbindung zu den Servern von WhatsApp herstellen und eine übergreifende Kommunikation ist somit nicht möglich. Interoperabilität in diesem Bereich, also die Möglichkeit der Kommunikation mit anderen Messenger-Diensten, sieht anders aus. Geschlossene Gesellschaft eben – Ein Schelm, wer böses dabei denkt.
  • XMPP dagegen ist ein freies im Quellcode transparentes und überprüfbares Instant Messaging, welches ebenso wie die hierzu bestehenden Erweiterungen offen dokumentiert ist und sich aktiv in ständiger Weiterentwicklung befindet. 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. Das Maximum an Vertrauen in einen angebotenen Dienst, kann nur eine quelloffene Anwendung bieten. Ohne die Möglichkeit, den Code zu prüfen, ist es praktisch unmöglich, Hintertüren zu entdecken.
  • Von ganz besonderer Bedeutung ist die Überprüfbarkeit und Quelloffenheit zweifellos bei den sicherheitsrelevanten Anwendungen wie einer Ende-zu-Ende Verschlüsselung mit der die Gesprächsinhalte ebenso wie ausgetauschte Daten und Bilder verlässlich vor dem Ausspähen geschützt werden sollen. Hier ist Open-Source schlicht essentiell, denn die stärkste Verschlüsselung hilft am Ende nichts, wenn durch Hintertüren in einer nicht überprüfbaren Closed-Source die Schlüsselinformationen entwendet werden. Bei Instant Messaging mit XMPP stehen mehrere freie kryptografische Lösungen zur Verfügung, wobei mit OMEMO eine quelloffene und jederzeit überprüfbare Ende-zu-Ende Verschlüsselung verfügbar ist, die mittlerweile in diversen XMPP-Clienten verschiedener Geräte und Systeme genutzt werden kann. Allerdings bietet auch WhatsApp eine Ende-zu-Ende Verschlüsselung, mit der Chatinhalte vor dem Ausspähen geschützt sein sollen. Man mag es glauben oder nicht, denn überprüfen lässt es sich, da der Quellcode nicht offen liegt, letztlich natürlich nicht.
  • Als freie Software (Open Source) gehört XMPP niemandem und viele engagierte Entwickler tragen weltweit dazu bei, dass die Sicherheit und  Funktionsvielfalt stetig wächst. Sowohl die XMPP-Serversoftware als auch die diverse XMPP-Clienten sind für verschiedenen Betriebssysteme und Geräte verfügbar und Instant Messaging mit XMPP kann system- und geräteübergreifend gleichzeitig auf verschiedenen Systemen und Geräten genutzt werden. XMPP ist somit nicht auf das Smart- oder iPhone beschränkt, es gibt keinen Austausch erfasster Daten mit anderen Diensten und es nutzt auch keine Telefonnummer als Identifikationsmerkmal und benötigt insoweit auch keinen Zugriff auf das Adressbuch der Nutzer. Es kann in der Regel völlig kostenlos und anonym genutzt werden und die Nutzer werden hier gar nicht erst in die Lage gebracht, mit der Herausgabe der in den Adressregistern ihrer Mobiltelefone gespeicherten personenbezogenen Daten ihrer Kontakte für die Nutzung eines ansonsten vordergründig kostenlosen Messagingdienstes bezahlen zu müssen.
  • Zusammenfassend ist XMPP daher nicht nur eine quasi auf allen gängigen Systemen und Geräten sehr sicher nutzbare, sondern insbesondere auch eine wirklich datenschutzfreundliche und damit nicht zuletzt auch eine im übertragenen Sinne wirklich freie und kostenlose Alternative zu den geschlossenen und mangels ausreichender Überprüfbarkeit wenig vertrauenswürdigen Instant Messaging Lösungen und Angeboten von gewinnorientierten und datenhungrigen Internetunternehmen, deren zentralisierte Dienste dem unbedarften Nutzer vordergründig häufig kostenlos angeboten werden.

Wie kann XMPP nun sicher genutzt werden – was wird benötigt?

Wer jetzt gerne ein auf freier Software basierendes Instant Messaging nutzen oder parallel zu seinem vielleicht bestehenden Account bei WhatsApp und Co. einfach nur mal ausprobieren möchte, der benötigt lediglich einen Account auf irgendeinem öffentlichen Server des globalen XMPP-Netzwerkes und natürlich die für seine Geräte (PC, Smartphone, Tablet etc.) jeweils passende App bzw. den passenden XMPP-Clienten für den Desktop. Ebenso wie bei der Einrichtung eines E-Mail Kontos müsste man sich nun zunächst für einen Provider bzw. XMPP-Server entscheiden, auf dem man seinen Account registrieren möchte. Da die Sicherheit der Kommunikation innerhalb des weltweiten XMPP-Netzwerks fraglos vorrangig von einer durchgehenden Verschlüsselung aller Verbindungen abhängt, empfiehlt es sich, bei der Serverwahl darauf zu achten, ob der Server sicher Konfiguriert ist und aktiv administriert bzw. gepflegt wird.

ProLinOS-Webformular zur Registrierung einer XMPP-ID

1. Einen Server zur Registrierung eines Accounts auswählen

Aufschlussreich kann hierbei schon ein Blick auf die Internetseite des Betreibers und seine dort enthaltenen oder eben nicht enthaltenen Ausführungen zu seinem XMPP-Server und der erforderlichen Datenschutzerklärung sein. Wie ich auf meiner Seite Server-Info bereits dargelegt habe, besteht zudem die Möglichkeit, sich mit Hilfe diverser Testseiten selbst einen Eindruck von den Sicherheits- und Datenschutzfunktionen eines Servers und der zugehörigen Webseite zu verschaffen. Sollten schon auf der Webseite des Betreibers Tracker, Cookies oder sonstige Drittanbieterdienste im Hintergrund aktiv und hierzu keine Erläuterungen vorhanden sein, dann ist dies sicherlich wenig vertrauenserweckend. Also etwas Obacht bei der ansonsten freien Serverwahl ist durchaus angezeigt.

Sofern einem nicht schon ein empfehlenswerter Server bekannt ist, wäre nun also nach einem öffentlichen XMPP-Server zu suchen, auf dem man sein Nutzerkonto (XMPP-ID) registrieren kann. Eine vollständige Liste aller verfügbaren öffentlichen Server gibt es nach meiner Kenntnis bisher allerdings nicht. Es sind aber einige Listen mit öffentlichen XMPP-Servern verfügbar, in denen man nach einem geeigneten Server suchen kann. Empfehlenswert sind aus meiner Sicht hier die unter jabber.at erreichbare und von der Fachschaft Informatik an der TU Wien geführte Serverliste und die von Daniel Gultsch, dem Entwickler von Omemo auf seiner XMPP-Compliance-Testseite enthaltene weitere Serverliste, über die sehr schnell ein Eindruck bezüglich der Sicherheit und den Funktionalitäten der aufgelisteten Server gewonnen werden kann. Bei der Auswahl eines geeigneten XMPP-Servers, auf dem man sein Nutzerkonto einrichten möchte, ist zudem sicherlich nicht zuletzt im Hinblick auf die Verbindungssicherheit und Geschwindigkeit auch auf den Serverstandort bzw. die Nähe zur eigenen Örtlichkeit zu achten. Wer insoweit in Deutschland beheimatet ist, ist daher sicherlich gut beraten, sich auch für einen hiesigen oder zumindest in Europa betriebenen XMPP-Server zu entscheiden, auf dem er dann seinen Account einrichtet.

Bestätigungsmeldung zur erfolgreichen Registrierung

2. Einen Account auf dem XMPP-Server registrieren

Im nächsten Schritt wäre dann auf dem Server der eigenen Wahl ein Benutzerkonto bzw. Account in Form einer sogenannten XMPP-ID zu registrieren. Hier zeigt sich auch eine weitere Gemeinsamkeit mit einer E-Mail, da beide Adressen  gleichlautend aufgebaut sind. Wie bei einer E-Mail kann der Benutzername vor dem @ frei gewählt werden und steht nach dem @ der jeweilige Servername bzw. die Domäne. Insoweit kann beispielsweise die Adresse testino@prolinos.de sowohl als E-Mail wie auch als XMPP-ID registriert und genutzt werden.

Für den Registrierungsvorgang selbst sollte, wie es auch hier auf ProLinOS der Fall ist, auf dem jeweiligen XMPP-Server ein entsprechendes Webformular angeboten werden, mit dem ohne Angabe von personenbezogenen Daten die Registrierung eines neuen Benutzeraccounts erfolgen kann. Hierbei ist dann lediglich ein frei zu wählender Benutzername und ein starkes Passwort in das Webformular einzutragen. Die Registrierung auf dem Server erfolgt nach dem absenden automatisch und der neue Benutzeraccount steht sofort zur Verfügung. Einige XMPP-Clienten ermöglichen auch die Registrierung eines neuen Accounts direkt aus dem Clienten heraus. Diese Möglichkeit einer sogenannten „Inband Registrierung“ ist allerdings wie auch bei ProLinOS auf den XMPP-Servern häufig abgeschaltet, da sie leider allzu oft von Bots zur Einrichtung von Accounts genutzt wird, von denen dann massenweise Spam versandt wird.

3. Clienten für die eigenen Geräte auswählen und installieren

Im dritten und letzten Schritt wären nun noch die für die genutzten Betriebssysteme (Linux, Windows, FreeBSD, Mac OSX, IOS, Android) und verschiedenen Geräte (Smartphone, Tablet, PC oder Laptop) erforderlichen XMPP-Clienten auszuwählen und zu installieren, damit die auf einem XMPP-Server eingerichtete neue XMPP-ID jeweils darin eingetragen und freies Instant Messaging per XMPP dann system- und geräteübergreifend genutzt werden kann.

Ich selbst nutze seit Jahren auf meinen Android-Geräten (Smartphone und Tablet) „Conversations“ und auf PC (Linux) und Laptop (Linux) „Gajim“. Beide Clienten befinden sich in ständiger Weiterentwicklung und unterstützen die Ende-zu-Ende Verschlüsselung mit OMEMO. Letztendlich muss und kann natürlich jeder Nutzer je nach seinem persönlichen Anspruch an Funktionsumfang und Sicherheit selbst entscheiden und frei wählen, welchen XMPP-Clienten er für seine Systeme und Geräte einsetzen möchte. Auf der Seite omemo.top findet sich ein guter Überblick über die derzeit verfügbaren XMPP-Clienten und den jeweils aktuellen Stand der OMEMO-Implementierung in die diversen Clienten. Abschließend führe ich als kleine Entscheidungshilfe nachstehend einige der für die verschiedenen Systeme verfügbaren XMPP-Clienten auf, die meiner Ansicht nach durchaus empfehlenswert sind:

Apps für Android (Smartphones & Tablets) und iOS (iTouch, iPad & iPhone)

Android:   ⇒   Conversations          iOS:   ⇒   ChatSecure   ⇒   Zom

Clienten für verschiedene Desktopsysteme

Linux:   ⇒   Gajim   ⇒   Pidgin

Windows  ⇒   Gajim   ⇒   Pidgin   ⇒   Miranda NG

Mac OS X:   ⇒   Gajim   ⇒   Pidgin   ⇒   Adium

Informationen zum Download und der Installation der einzelnen Apps oder Clienten finden sich auf den jeweiligen Projekt- und Entwicklerseiten. Und wer ein Linuxsystem nutzt, der wird in der Regel bereits einen XMPP-Clienten in der Paketverwaltung mitgeliefert bekommen, der dann problemlos und schnell zu installieren ist. Zu Gajim und Conversations, den beiden Clienten meiner Wahl, werde ich in Kürze in zwei weiteren Beiträgen aufzeigen, wie ich diese auf meinen Geräten installiert und zusammen mit der Ende-zu-Ende Verschlüsselung OMEMO eingerichtet habe.