Tag Archives: Licence

Google s’attaque au piratage des applications payantes

Un des problèmes des applications payantes sur Android est leur grande facilité à être piratée : en effet une fois qu’une personne à installer l’application, il suffit de copier le fichier APK depuis le téléphone vers un autre terminal et l’installation se fait sans problème.

Désormais la protection de ses applications payantes sera possible via l’utilisation d’une librairie fournie par Google utilisable dans toutes les applications à partir d’Android 1.5

A l’exécution de l’application contenant cette librairie (nommée LVL pour License Validation Library), l’application va dialoguer avec le serveur de licence d’Android Market pour vérifier que le compte Google de l’utilisateur a bien achetée l’application. Une fois l’information reçue que l’utilisateur pirate l’application, le développeur est libre soit de mettre un message d’avertissement en laissant passer cela une fois soit d’interdire complètement d’utiliser l’application.

Au niveau fonctionnement technique :

  • Ce mécanisme fonctionne à partir d’Android 1.5 ce qui va permettre de l’intégrer dans la plupart des applications existantes
  • Les échanges sont sécurisés via une paire de clés publique/privé. Les requêtes envoyés au serveur sont signés avec la clé publique et les réponses avec la clé privée.
  • La discussion entre l’application et le serveur de licences ne se fait pas directement mais via l’Android Market. Cela va permettre d’éviter une partie des attaques du type Man-In-The-Middle
  • L’installation se fait via l’Android SDK and AVD Manager sous la forme d’un nouvel élément à télécharger : “Market Licensing package, revision 1″

  • Un exemple est fourni sous la forme d’un projet Android. Ce projet inclut également les tests unitaires.
  • Une interface a été rajoutée dans la zone publication d’Android Market pour gérer les clés privés/publiques. Il est possible d’avoir à la fois des clés pour le développement et pour la production. Attention à bien changer la clé au moment de publier l’application.

De façon évidente, il ne va pas être possible de contacter le serveur lorsque le terminal de l’utilisateur n’est pas connecté au réseau. Il va falloir donc faire un choix pour gérer ce cas-là : soit forcer l’utilisateur a se connecter pour valider l’application à chaque lancement avec toutes les contraintes que cela implique, soit garder en cache l’état de validation (LVL propose des modules déjà construits pour gérer le cache des licences)

Le but à terme est de remplacer le système de protection de copie actuellement présent qui n’était pas très performant.

Plus d’informations disponibles : http://developer.android.com/guide/publishing/licensing.html (en anglais)

Page optimized by WP Minify WordPress Plugin