Jabber (englisch [XML-basierter Netzwerkprotokolle, die hauptsächlich für Instant Messaging verwendet werden. Der Kern des Protokolls (XMPP) ist ein Internetstandard für Instant Messaging.
]: „(daher-)plappern“) ist eine Sammlung
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
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
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
- Liste von Jabber-Server-Software
- Server-Software-Liste der Jabber Software Foundation (englisch)
- Open-source XMPP server comparison chart – Vergleich der 6 großen XMPP/Jabber-Open-Source-Server (englisch)
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.:
jabber.org
ist der Server der Jabber Software Foundation,jabber.ccc.de
ist der Server des Chaos Computer Clubs,amessage.info
,swissjabber.ch
Besondere Server
- Google Talk für Inhaber eines Google-Accounts (
talk.google.com
auf Port5223
, 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:
jabber80.com
arbeitet auf Port 80,- OpenMessenger benutzt TLS-Verbindungen auf Port 443
Viele andere Server bieten aber ebenfalls Verbindungen über Port 443 oder Port 80 an.
Literatur
- D. J. Adams: Programming Jabber. O’Reilly Media, Januar 2002, ISBN 0-59-60020-25
- 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
Weblinks
Allgemein
- 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)
Informationsquellen
- Jabber monitor – Visualisierung der Erreichbarkeit öffentlicher Jabber-Server
- http://ulm.ccc.de/~marcel/warum-jabber.htm – Gründe für Jabber
- Jabber-Server der Fachschaft Informatik Kaiserslautern – Stichwortartige, umfassende Beschreibung von Jabbers Vorzügen (deutsch)
- Kai Raven: Jabber und OpenPGP (vgl. auch OpenPGP) (deutsch)
- Yet another Jabber FAQ – Eine aktuell gehaltene Jabber FAQ (deutsch)
Hilfsprogramme
- Jabber Roster Utility – Online-Tool zum Bearbeiten und Migrieren der Kontaktliste
Quellen
- ↑ XEP 45: Multi-User Chat
- ↑ Jabber Software Foundation Publishes Open VoIP and Multimedia Protocols. jabber.org, 15.12.2005
- ↑ XEP 166: Jingle
- ↑ XEP 167: Jingle Audio Media Description Format
- ↑ Google Talkabout, Sean Egan: Jingle all the way
- ↑ Jabber Software Foundation: XEP-0030: Service Discovery Version 2.2, 24. Januar 2006
- ↑ teltarif.de: „GMX bringt eigenen Instant Messenger heraus“