Come sempre c'è un compromesso tra comodità e sicurezza. Più sicuro vuoi la tua app, meno conveniente sarà per te sviluppare.
Il codice sorgente è intrinsecamente insicuro a causa della facilità di decompilazione, in particolare con il telefono rooted. Per proteggere il tuo codice sorgente puoi offuscare e/o crittografare il tuo codice che impedirà la decompilazione. Non sono sicuro di quali strumenti sono disponibili per Android, ma sono sicuro che complicherà il processo di compilazione. Se solo offuscate, la decompilazione potrebbe essere ancora possibile, ma sarà molto più difficile e richiederà probabilmente che la persona tenti di decompilare il codice per conoscere e comprendere il Bytecode se viene utilizzato un forte livello di offuscamento.
Per proteggere le tue risorse, credo che la tua unica opzione sia utilizzare la crittografia. Di nuovo questo complicherà l'app e/o il processo di creazione a seconda di dove implementate.
Anche se si utilizza la crittografia per proteggere le risorse, è necessario proteggere la chiave di crittografia all'interno del codice sorgente. Ovviamente, non importa quale schema di crittografia utilizzi se la tua chiave di crittografia è in chiaro nel codice sorgente, allora chiunque può prendere la chiave e il tuo patrimonio e decodificarlo. Tutto ciò è aggiungere un altro piccolo recinto per saltare.
Tuttavia, se si protegge correttamente la chiave di crittografia e si utilizza un buon algoritmo di crittografia, è necessario preoccuparsi di meno. Questo è un processo abbastanza complicato, tuttavia, è difficile utilizzare una chiave per la crittografia all'interno del codice e non tenerla in chiaro. Anche se non lo si mantiene in chiaro nel codice, a un certo punto deve essere in memoria per eseguire la decrittografia. Quindi, se qualcuno può collegare un debugger o eseguire il dump della memoria al momento giusto, comprometterà la chiave. Certo, questo richiede un avversario molto più abile.
In generale, devi decidere esattamente chi sei preoccupato di rubare i tuoi beni. Se sei preoccupato per la media di Joe che li copia, allora dovresti essere ok. Se sei preoccupato per un hacker professionista, un kiddie di script, ecc. Accedendo a loro, probabilmente sei sfortunato.
fonte
2013-08-09 16:29:18
Ho provato il metodo di crittografia e decrittografia ma rallenta notevolmente l'app. Quindi preferisco mantenere le risorse direttamente.Grazie comunque per la tua risposta – Yogamurthy