Durante la creazione di un'app mobile, è previsto (OWASP, ecc.) che tutti i dati sensibili che l'app memorizza siano correttamente crittografati. Ciò includerebbe ad esempio le password, i cookie di sessione, i token OAuth.
Su Android le app normalmente usano SharedPreferences per memorizzare tali dati. Questi possono essere letti solo dall'app stessa, a meno che qualcuno non abbia accesso root al telefono, nel qual caso lui / lei può leggere le SharedPreferences di tutte le app.
Anche se sono pienamente d'accordo con la crittografia di tali dati, non mi è chiaro quale minaccia stiamo mitigando, perché:
- Su un telefono non rooted, solo l'app stessa può leggere i dati, crittografati o meno.
- Su un telefono rooted tutte le scommesse sono disattivate, poiché root può eseguire la brute-forzare le chiavi master e quindi estrarre le chiavi app per decrittografare i dati.
Un punto che vedo è che se l'intero contenuto del telefono dovesse essere sottoposto a backup su un servizio / file system esterno, le protezioni del sistema operativo non sarebbero più applicabili, quindi chiunque abbia accesso al backup potrebbe leggere tutti i file . C'è qualche altra minaccia che stiamo mitigando usando la crittografia?