* Slide Options :noexport: #+TITLE: Conversations #+SUBTITLE: chattare sul cellulare usando server autogestiti #+AUTHOR: lucha, nullpointer, i-330 #+COMPANY: HackIt 15-18 Giugno 2017 #+LANGUAGE: it #+USE_MATHJAX: false #+ICON: images/conversations_logo.png #+FAVICON: false #+EXCLUDE_TAGS: noexport #+OPTIONS: toc:nil num:nil * Che cos'è Conversations :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: ** Che cos'è Conversations? Conversations[fn:2] è una applicazione (app) open source (GPLv3) Android (4.0+) per chattare. A differenza di altre app (WhatsApp, Messegner, ma anche Signal), __non__ è legata ad un servizio centralizzato. Invece, si basa su un protocollo **federato** chiamato XMPP (Jabber per gli amici). Inoltre, ci permette di **cifrare** le nostre conversazioni, così come di fare chat di gruppo cifrate. ** XMPP: un protocollo federato Cosa vuol dire che XMPP è un protocollo federato? Pensiamo alle email: ognugno di noi ha un email con un diverso provider (autistici, riseup, google, poliziadistato.it). Se vogliamo mandare un'email a qualcuno che usa, per esempio, riseup.net, __non__ è necessario avere noi stessi una casella di riseup! Possiamo usare la nostra email di autistici. Il server di autistici parlará con il server di riseup e gli consegnerà la nostra email. Allo stesso modo chi ha ricevuto la posta potrà risponderci. Questo non è il caso di Facebook Messenger (per esempio): se voglio mandare un messaggio ad una mia amica su Messenger, dovró per forza registrarmi su Facebook. ** Conversations e i server autogestiti Questo vuol dire che possiamo utilizzare Conversations con il nostro provider alternativo che più ci aggrada. Noi oggi parleremo di Autistici/Inventati ma ognuno può scegliere il suo preferito: il bello di una rete federata è che non ci dobbiamo tutti fidare di uno stesso gestore. Se vogliamo, possiamo anche installarci un server in casa ed essere i provider di noi stessi! ** Conversations.im #+BEGIN_QUOTE Conversations isn’t trying to replace current commercial messengers. It will simply outlive them. -- Daniel "inputmice" Gultsch #+END_QUOTE #+BEGIN_CENTER #+ATTR_HTML: :width 700px [[file:images/conversations.im.png]] #+END_CENTER ** Ok, mi hai convinto, dove devo firmare? Quello che vedremo adesso è 1. Come installare Conversations 2. Come configurare il proprio utente 3. Aggiungere i contatti e chattare 4. Fare una chat cifrata di gruppo 5. foto, audio, video(?) 6. I rischi che corriamo usando Conversations * Installare Conversations :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: ** Come installare conversations Dobbiamo avere uno smartphone con Android versione 4.0 o successive Abbiamo due opzioni per installare Conversations 1. via Google Play 2. via F-Droid ** Google Play #+ATTR_HTML: :width 250px #+ATTR_HTML: :class float-right [[file:images/gplay.png]] Google Play è comodo (è già installato di default) ma dobbiamo avere un account di Google per usarlo Anche se Conversations è open source, su Google Play è in vendita per una modica somma (2.39€) In questo modo si sostiene lo sviluppo di Conversations[fn:1] ** F-Droid F-Droid è un repository alternativo a Google Play, dove troviamo solo programmi open source Conversations è disponibile gratuitamente (ma ricordiamoci di fare una donazione, se possiamo, per garantire lo sviluppo!) Per utilizzare F-Droid, dobbiamo prima dire al nostro cellulare di accettare app non provenienti da Google Play ** Impostazioni #+ATTR_HTML: :class float-left #+ATTR_HTML: :width 450px [[file:images/android-external-app.png]] #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 450px [[file:images/android-alert.png]] ** Installare F-Droid A questo punto possiamo installare F-Droid da https://f-droid.org #+BEGIN_CENTER #+ATTR_HTML: :width 700px [[file:images/f-droid.png]] #+END_CENTER ** Installare Conversations da F-Droid #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/f-droid-conversations.png]] Apriamo la app di F-Droid e da lì possiamo trovare ed installare Conversations * Configurare il proprio utente :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: ** Configurazione Base #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/Conversations_1.png]] Una volta installato Conversations, la prima schermata che vedremo sarà questa. "Create account" ci permetterà di creare un account del tipo /nomeutente@conversations.im/ per 8€/anno (+ 6 mesi gratuiti). Per utilizzare invece un account che già abbiamo, sceglieremo "Use my own provider". ** Configurazione Base #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/Conversations_2.png]] Qui inseriremo il nostro utente =nomeutente@autistici.org= e la nostra password. (Se siamo preoccupati di lasciare la password sul cellulare, Autistici ha l'opzione di usare OTP e password specifiche per applicazioni) ** Configurazione Base #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/configurazione%20utente%20-%20avatar.png]] Se è la prima volta che utilizziamo Conversations, possiamo scegliere l'icona del nostro avatar * La prima chat: aggiungere un contatto :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: ** Aggiungere un contatto #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/schermata bianca.png]] Possiamo aggiungere un contatto alla nostra lista usando il tasto "+" che appare in alto a destra (se è la prima volta, verrà selezionato in automatico), e poi il tasto "+(sagoma di persona)" ** Aggiungere un contatto #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/first chat - add contact.png]] I contatti su Conversations sono identificati dal loro indirizzo XMMP, che di solito è uguale all'indirizzo email Per esempio, =lucha@paranoici.org= è il _Jabber ID_ ** La prima chat cifrata #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/first chat - unencrypted.png]] Adesso possiamo mandare il primo messaggio, che *non* sarà mandato cifrato, ma in chiaro. Possiamo controllare lo stato della cifratura cliccando sul lucchetto (che è aperto ad indicare che la conversazione non è cifrata) Abbiamo varie opzioni a nostra disposizione per la cifratura: ma quella che vedremo oggi (e che è consigliata) è =OMEMO= ** La prima chat cifrata #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/first chat - first message.png]] Per abilitare OMEMO, il nostro contatto dovrà per prima cosa accettare di conversare con noi Questa operazione è necessaria solo la prima volta che comunichiamo con una persona: poi non sarà necessario ripeterla ** La prima chat cifrata #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/first chat - encryption.png]] Quando il nostro contatto avrà accettato la nostra richiesta di comunicare, ci apparirà come possibilità l'opzione OMEMO Una volta selezionata, i nostri messaggi saranno cifrati! ** La prima chat cifrata #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/first chat - encrpted message.png]] Ora la nostra conversazione sarà cifrata: il nostro provider XMMP non potrà leggere i nostri messaggi! La cifratura avviene sul nostro cellulare, prima che il messaggio venga trasmesso, e viene decodificato solo una volta che arriva al destinatario. Notiamo il lucchetto chiuso ed la "spunta" di sicurezza vicino al messaggio! * Le chat di gruppo :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: ** I gruppi #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/schermata bianca.png]] Conversations supporta chat tra più persone, e possiamo anche farle cifrate! Per iniziare una chat di gruppo, selezioniamo lo stesso tasto "+" che abbiamo usato per agiungere un contatto, ma selezioniamo la scheda "conferences" e clicchiamo sul tasto "+(sagoma di tante persone)" Selezioniamo "Create conference" ** I gruppi #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/conference - create.png]] Poi possiamo scegliere il nome ** I gruppi #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/conference - participants.png]] Ed i partecipanti ** I gruppi cifrati #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/conference - unencrypted.png]] Come nel caso della chat singola, all'inizio non potremmo scegliere l'opzione OMEMO per la cifratura Purtroppo per fare una chat di gruppo cifrata, è necessario che tutti i partecipanti abbiano fatto una chat individuale con tutti gli altri (dato che la cifratura viene fatta individualmente per ogni singolo partecipante) Non è molto comodo e facilmente crea confusione, ma una volta iniziate le chat di gruppo funzionano relativamente bene ** I gruppi cifrati #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/conference - encrypted.png]] Una volta fatto ciò, è possibile selezionare l'opzione relativa ** I gruppi cifrati #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/conference - encrypted message.png]] E voilà, anche il gruppo è cifrato! * Foto, audio, video(?) :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: ** Allegare foto Possiamo allegare foto (sia dalla galleria sia dalla fotocamera) ** Audio Possiamo registrare dell'audio, ma per questo è necessario installare un apposito plugin (1.22€ su Google Play, gratis su F-Droid) ** Video Conversations (al contrario di Signal) non supporta chiamate audio né video. È possibile però condividere file di qualsiasi tipo, quindi anche video, pdf, etc. * Avvertenze: i rischi e la sicurezza :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: ** Che rischi corriamo se usiamo Conversations? Nonostante tutto, ci sono dei rischi a cui ci esponiamo quando utilizziamo Conversations: #+ATTR_HTML: :class build - metadati: la lista dei nostri contatti è visibile dal provider che usiamo - i provider dei nostri contatti: se parliamo con qualcuno su un altro server, quest'ultimo potrebbe loggare tutto il possibile - i messaggi cifrati sono in chiaro sul nostro cellulare: possiamo perderlo, od essere infettati da un trojan. - il falso senso di sicurezza * Extendend track :PROPERTIES: :SLIDE: segue dark quote :ASIDE: right bottom :ARTICLE: flexbox vleft auto-fadein :END: Configurazioni avanzate e dettagli ** Verificare la chiave di un contatto Se vogliamo essere veramente sicuri di stare parlando con la persona giusta, possiamo incontrarci con lei e confrontare le chiavi OMEMO (o possiamo usare altri canali di comunicazione: telefono, email cifrate, etc.) ** Verificare la chiave di un contatto #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/fingerprint - check.png]] Possiamo vedere la fingerpint di OMEMO dal menù "Contact details" ** Verificare la chiave di un contatto #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/fingerprint - ours.png]] Mentre la nostra chiave è visibile nel menù "Manage accounts" ** Configurazione con Hidden Service #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/Conversations_4.png]] C'è anche l'opzione di collegarsi via Hidden Service TOR, se abbiamo l'applicazione *Orbot* installata. Menu -> Expert Settings -> Connect via Tor e Extended Connection Settings ** Configurazione con Hidden Service #+ATTR_HTML: :class float-right #+ATTR_HTML: :width 250px [[file:images/Conversations_5.png]] Inseriamo =wi7qkxyrdpu5cmvr.onion= come /Hostname/ e =5222= come /Port/ * Footnotes [fn:1] Daniel Gultsch sviluppa Conversations a tempo pieno. [fn:2] https://conversations.im