XMPP: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
immagini, struttura, qualche chiarificazione qua e là
m (installazione gajim su arch)
(immagini, struttura, qualche chiarificazione qua e là)
Riga 1: Riga 1:
'''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''' è un protocollo di chat federato: questo significa che se hai un'utenza registrata su un determinato server potrai comunque parlare con gli utenti dell'intera rete XMPP, perché i server si parlano fra loro.


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.
XMPP fornisce una chat singola o di gruppo (detto anche ''"stanza"'', ''"chatroom"'', ''"conference"'' o ''"MUC"'') ed ha una rubrica per i contatti; inoltre è molto estensibile, e ciò permette di scambiare file e immagini attraverso la chat, di stabilire comunicazioni criptate sia singole che di gruppo, e molto altro ancora.


== Il nostro servizio XMPP ==
== Il nostro servizio XMPP ==
Riga 8: Riga 8:
* I client possono connettersi solo se supportano la cifratura SSL della connessione fra client e server;
* 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.
* 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.
Abbiamo scelto di inserire queste limitazioni perché siamo fermamente convintu che le comunicazioni debbano avvenire in modalità protetta: crediamo che ognunu debba poter scegliere - insieme ai propri interlocutori - il livello di sicurezza che desiderano avere, e cifrare la connessione via SSL è un passaggio minimo anche per chi non vuole usare strumenti più robusti per la sicurezza (vedi [[XMPP#Sicurezza|sotto]]).


Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione 'in-band', se vuoi un'account scrivi a <code>info[at]eigenlab[dot]org</code>.
Siccome il servizio è ancora in fase di sperimentazione non permettiamo ancora la registrazione 'in-band' (cioè direttamente dal client): se vuoi un'account scrivi a <code>info[at]eigenlab[dot]org</code>.


=== Estensioni ===
=== Estensioni ===
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.
* 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==
== Sicurezza ==
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.  
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.  


Riga 38: Riga 38:


=== Gajim ===
=== Gajim ===
[[File:Gajim screenshot.jpg|miniatura|La grafica di Gajim è decisamente respingente, al momento. Ma il programma funziona benissimo e sui dettagli estetici ci stiamo lavorando.]]
[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 =====
==== Installazione ====
In Arch bisogna avere l'AUR abilitato e installare i pacchetti con:  
In Arch bisogna avere l'AUR abilitato e installare i pacchetti con:  


Riga 52: Riga 54:
sudo aptitude -t jessie-backports install gajim-omemo gajim
sudo aptitude -t jessie-backports install gajim-omemo gajim


sudo aptitude install python-qrcode</code>
sudo aptitude install python-qrcode
</code>


===== Configurazione =====
==== 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 72: Riga 75:
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.
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>
Per abilitare il supporto alle audio e videochiamate audio (supportato da Gajim, Pidgin e Telepathy) bisogna installare dei pacchetti aggiuntivi. In Arch installare <code>farstream-0.1</code> mentre in Debian e derivate <code>python-farstream</code> e <code>gstreamer-plugins-bad</code>


===== Plugin =====
==== Plugin ====
I nuovi plugin si installano dal menu <code>Modifica → Plugin → Available</code>
I nuovi plugin si installano dal menu <code>Modifica → Plugin → Available</code>


Riga 84: Riga 87:
* 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.
* 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'''
'''Riavviare Gajim dopo aver abilitato i plugin.'''


===== OMEMO =====
==== OMEMO ====
Plugin updater chiederà di aggiornare il plugin OMEMO perchè è stato installato tramite il gestore di pacchetti e non internamente. Va risposto sempre di no.
Plugin updater chiederà di aggiornare il plugin OMEMO perchè è stato installato tramite il gestore di pacchetti e non internamente. Va risposto sempre di no.


Dopo aver abilitato il plugin, Gajim 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 Conversations. È necessario verificare anche quelle per essere sicuri della riservatezza della conversazione.
Dopo aver abilitato il plugin, Gajim 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, da cui 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, ad es. uno smartphone con Conversations, più un pc con Gajim. È 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.
È 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.


===== Problemi =====
==== Problemi ====
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]
Gajim sembra non supportare completamente Message Archiving per le MUC [https://trac.gajim.org/ticket/8036]: mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo corretto.


Mostra solo gli ultimi 20 messaggi invece di mostrare tutti i messaggi scambiati nella MUC e non ricevuti perchè si era offline. Conversations invece riceve tutti i messaggi in modo  corretto.
=== Conversations===
[[File:Conversations screenshot.jpg|miniatura|Una conversazione chat sul client Conversations per Android permette anche di scambiarsi immagini e altre delizie.]]


=== Conversations===
Il migliore client per Android per numero di XEP integrate.
Il migliore client per Android per numero di XEP integrate.


509

contributi

Menu di navigazione