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í.