L'applicazione Android della mia banca consente agli utenti di eseguire transazioni finanziarie senza l'utilizzo del generatore di token fisico (che richiede l'inserimento di una carta bancomat e un codice PIN valido) che si richiederebbe normalmente quando si utilizza l'interfaccia web della banca. Tuttavia, questo è supportato solo quando si utilizza l'app su un telefono fornito con un Secure Element hardware in cui è possibile memorizzare chiavi crittografiche e simili.
Inizialmente, questa mi sembrava una buona decisione, dal momento che i dispositivi senza un elemento protetto dovevano memorizzare le chiavi in memoria o su archiviazione persistente e sono quindi vulnerabili agli attacchi di malware installati sullo stesso dispositivo.
Tuttavia, quando ho riflettuto su questo aspetto ho avuto l'impressione che l'utilizzo di Secure Element avrebbe effettivamente lasciato un vulnerabile a questi attacchi piuttosto che proteggendo le sole chiavi tramite il software ; confrontare questi due approcci:
- Il sistema si affida al sistema operativo per limitare l'accesso alle chiavi: altre app non possono accedervi mentre sono in userland, ma quando un utente malintenzionato riesce a ottenere l'accesso di root al dispositivo, può rubare le chiavi e firmare o crittografare qualsiasi cosa vogliono, fingendo di essere l'applicazione bancaria. Ciò consente loro di contraffare le transazioni.
- Il sistema memorizza le chiavi su SE e fa affidamento sul sistema operativo per limitare l'accesso a questo hardware: altre app non possono accedervi mentre sono in userland, ma quando un utente malintenzionato riesce a ottenere l'accesso root può istruirlo per firmare e crittografare tutto ciò che vogliono , fingendo di essere l'applicazione bancaria. Ciò consente loro di contraffare le transazioni.
Per questo motivo l'uso del chip hardware per questo scopo mi sembra piuttosto inutile. Lo stesso vale per le applicazioni simili che si affidano a questo per immagazzinare materiale sensibile.
Mi sto perdendo qualcosa qui? Esiste una situazione in cui l'elemento di sicurezza offre un chiaro vantaggio in termini di sicurezza a questa app per il settore bancario, rendendo ragionevolmente necessaria l'autorizzazione?