Zum Inhalt springen

Jabber

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 18. Januar 2007 um 16:43 Uhr durch 149.234.246.222 (Diskussion) (Stiftung: Umbenennung der Stiftung). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Das Jabber-Logo

Jabber (englisch [ˈdʒæbəɹ]: „(daher-)plappern“) ist eine Sammlung XML-basierter Netzwerkprotokolle, die hauptsächlich für Instant Messaging verwendet werden. Der Kern des Protokolls (XMPP) ist ein Internetstandard für Instant Messaging.

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. Wesentliches Merkmal von Jabber ist offene Standardisierung. Außerdem erlaubt Jabber über so genannte „Transports“ die Kommunikation mit Benutzern, die in proprietären Netzwerken wie ICQ oder Y!M angemeldet sind.

Die Netz-Architektur erinnert dabei an SMTP: Jeder, der im Internet einen Jabber-Server betreibt, kann Nachrichten mit anderen Servern austauschen. So sind Verbindungen über Anbieter-Grenzen hinweg möglich. Nachrichten werden vom Nutzer zum eigenen Server, von dort zum fremden Server und dann zum Empfänger weitergeleitet. Auch sind isolierte Netzwerke, beispielsweise in Firmen-Intranets möglich.

Das Jabber-Protokoll wurde seit 1998 ursprünglich vom Jabber-Projekt entwickelt, dessen Aufgabe mittlerweile die XMPP Standards Foundation fortführt.

Client-Software

Eine Kontaktliste („Roster“) im Jabber-Client Gajim

Ein großer Vorteil von Jabber ist, dass nahezu für jedes Betriebssystem und in jeder Programmiersprache Jabber-Clients existieren.

Wie in den Listen zu ersehen ist, gibt es eine Vielzahl von Clienten, die das Jabber-Protokoll unterstützen.

Für fast jeden Geschmack und Anwendungszweck existiert Software, um Jabber zu nutzen. Allerdings sind diese in der Unterstützung des Protokolls erheblich unterschiedlich weit implementiert.

Die Jabber Software Foundation pflegt ebenfalls eine

Identitäten und Adressierung

Hauptartikel: Jabber Identifier

Um Benutzer innerhalb des Jabber-Netzwerkes zu identifizieren und zu adressieren, gibt es den so genannten Jabber Identifier (JID). Dieser hat die Form „alice@example.com“, erinnert an eine E-Mail-Adresse und verhält sich auch ähnlich: So ist hier alice der Benutzername und example.com der Server, bei dem der Nutzer registriert ist. Durch das Konzept der „Ressourcen“ ist es möglich, sich mit einer Identität an einem Jabber-Server mehrfach anzumelden.

Konferenzen

Hauptartikel: Multi-User Chat

Jabber unterstützt Konferenzen mit mehreren Benutzern. Heutzutage ist dabei die Spezifikation Multi-User Chat (MUC)[1] die verbreiteteste. Sie unterstützt Funktionen wie beispielsweise Rollenzuordnung für Nutzer innerhalb des Chats, passwortgeschützte oder unsichtbare Räume und ist abwärtskompatibel zur früheren Spezifikation Groupchat.

Konferenzräume werden auch durch Jabber Identifier repräsentiert.

Verschlüsselung

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. Da Jabber ein textbasiertes Protokoll ist, besteht die Möglichkeit, dass bei unverschlüsselter Kommunikation Nachrichten abgehört werden können.

Aus diesem Grund bietet Jabber folgende Sicherheitsfunktionen an:

  • SSL/TLS-Verschlüsselung zwischen dem Client und dem angemeldeten Server: SSL-Verbindungen zum Jabber-Server werden i. d. R. auf Port 5223 angeboten. TLS-Verbindungen können, sofern der Server es unterstützt, mittels STARTTLS auch auf dem Standardport benutzt werden. Einige Server bieten jedoch auch Port 5224 explizit für TLS an.
  • Server-zu-Server-Verschlüsselung: Manche Server verschlüsseln auch die Verbindungen untereinander mittels SSL.
  • Ende-zu-Ende-Verschlüsselung: Da dem Client aber nichts über die Verbindung zwischen den beteiligten Jabber-Servern, der Sicherheit (bzw. Kompromitiertheit) der Server selbst oder der Verbindung Server zu Client auf der Gegenseite, bekannt ist, kann von einer TLS-verschlüsselten Verbindung auf Client-Seite nicht auf die Sicherheit der gesamten Verbindung geschlossen werden. Abhilfe schafft eine Verschlüsselung der Verbindung zwischen den Jabber-Benutzern selbst: Verbreitet wird hierzu OpenPGP verwendet, aber auch Off-the-Record Messaging findet Verbreitung.

Standardisierung

Das Jabber-Protokoll ist im Gegensatz zu anderen im Internet eingesetzten Instant-Messaging-Protokollen offen dokumentiert und wird öffentlich aktiv weiterentwickelt. Seit der Ernennung zum Internetstandard definiert sich Jabber als „XMPP + XEPs“.

Der Internet-Standard „XMPP“

Hauptartikel: Extensible Messaging and Presence Protocol

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

Erweiterungen: „XMPP Extension Protocol“

Hauptartikel: XMPP Extension Protocol

Die Entwicklung des Jabber-Protokolls baut auf dem Fundament XMPP auf, indem die JSF sogenannte XMPP Extension Protocols veröffentlicht, die Erweiterungsvorschläge für das Protokoll darstellen. Diese sind in der Jabber-Gemeinschaft als Standard akzeptiert.

