If, say, someone were to find my recovery code, could they not then gain access to my account?
Come hai detto, questo è solo l'unico fattore. Ecco perché, molto probabilmente, i codici di ripristino sono semplici PIN e hanno un tempo limitato di vita . Se qualcuno intercetta questo PIN, deve scoprire la tua vera password.
Similarly, could then someone not just hack my recovery code, given enough time?
Il tempo limitato di vita per il codice di ripristino è principalmente - per questo motivo. Nel caso in cui qualcuno rubi le credenziali del tuo account, lui / lei ha un certo tempo per fornire il codice di sicurezza. Questo è un modo per limitare le tecniche di forza bruta (non impedire) .
Consequently, would it not be equally secure to just require a very long, and randomly generated password?
Anche se hai una password di 24 cifre che è stata generata casualmente, dovresti pensare a qualsiasi altra minaccia alla sicurezza esistente (ad es. se qualcuno accede al tuo password manager / computer / mobile).
Puoi trovare letteralmente tonnellate di articoli che descrivono scenari 2FA (o MFA (Multi Factor Authentication)) e quali sono i vantaggi che forniscono.
Inoltre, per non confondervi con falso senso di sicurezza usando 2FA, è meglio darvi un caso ben noto - che in realtà non ha funzionato:
Reddit Got Hacked Thanks to a Woefully Insecure Two-Factor Setup:
Attackers got into Reddit’s systems by compromising some employee administrative accounts for company cloud storage and source code storage. Slowe notes in the blog post that the employees were using two-factor authentication to protect these crucial accounts, but some number of them had that layer of protection set up with SMS—meaning someone would need a code texted to their mobile number to complete an account login. The problem is that SMS-based two-factor is known to be insecure, because attackers can launch a “SIM swapping” attack to take control of a user’s SIM card and all the data coming to their phone number.
source