Ricercatori identificano 4 vulnerabilità nel protocollo di cifratura di Telegram
Telegram è davvero la piattaforma di messagistica più sicura? Forse no, e lo hanno dimostrato un team di quattro ricercatori (Martin R. Albrecht, Lenka Mareková, Kenneth G. Paterson e Igors Stepanovs), specializzati in crittografia e sicurezza, nel loro paper “Four Attacks and a Proof for Telegram“.
Panoramica delle vulnerabilità di Telegram
I ricercatori hanno eseguito una dettagliata analisi di sicurezza della crittografia offerta da Telegram. Come risultato dell’analisi sono state riscontrate diverse debolezze nel protocollo crittografico utilizzato da Telegram, alcune tecnicamente banali e facili da sfruttare, altre più avanzate e di interesse teorico.
Per la maggior parte degli utenti il rischio immediato è basso ma queste vulnerabilità evidenziano che Telegram non è stato all’altezza delle garanzie crittografiche di cui godono altri protocolli crittografici ampiamenti diffusi come TLS.
Telegram, per impostazione predefinita, utilizza il suo protocollo crittografico chiamato MTProto per proteggere la comunicazione tra i client e i suoi server in sostituzione del protocollo Transport Layer Security (TLS) standard del settore. Questa è l’unica protezione offerta per impostazione predefinita: la crittografia end-to-end basata su MTProto, che proteggerebbe le comunicazioni dai dipendenti di Telegram o da chiunque si intrometta nei server di Telegram, è solo opzionale e non è disponibile per le chat di gruppo.
Le vulnerabilità scoperte in Telegram
I ricercatori hanno rilevato le seguenti vulnerabilità al team di sviluppo di Telegram lo scorso 16 Aprile 2021 ed è stata concordata con loro una divulgazione il 16 luglio 2021:
- Un utente malintenzionato sulla rete può ordinare i messaggi provenienti da un client al server. Ciò consente, ad esempio, di alterare l’ordine di “pizza” e “crimine” nella sequenza di messaggi: dico sì a”, “tutte le pizze”, “dico no a”, “tutti i delitti”. Questo attacco è banale da eseguire. Telegram ha confermato il problema che è stato scoperto dai ricercatori ed ha risolto questo problema nella versione 7.8.1 per Android, 7.8.3 per iOS e 2.8.8 per Telegram Desktop
- Un utente malintenzionato può rilevare quale dei due messaggi speciali è stato crittografato da un client o da un server in determinate condizioni. In particolare, Telegram crittografa i messaggi di riconoscimento, ovvero i messaggi che codificano che un messaggio precedente è stato effettivamente ricevuto, ma il modo in cui gestisce il reinvio di messaggi non riconosciuti rivela se tale riconoscimento è stato inviato e eseguito. Questo attacco è per lo più di interesse teorico. Tuttavia ci si aspetta che i protocolli crittografici escludano anche tali attacchi. Telegram ha confermato il comportamento osservato e risolto questo problema nella versione 7.8.1 per Android, 7.8.3 per iOS e 2.8.8 per Telegram Desktop.
- Gli sviluppatori hanno anche studiato l’implementazione dei client Telegram e hanno scoperto che tre di essi (Android, iOS, Desktop) contenevano codice che, in linea di principio, consentiva di recuperare parte del testo in chiaro dai messaggi crittografati. Per questo, un utente malintenzionato deve inviare molti messaggi accuratamente elaborati a un bersaglio, nell’ordine di milioni di messaggi. Questo attacco, se eseguito con successo, potrebbe essere devastante per la riservatezza dei messaggi di Telegram. Fortunatamente, è quasi impossibile da eseguire in pratica. In particolare, è per lo più mitigato dalla coincidenza che alcuni metadati in Telegram siano scelti casualmente e tenuti segreti. La presenza di questi punti deboli di implementazione, tuttavia, evidenzia la fragilità del protocollo MTProto: impone che alcuni passaggi vengano eseguiti in un ordine problematico, che pone un onere significativo sugli sviluppatori (compresi gli sviluppatori di client di terze parti) che devono evitare perdite accidentali. I tre client ufficiali di Telegram che mostrano un comportamento non ideale sono la prova che questo è un onere elevato. Telegram ha confermato gli attacchi e ha implementato le correzioni a tutti e tre i client interessati a giugno. Telegram ha anche assegnato un “bug bounty” per queste vulnerabilità.
- L’ultima vulnerabilità scoperta dimostra come un attaccante può montare un attacco “attacker-in-the-middle” sulla negoziazione della chiave iniziale tra il client e il server. Ciò consente a un utente malintenzionato di impersonare il server al client, consentendo di violare la riservatezza e l’integrità della comunicazione. Fortunatamente questo attacco è anche abbastanza difficile da eseguire poiché richiede l’invio di miliardi di messaggi a un server di Telegram in pochi minuti. Tuttavia evidenzia che mentre agli utenti è richiesto di fidarsi dei server di Telegram, la sicurezza di quei server e delle loro implementazioni non può essere data per scontata. Telegram ha confermato il comportamento e implementato alcune mitigazioni lato server. Inoltre, dalla versione 7.8.1 per Android, 7.8.3 per iOS e 2.8.8 per le app client Telegram Desktop supportano una variante RSA-OAEP+ .
I ricercatori sono stati informati dagli sviluppatori di Telegram che non vengono effettuati rilasci di sicurezza o correzioni di bug tranne che per correzioni di crash immediati post-rilascio. Il team di sviluppo ha anche informato i ricercatori che non desiderava emettere avvisi di sicurezza al momento dell’applicazione delle patch, né impegnarsi a rilasciare date per correzioni specifiche. Di conseguenza, le correzioni sono state implementate come parte dei regolari aggiornamenti di Telegram.
Questo comportamento lascia molto da pensare su come viene gestita la sicurezza di Telegram.