Skip to main content

Chatten für Fortgeschrittene

Für jeden von uns ist es selbstverständlich Emails zwischen verschiedenen Anbietern hin und her senden zu können. Gmail 'spricht' dabei problemlos mit GMX oder Yahoo oder sogar dem eigenen Mailserver. Auch die freie Wahl des Email-Programms ist dabei kein Hindernis: ob Outlook oder Thunderbird - jede Email kommt problemlos beim Empfänger an. Warum sollte das nicht auch mit Kurznachrichten gehen? Es geht! Mit XMPP/Jabber.




Für Ungeduldige: Ist mir zu viel Text! Was brauche ich um loszulegen?
1.) Konto anlegen hier oder hier.
2.) Chat-Programm für Android runterladen



Das Internet basiert auf Offenheit nicht auf Abschottung

Emails werden seit den Anfängen des Internets über ein simples Protokoll von Server A zu Server B versendet. Es bedarf lediglich der Angabe der Empfänger und schon geht eine Mail von bob@gmx.de an alice@jabber.org. Bob und Alice dürfen auch noch selbst entscheiden, welches Mailprogramm sie dazu nutzen. Sollte eine Mail nicht zugestellt werden können, bekommt der Absender eine entsprechende Fehlermeldung.

Das funktioniert deswegen so gut, weil zum Zeitpunkt der Entstehung dieser Form der Kommunikation, ein großes Interesse der einzelnen Teilnehmer bestand, möglichst viele neue Teilnehmer zu gewinnen. Kommerzielle Interessen spielten keine Rolle.

Heute würde niemand akzeptieren, ein Konto bei GMX und bei Google und bei Hotmail und bei ... anlegen zu müssen, nur um mit den Leuten kommunizieren zu können, die eben bei diesen Anbietern ihre Mailadresse haben. Schließlich kann man auch mit einem LG-Handy und einem Vodafone-Vertrag ein HTC-Handy anrufen, welches im E-Plus Netz Daheim ist ;)

Was bei Email und Telefon selbstverständlich ist, ist bei den meisten Anbieter von Instant Messaging schlicht unmöglich!

Ein Whatsapp-Client kann nur mit Whatsapp-Clients desselben Anbieters kommunizieren. Eine Whatsapp-Nachricht an einen Google-Hangout-Teilnehmer ist genauso wenig möglich, wie die eines iMessage an Threema oder Skype, oder wie die ganzen Anbieter heißen...

Hinter diesem Dilemma steckt nicht etwa eine technische Unmöglichkeit, sondern lediglich der Unwille der Anbieter. Es geht darum, möglichst viele Nutzer an das eigene System zu binden - Kundenservice ist nicht vorgesehen. Die Nutzer dieser Dienste sind, wie so oft bei kostenlosen Angeboten gewinnorientierter Unternehmen, keine Kunden, sondern selbst das Produkt! Also weg damit ;)






Technisch wäre es kein Problem hier die Interoperabilität zu ermöglichen. Ob Facebook-Chat, WhatsApp, Google-Talk, MSN oder Threema - alle diese Apps setzen auf das XMPP-Protokoll.

XMPP ist ein offener Standard, wie eMail oder wie das HTTP-Protokoll, auf dem das WWW basiert. Es existieren für fast jede Programmiersprache und alle Betriebssysteme fertige Bibliotheken, welche die Implementierung eines solchen Chat-Programms sehr einfach und billig machen. Genau diesen Vorteil nehmen die kommerziellen Anbieter auch gerne mit. Die Schlüsselfunktionalität von XMPP, die Kommunikation zwischen den einzelnen XMPP-Servern deaktivieren sie jedoch.

Soviel zu den schlechten Nachrichten - die gute Nachricht ist, man kann auf all diesen Quatsch ohne Einbußen verzichten. Dank freier Software und frei verfügbaren XMPP-Servern kann jeder selbst die von eMail und Telefon bekannte Interoperabilität auch für Kurznachrichten wieder herstellen!

Ich möchte hier meine langjährigen Erfahrungen mit der XMPP-Kommunikation leicht verständlich beschreiben.

