Qual è l'uso del "segreto" visualizzato durante l'impostazione dell'autenticazione del fattore 2?

16

Qual è lo scopo del "segreto" che viene visualizzato quando si scatta la foto del codice QR per impostare l'Autenticazione fattore 2 su un sito non Google?

Perché ne avresti bisogno?

Se lo salvi, non è questo a vanificare l'intero scopo di 2 Factor Auth perché chiunque abbia il segreto può ottenere un codice di accesso?

    
posta B Seven 29.07.2013 - 16:09
fonte

4 risposte

17

Google Authenticator supporta TOTP e HOTP algoritmi.

In entrambi gli algoritmi, è necessario condividere un segreto tra il server e il client per generare correttamente le password monouso. Ti suggerisco di leggere i rispettivi RFC degli algoritmi (o la mia risposta qui ) per capirlo meglio.

Sì, se l'attaccante riesce a impossessarsi del segreto condiviso l'algoritmo viene sconfitto. Tuttavia, questo non è molto pratico. Il segreto viene visualizzato solo sotto forma di codice QR una volta durante la configurazione dell'algoritmo. Presumibilmente sarai seduto davanti allo schermo quando questo accadrà e prenderà nota se qualcuno sospetto si avvicina e inizia a scansionare il codice QR con il suo telefono. Ci sono molte misure fisiche che puoi utilizzare se questo è il caso.

Una volta che il segreto è condiviso, viene memorizzato sul server e sul client (in questo caso il tuo telefono). Almeno nel caso di Android, il segreto è memorizzato in modo non criptato in un file di database SQLi. Tuttavia, è possibile accedere a questo file solo tramite l'app Authententicator, a meno che il dispositivo non sia rootato, quindi non è facile averlo a portata di mano. Dovrebbe essere altrettanto difficile se non più difficile su un dispositivo iOS. Hai molte più preoccupazioni se un utente malintenzionato riesce a compromettere il server.

Quindi sì, l'algoritmo è sconfitto se il segreto è trapelato. Ma la perdita segreta non è una cosa facile da accadere. In ogni caso, è TWO -factor authentication. Hai ancora l'altro fattore per proteggerti.

    
risposta data 29.07.2013 - 16:17
fonte
5

Il segreto (o il seme) è il valore su cui la OTP password una tantum. È essenziale per te (o meglio, il tuo generatore di password e nel tuo caso il tuo Google Authenticator) per conoscere quel valore segreto. È essenziale che sia tu che il server conoscete questo valore.

Il codice QR che stai scansionando è il valore segreto, appena codificato in modo che la tua videocamera lo comprenda per facilitare l'inserimento nel tuo telefono. Se il telefono non dispone di una fotocamera o non è in grado di eseguire la scansione dei codici QR, è necessario immettere manualmente il valore segreto. Ecco perché ti mostrano il valore. Lo mostrano solo e devi assicurarti che nessuno sia in giro quando te lo mostra.

    
risposta data 29.07.2013 - 16:20
fonte
5

Quibble: in realtà non stai configurando un'autenticazione a due fattori, stai impostando un fattore di autenticazione, del tipo "what you have". Questo è pensato per essere combinato con una password, che è un fattore di autenticazione "quello che sai", che ti dà l'autenticazione a due fattori.

"Quello che hai" è destinato a essere un dispositivo mobile. Il modo in cui un utente viene autenticato con quel dispositivo mobile è richiedere all'utente di inserire un codice visualizzato da quel dispositivo. Affinché questo codice possa autenticare il dispositivo, deve dipendere da un valore segreto presente solo sul dispositivo, sul server di autenticazione (è un segreto condiviso) e da nessun'altra parte.

Il valore segreto viene generato sul server e deve essere trasmesso al dispositivo mobile. Il codice QR contiene quel valore segreto.

Il valore segreto viene visualizzato solo quando si imposta questa autenticazione basata sul dispositivo. Dovresti farlo in un ambiente sicuro, ad es. a casa, dove nessuno può spalleggiare e afferrare il segreto. Chiunque abbia il segreto può ottenere un codice di accesso, ma solo il legittimo utente dovrebbe avere il segreto.

    
risposta data 29.07.2013 - 18:42
fonte
4

L'autenticazione TOTP (come quella utilizzata da Google Authenticator) funziona convertendo il timestamp in un numero a 6 cifre utilizzando il segreto precondiviso che esiste solo sul telefono e sul server di autenticazione. Per esprimere questo semplicemente, f(timestamp, secret) = 6-digit code . Se il segreto è noto a una terza parte, sì, lo scopo dell'autenticazione a 2 fattori viene sconfitto, ma ottenere questo segreto da un telefono portatile non è banale.

    
risposta data 29.07.2013 - 16:19
fonte

Leggi altre domande sui tag