Table des matières:
- Obfuscation de code
- Modification de la bibliothèque de licences
- Rendez votre application inviolable
- Déplacer la vérification de licence sur un serveur distant
La sécurité des applications, le piratage et la prévention sont tous des sujets d'actualité, et ce pour de bonnes raisons. Sans un marché d'applications robuste, des centaines de milliers de nouvelles activations chaque mois ne pourront pas être maintenues, et un marché robuste ne serait pas possible sans le soutien des développeurs. Nous avons vu qu'Android avait une solution intégrée pour empêcher le piratage et nous avons également constaté à quel point il est facile de le contourner si vous êtes déterminé et si le stratagème reste dans sa forme de base. Google a laissé entendre qu'ils avaient plus d'informations à partager sur l'ensemble du sujet et qu'ils étaient fidèles à leur engagement. Après la pause, examinons les méthodes d'un Googler pour fournir un moyen sûr, sécurisé et convivial de protéger les applications.
Le service de licences Android Market et la bibliothèque de vérification de licences sont des outils puissants permettant aux développeurs de contourner le piratage d'applications. Le problème, comme cela a été démontré récemment, est qu’il n’est pas très difficile de le contourner. Puisque les gens sont des gens et que beaucoup passeront plus de temps que nécessaire pour casser une application de 99 cents du marché, Trevor Johns (l'un des ingénieurs du programme de développement d'Android) a présenté un ensemble de conseils utiles pour renforcer les outils fournis, et faire en sorte que les mesures anti-piratage fonctionnent mieux.
Les quatre domaines clés sont:
Obfuscation de code
L'obscurcissement de code est une astuce utilisée par les développeurs pour modifier le code source, rendant très difficiles le suivi des fonctions, packages, classes et variables connus, en fournissant un alias à chacun. Prenez cette fonction imaginaire par exemple - onRedraw (). Chaque endroit où vous utilisez la fonction dans le code source, c’est là, facile à lire et éventuellement à exploiter. Un obfuscateur de code remplacera la fonction lisible par un humain par un alias généré - wy23 () en est un bon exemple. Un rapide coup d'œil (ou un outil automatisé) à la recherche de fonctions ne va pas marcher, il faut creuser sérieusement pour voir exactement ce que signifie vraiment wy23 (). Des objectifs commerciaux en code Java (ha!) Sont disponibles, et Trevor recommande ProGuard et prévoit un prochain article sur le blog des développeurs Android sur le travail avec ProGuard.
Modification de la bibliothèque de licences
Google recommande aux développeurs de modifier autant que possible le source des bibliothèques de licences fournies tout en conservant la fonction d'origine. C'est un cas où le chemin emprunté est sans importance, tant que la destination est atteinte. Les développeurs peuvent enterrer des fonctions dans des instructions if / then, des boucles, voire même créer la bibliothèque entière dans leur propre bloc de code.
Pour aller plus loin, les développeurs sont encouragés à utiliser des vérifications de hachage et d'autres méthodes de cryptage pour générer de nouvelles constantes et à modifier le code afin de rechercher les nouvelles constantes au lieu d'utiliser celles fournies par Google dans l'exemple de code. Assurez-vous de cliquer sur le lien source pour voir un bon exemple fourni par Google, qui montre comment procéder. Et n'oubliez pas non plus de masquer le code ici!
Rendez votre application inviolable
Celui-ci est simple. Pour qu'un pirate informatique supprime la licence de votre application, il doit procéder à l'ingénierie inverse et reconstruire l'application. Utilisez les contrôles CRC pour éviter cela. Google dispose également d'un autre outil pratique: vérifiez qu'Android Market était la source d'installation de votre application et, dans le cas contraire, ne le laissez pas s'exécuter. Encore une fois, il y a un bel exemple de ceci sur le lien source.
Déplacer la vérification de licence sur un serveur distant
Si votre application utilise des composants en ligne, Google vous recommande de déplacer les informations et la réponse LVL de l'application vers votre serveur. Lorsque l'utilisateur utilise l'application, votre serveur vérifie auprès de Google. Si tout n'est pas casher, aucun contenu n'est diffusé. Bien que simple, il est également très efficace de contourner ce problème, il faudrait que quelqu'un modifie non seulement l'application, mais également le contenu de votre serveur. N'oubliez pas que les données locales ne sont jamais sécurisées, mais un serveur correctement entretenu et sécurisé est un casse-tête difficile à résoudre.
Enfin, Google se souvient de nous, à savoir les utilisateurs finaux, et recommande que ces astuces soient utilisées de manière transparente et conviviale. Si vous êtes un développeur d'applications intéressé par la prévention de l'intégrité et du piratage de votre application (et vous devriez l'être!), Veillez à consulter le lien source. Il devient tout geek et flou et expose tout pour vous. Pour le reste d'entre nous, il s'agit davantage d'un rappel de la façon dont Goggle aime ses développeurs, et nous pouvons être heureux de savoir que Big G fait ce qu'il peut pour aider.