Facile guida per chattare con XMPP

XMPP è uno dei pochissimi sistemi di chatting non in mano a delle aziende. 
XMPP è un protocollo aperto di messaggistica istantanea basato su XML. L’architettura di XMPP è simile alle email; chiunque può realizzare il proprio server XMPP e non si identificano server centrali (è decentralizzato).
In generale, usare XMPP è un poco meno comodo e immediato dell’esperienza tipica di una app commerciale, ma questo è dovuto al fatto che è un protocollo aperto e non un servizio erogato da un’azienda.

 

Di cosa hai bisogno: 

    1. Una casella mail sul server Autistici (si possono usare anche altri server)
    2. Un client XMPP
    3. Autenticarti sul client
    4. Aggiungere un contatto
    5. Attivare la crittografia OMEMO sul contatto

1. creare una casella mail autistici (se ce l’avete già saltate!)
Sui server di autistici (sono server compagni!) è installata l’architettura xmpp e se vi create una mail sul loro server potete iniziare ad usare xmpp. Le mail create con i servizi “Autistici/Inventati” sono anonime, tramite esse non è possibile arrivare alla vostra identità. Vi consiglio quindi di non utilizzare i vostri veri nomi e cognomi per la mail. 
La procedura per richiedere una nuova mail è molto semplice:
2)  “E-mail – Single mailbox” dovrebbe essere già selezionato, quindi clic su “continue”
3) scegliete la mail, quindi “continue”
4) Ora si aprirà un form dove potete scrivere (anche in italiano) perchè volete una mail autistici. Mi raccomando scrivete qualcosa di sensato, viene letto veramente da persone e vagliato quello che scrivete.
5) Fatto questo vi verrà restituito un link (da consevare, se lo perdete dovete riniziare da capo) dove in pochi giorni vi verrà comunicata l’attivazione della vostra mail. Quindi salvatevi da qualche parte questo link e tornateci il giorno dopo o quello successivo.

