Extensible Messaging and Presence Protocol

ensemble de protocoles standards ouverts

Extensible Messaging and Presence Protocol (qu'on peut traduire par « protocole extensible de présence et de messagerie »), souvent abrégé en XMPP, est un ensemble de protocoles standards ouverts de l’Internet Engineering Task Force (IETF) pour la messagerie instantanée, et plus généralement une architecture décentralisée d’échange de données. XMPP est également un système de collaboration en quasi-temps réel et d’échange multimédia par son extension Jingle, dont la voix sur réseau IP (téléphonie sur Internet), la visioconférence et l’échange de fichiers sont des exemples d’applications.

Extensible Messaging and Presence Protocol
Logiciel
Logo du protocole XMPP.
Informations
Fonction Messagerie instantanée
Sigle XMPP
Date de création
Port 5222 (client - serveur) et 5269 (serveur - serveur)
RFC RFC 6120 - RFC 6121 - RFC 7395 - RFC 7590 - RFC 7622 - RFC 3922 - RFC 3923

XMPP est constitué d'un protocole TCP/IP exploitant une architecture client-serveur permettant les échanges décentralisés de messages instantanés ou non, entre clients, au format Extensible Markup Language (XML). XMPP est en développement constant et ouvert au sein de l’IETF.

Les serveurs peuvent être privés (en intranet) ou bien publics, c'est-à-dire reliés aux autres serveurs publics via Internet. L'ensemble des serveurs publics créent le réseau Jabber (ou le réseau XMPP).

XMPP est ainsi utilisé par des centaines de serveurs publics et privés et des millions d’utilisateurs. De nombreux acteurs industriels utilisent XMPP, comme Apple, Cisco[1], Gizmo5, GNOME, Google, IBM, Oracle Corporation[2][réf. souhaitée].

Le protocole XMPP comprend deux parties :

  • le protocole de base contient les concepts fondamentaux pour faire fonctionner une infrastructure Jabber. Il est défini par les RFC  6120[3], 6121[4], 6122[5] (qui remplacent depuis 2011 les 3920[6] et 3921[7]), 3922[8] et 3923[9]. Théoriquement, une telle infrastructure ne peut pas fonctionner sans appliquer complètement ces protocoles ;
  • les XMPP Extension Protocols (XEP) sont des propositions d'ajout de fonctionnalités au protocole Jabber. Les serveurs ou clients ne sont pas obligés d’adopter ces extensions. Cela peut bloquer certaines fonctionnalités entre deux utilisateurs.

XMPP est conçu de manière plus large et ouverte que la simple messagerie instantanée populaire et propriétaire. Il est ainsi utilisé par les entreprises et administrations dans le cadre d’échanges de données entre applications (ETL, EAI, ESB) au sein des systèmes d’informations, mais aussi dans le cadre du grid computing, des notifications d’alertes ou d’informations, de la supervision système et réseau, ou le cloud computing (informatique en nuage). Enfin, XMPP est également utilisé dans le domaine du partage et de la collaboration en quasi-temps-réel comme le tableau blanc interactif (TBI) ou l’édition et le développement collaboratifs, mais aussi des jeux sur Internet (notamment les jeux de cartes et de plateau).

Logiciels (clients) XMPP

modifier

De nombreux logiciels, différents et variés, peuvent être utilisés pour communiquer avec XMPP [10].

Historique

modifier

Le début : Jabber

modifier

C’est en 1998 que Jeremie Miller a inventé Jabber, un protocole de messagerie instantanée exploitant le XML. Ses travaux se sont inspirés de ICQ, créé en 1996, le premier système du genre.

En janvier 1999, il annonce publiquement[11] sur Slashdot « une plate-forme informatique open source complète pour la messagerie instantanée avec communication transparente vers les autres systèmes d’IM (messagerie Instantanée) ». Le protocole était conçu, ainsi qu’un serveur fonctionnel (jabberd) et des clients de test (WinJab et Gabber).

En août 1999, Jeremie Miller lance un appel à la standardisation du protocole par l’IETF afin de promouvoir les standards ouverts et l’interopérabilité[12]. L’IMPP WG est alors créé et publie en février 2000 les RFC  2778[13] et 2779[14] mais n’atteint pas de consensus.

Le serveur open source jabberd 1.0 est publié en mai 2000 et stabilise le protocole. En juin, Jeremie Miller publie un Internet-Draft mais le délai est dépassé. La version 1.2 de jabberd introduit le dialback qui empêche les usurpations d’identités de serveurs.

La Jabber Software Foundation et la reconnaissance par l'IETF

modifier

La Jabber Software Foundation est créée en août 2001, afin d’assurer la coordination du nombre grandissant de développeurs open source et entreprises qui adoptent les technologies Jabber ainsi que pour gérer la documentation, la création et le maintien des protocoles XML.

En 2002, des Internet-Draft sont à nouveau soumis à l’IETF en tant que XMPP Core et XMPP IM, et un XMPP WG est créé.

Les RFC  3920[6] XMPP-Core et 3921[7] XMPP-IM, ainsi que les RFC  3922[8] CPIM et 3923[9] E2E, sont acceptées en octobre 2004.

La JSF devient en 2007 la XSF pour XMPP Standards Foundation, et propose des services d’autorité intermédiaire de certification TLS/SSL.

L'adoption par les acteurs d'Internet

modifier

Apple en 2005

modifier

Apple introduit le support de Jabber dans son logiciel de messagerie iChat livré avec OS X Tiger en mai 2005.

Google de 2005 à 2013

modifier

L’entreprise Google publie Google Talk en août 2005, un client XMPP propriétaire lié aux serveurs de Google. Ce client apporte la voix (téléphonie sur Internet) par le protocole Jingle, dont les spécifications sont publiées avec la bibliothèque libjingle. La JSF prend alors en charge sa standardisation. Quelques mois plus tard, ces serveurs sont ouverts au réseau Jabber. En mai 2013, Google annonce son intention d'abandonner XMPP au profit du protocole propriétaire Google+ Hangouts[15].

Facebook de 2008 à 2015

modifier

En mai 2008, les développeurs de Facebook annoncent le support de XMPP pour leur application de chat. La mise en place sera effective le 10 février 2010, cependant le serveur n’est pas raccordé au reste du réseau Jabber. En juillet 2015, Facebook supprime le support de XMPP, obligeant à passer par sa propre API[16].

Tests de ICQ/AIM et Yahoo!

modifier

En janvier 2008, AOL, alors fournisseur des logiciels de messagerie instantanée ICQ et AIM (compatibles et exploitant le protocole OSCAR), met en place un serveur expérimental permettant de se connecter via XMPP[17]. C’est donc une base de plus de 50 millions d’utilisateurs[réf. nécessaire] qui agrandit le réseau Jabber.

En février 2008, Yahoo!, propriétaire de Yahoo! Messenger, annonce également s’intéresser à XMPP[18]. Depuis, les serveurs peuvent se connecter aux autres serveurs XMPP[19]

Whatsapp

modifier

Plusieurs éléments indiquent que l'application de messagerie[20] a utilisé le protocole XMPP [21]comme base.

Skype en 2011

modifier

En juin 2011, Skype annonce la création d'un connecteur XMPP sur la version Windows de leur logiciel client en développement[22]. Toutefois, l'utilisation est limitée au texte et pas à la vidéo/audio. Cette intégration semblait avoir pour objectif de se connecter à Facebook qui utilisait XMPP[réf. nécessaire].

WLM en 2011

modifier

En septembre 2011, Microsoft annonce que Windows Live Messenger (appelé aussi MSN (de MicroSoft Network)) va proposer un moyen de se connecter à leur messagerie instantanée via le protocole XMPP[23] à l'aide du système authentification OAuth[24] dans l'optique de son nouveau système d'exploitation Windows 8 et surtout des services en lignes qui y seront associés. Toutefois, l'intégration ne se fera qu'au niveau client-serveur, interdisant aux personnes présentes sur d'autres domaines XMPP (comme gmail.com ou jabber.org) d'interagir avec eux, les spécifications retenues étant peu nombreuses[25].

Cette annonce a été vite suivie d'intégration dans les clients de messagerie alternatifs supportant plusieurs protocoles[26].

Il peut être intéressant de relever que Microsoft a des parts dans Facebook[27] et a racheté Skype en mai 2011[28],[29]

Rachat de la société Jabber Inc.

modifier

En septembre 2008, Cisco annonce un accord de rachat de la société Jabber Inc.[30]. Ni XSF, la fondation à but non lucratif, ni le protocole XMPP ne sont concernés par ce rachat[31].

XMPP et Jabber

modifier
 
Logo officiel de la messagerie instantanée Jabber.

XMPP est le cœur de Jabber ; XMPP est à Jabber ce que le Hypertext Transfer Protocol (HTTP) est au World Wide Web.

Le protocole est maintenu par la XMPP Standards Foundation (ancienne Jabber Software Foundation) et est standardisé par l’Internet Engineering Task Force (IETF) sous le nom XMPP.

Applications Jabber

modifier
 
Le logiciel libre Gossip utilise Jabber.

Jeremie Miller a mis le projet sur pied en 1998 et la première version publique est sortie en mai 2000. La principale production du projet est jabberd, un serveur libre permettant aux logiciels clients de se connecter pour discuter. Ce serveur permet soit de créer un réseau Jabber privé (derrière un pare-feu), soit de rejoindre d’autres serveurs publics fédérés sur Internet, pour dialoguer en ligne avec ses correspondants.

De très nombreuses applications Jabber peuvent être créées :

  • messagerie instantanée et présence
  • notifications
  • diffusion par push
  • transferts de fichiers
  • travail collaboratif en temps-réel
  • échange de données
  • jeux en ligne

Grâce à Jingle, extension multimédia de XMPP, il est possible d’étendre les flux à tout contenu binaire : téléphonie sur Internet, visioconférenceetc.

Fonctionnement

modifier

Le réseau des utilisateurs de Jabber est décentralisé, c’est-à-dire qu’il est composé de plusieurs serveurs, reliés entre eux. Il fonctionne de manière similaire à celle du courrier électronique : les messages instantanés sont transférés d’un utilisateur à l’autre par l’entremise de leur serveur respectif. Autre similarité, un utilisateur est identifié par un nom d’utilisateur et un nom de serveur, les deux champs étant séparés par une arobase « @ ». Cet identifiant est appelé Jabber ID ou plus simplement « adresse Jabber ».

Par exemple, si un utilisateur bob@jabber.org souhaite communiquer avec gilles@jabber.cz, le logiciel client de Bob commence par envoyer son message à son serveur (jabber.org). Ensuite, le serveur de Bob contactera le serveur de Gilles (jabber.cz) via Internet et lui transférera le message. Enfin, le serveur jabber.cz pourra contacter le logiciel client de Gilles, s’il est en ligne et lui communiquer le message (sinon le message sera conservé en attente sur le serveur et délivré lorsque Gilles sera en ligne). Évidemment, toutes ces étapes se font de manière instantanée et transparente pour l’utilisateur, comme pour les courriers électroniques.

Bob
jabber.org
Internet
jabber.cz
Gilles


 
Le client Jabber libre Gajim.


 
Le client Jabber libre Spark.


Jingle permet les sessions de voix sur réseau IP et de visioconférence. Jingle est intégré dans plusieurs clients Jabber. Il a été utilisé par Google Talk jusqu'en 2014 avant que ce dernier soit remplacé par Google Hangout[32],[33].

Applications

modifier

Jingle, grâce à sa conception large, son évolutivité et sa standardisation, offre un large spectre d’applications :

  • discussion en ligne un à un (chat, clavardage), présence et discussion de groupe (groupchat)
  • VoIP et visioconférence ou plus généralement initialisation de sessions multimédia
  • notifications et alertes
  • middleware comme les ETL, EAI et ESB
  • applications d’édition collaborative en quasi-temps-réel comme les documents de bureautique (textes structurés, graphiques vectoriels, feuilles de calcul, présentation, etc.)
  • contrôle à distance
  • monitoring et supervision
  • réseaux sociaux
  • jeux en ligne

Standard ouvert, norme

modifier

Le protocole XMPP (Jabber) a été publié comme une ébauche (« draft ») par l’IETF, pour qu’il puisse devenir un standard de messagerie instantanée.

En 2002, le groupe XMPP a été formé et a travaillé sur la standardisation du protocole. C’est ainsi que le 4 octobre 2005, les spécifications du protocole ont été publiées en tant que RFC. Depuis cette date, la XMPP Standards Foundation a cédé le contrôle de ses principales technologies à l’IETF tout en continuant à développer de nombreuses extensions au protocole (série de XEP).

Avantages et inconvénients

modifier

Avantages

modifier
  • Libre : les protocoles et documents officiels sont détaillés et accessibles à tous en téléchargement
  • Standard : l’IETF a normalisé les bases du protocole (XMPP) et son évolution continue par ses extensions avec la XMPP Standards Foundation
  • Décentralisé : comme le courrier électronique, les services Jabber ne dépendent pas d’un seul point d’accès.
  • Sécurisé : la communication entre le client et le serveur peut être chiffrée à la demande du client et la communication entre serveurs est chiffrée
  • Extensible : il est possible de créer et documenter des extensions du protocole par les « XEP »
  • Flexible : Jabber est également utilisé dans de nombreuses autres applications que le simple chat : communication inter-applicative, collaboration quasi-temps-réel, supervision, diffusion de messages, etc.
  • Confidentialité : XMPP autorise le chiffrement OMEMO, OpenPGP[34] ou les protocoles OTR, S/MIME[35] et ZRTP[36], les serveurs intermédiaires ne peuvent alors pas observer le contenu des messages. Pour se prémunir contre les attaques de l'homme du milieu, il est recommandé de chiffrer les connexions vers les serveurs[37]. L'adresse IP ne peut pas être dévoilée si l'utilisateur de cette adresse IP ne vous a pas accepté dans sa liste de contacts[38]. Les informations sur un contact où les messages ne peuvent pas être échangés tant que les deux interlocuteurs n'ont pas confirmé l'ajout de l'autre dans sa liste de contact: ce qui limite le spam[39].
  • Adoption : XMPP est adopté par des grands noms : Google, IBM, Sun[réf. nécessaire], France Telecom [réf. nécessaire], SkyRock[réf. nécessaire], Wengo, Nokia[réf. nécessaire], Apple, Adobe, Process One, Jive Softwareetc.

Inconvénients

modifier
  • Effet réseau : les principaux systèmes de messagerie instantanée existants (MSN, AIM, Yahoo…) sont non interopérables, et leur effet réseau rend difficile la migration des utilisateurs à un autre système. Jabber est lui-même peu connu du grand public, et ne dispose pas de son propre effet réseau.
  • Audio et visio conférence : XMPP a été conçu comme un système de messagerie instantanée et de présence, transportant du texte structuré sous forme de flux XML. Après diverses tentatives, notamment avec le protocole de voix sur réseau IP SIP, la communauté XMPP s’est arrêtée en 2005 sur le protocole Jingle. La plupart des développeurs de clients XMPP attendaient une version finale de Jingle avant de vraiment commencer l’implémentation de ce protocole ce qui explique qu’à ce jour[Quand ?], peu de clients proposent la fonctionnalité de VoIP. Cependant, beaucoup[Qui ?] de logiciels ont une version de développement avec la prise en charge de Jingle.

Références

modifier
  1. (en) « XMPP Client Configuration », Cisco.
  2. (en) « Oracle® Communications Instant Messaging Server », sur oracle.com (consulté le ).
  3. (en) « Extensible Messaging and Presence Protocol (XMPP): Core », Request for comments no 6120,
  4. (en) « Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence », Request for comments no 6121,
  5. (en) « Extensible Messaging and Presence Protocol (XMPP): Address Format », Request for comments no 6122,
  6. a et b (en) Request for comments no 3920
  7. a et b (en) Request for comments no 3921
  8. a et b (en) « Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM) », Request for comments no 3922,
  9. a et b (en) « End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) », Request for comments no 3923,
  10. « XMPP », sur xmpp.org (consulté le )
  11. annonce sur Slashdot.
  12. http://xmpp.org/about/ietf-1999.shtml
  13. (en) Request for comments no 2778
  14. (en) Request for comments no 2779
  15. « Google Abandons Open Standards for Instant Messaging », EFF, (consulté le )
  16. (en) « Facebook Finally Ends XMPP Support For 3rd Party Chat - Slashdot », sur slashdot.org (consulté le ).
  17. (en) Florian Jensen’s Weblog » Blog Archive » AOL adopting XMPP aka Jabber.
  18. (en) After AOL, Yahoo! is also experimenting with XMPP - Process-one.
  19. « Petit état de l'art de (quelques aspects de) la messagerie instantanée », sur linuxfr.org (consulté le ).
  20. (en) psanni, « Inside Of WhatsApp : Part 1 », sur Sunny Patel, (consulté le )
  21. « WhatsApp? Nicht ohne Risiken. - Shakal », sur web.archive.org, (consulté le )
  22. « XMPP », sur xmpp.org (consulté le ).
  23. « XMPP », sur xmpp.org (consulté le ).
  24. « Petites brèves : Empathy, LibreOffice et Samba », sur linuxfr.org (consulté le ).
  25. (en) « Home », sur Windows Blog (consulté le ).
  26. (en) « MSN in Empathy with XMPP », sur gnome.org (consulté le ).
  27. Microsoft investit 240 millions de dollars dans Facebook, valorisé à 15 milliards « Copie archivée » (version du sur Internet Archive) - AFP, 25 octobre 2007
  28. « Microsoft achète Skype pour 8,5 milliards de dollars en numéraire », sur Le Point, (consulté le ).
  29. « Microsoft achète Skype pour 8,5 milliards en numéraire - high tech », sur Challenges.fr, .
  30. (en) Cisco Announces Definitive Agreement to Acquire Jabber.
  31. « Cisco rachète la société « Jabber, Inc. », XMPP et la XSF restent indépendants », Linuxfr.
  32. (en) « Google Abandons Open Standards for Instant Messaging », Electronic Frontier Foundation,‎ (lire en ligne, consulté le )
  33. Matt Landis, « Matt Landis Windows PBX & UC Report: Hangouts Won’t Hangout With Other Messaging Vendors: Google’s New Unified Messaging Drops Open XMPP/Jabber Interop », sur Matt Landis Windows PBX & UC Report (consulté le )
  34. (en) XMPP Extensions Editor, « XEP-0027 : Current Jabber OpenPGP Usage », sur xmpp.org (consulté le ).
  35. https://archive.wikiwix.com/cache/20080109000000/http://xmpp.org/protocols/urn:ietf:params:xml:ns:xmpp-e2e/.
  36. (en) XMPP Extensions Editor, « Xep-0262 : use of zrtp in jingle rtp sessions », sur xmpp.org (consulté le ).
  37. (en) XMPP Extensions Editor, « Xep-0070 : verifying http requests via xmpp », sur xmpp.org (consulté le ).
  38. (en) XMPP Extensions Editor, « XEP-0260 : Jingle SOCKS5 Bytestreams Transport Method », sur xmpp.org (consulté le ).
  39. (en) XMPP Extensions Editor, « XEP-0016 : Privacy Lists », sur xmpp.org (consulté le ).

Voir aussi

modifier

Sur les autres projets Wikimedia :

Articles connexes

modifier

Liens externes

modifier