Il problema con le chiavi hardcoded è che puoi trovarli (come hai fatto tu). Come hai affermato, la crittografia e la decrittografia dei dati sono banali. L'isolamento del processo di Android è solido (non perfetto), ma fornisce un buon grado di separazione tra le applicazioni.
Ci sono tre scenari in cui posso pensare che una minaccia possa trarne vantaggio.
- App Android dannosa con root
- compromissione fisica del telefono
- L'app ha accesso completo ai suoi dati
Ci sono molte app e 3 app r> che richiedono root per eseguire tutte delle sue funzionalità. Se il telefono è rootato e si scarica un'app dannosa, l'isolamento del processo non farà la differenza. I dati privati possono essere letti, decrittografati ed ex-filtrati.
Se il tuo telefono viene rubato, può succedere la stessa cosa. È possibile utilizzare un exploit per eseguire il root del telefono e scaricare i dati dell'app privata. Con le chiavi hardcoded i dati possono essere decodificati.
Questo non vuol dire che questo sia banale da eseguire. Il blocco del telefono (si spera) costringerà l'utente malintenzionato a collegare il telefono tramite USB. Non conosco le specifiche di tutti i metodi per ripristinare un telefono, ma credo che la maggior parte di essi rimuoverà tutti i dati utili dal telefono. Come utente Android paranoico eviterei di usare le app che conosco con chiavi hardcoded, ma se non fossi paranoico non mi interesserebbe molto. Il livello di sforzo per eseguire lo sfruttamento è piuttosto alto. Vogliono affrontare tutti questi problemi per vedere il mio punteggio Candy Crush ... cercalo 1 .
Il terzo scenario è probabilmente più preoccupante. Se utilizzano le chiavi hardcoded, ciò impedisce loro di inviare le informazioni sensibili (che potrebbero essere crittografate) al proprio server privato. Conoscono la chiave hardcoded, quindi possono solo decifrare i tuoi dati.
Il modello di minaccia qui dipende davvero dal tipo di dati che queste app stanno proteggendo. Se preferisci ricevere notifiche ... allora forse non ti interessa. Se si tratta di conversazioni private, contatti, messaggi, immagini, ecc., Questa sarebbe una minaccia più grande.
By necessity, the app itself has the key to encrypt and decrypt.
Non necessariamente. Esistono diversi modi in cui l'app è in grado di crittografare i dati privati in modo sicuro senza la necessità di una chiave hardcoded. L'app potrebbe richiedere una password utente che generi la chiave di crittografia o decrittografi una chiave privata che viene poi utilizzata per decrittografare i dati. Oppure le app potrebbero semplicemente utilizzare lo storage sicuro di Android poiché sai ... è fornito, documentato e facile.
1 Non sto cercando di dire che le chiavi hardcoded sono una buona idea o che non influenzano la sicurezza. Sto solo cercando di sottolineare che il livello di difficoltà di sfruttamento sarebbe alto.