Premessa

Nella Parte 1 della GAAD abbiamo imparato ad individuare, nel nostro mondo digitale, ciò che è bene proteggere. In questa seconda parte facciamo il primo passo verso il “come proteggere,” prendendo come caso di studio l’esigenza fondamentale di noi esseri umani: comunicare.

Parte 2: Comunicare in modo sicuro

La comunicazione non è mai stata così facile grazie alle reti di telecomunicazioni ed Internet. Di pari passo, non è mai stato così facile intercettare le comunicazioni dei loro utenti.

Senza le opportune accortezze per salvaguardare la nostra privacy—e quella di chi comunica con noi—qualsiasi telefonata, messaggio, video chiamata, chat o altra attività sulle social network, sono in qualche modo intercettabili. Volendo riprendere la terminologia introdotta nella Parte 1 della Guida Galattica di Autodifesa Digitale, esiste una minaccia costituita da un avversario (ad esempio, un oppositore politico, un governo, un criminale) interessato a leggere le nostre comunicazioni—che in questo esempio sono gli asset che vogliamo proteggere.

Spesso, il modo più sicuro per comunicare in modo strettamente riservato sarebbe di persona, senza computer o telefoni. Non essendo questo sempre possibile, la seconda migliore alternativa è l’utilizzo di sistemi di comunicazione digitale basati su cifratura “end to end,” ovvero da un capo della comunicazione all’altro.

Come funziona la cifratura “end to end”?

La cifratura, o crittografia, “end to end” garantisce che l’informazione (che vogliamo proteggere) sia “codificata” dal mittente iniziale (il primo capo, o “end”) in modo tale che sia “decodificabile” solo e soltanto dal destinatario finale (il secondo capo, o “end”). Questo significa che nessuno, al di fuori di mittente e destinatario, può capire il contenuto di una comunicazione cifrata. Attenzione: non stiamo dicendo che un aggressore in una rete Wi-Fi pubblica, il vostro provider Internet, etc., non possano leggere il contenuto delle nostre comunicazioni. Semplicemente non potranno comprenderne il contenuto—in quanto, appunto, cifrate.

Garanzie di una cifratura “end to end”

Se un sistema di cifratura “end to end” è progettato e realizzato correttamente, nessuno—nemmeno chi l’ha costruito—può accedere al contenuto delle informazioni (cifrate) che vi transitano. Ad esempio, nemmeno Facebook (che gestisce WhatsApp) può sapere i contenuti in chiaro dei messaggi (testuali, vocali, multimediali, etc.) che ci scambiamo. Stesso discorso per Telegram o Signal: è matematicamente dimostrabile che, se usate correttamente, nessuno—al di fuori di chi ha accesso ai due dispositivi che si “parlano”, ovviamente—può decifrare il contenuto. Il fatto che noi—in quanto utenti—vediamo i nostri messaggi in chiaro, non significa che questi non siano cifrati: semplicemente, non ci accorgiamo di quest’operazione, che il software (le app) svolge automaticamente per noi.

Attenzione ai dettagli

La cifratura “end to end” può essere applicata a qualsiasi tipo di comunicazione: testo, immagini, video, audio, etc. Non confondiamola con il “lucchetto” che appare sul nostro programma di navigazione quando navighiamo su un sito il cui indirizzo inizia con https://: tale cifratura, “di trasporto”, si limita a crittografare la comunicazione tra noi e il server, non tra noi e i destinatari. Ad esempio, immaginiamo che qualcuno abbia creato un ipotetico sito, chiamiamolo Chat Sicura (https://chatsicura.it) per comunicare con altre persone. Anche se “c’è il lucchetto” e c’è https://, l’unica garanzia che abbiamo è che nessuno tra noi e il server chatsicura.it potrà leggere le nostre comunicazioni. Se non è utilizzata cifratura “end to end”, i gestori di Chat Sicura saranno in grado invece di leggere il contenuto, proprio perché i dati sono cifrati sul nostro dispositivo e decifrati sui server di Chat Sicura.

Creazione e scambio delle chiavi

Premetto che quando usiamo WhatsApp, Telegram, Signal, o altri strumenti basati su cifratura “end to end”, non vediamo nulla di tutto questo, che avviane automaticamente.