Stiftung

Hauptartikel: XMPP Standards Foundation

Die XMPP Standards Foundation ist verantwortlich für die Standardisierung der auf XMPP aufbauendenden Protokolle, den sogenannten XMPP Extension Protocols. Direktor und Autor der meisten XEPs ist Peter Saint-Andre.

Jingle-Erweiterung

Mit der „Jingle“ genannten Erweiterung kann Jabber P2P-Sitzungen vereinbaren. Heutzutage wird dies vor allem für VoIP genutzt, und ist in der Aufgabenstellung SIP sehr ähnlich.

Nachdem Google am 8. August 2005 mit der Veröffentlichung von Google Talk das Jabber-Protokoll zunächst proprietär um VoIP-Funktionen erweiterte, veröffentlichte [2] die Jabber Software Foundation am 15. Dezember 2005 die Spezifikation[3] der Erweiterung „Jingle Signalling“, die Jabber um P2P-Fähigkeiten erweitert, sowie die Spezifikation[4] einer ersten Anwendung, „Jingle Audio“ für VoIP. Am selben Tag veröffentlichte[5] Google den Quellcode der Programmbibliothek libjingle, die diese Spezifikation implementiert.

Einige andere Jabber-Clients implementieren (z. B. auch durch Nutzung von libjingle) mittlerweile auch „Jingle Audio“, sodass VoIP-Funktionen mit Jabber nicht nur Google Talk und Windows-Systemen vorbehalten sind. Allerdings befinden sich die entsprechenden Programmversionen meist noch im experimentellen Status, sodass eine Verfügbarkeit jeweils mit einer der nächsten Veröffentlichungen wahrscheinlich ist.

Mittlerweile existieren weitere Anwendungen, die „Jingle Signalling“ – das beispielsweise die Kommunikation durch NATs hindurch vereinbart – als Grundlage benutzen. Bisher sind unter anderem Jingle-Profile für Video (auf Theora-Basis), UDP (nutzbar etwa zur Vereinbarung von Mehrspieler-Netzwerk-Spielen) und das interne Asterisk-Protokoll spezifiziert. Auch eine Umsetzung von DTMF – zwecks Rückwärtskompatibilität mit dem herkömmlichen Telefonnetz– existiert.

Zur Zeit wird an Profilen für Datenaustausch und virtuelle private Netzwerke gearbeitet.

Transports

Alice sendet ihre Nachricht erst zu dem Jabber-Server an dem sie angemeldet ist, dann zum Jabber-Transport. Dieser leitet sie über den ICQ-Server zu Bob weiter.

Hauptartikel: Jabber-Transport

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

Jeder Benutzer von Jabber kann sich bei Transports registrieren, indem er seine vorhandenen Login-Informationen an diesen Dienst übergibt. Dazu müssen Clients Service Discovery[6] (kurz disco, zu deutsch „Dienste durchsuchen“) unterstützen. So ist es möglich, Server nach angebotenen Transports zu durchsuchen und ohne zusätzliche Installation von Plugins, Kommunikation mit Nutzern proprietärer Instant-Messaging-Netzwerke zu betreiben.

Server

Für den Betrieb eines Jabber-Netzwerkes wird mindestens ein Jabber-Server (ähnlich dem Mail Transfer Agent) benötigt. Dieser kann in einem Intranet als alleinige Kommunikationsschnittstelle existieren oder über das Internet zu anderen Jabber-Servern (die „XMPP Federation“) Verbindungen herstellen.

Software

Bekannte Jabber-Server oder -Dienste

siehe auch: Kanonische Liste der öffentlichen Jabber-Server

Verlässliche Anbieter mit vielen Benutzern, die einen kostenlosen Account und eine Registrierung aus dem Jabber-Client heraus ermöglichen, sind z. B.:

Besondere Server

  • Google Talk für Inhaber eines Google-Accounts (talk.google.com auf Port 5223, nur mit SSL, SSL-Fehlermeldung kann ignoriert werden),
  • United Internet mit seinen Marken GMX (GMX-Webmessenger, jabber.gmx.net), Web.de und 1&1 testet die Akzeptanz eines Jabber-Dienstes[7] (die verwendbaren Adressen lauten auf @web.de, @gmx.{de|net|at|...}, @1und1.de, @1und1.com, @online.de),
  • Mabber bietet einen eigenen J2ME-Client fürs Handy, sowie einen webbasierten Chat

Um Firewalls zu umgehen kann man folgende Server benutzen:

Viele andere Server bieten aber ebenfalls Verbindungen über Port 443 oder Port 80 an.

Literatur

komplett online verfügbar bei O'Reilly Media's WikiContent.
  • Stephen Lee, u.a.: Jabber Programming. John Wiley & Sons, April 2002, ISBN 0-76-45493-40
  • Iain Shiegoka: Instant Messaging in Java: The Jabber Protocols. Manning Publications, Mai 2002, ISBN 1-93-01104-64

Allgemein

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

Informationsquellen

Hilfsprogramme

Quellen

  1. XEP 45: Multi-User Chat
  2. Jabber Software Foundation Publishes Open VoIP and Multimedia Protocols. jabber.org, 15.12.2005
  3. XEP 166: Jingle
  4. XEP 167: Jingle Audio Media Description Format
  5. Google Talkabout, Sean Egan: Jingle all the way
  6. Jabber Software Foundation: XEP-0030: Service Discovery Version 2.2, 24. Januar 2006
  7. teltarif.de: „GMX bringt eigenen Instant Messenger heraus“