Nel caso ideale, entrambi possono essere inseriti nello stesso momento, come nel caso di un generatore di OTP . In questo modo, stai testando la combinazione della password e dell'OTP allo stesso tempo, senza rivelare quale ha avuto l'errore, impedendo a un utente malintenzionato di attaccare con forza bruta uno dei due in isolamento.
Ma devi prendere in considerazione le preoccupazioni pratiche in scenari come la verifica tramite SMS. In tal caso, un utente malintenzionato può utilizzare il sistema stesso per attaccare l'utente. Se riesce a far scattare un messaggio SMS tentando un'autenticazione, anche senza conoscere la password, nel tempo potrebbe essere in grado di annoiare l'utente nella disabilitazione dell'autenticazione del secondo fattore solo per interrompere i messaggi SMS. La limitazione della velocità del servizio di autenticazione probabilmente non sarebbe sufficiente a prevenire questo tipo di attacco.
Quindi, come compromesso, è necessario un minimo livello di autorizzazione per attivare il ciclo di verifica fuori banda, sia esso SMS o e-mail o telefonata o altro. Questo non è l'ideale in quanto consente di attaccare la password in modo isolato, ma il compromesso generale è considerato valido.
Un'altra considerazione è la divulgazione di informazioni. Quante informazioni sulla configurazione di autenticazione di un utente vuoi rivelare a un utente malintenzionato non autenticato? Se è necessario un secondo fattore, è sensato richiedere il token del secondo fattore in anticipo. Ogni utente lo ha, quindi non viene divulgato nulla di personale. Ma se il campo del secondo fattore è visibile solo se si digita il nome utente di un utente che lo ha abilitato, un utente malintenzionato può rapidamente stabilire se il secondo fattore è abilitato senza la necessità di conoscere la password. Forse è un grosso problema, forse non lo è. Ma vale la pena considerare che tali informazioni potrebbero essere utilizzate per scegliere un target per le campagne di phishing.