Tradizionale 2FA contro PIN + OTP

3

Sono appena passato a una nuova azienda di posta elettronica e offrono un tipo di 2FA che non ho mai visto prima.

Tradizionalmente in 2FA inserisci username e password quindi ti viene presentata una schermata che richiede il codice generato token . A volte basta semplicemente aggiungere token a password per le volte in cui una seconda pagina non è possibile, ad esempio le VPN lo usano spesso.

La nuova società con cui ho a che fare ha creato un PIN a 4 cifre e quando attivi 2FA non accedi più con la tua password ma usa PIN + token inserito nel campo della password sul modulo di accesso. L'account ha ancora password per l'accesso IMAP, SMTP, POP3 ecc.

Questo mi sembra molto meno sicuro, ma non sono sicuro se ho ragione. Il mio pensiero è che una password opportunamente complessa (diciamo 32 caratteri di lettere, numeri e simboli) seguita da token che cambia ogni 30 secondi richiederà un tempo infinitamente più lungo di un valore numerico PIN a 4 cifre combinato con lo stesso token .

In questo caso sarebbe più sicuro usare una password opportunamente complessa senza che sia abilitato il 2FA che cambi ogni paio di settimane dell'implementazione 2FA con PIN + token ?

Nota: la società stessa si riferisce entrambi a questo sistema come 2FA e OTP in modo intercambiabile, ma non sono del tutto sicuro di quale dovrebbe essere la terminologia corretta.

    
posta jskrwyk 09.11.2017 - 11:35
fonte

3 risposte

7

Invece di:

  1. password alfanumerica di lunghezza ragionevole (36 possibili caratteri su, diciamo, una lunghezza massima di 8 caratteri per un utente tipico) [non tiene conto di caratteri speciali, ma ho già il sospetto che ci siano altri problemi]
  2. gettone

Il sistema utilizza:

  1. Password a 4 cifre (10 possibili caratteri su una lunghezza di 4)
  2. gettone

Questo è dimostrabilmente un sistema molto più debole, anche se progetto un sistema di password molto debole (descritto sopra). Inoltre, l'UX è dispari, ma questo è un altro fattore.

Ma è troppo debole?

Il fatto che il token cambi ogni 30 attenua un sacco di problemi. Avere una password significa che se qualcuno ottiene il generatore di token, l'account ha ancora alcune protezioni. Ma le 4 cifre sufficienti di una protezione?

Due rischi da considerare:

  • Qualcuno bruteforcing del pin + coppia token

Questo dipende interamente dalla velocità con cui il sistema consente i tentativi all'interno di una finestra di 30 secondi. Quindi, forse è abbastanza sicuro. Ma vogliamo veramente fare affidamento su un acceleratore di sistema come misura di sicurezza? I Throttles sono una buona misura di backup, non una mitigazione primaria.

  • Qualcuno fa bruteforcing del pin se ha il generatore di token

Matematicamente, passare a tutte le combinazioni richiederebbe 10.000 ipotesi (in media 5000 per trovare successo), se inserite manualmente, e se assumiamo perni perfettamente casuali. Questo è un sacco di se. Di nuovo, dipende da quanti tentativi il sistema permetterà. Inoltre, i pin sono notoriamente facili da indovinare.

Confrontalo con una "password complessa" (ma vuoi definirla) che cambi di frequente. Ecco la cosa: senza il token che cambia, cambi il tempo di bruteforce da 30 a 2 settimane (nel tuo scenario). Ora, il fattore rilevante è la complessità (o entropia) della tua password e del tuo sistema per cambiarla in modo affidabile frequentemente. Ancora una volta, molte dipendenze.

Come puoi vedere, è difficile confrontare i fattori che hai esposto. Un sacco di "se". Per i fattori su cui ho il controllo e i rischi di cui sono preoccupato, potrei scegliere il token pin + (supponendo che il 2FA sia implementato correttamente (whoops, un altro 'se')).

Ma in realtà, sceglierei un altro servizio in grado di implementare correttamente 2FA.

    
risposta data 09.11.2017 - 12:20
fonte
1

Non è necessario limitare la parte della conoscenza (primo fattore) a un PIN di 4 cifre. A meno che non stiano usando un prodotto molto cattivo e vecchio nel back-end. Penso che RSA lo abbia inizialmente fatto. Ma hey - RSA SecurID è nato nel 1986!

Tutti gli altri prodotti al giorno d'oggi consentono un "PIN", che può essere acutalmente una password.

Ma c'è anche un altro aspetto, dovresti prendere in considerazione:

Una password più lunga (fattore singolo) ha ovviamente più entropia di un PIN a 4 cifre e un codice OTP a 6 o 8 cifre. MA: La tua password è memorizzata in un database di password, che a volte ... ... beh, si perde. E poi l'attaccante può forzare la hash della tua password.

Ovviamente il "PIN" di una soluzione 2FA viene anche con l'hash / memorizzato da qualche parte. E anche la chiave segreta, che viene utilizzata per generare il valore OTP, viene memorizzata da qualche altra parte - si spera crittografata. Ma questi sono in genere luoghi diversi e metodi di hashing / crittografia diversi che non dovrebbero essere vulnarabili alla stessa iniezione SQL.

Sono coinvolto nello sviluppo di una soluzione 2FA, che utilizza diversi modi per archiviare queste informazioni: link

Inoltre: è possibile utilizzare anche il 1 ° fattore (password) da un'altra posizione come una directory LDAP. In questo modo le modalità di attacco variano molto.

    
risposta data 09.11.2017 - 21:30
fonte
0

Questo è il modo in cui 2FA veniva sempre fatto con i token ben prima che arrivasse l'autenticazione in due passaggi. Il problema principale in due passaggi è che si perde se il nome utente e la password sono corretti prima che avvenga l'autenticazione. C'è un vantaggio operativo nel metodo pin-append: funziona con qualsiasi front-end che supporta nome utente e password. Molte VPN ecc. Non supportano due passaggi.

    
risposta data 09.11.2017 - 13:46
fonte

Leggi altre domande sui tag