Zum Inhalt springen

Jabber

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 4. Juni 2006 um 12:20 Uhr durch Klaus Jesper (Diskussion | Beiträge) (Sinn der Transports). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Logo von Jabber

Jabber (englisch [ˈdʒæbəɹ]: „(daher-)plappern“) ist eine freie Alternative zu proprietären Instant-Messaging-Netzwerken.

Dabei werden in diesem Bereich gängige Funktionen wie Nachrichtenübermittlung, Konferenzen mit mehreren Benutzern, Anzeigen des Online-Status, Dateiübertragungen und viele weitere Dienste unterstützt. Wesentliche Merkmale von Jabber sind die verteilte, dezentrale Struktur und die Verwendung von XML-Protokollen zum Datenaustausch. Außerdem erlaubt Jabber über so genannte „Transports“ die Kommunikation mit Benutzern, die in proprietären Netzwerken wie ICQ oder Yahoo! angemeldet sind.

Das Jabber-Projekt wurde Anfang 1998 von Jeremie Miller gestartet. Die erste öffentlich freigegebene größere Version erschien im Mai 2000.

Hauptbestandteil des Projekts ist das Jabber-Protokoll. Auch wurden realisiert: jabberd, eine Server-Software, mit der sich Jabber-Clients verbinden können, um zu chatten. So kann beispielsweise ein privates Jabber-Netzwerk hinter einer Firewall aufgebaut werden, oder man kann sich am weltweiten Jabber-Netzwerk beteiligen.

Die Netzwerkstruktur erinnert dabei an die von E-Mail: Es gibt mehrere Server verschiedener Anbieter. Auf einem davon richtet sich der Nutzer einen Account ein. Nachrichten werden dann vom Client des Nutzers an den Server übermittelt, bei dem er sich registriert hat, dann sendet dieser Server die Nachricht an den Server des Empfängers weiter, von dort aus wird sie dann schließlich an den Client des Empfängers übertragen. Dabei ist es unerheblich, ob beide Server dem gleichen Anbieter gehören oder nicht.

Googles neuer VoIP- und Instant-Messaging-Dienst namens Google Talk basiert auf dem Jabber-Protokoll.

Erste Schritte bei der Nutzung von Jabber

Folgendes ist essentiell, um Jabber nutzen zu können:

  • Download eines Jabber-fähigen Clienten
  • Installation und Start des Clients
  • Mit Hilfe des Clients einen neuen Jabber-Account auf einem sogenannten Public Server anlegen, was in der Regel kostenlos ist, und direkt aus dem Client heraus geschehen kann. Eine Ausnahme ist davon unter anderem Google.
  • Einloggen und mit Chatten im Jabber Netzwerk beginnen

Identitäten

Der Jabber Identifier (JID) ist die eindeutige Kennung, mit der jeder Jabber-Benutzer identifiziert wird. Der JID sieht dabei üblicherweise aus wie eine E-Mail-Adresse, z. B.: myName@myJabberServer.com. Der erste Teil der Adresse ist der node, der den Benutzernamen angibt. Ein gültiger JID muss nicht zwangsläufig den node enthalten, hinter JIDs ohne node verbergen sich jedoch meist Programme. Vom node durch ein „@“ getrennt, folgt im hinteren Teil die Domain, die den Jabber-Server bestimmt, auf dem die JID registriert ist.

Als weitere Information kann optional eine Ressource angehängt werden (z. B.: username@domain.com/zuhause). Diese gibt Zusatzinformationen an, so ist beispielsweise eine Angabe möglich von wo man gerade eingeloggt ist. Mit Hilfe dieser Ressource kann der Server eine Unterscheidung treffen, so dass ein Nutzer mit der gleichen JID von mehreren Rechnern aus eingeloggt sein kann. Bei eintreffenden Nachrichten wird anhand eines Prioritätswerts festgelegt, an welchen Client die Nachricht ausgeliefert wird, falls das genaue Ziel durch die Ressource nicht bereits feststeht. Dieser Prioritätswert wird vom Benutzer der JID in den Clients festgelegt, wobei größere Zahlen vor kleineren Zahlen Vorrang haben. Der gültige Bereich geht von −128 bis +127.

Konferenzen

Jabber unterstützt Konferenzen mit mehreren Benutzern, dazu wurden folgende Protokolle in der angegebenen Reihenfolge entwickelt:

  • Groupchat
  • Conference (nur zeitweilig in Gebrauch)
  • Multi-User Chat (MUC) z.B.: wikipedia@conference.jabber.org

Das von vielen Nutzern bevorzugte Protokoll ist das aktuelle MUC. Es ist eine Erweiterung des Groupchat-Protokolls und somit auch mit älteren Clients, die nur Groupchat unterstützen, nutzbar. Die neuen MUC-Features (beispielsweise Rollenzuordnung für Nutzer innerhalb des Chats, passwortgeschützte oder unsichtbare Räume) lassen sich dann allerdings nicht nutzen.

