Jabber-Client mit OTR Unterstützung für iOS

Einen reinen Jabber-Client für iOS zu finden ist schwierig. Noch schwieriger ist es wenn dieser auch noch OTR enthalten soll. ChatSecure bietet leider nur kurze Pushzeiten an, so das man nach 10-Minuten Inaktivität keine Nachrichten mehr bekommt. Mit IM+ sind auch längere Inaktivitäten möglich. Dabei handelt es sich allerdings um einen MultiMessenger für die unterschiedlichsten Systeme.

‎IM+ Instant Messenger
Preis: Kostenlos+

Neben der Anbindung der Messenger untersützt IM+ auch das sogenannte Off-the-Record-Messaging kurz OTR. Damit können sich zwei Teilnehmer verschlüsselt austauschen. Es ist das digitale Äquivalent zum 4-Augen Gespräch.

Wenn man IM+ für XMPP-Verbindungen nutzt, sollte man sich bewusst sein, das nicht das Gerät eine Verbindung mit dem Jabberserver aufbaut, sondern hier noch eine Station hinzukommt. Der IM+ Client verbindet sich mit einem Server in Kanada und dieser verbindet sich mit dem Jabberserver. Aus Sicht des Jabberservers sieht der Client so aus:

IM+ (tls://184.107.68.165:23474#ejabberd@service)

Wahrscheinlich wird das ganze für die Abwicklung der unterschiedlichen Protokolle sowie für die Pushbenachrichtigungen benötigt. Wer hier also ohne OTR chattet, sollte sich nicht wundern.

XMPP Server per DNS auf der Hauptdomain betreiben

Wenn man einen XMPP-Server unter einer Subdomain wie „xmpp.example.org“ betreibt, so sehen die Kontakte dementsprechend aus – in diesem Fall „“. Möchte man Kontakte nach dem Schema „“ anlegen, so muss der DNS Eintrag der Hauptdomain auf den XMPP-Server zeigen. Dies ist aber nicht immer möglich. So kann es vorkommen das der Webserver auf der Hauptdomain seinen Dienst verichtet, während der XMPP-Server auf einem anderen Server läuft. In einem solchen Fall kann man sich das ganze mit „SRV“ Einträgen im DNS zurechtzubiegen.

_jabber._tcp             IN SRV     0 0 5269 xmpp.example.org.
_xmpp-client._tcp        IN SRV     0 0 5222 xmpp.example.org.
_xmpp-server._tcp        IN SRV     0 0 5269 xmpp.example.org.

Mit diesen Einträgen ist es dann möglich den XMPP Server unter „example.org“ zu betreiben, obwohl der A-Record auf einen anderen Server zeigt, da der anfragende Client umgeleitet wird.

XMPP Server unter Ubuntu aufsetzen

Möchte man Instant Messaging mittels XMPP (früher unter dem Namen Jabber bekannt) nutzen, so kann man natürlich zu einem der vielen Dienste wie GMail, GMX und ähnliches gehen. Damit bekommt man dann neben den Vorteilen auch den Nachteil, das man sich nicht sicher sein kann was mit den eigenen Daten passiert. Eine andere Lösung ist es hier den XMPP Server selbst aufzusetzen. Dazu bietet sich „ejabberd“ an. Mittels:

sudo apt-get install ejabberd

wird das passende Paket installiert. Der Server „ejabberd“ unterstützt dabei die Verwaltung mehrerer Domains, so das eine Serverinstanz die Adressen und bereitstellen kann. Um dies umzusetzen, geht es im ersten Schritt an die Konfiguration. Dazu wird die Datei „/etc/ejabberd/ejabberd.cfg“ mittels „nano“ geöffnet:

nano /etc/ejabberd/ejabberd.cfg

Die Syntax der Datei ist dabei im Gegensatz zu anderen Konfigurationsdateien etwas gewöhnungsbedürftig, da sie auf der Programmiersprache Erlang basiert. Kommentare z.B. werden in dieser Datei mit einem Prozentzeichen eingeleitet. Im ersten Schritt werden die Domain respektive Hostnamen definiert, welche „ejabberd“ verwalten soll. Dazu wird der Punkt „hosts“ gesucht und mit den entsprechenden Domains gefüllt.

{hosts, ["xmpp.example.com", "xmpp.example.org"]}.

Die Serversprache kann man für einen deutschsprachigen Server geändert werden:

{language, "de"}.

Damit werden Nachrichten vom Server in Deutsch anstatt in Englisch ausgegeben. Standardmäßig ist der Server so eingestellt, das niemand außer dem Administrator Nutzer anlegen kann. Natürlich wäre es auch denkbar, einen Server zu betreiben, bei welchem sich jeder registrieren kann. Damit man Nutzer anlegen kann, muss ein Nutzer mit den entsprechenden Rechten definiert werden:

{acl, admin, {user, "seeseekey", "xmpp.example.com"}}.

Damit ist der Nutzer „“ ein Nutzer mit administrativen Rechten. Allerdings muss dieser Nutzer noch erstellt werden:

service ejabberd restart
ejabberdctl register seeseekey xmpp.example.com geheimespasswort

Weitere Nutzer können anschließend über die Weboberfläche angelegt werden. Zu erreichen ist diese dabei unter:

http://xmpp.example.com:5280/admin

Die Zugangsdaten entsprechen dabei denen des administrativen Nutzers.

Weitere Informationen gibt es unter:
https://wiki.archlinux.de/title/Ejabberd

Off-the-Record Messaging in Verbindung mit Pidgin

Für eine verschlüsselte Kommunikation über XMPP bietet sich das sogenannte „Off-the-Record Messaging“ an. OTR ist dabei durch vier Merkmale gekennzeichnet: Verschlüsselung, Authentifizierung des Gesprächspartners, Abstreitbarkeit und Folgenlosigkeit. Die ersten beiden Punkte sollten dabei selbsterklärend sein. Der Punkt Abstreitbarkeit bezeichnet die Eigenschaft des Systems, das nach einem Gespräch nicht nachgewiesen werden kann, das einer der Gesprächspartner eine bestimmte Aussage getätigt hat. Wichtig ist auch die Folgenlosigkeit, welche dafür sorgt, das selbst nach dem Verlust des privaten Schlüssels keine in der Vergangenheit getätigten Konversationen entschlüsselt werden können.

Unter Adium kann Off-the-Record Messaging in jedem Fenster über das Schlosssymbol aktiviert werden

Unter Adium kann Off-the-Record Messaging in jedem Fenster über das Schlosssymbol aktiviert werden

Möchte man verschlüsselt über XMPP kommunizieren, so benötigt man einen entsprechenden Client der OTR unterstützt. Einige Clients wie Adium haben diese Funktionalität gleich eingebaut. Bei anderen benötigt man dazu ein Plugin. Eine Auflistung der entsprechenden Anwendungen findet man auch in der Wikipedia. Ist OTR nicht nativ eingebaut, sollte man schauen, ob es eventuell ein Plugin gibt. So gibt es z.B. das offizielle Plugin für Pidgin unter http://www.cypherpunks.ca/otr/#downloads. Nach der Installation des Plugins, kann dieses unter „Werkzeuge“ -> „Plugins“ aktiviert werden.

Das Pluginfenster von Pidgin

Das Pluginfenster von Pidgin

Nachdem das Plugin aktiviert wurde, kann der Account per OTR angeschrieben werden. Eine solche Nachricht sieht dabei verschlüsselt so aus:

?OTR:AAIRAAAAELtKpVAOcq1LA3et6OkLuV0AAAHSd9/i8RVe0kUQR5XwOSCqOlUWredm6O2ogDht3pnmIBaksS
+qH23967oX0f053spOynxgVnyneAc2u1MNowuKGSWL+nx9DXhKsrYMEFB/2GPFzXaVyTQ
/MC0m1o7m67Z2u3MXjwMpp++rDWD0jfmy1UhOTYVmWPBcqg4g9ZDX6BdRxg61Y8KF0cQc
SQGVnCW19o93puHyD3Qd10ZXm4eOZJOPUGH9USIhsu/LOEYz85+Qg3lMyZJwJYOVPuhM8
ZYoWoIVG+y18pVrsNE+bBWa56N1Xol5+/NMsTbeJ8NJ0z5jXhdRTs27XoResxwOxgR0rRpr/IE
fsLXSZLyZM3vhLYbhVTtyO5C7Bja9RQo6EG2NZLD9fU167SBLRYnC798Mc7Nl24cdy
/fgh+3O+kFM/Gf20B4e/WfVSvFzXDKWLu0ZnDfGk6VLU4uP5W2H7ampkmYdQlZLNaxOa
a2IqUBCREcGuZPJ2/MrEkI8ru42DOe0AneSQtl6jo9ymmPZ2VUeacMht3uPyXhFO3JTw
4ZKU+axeh37H+1n629zTO1S/GBjOyIZPGTli22Oim8ef6yaVIzNTEpg4GSzOE7+DBN1F
MwzwhZr99agKjTkWu1Ob3v4hAIOFO2M3Vgo8AwV4yM1bHJjIaeC.

Unter Umständen beim ersten Empfang der Fingerabdruck des Absenders vom Empfänger bestätigt werden. Im Gegensatz zur Verschlüsslung per Mail, ist OTR ein ganzes Stück benutzerfreundlicher, da es für den Nutzer sehr transparent abläuft.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Off-the-Record_Messaging

Google verabschiedet sich von offenen Standards

Google scheint eine kritische Masse erreicht zu haben. Anders kann man sich das Verhalten in letzter Zeit nicht erklären. Während Larry Page sich auf der Keynote zur Google I/O noch bitterlich beschwerte, das den Nutzern von „Outlook.com“ die Möglichkeit eröffnet wurde mit Google Chat zu kommunizieren, aber dies umgekehrt nicht Fall sei und gleich danach beteuerte wie wichtig Interoperabilität ist.

Das Problem ist, das diese Aussage ziemlich zwiespältig wirkt. So wurde kurze Zeit später bei der Zusammenführung der hauseigenen Messenger einfach die XMPP Kommunikation zu anderen Servern gekappt. Somit ist es Nutzer dieser Messenger nicht mehr möglich mit Jabber Nutzern zu reden welche ihre Accounts bei anderen Diensten betreiben. Stattdessen soll man den haus­ei­gen Client nutzen, welcher nur mit Google Kontakten funktioniert.

Das ist beileibe nicht die einzige Abwertung eines offenen Standards durch Google. Vor einigen Monaten traf es den Google Reader (und damit RSS), welcher in diesem Monat seine letzte Schonfrist genießt. Auch die offene Kalender API über iCal wird zum September 2013 eingestellt. Dann erfolgt der Zugriff auf diese Daten nur noch über die proprietäre „Calendar API“ von Google.

Jetzt stellt sich natürlich die Frage warum Google sich so verhält. Ein Grund könnte die Nutzerbindung sein, mit welcher die Googlenutzer im Google Datensilo gefangen bleiben, wenn es keine offenen Austauschschnittstellen mehr gibt. Ein anderer Grund könnte sein, das Google mehr Geld verdienen möchte. So ist z.B. die „Calendar API“ auf 10000 Abfragen pro Tag begrenzt, wer mehr benötigt darf eine Erhöhung des Quota bei Google erbetteln. Es scheint nur noch eine Frage der Zeit zu sein, bis wir auch für diesen Dienst löhnen dürfen.

Allerdings revidiert Google auch ab und an eine Entscheidung, wie bei der Calender API welche nun über CalDAV wieder für alle zugreifbar sein soll. Auch sollen die Kontakte mittels der CardDAV API abgefragt werden können. Wobei sich hier für den Beobachter ein hin und her ergibt, welches man von einem verlässlichen Partner nicht erwartet. So hilft es wohl nur das Datensilo zu verlassen und die private Cloud auf eigenem Webspace zu betreiben. Oder wie Goethe sagte: „Hier bin ich Mensch, hier darf ichs sein!“.

Weitere Informationen gibt es unter:
http://www.golem.de/news/larry-page-microsoft-will-uns-ausnutzen-1305-99298.html
http://www.heise.de/newsticker/meldung/Googles-Kalender-API-bleibt-offen-fuer-alle-1883394.html
https://netzpolitik.org/2013/google-verabschiedet-sich-grostenteils-von-offenen-standards-fur-instant-messaging/
http://www.heise.de/newsticker/meldung/Googles-Chat-Client-kappt-Jabber-Kompatibilitaet-1866059.html