La cifratura “end to end” funziona in questo modo. Quando due persone (chiamiamole Alice e Bob) vogliono comunicare, ognuno dovrà generare delle chiavi uniche—normalmente due per ogni soggetto, una per cifrare e una per decifrare. Queste chiavi sono poi utilizzate dal sistema (dall’app) per codificare i dati in modo tale che, attraverso una serie di trasformazioni matematiche, soltanto chi è in possesso della corrispondente chiave per decifrare, sarà in grado di effettuare l’operazione inversa, e quindi leggere il testo in chiaro. Quindi se Alice usa la chiave di Bob per cifrare un messaggio, soltanto Bob potrà decifrarlo, perché solo lui è in possesso per la chiave per decifrare. Quindi, tornando all’esempio di WhatsApp, Telegram o Signal, i dati che passano sui rispettivi server saranno cifrati con le chiavi dei destinatari (ad esempio, quella di Bob), pertanto nessuno, nemmeno i gestori dei rispettivi servizi, potranno decifrarli, perché le chiavi restano sui dispositivi di chi le ha generate.

Alcuni servizi di comunicazione, come ad esempio Google Hangouts, per citarne uno, pubblicizzano l’uso di “crittografia”, ma utilizzano chiavi generate e controllate da Google, non dagli utenti finali che comunicano. Questa non è crittografia “end to end”. Per essere veramente sicura, solo i due capi della conversazione devono essere in possesso dei segreti (le chiavi) necessari per cifrare e decifrare le informazioni che transitano. È un po’ come se l’installatore del vostro antifurto vi impostasse il codice segreto: dovreste essere voi a impostarlo, in sua assenza.

Un solo segreto, da custodire con cura

Chiaramente, un sistema basato su cifratura “end to end” implica che gli utenti conservino correttamente le chiavi. Se una chiave (o il dispositivo, lo smartphone che la memorizza) viene persa, ovviamente chi ne entra in possesso potrà leggere le comunicazioni del legittimo proprietario—o scrivere messaggi per conto suo. Notate che “perdere” qui non significa necessariamente “perdere fisicamente”. Per fare un esempio concreto, se qualcuno vuole origliare in casa vostra non è necessario che sia presente in casa vostra; gli basta installare una microspia e sparire. Allo stesso modo, se qualcuno riesce a prendere il controllo del nostro smartphone, anche solo per pochi minuti, potrebbe essere in grado di installare un software per leggere le vostre chat, in barba alla cifratura “end to end”—proprio perché si troverebbe nella posizione di poter accedere non soltanto alle chiavi, ma anche ai messaggi che, giustamente, dovranno essere decifrati.

Se un’app di comunicazione basata su cifratura “end to end” è progettata bene, avrà degli opportuni meccanismi di isolamento dei dati, per conservare con cura le chiavi, in modo che non sia così semplice rubarle. Qui il ruolo del sistema operativo sottostante (macOS, Windows, Android, iOS) è pure fondamentale. Se app e sistema operativo sono di qualità, saranno necessari almeno privilegi di amministratore per riuscire a rubare le chiavi, e comunque non dovrebbe essere affatto un’operazione facile

Chi mi dice che sei proprio tu?

L’altra domanda che sicuramente vi sarete posti è: quando vengono generate le chiavi? Risposta breve: al primo avvio. E poi: come facciamo ad esser sicuri che “Alice sia proprio Alice” e “Bob sia proprio Bob”? È sufficiente fidarsi del numero di telefono (nel caso di WhatsApp, Signal o Telegram)? Riposta breve: no.

Le chiavi vengono generate “al primo avvio” dell’applicazione in questione e da quel momento sono “legate” all’identità associata a quel dispositivo. In soldoni, significa semplicemente che, da quel momento in poi, tale dispositivo contiene tali chiavi. Se cambiate dispositivo, le chiavi si perdono e ne vanno rigenerate di nuove. No, non si possono “portare dietro”, perché se così fosse significa che c’è un modo semplice per leggerle e copiarle, pertanto significherebbe che non sono conservate in modo sicuro.

