Sta destando scalpore, in queste ore, la pubblicazione di un paio di video – realizzati da alcuni ricercatori – che mostrano come sia possibile intercettare WhatsApp e Telegram (e potenzialmente qualunque altra applicazione similare) leggendo le conversazioni altrui.
L’attacco non sfrutta alcuna vulnerabilità del meccanismo crittografico end-to-end: tutte le informazioni scambiate fra gli utenti WhatsApp, infatti, vengono cifrate con un sistema asimmetrico che prevede l’utilizzo di chiavi sempre conservate sui dispositivi di ciascun interlocutore (vedere Crittografia end to end su WhatsApp, come funziona).
Telegram, invece, utilizza la crittografia end-to-end per proteggere le chat segrete (vedere le FAQ sul sito ufficiale e l’articolo Telegram come funziona, quali le caratteristiche avanzate).
Gli aggressori hanno invece sfruttato alcune vulnerabilità dell’insieme di protocolli di segnalazione SS7 (Signaling System 7), largamente utilizzati dagli operatori di telefonia di tutto il mondo.
SS7 viene abitualmente impiegato dalle società di telecomunicazioni per comunicare reciprocamente fra loro e fornire indicazioni sui percorsi che le chiamate e gli SMS, ad esempio, debbono seguire. Viene altresì sfruttato durante l’attivazione e la chiusura delle chiamate, per la traduzione delle numerazioni telefoniche del chiamante e del chiamato, per la gestione degli addebiti, per il routing delle chiamate fra telefoni fissi e mobili di differenti operatori, durante l’attivazione della funzionalità di roaming da parte dell’operatore straniero per ottenere dall’operatore di telecomunicazioni dell’utente l’ID univoco della SIM.
Nell’articolo Intercettare telefonate con SS7, ecco come funziona abbiamo spiegato quali sono le principali vulnerabilità di SS7.
Il problema di SS7 è che il sistema sul quale si basa è veramente troppo debole: ogni richiesta ricevuta dagli operatori di telecomunicazioni, a meno di controlli specifici, viene sempre considerata affidabile.
Il risultato è che un malintenzionato, collegato alla rete di telecomunicazioni, magari fisicamente posizionato dall’altra parte del mondo, può “spacciare” il suo terminale come quello appartenente ad un’altra persona e richiedere la ricezione di chiamate e SMS altrui.
Nel caso di WhatsApp e Telegram, l’aggressore può sfruttare le vulnerabilità di SS7 di fatto presentandosi sulla rete con lo stesso numero telefonico della vittima. Al momento della ricezione dell’SMS di convalida del numero (reindirizzato a sé proprio grazie alle “debolezze” di SS7), il malintenzionato può inserire tale codice nell’app WhatsApp o Telegram e “autenticarsi” senza problemi.
A questo punto, come si vede nei due video che ripubblichiamo (l’uno si riferisce a WhatsApp, l’altro a Telegram), il malintenzionato può immediatamente leggere la cronologia delle conversazioni della vittima e i successivi scambi di messaggi. Volendo, può iniziare ad inviare anche nuovi messaggi, sostituendosi alla vittima.
Va detto che sia WhatsApp che Telegram visualizzano un messaggio informando sulla possibile autenticazione, con lo stesso account utente, su un altro terminale.
Inoltre, con Telegram – attivando la verifica in due passaggi – è possibile evitare qualunque rischio di attacco: per utilizzare un nuovo dispositivo, infatti, bisognerà non soltanto inserire il codice ricevuto via SMS ma anche la password accessoria definita in Impostazioni, Privacy e sicurezza, Verifica in due passaggi.
Purtroppo, oltre a queste attenzioni, gli utenti non possono risolvere il problema. Fintanto che gli operatori non si accorderanno per lenire le vulnerabilità di SS7, queste potranno essere sempre sfruttate da parte dei malintenzionati.