it-swarm.dev

Quanto è difficile intercettare SMS (autenticazione a due fattori)?

Molti meccanismi di autenticazione a due fattori usano SMS per fornire all'utente passphrase monouso. Quindi, quanto è sicuro? È difficile intercettare il SMS = messaggio contenente la passphrase? Le reti mobili utilizzano qualsiasi tipo di crittografia su SMS?

Ho trovato un articolo interessante sull'autenticazione a due fattori e sui modi in cui potrebbe essere attaccato:

http://www.schneier.com/blog/archives/2012/02/the_failure_of_2.html

121

GSM include un po 'di protezione attraverso la crittografia. Il telefono cellulare e il provider (ovvero la stazione base che fa parte della rete del provider) si autenticano reciprocamente relativamente a un segreto condiviso, noto al provider e memorizzato nella carta SIM dell'utente. Alcuni algoritmi noti con i nomi in codice "A3" e "A8" sono coinvolti nell'autenticazione. Quindi i dati (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 reali 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 potrebbe ottenere la licenza dal consorzio GSM. Inoltre, un utente malintenzionato attivo (con una stazione base falsa) può potenzialmente forzare un telefono cellulare a utilizzare un'altra variante, diversa da quella che avrebbe usato altrimenti, e non ci sono molti telefoni che avviserebbero l'utente (e anche meno utenti chi se ne preoccuperebbe).

  • 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 tale paese).
  • A5/1 è il vecchio algoritmo "forte", utilizzato in Europa e Nord America.
  • A5/2 è il vecchio algoritmo "debole", nominalmente destinato a "quei paesi che sono buoni amici ma di cui non ci fidiamo del tutto" ( non è 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 alcune carenze 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 una precomputazione che richiede meno di un'ora su un PC e richiede pochi gigabyte di spazio di archiviazione (non molto). Ci sono dettagli tecnici, soprattutto 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à circa 242.7 operazioni elementari (vedi questo articolo che ho scritto 12 anni fa). Ci sono state diverse pubblicazioni che hanno aggirato questa complessità, principalmente facendo pre-calcoli e aspettando che lo stato interno dell'algoritmo raggiunga una struttura specifica; sebbene tali pubblicazioni pubblicizzino cifre di complessità leggermente inferiori (circa 240), hanno degli svantaggi che li rendono difficili da applicare, come richiedere migliaia di bit di testo in chiaro noti. Con solo 64 bit di testo in chiaro noti, la complessità grezza è 242.7. Non ho provato a implementarlo per un decennio, quindi è concepibile che un PC moderno lo eseguirà 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.

Le dimensioni dello stato interno di A5/1 e il modo in cui A5/1 viene applicato per crittografare i dati, lo rendono anche vulnerabile ai compromessi della memoria temporale, come Rainbow tables . Ancora una volta, vedi l'articolo di Barkan-Biham-Keller. Ciò presuppone che l'attaccante abbia eseguito una volta un calcolo veramente massiccio e abbia memorizzato terabyte di dati; successivamente, la fase online dell'attacco può essere abbastanza veloce. Dettagli abbastanza 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 iniziale di calcolo è enorme ma tecnologicamente fattibile (un migliaio di PC dovrebbe essere sufficiente); c'era un open distribuito progetto per quello ma non so fino a che punto sono andati.

L'intercettazione SMS è ancora uno scenario specifico. Non è una conversazione vocale completa; la quantità effettiva di dati scambiati è piccola e la connessione termina dopo un tempo abbastanza breve. Ciò può limitare l'applicabilità degli attacchi esposti sopra. Inoltre, l'attacco deve essere veloce: il punto dell'attacco è prendere la password segreta inviata come SMS, in modo che l'attaccante possa usarla prima l'utente normale. L'attaccante deve essere veloce:

  • Il server in genere applica un breve timeout su quella password, ad esempio alcuni minuti. SMS la trasmissione dovrebbe essere questione di pochi secondi.
  • L'utente non è paziente (gli utenti non lo sono mai). Se non ottiene il suo SMS entro cinque minuti, probabilmente ne richiederà uno nuovo e un sistema di autenticazione a due fattori ben ponderato sul server invaliderebbe quindi la precedente password una tantum .

Le cose sono più facili per l'attaccante se ha già rotto il primo fattore di autenticazione (ecco perché usiamo l'autenticazione a due fattori: perché uno non è abbastanza). In tal caso, l'utente malintenzionato può avviare la richiesta di autenticazione mentre l'utente di destinazione è inconsapevolmente beato da essa e pertanto è improbabile che generi un allarme se non riesce a ricevere un SMS o, due volte, se riceve un indesiderato SMS (l'attaccante può eseguire l'attacco a tarda notte; l'utente attaccato troverà gli ingiustificati SMS solo al mattino, quando si sveglia, dando alcune ore per l'attaccante per mettere in atto le sue malizie).