E come faccio a sapere che il mio amico Mario con cui sto chattando...sia proprio lui? Se un sistema “end to end” è fatto bene, ci deve dare la possibilità di verificare le chiavi reciprocamente con i nostri destinatari. Questo avviene e deve avvenire necessariamente di persona. O, quantomeno, attraverso un altro canale di comunicazione precedentemente instaurato, di cui già ci fidiamo, e che sappiamo per certo essere associato al nostro amico Mario. In altre parole: non possiamo utilizzare WhatsApp per verificare se stiamo chattando con “il vero Mario” via WhatsApp. Sarebbe come chiedere all’oste se il vino è buono. Funziona che ci dobbiamo trovare di persona, guardarci in faccia (se non ci conosciamo, usare i documenti di identità) e, utilizzando l’opportuna funzione messa a disposizione dal sistema, verificare le chiavi. Ad esempio, Signal permette di farlo con un QR code da inquadrare con la telecamera dello smartphone.

Se un sistema di messaggistica non ci da la possibilità di verificare autonomamente le chiavi, allora significa che, usandolo, ci stiamo automaticamente fidando di un sistema non del tutto trasparente.

Telefonate e SMS

Quando facciamo una telefonata o inviamo un SMS, l’audio della telefonata e il testo del messaggio non sono cifrate per nulla—men che meno sono cifrate “end to end”. Entrambi sono infatti intercettabili, ad esempio da un’agenzia governativa o da chi ha potere sulle compagnie telefoniche.

Se nella nostra pianificazione della sicurezza (affrontata nella Parte 1 della GGAD) abbiamo concluso che tra i nostri avversari potrebbe esserci un’agenzia governativa, allora dovremmo evitare di utilizzare telefonate ed SMS tradizionali e passare ad alternative sicure, con il bonus di avere anche video-chiamate, come le già citate WhatsApp e Signal (a cui aggiungo Wire). Tutte permettono, oltre alla comunicazione scritta, di effettuare chiamate audio-video cifrate “end to end”, al contrario di altri servizi che invece non offrono questa garanzia, come Google Hangouts, Kakao Talk, Line, Snapchat, WeChat, QQ, Yahoo Messenger.

Alcuni servizi come Facebook Messenger e Telegram offrono cifratura “end to end” solo se abilitata manualmente dall’utente. Altri, come iMessage di Apple, offre cifratura “end to end” solo se entrambi i capi della conversazione usano lo stesso tipo di dispositivi (nel caso di iMessage, entrambi gli utenti devono utilizzare un iPhone).

Quanto possiamo fidarci di un sistema di comunicazione?

I sistemi di comunicazione, anche se basati su cifratura “end to end”, sono prodotti da qualcuno. Ci permettono sicuramente di difenderci da avversari come enti governativi, criminali informatici, e il servizio di comunicazione stesso, ma non coprono un caso. Nessuno impedisce a questi soggetti di nascondere delle modifiche nelle app stesse, delle cosiddette “porte sul retro” (backdoor), o semplicemente dei “difetti” che di fatto semplificano la vita di un criminale che “ascolta sul filo” e vuole decifrare le nostre comunicazioni.

Diversi gruppi indipendenti, come ad esempio l’EFF, passano parecchio tempo a verificare che i gestori famosi (tra cui ad esempio WhatsApp, che è gestita da Facebook, o Signal) facciano ciò che promettono in termini di cifratura. Sempre meglio di un sistema non trasparente, o peggio che non usa cifratura “end to end”. Tuttavia, non c’è soluzione semplice per eliminare anche questo piccolo pezzetto di “fiducia” residua, che dobbiamo necessariamente porre in chi realizza e gestisce gli strumenti che decidiamo di utilizzare per comunicare.

A dirla proprio tutta, esistono delle soluzioni “aperte”, che non si basano su alcun gestore o produttore centralizzato, e che permettono a chiunque di poter verificare non soltanto le chiavi, ma anche il prodotto, il software stesso, per controllare che faccia esattamente ciò che promette. Cosa che invece non è semplice fare ad esempio con WhatsApp, in quanto tra tutti il più chiuso. Tali sistemi aperti e decentralizzati, tuttavia, sono decisamente poco vicini all’utente, sono complicati da configurare e utilizzare, e sono generalmente basati su sistemi di cifratura un po’ datati.

