Quali sono le implicazioni sulla sicurezza dell'uso del TOTP per l'autenticazione a fattore singolo?

17

(Nota: in realtà non sto pianificando di farlo. Questa domanda è strettamente teorica.)

TOTP è comunemente usato come secondo fattore nell'autenticazione a due fattori. È uno standard aperto con implementazioni disponibili in più linguaggi di programmazione e piattaforme. C'è un'app client facile da usare sia per iOS che per Android sotto forma di app Google Authenticator.

Esistono problemi di sicurezza fondamentali con l'utilizzo del TOTP come metodo di autenticazione a fattore singolo al posto delle password? Ignorando, ovviamente, l'autenticazione a fattore singolo dovrebbe essere scoraggiata.

    
posta Ayrx 10.06.2013 - 14:21
fonte

3 risposte

18

Ho riflettuto su questo argomento e vorrei presentare le mie idee. Sentiti libero di trarre le tue conclusioni.

Dati

  1. Il segreto utilizzato per l'algoritmo TOTP è una chiave generata a caso a 80 bit codificata con base32. Questo probabilmente più sicuro delle password usate dalla maggior parte delle persone.

  2. La chiave segreta viene solitamente presentata sotto forma di un codice QR che deve essere scansionato dall'app Authenticator. In alternativa, alcuni servizi forniscono anche la chiave segreta codificata base32 per l'input manuale.

  3. In un dispositivo Android, il segreto viene memorizzato in modo non crittografato in un file di database SQLi. Il file SQLi si trova in /data/data/com.google.android.apps.authenticator2/databases/databases . Tuttavia, questo file non è accessibile a nessuna applicazione diversa dall'app Authenticator stessa. Ovviamente questo non si applica a un dispositivo rooted. Non ho un dispositivo iOS rooted quindi non posso commentare le specifiche della versione iOS dell'applicazione Google Authenticator.

Le mie conclusioni

A mio parere, ci sono alcuni vantaggi e svantaggi delle sostituzione delle password con una soluzione di autenticazione TOTP.

vantaggi

  1. Supponendo che il dispositivo Android in questione non sia rootato, nessun'altra applicazione oltre all'app Authenticator può accedere al segreto memorizzato nel database. Questo rimuove un rischio molto grande di malware che dirotta il segreto utilizzato per l'autenticazione. Qualsiasi keylogger / screenlogger sarà in grado di afferrare la password temporanea che scade in 60 secondi. Questa è una finestra molto piccola a meno che tu non sia al centro di un attacco molto mirato.

  2. L'utilizzo di TOTP rimuove la possibilità che un utente malintenzionato esegua un attacco brute-force online contro il servizio. La finestra delle opportunità è semplicemente troppo breve.

  3. Per alcune persone, questo è un buon compromesso tra sicurezza e convenienza. La maggior parte delle persone che conosco trasportano uno smartphone intorno al 24/7. L'autenticazione è una semplice questione di accedere all'app e digitare 6 cifre. Per alcune persone, questo potrebbe essere più facile che dover ricordare password relativamente forti o trasportare un database di password.

Inconvenienti

  1. Un compromesso del database significa dover resettare il segreto. Questo può essere davvero fastidioso per gli utenti.

  2. Un utente che perde il suo smartphone significa perdere l'accesso al servizio.

Questo è abbastanza interessante per pensare . Tuttavia, nel mondo reale dovresti ovviamente usare le normali password e le password monouso insieme per 2FA.

    
risposta data 20.06.2013 - 16:30
fonte
2

Chiunque possegga il seme può generare la stessa sequenza di token / password. Penso che sia abbastanza insicuro da non consentire questo come token di accesso singolo.

    
risposta data 10.06.2013 - 14:24
fonte
-1

Questo è fondamentalmente ciò che sta facendo Twitter con il loro sistema di autenticazione "a cifre" link

La forza di questo algoritmo è la sua resistenza agli attacchi di forza bruta e l'incapacità di ricostruire il segreto dai codici stessi.

Per la maggior parte dei semplici sistemi basati su password, la fiducia viene stabilita assicurando che l'utente conosca lo stesso segreto che conosci, cioè la password. D'altro canto, con il TOTP si stabilisce la fiducia assicurando che l'utente abbia il possesso del segreto condiviso. Quindi, se qualcuno rubasse il tuo telefono, avrebbe accesso al sistema senza conoscere altre password (potrebbero essere rallentate brevemente dal codice di sblocco ma non è difficile bypassarle).

Fondamentalmente ritengo che la sicurezza del protocollo sia basata sul valore del valore segreto dell'utente. Penso che la maggior parte delle persone custodisca il loro telefono da vicino, ma sono spesso persi o condivisi con amici e persone care.

    
risposta data 04.02.2015 - 06:44
fonte

Leggi altre domande sui tag