451 lines
13 KiB
Org Mode
451 lines
13 KiB
Org Mode
* 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
|