* 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)


* La prima chat: aggiungere un contatto
  :PROPERTIES:
  :SLIDE:    segue dark quote
  :ASIDE:    right bottom
  :ARTICLE:  flexbox vleft auto-fadein
  :END:

** Aggiungere un contatto

   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_

   Possiamo aggiungere un contatto alla nostra lista usando il tasto
   "+" che appare in alto a destra,  e poi il tasto "+(sagoma di persona)"

** La prima chat cifrata
   #+ATTR_HTML: :class float-right
   #+ATTR_HTML: :width 250px
   [[file:images/Conversations_8.png]]

   Adesso possiamo chattare con il nostro nuovo contatto

   Per abilitare le cifratura, selezioniamo il lucchetto presente in
   alto a destra, e scegliamo =OMEMO=

** La prima chat cifrata
   #+ATTR_HTML: :class float-right
   #+ATTR_HTML: :width 250px
   [[file:images/Conversations_9.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.

** 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.)

* Le chat di gruppo
  :PROPERTIES:
  :SLIDE:    segue dark quote
  :ASIDE:    right bottom
  :ARTICLE:  flexbox vleft auto-fadein
  :END:

** I gruppi
   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" e poi possiamo scegliere i
   partecipanti

** I gruppi cifrati

   Purtroppo per fare una chat di gruppo cifrata, è necessario che
   tutti i partecipanti abbiano fatto una chat individuale con tutti
   gli altri

   Questo serve per inizializzare il sistema di cifratura

   Non è molto comodo e facilmente crea confusione, ma una volta
   iniziate le chat di gruppo funzionano abbastanza bene

* 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
** 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
