Per i sistemi in cui 2FA / MFA è "opzionale" come Gmail o Outlook.com, il servizio deve bilanciare il fattore fastidioso dell'utilizzo del metodo a due fattori e la sicurezza che offre al loro sito . In un mondo perfetto, gli utenti avrebbero password complesse e univoche per ogni sito e utilizzerebbero 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'attaccante tenta pazientemente alcune probabili ipotesi fino a quando non arriva al prompt 2FA, a quel punto sapere di avere una combinazione nome utente + password valida. Con tutti i database di password altamente pubblici compromessi su siti di grandi dimensioni (come LinkedIn, tra molti altri) che utilizzano il tuo indirizzo e-mail come accesso, 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 solo quello "rotto".
Per le app critiche per la sicurezza (come una delle tante su cui lavoro), il prompt di accesso richiede nome utente, password e valore a due fattori contemporaneamente ed è un'autenticazione "tutto o niente", e non ti diciamo PERCHÉ il tuo accesso non è riuscito, a meno che non sia perché la tua password è scaduta (il che presuppone che tu abbia inserito la password corretta, ma ti richiederà solo di cambiarla e inserirla di nuovo con un altro valore 2FA per ottenere effettivamente l'accesso all'applicazione). Quell'applicazione ha una base di utenti "captive" e il 2FA è richiesto dalla politica, quindi non è direttamente paragonabile ai siti "2FA-optional" che hai menzionato nell'OP.
Fondamentalmente, tuttavia, sono d'accordo con i commenti precedenti sul fatto 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ù dei messaggi SMS inaspettati, o "password errata" o una stringa di 2 fattori valida nel caso in cui l'aggressore lo indichi correttamente. Se il sito invia SOLO il valore SMS a 2 fattori in caso di accesso riuscito, è inutile per il punto che hai menzionato, per far sapere all'utente PRIMA che l'attaccante ottenga effettivamente la password corretta. L'utente otterrebbe la stringa a 2 fattori valida solo quando l'aggressore aveva la password corretta. A quel punto, probabilmente è troppo tardi e l'aggressore sta già provando le stesse combinazioni di nome utente + password su altri siti che non hanno 2FA e l'utente dovrebbe essere al computer e affrettarsi per cambiare ogni password su ogni sito lo usano su, che se stanno riutilizzando la stessa password ovunque, è praticamente impossibile perché non le ricorderanno tutte.
In definitiva, dipende dall'implementazione individuale fino a quanto può essere dannoso un 2FA per altri siti utilizzati dallo stesso utente. Nel migliore dei casi, è un accesso all-in-one come ho descritto, in cui l'attaccante dovrebbe in qualche modo avere anche il proprio dispositivo 2FA o "stringa magica" (token di inizializzazione per qualcosa come Google Authenticator), e se lo hanno anche loro , l'utente è già stato ben compromesso.