Definitely Less Secure
Le due maggiori preoccupazioni si applicano a tutti i token software, non solo FIDO.
Vulnerabilità della piattaforma
Le chiavi di sicurezza hardware forniscono una protezione relativamente strong dei loro segreti crittografici (una chiave privata o un valore seme). Questa protezione viene gravemente ridotta quando si implementa la funzionalità su un SO generico. Se il sistema operativo è compromesso, un utente malintenzionato potrebbe rubare il segreto. Questo aumenta il rischio di includere bug del firmware, modalità di debug, vulnerabilità del sistema operativo, altri software, problemi degli utenti, ecc.
Con i noti problemi che tengono aggiornati i telefoni Android, è particolarmente rischioso su quella piattaforma.
Controllo esclusivo
Il secondo problema è che le credenziali compromesse sono evidenti con un token hardware. Un utente probabilmente non si accorgerà mai del fatto che il suo smartphone è stato violato. Con ogni probabilità, l'app 2FA continuerà a funzionare normalmente. Con un token hardware, un utente noterà sicuramente quando il suo token viene perso o rubato.
Generalmente si può presumere che un utente abbia il controllo esclusivo sul proprio hardware 2FA fino a poco prima che venga segnalato come perso. Non ci può essere alcuna ipotesi per le credenziali 2FA memorizzate nel software.
Bad Security, ma forse vale il trade-off
Alla fine, un'implementazione 2FA del software è più incline a essere compromessa e meno incline a rilevare attacchi riusciti.
Tuttavia, sarà meno costoso e più semplice eseguire il provisioning se gli utenti dispongono già di dispositivi supportati.
Questo è un classico compromesso costo-vs-sicurezza e le organizzazioni prendono sempre decisioni del genere. Personalmente, dato il basso costo dei token hardware, non sceglierei mai l'app, anche se fosse gratuita.