Sicherheit

Bei Verwendung von Jabber erfolgt die Verbindung zwischen zwei Clients niemals direkt, sondern immer über mindestens einen Jabber-Server. Sind die beiden Clients an zwei verschiedenen Servern angemeldet, erfolgt also die Datenübertragung vom ersten Client zum ersten Server, von diesem zum zweiten Server und von dort zum Ziel-Client.

Sicherheit ermöglicht Jabber hierbei durch das Verschlüsseln der Datenverbindungen: Die Kommunikation zwischen dem Jabber-Client auf Benutzerseite und dem Jabber-Server kann per SSL/TLS verschlüsselt werden. Die Verbindung zwischen Jabber-Servern kann ebenfalls verschlüsselt ablaufen, jedoch ist dies nicht immer der Fall. Da nichts über die Verbindung des Chat-Partners zu dessen Server ausgesagt wird, bietet dies trotzdem nur teilweise die gewünschte Sicherheit. Außerdem ist es jedem Serverbetreiber möglich, die über ihn verschickten Nachrichten zu lesen.

Abhilfe schafft die Nutzung einer zusätzlichen Verschlüsselung für die Verbindung zwischen den beiden Jabber-Benutzern. Die verbreitetste Möglichkeit stellt hier OpenPGP dar (End-To-End-Verschlüsselung).

Transports

Ein besonderes Konzept von Jabber ist das des Transports. Hiermit ist es möglich, andere (im Jabber-Jargon Legacy Services genannte) Netzwerke wie AIM, ICQ, Yahoo!, Gadu-Gadu oder IRC zu verwenden und mit deren Benutzern zu interagieren. Auch zu MSN ist das möglich, aus rechtlichen Gründen schalten jedoch viele Administratoren diesen Transport ab. Anders als bei Multi-Protokoll-Programmen, wie Trillian (Instant Messenger), Miranda IM oder Kopete, funktioniert die Verbindung zu Fremdnetzen bei Jabber nicht dadurch, dass die notwendigen Protokolle auf Clientseite unterstützt werden. Stattdessen kann alles, was zur Kommunikation mit anderen Netzwerken nötig ist, von den Jabber-Servern unterstützt werden. Die Server transportieren dabei die Nachrichten zwischen den Netzwerken, ohne dass die beiden beteiligten Benutzer hierfür besondere Vorkehrungen treffen müssen.

Folgendes Beispiel soll den Ablauf zwischen Benutzer J, der einen Jabber-Client benutzt, und Benutzer I, der bei ICQ registriert ist, veranschaulichen: Benutzer J übergibt dem Jabber-Server zunächst seine ICQ-Anmeldedaten in Form von ICQ-Nummer und Passwort. Daraufhin loggt sich der Jabber-Server im Auftrag von J bei ICQ ein und verhält sich für das ICQ-Netzwerk wie ein normaler ICQ-Client. Dabei transportiert er einerseits alle Nachrichten von I (im ICQ-Netzwerk) an den Jabber-Client von J weiter und leitet andererseits in die andere Richtung alle Nachrichten von J an I. Benutzer I bekommt von diesem Ablauf nichts mit, für ihn sieht es aus, als ob er mit einem anderen ICQ-Benutzer interagieren würde. In der Kontaktliste (bei Jabber "Roster" genannt) von J wird I als "normaler" Jabber-User dargestellt, obwohl er eigentlich nicht mit dem Jabber-, sondern mit dem ICQ-Netzwerk verbunden ist.

Vorteil dieses Konzepts ist, dass Updates nicht durch neue Clientversionen verteilt werden müssen. Stattdessen wird nur die Server-Software aktualisiert, und alle Clients profitieren unmittelbar von den Änderungen.

Jeder Benutzer von Jabber kann sich bei einem der Transports registrieren, indem er bestehende Login-Informationen für diesen Dienst angibt, und kann dann mit Nutzern dieser Dienste kommunizieren, als ob diese auch Jabber-Benutzer wären. Deshalb kann jedes Clientprogramm, das den vollen Umfang des Jabber-Protokolls unterstützt, ohne weitere Änderung zur Kommunikation mit allen großen proprietären Instant-Messaging-Netzwerken benutzt werden.

Obwohl das Jabber-Protokoll bezüglich der Umsetzung von Funktionen von Fremd-Netzwerken keine Einschränkungen vorgibt, unterstützen die aktuellen Transports nur Basisfunktionalitäten (Senden und Empfangen von Nachrichten, Sichtbarkeiten). Datentransfers und Chaträume sind über Transports also derzeit nicht möglich.

