2010-08-31 13 views
35

In primo luogo, un po 'del mio background. Ho lavorato su grandi sistemi web per oltre un decennio, Android è qualcosa che ho visto negli ultimi due mesi; come potete immaginare, il divario è abbastanza ampio :)Quanto sono sicuri i file SQLite e SharedPreferences su Android?

Guardando la parte di documentazione di Android Security and Permissions e Data Storage, parlando direttamente agli sviluppatori, leggendo libri ed esercitazioni, è abbastanza chiaro come funziona l'intero modello. Tuttavia, non sono riuscito a trovare una risposta se i file SQLite e SharedPreferences sono abbastanza sicuri da archiviare informazioni delicate non crittografate (ad esempio, token OAuth). È possibile che qualcuno li prenda in qualche modo? Citando la documentazione di Android:

A tutti i dati memorizzati da un'applicazione verrà assegnato l'ID utente dell'applicazione e normalmente non accessibile ad altri pacchetti.

E 'la norma non accessibili parte dandomi ulteriore capelli grigi :)

Grazie, risposte utili sono apprezzati :)

+0

Non conosco la risposta, ma non credo _ i dati sono crittografati in alcun modo. –

+1

No, non lo è. L'unico meccanismo di protezione è attraverso le autorizzazioni di accesso a livello di file system. Effettuando il rooting del telefono, tuttavia, qualsiasi applicazione può accedere a questi file XML. Vedi anche: http://www.androiddiscuss.com/1-android-discuss/1671.html –

risposta

39

È possibile che qualcuno li prenda in qualche modo?

Dipende da qualcuno. Come indica il signor Burov, gli utenti dei telefoni radicati possono ottenere ciò che vogliono. Gli utenti ordinari e altre applicazioni non possono, per impostazione predefinita.

E 'la parte normalmente non accessibili dandomi capelli grigi ulteriore :)

Per impostazione predefinita, i file sono al sicuro. Puoi renderli leggibili a livello mondiale o scrivibili in tutto il mondo, se lo desideri.

Non sarebbe possibile decompilare il file apk e trovare la chiave di crittografia in questo caso?

Questo dipende da chi si sta difendendo. Se ti stai difendendo da altre app, chiedi all'utente di fornire la chiave di crittografia. Se stai difendendo contro l'utente, sei fregato, proprio come tutte le implementazioni di DRM sono fottute.

+29

+1. 'Solo tutte le implementazioni di DRM sono fottute';) –

+1

Ci sarà sempre qualcuno che cerca di capire come si fa qualcosa, e non c'è una protezione al 100% possibile. Crittografare i dati dovrebbe impedire che molti tentativi abbiano successo, si spera. Immagino che dovremo accontentarci per ora. –

1

bene, c'è un gruppo di SharedPreferences dell'editor applicazioni sul mercato, quindi non sono sicuramente sicuri. Anche il database dei dispositivi rooted può essere facilmente rimosso, poiché l'utente ha pieno accesso al filesystem del telefono. Quindi, se vuoi che la tua app sia totalmente sicura, cripta i tuoi dati.

+0

Non sarebbe possibile decompilare il file apk e trovare la chiave di crittografia in quel caso? –

+8

"Bene, ci sono un sacco di app di editor di SharedPreferences sul mercato, quindi non sono sicuramente sicure." - per favore citarne alcuni, perché una ricerca del mercato non ne esce. – CommonsWare

+0

@David bene è possibile ottenere la chiave tramite connessione crittografata da qualche server nel web. Probabilmente non la soluzione migliore, ma garantisce un livello di sicurezza più elevato. –

Problemi correlati