Benutzer-Werkzeuge

Webseiten-Werkzeuge


Chatten über RKor.Info

Warum nicht Whatsapp?

Ich habe hier, hier oder hier unter Kormann.Info schon dargelegt, warum die im Internet am weitesten verbreiteten Instant Messenger und sozialen Medien für mich nicht in Frage kommen. Die Stärken des Internets sind offene Standards und seine dezentrale Struktur, die durch Whatsapp und Facebook mit Füssen getreten werden.

Ein demokratischer Messenger für alle ist nicht Whatsapp, sondern basiert zum Beispiel auf XMPP. Dann ist der Chatter Kunde und nicht Ware.

Wie funktioniert es?

Das Extensible Messaging and Presence Protocol XMPP ist ein quelloffener Standard mit einer Server/Client-Architektur ganz analog zu Whatsapp – technisch und historisch richtiger wäre es umgekehrt – mit dem kleinen aber feinen Unterschied, dass es keine zentrale Anlaufstelle, sondern viele Server gibt. Wer Messages verschicken möchte, kann sich einen XMPP-Client – analog zum Beispiel zur Handy-App Whatsapp – besorgen, sich bei einem Server seiner Wahl anmelden und den Kreis der Chatter erweitern.

Die Registrierung: Jabber Identifier

Ihre Registrierung – hier bei RKor.Info – entspricht der Erstellung eines persönlichen Jabber Identifiers JID (mit Passwort), in meinem Fall robert@rkor.info, also der Nutzer (Node) robert auf der XMPP Domain rkor.info. Ein anderes Beispiel ist rokoinfo@jabber.de, der Nutzer rokoinfo auf dem Server oder besser der Domain jabber.de.

Die Struktur einer JID ist also analog zu einer Emailadresse, sie könnte theoretisch gleich sein (das gab es mal), muss aber nicht.

Die Grundlagen

Die Basisfunktion von XMPP ist der Chat oder das Gespräch zwischen zwei Teilnehmern oder JIDs, die nicht notwendigerweise in der gleichen Domain liegen müssen. Spricht also robert@rkor.info mit rokoinfo@jabber.de, so verbindet sich mein Client oder meine Benutzeroberfläche mit dem Server RKor.Info. Dieser leitet die Nachricht weiter an die Domain Jabber.de, und dieser an den dortigen Teilnehmer rokoinfo@jabber.de. Das geht selbst dann, wenn letzterer gerade nicht online ist: Die Nachricht wird einfach so lange auf einem Server von jabber.de zwischengespeichert.

Letztendlich ist das identisch zu den aus XMPP entwickelten proprietären Lösungen Whatsapp oder Google Talk (jetzt Teil von Hangouts), es gibt bei diesen lediglich sehr zur Freude der NSA, des BND und der Firmen selbst nur einen Server – genauer riesige Serverfarmen – und damit ein geschlossenes Ökosystem. Dessen Daten lassen sich wunderbar abgreifen und analysieren.

Der Multi-User Chat stellt bereits eine Erweiterung XEP-0045 des XMPP-Protokolls dar. Darin können sich mehrere JIDs – auch nicht notwendigerweise aus einer Domain – unterhalten, ganz analog zum älteren Internet Relay Chat IRC. Es ist wie das Gemurmel in einer Lobby, in meinem Beispiel lobby@chat.rkor.info.

XMPP Clients

XMPP Clients gibt es fast wie Sand am Meer, entweder als Browseranwendung, also einem Web Client, oder als Programm oder neudeutsch App.

Auf dem Server RKor.Info ist der Web Client Converse installiert, bei dem Sie sich mit einer JID aus der Domain RKor.Info anmelden können. Der MUC lobby@chat.rkor.info, »Roberts Lobby« steht allen offen.

Empfehlenswert sind für Windows Pidgin, für Linux Gajim oder Pidgin, und für Android Conversations. Sie unterscheiden sich neben den unterschiedlichen Rechnerplattformen noch in ihrem Funktionsumfang und ihrer Anwenderfreundlichkeit. Letzterer ist der anwenderfreundlichste, bei den Lösungen für PCs geht die Flexibilität und Funktionenvielfalt immer etwas auf deren Kosten.

Auf Basis von GTK+/Vala entsteht Dino, ein sehr moderner und stylischer Client, zunächst für die Linux-Welt. Obwohl er schon recht gut funktioniert, kann ich ihn mit Stand Mai 2018 nur mit der Einschränkung empfehlen, dass einige relevante OMEMO-Funktionalitäten bisher nicht umgesetzt sind.

Diese nativen Programme können sich außerdem JID und Passwort merken, so dass Sie sich im Gegensatz zum Web Client nicht jedes Mal selbst einloggen müssen. Das übernimmt der Client.

Noch Fragen? Die FAQs

Registrierung

Q Es klappt einfach nicht: Ich kann mich nicht registrieren!

Q Ich kann den angegebenen Link zur Registrierung nicht erreichen.

Converse

Q Ich kann mich über Converse nicht einloggen.

Q Ich kann JIDs unter »Alle« nicht löschen.

Q Mein neu angelegter Kontakt erscheint unter »Unbestätigte Kontakte«. Was bedeutet das?

Q Ich würde die Kontakte unter »Ungruppiert« gerne anders organisieren. Wie geht das?

Q Ich würde gerne Bilder oder Dateien an meinen Kontakt senden. Wie geht das?

Q Kann ich meine Nachrichten Ende-zu-Ende verschlüsseln?

Sonstiges

Q Gibt es eigentlich noch andere sinnvolle Messaging-Lösungen?

Zur Technik

Der XMPP Server von RKor.Info

