Google Authenticator si basa sull'algoritmo di password monouso basato sul tempo (TOTP).
link
La ragione per cui sarebbe difficile eseguire la forza bruta è perché i token cambiano ogni 30 secondi. Quindi, dopo 30 secondi di tentativi di forza bruta, il bersaglio si muove e improvvisamente il token può di nuovo qualsiasi numero di 6 cifre. Ciò significa anche che potrebbe cambiare a un valore che hai già provato, quindi è possibile esaurire l'intero spazio chiave senza trovarne uno valido.
Tuttavia, ciò non significa in alcun modo che sia impossibile o addirittura irrealizzabile se non è presente alcuna protezione contro la forza bruta. Ad esempio, se in qualche modo sei riuscito a inviare 1.000.000 di tentativi di autenticazione in 30 secondi. Anche provando 1000 numeri casuali ogni 30 secondi, potresti arrivare lentamente (per esempio: commento di Domen). Tuttavia, anche un semplice ritardo di 1 secondo sui tentativi di ri-autenticazione per utente renderebbe questo poco pratico. In quanto tale, una sorta di controllo della forza bruta che impedisce questo numero di tentativi di autenticazione entro 30 secondi è imperativo.
Per lo meno penso che il processo di login di Google introduca un CAPTCHA dopo tentativi falliti che rallenterebbero troppo il processo e renderebbero l'attacco non praticabile.