Extensible Messaging and Presence Protocol (qu'on peut traduire par « protocole extensible de présence et de messagerie »), souvent abrégé enXMPP, est un ensemble deprotocolesstandardsouverts de l’Internet Engineering Task Force (IETF) pour lamessagerie 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’échangemultimédia par son extensionJingle, dont lavoix sur réseau IP (téléphonie sur Internet), lavisioconférence et l’échange de fichiers sont des exemples d’applications.
XMPP est constitué d'un protocole TCP/IP exploitant une architectureclient-serveur permettant les échanges décentralisés de messages instantanés ou non, entre clients, au formatExtensible Markup Language (XML). XMPP est en développement constant et ouvert au sein de l’IETF.
Les serveurs peuvent être privés (enintranet) 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).
le protocole de base contient les concepts fondamentaux pour faire fonctionner une infrastructure Jabber. Il est défini par lesRFC 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 ;
lesXMPP 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 simplemessagerie 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 dugrid computing, des notifications d’alertes ou d’informations, de lasupervisionsystème etréseau, ou lecloud computing (informatique en nuage). Enfin, XMPP est également utilisé dans le domaine du partage et de la collaboration en quasi-temps-réel comme letableau 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).
C’est en 1998 queJeremie Miller a inventé Jabber, un protocole de messagerie instantanée exploitant leXML. Ses travaux se sont inspirés deICQ, créé en 1996, le premier système du genre.
En janvier 1999, il annonce publiquement[11] surSlashdot « une plate-forme informatiqueopen 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 lesRFC 2778[13] et 2779[14] mais n’atteint pas de consensus.
Le serveuropen source jabberd 1.0 est publié en mai 2000 et stabilise le protocole. En juin, Jeremie Miller publie unInternet-Draft mais le délai est dépassé. Laversion 1.2 de jabberd introduit ledialback qui empêche les usurpations d’identités de serveurs.
LaJabber Software Foundation et la reconnaissance par l'IETF
LaJabber Software Foundation est créée en août 2001, afin d’assurer la coordination du nombre grandissant de développeursopen 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, desInternet-Draft sont à nouveau soumis à l’IETF en tant que XMPP Core et XMPP IM, et un XMPP WG (Working Group) est créé.
LesRFC 3920[6] XMPP-Core et 3921[7] XMPP-IM, ainsi que lesRFC 3922[8] CPIM et 3923[9] E2E, sont acceptées en octobre 2004.
La JSF devient en 2007 la XSF pourXMPP Standards Foundation, et propose des services d’autorité intermédiaire de certification TLS/SSL.
L’entrepriseGoogle publieGoogle 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 protocoleJingle, dont les spécifications sont publiées avec la bibliothèquelibjingle. 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étaireGoogle+ Hangouts[15].
En mai 2008, les développeurs deFacebook annoncent le support de XMPP pour leur application dechat. 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].
En janvier 2008,AOL, alors fournisseur des logiciels de messagerie instantanéeICQ etAIM (compatibles et exploitant le protocoleOSCAR), met en place un serveur expérimental permettant de se connecter via XMPP[17]. C’est donc une base deplus de 50 millions d’utilisateurs[réf. nécessaire] qui agrandit le réseau Jabber.
En février 2008,Yahoo!, propriétaire deYahoo! Messenger, annonce également s’intéresser à XMPP[18].Depuis, les serveurs peuvent se connecter aux autres serveurs XMPP[19]
Plusieurs éléments indiquent que l'application de messagerieWhatsApp a utilisé le protocole XMPP comme base[20],[21]. En 2024, un document de lajustice américaine met au jour queWhatsapp utilise FunXMPP sur ses infrastructures, comme adaptation de XMPP pour les communications[22].
En juin 2011,Skype annonce la création d'un connecteur XMPP sur la version Windows de leur logiciel client en développement[23]. 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].
En septembre 2011, Microsoft annonce queWindows Live Messenger (appelé aussi MSN (de MicroSoft Network)) va proposer un moyen de se connecter à leur messagerie instantanée via le protocole XMPP[24] à l'aide du système authentificationOAuth[25] dans l'optique de son nouveau système d'exploitationWindows 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[26].
Cette annonce a été vite suivie d'intégration dans lesclients de messagerie alternatifs supportant plusieurs protocoles[27].
Il peut être intéressant de relever que Microsoft a des parts dans Facebook[28] et a racheté Skype en mai 2011[29],[30]
En septembre 2008,Cisco annonce un accord de rachat de la sociétéJabber Inc.[31]. Ni XSF, la fondation à but non lucratif, ni le protocole XMPP ne sont concernés par ce rachat[32].
Bien que les deux noms coexistent, XMPP est préféré pour désigner le protocole. Jabber pouvant parfois être employé comme synonyme de XMPP mais pouvant également désigner l'entrepriseJabber Inc.
Jeremie Miller a mis le projet sur pied en1998 et la première version publique est sortie en mai 2000. La principale production du projet estjabberd, un serveurlibre permettant aux logicielsclients de se connecter pour discuter. Ce serveur permet soit de créer un réseau Jabber privé (derrière unpare-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 :
Le réseau des utilisateurs de XMPP est décentralisé, c’est-à-dire qu’il est composé de plusieurs serveurs, reliés entre eux. Il fonctionne de manière similaire à celle ducourrier é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 unearobase « @ ». Cet identifiant est appeléJabber ID ou plus simplement « adresse Jabber » ou « adresse XMPP ».
Par exemple, si un utilisateurbob@jabber.org souhaite communiquer avecgilles@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 serveurjabber.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.
applications d’édition collaborative en quasi-temps-réel comme les documents debureautique (textes structurés, graphiques vectoriels, feuilles de calcul, présentation, etc.)
Capture d'écran d'un message XML interchange transmis via le protocole XMPP
Le protocole XMPP (Jabber) a été publié comme une ébauche (« draft ») par l’IETF, pour qu’il puisse devenir unstandard de messagerie instantanée.
En2002, le groupeXMPP 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 queRFC. Depuis cette date, laXMPP 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).
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 laXMPP Standards Foundation
Décentralisé : comme le courrier électronique, les services XMPP 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 : XMPP 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 chiffrementOMEMO,OpenPGP[35] ou les protocolesOTR,S/MIME[36] etZRTP[37], les serveurs intermédiaires ne peuvent alors pas observer le contenu des messages. Pour se prémunir contre lesattaques de l'homme du milieu, il est recommandé de chiffrer les connexions vers les serveurs[38]. 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[39]. 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 lespam[40].
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 devoix sur réseau IPSIP, la communauté XMPP s’est arrêtée en 2005 sur le protocoleJingle. La plupart des développeurs declients 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.