Cosa non fa la cifratura “end to end”

La cifratura “end to end” protegge i contenuti, non il mero—ma rilevante—fatto che stiate comunicando. Più in generale, non protegge i cosiddetti metadati, ovvero i “dati che descrivono altri dati”—in questo caso “dati che descrivono il fatto che stiate comunicando con qualcuno”, dati di contorno. Tra i metadati vi sono, ad esempio, data e ora di inizio e fine di una telefonata, numero di telefono (o indirizzo email) di mittente e destinatario, e spesso anche la posizione geografica. Tipologia e quantità di metadati variano a seconda del sistema che si impiega. Ad esempio, WhatsApp colleziona molti più metadati rispetto a Telegram. Signal ne colleziona il minimo indispensabile al funzionamento e infatti è considerato il più sicuro e riservato dei tre.

Perché i metadati possono essere un problema? Perché indirettamente dicono molto su una conversazione, anche quando il contenuto stesso della conversazione è cifrato. Ad esempio:

  • Non si sa di cosa abbia parlato Mario al telefono alle 2:24 di notte per 18 minuti, ma si sa che il numero chiamato (che è un metadato) è di un servizio di telefonate “per adulti”.
  • Si sa che avete chiamato una linea di prevenzione suicidi mentre vi trovavate sul ponte di Brooklyn, ma non si sa di cosa abbiate parlato.
  • Si sa che qualcuno ha chiamato, in quest’ordine, un centro per fare test HIV, il suo medico, e poi l’assicurazione sanitaria privata, ma non si conosce il contenuto delle telefonate.

Eccetera, eccetera, eccetera. Chiaro il punto? I metadati, se opportunamente analizzati, possono rivelare molto sul contenuto di una conversazione, anche se il contenuto è perfettamente cifrato.

C’è altro oltre la cifratura “end to end”

La cifratura “end to end” è importante, ma è solo una delle tante caratteristiche di un sistema di comunicazione sicuro. Come detto, è perfetta per chi vuole evitare di essere spiato da agenzie governative o aziende con molto potere. Tuttavia, per la maggior parte degli individui, nessuno di questi costituisce una minaccia. Pertanto, comunicare in modo cifrato non è la soluzione prioritaria.

Per esempio, immaginate che tra gli avversari da cui vogliamo proteggerci ci sia il nostro datore di lavoro, un nostro co-inquilino, o chi, in generale, può facilmente avere accesso fisico ai nostri dispositivi—anche per qualche istante. Con avversari dotati di tali capacità, la cifratura “end to end” end non aiuta, perché i messaggi vengono decifrati e memorizzati sui dispositivi. Contro tali avversari è molto più utile avere messaggi “effimeri”, ovvero messaggi che si autodistruggono dopo qualche tempo.

Altri soggetti potrebbero invece esser più preoccupati dal fatto di dover fornire a qualcuno il proprio numero di telefono, ma non dal contenuto delle telefonate e dei messaggi scambiati. Per tali soggetti, avere la possibilità di usare un numero “alias”, non legato alla propria persona fisica, è più importante di una cifratura “end to end”.

Altri fattori importanti da considerare per comunicare in modo sicuro vanno oltre le caratteristiche di sicurezza e riservatezza. Un’app molto sicura è inutile se nessuno dei vostri amici la usa, perché magari è difficile da installare o configurare, oppure è costosa, lenta, o la qualità del servizio è bassa.

Per concludere

Ancora una volta è necessario sedersi con calma e riflettere, per capire chiaramente quali caratteristiche sono importanti, nel nostro specifico caso, per comunicare in modo sicuro. Compreso questo sarà più facile orientarsi nel vasto e intricato panorama delle offerte, commerciali e non.

Paternità

La presente Guida Galattica di Autodifesa Digitale è una traduzione arricchita dell'opera Surveillance Self Defense dell'Electronic Frontier Foundation (EFF), con qualche adattamento per la lingua italiana e qualche esempio per chiarire ove necessario. L'opera originale è rilasciata con licenza Creative Commons Attribution (CC-BY).