Editoriale: WhatsApp: backdoor o no? Di chi possiamo fidarci?

Giuseppe Tripodi - Spoiler: di nessuno. Ma certamente meglio WhatsApp di tanto altro. Proviamo a fare chiarezza sulla vicenda Backdoor, l'articolo del Guardian e la recente risposta di 70 esperti di crittografia.

Negli ultimi giorni, WhatsApp è stato al centro di una lunga polemica legata alla sicurezza delle chat, anche considerando che la nota app di messaggistica utilizza un sistema di criptazione end-to-end che, per definizione, dovrebbe garantire che nessuno possa accedere alle conversazioni, eccetto chi invia il messaggio e chi lo riceve. Tuttavia, di recente molti hanno parlato di una backdoor, che permetterebbe a WhatsApp (e potenzialmente anche a malintenzionati, governi e quant’altro) di accedere alle chat di chiunque. Ma per spiegare l’intera vicenda e la recente risposta di oltre 70 esperti di crittografia dobbiamo partire dall’inizio.

Il 13 gennaio il famoso quotidiano inglese The Guardian ha pubblicato un articolo in cui sosteneva le tesi del ricercatore di sicurezza e crittografo Tobias Boelter, che afferma proprio che in WhatsApp esiste una backdoor che permette a terzi di accedere alle chat degli utenti. Precisiamo che la prima versione dell’articolo apparsa online titolava esplicitamente WhatsApp backdoor allows snooping on encrypted messages.

Dopo la pubblicazione, la stampa di tutto il mondo (inclusi noi) ha riportato la notizia, che però è stata fortemente criticata da diversi esperti di crittografia: in particolare, il 20 gennaio, Zeynep Tufekci, professoressa associata dell’Università della Carolina del Nord a Chapel Hill ed esperta di sicurezza informatica, ha pubblicato una lettera aperta firmata da oltre 70 esperti di crittografia in cui si chiede al Guardian di rivedere il proprio articolo.

Incipit del post pubblicato da Moxie Marlinspike, fondatore di Open Whisper System, subito dopo la pubblicazione dell'articolo del Guardian
Incipit del post pubblicato da Moxie Marlinspike, fondatore di Open Whisper System, subito dopo la pubblicazione dell’articolo del Guardian

Ma quindi questa backdoor esiste o no? La risposta è nì.Per cercare di far chiarezza sulla questione, spieghiamo ancora una volta il funzionamento delle chat criptate di WhatsApp.

L’app di messaggistica istantanea più famosa al mondo implementa il protocollo open source Signal, realizzato da Open Whisper Systems, gruppo no profit che sviluppa l’omonima app Signal e si occupa proprio di “rendere le comunicazioni private semplici”. Il protocollo (e l’omonima app) rappresentano uno dei massimi standard in termini di sicurezza informatica, non presentano falle conosciute e sono stati raccomandati anche dal famoso whistleblower Edward Snowden.

Tuttavia, l’implementazione eseguita da WhatsApp è diversa rispetto a quella dell’app Signal: la criptazione end-to-end si basa sullo scambio di coppie di chiavi di sicurezza (private e pubbliche), che vengono salvate localmente sul dispositivo e sono necessaria per decifrare i messaggi. Queste coppie di chiavi sono quindi legate allo smartphone e, per questo motivo, possono variare, ad esempio quando un utente cambia smartphone o reinstalla l’applicazione. Ed è qui che arriva il “problema”.

Diagramma che mostra la criptazione di WhatsApp. Immagine via Wired
Diagramma che mostra come funziona la criptazione di WhatsApp. Immagine via Wired

Quando chattiamo con qualcuno, le chiavi di sicurezza sono la garanzia che le chat scambiate non vengano lette da terzi: ma se le chiavi di sicurezza cambiano? In questo caso, nell’app Signal, chi invia un messaggio deve accettare la nuova coppia di chiavi del contatto che ha variato le proprie chiavi; inoltre, può accadere che un messaggio inviato quando il contatto non ha ancora generato delle chiavi di sicurezza vada semplicemente perso.

Quando WhatsApp ha implementato il protocollo Signal, ovviamente, non poteva permettersi il rischio di perdere dei messaggi quando un utente cambia smartphone o reinstalla l’app: per questo, ha inserito la possibilità di forzare da remoto la creazione di nuove chiavi di sicurezza e tenere in sospeso i messaggi sui propri server.

In sostanza, se A e B utilizzano WhatsApp, quel che può avvenire è questo:

  1. A e B installano WhatsApp e, quando iniziano una conversazione, si scambiano delle chiavi di sicurezza: quindi chattano allegramente, certi che nessuno potrà leggere quel che si dicono.
  2. Per qualche ragione (ad esempio cambio di smartphone), B perde le proprie chiavi di sicurezza; la nuova coppia di chiavi verrà generata solo dopo aver configurato nuovamente WhatsApp
  3. A invia un messaggio a B, che però non può essere ricevuto perché B non ha ancora reinstallato WhatsApp
  4. Il messaggio in questione viene inoltrato ai server di WhatsApp, dove rimane in sospeso: qui, in teoria, chi possiede la le chiavi di sicurezza di B, può decifrare e leggere il messaggio
  5. B reinstalla WhatsApp: il server invia il messaggio in sospeso a B, che tuttavia non può essere decifrato, dato che le chiavi di sicurezza di B sono cambiate. Lo smartphone di B, quindi, allega la nuova chiave di sicurezza pubblica al messaggio e lo rispedisce ad A
  6. Lo smartphone di A apprende la nuova chiave di sicurezza pubblica di B, cripta nuovamente il messaggio e lo invia di nuovo a B, che finalmente potrà decifrarlo e leggerlo

