IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Android : la protection des licences déjà « facilement » détournée
Google minimise et défend son système de signature

Le , par Gordon Fowler

6PARTAGES

0  0 
Mise à jour du 25/08/2010 par Idelways

Le système de protection des licences de l'Android Market, mis en place par Google il y'a moins d'un mois (lire ci-avant) est déjà craqué. Et d'une manière relativement simple.

Sur un message posté sur AndridPolice, un développeur prétend — démonstration à l'appui — pouvoir briser la protection LVL (Licence Verification Library) en changeant quelque lignes de codes.

Justin Case, l'auteur de l'article se dit pourtant « opposé au piratage et pro-Google » et explique que le but de sa démarche est d'améliorer les systèmes de protection des applications.

Pourtant, même si l'utilisateur lambda n'est pas en mesure d'exploiter directement cette faille, beaucoup d'utilisateurs avancés (dont font partie les membres de ce forum) peuvent craquer les applications et pourraient en distribuer des copies illégales.

La réponse de Google ne s'est pas faite attendre.

Tim Bray tente de clarifier quelques informations à propos de LVL.

Il concède que "la protection à 100% contre la piraterie n'existe pas pour les systèmes qui exécutent du code tiers", mais il dit qu'avec une bonne sécurité, il est possible de rendre extrêmement difficile et coûteux le piratage logiciel.

Bray prend la défense de son système de protection, qu'il qualifie de « très jeune », sa première version inclurait pour l'instant l'implémentation la plus simple et la plus transparente pour des raisons de clarté.

Dans le détail, l'exploit (ou plus exactement le « crack ») s'appuie sur le fait que les applications pour Android sont distribuées sous forme de byte-codes comme toute application Java. Ce bytecode peut être décompilé en un code source très proche du code original.

Une fois ce code obtenu, le « pirate » n'a qu'à trouver la classe LicenceValidator et changer le comportement de l'application quand le serveur de vérification répond que la licence est invalide. Ne reste plus qu'à recompiler et redistribuer l'application.



Une prochaine version de LVL devrait donc assez rapidement voir le jour.

Même si comme Tim Bray le souligne, cette première version est déjà très populaire auprès des développeurs. Et qu'elle rend, quoi qu'on en dise, la crackage des applications Android déjà nettement moins « user friendly » que par le passé.

Source : Site AndroidPolice

Lire aussi :

L'Android Market passe la barre des 100 000 applications

Android : premier « Cheval de Troie » camouflé dans un jeu, Tapesnake envoie le positionnement GPS du smartphone à des tiers

Oracle poursuit Google en justice pour son utilisation de Java dans Android : le succès de l'OS mobile attiserait-il les appétits

Et vous ?

Google arrivera-t-il à protéger les applications Android payantes contre le piratage ?

Quels protections proposez-vous pour y arriver ?

En collaboration avec Gordon Fowler

Android : nouveau système de sécurité pour protéger les applications
Payantes du piratage, elles devront se connecter aux serveurs de Google

Google lance un nouveau process d'authentification des applications payantes sous Android pour lutter contre le piratage. Ce nouveau « Licensing Service for Android » consiste à obliger l'application à se connecter aux serveurs de Google pour vérifier qu'elle a bien été achetée et non pas illégalement copiée... si son auteur souhaite protéger sa création bien entendu.

Cette sécurisation de type Cloud, pose quelques problèmes. La principale question, pour l'utilisateur, est de savoir ce qui se passe s'il veut utiliser l'application dans un endroit sans couverture internet.

Google précise que le développeur pourra choisir la fréquence du Ping avec les serveurs de Moutain View : à chaque lancement ou une fois par semaine par exemple.

Autre question : que faire lorsqu'une application piratée est repérée ?

Là encore le choix sera laissé au développeur. L'application pourra être bloquée ou, de manière plus commerciale, passer directement en mode de démo limitée pour pousser à l'achat.

Cette nouvelle fonctionnalité de contrôle pourra être implémentée sur les versions 1.5 et supérieures d'Android (autrement dit quasiment toutes les versions de l'OS). Le guide de développement se trouve ici.

Des détails techniques, notamment sur le nouvel outil du SDK (le License Verification Library, alias LVL) sont également exposés sur cette page.

Et comme un dessin vaut toujours mieux qu'un long discours, voici, en résumé, ces détails techniques :



Source : Annonce de Google

Lire aussi :

« Nous désactivons toute application qui s'avèrerait malicieuse pour l'utilisateur », répond Google, après l'étude sur Android Market

Les rubriques (actu, forums, tutos) de Développez :

Android
Sécurité
Mobiles

Et vous ?

En temps que développeur, trouvez-vous que ce nouveau mécanisme de protection soit une bonne idée ?

Et en temps qu'utilisateur ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Hellwing
Membre chevronné https://www.developpez.com
Le 28/07/2010 à 11:41
Je serais plutôt d'avis de pouvoir utiliser l'application tant que son dernier accès au net l'a validée (donc sans notion de durée fixe).
Par conséquent, une application piratée peut être utilisée tant que le smartphone n'est pas connecté au net. Dès lors que le smartphone se connecte, PAF elle est grillée.

Je n'utilise pas de smartphone car je n'en vois pas encore l'utilité pour mes besoins, donc je suppose qu'un smartphone qui ne se connecte jamais au net doit être rare.
8  0 
Avatar de dams78
Membre expert https://www.developpez.com
Le 29/07/2010 à 9:51
Citation Envoyé par GanYoshi Voir le message
On peut raisonnablement imaginer qu'on trouve un accès internet au moins une fois par semaine (via au moins un point d'accès wifi)...