La 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 il stazione base. Le apparecchiature radio necessarie sembrano essere disponibili standard , ed è facilmente concepibile che questo scenario sia applicabile in pratica. Tuttavia, il SMS non viaggia solo dalla stazione base al telefono cellulare. Il suo viaggio completo inizia presso le strutture del server, quindi passa attraverso Internet e quindi la rete del provider, fino a raggiungere la stazione base - e solo a quel punto viene crittografata con qualsiasi variante A5 utilizzata.

In che modo i dati sono protetti all'interno della rete del provider e tra il provider e il server che desidera che il SMS sia inviato, non rientra nell'ambito delle specifiche GSM. Quindi tutto va bene. Comunque, se il attaccante è il fornitore, perdi. Le forze dell'ordine, quando vogliono intercettare 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 in Colombia, tendono a costruire le proprie reti cellulari .

104
Thomas Pornin

Rete GSM è crittografato . Ma questo non lo rende a prova di proiettile ovviamente. Può essere compromesso. Tuttavia, gli attacchi Rook (e in seguito molto più dettagliatamente descritti da Thomas Pornin) sono molto localizzati e richiedono notevoli sforzi per essere realizzati. Non sono impossibili, ma molto difficili. Richiede l'interruzione della rete GSM in prossimità del telefono cellulare contemporaneamente allo SMS. Esiste anche il potenziale per qualcuno dell'operatore di rete di intercettare SMS. Se stiamo parlando sugli scenari di sicurezza nazionale/spionaggio, in cui una persona specifica viene presa di mira e gli aggressori hanno mezzi molto sofisticati e un sacco di soldi da spendere, quindi è sicuramente possibile. .

