2012-08-16 11 views

risposta

0

Android utilizza i permessi Unix per proteggere app sandbox. Ogni app viene eseguita con un utente unico e solo quell'utente dispone delle autorizzazioni per operare nella cartella /data/data/your.package.name. Tuttavia, se il dispositivo di destinazione è rootato, i dati dell'app possono essere compromessi.

Alcuni link:

http://source.android.com/tech/security/index.html

http://www.amazon.co.uk/dp/1430240628

http://developer.android.com/guide/topics/security/permissions.html

+0

Grazie, il problema è che voglio proteggere i file da questi tipi di rooting ma anche dall'essere utenti in grado di aprirli all'esterno dell'applicazione –

1

Guardando attraverso le risposte di Mighter e dato la vostra preoccupazione per i telefoni radicati Sembra che il suo stato discusso qui.

http://source.android.com/tech/encryption/android_crypto_implementation.html

(un link sub ho trovato da qualche parte qui http://source.android.com/tech/security/index.html)

Inizialmente ho pensato che si potrebbe usare il ContentProvider e memorizzare i dati in un database, credo che possono essere protetti, oppure potrebbe almeno crittografare i dati al suo interno. Non ero sicuro che avrebbe risposto al tuo problema comunque. Il link per l'implementazione della crittografia Android spero che soddisfi le tue esigenze. Sebbene potrebbe essere poco pratico a causa dei requisiti di versione.

+0

Vedere la risposta di CommonsWare. Ha ragione, semplicemente non puoi proteggerlo. Quindi la risposta è essenzialmente NO. – Emile

1

Due note:

In generale l'applicazione non poteva che essere il più sicuro sistema operativo. Nel caso in cui il dispositivo sia rootato, il sistema operativo non è più sicuro. Quindi la tua applicazione non può essere sicura neanche. Per esempio potrebbe esserci modifiche del sistema operativo che sarà:

  • ingresso tastiera log
  • subvert chiamate (comprese le chiamate di API crittografica)
  • registro qualsiasi informazione che passa attraverso HTTP (S).

La seconda nota è che a un certo punto sarà necessario fornire i dati (file) in chiaro (non crittografato) alle applicazioni di terze parti. Non appena hai fatto questo, possono copiarlo, inviarlo ad un server e non puoi farci niente. Quindi, anche se fornisci l'accesso a questi file per un periodo di tempo limitato, possono comunque "perdere".


Detto questo, il vostro approccio più semplice (come Emile sottolineato) sarebbe quella di utilizzare un dato ContentProvider, crittografare all'interno di esso e decrittografare i dati quando è consegnato alle applicazioni 3rd party.

Un approccio con maggiore complessità sarebbe utilizzare DRM (http://developer.android.com/reference/android/drm/package-summary.html) nel caso in cui le app di terze parti lo supportino.

0

Non c'è nulla di sicuro nel mettere qualsiasi tipo di dati su un dispositivo Android. Sono ment a essere dispositivi aperti. Se stai cercando di proteggere i tuoi dati di nuovo utenti rooted, allora dovresti usare una forma di crittografia. E a seconda della sensibilità dell'elemento, potrebbe non funzionare nemmeno (a meno che non si utilizzi una vera e propria crittografia high-end che si esaurirà poi sulle prestazioni). Non fidarti di Android con informazioni sensibili è l'unica cosa che posso dire.

3

mio particolare esigenza è quella di proteggere i file da dispositivi radicate

Per definizione, questo è impossibile.

Innanzitutto, chiunque disponga di un dispositivo rooted ha accesso a tutti i file, ovunque nel dispositivo stesso.

In secondo luogo, la crittografia aiuta solo il utente proteggere i loro dati da terzi. Tu, d'altra parte, stai cercando di attaccare l'utente impedendo loro di accedere ai loro dati. L'unico modo in cui puoi provare a farlo tramite la crittografia è che tu sia l'unico con la chiave di decrittografia e poiché tale chiave di decodifica deve essere sul dispositivo affinché il dispositivo sia in grado di decodificare il file, qualsiasi utente desideri per frugare nella tua app, trovare la chiave e decodificare i file stessi. L'idea di crittografare i file in questo modo si chiama DRM e ci sono due tipi di DRM: quelli che sono stati incrinati e quelli che nessuno si è preso la briga di provare a crackare ancora.

Se non si desidera che l'utente acceda a questi dati, non inserirli sul proprio dispositivo.

+0

Doh, Mr CommonsWare ha ragione, puoi renderlo più difficile ma non impossibile. Quindi sì, No è ​​la risposta giusta. – Emile

Problemi correlati