XMPP hat in der Tat nichts mit XAMPP zu tun.Kief hat geschrieben: ↑22 Dez 2018 00:18 willst Du damit andeuten, dass ich mit so etwas wie XMPP WhatsApp nutzen kann, halbwegs?
Ohne die eklatanten Nachteile und Verstoesse in Kauf nehmen zu muessen?
Ist das ein Tippfehler, oder ein Unterschied zu XAMPP?
Ist das vielleicht doch nicht in der Versenkung verschwunden, sondern man kann Platform-uebergreifend sich ein zentrales Tool einrichten (lassen)?
Also, was ist XMPP eigentlich?
XMPP = „eXtensible Messaging & Presence Protocol“. Eine Ansammlung von freien (wie Freibier, wie Freiheit, wie freie Rede) Kommunikations-Standards, deren Hauptanwendungsgebiet (aber mitnichten einziges Anwendungsgebiet) das Instant Messaging ist, vulgo „Chat“, so etwas wie ICQ, Skype oder WhatsApp.
Diese RFC- und XEP-Standards, aus denen XMPP besteht, gehören keinem Unternehmen, keinem Konzern, keinem gar nichts. Die gehören allen und niemanden.
Hinter der ganzen Technologie steckt als Kontrollinstanz die sogenannte Internet Engineering Task Force – auch das ist keine Firma, die irgendwie Eigentümer von XMPP wäre – und als Entwickler sozusagen, wer auch immer gerade Zeit und Bock hat, die Implementation dieser RFC-Standards für Server und Clients zu programmieren.xmpp.org hat geschrieben:No one owns XMPP. It's free and open for everyone since 1999.
Jabber ist ganz einfach der alte Name der Anwendung als Instant Messaging, der aber nicht mehr verwendet wird, seit Cisco sich den Namen hat rechtlich schützen lassen für ein Tochterunternehmen namens Jabber, Inc. (Nein, auch Cisco gehört XMPP nicht.)
XMPP gibt es schon seit 1999, also seit beinahe 20 Jahren, in denen viele andere Dienste schon gekommen und gegangen sind. Damit ist es wahrhaftig uralt. Es mag zwar kein „neuer heißer Scheiß“ mehr sein, aber es ist eine zuverlässige Konstante im Instant Messaging. Es wird ständig weiterentwickelt, aber im wesentlichen in Form immer neuer Erweiterungen für neue Funktionen und Möglichkeiten (um die geht es ja bei XMPP), die an einen Kern angehängt werden, der nie komplett umgeworfen wird.
XMPP hat AIM, MSN und Yahoo! Messenger überlebt, und es wird auch ICQ, Skype und WhatsApp überleben. Es ist nämlich nicht möglich, es einfach einzustellen, weil es im Gegensatz zu diesen Diensten kein in sich geschlossener Monolith in den Händen eines einzelnen monopolistischen Betreibers ist.
Was hat es jetzt damit auf sich? Was ist daran so besonders?
XMPP an sich funktioniert erstens komplett mit Free Libre Open Source Software (Freier, Libre, quelloffener Software). Es gibt ein paar unfreie Closed-Source-Clients, die spielen aber keine große Rolle, weil man im allgemeinen die Wahl hat und auf den meisten Systemen auch einen freien, quelloffenen Client nehmen kann.
Zweitens ist alles dezentral aufgebaut. Es gibt nicht den einen zentralen Server, über den alles läuft, sondern haufenweise öffentliche Server, von denen viele von Privatleuten in ihrer Freizeit betrieben werden, also nicht einmal in Unternehmenshand sind – schon gar nicht alle in der Hand desselben Unternehmens. Ich möchte das gern mit WhatsApp vergleichen.
Bei WhatsApp meldet sich jeder, aber auch wirklich jeder User an bei:
- whatsapp.com
- jabber.org (so überlaufen, daß er meines Wissens keine Neuregistrierungen mehr zuläßt)
- jabber.ccc.de (betrieben vom Chaos Computer Club, allein von daher schon sehr vertrauenswürdig, aber auch sehr überlaufen)
- jabber.de
- hot-chilli.net (hat einige alternative Domains zur Auswahl)
- draugr.de (hat einige alternative Domains zur Auswahl)
- xmppnet.de
- jabjab.de (hat einige alternative Domains zur Auswahl)
- datenknoten.me
- ludenfabrik.de
- magicbroccoli.de
- und unzähligen weiteren Servern bei unzähligen weiteren voneinander unabhängigen Betreibern (ich hatte einfach keine Lust, die alle hier aufzulisten, um zu demonstrieren, wie groß die Auswahl ist)
- Einige E-Mail-Anbieter geben einem zusätzlich zum E-Mail-Konto auch noch ein XMPP-Konto (Freenet, Mailbox.org, früher auch GMX und Web.de).
Ist alles genau wie bei E-Mail. Da hat man ja auch die Wahl zwischen etlichen Betreibern (Gmail, Yahoo!, Outlook, GMX, Posteo, Protonmail usw. usf. etc. pp.) und nicht den einen großen Konzern, der das ganze System weltweit unter seiner Knute hat.
Genau deshalb sieht eine Jabber-ID auch aus wie eine E-Mail-Adresse: <Nutzername>@<Domain>.<TLD>. Das ist aber ebenso üblich im ganzen Federated Social Web, also bei dezentralen Mikrobloggingdiensten (z. B. Mastodon, Pleroma) und Social Networks (z. B. Diaspora*, Friendica, Hubzilla, Osada, Zap), wo man auch keine zentrale Serverstruktur hat und sich den Server aussuchen kann, bei dem man sich registriert. Weil aber jeder Name bei jedem Server einmal vorkommen kann, reicht der Name zur Identifikation im Netzwerk nicht aus. Daher wird die Domain des Servers (oder die vom Nutzer gewählte Domain, wenn ein Anbieter mehrere Domains zur Auswahl stellt) angehängt, abgetrennt durch ein @.
Drittens ist man weder als Anwender auf den einen Client (die eine „App“) festgelegt, schon gar nicht auf ein oder wenige Betriebssysteme, noch als Serverbetreiber auf die eine Serversoftware.
Bei WhatsApp hat man nur den einen hauseigenen Client (= „App“) und auch den nur für ausgewählte Betriebssysteme – reine GNU/Linux-User sind etwa komplett ausgeschlossen.
Bei XMPP kann man wieder auswählen (auch hier wieder nur ein Auszug, also keine vollumfängliche Liste; alle verlinkten Beispiele sind Freie Software und quelloffen):
- Pidgin (hieß ganz früher mal Gaim; Systeme: Windows, macOS, GNU/Linux [nutzt Gtk+ 2]; Multiprotokoll-Client, kann nicht nur XMPP, hat da aber nur Grundfunktionen)
- Adium (macOS only; basiert auf dem gleichen technischen Backend wie Pidgin und ist ihm daher sehr ähnlich, nur ausdrücklich an macOS angepaßt)
- Miranda NG (Nachfolger von Miranda (Windows only; Multiprotokoll-Client, kann im Gegensatz zu Pidgin auch von vornherein Discord und Tox)
- Psi (Systeme: Windows 64 Bit, macOS, GNU/Linux [nutzt Qt 5]; reiner XMPP-Client, aber sehr mächtig und für Anfänger wohl etwas überwältigend; wird relativ langsam weiterentwickelt)
- Psi+ (Systeme: Windows, macOS, GNU/Linux [nutzt Qt 5]; Fork von Psi, der rasend schnell weiterentwickelt wird und gegenüber Psi noch mächtiger ist)
- Gajim (Systeme: Windows [auch portabel; ich würde hier allerdings Psi+ bevorzugen], GNU/Linux [nutzt Gtk+ 3], FreeBSD; reiner XMPP-Client, mächtiger als Pidgin, aber weniger mächtig als Psi+ und in der Bedienung etwas unübersichtlich)
- Dino (System: GNU/Linux [nutzt Gtk+ 3]; noch junger, in der Entwicklung befindlicher, aber schon gut ausgestatteter reiner XMPP-Client)
- Conversations (Systeme: Android ab 4.0, verfügbar auch über F-Droid, also ohne Google-Zwang und im Gegensatz zum Google Play Store kostenlos, und läuft problemlos unter Sailfish OS mit Alien Dalvik; reiner XMPP-Client, für einen Mobilclient aber sehr mächtig und bekommt auch sehr häufig Updates)
- Xabber (System: Android, Mindestversion unbekannt; Xabber hat einen eigenen Server, funktioniert aber auch mit Fremdservern; auch über F-Droid verfügbar; soll wohl auch ziemlich leistungsfähig sein)
- Maemo und Sailfish OS haben einen simplen XMPP-Client eingebaut.
- iOS-User können ChatSecure verwenden.
- So manch ein Anbieter eines öffentlichen XMPP-Servers hat auf seinem Webauftritt auch einen Webclient.
- Die freien, dezentralen Social Networks Friendica, Hubzilla, wahrscheinlich auch Osada und Zap haben einen XMPP-Webclient als installier- und zuschaltbares Plugin – öffentliche Nodes/Hubs/... natürlich nur, wenn der Serverbetreiber das Plugin installiert hat.
- jabberd2 (das Urgestein)
- ejabberd
- Openfire (läuft unter Java, den Mehrbedarf an Rechenleistung muß man von daher mögen, kann aber mehr als jabberd2 und ejabberd)
- Tigase (läuft auch unter Java)
- Prosody (auch eine sehr mächtige Serveranwendung, geschrieben in Lua)
Was hat das jetzt alles für Vorteile?
Zunächst einmal ist XMPP in puncto Sicherheit, Datenschutz und Privatsphäre um Größenordnungen besser, als WhatsApp es je war und je sein wird. Dazu tragen drei der Grundfeatures bei:
- Grundsätzlich ist alles quelloffen.
(Nein, in Open Source Software kann man nicht mal eben unbemerkt Backdoors schmuggeln, schon gar nicht, ohne daß die eigentlichen Maintainers es bemerken. Jede Code-Änderung geht nämlich durch deren Hände und kommt nur rein, wenn sie es wollen. Und selbst wenn: Eine etwaige NSA-Backdoor ist in Psi+ oder Prosody, die beide 100% quelloffen und somit leicht zu analysieren sind, schneller gefunden als in Skype, dessen gesamte Technologie noch mehr geheimgehalten wird als hypermoderne Rüstungstechnologien.) - Dadurch, daß es so dezentral ist und es nirgendwo irgendeine Monokultur gibt, ist es noch viel schwieriger zu kompromittieren.
(Geheimdienste müßten hunderte, wenn nicht tausende laufende Instanzen von mehr als einem Dutzend XMPP-Serveranwendungen und auch einiges an Clients kompromittieren – und zwar sowohl jeweils bei den eigentlichen Herstellern als auch bei jeder einzelnen GNU/Linux-Distribution in den Paketquellen als auch die Installationen bei den typischen „Einmal installieren, für immer diese Version behalten“-Windows-Anwendern. Bei WhatsApp reicht es, die eine zentrale Serverfarm mit einer Backdoor zu versehen und vielleicht noch die zwei Clients, die dann ja überall automatisch aktualisiert werden.) - Überhaupt wäre durch das Dezentrale der Aufwand des Abschnorchelns von Daten und Kommunikation sehr viel schwerer.
(Bei WhatsApp horcht man eine zentrale Serverfarm aus. Bei XMPP müssen hunderte oder tausende Einzelserver auf der ganzen Welt – und zwar auch einige mit Serverstandorten wie Rußland oder China! – kompromittiert und abgehorcht werden.
Aber erstens ist der typische XMPP-Serverbetreiber kein durchtriebener Datenhehler, sondern ein Idealist. Er will sich nicht an Nutzerdaten bereichern, sondern die Welt ein kleines bißchen besser machen, indem er das XMPP-Netzwerk mit einem weiteren öffentlichen Server unterstützt. Er wird alles in seiner Macht Stehende dafür tun, um zu verhindern, daß seine Nutzerdaten irgendjemandem in die Hände fallen. Er selbst will sie auch nicht.
Zweitens wäre das verbunden mit aufwendiger Handarbeit. Es gibt für keinen XMPP-Server – zumindest für keinen der freien und quelloffenen – Datamining-Erweiterungen. Wenn es sie gäbe, wäre das a) bekannt und b) in den einschlägigen Geek- und FLOSS-Medien längst breitgetreten worden, denn jeder Serverbetreiber wüßte, daß es sie gäbe, und man würde diese Sauerei umgehend medial an die große Glocke hängen.
Drittens lohnt es sich nicht, weil dadurch, daß es derartig viele öffentliche Server gibt, pro Server nur relativ wenige Nutzer gibt. Auch die Gesamtzahl der Kontakte dieser Nutzer hält sich stark in Grenzen. Im Vergleich dazu kann man bei WhatsApp auf einer einzigen zentralen Serverfarm die Daten von Milliarden (!) Nutzern abgreifen – nämlich von ausnahmslos allen WhatsApp-Nutzern auf der Welt.
Viertens lohnt es sich auch deshalb nicht, weil bei XMPP die Nutzer selbst entscheiden, was der XMPP-Server über sie erfährt. Im Zweifelsfall erfährt der Server nicht einmal ihren Klarnamen, denn beim Registrieren bei einem Server muß man selbst einen Nutzernamen eingeben – und kann den frei wählen, solange der gewählte Name auf diesem Server/dieser Domain noch nicht belegt ist. WhatsApp bezieht dagegen die Nutzernamen vollautomatisch – und ohne daß man das unterbinden kann – aus den Daten, die es schon von anderen Telefonen abgeschnorchelt hat, und hat daher alle Namen, unter denen jemals irgendjemand, der WhatsApp nutzt, eure Telefonnummer in seinem Telefonbuch abgespeichert hat. Ach ja, XMPP kennt auch die Telefonnummern der Nutzer nicht. Die ist nämlich zum Registrieren nicht nötig. Wenn man will (und weiß, wie es geht, und einen Client nutzt, bei dem es geht), kann unter persönlichen Daten im Profil eine Telefonnummer angeben. Die ist aber höchstens interessant für die eigenen Kontakte.
Und fünftens beherrscht XMPP inzwischen drei verschiedene End-to-end-Verschlüsselungsverfahren, bei denen die Nachrichten sowohl durch den eigenen Server als auch durch den des Gegenüber verschlüsselt gehen. Das erste ist OpenPGP. Bei einem Chatsystem ist es ziemlich unpraktikabel, weshalb davon abgeraten wird, aber es geht. Das zweite ist OTR (Off The Record), das schon ausgefuchster und auf den Anwendungsfall besser angepaßt ist. Es macht es auch unmöglich, im nachhinein zweifelsfrei zu erkennen, wer in einer Konversation was gesagt hat, so daß jede Nachricht abstreitbar ist. Es ist nur leider inzwischen veraltet und nicht mehr ganz so sicher.
Das dritte ist OMEMO, das zuerst bei Moxie Marlinspikes zwar freiem und offenem, aber kompromißlos zentralistischem Instant-Messaging-Dienst Signal implementiert wurde – und bei XMPP jetzt beweist, daß entgegen Marlinspikes Behauptungen auch dezentrale Systeme vernünftig und zeitgemäß abgesichert werden können. OMEMO ist nicht nur sicherer und praktischer als OpenPGP und OTR, sondern auch noch wesentlich einfacher in der Benutzung: Man schaltet es einfach nur im Client ein und muß ab und an einen Schlüssel von einem Gegenüber in Empfang nehmen. Anfangs war OMEMOs Hauptproblem, daß nur wenige Clients es unterstützten. Inzwischen funktioniert es mit allen wichtigen reinen XMPP-Clients entweder „werksseitig“ oder per leicht zu installierendem und aktivierendem Plugin. Nur bei den Multiprotokoll-Clients wie Pidgin, Adium und Miranda (die sowieso nichts für Poweruser sind und mehr und mehr ihre Existenzberechtigung verlieren) unterstützen es nur experimentell oder gar nicht.
In der Gesamtzuverlässigkeit liegt XMPP klar vor allen kommerziellen Diensten. Der Grund ist ganz einfach: XMPP kann im Gegensatz zu etwa Skype oder WhatsApp nie als Ganzes ausfallen, weder regional noch weltweit. Dafür müßten schon zufällig sämtliche privaten und öffentlichen Server gleichzeitig offline gehen. (Noch einmal: Die haben alle voneinander unabhängige Betreiber.) Es gibt Leute, die schon deshalb mehrere XMPP-Konten haben, um sie auf mehreren Servern zu haben und im Falle eines Serverausfalls immer noch ein Reservekonto mit denselben Kontakten zu haben.
Zugegeben, einige von XMPPs Killerfeatures sind Fluch und Segen zugleich, je nachdem, von welcher Seite aus man es betrachtet.
Die ganzen Wahlmöglichkeiten etwa, also bei Clients und bei öffentlichen Servern, sind ein Beispiel dafür. Der Geek lobt die Auswahl und sagt, auf die Art gibt’s etwas für jeden Bedarf und Geschmack. Man bekommt eben nicht nur die eine Möglichkeit vorgesetzt und muß dann damit leben. Wie oft kam es schon vor, daß ganze Instant-Messaging-Dienste als „doof“ bezeichnet wurden, weil jemandem der offizielle Client nicht gefiel? XMPP hat eben nicht den einen offiziellen Client; man kann sich den aussuchen, der einem am besten gefällt.
Der Geek mag es auch, sich einen öffentlichen Server frei aussuchen zu können. Zuallererst sieht er sich die technischen Begebenheiten an, also Ausstattung, Zuverlässigkeit (Uptime bzw. Ausfälle in letzter Zeit) und Sicherheit. Und unter denen, die letztlich übrig bleiben, wählt er dann nach Standort (je näher, desto kürzere Pingzeiten, wobei wir hier um Millisekunden feilschen, die auch noch woanders verloren gehen können) und/oder Domain (bzw. verfügbaren Domains).
Genau das will aber der Nichtgeek nicht. Wählen zu müssen, ist schon schlimm genug bei E-Mail-Providern (Lösung: Alle™ nutzen Gmail) und Smartphones (Lösung: Alle™ kaufen iPhones oder Samsung Galaxy S). Und bei XMPP muß er mindestens zweimal wählen: einen öffentlichen Server, wo er sich registriert (die Lösung dafür endete letztlich damit, daß jabber.ccc.de so überlaufen ist, weil sich da fast jeder deutsche XMPP-Anfänger registriert hat), und mindestens einen Client – heutzutage eher mindestens zwei, einen für den Computer und einen fürs Smartphone. So manch ein Nichtgeek scheitert schon an dieser doppelten Auswahl, schmeißt die Brocken hin und geht zu WhatsApp zurück, dem ultimativen No-Brainer beim Instant Messaging.
Stichwort No-Brainer: Im Vergleich zu WhatsApp ist es aufwendiger, XMPP von null nach einsatzbereit zu bringen – aber zu bewältigen. WhatsApp installiert man einfach nur (es gibt nur die eine App), die App macht dann alles automagisch™ im Hintergrund ohne jegliche Form der (oder Chance auf) Interaktion durch den Nutzer, und wenn sie fertig ist, kann man sofort mit seinen schon im Telefonbuch vorhandenen Kontakten loschatten.
Bei XMPP kann man nach der Installation des Client (den man sich meistens erst aus mehreren aussuchen darf) erst einmal gar nichts. Man braucht dafür noch ein Konto bei einem Server (den man sich auch noch aussuchen darf). Zumindest ist es heutzutage bei vielen Clients so, daß man sich aus dem Client heraus ein Konto registrieren kann und das nicht vorher erledigen und dann das Konto im Client eintragen muß (kann man auch, muß man aber eben nicht mehr unbedingt). Das ist auch nicht mit einem Mausklick oder einem Bildschirmtap getan: Im Gegensatz zu WhatsApp braucht man einen Nutzernamen (den man sich auch noch ausdenken muß) und ein Paßwort (das man sich auch noch ausdenken und dann merken muß). Dem Nichtgeek ist aber jeder Handgriff lästig, den man im Vergleich zu WhatsApp mehr tätigen muß.
Dem Geek hingegen gefällt zunächst einmal die bessere Kontrolle über den Einrichtungsprozeß. Außerdem muß er ja nicht mit Klarnamen kommunizieren, denn den erfährt sein XMPP-Server ja nicht – woher auch, wenn er ihn nicht als Nutzernamen eingibt? (Das heißt, auch der Geek lobt den technischen Fortschritt, daß man heute bei XMPP-Clients nicht mehr die technischen Gegebenheiten der Server wie Port, Verschlüsselungsmethoden etc. händisch eingeben muß, weil die Server diese Daten mittlerweile an die Clients weiterreichen können, die nach Angabe der Serverdomain sich diese Daten besorgen und sich selbst einstellen.)
Dieses Prinzip hat noch einen viel größeren Vorteil: Im Gegensatz zu WhatsApp und etlichen anderen praktisch reinen Smartphone-Chatdiensten ist die eigene Identität nicht an die Mobiltelefonnummer gebunden – und schon gar nicht ans Gerät. Ich könnte meine sämtlichen XMPP-Konten allesamt gleichermaßen von drei oder vier Smartphones und mehr als einem halben Dutzend Computern aus nutzen. Ich könnte sie auch komplett ohne Smartphone nutzen.
Stichwort „meine sämtlichen XMPP-Konten“: Man kann nicht nur eines haben, sondern praktisch beliebig viele bei beliebig vielen Servern. Gute XMPP-Clients können problemlos mehrere Konten nebeneinander handhaben. (Natürlich kann man auch mehrere oder alle seine Konten bei einem und demselben Server haben. Allerdings ist neben mehreren getrennten Identitäten der zweite triftige Grund für mehrere Konten Redundanz in Form von Unabhängigkeit von etwaiger Downtime oder permanenter Abschaltung eines Servers. Und wenn man seine Reservekonten auf demselben Server hat wie seine Hauptkonten, sind die Reservekonten immer zusammen mit den Hauptkonten futsch.)
An dieser Stelle könnten technisch versiertere Leser die Frage stellen: „Wenn man Clients auf mehreren Geräten hat, die alle auf dasselbe Konto zugreifen, kommen die sich da nicht in die Quere?“ Daran ist natürlich gedacht. Bei guten Clients kann man nämlich zum einen eine sogenannte Ressource angeben, also eine Identität für diese Client-Instanz, und zum anderen eine Priorität, eine Zahl von –128 bis 127. Richtig gute Clients erlauben unterschiedliche Prioritäten je nach Status, also z. B. eine höhere Priorität für „verfügbar“ als für „abwesend“ oder „beschäftigt“. Was dann an die eigene Jabber-ID geschickt wird, landet normalerweise bei dem angemeldeten Client, der gerade die höchste Priorität hat. Haben mehrere Clients die höchste Priorität, bekommen sie die Sendung alle.
Mit den Ressourcen kann man aber die Prioritäten noch umgehen: Man kann nämlich, wenn man etwas verschickt, es nicht nur einfach an eine Jabber-ID schicken, sondern gezielt an eine Ressource unter dieser Jabber-ID. So kann man seinen Gegenüber ganz gezielt über einen bestimmten Client kontaktieren, auch wenn gerade ein anderer eine höhere Priorität haben sollte.
Wie ich oben schon andeutete, hat dieser ganze dezentrale Aufbau einen weiteren Vorteil: XMPP kann nie auf einen Schlag eingestellt werden. Es ist kein in sich geschlossenes Produkt irgendeiner Firma wie AOL, Microsoft oder Yahoo!, die irgendwann sagen kann: „Wir stellen das jetzt ein, es ist nicht mehr zeitgemäß/paßt nicht in unser Firmenportfolio/ist zu teuer im Betrieb/was auch immer.“ Wie gesagt, es gehört allen und niemandem, so daß es keine zentrale Instanz gibt, die darüber entscheiden kann, ob es weiter betrieben wird oder nicht. Allerhöchstens wird irgendwann einmal in ferner Zukunft der letzte öffentliche Server abgestellt – aber selbst das heißt nicht, daß nicht irgendjemand theoretisch einen neuen starten könnte.
Was hat XMPP sonst noch so zu bieten? Können da nur zwei miteinander chatten?
Mit Nichten und Tanten. Gerade beim Chatten merkt man irgendwann, daß die XMPP-Entwickler ein bißchen einen Hang zum Overengineering haben. Das muß aber nicht schlecht sein.
Gruppenchats gibt es selbstverständlich auch. Bei XMPP heißen sie Multi-User Chats. Sie zu initiieren, ist etwas schwieriger; dafür muß man erst auf einem Server einen Raum einrichten. (Lustigerweise muß das nicht der Server sein, bei dem man sein Konto hat.) Wenn man den hat, hat man (je nach Client) immense Möglichkeiten, vor allem Einstellmöglichkeiten, denn als Ersteller des Raums ist man automatisch auch Admin. Man kann ihn ähnlich betreiben wie damals bei MSN, also an sich ganz simpel, aber nur auf Einladung. Oder man betreibt ihn ähnlich einfach, aber komplett offen, so daß sich da jeder einklinken kann, der will (keine sehr gute Idee bei unmoderierten Räumen, aber technisch möglich). Man kann auch Moderatoren und sogar weitere Admins einrichten, was z. B. bei Support-Chats ganz sinnvoll ist. Man kann User bannen – sogar recht effizient, weil die ja nicht an ihrer IP-Adresse identifiziert werden, die sich ständig ändert, sondern an ihrer Jabber-ID. Von diesen Möglichkeiten her stehen die MUCs bei XMPP dem guten alten IRC in nichts nach, wenn man will. Aber man muß ja nicht.
Auch Sprach- und Videochats sind mittels einer Erweiterung namens Jingle implementiert. Das wird aber nicht von allen Servern und auch nicht von allen Clients unterstützt (wobei bei den Clients auch das immer mehr zu werden scheint) und ist wohl auch recht technisch. Ich selbst habe das noch nie genutzt. Jingle soll obendrein kompatibel zu SIP sein.
PubSub ist auch eine interessante Sache, die deutlich über Chats hinausgeht (XMPP ist ja eigentlich auch bedeutend mehr als nur Instant Messaging). Im Prinzip können über PubSub-Knoten Mitteilungen versendet werden, die dann von jedem empfangen werden, der den jeweiligen Knoten abonniert hat. Das klingt abstrakt, aber die Anwendungsmöglichkeiten sind so vielfältig wie das, was damit tatsächlich gemacht wird: Es fängt an mit Systembenachrichtigungen, z. B. vom jeweiligen XMPP-Server an dessen Nutzer, aber in Verbindung mit dem Personal Eventing Protocol (PEP, noch eine offizielle XMPP-Erweiterung) ist damit auch Microblogging à la Twitter möglich, und schon mindestens einmal wurde auf PubSub ein ganzes Social Network aufgebaut. Das klingt erst nach „weil es geht“, aber wenn man so darüber nachdenkt, ist ein Social Network, das man über einen Instant-Messaging-Client nutzen kann, recht charmant im Vergleich zu einem, für das man erst einen dicken Browser anwerfen muß.
Zu den zusätzlichen Informationen, die man über XMPP mittels PubSub und PEP publizieren kann (aber nicht muß), zählt auch, was man gerade tut (z. B. als Grund dafür, warum man gerade abwesend ist; Icon + Text, beides optional; es gibt etliche Voreinstellungen zur Auswahl), die momentane Stimmung (Emoticon + Text, beides optional), den momentanen Standort, ein Avatarbild natürlich, der momentan laufende Musiktitel (mit Verbindung zwischen diversen Clients und diversen Musikplayern, u. a. auch über MPRIS) oder eine generelle Statusnachricht (in einigen Clients kann man sich Statusnachrichten voreinstellen und sogar an einen Status koppeln). Anständige Clients erlauben all dies für alle Konten, kontoweise, kontaktgruppenweise oder sogar für einzelne Kontakte individuell.
Mit serverseitiger Unterstützung gibt es noch einige andere Funktionen, zu denen es Plug-ins für einige Clients gibt oder die sogar von vornherein unterstützt werden. Zur Grundausstattung guter Clients gehört die Möglichkeit, Dateien über XMPP zu übertragen. Dafür haben XMPP-Server Dateiübertragungsproxys, die man allerdings vorher händisch im Client einrichten muß. Einige Serveranbieter bieten auch einen Datei-Upload als Dienst (HTTP Upload, Jabber Disk) an, so daß man auf dem Server kurzzeitig Dateien parken und zum Download anbieten kann; ein Ersatz für einen Cloudserver ist das natürlich nicht gerade. Eine eigene Übertragungsmöglichkeit gibt es auch für Bilder, wobei sich auch da die möglichen Dateigrößen in Grenzen halten (bis 40 kB).
Als Client-Plugins findet man auch teilweise Erstaunliches. Für Gajim gibt es etwa ein interaktives Whiteboard oder Tic Tac Toe; für Psi+ gibt es ein Schachspiel, Schiffe versenken ist in Entwicklung.
Last but not least sei die Konnektivität zu ganz anderen Diensten erwähnt, die in Form sogenannter Transports geschieht, die wiederum serverseitig laufen. Das heißt, man kann aus XMPP heraus bei ganz anderen Diensten teilnehmen. Auch das reduziert im Grunde die Notwendigkeit von Multiprotokoll-Clients, weil man dank der Transports in reinen XMPP-Clients nur über XMPP-Konten auch noch andere Dienste nutzen kann.
Heute noch gibt es Transports beispielsweise zu anderen, abgeschotteten XMPP-Anwendungen, zum IRC, zu ICQ (ich wäre mir da nicht so sicher, daß es ICQ mit der aktuellen Protokolländerung gelungen ist, alle inoffiziellen Clients für immer auszusperren) oder zu Gadu-Gadu. Früher kamen dazu noch MSN, AIM und der Yahoo! Messenger, die es aber alle nicht mehr gibt; es ist ihnen aber nie gelungen, die XMPP-Transports permanent abzuschütteln. Inzwischen gibt es sogar einen WhatsApp-Transport, der aber relativ sinnlos ist, weil er nicht ans eigene Smartphone gebunden werden kann, sondern ein eigenes WhatsApp-Konto benötigt.
Einerseits braucht man auch beim jeweils anderen Dienst ein Konto, um sich dort einbinden zu können. Andererseits aber ist man auch bei den Transports nicht darauf angewiesen, daß sie auf dem Server installiert sind, bei dem man registriert ist – man kann auch solche von ganz anderen Servern nutzen.
Weitere mögliche „Verbindungen nach außen“ umfassen unter anderem einen Twitter-Bot (read-only, soweit ich weiß, braucht aber kein Twitter-Konto) und einen News-Aggregator für RSS und Atom.
Klingt interessant, wie steige ich am besten ein?
Grundsätzlich braucht man für XMPP zwei Dinge: ein Konto bei einem Server und auf jedem Gerät, mit dem man XMPP nutzen will, einen Client.
Der erste Schritt wäre also, sich einen Server auszusuchen. Informationsquellen über öffentliche Server sind:
- die Liste auf jabber.at – hier sieht man den nationalen Standort auf einen Blick, außerdem, wie lange es den Server schon gibt (Langläufer werden höchstwahrscheinlich nicht so schnell wieder verschwinden, wobei der recht große i-pobox dieses Jahr aufgrund der DSGVO nach 15 Jahren aufgehört hat), und woher das SSL-Zertifikat des Servers kommt
- die Liste auf jabberes.org – hier sieht man den Standort meistens, indem man mit dem Mauscursor über dem Namen schwebt, außerdem die Ausstattung der Server und die Uptime in Prozent; einige eingetragene Server sind aber seit Jahren offline, die Liste selbst scheint um ein paar Jahre veraltet zu sein, und einige Angaben (z. B. MSN-Transport, AIM-Transport, Y!M-Transport, vielleicht bald auch ICQ-Transport) sind längst irrelevant
- Das IM Observatory der XMPP Standards Foundation hat auch eine Liste, die aber momentan nicht zu funktionieren scheint.
- Das IM Observatory hat aber auch die Möglichkeit, die Verschlüsselung bei XMPP-Servern zum Client oder zu anderen Servern zu testen, falls man da eher vorsichtig ist. Es dauert allerdings einige Minuten, bis der Test durchgelaufen ist, es ist also Geduld vonnöten.
- XMPP Compliance Tester – zeigt auf, bei welchen öffentlichen Servern welche wichtigen Erweiterungen vorhanden sind und welche nicht
- Hot-Chilli (Deutschland, Prosody, existiert seit 2006, hat diverse Domains zur Auswahl, Registrierung auf der Website empfohlen)
- JabJab.de (Deutschland, ejabberd, existiert seit 2005, hat diverse Domains zur Auswahl, Registrierung auf der Website empfohlen)
- Draugr.de (Deutschland, ejabberd, existiert seit 2005, hat diverse Domains zur Auswahl, Registrierung auf der Website empfohlen)
- xmpp.is (Deutschland, Prosody, existiert seit 2015, funktioniert auch über Tor, hat sechs Domains zur Auswahl, Registrierung nur auf der Website möglich)
- Jabber.at (Österreich, ejabberd, existiert seit 2014, hat mindestens drei Domains zur Auswahl, Registrierung auf der Website empfohlen)
- Jab.im (Schweiz, Serversoftware momentan unbekannt, existiert erst seit 2018, sehr auf Sicherheit und Datenschutz bedacht)
Psi und Psi+ dürften gerade den Einsteiger zu sehr erschlagen, der weiter entwickelte Psi+ noch mehr, während der originale Psi in der Entwicklung zu sehr hinterherhinkt. Vor allem für GNU/Linux mit Qt-basierten Oberflächen (KDE bzw. Plasma, Razor-Qt, LXQt) wäre er trotzdem meine Empfehlung, ebenso für Poweruser und solche, die es gern wären und sich das zutrauen. Gerade Psi+ ist überwältigend ausgestattet und sehr umfangreich im Einstellungsfenster konfigurierbar.
Nutzer von Windows, macOS und vor allem GNU/Linux mit Gtk+-basierten Oberflächen (Gnome, MATE, Cinnamon, Xfce, LXDE etc.) sollten sich vielleicht eher Gajim ansehen. Für den Poweruser ist Gajim etwas sehr verquast in der Bedienung, seit er auf Gtk+ 3 umgestellt wurde, und gewisse Einstellungen wie Datenübertragungs-Proxys oder die Prioritäten je nach Status (im Gegensatz zu Psi+ nicht kontenübergreifend, sondern sechs Prioritäten pro Konto) gehen nur über die erweiterten Einstellungen, die ein bißchen an about:config im Firefox erinnern. Aber Einsteiger werden von ihm wahrscheinlich nicht so überwältigt wie von Psi+. Ich selbst nutze Gajim nur unter GNU/Linux, so daß mein wenig beeindruckender letzter Test unter Windows (wo ich Psi+ nutze) schon länger zurückliegt; möglicherweise hat sich Gajim unter Windows merklich verbessert. Und Gajim kann alles, was ein guter XMPP-Client können muß.
Android-Nutzern kann ich Conversations empfehlen. Achtung: Installiert ihn euch lieber über F-Droid, da ist er im Gegensatz zum Google Play Store kostenlos. (Als Android-Nutzer sollte man sowieso F-Droid haben, finde ich.)
Das Einrichten von Konten im Client geht heutzutage relativ simpel. Abgefragt wird entweder der Nutzername und die Domain separat oder beides zusammen als Jabber-ID. Wenn der Client die Domain weiß, stellt er sich ansonsten selbst ein. Dann fehlt nur noch das Paßwort (einige Clients stellen einen sogar vor die Wahl, ob man es im Client hinterlegen oder jedes Mal eingeben will).
Um Kontakte muß man sich letztlich leider selbst kümmern, die findet XMPP nicht von allein. Hinzugefügt werden Kontakte somit auch nicht vollautomatisch (wie auch), es ist trotzdem kein Hexenwerk: Jeder Client hat einen Dialog zum Hinzufügen von Kontakten, in dem wieder die Jabber-ID des Kontakts abgefragt wird. Wenn man die eingetragen hat, wird der Kontakt dem eigenen Roster zugefügt. (User mit mehreren Konten seien an dieser Stelle hingewiesen, darauf zu achten, Kontakte auch zum richtigen Konto hinzuzufügen.)
Du nutzt selbst auch XMPP?
Sagte ich doch. Meine ID findet ihr in meinem Profil. Wenn ihr sie da nicht findet, fragt mich.