XMPP / Jabber

TL;DR

Ganz kurze Zusammenfassung am Anfang

Nutzt XMPP (derzeit noch besser bekannt unter dem veralteten Namen "Jabber"), es hat durch einige Erweiterungen nun das Potential, endlich wieder eine dezentrale Lösung mit den Features der bekannten kommerziellen Messenger-Ökosysteme zu werden.

Ein bisschen genauer vielleicht?

Einen entsprechenden Client vorrausgesetzt, kann man mit XMPP mittlerweile:

Welche Software kann das?

Server-Betreiber sollten ihre ejabberd- und prosody-Installationen auf den neusten Stand bringen, der beste Client für Android (und derzeit überhaupt) ist conversations, auf dem PC lässt sich gajim verwenden, und Mac/iOS User schauen derzeit leider noch in die Röhre (Apple-Entwickler vor, conversations im Android-Lager macht es vor und boomt gerade vor sich hin!)

Welche konkreten Server können das?

Ich selbst betreibe unter den Domains postadigitale.de / postadigitale.org / xmpp.postadigitale.org einen XMPP-Server, letztere ist frei für Registrierungen für Jedermann. Auf diesem Server habe ich alle genannten Erweiterungen aktiviert, die Registrierung funktioniert "In-Band" über einen XMPP-Client auf dem Handy oder PC, oder über das Webinterface rechts unten auf dieser Seite ("Kontakte"). Eine Liste weiterer, offener XMPP-Server folgt hier (ohne Anspruch auf Vollständigkeit, Ergänzungsvorschläge gerne an mich):

Instant Messaging - eine Bestandsaufnahme

Vielen Leuten ist Jabber (oder XMPP, wie man heutzutage korrekterweise sagt) entweder gänzlich unbekannt, oder noch aus dem vergangen Jahrzehnt bekannt. Heutzutage kommunizieren die Leute eher über den Facebook-Chat, WhatsApp, Hangouts oder auch über sogenannte "Crypto-Messenger" wie Signal, Telegram und Threma. Dass es bei dieser unheimlichen Zersplitterung in verschiedene, in sich abgeschlossenen Kommunikations-Ökosystemen tatsächlich noch einen offenen Standard gibt (der interessanterweise bei fast allen der oben genannten Apps und Chatsysteme im Hintergrund werkelt), wird oft vergessen. Manchen wird bekannt sein, dass sich der Vorläufer von Hangouts, Google Talk, noch mit anderen XMPP-Servern verbinden ließ, oder dass man XMPP-Clients wie beispielsweise pidgin sich für das Chatten über Facebook eigneten. War XMPP immer mehr ein Protokoll für Nerds und Geeks während der Rest bei ICQ abhing, setzen nun quasi alle Smartphone-Nutzer ohne es zu wissen auf dieses flexible Protokoll. Geschätzt wird bei diesen Apps der unkomplizierte Austausch in Direkt-Chats und Gruppen, gerne mit vielen Bildern und anderen multimedialen Inhalten und spätestens seit den Snowden-Enthüllungen auch die Möglichkeit, hoffentlich sicher Ende-zu-Ende-Verschlüsselt zu kommunizieren.

XMPP noch eine Chance geben!

Der allergrößte Nachteil beim oben diskutierten Ist-Zustand, ist die Zersplitterung in verschiedene Ökosysteme, dicht gefolgt von der Kopplung an einzelne Kommerzielle Anbieter. Würde man anstelle von einzelnen, geschlossenen Ökosystemen wieder auf den zugrunde liegenden offenen Standard mit interoperablen Servern setzen, ergäbe sich für alle Anweder der Vorteil, auch mit Nutzern anderer Server kommunizieren zu können. Wie so etwas aussehen kann, sehen wir bei der E-Mail: viele kommerzielle Anbieter und auch einige kleine Anbieter bieten Postfächer an, trotzdem bleiben alle E-Mail-Nutzer untereinander erreichbar.

Aber XMPP, das war doch so unpraktisch und hat nie richtig funktioniert

Viele der ehemaligen XMPP-Nutzer werden sich noch an die komplizierte Konfiguration von "Prioritäten" erinnern, die gerne dazu führten, dass ein falsch konfigurierter Client (vielleicht auf dem heimischen Rechner) alle Nachrichten abfing, die man eigentlich am Smartphone oder Laptop unterwegs lesen wollte. Wenn nun noch OTR als beliebte Verschlüsselungslösung hinzukam, führte dieses häufig in ein heilloses Chaos.

Message Carbons (XEP-0280), Message Archiving (XEP-0136), OMEMO