Die Transports werden von vielen Nutzern aufgrund unbefriedigender Verlässlichkeit und Stabilität sowie der hohen serverseitigen Last nur als Notlösung betrachtet. Sie sehen den Sinn der Nutzung vor allem darin, in einer Übergangszeit die bisherigen Kontakte, die noch proprietäre Netzwerke nutzen, zu Jabber zu migrieren. Dennoch wird von vielen Nutzern auch der Dauereinsatz als gerechtfertigt angesehen, da nicht alle Kontakte Interesse an einer Migration zu Jabber haben.

Eine Alternative zur Verwendung von Transports ist der Einsatz von Multi-Protokoll-Instant-Messengern.

Standardisierung und Foundation

Das Jabber-Protokoll wurde von der IETF Anfang 2004 mit einigen Änderungen als Internet-Standard unter der Bezeichnung XMPP (Extensible Messaging and Presence Protocol) verabschiedet.

Die Jabber Software Foundation ist verantwortlich für die Standardisierung auf XMPP aufbauendender Protokolle, der sogenannten Jabber Enhancement Proposals. Strukturell ist die JSF in ein Board, ein Council und die Membership aufgeteilt.

Executive Director:

  • Peter Saint-Andre

Board 2005:

  • Toni Bamonti
  • Ryan Eatmon
  • Ulrich Staudinger

Jingle-Erweiterung

Am 15. Dezember 2005 [1] gab die Jabber-Stiftung die Erweiterung Jingle bekannt, die das Jabber Protokoll um peer-to-peer Fähigkeiten erweitert. Die Jingle-Erweiterung ist dabei eine offene Version der Google-Talk Erweiterung zu Jabber und wird von Google mit unterstützt.

Die veröffentlichten Spezifikationen teilen sich dabei in zwei Bereiche: Jingle Signalling beschreibt die zugrundeliegenden Funktionen, um eine peer-to-peer Sitzung zwischen zwei Clients, auch durch NATs, aufzubauen und aufrecht zu erhalten. Jingle Audio beschreibt eine darauf aufbauende Implementierung von VoIP-Funktionen. Darüberhinaus sind unter anderem Jingle-Profile für Video, UDP sowie das interne Asterisk-Protokoll spezifiziert.

Siehe auch

Quellen

  1. Jabber Software Foundation Publishes Open VoIP and Multimedia Protocols. jabber.org, 15.12.2005

Allgemein

Deutschsprachige Informationsquellen über Jabber

Jabber-Server

  • RFC 3920: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 3921: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence
  • RFC 3922: Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)
  • RFC 3923: End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP)

Client-Software für Jabber

Bezeichnung Betriebssystem Lizenz Bemerkung Weblink
Adium Mac OS X GPL [1]
BitlBee Linux und andere Unix-Systeme GPL IRC To Instant Messenger Gateway [2]
Chatopus Palm OS Shareware RSS-Unterstützung [3]
Coccinella BSD/Linux/Mac OS X/Windows GPL mit Zeichenfläche (Whiteboard) [4]
Centericq BSD/Linux/Mac OS X/Solaris/Windows GPL [5]
Exodus Windows GPL [6]
Fire Mac OS X GPL [7]
Gabber Linux/Mac OS X GPL [8]
Gaim BSD/Linux/Mac OS X/Windows GPL [9]
Gajim BSD/Linux/Windows GPL [10]
Google Talk Windows Proprietär Betaversion – Jingle Unterstützung [11]
iChat Mac OS X Proprietär ab MacOS X, Version 10.4 [12]
Jabber Instant Messenger Windows Proprietär [13]
JAJC (Just Another Jabber Client) Windows Freeware/Proprietär [14]
JBother JavaLinux/Mac OS X/Windows GPL Cross-platform [15]
Jeti/2 Java-Client eComStation/OS/2/Linux/Unix/Mac OS X/Windows GPL Cross-platform [16]
Kopete Linux und andere Unix-Systeme GPL Jingle Unterstützung ab v0.12 [17]
LLuna Windows GPL Virtuelle Präsenz [18]
Miranda Windows GPL [19] oder [20]
Pandion (Instant Messenger) Windows C.C.L. [21]
Psi Linux/Mac OS X/Solaris/Windows GPL [22]
Simple Instant Messenger Linux/Mac OS X/Solaris/Windows GPL [23]
Tapioca Linux GPL Jingle Unterstützung [24]
Tkabber Cross-platform GPL [25]
Trillian Pro Windows Proprietär Jabber-Plugin erforderlich [26]
Bezeichnung Betriebssystem Lizenz Bemerkung Weblink

Die hier aufgelisteten Clients unterscheiden sich massiv in der "Tiefe" der Jabber-Unterstützung. Während einige Clients wie z. B. Gaim oder iChat nur die grundlegendsten Eigenschaften unterstützen, bieten vielen Clients sehr viel bessere Implementationen, mit denen viele weiterführende Jabber-Features nutzbar sind. Weitere Clients finden sich auf http://www.jabber.org/software/clients.shtml