GSM include una certa protezione tramite crittografia. Il telefono cellulare e il provider (ovvero la stazione base che fa parte della rete del provider) si autenticano a vicenda relativamente a un segreto condiviso, che è noto al provider e memorizzato nella scheda SIM dell'utente. Alcuni algoritmi noti con i nomi in codice "A3" e "A8" sono coinvolti nell'autenticazione. Quindi i dati (come inviati tramite il collegamento radio) vengono crittografati con un algoritmo chiamato "A5" e una chiave derivata da A3 / A8 e il segreto condiviso.
Esistono diversi algoritmi effettivi che si nascondono sotto il nome "A5". Quale algoritmo viene utilizzato dipende dal provider, che a sua volta è vincolato dalle normative locali e da cosa può concedere in licenza dal consorzio GSM. Inoltre, un utente malintenzionato attivo (con una falsa stazione base) può potenzialmente costringere un telefono cellulare a utilizzare un'altra variante, diversa da quella che avrebbe utilizzato altrimenti, e non ci sono molti telefoni che avviserebbero l'utente in merito (e anche meno utenti chi se ne frega).
- A5 / 0 significa "nessuna crittografia". I dati vengono inviati non crittografati. In alcuni paesi, questa è l'unica modalità consentita (penso che l'India sia un paese del genere).
- A5 / 1 è il vecchio algoritmo "forte", utilizzato in Europa e nel Nord America.
- A5 / 2 è il vecchio algoritmo "debole", inteso nominalmente per "quei paesi che sono buoni amici ma di cui non ci fidiamo completamente" (non lo è spiegato in questo modo nelle specifiche GSM, ma questa è l'idea).
- A5 / 3 è l'algoritmo più recente per GPRS / UMTS.
A5 / 3 è un codice a blocchi noto anche come KASUMI. Offre una sicurezza decente. Ha alcuni difetti che lo renderebbero "accademicamente rotto", ma nessuno realmente applicabile nella pratica.
A5 / 2 è effettivamente debole, come descritto in questo rapporto. L'attacco richiede una frazione di secondo, soggetto a un precalcolo che richiede meno di un'ora su PC e richiede pochi gigabyte di memoria (non molto). Ci sono dettagli tecnici, principalmente perché il protocollo GSM stesso è complesso, ma si può presumere che lo strato A5 / 2 sia fragile.
A5 / 1 è più forte, ma non molto forte. Utilizza una chiave a 64 bit, ma la struttura dell'algoritmo è più debole e consente un attacco con complessità sulle 242.7 operazioni elementari (vedi questo articolo che ho scritto 12 anni fa). Ci sono state diverse pubblicazioni che girano intorno a questa complessità, principalmente eseguendo precomputazioni e aspettando che lo stato interno dell'algoritmo raggiunga una struttura specifica; sebbene tali pubblicazioni pubblicizzino cifre di complessità leggermente inferiori (intorno a 240 ), hanno svantaggi che le rendono difficili da applicare, come la richiesta di migliaia di bit di testo in chiaro conosciuti. Con solo 64 bit di testo in chiaro conosciuti, la complessità grezza è 242.7 . Non ho provato a implementarlo per un decennio, quindi è concepibile che un PC moderno lo faccia funzionare più velocemente della workstation che stavo usando in quel momento; come stima approssimativa, un PC quad core con codice completamente ottimizzato dovrebbe essere in grado di decifrarlo in un'ora.
La dimensione dello stato interno di A5 / 1 e il modo in cui A5 / 1 viene applicato per crittografare i dati, lo rendono inoltre vulnerabile ai compromessi della memoria temporale, come le tabelle arcobaleno. Di nuovo, vedi l'articolo di Barkan-Biham-Keller. Ciò presuppone che l'aggressore abbia eseguito una volta un calcolo veramente massiccio e abbia memorizzato terabyte di dati; in seguito, la fase online dell'attacco può essere abbastanza veloce. Dettagli molto un po ', a seconda di quanto spazio di archiviazione hai, quanta potenza della CPU è disponibile per la fase online e quanto tempo sei pronto ad aspettare il risultato. La fase di calcolo iniziale è enorme ma tecnologicamente fattibile (mille PC dovrebbero essere sufficienti); c'era un progetto distribuito aperto per quello ma non so fino a che punto si siano spinti.
L ' intercettazione degli SMS è ancora uno scenario specifico. Non è una conversazione vocale completa; la quantità effettiva di dati scambiati è piccola e la connessione termina dopo un tempo piuttosto breve. Ciò potrebbe limitare l'applicabilità degli attacchi sopra esposti. Inoltre, l'attacco deve essere veloce: lo scopo dell'attacco è quello di afferrare la password segreta inviata come SMS, in modo che l'attaccante possa usarla prima del normale utente. L'attaccante deve essere veloce:
- Il server in genere applica un breve timeout a quella password, ad esempio alcuni minuti. La trasmissione di SMS dovrebbe essere questione di pochi secondi.
- L'utente non è paziente (gli utenti non lo sono mai). Se non riceve il suo SMS entro cinque minuti, probabilmente ne richiederà uno nuovo e un sistema di autenticazione a due fattori ben congegnato sul server invaliderebbe la precedente password monouso.
Le cose sono più facili per l'attaccante se ha già infranto il primo fattore di autenticazione (ecco perché usiamo l'autenticazione a due fattori: perché uno non è sufficiente). In tal caso, l'attaccante può avviare la richiesta di autenticazione mentre l'utente di destinazione ne è beatamente inconsapevole e quindi è improbabile che generi alcun allarme se non riesce a ricevere un SMS o, contemporaneamente, se riceve un SMS non desiderato fare l'attacco a tarda notte; l'utente attaccato troverà l'SMS ingiustificato solo al mattino, quando si sveglia, concedendo qualche ora all'aggressore per mettere in atto le sue malefatte).
Crittografia GSM è solo per il collegamento radio. In tutto quanto sopra, ci siamo concentrati su un utente malintenzionato che intercetta i dati inviati tra il telefono cellulare e la stazione base. L'apparecchiatura radio necessaria sembra essere disponibile pronta all'uso ed è facilmente concepibile che questo scenario sia applicabile nella pratica. Tuttavia, l'SMS non viaggia solo dalla stazione base al telefono cellulare. Il suo viaggio completo inizia presso le strutture del server, quindi passa attraverso Internet, quindi la rete del provider, fino a raggiungere la stazione base e solo a quel punto viene crittografato con qualsiasi variante A5 utilizzata.
Il modo in cui i dati vengono protetti all'interno della rete del provider e tra il provider e il server che desidera che venga inviato l'SMS non rientra nell'ambito della specifica GSM. Quindi va bene tutto. Ad ogni modo, se l'attaccante è il provider, perdi. Le forze dell'ordine, quando vogliono origliare le persone, in genere lo fanno chiedendo gentilmente ai fornitori, che invariabilmente rispettano. Questo è il motivo per cui i cartelli della droga, specialmente in Messico e Colombia, tendono a costruire le proprie reti cellulari.