Für die hier genannten Probleme gibt es jedoch bereits Lösungen, in Form von sogenannten XMPP Extension Protocols (kurz XEP). Message Carbons synchronisieren Konversationen auf mehrere Clients (wie von Skype bekannt), inklusive der eigenen Gesprächsbeiträge. Das Message Archiving XEP legt auf Wunsch eines Clients direkt auf dem XMPP-Server ein Archiv von Nachrichten an, welches beim Online gehen eines anderen Clients abgefragt werden kann, sodass auch hier ein früherer Gesprächsverlauf einfach nachvollzogen werden kann. Wer sich nun ein wenig mit "Off-the-Record Messaging" (kurz OTR) auseinandergesetzt hat, wird feststellen, dass dieses bei der Verwendung mehrerer Clients nicht funktionieren kann und dass sich ein Nachrichten-Archiv und Message-Carbons allenfalls mit den selben Schlüsseln auf allen Geräten erreichen lassen. Aber auch hier hat sich ein neuer Axolotl basierter Verschlüsselungs-Standard gefunden, der auf den Namen "OMEMO Multi-End Message and Object Encryption" (kurz OMEMO) hört. Auf der Webseite des Entwicklers von OMEMO gibt es eine schöne Tabelle, welche einen Vergleich zwischen dem ebenfalls etwas seltener für XMPP genutzten OpenPGP, OTR und OMEMO anstellt.

HTTP File Upload (XEP-0363)

Manch einer mag sich daran erinnern, dass gerade der Dateiversand mit XMPP ein großes Dilemma war. Dies hing damit zusammen, dass das ursprüngliche Protokoll den Dateiversand direkt zwischen den Clients vorsah und der XMPP-Server nur als Mittler zwischen den Clients stand. In der Praxis hat quasi jeder IPv4 Internetanschluss einen NAT Anschluss, IPv6 kommt gerade erst ins Rollen. Automatischer Dateiversand direkt durch zwei NATs hindurch erscheint kompliziert, durch Techniken wie STUN und TURN (letzteres ist quasi ein Server im Internet, der Daten vom Sender direkt an einen Empfänger weiterleitet) machten dieses letztendlich theoretisch möglich, doch dieses war selten korrekt konfiguriert und funktioniert im Falle von XMPP auch nur zwischen genau zwei Kommunikationspartnern, die zur selben Zeit online sein müssen. Mit dem XEP HTTP File Upload ist auch hier Abhilfe geschaffen: ein XMPP Client kann nun über den XMPP-Server vermittelt einen sogenannten "Upload-Slot" erfragen, eine Datei hochladen und einen oder mehreren Empfängern (siehe Multi-User-Chats) Dateien zustellen.

Jetzt mal Butter bei die Fische, ich will das haben, wer kanns?

Nun kommen wir zum großen ABER...

Server-Support

Einige öffentlich zugängliche XMPP-Server bieten bereits Unterstützung für die genannten XEPs, die aktuellen Versionen der beiden großen und bekannten XMPP-Server ejabberd und prosody haben den Support für diese Erweiterung entweder direkt im Core, oder es werden Plugins für die Erweiterungen bereitgestellt. Viele Server-Betreiber müssten einfach nur Updaten oder gar nur die entsprechenden Optionen aktivieren...

Client-Support

Für den Endanwender besonders interessant (ein passender Server ist ja leicht gefunden...) ist der Client-Support. Die Auswahl ist zugegebenermaßen sehr spärlich, gerade das Apple-Universum ist (zumindestens meines Wissens nach) mit den neuen Features nicht repräsentiert. Aber wie man an Conversations sieht: Apple-Developer: schreibt einen coolen Client "mit Soße und Scharf", und die User werden ihn Euch aus den Fingern reißen!
Android (und BlackBerry OS10)
Conversations
Wer Besitzer eines Android-Telefons (gilt auch für die Android-Emulation im BlackBerry-OS) ist, kann den meiner Meinung nach derzeit besten Client für XMPP überhaupt verwenden: conversations unterstützt alle oben genannten Erweiterungen und Features, der ebenfalls oben erwähnte, auf Axolotl basierende, neue Verschlüsselungs-Standard OMEMO ist gar vom Entwickler von conversations vorgeschlagen worden. Die Software ist Open-Source, wird sehr aktiv auf github entwickelt, kann aber auch im Google PlayStore sowie im Amazon AppStore käuflich erworben werden.
PC (Linux/Windows)
gajim
Für den PC unter Linux und Windows ist derzeit gajim mein unangefochtener Favorit. Anders als Pidgin unterstützt er die wichtigsten diskutierten Erweiterungen (Message Carbons, Message Archive) und hat Erweiterungen für HTTP File Upload und derzeit noch sehr Experimentell auch für OMEMO.
Sonstige
converse.js
Der javascript-Webchat converse.js unterstützt immerhin Message Carbons und Message Archive und ist so ein passabel funktionierender Notnagel.

Aber aber…

…was Du da schreibst ist Quatsch

Ich habe mir zwar Mühe gegeben, aber ich irre mich regelmäßig. Für Feedback erreichst du mich via XMPP unter xmpp://bammes@postadigitale.de oder siehe im Impressum.

Du hast hier nen Client übersehen

Auch das kann sein, schreibs doch ins Internet, oder erreiche mich ebenfalls via XMPP unter xmpp://bammes@postadigitale.de oder siehe im Impressum.

Weiterführende Links