Infrastrutture e funzioni della rete Jabber
Come nel caso di AIM, ICQ e Windows Live Messenger, anche l'archittetura di Jabber si basa su server. Di norma, comunque, le connessioni tra client e server sono protette via codifica SSL o StartTLS.
Potete impostare un server Jabber nella vostra rete locale. Una possibilità molto interessante per gli usi professionali, visto che le conversazioni tenute via Jabber non escono mai dalla propria LAN. Gli amministratori locali hanno la possibilità di gestire l'accesso ai servizi Jabber, e di limitarne l'uso a determinati utenti o gruppi.
La rete pubblica di Jabber su internet, d'altra parte, è fatta di diversi servers indipendenti, ognuno dei quali gestisce l'identità dei propri utenti. I servers comunicano tra loro tramite un protocollo speciale che, se lo desiderate, può essere criptato. Questo tipo di comunicazione, da server a server, si rende necessaria solo quando un utente registrato sul server 1 vuole contattare un utente sul server 2. Vista la somiglianza tra il protocollo Jabber e quello della posta elettronica, queste comunicazioni possono anche appoggiarsi al Domain Name System (DNS) per determinare gli indirizzi, abilitando il Server 1 a determinare se è possibile contattare il server 2, e a quale indirizzo.
Anatomia di un indirizzo Jabber
Un indirizzo Jabber è costruito in maniera molto simile ad uno email. Un'identità Jabber (JID) ha una forma del tipo nodo@dominio.tld, che li rende anche facili da ricordare. Il client, poi, può anche essere associato a diverse fonti di dati, con un sistema che ricorda Mac OS. Quindi per un utente è possibile stabilire connessioni parallele ad un server, usando la stessa JID per ogni connessione. Quindi potrebbe creare una connessione permanente da casa con una certa JID, ma usare la stessa per collegare il portatile che usa quando si sposta. Il sistema permette a Jabber di determinare esattamente quale IP usare all'interno di una conversazione.
Esistono diversi livelli possibili, quanto a crittografia: si possono crittografare le comunicazioni client-server, quelle server-server e anche client-client. L'utente può usare uno di questi metodi a sua scelta. Come con la posta elettronica, si può usare il metodo S/MIME. Tuttavia, questa scelta prevede che siano inviate molte informazioni aggiuntive, e porta con sé importanti difficoltà d'uso; quindi la maggior parte degli sviluppatori Jabber tendono a tralasciarlo, nello sviluppo del client.
Uno dei metodi più comuni nella comunità Jabber è basato su Open PGP, descritto in una pagina dedicata (Jabber Open PGP Usage, in inglese); questo metodo deve ancora essere riconosciuto come Internet Standard, ma non è l'unica pecca. La crittografia OpenPGP, infatti, ha una vulnerabilità, legata al fatto che le chiavi non possono essere cambiate per lunghi periodi di tempo, quindi se qualcuno riesce a rubare o bucare il sistema, sarà facile accedere alle comunicazioni. Questo problema permette anche a operatori non autorizzati di scoprire chi sia coinvolto in una data conversazione, chi ha detto cosa e a che ora.
Senza la chiave giusta, la decodifica è impossibile. È un bene, perché la crittografia nella messaggistica istantanea ha la stessa importanza che nella posta elettronica.
Per arginare queste vulnerabilità, è stata creata una forma di messaggistica nuova (OTR, off-the-record). In questo contesto vengono inserite delle chiavi temporanee usa e getta, che vengono cambiate spesso durante la conversazione. Il sistema OTR usa una libreria sviluppata da Ian Goldberg e Nikita Borisov, e usa AES, SHA1-HMAC e diversi algoritmi RSA, per gestire lo scambio di chiavi e il tracking. Le chiavi vengono condivise tramite un protocollo specifico, il Diffie-Hellman.
Il terzo metodo di crittografia di Jabber è, al momento, allo stato sperimentale. La sua descrizione è documentata, in inglese, in questa pagina. Questa tecnica usa SSH, Protocollo di trasporto a maschera SSH e OTR, e potrebbe, in futuro, surclassare i due metodi precedenti. Ma per ora XMPP.org raccomanda di usarlo solo per fini sperimentali.
I metodi crittografici disponibili per i client Jabber dipendono, sostanzialmente, dalle scelte degli sviluppatori. Chi fosse interessato a esplorare i metodi OTR dovrebbe controllare i plug-in disponibili, che sono numerosi.