Google Authenticator se basa en el Algoritmo de contraseña único (TOTP) basado en el tiempo.
enlace
La razón por la que sería difícil la fuerza bruta es porque las fichas cambian cada 30 segundos. Así que después de cada 30 segundos de intentar la fuerza bruta, el objetivo se mueve y, de repente, el token puede volver a cualquier número de 6 dígitos. Esto también significa que podría cambiar a un valor que ya ha intentado, por lo que es posible agotar todo el espacio clave sin encontrar uno válido.
Sin embargo, esto no significa de ninguna manera que sea imposible o incluso inviable si no hay protección contra la fuerza bruta. Por ejemplo, si de alguna manera pudo enviar 1,000,000 intentos de autenticación en 30 segundos. Incluso si intentas 1000 números aleatorios cada 30 segundos, puedes llegar lentamente (ver: el comentario de @domen). Sin embargo, incluso un simple retraso de 1 segundo en los intentos de autenticación por usuario haría esto poco práctico. Como tal, es imperativo algún tipo de control de fuerza bruta que impida tantos intentos de autenticación en 30 segundos.
Como mínimo, creo que el proceso de inicio de sesión de Google introduce un CAPTCHA después de intentos fallidos que retrasarían demasiado el proceso y harían inviable el ataque.