RKor.Info nutzt eine der am weitesten verbreiteten XMPP Serversoftware, ejabberd. Sie ist so eingestellt, dass Sie sich selbst registrieren können. Der Node muss dabei mindestens vier Zeichen umfassen. Sie können aus Gründen der Sicherheit in einem bestimmten Zeitintervall nur eine begrenzte Anzahl an Registrierungen vornehmen.

Wenn Sie offline sind, merkt sich der Server bis zu 1000 Mitteilungen an Ihre JID. Sie können außerdem von verschiedenen Clients – zum Beispiel Web, Handy und PC – gleichzeitig und mit der gleichen JID angemeldet sein. Die unterschiedlichen Clients verlängern die JID nach einem Schrägstrich um die »Resource«, also zum Beispiel robert@rkor.info/conversations. Sie können einen Chat am Rechner beginnen und ihn nahtlos im Bus am Handy weiterführen.

Verschlüsselung

»Post Snowden« spielt Verschlüsselung eine immer größere Rolle. Der MUC lobby@chat.rkor.info gilt dabei als unverschlüsselt, was nicht heißt, dass Ihre Mitteilungen unverschlüsselt über das Internet transportiert werden. RKor.Info erzwingt die Verschlüsselung zwischen Client und Server ganz analog zu HTTPS. Die Verschlüsselung für Verbindungen von Server zu Server wird nicht erzwungen, sie ist aber der Regelfall. Auf dem Server liegt Ihre Mitteilung aber unverschlüsselt vor, was grundsätzlich ein Mitschneiden der Chats auf dem Server erlauben würde, aber bei RKor.Info nicht gemacht wird. Was soll ich auch mit den Daten?

Das können Sie nun glauben, müssen Sie aber nicht. Abhilfe schaffen Ende-zu-Ende Verschlüsselungen wie OMEMO (Are we OMEMO yet?), OpenPGP oder OTR. Die Verschlüsselungsprotokolle müssen dabei immer von beiden Clients beherrscht werden. Die älteren Verfahren OTR und OpenPGP haben gegenüber dem modernen OMEMO einige Einschränkungen. Der oben beschriebene Pidgin spricht alle drei Verfahren über Plugins, Gajim über Plugins und Conversations sprechen OpenPGP und OMEMO (Stand: April 2018).

Für wirkliche Ende-zu-Ende-Verschlüsselung mit OMEMO müssen Sie die Identität der Geräte eines Teilnehmers über deren Fingerprints überprüfen. Für meine JID robert@rkor.info lauten die OMEMO Fingerprints (Stand: April 2018, als QR Code hinter den Programmnamen):

Gajim 978D5766 39E8C26A A7C41925 FD664B51 211C7949 383D967F F979AF27 CC34E60F

Conversations A5A759E5 032BFCDF A2536622 7F87D4AA 6DE801AC 6C66577C DDC2BB5F 516C8163

Pidgin 6F811C34 11ABDB23 61C05DA2 4A8847B5 F41D645E D184567C D1638D81 57FDEF38

Dino 7D245B40 D4F05545 F9E33A5C 9D23EF1C AE43DA90 85F67E9D D5A4E80D 0ADA8F25

Dateiübertragung

Neben den reinen Mitteilungen lassen sich auch Bilder oder allgemein Daten über einen XMPP-Server übertragen. Im Fall von RKor.Info funktioniert dies über einen verschlüsselten HTTP Upload (XEP-0363). Ihr Upload (max. 256 MiB) liegt über einen begrenzten Zeitraum (24 Tage) auf dem Server und kann von dort durch den Client des Gesprächspartners verschlüsselt wieder heruntergeladen werden. Die XMPP Clients unterstützen dabei, und der Server erzeugt ab einer gewissen Bildgröße ein verkleinertes Abbild, also ein Thumbnail.

Viel Spaß beim Chatten!

Anhang: Für Neugierige hier noch mehr »Tech Sprech«

  • Weiterführende Links zum Thema XMPP finden Sie im Wiki unter Kormann.Info.
  • Sehr kenntnisreich und gut lesbar ist The State of Mobile XMPP in 2016 des Hauptentwicklers von Conversations, Daniel Gultsch.
  • Ein schön gemachtes Tutorial (20min Film) des Konkurrenzprodukts Tigase erklärt den Informationsaustausch (XMPP-Protokoll) zwischen Client und Server.
  • Theoretisch kann ein XMPP Client seinen Benutzer über neue Nachrichten informieren. Technisch nennt sich das Server Push, und ist grundsätzlich in XMPP kein Problem. Kniffelig wird das allerdings auf Handys durch die Beschränkungen der Hersteller, siehe dazu »An Excurse on Push« in obigem Artikel von Daniel Gultsch. Auf Android kann man die App Conversations für Benachrichtigungen freischalten und erhält die Hinweise des Servers, nicht aber auf iOS. Das Modul mod_push ist aber unter RKor.Info wegen »Kniffeligkeit« und begrenzter Testmöglichkeiten nicht installiert, sorry.
  • Dateiübertragung: Ihre übertragene Datei oder Ihr Bild liegt für den oben angegebenen Zeitraum verschlüsselt auf dem Server, unverschlüsselt ist lediglich der Dateiname. Das OMEMO Plugin von Gajim reicht den Inhalt des Links aber ohne Entschlüsselung – häufig ein Bild an den Bildbetrachter – weiter. Der ImageDownloader von Daniel Gultsch liefert einen Ausweg.
  • Android Conversations startet den Dienst XmppConnectionService, dessen irregulärer Abbruch zum Verlust von Nachrichten führen kann. Also Vorsicht mit dem »Abschiessen« von Conversations.