Per una specifica scelta di progettazione, WhatsApp ha quindi fatto in modo che i messaggi che non possono essere recapitati vengano conservati sul proprio server; inoltre, quando un utente genera una nuova coppia di chiavi di sicurezza (punto 5), il tutto avviene in maniera trasparente, senza dare comunicazioni agli utenti (a differenza di Signal, dove chi ha inviato il messaggio deve accettare la nuova coppia di chiavi, magari dopo aver verificato l’identità del proprio interlocutore in altri modi).

Su Signal, quando viene cambiata la chiave di sicurezza è necessario accettarla nuovamente
Su Signal, quando viene cambiata la chiave di sicurezza è necessario accettarla nuovamente

Ci siamo cimentati in questa lunga spiegazione per cercare di spiegare al meglio la situazione, quindi adesso proviamo a rispondere alle domande.

Esiste la possibilità, seppur estremamente improbabile, che WhatsApp possa possa “intercettare” i messaggi di un utente, anche considerando la possibilità di forzare da remoto la generazione di nuove chiavi di sicurezza? Sì, esiste questa possibilità, ma è uno scenario decisamente remoto e difficile da realizzare. Inoltre, si può (parzialmente) risolvere il problema andando su Impostazioni > Account > Sicurezza e attivare Mostra notifiche di sicurezza: abilitando questa impostazione, l’utente che invia un messaggio riceverà una notifica se il destinatario ha cambiato chiavi di sicurezza (anche se il messaggio verrà recapitato comunque).

chiave-di-sicurezza-cambiata-whatsapp

Quanto detto finora si può considerare una backdoor? No (ma dipende anche dai pregiudizi di ogni utente). Per definizione, infatti, una backdoor è appunto un accesso secondario, lasciato deliberatamente aperto affinché qualcuno possa entrarci. Ritenere che un’implementazione come quella di WhatsApp sia una backdoor significa credere che l’azienda abbia consapevolmente deciso di tenersi una via secondaria per accedere ai messaggi.

È una linea di pensiero legittima (anche se complottista), ma l’accusa mossa da Zeynep Tufekci e gli altri esperti di sicurezza al Guardian è che, con un tono tanto allarmista, la stampa generalista può allontanare gli utenti da WhatsApp (che, tutto sommato, è decisamente più sicura di altri client) e spingerli magari verso forme di comunicazione estremamente più fragili, come ad esempio gli SMS.

Concludo con una nota del tutto personale: non nutro una particolare simpatia per WhatsApp, ma lo utilizzo comunque tutti i giorni in maniera tranquilla e sono ragionevolmente sicuro che nessuno leggerà ciò che non voglio venga letto. E, se proprio volessi scambiare dei messaggi particolarmente importanti che non vorrei mai finissero in mani sbagliate (i dati della mia carta di credito, ad esempio) utilizzerei Signal, email con cifratura PGP, chat segrete di Telegram con autodistruzione. Ma anche in quest’ultimo caso ci sarebbe da fare un ulteriore discorso.

Non è solo una questione di privacy, ma di fiducia.

A tal proposito, è molto interessante la riflessione di Jon Evans su TechCrunch relativa alla vicenda. Secondo Evans, non si tratta solo di privacy, si tratta di fiducia: per quanti strati di sicurezza si voglia aggiungere, prima o poi bisognerà fidarsi di qualcuno. Volete utilizzare Signal? Benissimo, ottima scelta perché anche lo stesso Snowden l’ha consigliato. Ma avete letto in prima persona il codice sorgente e siete assolutamente sicuri che non ci siano falle? O vi fidate di chi lo ha fatto per voi? E anche se avete letto l’intero codice sorgente, potete essere certi al 100% che Google o Apple non abbiano modificato l’apk/ipa che installate sul vostro smartphone, includendo linee di codice indesiderato? Preferite compilare l’apk da voi? E chi può assicurarvi che il compilatore che utilizzate non sia compromesso o che non abbiate qualche malware su PC che vanifichi i vostri tentativi?

Ovviamente quelle espresse finora sono iperboli, ma la morale è sempre quella: quando si parla di privacy online non si può mai essere certi al 100% di essere al sicuro e, “purtroppo”, si arriva sempre ad un livello dove ci si deve fidare di qualcuno che ne sa di più. Questa famosa vulnerabilità di WhatsApp che permetterebbe a terzi di intercettare i messaggi esiste? Sì, è innegabile. È una backdoor? Molto (molto!) probabilmente no, ma questo dovete sceglierlo voi. Soltanto, se decidete che WhatsApp è brutto e cattivo, state bene attenti a chi affiderete la vostra fiducia in futuro.