Protokol XMPP (Extensible Messaging and Presence Protocol), prej znan kot Jabber, je odprt in razširljiv standard za takojšnje sporočanje in upravljanje prisotnosti v omrežju. Temelji na XML in določa način, kako odjemalci in strežniki izmenjujejo sporočila, stanje uporabnikov (prisotnost) in poizvedbe med seboj.

Za razliko od številnih lastniških sistemov je XMPP decentraliziran in odprt: vsakdo z ime domene in dostopom do interneta lahko upravlja svoj strežnik, uporabniki pa se lahko medsebojno povezujejo preko različnih strežnikov, podobno kot pri elektronski pošti. Večina programske opreme in odjemalcev, povezanih z XMPP, je odprtokodna.

Drugi ponudniki in programi (vključno z nekaterimi zgodnejšimi rešitvami) so prav tako uporabljali XMPP; primeri iz preteklosti so Google Talk in Gizmo5. XMPP strežniki so razširjeni po celem internetu — nameščen je na tisoče strežnikov — in ga uporablja več sto milijonov uporabnikov.

Kako deluje

XMPP uporablja model odjemalec–strežnik. Uporabniški naslov (JID, Jabber ID) ima obliko uporabnik@domena (pogosto z dodatkom /resource). Glavne vrste sporočil (stanza) so:

  • message – za posredovanje besedilnih sporočil;
  • presence – za obveščanje o dosegljivosti in stanju uporabnika (na voljo, zaseden, odsoten …);
  • iq (info/query) – za poizvedbe in nastavitev podatkov med odjemalcem in strežnikom.

Razširitve in funkcionalnosti

XMPP je zasnovan kot jedro s številnimi razširitvami (XEP – XMPP Extension Protocol), ki dodajajo funkcije, kot so:

  • avtorizacija stikov in upravljanje imenika (roster);
  • prenos datotek in prenos glasovnih/večpredstavnostnih klicev (Jingle);
  • prikaz avatarjev, skupinski klepet (MUC – multi-user chat), obvestila in koledarji;
  • napredne varnostne razširitve za šifriranje od konca do konca, npr. OMEMO, OTR ali OpenPGP.

Varnost in standardizacija

XMPP podpira varnostne mehanizme, kot sta TLS za varno povezavo med odjemalcem in strežnikom ter SASL za overjanje uporabnika. Za end‑to‑end šifriranje se uporabljajo dodatne razširitve (OMEMO je v zadnjem času pogosto uporabljana). Protokol je opredeljen v nizu standardov (RFC in XMPP dokumentov) ter ga razvija skupnost in organizacije, kot je XMPP Standards Foundation.

Primeri strežnikov in odjemalcev

Na trgu so na voljo različne implementacije strežnikov (npr. ejabberd, Prosody, Openfire) in odjemalcev za namizje in mobilne naprave. Med odjemalci sta v Sloveniji in širše poznana Pidgin in iChat, na voljo pa so tudi Gajim, Conversations, Dino, Psi, Swift in drugi.

Prednosti in omejitve

  • Prednosti: odprtost, decentralizacija (federacija), velika razširljivost preko XEP-ov, možnost gostovanja lastnega strežnika in izbira različnih odjemalcev.
  • Omejitve: interoperabilnost lahko zahteva dodatne razširitve (XEP), konfiguracija lastnega strežnika zahteva tehnično znanje in nekatere napredne funkcije (kot so E2E šifriranje) so odvisne od podpore odjemalca in strežnika.

Kako začeti z XMPP

Če želite začeti uporabljati XMPP:

  1. Izberite odjemalca za svojo napravo (namizje ali mobilno).
  2. Ustvarite uporabniški račun pri obstoječem javnem strežniku ali postavite svoj strežnik, če želite popoln nadzor.
  3. Povežite se z drugimi uporabniki z njihovim JID (uporabnik@domena) in po potrebi nastavite varnostne razširitve (npr. OMEMO) za šifriranje pogovorov.

XMPP ostaja priljubljena izbira za organizacije in posameznike, ki želijo odprto, razširljivo in federirano rešitev za takojšnje sporočanje ter upravljanje prisotnosti v spletu.