Je suis contre toutes les mesures de protection qui handicapent l'expérience utilisateur, mais là c'est clairement de la mauvaise fois que de dire que c'est le cas, parce que dans une situation ultra-particulière d'une expédition dans le désert sans accès internet, on se retrouve sans GPS.
Perso quand je vais en vacances j'ai autre chose à faire que chercher un accès wifi, effectivement si j'en trouve un et que j'ai que ça à faire, je vais en profiter pour relever mes mails. Mais il m'est déjà arrivé de passer plus d'une semaine sans internet. C'est pas parce qu'on a un smartphone qu'on est un geek accro au net
4  1 
Avatar de Oussapik
Membre actif https://www.developpez.com
Le 28/07/2010 à 11:14
En termes de développement, cela propose un moyen simple pour vérifier l'utilisation légale de l'application, c'est donc un plus.

Mais au niveau de l'expérience utilisateur, je trouve qu'une application utilisant ce système est limite scandaleux. Je pense que, si on a moyen de savoir que l'appli utilise ce système, je serais prêt à refuser tout simplement l'achat de la dite-application. ça me rappelle quand même fortement une gestion de l'authenticité des licences de certains jeux où ils faut être connecté pour jouer même si le jeu n'a pas besoin de réseau...

Pour conclure, en tant qu'utilisateur et développeur (à mes heures perdues pour mon android) que je suis, ça ne me parait pas une bonne idée :s
2  0 
Avatar de dams78
Membre expert https://www.developpez.com
Le 28/07/2010 à 11:16
La seule application que j'ai achetée sur Android est CoPilot (GPS), comment je fais si je suis hors de l'Europe pour la lancer si elle a besoin d'un accès au net?
Il serait plus pratique d'utiliser ce procédé uniquement lors du premier lancement de l'application, je trouve...
2  0 
Avatar de FailMan
Membre expert https://www.developpez.com
Le 28/07/2010 à 11:11
A quand des applications piratées simulant un serveur Google pour que l'application se connecte dessus en la validant ...
1  0 
Avatar de FailMan
Membre expert https://www.developpez.com
Le 28/07/2010 à 11:37
Citation Envoyé par dams78 Voir le message

Il serait plus pratique d'utiliser ce procédé uniquement lors du premier lancement de l'application, je trouve...
J'y pensais aussi, mais à mon avis ça va être rapidement court-circuité.

Citation Envoyé par fabrice91 Voir le message
Y a pas de net en dehors de l'Europe ???
Damned, on est diablement en avance !!!
Si en plus de l'application à 10€ tu dois payer à chaque lancement 3€ de connexion 3G à l'étranger parce que ce n'est pas compris dans le forfait, ça risque d'en rebuter certains.
1  0 
Avatar de Lyche
Expert éminent https://www.developpez.com
Le 28/07/2010 à 11:52
Citation Envoyé par dams78 Voir le message
La seule application que j'ai achetée sur Android est CoPilot (GPS), comment je fais si je suis hors de l'Europe pour la lancer si elle a besoin d'un accès au net?
Il serait plus pratique d'utiliser ce procédé uniquement lors du premier lancement de l'application, je trouve...
Tu douilles avec des factures web à 800€ pour ton séjour :/
1  0 
Avatar de Robbin Hoodz
Membre du Club https://www.developpez.com
Le 28/07/2010 à 14:33
En temps que développeur, trouvez-vous que ce nouveau mécanisme de protection soit une bonne idée ?
Et en temps qu'utilisateur ?
Et quid de l'intérêt de google dans l'histoire ? Je ne crois pas me souvenir que google soit une association a but non lucratif...

Est-ce que ce système n'offre pas l'avantage a google de connaitre pour un utilisateur, les applications qu'il achète et la fréquence avec laquelle il les utilise ?
Manière de vendre des pubs bien ciblées ?

En tout cas cela n'apporte rien à l'utilisateur... à part le sentiment de se faire traiter de voleur à chaque fois qu'il ne pourra pas se connecter à ce fameux serveur...
1  0 
Avatar de MrDuChnok
Rédacteur https://www.developpez.com
Le 28/07/2010 à 14:55
C'est une API qui est fourni aux développeurs. Certains faisait déjà ce contrôle de sécurité avant de leur propre manière.
Cette API permet juste de simplifier la mise en place d'un tel système pour les développeurs. Donc à mon avis, ça sera totalement invisible pour les utilisateurs, mais juste plus contraignant pour les pirates.

D'ailleurs en lisant un peu la doc :
You can implement license caching behaviors to manage access when there is no network connectivity.
For example, a Policy would maintain the timestamp of last successful license check, the retry count, the license validity period, and similar information in a persistent store
allowAccess() determines whether to grant the user access to your application, based on any available license response data (from the licensing server or from cache) or other application-specific information. For example, your implementation of allowAccess() could take into account additional criteria, such as usage or other data retrieved from a backend server. In all cases, an implementation of allowAccess() should only return true if there user is licensed to use the application, as determined by the licensing server, or if there is a transient network or system problem that prevents the license check from completing.
1  0 
Avatar de MrDuChnok
Rédacteur https://www.developpez.com
Le 29/07/2010 à 12:24
Citation Envoyé par Oussapik Voir le message
Ce que j'entends pas là, c'est les cas où les data ne passent plus. Où tu n'as que (si tu l'as encore) la voix.
C'est le cas qui a déjà été évoqué des déplacements à l'étranger. Si je pars 1/2 semaines à l'étranger, pour ne pas bousiller mon forfait data, je vais couper tout ce qui n'est pas voix/sms. Donc je n'aurai plus la possibilité de synchroniser mon appli avec les serveurs de google.
Mais tu as bien compris que cette vérification de licence ne se fera pas obligatoirement à chaque lancement de l'application ? et que cette vérification pourra également se faire sans connexion internet (via le cache) ?
1  0