Nota bene: in questa guida si è scelto il servizio di Autistici, ma ci sono tanti altri server a cui si può chiedere un account (https://providers.xmpp.net/).

 

2. installare un client xmpp
Esistono una miriade di software per utilizzare xmpp.
Per Android vi consiglio “Conversations“, per installarla gratuitamente dovete scaricarla non dal play-store (a pagamento), ma potete scaricare e installare l’apk che trovatte qui (https://f-droid.org/packages/eu.siacs.conversations/), oppure da F-Droid (Qui una veloce guida https://wiki.eigenlab.org/Installare_F-droid#Guida_all’installazione_di_F-droid ). 

Per Windows, Mac o Linux vi consiglio Gajim (https://gajim.org/)
Per iOs potete provare ChatSecure (anche se io non lo ho mai provato)
ALTI CLIENT: Dino per Linux, Cheogram per Android, ecc.. poi magari ne trovate anche di migliori!

3. Autenticarsi
Se state usando una mail autistici, per autenticarvi sul vostro client XMPP lo user è la vostra mail e la password è la password della vostra mail 

4. Ora puoi chattare con qualcuno
per conversare con un’altra persona basta farsi passare la sua mail con cui usa xmpp, e aggiungere il contatto.
(ora stai chattando in chiaro = tutti i messaggi sono intercettabili e leggibili da altrii)

5. crittografia OMEMO | Ora puoi chattare con qualcuno usando la
crittografia
XMPP supporta la crittografia OMEMO. Questo vuol dire che se attivi la crittografia OMEMO e la persona con cui parli la supporta, i messaggi saranno criptati, solo tu e il destinatario saranno in grado di leggerli, anche chi ha accesso al server da dove passano i messaggi (in questo caso Autistici) non potrà leggerli. In parole povere: meglio se quando chatti attivi questa funzionalità!
Su Conversations basta cliccare sul lucchetto in alto su una schermata di chat con qualcun. Su Gajim (PC) mi sembra che devi installare l’estensione (dal menu in alto: Gajim->Estensioni, seleziona OMEMO, clicca sul quadrato in basso per scaricarla e installarla)
(crittografia = tutti i messaggi sono intercettabili ma non leggibili da altri)

6. Buona chat!

Di seguito altre informazioni utili….

 

Impostare i messaggi Effimeri sui vostri client:

I messaggi effimeri sono dei messaggi a scomparsa che permettono di comunicare qualcosa e scomparire nel tempo impostato.
Gajim: clicca in alto sul menu Account -> Modifica gli account.. quindi seleziona l’account per cui vuoi attivare i messaggi effimeri, seleziona privacy e qui clicca su “Conserva Cronologia Conversazioni” quindi la durata dei messaggi effimeri.
Conversations: clicca sui tre punti in alto a Destra, quindi Impostazioni, quindi Clicca su “Sicurezza”, quindi ultima voce in basso “Eliminazione automatica dei messaggi”.
I messaggi effimeri sui client che ho provato non si possono impostare in modo diverso per ogni singola chat (come Whatsup, telegram o signal), ma si possono impostare sui singoli client in modo globale (stessa durata dei messaggi per tutte le chat), si questo può essere scomodo.

Attenzione la gestione dei messaggi effime
ri (a scomparsa) viene gestita in modo totalmente diverso rispetto Signal/whatsapp/telegram. La scomparsa dei messaggi viene gestita a livello locale, dai propri client. Questo vuol dire che se ad esempio hai impostato sul tuo client Android i messaggi con scomparsa ad un giorno, mentre sul tuo client Windows hai lasciato i messaggi a scomparsa disattivati apparirà comunque tutta la cronologia completa sul tuo client Windows, mentre sul tuo client Android solo i messaggi relativi all’ultima giornata.
Quindi in poche parole, cosa consiglio? se vuoi avere i messaggi effimeri devi impostare manualmente tutti i tuoi client con i messaggi effimeri attivi (magari con la stessa temporalità).
MA NOTA BENE: se la persona con cui chatti non ha impostato i messaggi effimeri, sul suo client rimarranno tutti i messaggi anche se tu hai impostato tutti i tuoi client in messaggi effimeri!  Questa è una importante differenza rispetto ai software più famosi ( Signal/whatsup/telegram), che è necessario tenere bene a mente!

Eliminare TUTTA la cronologia delle chat sui vostri client:
Gajim: clicca sul menu in alto Gajim -> Preferenze, quindi nella finestra che si apre su “Avanzate”, quindi “Elimina cronologia conversazioni”
Conversations: non mi sembra sia possibile, nel caso forse ti conviene disinstallare l’app. Per le singole chat è molto semplice, basta entrare in una chat, clicca sui 3 puntini in alto a destra, quindi “Svuota la Cronologia”.

 

I tuoi messaggi rimangono sul server di Autistici?
Abbiamo già detto che sul server di Autistici i messaggi una volta letti dal destinatario vengono eliminati dal server, ma se il destinatario non legge mai il messaggio? Imagginiamo ad esempio una chat di gruppo privata dove alcuni utenti non si collegano per mesi. Nel server autistici è stato impostato un tempo massimo (una settimana) che se superato vengono eliminati.

Se ti interessa anche sapere come viene impostato questo sul server, lo puoi trovare in questo link: https://prosody.im/doc/modules/mod_mam

 

Problemi più comuni: non riesci a vedere un gruppo privato a cui ti hanno invitato?
Questo a volte viene risolto facendo rimandare l’invito al gruppo mentre sei online. Stai però attentu che vedere l’invito al gruppo in alcuni client non è una delle cose più intuitive. Su gajim da windows appare un numerino sul simbolo del tuo account in basso a sinistra, cliaccandoci avrai poi modo di accettare l’invito. Su gajim di linux invece dovrebbe apparirti una finestra pop-up.

 


Problemi più comuni:  non riesci a scrivere in un gruppo privato a cui ti hanno invitato? Vedi i messaggi delle persone, ma quando scrivi ed invii un messaggio ti viene restituita una finestra tipo questa qui a destra.

errore nello scrivere in un gruppo privato xmpp
Premettiamo che le chat private con OMEMO difficilmente funzionano bene con molti partecipanti che  non si conoscono.
Il problema riscontrato è che si riesce a legger i messaggi e anche a scrivere ma se si invia il messaggio si viene indirizzati ad una finestra in cui la ricezione chiavi è disabilitata (vedi immagine sulla destra di Conversations).
Finchè gli utenti elencati nella schermata non saranno online così da poter scambiar le chiavi non potrà inviare messaggi cifrati.
Quello che può fare l’utente è di scrivere non cifrato (disabilitando OMEMO). Ad esempio, su Conversations basta cliccare sul lucchetto in alto a destra e selezionare “in chiaro”.
Se poi si desidera comunque scrivere con la cifratura omemo in un gruppo privato (non anonimo quindi con Jid visibili) conviene che i partecipanti siano contatti salvati nelle rubriche reciproche e sottoscrivano la presenza. Per fare questa ultima cosa, bisogna andare nei dettagli di un contatto e selezionare “Invia aggiornamenti della presenza”, “Ricevi aggiornamenti della presenza” (almeno su Conversations/Cheogram le chiama così). Queste opzioni “di presenza” contengono anche le chiavi OMEMO. Questo facilita il corretto scambio delle chiavi (specie se qualche partecipante ha più dispositivi/client e qualcuno di questi magari é online raramente), ma non è obbligatorio, potrebbe anche solo bastare che siano on line nel momento in cui l’altro prova a scrivere, così da ricevere e scambiare la chiave.
Un’altra strategia alternativa a quella di essere nelle rubriche reciproche è quella di mandare un messaggio senza omemo all’inizio della conversazione, e poi attivare OMEMO successivamente. Se si desidera uttilizzare la crittografia OMEMO nel gruppo privato si consiglia dopo i primi messaggi di attivare la crittografia OMEMO perchè se un partecipante non é contatto degli altri e non scrive mai cifrato, non dà agli altri la possibilità di capire quali chiavi utilizza.

 

Problemi più comuni:  aprendo una chat da un mio nuovo client, sono oscurati i messaggi pregressi

E’ normale, questo accade perchè nessuno ha mai potuto cifrare quel particolare dispositivo, che era ancora ignoto.

Cosa è XMPP spiegato meglio e con le slide:

Altre nozioni più avanzate su XMPP:
XMPP (in precedenza “jabber”) è un protocollo di messaggistica basato su XML    -> XMPP: https://en.wikipedia.org/wiki/XMPP
Le XEP sono le estensioni/plugin XMPP. Ogni server decide autonomamente quali XEP utilizzare    -> XEP: https://xmpp.org/extensions
OMEMO è la crittografia più utilizzata su XMPP ma esistono altri protocolli di crittografia di XMPP come ad esempio PGP e OpenPGP     -> OMEMO: https://conversations.im/omemo
Per funzionare si ha bisogno di un server e almeno due client

– la parte server ha bisogno di essere hostata e mantenuta su una VPS o server fisico  -> ad esempio il server (servizio) offerto da https://www.autistici.org
– i client invece sono APP/programmi che permettono a uno user di connettersi alla rete XMPP 

XMPP è basato su una struttura federata. In poche parole esistono tanti server XMPP (come su Mastodon, le e-mail ecc).
Così come un servizio mail, bisogna avere un account su un server che offre il servizio XMPP ed essendo anche la parte client open source, esistono svariati programmi per pc e app smartphone (appunto, i cosidetti “client”). 

Quindi, ognuno deve trovare il proprio server e client preferito oppure crearne di nuovi.

 

Note più avanzate: i tuoi Client non sono sincronizzati.

Se usate il server di Autistici le varie app (client) che usate non sono sincronizzate fra loro

Potrebbe capitarvi che ricevete un messaggio sull’app del cellulare, ma poi se andate sul software che usate sul vostro computer non vi ritrovate più il messaggio. Questo è dovuto al fatto che sul server di Autistici (altri server lavorano in modo diverso come ad esempio disroot) non vengono salvati i messaggi se non per il tempo di consegna al primo client, quindi una volta ricevuto un messaggio su un client, se un’altro client che usate non è in quel momento aperto, non riceverà il messaggio.

 


Note più avanzate: XMPP è decentrato
per messaggiare con una persona non esiste solo la mail autistici, ma ci sono anche tanti altri server che una volta registrati ti possono fornire un account (Jid). Qui un elenco di alternative: https://providers.xmpp.net/ . Se hai intenzione di installare Conversations, quando lo lanci per la prima volta e devi loggarti hai anche la possibilità di creare un jid gratuito da loro. Il fatto che non ci sia un unico server di riferimento come quasi tutti gli altri sistemi di messaggistica indica la presenza di una federazione di server, rendendo il sistema non centralizzato. Chiunque in può creare un server per ospitare degli account, questo lo rende un sistema molto molto difficile da controllare.

 

Note più avanzate: Contatto utente = Jid

Il contatto di un utente ha una dicitura come un indirizzo mail (nome_utente@nome_server), e viene chiamato “JID” (Jabber ID). Il tuo Jid è il tuo identificatore sul network XMPP. E’ come la tua email, ma usato per chattare.
In xmpp due persone possono scambiare messaggi senza essere contatti, cioè  inclusi nella lista degli xmpp id noti al proprio account (il cosiddetto `roster`).
L’inclusione nella lista contatti é sempre soggetta all’approvazione del candidato all’inclusione, che può accordarla o meno.
Di solito chi accorda richiede a sua volta l’inclusione, e da al nuovo contatto la possibilità di vedere il proprio stato online (presenza), e viceversa. Tra i dati di “presenza” cui si dà accesso ci sono anche le impronte delle chiavi OMEMO dei propri dispositivi.

Questo tipo di flessibilità e rispetto della riservatezza é generalmente sconosciuta ad altri sistemi di messaggistica, in particolare a quelli che usano il numero telefonico come id e frugano nella rubrica telefonica assegnando a chiunque trovano lo status di contatto.

Note più avanzate: crittografia OMEMO
XMPP supporta la crittografia OMEMO. Questo vuol dire che se attivi la crittografia OMEMO e la persona con cui parli la supporta, i messaggi saranno criptati, solo tu e il destinatario saranno in grado di leggerli, anche chi ha accesso al server da dove passano i messaggi (in questo caso Autistici) non potrà leggerli. In parole povere: meglio se quando chatti attivi questa funzionalità!

Per poter leggersi a vicenda con la crittografia OMEMO due utenti hanno bisogno di scambiarsi le chiavi o dette “Impronte”. 

Un utente ha una chiave o impronta Omemo per ogni client che utlizza.

 

Note più avanzate: Gruppi Privati e Pubblici (MUC)
I gruppi in XMPP vengono chiamati muc (multi-user-chat).
I gruppi privati che si creano non sono anonimi perchè mostrano gli indirizzi degli utenti (Jid), quindi ogni partecipante può vedere gli indirizzi di tutti gli/le altr* patecipant*.
I gruppi semianonimi (o completamente anonimi, ma in questi non c’è possibilità di moderare) sono gruppi pubblici dove solo gli admin conoscono lo jid degli altri.
Questo preserva la privacy degli utenti.
E non conoscendo lo jid dei partecipanti non può esserci condivisione chiavi/presenza, quindi non è nemmeno attivabile omemo.
Quando si crea un Canale Pubblico, lo si può impostare in differenti modi, il proprietario del canale può difatti assegnare vari ruoli a chi si iscrive al canale e può anche decidere che l’unico abilitato a scriverci sia lui stesso (come sui canali Telegram).

 

 

Note più avanzate: documentazione relativa xmpp

https://dev.to/codemouse92/irc-netiquette-and-you-doa (modalità comportamentali)

 

Sistemi di messaging alternativi a XMPP
Attualmente l’unico software che ci è sembrato poter competere con XMPP è “Delta Chat“, anche lui decentrato e open source, ma probabilmente con una comunità meno variegata e meno ampia. https://delta.chat/it/
Ultima modifica all’articolo: 25/11/2024