* 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 sostenerne 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 (ad esempio una mail di autistici), 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 Cos'è OMEMO? (e perchè è consigliato?) #+ATTR_HTML: :class build - permette la cifratura di messaggi tra più persone - permette la cifratura di messaggi anche se uno qualsiasi di questi utenti è offline - permette la cifratura di messaggi sincronizzati su diversi dispositivi ** 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 potremo scegliere l'opzione OMEMO per la cifratura Purtroppo per abilitare una chat di gruppo cifrata, è necessario che tutti i partecipanti abbiano prima aperto una chat individuale con ogni altro singolo partecipante e abbiano abilitato la cifratura OMEMO con questo 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 ** Che rischi corriamo se usiamo Conversations? Le comunicazioni sicure le fanno le persone che comunicano! La tecnologia __non__ è in grado di garantire l'assoluta privacy. Dobbiamo quindi sforzarci di ricordare che noi siamo responsabili di tutelare la segretezza delle nostre comunicazioni. Come regola generale, se siamo in dubbio sull'opportunità di scrivere o meno un'informazione, è meglio evitare di scriverla. * 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