Anche se questo SMS ha esito positivo, potrebbe anche essere necessario ottenere il nome utente e la password (supponendo SMS non è l'unico metodo di autenticazione, ma piuttosto un secondo componente). Esistono altre alternative, in cui l'utente avvia il SMS al server e il server può verificare che corrisponda al token/challenge richiesto. Il server può anche verificare l'ID chiamante del mittente Naturalmente anche questo ha i suoi limiti, ma se fatto bene può fornire una protezione leggermente maggiore in teoria.

Se, come nella maggior parte dei casi, l'idea è quella di migliorare la sicurezza offrendo l'autenticazione a 2 fattori, quindi l'aggiunta di SMS nel mix lo migliora notevolmente rispetto al nome utente/password standard. Il fatto che si sta utilizzando due canali di comunicazione separati (TCP/IP e GSM) lo rendono già più sicuro. Come stima personale molto approssimativa, direi SMS sono più o meno alla pari con i token basati su hardware, sicurezza saggio. Naturalmente dio (o il diavolo) è nei dettagli.

14
Yoav Aner

Mentre le discussioni sulla crittografia sono interessanti, penso che la domanda chiave sia: i corrieri sono incentivati ​​a preoccuparsi della sicurezza? Temo che la risposta sia "no". Qual è il loro incentivo a spendere soldi per proteggere i loro SMS? Li gestiscono addirittura o sono esternalizzati? Quali garanzie di sicurezza offrono? Quanto ti fidi delle persone che gestiscono il server?

Inoltre, a questo proposito: se hai 100 milioni di clienti e rendi leggermente più difficile reimpostare la password, le tue chiamate all'helpdesk passerebbero attraverso il tetto. Ecco perché può essere così facile rilevare l'account di qualcuno.

Inoltre, proprio come vedi con il framework dell'autorità di certificazione, l'infrastruttura SMS sarà un bersaglio per l'attacco.

Di recente ho scritto un post sul blog sulla sintesi di questi punti con collegamenti: http://www.wikidsystems.com/WiKIDBlog/fraudsters-defeat-poor-risk-management-not-two-factor-authentication . Da un punto di vista della gestione dei rischi, SMS auth è meglio delle password, ma non conta molto a lungo. Gli attacchi attuali colpiscono gli istituti finanziari, ma man mano che il costo degli attacchi diminuisce, ci sarà Di Più.

9
nowen

Un sistema di sicurezza a più fattori è inutile se il servizio ha vulnerabilità comuni come XSS, SQL Injection o protezione del livello di trasporto insufficiente . Questi difetti possono comportare la compromissione di un account o delle informazioni indipendentemente dal sistema di autenticazione utilizzato.

Detto questo, se sei fisicamente vicino alla vittima, puoi eseguire attacchi molto cattivi. Ad esempio, se la tua vittima sta usando un operatore GSM, un utente malintenzionato può rompere il GSM con un arcobaleno e intercettare il messaggio SMS. Se controlli la rete della tua vittima, potresti utilizzare uno strumento come SSLStrip o SSLSniff per attaccare il portale di accesso HTTP.

"Ricordami" è cattivo . Alcune implementazioni di SMS autenticazione a più fattori (come quella di Google) ti consentono di benedire un dispositivo per 30 giorni. Questo è solo un cookie persistente che funziona come token di autenticazione per 30 giorni. Se sei proprietario il tuo computer delle vittime, quindi puoi ottenere questo cookie e utilizzarlo per l'autenticazione. Non è possibile implementare una funzione "Ricordami" in modo sicuro.

I token crittografici basati su hardware sono molto più difficili da compromettere. Questo è davvero il passaggio da SMS, in quanto questo è un token che hai e dovrebbe essere difficile scendere a compromessi. Questo è vero per la maggior parte, a meno che ovviamente non usi token hardware di RSA .

6
rook

Le altre risposte spiegano già la sicurezza del GSM e delle tecnologie coinvolte negli attacchi tecnici.

Tuttavia, ci sono una serie di altri attacchi che aggirano le protezioni tecniche.

Il articolo tedesco di Wikipedia sui numeri di autenticazione delle transazioni (che sono spesso inviati tramite SMS) elenca alcuni attacchi:

  • rubare o accedere di nascosto al cellulare della vittima
  • installare malware sul telefono cellulare, in particolare se si tratta di uno smartphone
  • attacchi interni al fornitore di servizi mobili
  • usare l'ingegneria sociale per aggirare il sistema, ad esempio:
    • ottenere l'accesso ai messaggi
    • ottenere una nuova carta SIM dal fornitore di servizi
    • porting del numero di telefono su un altro account

Ad esempio, nel 2015 c'è stata una serie di trasferimenti di denaro fraudolenti in Germania, dove i truffatori hanno ottenuto una nuova carta SIM sotto il nome del cliente. Attacchi simili erano già avvenuti in precedenza, quindi i fornitori di telefonia mobile avevano migliorato l'autenticazione dei clienti che ordinavano nuove carte SIM. Per ovviare a ciò, quando hanno chiamato il gestore telefonico, i truffatori hanno impersonato i dipendenti di un negozio di telefonia mobile e hanno affermato di attivare SIM per conto dei clienti (Fonte [tedesco]: Online-Banking: Neue Angriffe auf die mTAN ).

Ovviamente, tutte le protezioni tecniche sono inutili se l'attaccante riesce ad aggirarle.

6
sleske

Ultimamente, molte app per telefoni cellulari richiedono l'accesso a SMS messaggi e gli utenti lo consentono perché sono interessati all'app. Ciò rende l'attacco meno difficile dell'intercettazione di SMS su reti mobili.

3
AdnanG

So che questo non risponde direttamente alla tua domanda, ma spero che risolva alcune preoccupazioni:

Se l'implementazione viene eseguita correttamente, non sarei molto preoccupato per SMS. Questo perché una volta SMS offrono una grande opportunità per davvero -allerta per potenziali attacchi Se l'intercessore viene intercettato , è molto probabile che tu ne sia immediatamente consapevole e in grado di reagire rapidamente.

Se il SMS viene intercettato durante una sessione di autenticazione che hai tentato di avviare, dovrebbe accadere una delle due cose:

  • Se esegui prima l'autenticazione, il tentativo dell'attaccante dovrebbe fallire. Questo perché il sistema dovrebbe rifiutare i tentativi di riutilizzo dell'autenticatore. In questa situazione, l'attacco viene completamente contrastato.

  • Se l'attaccante riesce ad autenticarsi per primo, il tuo tentativo di autenticazione dovrebbe fallire a causa del riutilizzo dell'autenticatore. Il sistema dovrebbe inoltre informarti che questo è il motivo dell'errore. A questo punto, dovresti prendere tutte le misure necessarie per proteggere nuovamente il tuo account. Essere in grado di farlo rapidamente limiterà il potenziale impatto dell'attacco.

Se l'attaccante tenta di avviare l'autenticazione mentre non lo sei, dovresti essere avvisato dal fatto che riceverai un SMS che non hai richiesto. Esistono pochi mezzi pratici con cui qualcuno potrebbe surretticare intercettare un SMS inviato al tuo telefono senza anche tu lo ricevi o noti presto qualcos'altro che non va.

Questo è comunque reso moot, se sei sottoposto ad un attacco Man-in-the-Browser .

Inoltre, poiché la maggior parte SMS usano l'autenticazione SMS come un secondo fattore, sarei davvero più preoccupato di come il primo fattore di autenticazione sia stato compromesso. Se non fatto tramite un semplice social engineering, probabilmente è stato attraverso un browser o exploit del sistema operativo che ha portato a un keylogger sul tuo sistema. Quindi, non siamo a molti passi dalla situazione Man-in-the-Browser che si traduce effettivamente in un compromesso totale indipendentemente dal metodo di autenticazione.

2
Iszi

A tutti (anche Schneier?) Sembra mancare un pezzo cruciale:

Se il tuo telefono viene smarrito/rubato, sei già brindisi , poiché la tua SIM è al suo interno!

Mi sorprende che nessuno sembra aver notato questo per quanto posso dire, ma SMS soffre del fatto che non richiede nemmeno di essere in grado di accedere ai dati su il tuo telefono.

Anche se la telecomunicazione è stata crittografata e anche se il telefono è bloccato e crittografato, se hai SMS o autenticazione basata su chiamata abilitata e il tuo telefono viene rubato, sei completamente toast fino al momento in cui riesci a trovare un modo per convincere il tuo provider a disattivare la tua SIM (e riferire alle forze dell'ordine, ecc.) Un utente malintenzionato ha letteralmente bisogno di meno di 1 minuto per rimuovere la scheda SIM e inserirla in un altro telefono per ricevere il messaggio di testo, quindi quando riuscirai a segnalare il problema, quasi sicuramente avrà avuto la possibilità di provarlo una dozzina di volte e quindi spegnere telefono o semplicemente rimetterlo in modo che non possa essere rintracciato.

La tua solo fortuna qui quando usi SMS 2FA è se l'attaccante non conosce il tuo nome utente o che la tua SIM è bloccata in modo sicuro contro utilizzare in un altro telefono:

  1. Se il telefono era acceso quando è stato smarrito o rubato, è probabile che sia scritto da qualche parte nella schermata di accesso o verrà visualizzato come notifica a un certo punto.

  2. Se sei appena stato rapinato e sei riuscito a spegnere il tuo telefono, probabilmente il tuo ID o la tua carta di credito sono andati con il tuo telefono, nel qual caso il tuo nome utente o email non è probabilmente così difficile da indovinare o trovare su Google. Se il telefono era acceso, anche (1) è ancora un rischio.

  3. Se l'attaccante sapeva in qualche modo, allora sei quasi sicuramente brindisi.
    Come, diciamo, lasci il telefono sulla scrivania mentre sei fuori a pranzo e qualcuno viene a scambiare la SIM, ricevere l'SMS e ricambiarlo. Ci vorrebbero solo pochi minuti se nessuno sta guardando.

Quindi, mentre puoi preoccuparti di qualcuno che cerca di intercettare la tua comunicazione con un apparato simile a una pastinaca o infiltrandosi nelle strutture del tuo operatore telefonico, la realtà è che un uomo nel mezzo non è il rischio effettivo per la maggior parte delle persone. Il rischio reale è endpoint - cioè t. Perdere il telefono e la verifica basata su chiamata e SMS si rivolgeranno completamente a te, indipendentemente dalla forza delle tue password o crittografia.

1
user541686