Per i sistemi in cui 2FA / MFA è "facoltativo" come Gmail o Outlook.com, il servizio deve bilanciare il fattore problematico dell'utilizzo del metodo a 2 fattori e della sicurezza che porta al proprio sito . In un mondo perfetto, gli utenti dispongono di password uniche e complesse per ogni sito e utilizzano sempre 2FA quando disponibili, ma nel mondo reale hai ragione: gli utenti avranno la stessa password su una dozzina di siti e un fattore 2 meccanismo che non blocca automaticamente l'account e avvisa l'utente dopo alcuni tentativi di accesso non validi in una finestra relativamente piccola potrebbe portare a una situazione in cui l'utente malintenzionato tenta pazientemente qualche ipotesi fino a quando non arriva al prompt 2FA, a quel punto essi sapere che hanno una combinazione di nome utente e password valida. Con tutti i compromessi del database delle password altamente pubblici su siti di grandi dimensioni (come LinkedIn, tra molti altri) che utilizzano il tuo indirizzo email come login, un utente malintenzionato può indovinare logicamente la password di un utente in modo relativamente semplice se l'utente non si è mai preoccupato di aggiornare altri siti , ma proprio quello che era "incrinato".
Per le applicazioni critiche per la sicurezza (come una delle tante su cui lavoro), il prompt di login richiede nome utente, password e valore a 2 fattori contemporaneamente, ed è un'autenticazione "tutto o niente", e noi non lo facciamo ti dico PERCHÉ il tuo login è fallito, a meno che non sia perché la tua password è scaduta (il che presuppone che tu abbia inserito la password corretta, ma richiederà semplicemente di cambiarla e inserirla di nuovo con un altro valore 2FA per accedere effettivamente all'applicazione) . Quella applicazione ha una base di utenti "captive" e la 2FA è richiesta dalla politica, quindi non è direttamente confrontabile con i siti "2FA-opzionali" che hai menzionato nell'OP.
Fondamentalmente, tuttavia, concordo con i commenti sopra riportati che un "token-on-demand" è più sicuro di un token "offline" (come RSA o Google Authenticator) se hai intenzione di eseguire l'autenticazione in due passaggi perché l'utente saprà subito che qualcuno sta tentando di accedere al proprio account in virtù di messaggi SMS imprevisti, o "password errata" o una stringa valida di 2 fattori nel caso in cui l'autore dell'attacco ottenga la risposta corretta. Se il sito invia SOLO il valore di 2 fattori SMS all'accesso corretto, allora è inutile per il punto che hai menzionato, per far sapere all'utente PRIMA che l'utente malintenzionato abbia effettivamente la password corretta. L'utente otterrebbe la stringa di 2 fattori valida solo se l'utente malintenzionato ha la password corretta. A quel punto, probabilmente è troppo tardi, e l'aggressore è già fuori a provare le stesse combinazioni di username e password su altri siti che non hanno 2FA e l'utente dovrebbe trovarsi su un computer e scramble per cambiare ogni password su ogni sito lo usano, che se stanno riutilizzando la stessa password ovunque, è praticamente impossibile perché non li ricorderanno tutti.
In fin dei conti, dipende dall'implementazione individuale per quanto dannosa può essere una 2FA per altri siti utilizzati dallo stesso utente. Caso migliore, è un login all-in-one come ho descritto, in cui l'hacker dovrebbe anche avere in qualche modo il proprio dispositivo 2FA o "stringa magica" (token di inizializzazione per qualcosa come Google Authenticator), e se anche loro lo hanno , l'utente è già stato ben compromesso.