Protokol XMPP (Extensible Messaging and Presence Protocol) (pôvodný názov Jabber) je protokol na okamžité zasielanie správ. Je inšpirovaný XML.

Od väčšiny protokolov sa líši tým, že ide o otvorený štandard. To znamená, že každý, kto má doménové meno a internetové pripojenie, môže spustiť vlastný server. Väčšina softvéru a klientov má otvorený zdrojový kód.

Ďalší softvér, ako napríklad Google Talk a Gizmo5, používa protokol XMPP. Je nainštalovaný na tisícoch serverov na internete. Softvér založený na tomto protokole používa viac ako päťsto miliónov používateľov. Medzi klientov patrí Pidgin a iChat.

Čo je XMPP a ako funguje

XMPP je decentralizovaný komunikačný protokol postavený na XML správoch (tzv. „stanzas“). Základné typy stánz sú message (správa), presence (informácia o dostupnosti) a iq (informačný dotaz/odpoveď). Klient sa pripája na server (typicky cez TCP na porte 5222, prípadne cez WebSocket alebo BOSH pre webové aplikácie) a server potom smeruje správy medzi používateľmi, prípadne medzi rôznymi servermi – to umožňuje federáciu podobne ako pri e‑maile.

Hlavné vlastnosti

  • Prítomnosť: informácie o stave používateľa (online, offline, zaneprázdnený a pod.).
  • Okamžité správy: textové správy, skupinové chaty (MUC).
  • Federácia: rôzne servery sa môžu navzájom spájať, takže používatelia na rôznych doménach si môžu navzájom písať.
  • Rozšíriteľnosť: XMPP má modulárnu štruktúru; nové funkcie sa pridávajú pomocou XEP (XMPP Extension Protocols).
  • Otvorený štandard: špecifikácie sú verejné, implementácie môžu byť otvorené alebo uzavreté.

Bezpečnosť a šifrovanie

Štandardne XMPP podporuje zabezpečenie spojenia pomocou TLS a autentifikáciu cez SASL. Pre end‑to‑end šifrovanie medzi koncovými zariadeniami sa využívajú rozšírenia a protokoly tretích strán, napr. OTR, OpenPGP a moderné OMEMO, ktoré poskytuje šifrovanie správ aj pre skupinové chaty a synchronizáciu medzi viacerými zariadeniami. Typické nasadenie by malo mať povolené TLS a overovanie certifikátov, aby sa predišlo útokom typu man‑in‑the‑middle.

Implementácie a klienti

Existuje množstvo serverových a klientských implementácií, často s otvoreným zdrojovým kódom. Medzi známe serverové riešenia patria ejabberd, Prosody a Openfire. Klientov je tiež mnoho: okrem už spomenutých Pidgin a iChat nájdete Gajim, Conversations (Android), Dino (Linux), Swift (macOS) a ďalšie.

Rozšírenia a štandardy (XEP)

XMPP je základný rámec, ktorý sa rozširuje cez XEP (XMPP Extension Protocols). Pomocou XEP môžete pridať funkcie ako zdieľanie súborov, audio/video volania (signaling), oznamy o písaní, nickservy, viacero zariadení, push notifikácie a pod. Komunita aktívne navrhuje a schvaľuje nové XEPy cez XMPP Standards Foundation (predtým Jabber Software Foundation).

Použitie a prípady nasadenia

XMPP sa používa nielen pre bežné chatovanie, ale aj pre systémy na odosielanie notifikácií, instantné spolupráce, herné servery, IoT komunikáciu a signaling pre VoIP/video hovory. Vďaka federácii je vhodný tam, kde je dôležitá nezávislosť infraštruktúry a interoperabilita medzi organizáciami.

Výhody a nevýhody

  • Výhody: otvorenosť a decentralizácia, široká podpora, flexibilita cez XEP, možnosť vlastného servera.
  • Nevýhody: XML môže byť verbózny (vyššia režijná záťaž), nie vždy sú všetky rozšírenia univerzálne podporované medzi klientmi/servery (fragmentácia), implementácia end‑to‑end šifrovania môže vyžadovať ďalšie konfigurácie alebo zásuvné moduly.

Ako začať s XMPP

Ak chcete XMPP vyskúšať, môžete si buď zriadiť účet na verejnom XMPP serveri, alebo nainštalovať vlastný server na doméne, ktorú vlastníte. Potom si vyberiete klienta podľa zariadenia a preferencií a prihlásite sa pomocou JID (Jabber ID) vo formáte užívateľ@domena. Pre lepšiu bezpečnosť povoľte TLS a zvážte použitie OMEMO alebo iného end‑to‑end riešenia.

Záver

XMPP zostáva silným a flexibilným protokolom pre okamžité správy a prítomnosť, obzvlášť tam, kde sú dôležité otvorené štandardy, federácia a možnosť vlastného nasadenia. Hoci sa v niektorých oblastiach stretáva s konkurenciou moderných centralizovaných služieb, jeho modulárnosť a komunita ho držia relevantným pre široké spektrum použití.