Jabber
aus Wikipedia, der freien Enzyklopädie
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 dem Yahoo! Messenger 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.
Inhaltsverzeichnis |
[Bearbeiten] 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 Liste von Client-Software.
[Bearbeiten] Identitäten und Adressierung
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.
[Bearbeiten] Konferenzen
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.
[Bearbeiten] Verschlüsselung
Dieser Artikel oder Abschnitt weist folgende Lücken auf:
Hilf Wikipedia, indem du die fehlenden Informationen recherchierst und einfügst! |
Die Verbindung zwischen zwei Jabber-Clients wird immer über mindestens einen Jabber-Server aufgebaut. Sind beide Clients an zwei verschiedenen Servern angemeldet, so muss auch zwischen den beiden Servern eine Verbindung aufgebaut werden (Client A ↔ Server A ↔ Server B ↔ Client B). Da auf diesem Übertragungsweg Nachrichten an jeder Station (und auch dazwischen) abgehört, respektive mitgeschnitten werden können, empfiehlt es sich zu verschlüsseln.
[Bearbeiten] Client-zu-Server- + Server-zu-Server-Verschlüsselung
- Verschlüsselung zwischen Client und Server mittels SSL/TLS
- Hierbei wird die Verbindung zwischen einem Client und dem Server, an dem dieser Client angemeldet ist, verschlüsselt.
SSL-Verbindungen zum Jabber-Server werden in der Regel 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 explizit Port 5224 für TLS an.
- Server-zu-Server-Verschlüsselung
- Selbst wenn die Verbindungen der Clients zu ihren jeweiligen Servern verschlüsselt ist, so ist die Kommunikation zwischen den Servern ein möglicher Angriffspunkt. Viele Server verschlüsseln daher ihre Verbindungen zu andern Servern.
Diese beiden Methoden sind zwar als voneinander unabhängig zu betrachten, dennoch ist es sinnvoll, sie in Kombination zu verwenden, da sonst die Verbindung am schwächsten Punkt − d. h. dort wo die Verbindung nicht verschlüsselt ist − angreifbar ist. Werden diese Verfahren eingesetzt, so wird die Sicherheit erheblich verbessert, dennoch sind die Server ein Angriffspunkt, da selbst bei einer Kombination aus Server-zu-Server- und Client-zu-Server-Verschlüsselung die Daten an beiden Servern entschlüsselt werden.
[Bearbeiten] Ende-zu-Ende-Verschlüsselung
Einen höheren Grad an Sicherheit bietet die Ende-zu-Ende-Verschlüsselung: Indem alle Daten vom Ausgangsclient ver- und erst vom jeweiligen Zielclient wieder entschlüsselt werden, werden Angriffspunkte minimiert. Die Verbindung ist gezwungenermaßen jederzeit verschlüsselt und die Server können die von ihnen weitergeleiteten Daten nicht entschlüsseln. So können die Betreiber des Servers und potentielle Angreifer lediglich Rückschlüsse auf den Zeitpunkt, die Dauer und den ungefähren Umfang eines Gespräches schließen.
- OpenPGP
- Daten werden mit einem festen Schlüsselpaar verschlüsselt. Da die Schlüssel über einen längeren Zeitraum hinweg die gleichen bleiben und auch die Möglichkeit bieten die Identität der Gesprächsteilnehmer zu authentifizieren ergibt sich folgender Angriffspunkt: Gelingt es einem Dritten verschlüsselte Gespräche mitzuschneiden und die Schlüssel zu stehlen (z. B. mit einem Trojaner), so hat er nicht nur die Möglichkeit den Inhalt der Gespräche zu erfahren, sondern kann anhand der Schlüssel (in manchen Ländern sogar rechtsgültig) nachweisen, wer an dieser Unterhaltung beteiligt war.
- Off-the-Record Messaging
- OTR wurde erdacht, um die Schwächen von OpenPGP zu beseitigen, indem die Identität der Gesprächsteilnehmer nur von diesen selbst und nur während des tatsächlichen Bestehens der Verbindung verifizierbar ist und die verwendeten AES-Schlüssel temporär sind und nicht gespeichert werden. Weiters werden die Schlüssel so häufig gewechselt, dass der Gesprächsabschnitt, der mit einem einzigen gestohlenen Schlüssel dekodiert werden kann, zu kurz ist, um vor Gericht relevant zu sein.
[Bearbeiten] Zusammenfassung
Da die Server-zu-Server-Verschlüsselung von Jabber nicht vom Endbenutzer beeinflusst werden kann, weil sie im Hoheitsbereich der Serveradministratoren stattfindet, ist die für den Endbenutzer größtmögliche Sicherheit durch die gleichzeitige Verwendung von Client-zu-Server-Verschlüsselung und Ende-zu-Ende-Verschlüsselung erreichbar.
[Bearbeiten] Standardisierung
Das Jabber-Protokoll ist im Gegensatz zu anderen im Internet eingesetzten Instant-Messaging-Protokollen offen dokumentiert [2] und wird öffentlich aktiv weiterentwickelt. Seit der Ernennung zum Internetstandard definiert sich Jabber als „XMPP + XEPs“.
[Bearbeiten] Der Internet-Standard „XMPP“
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.
[Bearbeiten] Erweiterungen: „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.
[Bearbeiten] Stiftung
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.
[Bearbeiten] 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 [3] die Jabber Software Foundation am 15. Dezember 2005 die Spezifikation[4] der Erweiterung „Jingle Signalling“, die Jabber um P2P-Fähigkeiten erweitert, sowie die Spezifikation[5] einer ersten Anwendung, „Jingle Audio“ für VoIP. Am selben Tag veröffentlichte[6] 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. Die Programmversionen mit Jingle Audio-Unterstützung befinden sich 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 InterAsterisk-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.
[Bearbeiten] 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[7] (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.
[Bearbeiten] 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.
[Bearbeiten] 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)
[Bearbeiten] Bekannte Jabber-Server oder -Dienste
siehe auch: Kanonische Liste der öffentlichen Jabber-Server
Verlässliche Anbieter mit vielen Benutzern, die ein kostenloses Benutzerkonto und meist 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
[Bearbeiten] 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[8] (die verwendbaren Adressen lauten auf @web.de, @gmx.{de|net|at|…}, @1und1.de, @1und1.com, @online.de), - Mabber bietet einen eigenen J2ME-Client für Mobiltelefone 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.
[Bearbeiten] 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
[Bearbeiten] Weblinks
[Bearbeiten] Allgemein
Wikibooks: Jabber-Kompendium – Lern- und Lehrmaterialien |
- Jabber Software Foundation (englisch)
- XMPP.org (englisch)
- Yet another Jabber FAQ – Eine aktuell gehaltene Jabber FAQ (deutsch)
- Links zum Thema „Jabber“ im Open Directory Project (englisch)
[Bearbeiten] RFCs
- 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)
[Bearbeiten] Quellen
- ↑ XEP 45: Multi-User Chat
- ↑ Gründe für Jabber
- ↑ 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“