Das wichtigste vorab: entscheidet Ihr Euch für ein freies Kurznachrichten System, müsst Ihr auf keine Funktionen verzichten und gewinnt noch den Schutz Eurer Privatsphäre hinzu. Die größte Herausforderung wird allerdings sein, auch Eure Freunde, also Eure "Kontakte" aus den Fängen der Datensammler zu befreien ;)

Technischer Hintergrund

XMPP-Konten (JID's genannt) sehen ähnlich einer eMail-Adresse aus. Nehmen wir wieder Bob und Alice als Beispiel - man kann beide über ihre JID erreichen: bob@gmx.de sowie alice@jabber.org.
Verschickt Bob eine Nachricht an Alice, so leitet sein Dienst-Anbieter (hier: gmx.de) die Nachricht einfach an den Anbieter von Alice weiter (jabber.org). Der wiederum stellt die Nachricht bei Alice zu.

Die JID kann noch durch die s.g. "Ressource" erweitert werden. Diese identifiziert ein bestimmtes Gerät des Anwenders. Ist Alice gleichzeitig mit ihrem PC und dem Handy online, könnten die JIDs so aussehen: alice@jabber.org/pc bzw. alice@jabber.org/handy.

Wer mehr über das XMPP erfahren möchte, findet in dem Wikipedia-Artikel eine umfangreiche Informationsquelle.

Es geht los!

Der erste Schritt ist, sich für eine passende Software und einen Anbieter des Server-Dienstes zu entscheiden.

Da viele die Kurznachrichten dazu nutzen, um auch sehr private Infos von A nach B zu senden, sollte man schon einen Anbieter wählen, der eine gewisse Basis-Vertrauenswürdigkeit genießt.

An dieser Stelle empfehle ich den "Chaos Computer Club". Der CCC betreibt einen eigenen XMPP-Server unter der Adresse jabber.ccc.de. Allerdings ist auf Grund von DDoS-Attacken das Erstellen neuer Accounts gerade nicht möglich (Jan 2015).

Wer bereits ein eMail-Konto bei GMX, 1&1 oder Web.de hat, der kann die eigene eMail-Adresse und das Mailpasswort als XMPP-Zugangsdaten nutzen - diese drei betreiben nämlich frei erreichbare XMPP-Server.

[Update Januar 2015: "United Internet", der Anbieter von GMX und 1&1 hat leider seine XMPP-Server abgeschaltet]

Eine Liste von XMPP-Servern und deren Qualität ist hier zu finden:
https://xmpp.net/directory.php

Eine Auflistung der Server inkl. der Features findet man hier:
https://gultsch.de/compliance_ranked.html
oder hier
http://www.jabberes.org/servers/

Zu empfehlen sind folgende Server:

Name Webseite Account anlegen
Hot-Chilli.net https://jabber.hot-chilli.net/de/ https://jabber.hot-chilli.net/de/account/erstellen/
Jabber.de http://www.jabber.de https://www.jabber.de/register/
JabMe.de https://www.jabme.de/ https://register.jabme.de/
Draugr.de https://www.draugr.de/ (nur im Client)
SwissJabber.ch http://www.swissjabber.ch/ (nur im Client)

Normalerweise wird der Account direkt im Client angelegt. Sollte das mal scheitern, nutzt einfach die o.g. Adressen im Browser.

Welche Software wird benötigt?

Es hängt davon ab, für welches Gerät ihr die Software braucht. XMPP erlaubt es, mehrere Clients mit denselben Zugangsdaten gleichzeitig anzumelden (siehe oben das Thema Ressourcen). Ihr könnt also gleichzeitig auf dem Windows-Laptop und dem Android Handy chatten. Auf beiden Geräten seht Ihr alle Eure Kontakte und kommende Nachrichten werden auf allen Geräten angezeigt.

Linux, MacOS oder Windows


Für Windows, Linux und Apples MacOS empfehle ich "Psi".
Eine Einleitung findet Ihr zB. hier: http://wiki.ubuntuusers.de/Psi

[Update: für Windows ist die Entwicklerversion Psi+ zu empfehlen: https://code.google.com/p/psi-dev/wiki/downloads2?tm=2]

Android

Ob Tablet oder Smartphone - für Android gibt es zwei ganz gute XMPP-Clients: Xabber und Conversations.

Xabber richtet sich mehr an den versierten XMPP-Anwender, der möglichst viele Features des Protokolls nutzen möchte. Conversations dagegen versucht sehr einfach in der Bedienung zu sein.

Beide Apps gibt es kostenlos (z.B. bei f-droid.org) und sie sind im Quellcode verfügbar.

iPhone (iOS)

Da ich leider kein iOS-Gerät verwende, kann ich hier keine selbst getestete Empfehlung abgeben, jedoch scheint ChatSecure ein guter XMPP-Client für iPhone und Co. zu sein.

MeeGo (Nokia N9)

Unter MeeGo ist XMPP fester Bestandteil des Betriebssystems. Es sind keinerlei zusätzliche Apps nötig, um andere XMPP/Jabber-Anwender zu erreichen.
Für XMPP-Gruppenchats muss diese Erweiterung installiert werden.
Für PGP/OTR-Verschlüsselung, Bilderupload und Emojis habe ich CryptMee entwickelt. Diese ist hier zu finden: CryptMee auf OpenRepos

Konto erstellen

In allen Apps ist die Vorgehensweise ähnlich. Hat man noch keine JID auf irgendeinem Jabber/XMPP-Server, so wird diese mit Hilfe der App erstellt. Dazu muss eine Wunsch-JID angegeben werden, z.B. mein-jabber-konto@jabber.ccc.de.
Daraufhin versucht die App das Konto auf dem Server jabber.ccc.de zu eröffnen.



Verschlüsselung

Im Chat verraten viele Teilnehmer sehr private Informationen. Mögen sie auch so banal sein, sie haben Andere nichts anzugehen.

Liest man eine News wie die folgende, wird einem klar, dass die privaten Chats nicht nur vielleicht analysiert werden, sondern ganz sicher! Darauf basiert ganz offen das Geschäftsmodell von Facebook und anderen:

NEWS: Das Sammelklage-Verfahren wegen der Auswertung privater Chats zu Werbezwecken geht weiter. Facebooks Anwälte konnten das Gericht nicht überzeugen, das Verfahren einzustellen.

Von anderen Ganoven ganz zu schweigen...



Um den Voyeuren zu entkommen, ist Verschlüsselung der Kommunikation ein Muss!

Wie wird verschlüsselt?

Zunächst eine kurze Klärung der Begriffe. Bei dem Thema "Verschlüsselung" gibt es zwei grundsätzliche Themenkomplexe, die man nicht verwechseln darf (übrigens gilt das ganz genauso für die verschlüsselte eMail!):

- Transportverschlüsselung
- Ende-Zu-Ende Verschlüsselung

Die Transportverschlüsselung sichert den Weg der Datenpakete zu dem Server, auf dem sich unser Konto, unsere JID befindet. Sie verschleiert also für die Außenstehenden die Kommunikation zum Server. Ein potenzieller Angreifer sieht zwar, dass wir uns mit dem Server jabber.org verbinden, sieht aber nicht, was da kommuniziert wird (oder mit wem). Diese Art der Verschlüsselung (die Technologien heißen hier SSL oder TLS) ist bei allen mir bekannten XMPP/Jabber-Servern standardmäßig aktiv - es ist kein aktives Zutun des Anwenders notwendig. Auch die Jabber/XMPP-Server untereinander sollten dieses Verfahren einsetzen. Ob sie es tun, ist oft schwer festzustellen.

Spannender ist das Thema "Ende-Zu-Ende" Verschlüsselung. Hier wird die Nachricht selbst verschlüsselt. D.h. auch auf dem Server ist diese nicht lesbar, sondern erst bei dem richtigen Empfänger. Diese Verschlüsselung wird zwischen den beiden Kommunikationspartnern ausgehandelt. Der Serverbetreiber hat damit nichts zu tun und darf damit auch nicht zu tun haben!

Es gibt grundsätzlich zwei Möglichkeiten mittels XMPP Nachrichten "Ende-Zu-Ende" zu verschlüsseln: Off-The-Record (OTR) oder GnuPG (auch bekannt als PGP). Eine recht neue, dritte Variante heißt OMEMO. Diese wird nach und nach in allen XMPP-Clients eingebaut.

OTR erzeugt bei jeder Nachricht neue Schlüssel und ist an sich recht komfortabel. Jedoch hat es im Alltag auch eine Reihe von Nachteilen. So führen Verbindungsabbrüche im Mobilfunknetz oft dazu, dass die teilnehmenden Clients keine OTR-Verschlüsselung mehr aufbauen können oder Nachrichten auf der Gegenseite nicht entschlüsselt werden können.
Daher bevorzuge ich die GnuPG-Methode, die ich bereits seit Jahren (oder Jahrzehnten) bei der eMail-Kommunikation verwende.

GnuPG

GnuPG ist der Open-Source Ersatz von PGP, einem starken Kryptographiesystem. Es basiert auf der Methode eines Schlüsselpaars, welches der Anwender selbst für sich erzeugt.
Der Private Schlüssel (private key) bleibt Eigentum des Anwenders, der öffentliche Schlüssel (public key) wird weitergegeben, bzw. auf einem Schlüsselserver hochgeladen.

Die Nachrichten werden mit dem public key verschlüsselt und können nur mit dem private key entschlüsselt werden.

Verschlüsselung unter Linux

Jede Linux-Distribution bringt alles, was für den Einsatz von GnuPG benötigt wird, mit. Ob Kommandozeile oder grafisch - alle Programme sind ausgereift und umfangreich.

Unter KDE verwaltet man mit KGpg seine Key-Sammlung, erzeugt neue Schlüsselpaare und lädt diese auf einen Schlüsselserver

Verschlüsselung unter Windows

Für Windows steht das Paket Gpg4Win zur Verfügung.

Verschlüsselung unter Android

Für Android steht OpenKeyChain zur Verfügung. Es kann direkt im PlayStore oder unter f-droid.org bezogen werden.

XMPP-Programme im Einsatz

Zum Schluss noch ein paar Screenshots einer verschlüsselten Konversation zwischen verschiedenen XMPP-Clients.

Auf der einen Seite Psi unter Linux...

...und auf der Gegenseite "Conversations" unter Android:

Fazit

Eine sichere und bequeme Kommunikation ist Dank der verfügbaren Software und den XMPP-Diensten mit geringem Aufwand bei der Ersteinrichtung möglich.
Es wird an Euren Kontakten liegen, ob die Befreiung von Facebook, Whatsapp und Co. klappt oder nicht.

Links

Hier noch einige interessante Seiten zum Thema:

- http://www.einfachjabber.de/ - Versucht Jabber einfach zu erklären
- https://duck.co/blog/xmpp-services-at-duckduckgo - die anonyme Suchmaschine nutzt ebenfalls Jabber

Cryptmee

Hi,

vielen Dank dafür, dass du einen Xmpp-Client für Meego entwickelst, obwohl Meego kaum noch verwendet wird!
Ich nutze es und freue mich darüber, denn der Original-Client unterstützt nur reine Textnachrichten und keine Verschlüsselung.

Eine Frage habe ich zur Einrichtung unter Meego (Nokia N9):
Wie kann ich das System so konfigurieren, dass immer Cryptmee für Xmpp-Nachrichten verwendet wird, also sowohl für den Versand als auch für den Empfang?

Momentan kann ich zwar Nachrichten mit Cryptmee schreiben, allerdings landen die Antworten dann im Standard-Client.

Danke!

Sven

RE:

Hi Sven,

die Antworten werden immer auch in der Standard-App landen, das kann ich leider nicht verhindern. Wenn Du aber im Cryptmee selbst KEINE Antworten siehst, dann überprüfe bitte, ob Du beim Einrichten des XMPP-Kontos keine Großbuchstaben verwendet hast (Deine JID). Das kann zu dem Problem führen.

Gruß,
Christoph