XMPP: differenze tra le versioni

Da EigenWiki.
Vai alla navigazione Vai alla ricerca
m (chpwd)
Nessun oggetto della modifica
Riga 19: Riga 19:
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni.  
* Carbons [https://modules.prosody.im/mod_carbons.html  XEP-0280] Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni.  
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo ''"il contatto sta scrivendo"'' quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...
* [https://modules.prosody.im/mod_csi.html CSI], [https://modules.prosody.im/mod_throttle_presence.html throttle presence] e [https://modules.prosody.im/mod_filter_chatstates.html filter_chatstates]. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo ''"il contatto sta scrivendo"'' quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...
* HTTP File Upload [https://modules.prosody.im/mod_http_upload.html XEP-0363] consente l'upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con PGP e l'oggetto della mail). Consente l'invio di foto e file nelle MUC.
== Sicurezza: OTR, PGP, OMEMO==
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra ''dispositivi diversi usati dallo stesso account'', mentre con [https://gajim.org/ Gajim] (desktop) e [https://conversations.im/ Conversations]  (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L'unica pecca è che ancora poco supportato da altri client.
Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.
Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso.
Conversation lo supporta di default, anche qui bisogna verificare la chiave del contatto.
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.


== Guida ==
== Guida ==
Riga 29: Riga 40:
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.
[https://gajim.org/ Gajim] è il più completo client desktop per numero di plugin e di XEP recenti supportate.


===== Installazione =====
In Arch <code>gajim gajim-omemo python2-qrcode</code> ''(da controllare)''
In debian stable bisogna abilitare ''jessie-backports''
<code>sudo nano /etc/apt/sources.list</code> e aggiungere la riga <code>deb http://ftp.debian.org/debian jessie-backports main</code>
Poi dare i comandi:
<code>sudo aptitude update
sudo aptitude -t jessie-backports install gajim-omemo gajim
sudo aptitude install python-qrcode</code>
===== Configurazione =====
Aprendolo per la prima volta devi configurare il tuo account dal menu <code>Modifica → account</code>. C'è sempre un account 'Local' ma non so a cosa serva. Tu aggiungi un nuovo account e metti l'ID Jabber seguito da <code>@eigenlab.org</code> e la password dell'utenza che ti sei fatta creare. Finito.  
Aprendolo per la prima volta devi configurare il tuo account dal menu <code>Modifica → account</code>. C'è sempre un account 'Local' ma non so a cosa serva. Tu aggiungi un nuovo account e metti l'ID Jabber seguito da <code>@eigenlab.org</code> e la password dell'utenza che ti sei fatta creare. Finito.  


Riga 38: Riga 65:


Per cambiare la propria password, dal menu <code>Account -> Operazioni amministrative → cambia la password</code>.
Per cambiare la propria password, dal menu <code>Account -> Operazioni amministrative → cambia la password</code>.
Si può entrare in una MUC (chatroom o stanza) dal menu <code>Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta</code>
Nella finestra che apparirà conviene selezionare "Aggiungi questa stanza ai segnalibri", che rende accessibile la stanza dal menu <code>Azioni → Entra in una conversazione di gruppo</code>. Selezionando "Entra automaticamente in questa stanza alla connessione" gajim entrerà nella stanza al login.
Per non vedere i cambiamenti di stato di tutti i contatti nella MUC <code>Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: "nessuno"</code>.
Se sei non in linea o desincronizzato, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando "diponibile" tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch <code>farstream-0.1</code> e in Debian e derivate <code>python-farstream e gstreamer-plugins-bad</code>
===== Plugin =====
I nuovi plugin si installano dal menu <code>Modifica → Plugin → Available</code>
Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda "installed".
* Client icons: Mostra una icona che rapresenta il client usato, nell'elenco dei contatti.
* Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra <code>Modifica → plugin → emoticon</code>, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in <code>Preferenze → emoticon</code> e seleziona Twemoji resized.
* Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, "send file via http" e "send image via http". Il vecchio trasferimento da client a client è ancora disponibile con il pulsante "invia dei file".
* Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in <code>Modifica → Olugin → Url image preview → Configura</code> sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull'immagine si può aprirla, salvarla o copiare il link originale.
'''Riavviare Gajim dopo aver abilitato i plugin'''
===== OMEMO =====
Dopo averlo abilitato il plugin si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l'icona con il pesce. Lì si può abilitare omemo nella chat. Cliccando "fingerprints" si possono verificare le fingerprint del contatto. Nella finestra "own devices" ci sono invece le fingerprint dei propri dispositivi, es. smartphone con conversation. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.
È possibile visualizzare la propria fingerprint da <code>Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org</code>, dove è presente anche il qr-code utilizzato nella verifica da Conversations.


=== Conversations===  
=== Conversations===  
Riga 47: Riga 100:
===XabberDev===
===XabberDev===
XabberDev.
XabberDev.
== Sicurezza: OTR, PGP OMEMO==
Con [https://en.wikipedia.org/wiki/Off-the-Record_Messaging OTR] é quasi impossibile avere le conversazioni cifrate fra ''dispositivi diversi usati dallo stesso account'', mentre con [https://gajim.org/ Gajim] (desktop) e [https://conversations.im/ Conversations]  (Android) è possibile usare [https://conversations.im/omemo/ OMEMO], un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L'unica pecca è che ancora poco supportato da altri client.
Per poterlo usare in Gajim va installato un plugin dal menu interno al programma. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso.
Conversation lo supporta di default, anche qui bisogna verificare la chiave del contatto.
Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device, si può abilitare andando sul proprio profilo utente e confermando la chiave.





Versione delle 03:15, 5 dic 2016

XMPP è un protocollo di chat federato: questo vuol dire che chiunque abbia un'istanza di un server XMPP può comunicare con il resto dell'intera rete anche se gli account di chat sono su server diversi.

XMPP permette la messaggistica istantanea (chat) singola o a gruppi, ha una rubrica per i contatti, ed è tanto estensibile da permettere lo scambio di file, comunicazioni criptate, e molto altro ancora.

Il nostro servizio XMPP

Abbiamo installato Prosody sopra Zenzero. Il server che abbiamo installato ha però 2 restrizioni importanti:

  • I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;
  • I server (per la federazione) possono connettersi solo se supportano la cifratura della connessione fra server e server.

Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta.

Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione 'in-band', se vuoi un'account scrivi a info[at]eigenlab[dot]org.

Estensioni

Abbiamo installato alcuni moduli per implementare alcune XEP, qui una lista parziale ed in aggiornamento:

  • MUC XEP-0045 conference.eigenlab.org per le chat di gruppo.
  • SMACKS XEP-0198 per riesumare una sessione interrotta per la caduta della connessione.
  • MAM XEP-0313 per l'archiviazione dei messaggi sul server fino ad una settimana così da poterli recuperare se sì è offline per un po'. Ogni utente può scegliere la sua configurazione per questo modulo.
  • Carbons XEP-0280 Per poter ricevere le conversazioni su tutti i dispositivi che supportano questa estensione. In questo modo è possibile chattare al pc e continuare poi sul telefono o sul portatile, come permettono di fare anche altri client di chat moderni.
  • CSI, throttle presence e filter_chatstates. Una serie di moduli specifici per i dispositivi mobile, permettono di decidere se ricevere o meno le notifiche di presenza di un contatto o quelle tipo "il contatto sta scrivendo" quando il dispositivo è in tasca/in uno stato di basso consumo/ecc...
  • HTTP File Upload XEP-0363 consente l'upload di foto e file sul server, in modo che i client si scambino solo un link e non traferiscano il contenuto del file. I file rimangono a disposizione sul server, e se la chat è cifrata con OMEMO, il loro contenuto non è leggibile se non dal destinatario (il nome del file invece è in chiaro, in modo simile a quanto accade con PGP e l'oggetto della mail). Consente l'invio di foto e file nelle MUC.

Sicurezza: OTR, PGP, OMEMO

Con OTR é quasi impossibile avere le conversazioni cifrate fra dispositivi diversi usati dallo stesso account, mentre con Gajim (desktop) e Conversations (Android) è possibile usare OMEMO, un nuovo protocollo di cifratura sviluppato per Signal che permette una cifratura indolore anche fra device diversi. L'unica pecca è che ancora poco supportato da altri client.

Il supporto OTR in Gajim è disponibile con un plugin, che però è scritto male e non garantisce sicurezza. Gli stessi creatori sconsigliano di utilizzarlo.

Per poter usare OMEMO in Gajim va installato un plugin dal gestore di pacchetti di sistema, perchè per motivi oscuri il plugin manager non riesce ad installarlo. Alla prima connessione con un contatto che supporta OMEMO verrà richiesto se fidarsi della chiave con cui si è presentato: è buona norma verificare la chiave attraverso un mezzo diverso. Conversation lo supporta di default, anche qui bisogna verificare la chiave del contatto.

Per poter ricevere i messaggi sia su Gajim che su Conversations usando OMEMO bisogna fidarsi delle proprie chiavi su entrambi i device.

Guida

Come si fa in generale a:

  • cambiare la password?
  • trovare nuovi contatti / chatroom?
  • gestione sullo smartfono?

Gajim

Gajim è il più completo client desktop per numero di plugin e di XEP recenti supportate.

Installazione

In Arch gajim gajim-omemo python2-qrcode (da controllare)

In debian stable bisogna abilitare jessie-backports

sudo nano /etc/apt/sources.list e aggiungere la riga deb http://ftp.debian.org/debian jessie-backports main

Poi dare i comandi:

sudo aptitude update

sudo aptitude -t jessie-backports install gajim-omemo gajim

sudo aptitude install python-qrcode

Configurazione

Aprendolo per la prima volta devi configurare il tuo account dal menu Modifica → account. C'è sempre un account 'Local' ma non so a cosa serva. Tu aggiungi un nuovo account e metti l'ID Jabber seguito da @eigenlab.org e la password dell'utenza che ti sei fatta creare. Finito.

Ora ti resta solo da aggiungere in rubrica le persone con cui chattare: dal menu Azioni → aggiungi un contatto inserisci l'ID Jabber del tuo amico pippo@eigenlab.org per "chiedergli l'amicizia" e quando anche lui te l'avrà accordata potrete chattare.

Se trascini un contatto sopra un'altro compare l'utilissima opzione "invia contatto di Beppe a Anna" (e anche un'altra opzione più criptica "rendi metacontatti" che non so a cosa serva.)

Per ricevere i messaggi su tutti i dispositivi connessi allo stesso account bisogna selezionare Account → Generale → Receive conversations from other resources.

Per cambiare la propria password, dal menu Account -> Operazioni amministrative → cambia la password.

Si può entrare in una MUC (chatroom o stanza) dal menu Azioni → Ricerca dei servizi → eigenLab chatroom → Consulta Nella finestra che apparirà conviene selezionare "Aggiungi questa stanza ai segnalibri", che rende accessibile la stanza dal menu Azioni → Entra in una conversazione di gruppo. Selezionando "Entra automaticamente in questa stanza alla connessione" gajim entrerà nella stanza al login.

Per non vedere i cambiamenti di stato di tutti i contatti nella MUC Azioni → Entra in una conversazione di gruppo → Gestisci i segnalibri → Stampa lo stato: "nessuno".

Se sei non in linea o desincronizzato, oppure hai sbagliato ad inserire la password, puoi riconnetterti selezionando "diponibile" tra gli stati in basso. Capita però che gajim dica di essere desincronizzato anche se in realtà non lo è: se vedi almeno un contatto in linea non preoccuparti, puoi ignorarlo.

Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch farstream-0.1 e in Debian e derivate python-farstream e gstreamer-plugins-bad

Plugin

I nuovi plugin si installano dal menu Modifica → Plugin → Available

Dopo aver selezionato i plugin che vuoi installare clicca su install/upgrade, e poi abilitali nella scheda "installed".

  • Client icons: Mostra una icona che rapresenta il client usato, nell'elenco dei contatti.
  • Emoticons pack: Aggiunge un enorme set di emoticon che sostituiscono quelle di default di gajim. Sono compatibili con le emoticon android anche se appariranno leggermente diverse su android. Per abilitarlo, nella finestra Modifica → plugin → emoticon, installa Twemoji resized. Sembrerà che non sia successo nulla, ma non ti preouccare, vai in Preferenze → emoticon e seleziona Twemoji resized.
  • Httpupload: Aggiunge il supporto ad HTTP File Upload. Nella finestra di chat compariranno due nuovi pulsanti, "send file via http" e "send image via http". Il vecchio trasferimento da client a client è ancora disponibile con il pulsante "invia dei file".
  • Url image preview: Visualizza le immagini direttamente nella finestra di chat anzichè chiedere dove salvarle o mostrare un link. Di default mostra immagini piccole solo per file piccoli. Valori ragionevoli nella configurazioni in Modifica → Olugin → Url image preview → Configura sono preview size:500 , accept files smaller than: 10mb. Cliccando con il tasto destro sull'immagine si può aprirla, salvarla o copiare il link originale.

Riavviare Gajim dopo aver abilitato i plugin

OMEMO

Dopo averlo abilitato il plugin si impallerà qualche secondo per generare le chiavi. Nella finestra di chat, se il client del contatto lo supporta, appare l'icona con il pesce. Lì si può abilitare omemo nella chat. Cliccando "fingerprints" si possono verificare le fingerprint del contatto. Nella finestra "own devices" ci sono invece le fingerprint dei propri dispositivi, es. smartphone con conversation. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.

È possibile visualizzare la propria fingerprint da Modifica → Plugin → Url image preview → Configura → Account: eigenlab.org, dove è presente anche il qr-code utilizzato nella verifica da Conversations.

Conversations

Il migliore client per Android per numero di XEP integrate.

Telepathy

Integrato in KDE, manca di opzioni per la configurazione, supporta OTR ma non le carbon copy ed il message archiving.

Pidgin

Pidgin.

XabberDev

XabberDev.