Je développe une application Android et je prévois de la publier (application payante). J'ai entendu dire qu'il est très facile de pirater des applications Android (beaucoup plus facile que l'iphone). Je me demandais, d'après votre expérience ou ce que vous savez, comment augmenter la sécurité de mon application? Je sais que je ne pourrai jamais le sécuriser à 100% mais je veux qu'il soit plus difficile pour les gens de le pirater ou de le distribuer illégalement Des idées, des expériences, des commentaires que vous pouvez partager? Ce sera grandement apprécié Cordialement
Réponses
Trop de publicités?J'ai publié une gratuit anti-malware pour Android, et s'assurer que personne ne l'a piraté était essentielle à sa réussite. Les plus grandes menaces contre une application sur l'Android Market comprennent fuite du code source, copié, distribué des applications payantes, et re-keying). Je l'explique ci-dessous et la façon de les résoudre.
Tout d'abord, ce document décrit comment désosser une application Android en analysant le code compilé et en affichant le code source. Vous ne serez pas en mesure de bloquer cela se passe à votre application. Période. Quelqu'un va peut toujours consulter votre code source, si elles reçoivent une copie de votre apk (facilement disponible sur un téléphone enracinée). La bonne nouvelle est que vous pouvez dissimuler les pièces importantes de votre code, ce qui rend plus difficile à désosser. Proguard est un outil fourni par Android qui vous permet de dissimuler (le rendre plus difficile à lire) votre code au moment de l'emballage. Afin d'éviter que votre code important d'être lu, cependant, vous aurez besoin de déplacer toutes les vulnérables, les méthodes ou les variables d'un fichier qui n'est pas un Activity
, Service
ou BroadcastReceiver
. Pour tous les faits, lire la documentation.
Pour protéger contre illégalement copie et la distribution de votre application, Google Play propose quelques options de licence. Malheureusement, LVL est pas entièrement sécurisée. Un détail COMMENT pour comment cracker (pré-Google Play) est disponible ici.
Enfin, le document ci-dessus, ainsi que de nombreux articles scientifiques et de blogues en ligne de décrire comment, une fois le code source (ou même d'obfuscation de code source) est une fuite, une fois pouvez simplement ajouter un peu de leur propre, le code malveillant, renoncer à l'application, et de la publier sur l'Android Market. La bonne nouvelle, c'est que, à moins que votre android clé de licence mot de passe est facile à deviner, ou si vous donnez à quelqu'un d'autre, l'attaquant ne sera pas en mesure de publier une application avec la même clé de licence. Ce n'est pas seulement vous protège du blâme, mais il permettra également de faire en sorte que l'application malveillante ne peut pas accéder à des données disponibles par le biais de votre application d'origine (comme SharedPreferences
).
Dans l'ensemble, la meilleure façon de vraiment sécuriser votre application à partir de la piraterie est correctement configurer et utiliser Proguard, Google Play de permis d'exercice, et de vous connecter final apk avec un très sécurisé de la clé de licence.
Vous pouvez ajouter de sabotage des contrôles combinés avec d'obscurcissement pour alerter l'utilisateur/désactiver la fonctionnalité /rapport au serveur si l'application a été piraté. J'utilise DexGuard pour renforcer l'obscurcissement.
Falsifier des contrôles
- Application d'installation - Utiliser le gestionnaire de package pour assurer l'installation de l'app est la lecture/amazon app store
- Emulateur - vérifiez les propriétés du système de signes révélateurs de l'application est en cours d'exécution sur émulateur qui en dehors de dev pourrait indiquer une attaque/manipulation
- Debuggable check - Utiliser le gestionnaire de package pour vérifier la debuggable drapeau, ce doit être éteint dans le produit pourrait indiquer attaque/manipulation
- Le certificat de signature de vérifier l'Utilisation du gestionnaire de paquet pour vérifier l'application est signé avec votre certificat de développeur (ce serait brisé si quelqu'un déballé et remballé/a démissionné de l'application)
avoir un regard sur le google play cadre de délivrance des licences.
http://developer.android.com/guide/market/licensing/index.html
ceci est votre meilleur choix.
Google Play, la Licence est un réseau qui permet une demande de requête de confiance Google Play serveur de licences pour déterminer si la demande est autorisé à l'appareil de l'utilisateur. L' service de gestion de licences est basé sur la capacité de Google Play serveur de licences pour déterminer si un utilisateur est autorisé à utiliser une application donnée. Google Play considère qu'un utilisateur autorisé si l'utilisateur est enregistré acheteur de l'application.