I principali client di messaggistica istantanea utilizzano la crittografia end-to-end: ciò significa che le informazioni che gli utenti si scambiano tra loro non possono essere né lette né modificate da terze parti, neppure dal gestore del servizio in quanto le chiavi di cifratura sono generate sui dispositivi dei singoli utenti e lì restano.
WhatsApp utilizza lo stesso protocollo crittografico che è stato ideato dallo sviluppatore di Signal anche se mentre questa seconda app è stata progettata proprio con l’obiettivo di tutelare la privacy e la riservatezza dei dati degli utenti come abbiamo spiegato nell’articolo incentrato sul funzionamento di Signal, WhatsApp è di proprietà di un’azienda (Facebook) che ha fatto la sua fortuna e basa gran parte dei suo business proprio sui dati degli utenti.
È sicuramente vero che i messaggi di WhatsApp sono cifrati end-to-end ma nel corso del tempo sono emersi aspetti che possono minare alla base tale meccanismo di sicurezza.
Innanzi tutto il contenuto dei backup delle chat e degli allegati WhatsApp caricati su Google Drive ed Apple iCloud è teoricamente visibile in chiaro da parte dei gestori di queste piattaforme. WhatsApp sta risolvendo questo problema e a breve permetterà di cifrare end-to-end i backup su Google Drive ed Apple iCloud.
Ci sono inoltre situazioni in cui i messaggi vengono trasferiti in chiaro a WhatsApp e Facebook e aleggia sempre su WhatsApp la questione legata all’offuscamento del codice e al mancato rilascio del codice sorgente come invece ha fatto Telegram.
Pavel Durov, fondatore e CEO di Telegram, ha sempre dichiarato che WhatsApp non è non sarà mai un client di messaggistica sicuro.
D’altra parte va detto che le normali chat di Telegram non sono crittografate end-to-end ma sono cifrate usando una chiave che il gestore del servizio conosce. Telegram si è sempre opposto a fornirla a chiunque ne abbia fatto richiesta rivedendo anche la collocazione dei suoi server (così da sottrarsi alle giurisdizioni più severe). Cifrate end-to-end in Telegram sono solamente le chat segrete come abbiamo visto nell’articolo di confronto con Signal.
I client di messaggistica istantanea sono inoltre diventati bersagli privilegiati per chi desidera monitorare altri soggetti: lo abbiamo visto nel caso di Apple iMessage e, ripetutamente, nel caso di WhatsApp che nel corso del tempo è stato protagonista della scoperta di diverse vulnerabilità zero-day.
Inviare documenti riservati con WhatsApp, Telegram e altri software di messaggistica
Abbiamo detto che app che pubblicano il codice sorgente e che facilitano il confronto diretto con le versioni condivise attraverso i principali store online sono generalmente quelle più apprezzate dagli utenti che hanno a cuore la privacy e la riservatezza dei loro dati.
Con un’app come WhatsApp, visto che anche le operazioni di reverse engineering sono difficoltose e addirittura osteggiate, il suo comportamento in materia di tutela dei dati personali è un po’ un atto di fede parzialmente suffragato dalle informazioni contenute nell’informativa sulla privacy e nei termini del servizio.
Ma se non si volessero compiere atti di fede? È possibile trasferire in sicurezza informazioni e file riservati con i client di messaggistica con la certezza che nessun altro, fatta eccezione per il destinatario, possa impossessarsene?
La cosa più ovvia è comprimere uno o più file in formato 7Zip scegliendo AES-256 come metodo crittografico, spuntando la casella Crittografa i nomi dei files quindi spedendoli con WhatsApp, Telegram o altre soluzioni per la messaggistica istantanea.
Nell’articolo come gestire e proteggere i file Zip abbiamo visto come fare in pratica.
L’invio e la ricezione del file compresso 7Zip e crittografato AES-256 può essere agevolmente gestito con le versioni web di WhatsApp, Telegram e soci.
Va detto che ciò che in questo caso si è realizzato è l’utilizzo di un meccanismo crittografico a chiave simmetrica (differenze tra crittografia simmetrica e asimmetrica): mittente e destinatario dovranno accordarsi sulla passphrase, password o parola chiave da usare per cifrare il file 7Zip scambiandosi tale “segreto” attraverso un altro mezzo (evidentemente diverso dal client di messaggistica).
Su Android è invece possibile installare un’app fenomenale, OpenKeychain, che permette a due o più utenti di scambiarsi file usando la crittografia asimmetrica, senza quindi alcun bisogno di scambiarsi preventivamente una password usata per la codifica e la decodifica dei dati.
Pretty Good Privacy (PGP) è stato inventato da Phil Zimmermann nel 1991 e ancora oggi resta una delle soluzioni più affidabili e sicure per proteggere le informazioni personali quando si usa uno strumento di comunicazione intrinsecamente insicuro qual è la rete Internet. Da PGP è stato fatto derivare lo standard OpenPGP che viene utilizzato in moltissimi software.
In un altro articolo abbiamo visto come inviare e ricevere email crittografate con OpenPGP e Thunderbird ma la stessa cosa può essere fatta con tanti altri client email e decine di software differenti che proprio grazie al supporto comune per OpenPGP diventano interoperabili.
Gli interlocutori che vogliono scambiarsi messaggi in modo sicuro indipendentemente dal client di messaggistica utilizzato possono installare l’app OpenKeychain quindi cliccare su Crea mia chiave.
L’applicazione chiederà di associare un nome alla chiave in fase di creazione in modo da poterla identificare meglio successivamente.
Verrà richiesto di specificare un’email principale da associare alla chiave quindi, cliccando su Crea chiave sarà avviata la procedura di generazione che richiederà alcuni minuti di attesa.
Non è indispensabile inviare la propria chiave pubblica sui keyserver (si può lasciare disattivata la casella Publish on keyservers). Quest’operazione è utile soltanto per farsi trovare da altre persone e mettere a loro disposizione la chiave pubblica per l’invio di messaggi crittografati senza bisogno di alcun passaggio addizionale.
Toccando in OpenKeychain sulla chiave appena generata compariranno diverse icone insieme con un codice QR in alto a destra.
Il terzo pulsante da sinistra permette di condividere la propria chiave pubblica con un altro utente. Si otterrà un file .ASC che potrà essere inviato usando qualunque mezzo, client di messaggistica compresi.
Una volta che l’altro utente avrà inviato la sua chiave pubblica utilizzando la medesima procedura si potrà importarla in OpenKeychain premendo su “+” quindi Importa ad file.
A questo punto, toccando sulla chiave dell’altro utente appena importata, si può selezionare la prima icona per aggiungere uno o più file da inviare in forma crittografata.
Con un clic sull’icona per la condivisione in alto (indicata nell’immagine con una freccia rossa) si può scegliere WhatsApp, Telegram, un altro client di messaggistica, Gmail o qualunque altro software di comunicazione per inviare i file senza che possano essere letti, modificati o sottratti da terzi.
Il destinatario del messaggio crittografato che lo riceverà ad esempio attraverso WhatsApp o Telegram non dovrà fare altro che selezionarlo (.PGP) quindi scegliere Decodifica con OpenKeychain).
Il file verrà immediatamente decodificato e resi disponibili tutti gli allegati crittografati.
Con OpenKeychain, dopo aver selezionato la chiave pubblica del destinatario, si possono anche crittografare e trasmettere in tutta sicurezza anche dei testi: basta toccare la seconda icona da sinistra.
Per maggiori informazioni su OpenKeychain è possibile consultare il sito ufficiale.
In un altro articolo, invece, spieghiamo perché è fondamentale usare la crittografia dei dati.