L'autenticazione si basa su quanto segue: ( fonte )
- Qualcosa che conosci
- Qualcosa che hai
- Qualcosa che sei
Un buon motivo per utilizzare TOTP è aumentare la sicurezza utilizzando più fattori dall'elenco sopra. Ad esempio, se la tua password diventa nota a qualcun altro, sarà comunque necessario l'accesso al tuo dispositivo TOTP per l'autenticazione.
Tuttavia, ciò non significa che i dispositivi TOTP siano invulnerabili per attaccare.
RFC 6238 afferma che:
The keys MAY be stored in a tamper-resistant device and SHOULD be protected against unauthorized access and usage.
Questo significa che le implementazioni TOTP non sono richieste per proteggere il segreto condiviso da RFC compatibile. Tuttavia, potresti prendere in considerazione la ricerca di un'applicazione TOTP che richiede una password per decrittografare i segreti condivisi. Ciò fornisce una protezione aggiuntiva, ma se la sicurezza del telefono viene compromessa da un exploit o da un accesso fisico dannoso, gli attacchi di keylogger diventano possibili.
Hai anche chiesto quante chiavi un attacker avrebbe bisogno di vedere per scoprire il tuo segreto condiviso. Da RFC 4226 , Appendice A.4.3:
No matter what strategy the adversary uses, and even if it sees, and tries to exploit, the authenticators from authentication attempts of the user, its success probability will not be above that of the brute force attack -- this is true as long as the number of authentications it observes is not incredibly large.
Quindi, in generale, un attacco di forza bruta è il migliore che potrebbe accadere. Tuttavia, se l'avversario può generare i codici a piacere (e per qualche motivo non hanno già il segreto condiviso), questo non vale. Ulteriori informazioni su ciò che influenza questo attacco sono disponibili nella RFC.