Passi per la creazione di una buona crittografia dei file su Android

3

Voglio essere in grado di creare una buona crittografia dei file su Android per un'app cloud. I file utilizzati sono principalmente pdf, pngs, documenti, audio, video, ecc. (Tutti i tipi di file).
Modifica :
I miei limiti sono che dovrebbe essere abbastanza veloce, quindi gli utenti dell'app cloud non aspettano per sempre di caricarli / scaricarli. Inoltre, la crittografia deve essere sicura, quindi, se il dispositivo viene rubato, nessuno può ottenere una mano sui dati.
Conosco un po 'di crittografia, ho letto di AES (ho capito la matematica dietro, non così complicato), ma non sono sicuro di come fare correttamente una buona crittografia dei file, dal punto di vista dell'usabilità.
Spero che tu abbia il mio problema, in caso contrario, per favore, dì ciò che non è chiaro.

Pertanto, la mia domanda è:

Quali passi dovrei seguire (cose da leggere, ecc.) per avere una corretta crittografia che sia anche abbastanza veloce?

Esempio: ho visto che Spotify sta eseguendo una sorta di crittografia dei loro file che sembra essere abbastanza veloce.

Fatto noto: tutto quello che so finora è che l'archiviazione della chiave utilizzata per la crittografia è abbastanza sicura, quindi non è un problema.

    
posta Andrei Toader 22.10.2014 - 10:53
fonte

3 risposte

1

Secondo i commenti, suggerirei di fare una semplice AES sul lato server. Ad esempio, quando un cliente desidera aprire un documento, richiede la decrittografia, quindi il documento viene inviato al server, decrittografato e quindi rispedito. Il documento decrittografato non viene quindi mai memorizzato su flash o memoria, solo nella RAM. Una volta che l'utente è inattivo per un certo periodo o passa a un'altra app, elimina il documento dalla RAM.

Si noti che il canale di comunicazione deve essere sicuro (ad es. protetto da VPN o mezzi simili), poiché i dati in chiaro saranno trasmessi sul filo.

Tuttavia, se ti puoi permettere (ad es. c'è abbastanza spazio su disco per non avere bisogno di sedersi sullo spazio del disco del dispositivo), puoi invece archiviare Tutto sul disco del cliente o sul tuo disco, non criptato, e utilizzare un semplice lato server processo di autenticazione per assicurarsi che i dispositivi rubati non possano richiedere documenti fuori dal server. Ciò significherebbe che nessun documento è mai stato memorizzato sul dispositivo.

Quindi devi semplicemente inviare i documenti per la visualizzazione immediata nell'app.

    
risposta data 22.10.2014 - 13:56
fonte
1

Raccomando di utilizzare una soluzione esistente come SQLCipher, che funziona già correttamente su Android e consente di archiviare tutti i tipi di dati in un unico database (o se lo si desidera, diversi). Questo sarebbe sicuramente più facile e più sicuro rispetto al tentativo di implementare la propria crittografia dei file.

    
risposta data 22.10.2014 - 16:31
fonte
0

C'è un modo semplice e solido per aggiungere crittografato allo spazio di archiviazione a qualsiasi app Android. Per la memorizzazione dei file, è possibile creare un disco virtuale crittografato utilizzando IOCipher . Per l'archiviazione dei database crittografati, utilizza SQLCipher per Android . La libreria CacheWord semplifica la gestione della password dell'utente per tale spazio di archiviazione crittografato.

IOCipher usa la stessa API di java.io.* e SQLCipher usa la stessa API di android.database.* , quindi sono entrambi veramente facili da usare. Ecco come aggiungerli tramite gradle:

compile 'net.zetetic:android-database-sqlcipher:3.3.1-2@aar'
compile 'info.guardianproject.cacheword:cachewordlib:0.1'
compile 'info.guardianproject.iocipher:IOCipher:0.3'
    
risposta data 06.11.2015 - 16:41
fonte

Leggi altre domande sui tag