Perché? Per lo stesso motivo per cui considero authy insicuro, la possibilità di fare il backup!
Questa sottospecie di analisi riguarda esclusivamente la componente "mondo reale".
Immaginiamo un utente standard con un solo smartphone, no permessi di root e backup dei seed fatti al momento dell'attivazione del 2FA.
Se il seed non può essere estratto l'utente ha la (quasi) certezza di avere un 2FA non compromesso, nel momento in cui smarrisce lo smartphone o subisce un furto tutti i codici sono da considerare compromessi, a quel punto l'utente prende i suoi backup, si collega ai vari servizi e reimposta 2FA.
L'unico modo che un attaccante ha di impossessarsi dei codici 2FA (seed o OTP) è impossessarsi del dispositivo, ma a quel punto l'utente se ne accorge e può proteggersi.
Attacco:
- inserire il codice 2FA di fronte alla vittima
- rubare il dispositivo
- no root (permette l'accesso diretto al db contenente i seed)
- possedere il dispositivo
Ora passiamo all'altro scenario, l'utente non ha modo di "verificare" che i suoi seed 2FA siano ancora sicuri perché ad un attaccante basterebbe impossessarsi del dispositivo solo per il tempo necessario a effettuare il backup.
Attacco:
- tutte le precedenti
- "posso fare una telefonata" e backup
- nessuna delle precedenti
- non lasciare mai il dispositivo a terzi
Riassumendo, la funzione backup rimuove uno strato di sicurezza e aggiunge un vettore di attacco.